DBA Data[Home] [Help]

PACKAGE BODY: APPS.PJI_PMV_UTLZ

Source


1 PACKAGE BODY PJI_PMV_UTLZ AS
2 /* $Header: PJIRR02B.pls 120.2 2005/12/07 20:53:36 appldev ship $ */
3 
4 PROCEDURE Get_SQL_PJI_REP_UAP1(p_page_parameter_tbl IN BIS_PMV_PAGE_PARAMETER_TBL
5                              , x_PMV_Sql OUT NOCOPY VARCHAR2
6                              , x_PMV_Output OUT NOCOPY BIS_QUERY_ATTRIBUTES_TBL)
7  IS
8 BEGIN
9 
10     PJI_PMV_ENGINE.Generate_SQL(P_PAGE_PARAMETER_TBL  => p_page_parameter_tbl
11                                ,P_SELECT_LIST         =>
12                                ' FACT.BILL_HOURS_PERCENT     "PJI_REP_MSR_3",
13                                  FACT.CHANGE_PERCENT_2       "PJI_REP_MSR_20",
14                                  FACT.ACT_UTIL_PERCENT       "PJI_REP_MSR_2",
15                                  FACT.CHANGE_PERCENT_1       "PJI_REP_MSR_10",
16                                  FACT.RES_HOURS_PERCENT      "PJI_REP_MSR_4",
17                                  FACT.CHANGE_PERCENT_3       "PJI_REP_MSR_21",
18                                  FACT.ACTUAL_UTIL_HOURS      "PJI_REP_MSR_5",
19                                  FACT.ACTUAL_DENOMINATOR     "PJI_REP_MSR_6",
20                                  FACT.RESOURCE_HOURS         "PJI_REP_MSR_7",
21                                  FACT.TOTAL_RESOURCE_HOURS   "PJI_REP_MSR_8",
22                                  FACT.BILLABLE_HOURS         "PJI_REP_MSR_9",
23                                  FACT.PRIOR_ACTUAL_UTIL_HOURS  "PJI_REP_MSR_11",
24                                  FACT.PRIOR_ACTUAL_DENOMINATOR "PJI_REP_MSR_12",
25                                  FACT.PRIOR_RESOURCE_HOURS   "PJI_REP_MSR_13",
26                                  FACT.PRIOR_TOTAL_RESOURCE_HOURS "PJI_REP_MSR_14",
27                                  FACT.PRIOR_BILLABLE_HOURS   "PJI_REP_MSR_15",
28                                  FACT.PRIOR_RES_HOURS_PERCENT "PJI_REP_MSR_16",
29                                  FACT.PRIOR_ACT_UTIL_PERCENT  "PJI_REP_MSR_17",
30                                  FACT.PRIOR_BILL_HOURS_PERCENT "PJI_REP_MSR_18",
31                                  FACT.BILL_HOURS_PERCENT     "PJI_REP_MSR_19",
32                                  FACT.ACT_UTIL_PERCENT       "PJI_REP_MSR_22",
33                                  FACT.RES_HOURS_PERCENT      "PJI_REP_MSR_23",
34                                  FACT.PJI_REP_TOTAL_1        "PJI_REP_TOTAL_1",
35                                  FACT.PJI_REP_TOTAL_2        "PJI_REP_TOTAL_2",
36                                  FACT.PJI_REP_TOTAL_3        "PJI_REP_TOTAL_3",
37                                  FACT.PJI_REP_TOTAL_4        "PJI_REP_TOTAL_4",
38                                  FACT.PJI_REP_TOTAL_5        "PJI_REP_TOTAL_5",
39                                  FACT.PJI_REP_TOTAL_6        "PJI_REP_TOTAL_6",
40                                  FACT.PJI_REP_TOTAL_7        "PJI_REP_TOTAL_7",
41                                  FACT.PJI_REP_TOTAL_8        "PJI_REP_TOTAL_8",
42                                  FACT.PJI_REP_TOTAL_9        "PJI_REP_TOTAL_9",
43                                  FACT.PJI_REP_TOTAL_1        "PJI_REP_TOTAL_12",
44                                  FACT.PJI_REP_TOTAL_3        "PJI_REP_TOTAL_14",
45                                  FACT.PJI_REP_TOTAL_5        "PJI_REP_TOTAL_16" '
46                                ,P_SQL_STATEMENT       => x_PMV_Sql
47                                ,P_PMV_OUTPUT          => x_PMV_Output,
48                                 P_REGION_CODE         => 'PJI_REP_UAP1',
49                                 P_PLSQL_DRIVER        => 'PJI_PMV_UTLZ.PLSQLDriver_U1',
50                                 P_PLSQL_DRIVER_PARAMS =>   '<<ORGANIZATION+FII_OPERATING_UNITS>>, ' ||
51                                                            '<<ORGANIZATION+PJI_ORGANIZATIONS>>, ' ||
52                                                            '<<AS_OF_DATE>>, ' ||
53                                                            '<<PERIOD_TYPE>>, ' ||
54                                                            '<<TIME_COMPARISON_TYPE>>, ' ||
55                                                            '<<VIEW_BY>>');
56 END Get_SQL_PJI_REP_UAP1;
57 
58 
59 PROCEDURE Get_SQL_PJI_REP_U1(p_page_parameter_tbl IN BIS_PMV_PAGE_PARAMETER_TBL
60                              , x_PMV_Sql OUT NOCOPY VARCHAR2
61                              , x_PMV_Output OUT NOCOPY BIS_QUERY_ATTRIBUTES_TBL)
62  IS
63 BEGIN
64 
65     PJI_PMV_ENGINE.Generate_SQL(P_PAGE_PARAMETER_TBL  => p_page_parameter_tbl
66                                ,P_SELECT_LIST         =>
67                                ' FACT.ACT_UTIL_PERCENT        "PJI_REP_MSR_1",
68                                  FACT.CHANGE_PERCENT_1        "PJI_REP_MSR_19",
69                                  FACT.SCH_UTIL_PERCENT        "PJI_REP_MSR_2",
70                                  FACT.SCH_VAR_PERCENT         "PJI_REP_MSR_10",
71                                  FACT.BILL_HOURS_PERCENT      "PJI_REP_MSR_3",
72                                  FACT.CHANGE_PERCENT_2        "PJI_REP_MSR_20",
73                                  FACT.MISSING_HOURS           "PJI_REP_MSR_4",
74                                  FACT.MISSING_HOURS_PERCENT   "PJI_REP_MSR_21",
75                                  FACT.ACTUAL_UTIL_HOURS       "PJI_REP_MSR_5",
76                                  FACT.ACTUAL_DENOMINATOR      "PJI_REP_MSR_6",
77                                  FACT.SCHEDULED_UTIL_HOURS    "PJI_REP_MSR_7",
78                                  FACT.SCHEDULED_DENOMINATOR   "PJI_REP_MSR_8",
79                                  FACT.BILLABLE_HOURS          "PJI_REP_MSR_9",
80                                  FACT.PRIOR_ACTUAL_UTIL_HOURS "PJI_REP_MSR_11",
81                                  FACT.PRIOR_ACTUAL_DENOMINATOR "PJI_REP_MSR_12",
82                                  FACT.PRIOR_SCH_UTIL_HOURS    "PJI_REP_MSR_13",
83                                  FACT.PRIOR_SCHEDULED_DENOMINATOR "PJI_REP_MSR_14",
84                                  FACT.PRIOR_BILLABLE_HOURS    "PJI_REP_MSR_15",
85                                  FACT.PRIOR_MISSING_HOURS     "PJI_REP_MSR_16",
86                                  FACT.PRIOR_ACT_UTIL_PERCENT  "PJI_REP_MSR_17",
87                                  FACT.PRIOR_BILL_HOURS_PERCENT "PJI_REP_MSR_18",
88                                  FACT.ACT_UTIL_PERCENT         "PJI_REP_MSR_23",
89                                  FACT.SCH_UTIL_PERCENT         "PJI_REP_MSR_24",
90                                  FACT.BILL_HOURS_PERCENT       "PJI_REP_MSR_25",
91                                  FACT.MISSING_HOURS            "PJI_REP_MSR_26",
92                                  FACT.PJI_REP_TOTAL_3          "PJI_REP_TOTAL_1",
93                                  FACT.PJI_REP_TOTAL_8          "PJI_REP_TOTAL_2",
94                                  FACT.PJI_REP_TOTAL_10         "PJI_REP_TOTAL_3",
95                                  FACT.PJI_REP_TOTAL_12         "PJI_REP_TOTAL_4",
96                                  FACT.PJI_REP_TOTAL_1          "PJI_REP_TOTAL_5",
97                                  FACT.PJI_REP_TOTAL_7          "PJI_REP_TOTAL_6",
98                                  FACT.PJI_REP_TOTAL_13         "PJI_REP_TOTAL_7",
99                                  FACT.PJI_REP_TOTAL_11         "PJI_REP_TOTAL_8" '
100                                ,P_SQL_STATEMENT       => x_PMV_Sql
101                                ,P_PMV_OUTPUT          => x_PMV_Output,
102                                 P_REGION_CODE         => 'PJI_REP_U1',
103                                 P_PLSQL_DRIVER        => 'PJI_PMV_UTLZ.PLSQLDriver_U1',
104                                 P_PLSQL_DRIVER_PARAMS =>   '<<ORGANIZATION+FII_OPERATING_UNITS>>, ' ||
105                                                            '<<ORGANIZATION+PJI_ORGANIZATIONS>>, ' ||
106                                                            '<<AS_OF_DATE>>, ' ||
107                                                            '<<PERIOD_TYPE>>, ' ||
108                                                            '<<TIME_COMPARISON_TYPE>>, ' ||
109                                                            '<<VIEW_BY>>,'||
110                                        '<<PROJECT WORK TYPE+PJI_UTIL_CATEGORIES>>, ' ||
111                                        '<<PROJECT WORK TYPE+PJI_WORK_TYPES>>, ' ||
112                                        '<<PROJECT JOB LEVEL+PJI_JOB_LEVELS>>');
113 END Get_SQL_PJI_REP_U1;
114 
115 
116 PROCEDURE Get_SQL_PJI_REP_U2(p_page_parameter_tbl IN BIS_PMV_PAGE_PARAMETER_TBL
117                              , x_PMV_Sql OUT NOCOPY VARCHAR2
118                              , x_PMV_Output OUT NOCOPY BIS_QUERY_ATTRIBUTES_TBL)
119  IS
120 BEGIN
121 
122     PJI_PMV_ENGINE.Generate_SQL(P_PAGE_PARAMETER_TBL  => p_page_parameter_tbl
123                                ,P_SELECT_LIST         =>
124                                ' FACT.ACTUAL_CAPACITY_HOURS  "PJI_REP_MSR_1",
125                                  FACT.MISSING_HOURS  "PJI_REP_MSR_2",
126 		                         FACT.ACTUAL_UTILIZATION_HOURS  "PJI_REP_MSR_3",
127 		                         FACT.ACT_UTIL_PERCENT  "PJI_REP_MSR_4",
128 		                         FACT.BILL_UTIL_PERCENT  "PJI_REP_MSR_6",
129 		                         FACT.NONBILL_UTIL_PERCENT  "PJI_REP_MSR_7",
130 		                         FACT.TRAINING_PERCENT  "PJI_REP_MSR_20",
131 		                         FACT.SCHEDULED_CAPACITY_HOURS  "PJI_REP_MSR_5",
132 		                         FACT.CONF_SCHEDULED_HOURS  "PJI_REP_MSR_8",
133 		                         FACT.PROV_SCHEDULED_HOURS  "PJI_REP_MSR_9",
134 		                         FACT.SCHEDULED_UTILIZATION_HOURS  "PJI_REP_MSR_10",
135 		                         FACT.SCH_UTIL_PERCENT  "PJI_REP_MSR_17",
136 		                         FACT.PRIOR_UTIL_PERCENT  "PJI_REP_MSR_18",
137 		                         FACT.BILLABLE_HOURS  "PJI_REP_MSR_11",
138 		                         FACT.NONBILLABLE_HOURS  "PJI_REP_MSR_12",
139 		                         FACT.TRAINING_HOURS  "PJI_REP_MSR_13",
140 		                         FACT.PRIOR_ACTUAL_UTIL_HOURS  "PJI_REP_MSR_14",
141 		                         FACT.PRIOR_ACTUAL_DENOMINATOR  "PJI_REP_MSR_15",
142 		                         FACT.SCHEDULED_DENOMINATOR  "PJI_REP_MSR_19",
143 		                         FACT.ACTUAL_DENOMINATOR  "PJI_REP_MSR_23",
144 		                         FACT.PRIOR_UTIL_PERCENT  "PJI_REP_MSR_24",
145 		                         FACT.ACT_UTIL_PERCENT  "PJI_REP_MSR_25",
146 		                         FACT.SCH_UTIL_PERCENT  "PJI_REP_MSR_26" '
147                                ,P_SQL_STATEMENT       => x_PMV_Sql
148                                ,P_PMV_OUTPUT          => x_PMV_Output,
149                                 P_REGION_CODE         => 'PJI_REP_U2',
150                                 P_PLSQL_DRIVER        => 'PJI_PMV_UTLZ.PLSQLDriver_U2',
151                                 P_PLSQL_DRIVER_PARAMS =>   '<<ORGANIZATION+FII_OPERATING_UNITS>>, ' ||
152                                                            '<<ORGANIZATION+PJI_ORGANIZATIONS>>, ' ||
153                                                            '<<AS_OF_DATE>>, ' ||
154                                                            '<<PERIOD_TYPE>>, ' ||
155                                                            '<<VIEW_BY>>');
156 END Get_SQL_PJI_REP_U2;
157 
158 
159 PROCEDURE Get_SQL_PJI_REP_U3(p_page_parameter_tbl IN BIS_PMV_PAGE_PARAMETER_TBL
160                              , x_PMV_Sql OUT NOCOPY VARCHAR2
161                              , x_PMV_Output OUT NOCOPY BIS_QUERY_ATTRIBUTES_TBL)
162  IS
163 BEGIN
164 
165     PJI_PMV_ENGINE.Generate_SQL(P_PAGE_PARAMETER_TBL  => p_page_parameter_tbl
166                                ,P_SELECT_LIST         =>
167                                ' FACT.ACTUAL_HOURS  "PJI_REP_MSR_11",
168 		                         FACT.CAPACITY_HOURS  "PJI_REP_MSR_16",
169 		                         FACT.MISSING_HOURS  "PJI_REP_MSR_15",
170 		                         FACT.UTILIZATION_HOURS  "PJI_REP_MSR_1",
171 		                         FACT.UTIL_PERCENT  "PJI_REP_MSR_2",
172 		                         FACT.BILL_PERCENT  "PJI_REP_MSR_3",
173 		                         FACT.NON_BILL_PERCENT  "PJI_REP_MSR_4",
174 		                         FACT.TRAINING_PERCENT  "PJI_REP_MSR_5",
175 		                         FACT.PRIOR_ACTUAL_HOURS  "PJI_REP_MSR_12",
176 		                         FACT.PRIOR_CAPACITY_HOURS  "PJI_REP_MSR_19",
177 		                         FACT.PRIOR_UTIL_PERCENT  "PJI_REP_MSR_20",
178 		                         FACT.PRIOR_BILL_PERCENT  "PJI_REP_MSR_21",
179 		                         FACT.PRIOR_NON_BILL_PERCENT  "PJI_REP_MSR_22",
180 		                         FACT.PRIOR_TRAINING_PERCENT  "PJI_REP_MSR_23",
181 		                         FACT.PRIOR_BILL_PERCENT  "PJI_REP_MSR_10",
182 		                         FACT.BILL_PERCENT  "PJI_REP_MSR_30",
183 		                         FACT.PRIOR_NON_BILL_PERCENT  "PJI_REP_MSR_8",
184 		                         FACT.NON_BILL_PERCENT  "PJI_REP_MSR_9",
185 		                         FACT.PJI_REP_TOTAL_1 "PJI_REP_TOTAL_1",
186 		                         FACT.PJI_REP_TOTAL_2 "PJI_REP_TOTAL_2",
187 		                         FACT.PJI_REP_TOTAL_3 "PJI_REP_TOTAL_3",
188 		                         FACT.PJI_REP_TOTAL_4 "PJI_REP_TOTAL_4",
189 		                         FACT.PJI_REP_TOTAL_5 "PJI_REP_TOTAL_5",
190 		                         FACT.PJI_REP_TOTAL_6 "PJI_REP_TOTAL_6",
191 		                         FACT.PJI_REP_TOTAL_7 "PJI_REP_TOTAL_7",
192 		                         FACT.PJI_REP_TOTAL_8 "PJI_REP_TOTAL_8",
193 		                         FACT.PJI_REP_TOTAL_9 "PJI_REP_TOTAL_9",
194 		                         FACT.PJI_REP_TOTAL_10 "PJI_REP_TOTAL_10",
195 		                         FACT.PJI_REP_TOTAL_11 "PJI_REP_TOTAL_11",
196 		                         FACT.PJI_REP_TOTAL_12 "PJI_REP_TOTAL_12",
197 		                         FACT.PJI_REP_TOTAL_13 "PJI_REP_TOTAL_13",
198 		                         FACT.PJI_REP_TOTAL_14 "PJI_REP_TOTAL_14" '
199                                ,P_SQL_STATEMENT       => x_PMV_Sql
200                                ,P_PMV_OUTPUT          => x_PMV_Output,
201                                 P_REGION_CODE         => 'PJI_REP_U3',
202                                 P_PLSQL_DRIVER        => 'PJI_PMV_UTLZ.PLSQLDriver_U3',
203                                 P_PLSQL_DRIVER_PARAMS =>   '<<ORGANIZATION+FII_OPERATING_UNITS>>, ' ||
204                                                            '<<ORGANIZATION+PJI_ORGANIZATIONS>>, ' ||
205                                                            '<<AS_OF_DATE>>, ' ||
206                                                            '<<PERIOD_TYPE>>, ' ||
207                                                            '<<VIEW_BY>>,'||
208                                        '<<PROJECT WORK TYPE+PJI_UTIL_CATEGORIES>>, ' ||
209                                        '<<PROJECT WORK TYPE+PJI_WORK_TYPES>>, ' ||
210                                        '<<PROJECT JOB LEVEL+PJI_JOB_LEVELS>>');
211 END Get_SQL_PJI_REP_U3;
212 
213 
214 PROCEDURE Get_SQL_PJI_REP_U4(p_page_parameter_tbl IN BIS_PMV_PAGE_PARAMETER_TBL
215                              , x_PMV_Sql OUT NOCOPY VARCHAR2
216                              , x_PMV_Output OUT NOCOPY BIS_QUERY_ATTRIBUTES_TBL)
217  IS
218 l_PMV_Rec           BIS_QUERY_ATTRIBUTES;
219 BEGIN
220 
221     PJI_PMV_ENGINE.Generate_SQL(P_PAGE_PARAMETER_TBL  => p_page_parameter_tbl
222                                ,P_SELECT_LIST         =>
223                                ' FACT.SCHEDULED_HOURS  "PJI_REP_MSR_17",
224                            		 FACT.SCHEDULED_CAPACITY_HOURS  "PJI_REP_MSR_18",
225                            		 FACT.SCHEDULED_UTIL_HOURS  "PJI_REP_MSR_1",
226                            		 FACT.PROVISIONAL_HOURS  "PJI_REP_MSR_2",
227                            		 FACT.PRIOR_SCHEDULED_HOURS  "PJI_REP_MSR_3",
228                            		 FACT.SCH_UTIL_PERCENT  "PJI_REP_MSR_4",
229                            		 FACT.BILL_UTIL_PERCENT  "PJI_REP_MSR_7",
230                            		 FACT.NONBILL_UTIL_PERCENT  "PJI_REP_MSR_5",
231                            		 FACT.UNASSIGNED_PERCENT  "PJI_REP_MSR_6",
232                            		 FACT.TRAINING_PERCENT  "PJI_REP_MSR_13",
233                            		 FACT.PROV_BILL_PERCENT  "PJI_REP_MSR_11",
234                            		 FACT.PROV_NONBILL_PERCENT  "PJI_REP_MSR_12",
235                            		 FACT.PRIOR_SCH_UTIL_PERCENT  "PJI_REP_MSR_14",
236                            		 FACT.PRIOR_BILL_UTIL_PERCENT  "PJI_REP_MSR_15",
237                            		 FACT.PRIOR_NONBILL_UTIL_PERCENT  "PJI_REP_MSR_16",
238                            		 FACT.PRIOR_BILL_UTIL_PERCENT  "PJI_MSR2",
239                            		 FACT.BILL_UTIL_PERCENT  "PJI_REP_MSR_29",
240                            		 FACT.PRIOR_NONBILL_UTIL_PERCENT  "PJI_MSR3",
241                            		 FACT.NONBILL_UTIL_PERCENT  "PJI_MSR1",
242                            		 FACT.PJI_REP_TOTAL_1 "PJI_REP_TOTAL_1",
243                            		 FACT.PJI_REP_TOTAL_2 "PJI_REP_TOTAL_2",
244                            		 FACT.PJI_REP_TOTAL_3 "PJI_REP_TOTAL_3",
245                            		 FACT.PJI_REP_TOTAL_4 "PJI_REP_TOTAL_4",
246                            		 FACT.PJI_REP_TOTAL_7 "PJI_REP_TOTAL_5",
247                            		 FACT.PJI_REP_TOTAL_8 "PJI_REP_TOTAL_6",
248                            		 FACT.PJI_REP_TOTAL_9 "PJI_REP_TOTAL_7",
249                            		 FACT.PJI_REP_TOTAL_10 "PJI_REP_TOTAL_8",
250                            		 FACT.PJI_REP_TOTAL_11 "PJI_REP_TOTAL_9",
251                            		 FACT.PJI_REP_TOTAL_12 "PJI_REP_TOTAL_10",
252                            		 FACT.PJI_REP_TOTAL_13 "PJI_REP_TOTAL_11",
253                            		 FACT.PJI_REP_TOTAL_14 "PJI_REP_TOTAL_12",
254                            		 FACT.PJI_REP_TOTAL_15 "PJI_REP_TOTAL_13",
255                            		 FACT.PJI_REP_TOTAL_16 "PJI_REP_TOTAL_14",
256                            		 FACT.PJI_REP_TOTAL_17 "PJI_REP_TOTAL_15" '
257                                ,P_SQL_STATEMENT       => x_PMV_Sql
258                                ,P_PMV_OUTPUT          => x_PMV_Output,
259                                 P_REGION_CODE         => 'PJI_REP_U4',
260                                 P_PLSQL_DRIVER        => 'PJI_PMV_UTLZ.PLSQLDriver_U4',
261                                 P_PLSQL_DRIVER_PARAMS =>   '<<ORGANIZATION+FII_OPERATING_UNITS>>, ' ||
262                                                            '<<ORGANIZATION+PJI_ORGANIZATIONS>>, ' ||
263                                                            '<<AS_OF_DATE>>, ' ||
264                                                            '<<PERIOD_TYPE>>, ' ||
265                                                            '<<VIEW_BY>>,'||
266                                        '<<PROJECT WORK TYPE+PJI_UTIL_CATEGORIES>>, ' ||
267                                        '<<PROJECT WORK TYPE+PJI_WORK_TYPES>>, ' ||
268                                        '<<PROJECT JOB LEVEL+PJI_JOB_LEVELS>>');
269 
270     l_PMV_Rec:=BIS_PMV_PARAMETERS_PUB.INITIALIZE_QUERY_TYPE;
271     l_PMV_Rec.attribute_name:=':PJI_EXTRA_BND_01';
272     l_PMV_Rec.attribute_value:='FALSE'; -- replace with the literal being passed.
273     l_PMV_Rec.attribute_type:=BIS_PMV_PARAMETERS_PUB.BIND_TYPE;
274     l_PMV_Rec.attribute_data_type:=BIS_PMV_PARAMETERS_PUB.VARCHAR2_BIND;
275 
276     x_PMV_Output.EXTEND();
277     x_PMV_Output(x_PMV_Output.COUNT):=l_PMV_Rec;
278 
279 END Get_SQL_PJI_REP_U4;
280 
281 
282 PROCEDURE Get_SQL_PJI_REP_U5(p_page_parameter_tbl IN BIS_PMV_PAGE_PARAMETER_TBL
283                              , x_PMV_Sql OUT NOCOPY VARCHAR2
284                              , x_PMV_Output OUT NOCOPY BIS_QUERY_ATTRIBUTES_TBL)
285  IS
286 l_PMV_Rec           BIS_QUERY_ATTRIBUTES;
287 BEGIN
288 
289     PJI_PMV_ENGINE.Generate_SQL(P_PAGE_PARAMETER_TBL  => p_page_parameter_tbl
290                                ,P_SELECT_LIST         =>
291                                ' FACT.EXPECTED_HOURS  "PJI_REP_MSR_17",
292 		                         FACT.EXPECTED_CAPACITY_HOURS  "PJI_REP_MSR_18",
293 		                         FACT.EXP_ACT_UTIL_PERCENT  "PJI_REP_MSR_1",
294 		                         FACT.EXP_SCH_UTIL_PERCENT  "PJI_REP_MSR_2",
295 		                         FACT.EXP_UTIL_PERCENT  "PJI_REP_MSR_3",
296 		                         FACT.PROV_SCH_UTIL_PERCENT  "PJI_REP_MSR_4",
297 		                         FACT.EXP_TOTAL_UTIL_PERCENT  "PJI_REP_MSR_6",
298 		                         FACT.PRIOR_ACT_UTIL_PERCENT  "PJI_REP_MSR_7",
299 		                         FACT.EXP_UTIL_PERCENT  "PJI_REP_MSR_23",
300 		                         FACT.EXP_TOTAL_UTIL_PERCENT  "PJI_REP_MSR_24",
301 		                         FACT.PJI_REP_TOTAL_5 "PJI_REP_TOTAL_1",
302 		                         FACT.PJI_REP_TOTAL_6 "PJI_REP_TOTAL_2",
303 		                         FACT.PJI_REP_TOTAL_18 "PJI_REP_TOTAL_3",
304 		                         FACT.PJI_REP_TOTAL_19 "PJI_REP_TOTAL_4",
305 		                         FACT.PJI_REP_TOTAL_20 "PJI_REP_TOTAL_5",
306 		                         FACT.PJI_REP_TOTAL_21 "PJI_REP_TOTAL_6",
307 		                         FACT.PJI_REP_TOTAL_22 "PJI_REP_TOTAL_7",
308 		                         FACT.PJI_REP_TOTAL_23 "PJI_REP_TOTAL_8" '
309                                ,P_SQL_STATEMENT       => x_PMV_Sql
310                                ,P_PMV_OUTPUT          => x_PMV_Output,
311                                 P_REGION_CODE         => 'PJI_REP_U5',
312                                 P_PLSQL_DRIVER        => 'PJI_PMV_UTLZ.PLSQLDriver_U4',
313                                 P_PLSQL_DRIVER_PARAMS =>   '<<ORGANIZATION+FII_OPERATING_UNITS>>, ' ||
314                                                            '<<ORGANIZATION+PJI_ORGANIZATIONS>>, ' ||
315                                                            '<<AS_OF_DATE>>, ' ||
316                                                            '<<PERIOD_TYPE>>, ' ||
317                                                            '<<VIEW_BY>>,'||
318                                        '<<PROJECT WORK TYPE+PJI_UTIL_CATEGORIES>>, ' ||
319                                        '<<PROJECT WORK TYPE+PJI_WORK_TYPES>>, ' ||
320                                        '<<PROJECT JOB LEVEL+PJI_JOB_LEVELS>>');
321 
322     l_PMV_Rec:=BIS_PMV_PARAMETERS_PUB.INITIALIZE_QUERY_TYPE;
323     l_PMV_Rec.attribute_name:=':PJI_EXTRA_BND_01';
324     l_PMV_Rec.attribute_value:='TRUE'; -- replace with the literal being passed.
325     l_PMV_Rec.attribute_type:=BIS_PMV_PARAMETERS_PUB.BIND_TYPE;
326     l_PMV_Rec.attribute_data_type:=BIS_PMV_PARAMETERS_PUB.VARCHAR2_BIND;
327 
328     x_PMV_Output.EXTEND();
329     x_PMV_Output(x_PMV_Output.COUNT):=l_PMV_Rec;
330 
331 END Get_SQL_PJI_REP_U5;
332 
333 
334 FUNCTION PLSQLDriver_U1 (
335    p_operating_unit        IN VARCHAR2 DEFAULT NULL,
336    p_organization          IN VARCHAR2,
337    p_as_of_date            IN NUMBER,
338    p_period_type           IN VARCHAR2,
339    p_comparator_type       IN VARCHAR2,
340    p_view_by               IN VARCHAR2,
341    p_utilization_category  IN VARCHAR2 DEFAULT NULL,
342    p_work_type             IN VARCHAR2 DEFAULT NULL,
343    p_job_level             IN VARCHAR2 DEFAULT NULL
344 )  RETURN PJI_REP_U1_TBL
345 IS
346    PRAGMA AUTONOMOUS_TRANSACTION;
347    l_u1_tbl                         PJI_REP_U1_TBL:=PJI_REP_U1_TBL();
348    l_util_category_flag             VARCHAR2(1);
349    l_job_flag                       VARCHAR2(1);
350    l_denominator                    VARCHAR2(25);
351    l_labor_unit                     VARCHAR2(40);
352    l_sequence                       NUMBER;
353    l_actual_capacity_hours          NUMBER := 0;
354    l_missing_hours                  NUMBER := 0;
355    l_actual_util_hours              NUMBER := 0;
356    l_billable_hours                 NUMBER := 0;
357    l_scheduled_util_hours           NUMBER := 0;
358    l_scheduled_capacity_hours       NUMBER := 0;
359    l_resource_hours                 NUMBER := 0;
360    l_total_resource_hours           NUMBER := 0;
361    l_actual_denominator             NUMBER := 0;
362    l_scheduled_denominator          NUMBER := 0;
363    l_prior_actual_capacity_hours    NUMBER := 0;
364    l_prior_missing_hours            NUMBER := 0;
365    l_prior_actual_util_hours        NUMBER := 0;
366    l_prior_billable_hours           NUMBER := 0;
367    l_prior_sch_util_hours           NUMBER := 0;
368    l_prior_sch_capacity_hours       NUMBER := 0;
369    l_prior_resource_hours           NUMBER := 0;
370    l_prior_total_resource_hours     NUMBER := 0;
371    l_prior_actual_denominator       NUMBER := 0;
372    l_prior_scheduled_denominator    NUMBER := 0;
373    l_Top_Org_Index                  NUMBER;
374    l_Top_Organization_Name          VARCHAR2(240);
375 
376 BEGIN
377    PJI_PMV_ENGINE.Convert_Operating_Unit (p_operating_unit, p_view_by);
378    PJI_PMV_ENGINE.Convert_Time (p_as_of_date, p_period_type, p_view_by, 'Y', 'DBI', p_comparator_type, 'N');
379    l_util_category_flag := PJI_PMV_ENGINE.Convert_Util_Category(p_work_type, p_utilization_category, p_view_by);
380    l_job_flag := PJI_PMV_ENGINE.Convert_Job_Level(null, p_job_level, p_view_by);
381 
382    /*
383     * Get Utilization percentage denominator profile value
384     */
385    BEGIN
386      SELECT fnd_profile.value('PA_ORG_UTIL_DEF_CALC_METHOD')
387      INTO l_denominator
388      from dual;
389 
390      EXCEPTION WHEN NO_DATA_FOUND THEN
391          l_denominator := 'CAPACITY';
392    END;
393 
394    /*
395     * Get report labor unit
396     */
397    BEGIN
398      select report_labor_units
399      into l_labor_unit
400      from pji_system_settings;
401 
402    EXCEPTION WHEN OTHERS THEN
403          l_labor_unit := null;
404    END;
405 
406    SELECT seq
407    INTO l_sequence
408    FROM pji_mt_buckets
409    WHERE bucket_set_code = 'PJI_RESOURCE_AVAILABILITY'
410    AND default_flag = 'Y';
411 
412    IF l_util_category_flag = 'N' AND l_job_flag = 'N' THEN
413 
414       PJI_PMV_ENGINE.Convert_Organization(P_TOP_ORGANIZATION_ID   => p_Organization
415                                      , P_VIEW_BY               => p_view_by
416                                      , P_TOP_ORGANIZATION_NAME => l_Top_Organization_Name );
417 
418       SELECT PJI_REP_U1(org_id,
419                         organization_id,
420                         time_id,
421                         time_key,
422                         util_category_id,
423                         work_type_id,
424                         job_level_id,
425                         sum(actual_capacity_hours),
426                         sum(missing_hours),
427                         sum(actual_util_hours),
428                         sum(billable_hours),
429                         sum(scheduled_util_hours),
430                         sum(scheduled_capacity_hours),
431                         sum(resource_hours),
432                         sum(total_resource_hours),
433                         sum(decode(l_denominator, 'CAPACITY', actual_capacity_hours, actual_hours)),
434                         sum(decode(l_denominator, 'CAPACITY', scheduled_capacity_hours, actual_hours)),
435                         sum(prior_actual_capacity_hours),
436                         sum(prior_missing_hours),
437                         sum(prior_actual_util_hours),
438                         sum(prior_billable_hours),
439                         sum(prior_sch_util_hours),
440                         sum(prior_sch_capacity_hours),
441                         sum(prior_resource_hours),
442                         sum(prior_total_resource_hours),
443                         sum(decode(l_denominator, 'CAPACITY', prior_actual_capacity_hours, prior_actual_hours)),
444                         sum(decode(l_denominator, 'CAPACITY', prior_sch_capacity_hours, prior_actual_hours)),
445                         null,null,null,null,null,null,
446                         null,null,null,null,null,null,
447                         null,null,null,null,null,null,
448                         null,null,null,null,null,null,null
449                         )
450       BULK COLLECT INTO l_u1_tbl
451       FROM ( /* Bug 3515594 */
452            SELECT /*+ ORDERED */
453                   hou.name                                org_id,
454                   horg.name                               organization_id,
455                   time.name                               time_id,
456                   DECODE(p_view_by, 'TM', time.id, -1)    time_key,
457                   '-1'                                    util_category_id,
458                   '-1'                                    work_type_id,
459                   '-1'                                    job_level_id,
460                   (capacity_hrs - reduce_capacity_hrs_a) / decode(l_labor_unit, 'DAYS', imp.FTE_DAY, 'WEEKS',imp.FTE_WEEK, 1) actual_capacity_hours,
461                   missing_hrs_a / decode(l_labor_unit, 'DAYS', imp.FTE_DAY, 'WEEKS',imp.FTE_WEEK, 1) missing_hours,
462                   total_wtd_org_hrs_a / decode(l_labor_unit, 'DAYS', imp.FTE_DAY, 'WEEKS',imp.FTE_WEEK, 1)
463                                                           actual_util_hours,
464                   bill_wtd_org_hrs_a / decode(l_labor_unit, 'DAYS', imp.FTE_DAY, 'WEEKS',imp.FTE_WEEK, 1)
465                                                           billable_hours,
466                   conf_wtd_org_hrs_s / decode(l_labor_unit, 'DAYS', imp.FTE_DAY, 'WEEKS',imp.FTE_WEEK, 1)
467                                                           scheduled_util_hours,
468                   (capacity_hrs - reduce_capacity_hrs_s) / decode(l_labor_unit, 'DAYS', imp.FTE_DAY, 'WEEKS',imp.FTE_WEEK, 1)
469                                                           scheduled_capacity_hours,
470                   total_hrs_a / decode(l_labor_unit, 'DAYS', imp.FTE_DAY, 'WEEKS',imp.FTE_WEEK, 1)
471                                                           actual_hours,
472                   conf_hrs_s / decode(l_labor_unit, 'DAYS', imp.FTE_DAY, 'WEEKS',imp.FTE_WEEK, 1)
473                                                           scheduled_hours,
474                   DECODE (l_sequence, 1, available_hrs_bkt1_s,
475                                       2, available_hrs_bkt2_s,
476                                       3, available_hrs_bkt3_s,
477                                       4, available_hrs_bkt4_s,
478                                       5, available_hrs_bkt5_s)
479                   / decode(l_labor_unit, 'DAYS', imp.FTE_DAY, 'WEEKS',imp.FTE_WEEK, 1)
480                                                           resource_hours,
481                   capacity_hrs / decode(l_labor_unit, 'DAYS', imp.FTE_DAY, 'WEEKS',imp.FTE_WEEK, 1)
482                                                           total_resource_hours,
483                   0                                       prior_actual_capacity_hours,
484                   0                                       prior_missing_hours,
485 		  0                                       prior_actual_util_hours,
486                   0                                       prior_billable_hours,
487                   0                                       prior_sch_util_hours,
488                   0                                       prior_sch_capacity_hours,
489                   0                                       prior_actual_hours,
490                   0                                       prior_scheduled_hours,
491                   0                                       prior_resource_hours,
492                   0                                       prior_total_resource_hours
493            FROM PJI_PMV_ORGZ_DIM_TMP horg,
494                 PJI_PMV_TIME_DIM_TMP time,
495                 PJI_RM_ORGO_F_MV fct,
496                 PJI_PMV_ORG_DIM_TMP hou,
497                 PA_IMPLEMENTATIONS_ALL imp
498            WHERE fct.expenditure_org_id = hou.id
499              AND fct.expenditure_organization_id = horg.id
500              AND fct.time_id = time.id
501              AND fct.period_type_id = time.period_type
502              AND fct.calendar_type  = decode(fct.period_type_id,1, 'C',time.calendar_type)
503              AND time.id is not null
504              AND hou.id = imp.org_id
505            UNION ALL
506 	   /* Bug 3515594 */
507            SELECT /*+ ORDERED */
508                   hou.name                                org_id,
509                   horg.name                               organization_id,
510                   time.name                               time_id,
511                   DECODE(p_view_by, 'TM', time.id, -1)    time_key,
512                   '-1'                                    util_category_id,
513                   '-1'                                    work_type_id,
514                   '-1'                                    job_level_id,
515                   0                                       actual_capacity_hours,
516                   0                                       missing_hours,
517 		  0                                       actual_util_hours,
518                   0                                       billable_hours,
519                   0                                       scheduled_util_hours,
520                   0                                       scheduled_capacity_hours,
521                   0                                       actual_hours,
522                   0                                       scheduled_hours,
523                   0                                       resource_hours,
524                   0                                       total_resource_hours,
525                   (capacity_hrs - reduce_capacity_hrs_a) / decode(l_labor_unit, 'DAYS', imp.FTE_DAY, 'WEEKS',imp.FTE_WEEK, 1)
526                                                           prior_actual_capacity_hours,
527                   missing_hrs_a / decode(l_labor_unit, 'DAYS', imp.FTE_DAY, 'WEEKS',imp.FTE_WEEK, 1)
528                                                           prior_missing_hours,
529                   total_wtd_org_hrs_a / decode(l_labor_unit, 'DAYS', imp.FTE_DAY, 'WEEKS',imp.FTE_WEEK, 1)
530                                                           prior_actual_util_hours,
531                   bill_wtd_org_hrs_a / decode(l_labor_unit, 'DAYS', imp.FTE_DAY, 'WEEKS',imp.FTE_WEEK, 1)
532                                                           prior_billable_hours,
533                   conf_wtd_org_hrs_s / decode(l_labor_unit, 'DAYS', imp.FTE_DAY, 'WEEKS',imp.FTE_WEEK, 1)
534                                                           prior_sch_util_hours,
535                   (capacity_hrs - reduce_capacity_hrs_s) / decode(l_labor_unit, 'DAYS', imp.FTE_DAY, 'WEEKS',imp.FTE_WEEK, 1)
536                                                           prior_sch_capacity_hours,
537                   total_hrs_a / decode(l_labor_unit, 'DAYS', imp.FTE_DAY, 'WEEKS',imp.FTE_WEEK, 1)
538                                                           prior_actual_hours,
539                   conf_hrs_s / decode(l_labor_unit, 'DAYS', imp.FTE_DAY, 'WEEKS',imp.FTE_WEEK, 1)
540                                                           prior_scheduled_hours,
541                   DECODE (l_sequence, 1, available_hrs_bkt1_s,
542                                       2, available_hrs_bkt2_s,
543                                       3, available_hrs_bkt3_s,
544                                       4, available_hrs_bkt4_s,
545                                       5, available_hrs_bkt5_s)
546                   / decode(l_labor_unit, 'DAYS', imp.FTE_DAY, 'WEEKS',imp.FTE_WEEK, 1)
547                                                           prior_resource_hours,
548                   capacity_hrs / decode(l_labor_unit, 'DAYS', imp.FTE_DAY, 'WEEKS',imp.FTE_WEEK, 1)
549                                                           prior_total_resource_hours
550            FROM PJI_PMV_ORGZ_DIM_TMP horg,
551                 PJI_PMV_TCMP_DIM_TMP time,
552                 PJI_RM_ORGO_F_MV fct,
553                 PJI_PMV_ORG_DIM_TMP hou,
554                 PA_IMPLEMENTATIONS_ALL imp
555            WHERE fct.expenditure_org_id = hou.id
556              AND fct.expenditure_organization_id = horg.id
557              AND fct.time_id = time.id
558              AND fct.period_type_id = time.period_type
559              AND fct.calendar_type  = decode(fct.period_type_id,1, 'C',time.calendar_type)
560              AND hou.id = imp.org_id
561            UNION ALL
562            SELECT '-1'                                    org_id,
563                   name                                    organization_id,
564                   '-1'                                    time_id,
565                   -1                                      time_key,
566                   '-1'                                    util_category_id,
567                   '-1'                                    work_type_id,
568                   '-1'                                    job_level_id,
569                   0                                       actual_capacity_hours,
570                   0                                       missing_hours,
571                   0                                       actual_util_hours,
572                   0                                       billable_hours,
573                   0                                       scheduled_util_hours,
574                   0                                       scheduled_capacity_hours,
575                   0                                       actual_hours,
576                   0                                       scheduled_hours,
577                   0                                       resource_hours,
578                   0                                       total_resource_hours,
579                   0                                       prior_actual_capacity_hours,
580                   0                                       prior_missing_hours,
581                   0                                       prior_actual_util_hours,
582                   0                                       prior_billable_hours,
583                   0                                       prior_sch_util_hours,
584                   0                                       prior_sch_capacity_hours,
585                   0                                       prior_actual_hours,
586                   0                                       prior_scheduled_hours,
587                   0                                       prior_resource_hours,
588                   0                                       prior_total_resource_hours
589            FROM PJI_PMV_ORGZ_DIM_TMP
590            WHERE name <> '-1'
591            UNION ALL
592            SELECT '-1'                                    org_id,
593                   '-1'                                    organization_id,
594                   name                                    time_id,
595                   order_by_id                             time_key,
596                   '-1'                                    util_category_id,
597                   '-1'                                    work_type_id,
598                   '-1'                                    job_level_id,
599                   0                                       actual_capacity_hours,
600                   0                                       missing_hours,
601                   0                                       actual_util_hours,
602                   0                                       billable_hours,
603                   0                                       scheduled_utilization_hours,
604                   0                                       scheduled_capacity_hours,
605                   0                                       actual_hours,
606                   0                                       scheduled_hours,
607                   0                                       resource_hours,
608                   0                                       total_resource_hours,
609                   0                                       prior_actual_capacity_hours,
610                   0                                       prior_missing_hours,
611                   0                                       prior_actual_util_hours,
612                   0                                       prior_billable_hours,
613                   0                                       prior_sch_util_hours,
614                   0                                       prior_sch_capacity_hours,
615                   0                                       prior_actual_hours,
616                   0                                       prior_scheduled_hours,
617                   0                                       prior_resource_hours,
618                   0                                       prior_total_resource_hours
619            FROM PJI_PMV_TIME_DIM_TMP
620            WHERE name <> '-1'
621            )
622            GROUP BY org_id,
623 		     organization_id,
624 		     time_id,
625 		     time_key,
626 		     util_category_id,
627                      work_type_id,
628 		     job_level_id;
629 
630    ELSIF l_job_flag = 'N' THEN
631 
632       PJI_PMV_ENGINE.Convert_Organization(P_TOP_ORGANIZATION_ID   => p_Organization
633                                      , P_VIEW_BY               => p_view_by
634                                      , P_TOP_ORGANIZATION_NAME => l_Top_Organization_Name );
635 
636 
637       SELECT PJI_REP_U1(org_id,
638                         organization_id,
639                         time_id,
640                         time_key,
641                         util_category_id,
642                         work_type_id,
643                         job_level_id,
644                         sum(capacity_hours-act_reduce_capacity_hours),
645                         sum(decode (p_view_by, 'UC', null, 'WT',null, missing_hours)),
646                         sum(actual_util_hours),
647                         sum(billable_hours),
648                         sum(scheduled_util_hours),
649                         sum(capacity_hours-sch_reduce_capacity_hours),
650                         0,           -- resource_hours
651                         0,           -- total_resource_hours,
652                         sum(decode(l_denominator, 'CAPACITY', capacity_hours-act_reduce_capacity_hours, total_actual_hours)),
653                         sum(decode(l_denominator, 'CAPACITY', capacity_hours-sch_reduce_capacity_hours, total_actual_hours)),
654                         sum(prior_act_capacity_hours-prior_act_red_capacity_hours),
655                         sum(decode (p_view_by, 'UC', null, 'WT',null, prior_missing_hours)),
656                         sum(prior_actual_util_hours),
657                         sum(prior_billable_hours),
658                         sum(prior_sch_util_hours),
659                         sum(prior_act_capacity_hours-prior_act_red_capacity_hours),
660                         0,           -- prior_resource_hours
661                         0,           -- prior_total_resource_hours
662                         sum(decode(l_denominator, 'CAPACITY', prior_act_capacity_hours-prior_act_red_capacity_hours,
663                            prior_total_actual_hours)),
664                         sum(decode(l_denominator, 'CAPACITY', prior_act_capacity_hours-prior_act_red_capacity_hours,
665                            prior_total_actual_hours)),
666                         null,null,null,null,null,null,
667                         null,null,null,null,null,null,
668                         null,null,null,null,null,null,
669                         null,null,null,null,null,null,null)
670       BULK COLLECT INTO l_u1_tbl
671       FROM ( /* Bug 3515594 */
672            SELECT /*+ ORDERED */
673                   hou.name                                org_id,
674                   horg.name                               organization_id,
675                   time.name                               time_id,
676                   DECODE(p_view_by, 'TM', time.id, -1)    time_key,
677                   decode(p_view_by, 'UC', wt.name, '-1')  util_category_id,
678                   decode(p_view_by, 'WT', wt.name, '-1')  work_type_id,
679                   '-1'                                    job_level_id,
680                   0                                       capacity_hours,
681                   0                                       act_reduce_capacity_hours,
682                   null                                    missing_hours,
683 		  0 					  total_actual_hours,
684                   (fct.total_hrs_a / decode(l_labor_unit, 'DAYS', imp.FTE_DAY, 'WEEKS',imp.FTE_WEEK, 1)) *
685                   worktype.org_utilization_percentage / 100
686                                                           actual_util_hours,
687 
688                   (fct.bill_hrs_a * worktype.org_utilization_percentage / 100)
689                                  / decode(l_labor_unit, 'DAYS', imp.FTE_DAY, 'WEEKS',imp.FTE_WEEK, 1)
690                                                           billable_hours,
691                   (fct.conf_hrs_s / decode(l_labor_unit, 'DAYS', imp.FTE_DAY, 'WEEKS',imp.FTE_WEEK, 1)) *
692                   worktype.org_utilization_percentage / 100
693                                                           scheduled_util_hours,
694                   0                                       sch_reduce_capacity_hours,
695                   fct.total_hrs_a / decode(l_labor_unit, 'DAYS', imp.FTE_DAY, 'WEEKS',imp.FTE_WEEK, 1)
696                                                           actual_hours,
697                   fct.conf_hrs_s / decode(l_labor_unit, 'DAYS', imp.FTE_DAY, 'WEEKS',imp.FTE_WEEK, 1)
698                                                           scheduled_hours,
699                   0                                       prior_act_capacity_hours,
700                   0                                       prior_act_red_capacity_hours,
701                   null                                    prior_missing_hours,
702 		  0 					  prior_total_actual_hours,
703 		  0                                       prior_actual_util_hours,
704                   0                                       prior_billable_hours,
705                   0                                       prior_sch_util_hours,
706                   0                                       prior_actual_hours,
707                   0                                       prior_scheduled_hours
708            FROM PJI_PMV_ORGZ_DIM_TMP horg,
709                 PJI_PMV_TIME_DIM_TMP time,
710                 PJI_PMV_WT_DIM_TMP wt,
711                 PJI_RM_WTO_F_MV fct,
712                 PJI_PMV_ORG_DIM_TMP hou,
713                 PA_WORK_TYPES_B worktype,
714                 PA_IMPLEMENTATIONS_ALL imp
715            WHERE fct.expenditure_org_id = hou.id
716              AND fct.expenditure_organization_id = horg.id
717              AND wt.id = worktype.work_type_id
718              AND fct.work_type_id = wt.id
719              AND fct.time_id = time.id
720              AND fct.period_type_id = time.period_type
721              AND fct.calendar_type  = decode(fct.period_type_id,1, 'C',time.calendar_type)
722              AND time.id is not null
723              AND hou.id = imp.org_id
724            UNION ALL
725 	   /* Bug 3515594 */
726            SELECT /*+ ORDERED */
727                   hou.name                                org_id,
728                   horg.name                               organization_id,
729                   time.name                               time_id,
730                   DECODE(p_view_by, 'TM', time.id, -1)    time_key,
731                   decode(p_view_by, 'UC', wt.name, '-1')  util_category_id,
732                   decode(p_view_by, 'WT', wt.name, '-1')  work_type_id,
733                   '-1'                                    job_level_id,
734                   0                                       capacity_hours,
735                   0                                       act_reduce_capacity_hours,
736                   null                                    missing_hours,
737 		  0 					  total_actual_hours,
738 		  0                                       actual_util_hours,
739                   0                                       billable_hours,
740                   0                                       scheduled_util_hours,
741                   0                                       sch_reduce_capacity_hours,
742                   0                                       actual_hours,
743                   0                                       scheduled_hours,
744                   0                                       prior_act_capacity_hours,
745                   0                                       prior_act_red_capacity_hours,
746                   null                                    prior_missing_hours,
747 		  0 					  prior_total_actual_hours,
748                   (fct.total_hrs_a / decode(l_labor_unit, 'DAYS', imp.FTE_DAY, 'WEEKS',imp.FTE_WEEK, 1))
749                   * worktype.org_utilization_percentage / 100
750                                                           prior_actual_util_hours,
751                   (fct.bill_hrs_a * worktype.org_utilization_percentage / 100)
752                                  / decode(l_labor_unit, 'DAYS', imp.FTE_DAY, 'WEEKS',imp.FTE_WEEK, 1)
753                                                           prior_billable_hours,
754                   (fct.conf_hrs_s / decode(l_labor_unit, 'DAYS', imp.FTE_DAY, 'WEEKS',imp.FTE_WEEK, 1)) *
755                   worktype.org_utilization_percentage / 100
756                                                           prior_sch_util_hours,
757                   fct.total_hrs_a / decode(l_labor_unit, 'DAYS', imp.FTE_DAY, 'WEEKS',imp.FTE_WEEK, 1)
758                                                           prior_actual_hours,
759                   fct.conf_hrs_s / decode(l_labor_unit, 'DAYS', imp.FTE_DAY, 'WEEKS',imp.FTE_WEEK, 1)
760                                                           prior_scheduled_hours
761            FROM PJI_PMV_ORGZ_DIM_TMP horg,
762                 PJI_PMV_TCMP_DIM_TMP time,
763                 PJI_PMV_WT_DIM_TMP wt,
764                 PJI_RM_WTO_F_MV fct,
765                 PJI_PMV_ORG_DIM_TMP hou,
766                 PA_WORK_TYPES_B worktype,
767                 PA_IMPLEMENTATIONS_ALL imp
768            WHERE fct.expenditure_org_id = hou.id
769              AND fct.expenditure_organization_id = horg.id
770              AND wt.id = worktype.work_type_id
771              AND fct.work_type_id = wt.id
772              AND fct.time_id = time.id
773              AND fct.period_type_id = time.period_type
774              AND fct.calendar_type  = decode(fct.period_type_id,1, 'C',time.calendar_type)
775              AND hou.id = imp.org_id
776            UNION ALL
777            SELECT '-1'                                    org_id,
778                   name                                    organization_id,
779                   '-1'                                    time_id,
780                   -1                                      time_key,
781                   '-1'                                    util_category_id,
782                   '-1'                                    work_type_id,
783                   '-1'                                    job_level_id,
784                   0                                       capacity_hours,
785                   0                                       act_reduce_capacity_hours,
786 		  null                                    missing_hours,
787 		  0 					  total_actual_hours,
788                   0                                       actual_util_hours,
789                   0                                       billable_hours,
790                   0                                       scheduled_util_hours,
791                   0                                       sch_reduce_capacity_hours,
792                   0                                       actual_hours,
793                   0                                       scheduled_hours,
794                   0                                       prior_act_capacity_hours,
795                   0                                       prior_act_red_capacity_hours,
796                   null                                    prior_missing_hours,
797 		  0 					  prior_total_actual_hours,
798 		  0                                       prior_actual_util_hours,
799                   0                                       prior_billable_hours,
800                   0                                       prior_sch_util_hours,
801                   0                                       prior_actual_hours,
802                   0                                       prior_scheduled_hours
803            FROM PJI_PMV_ORGZ_DIM_TMP
804            WHERE name <> '-1'
805            UNION ALL
806            SELECT '-1'                                    org_id,
807                   '-1'                                    organization_id,
808                   '-1'                                    time_id,
809                   -1                                      time_key,
810                   decode(p_view_by, 'UC', name, '-1')     util_category_id,
811                   decode(p_view_by, 'WT', name, '-1')     work_type_id,
812                   '-1'                                    job_level_id,
813                  -- 0                                       actual_capacity_hours,
814                   0                                       capacity_hours,
815                   0                                       act_reduce_capacity_hours,
816                   null                                    missing_hours,
817                   0 					  total_actual_hours,
818 		  0                                       actual_util_hours,
819                   0                                       billable_hours,
820                   0                                       scheduled_util_hours,
821                   0                                       sch_reduce_capacity_hours,
822                   0                                       actual_hours,
823                   0                                       scheduled_hours,
824                   0                                       prior_act_capacity_hours,
825                   0                                       prior_act_red_capacity_hours,
826                   null                                    prior_missing_hours,
827 		  0 					  prior_total_actual_hours,
828 		  0                                       prior_actual_util_hours,
829                   0                                       prior_billable_hours,
830                   0                                       prior_sch_util_hours,
831                   0                                       prior_actual_hours,
832                   0                                       prior_scheduled_hours
833            FROM PJI_PMV_WT_DIM_TMP
834            WHERE name <> '-1'
835            UNION ALL
836            SELECT '-1'                                    org_id,
837                   '-1'                                    organization_id,
838                   name                                    time_id,
839                   order_by_id                             time_key,
840                   '-1'                                    util_category_id,
841                   '-1'                                    work_type_id,
842                   '-1'                                    job_level_id,
843                   0                                       capacity_hours,
844                   0                                       act_reduce_capacity_hours,
845                   null                                    missing_hours,
846 		  0 					  total_actual_hours,
847 		  0                                       actual_util_hours,
848                   0                                       billable_hours,
849                   0                                       scheduled_util_hours,
850                   0                                       sch_reduce_capacity_hours,
851                   0                                       actual_hours,
852                   0                                       scheduled_hours,
853                   0                                       prior_act_capacity_hours,
854                   0                                       prior_act_red_capacity_hours,
855                   null                                    prior_missing_hours,
856 		  0 					  prior_total_actual_hours,
857 		  0                                       prior_actual_util_hours,
858                   0                                       prior_billable_hours,
859                   0                                       prior_sch_util_hours,
860                   0                                       prior_actual_hours,
861                   0                                       prior_scheduled_hours
862            FROM PJI_PMV_TIME_DIM_TMP
863            WHERE name <> '-1'
864            UNION ALL  -- added for current year capacity_hours
865            SELECT
866                   FACT.org_id,
867                   FACT.organization_id,
868                   FACT.time_id,
869                   FACT.time_key,
870                   decode(p_view_by, 'UC', WT.name, '-1')  util_category_id,
871                   decode(p_view_by, 'WT', WT.name, '-1')  work_type_id,
872                   '-1'                                    job_level_id,
873                   FACT.capacity_hours,
874                   FACT.reduce_capacity_hrs_a              act_reduce_capacity_hours,
875                   FACT.missing_hrs_a                      missing_hours,
876 		  FACT.total_actual_hours                 total_actual_hours,
877 		  0                                       actual_util_hours,
878                   0                                       billable_hours,
879                   0                                       scheduled_util_hours,
880                   FACT.reduce_capacity_hrs_s              sch_reduce_capacity_hours,
881                   0                                       actual_hours,
882                   0                                       scheduled_hours,
883                   0                                       prior_act_capacity_hours,
884                   0                                       prior_act_red_capacity_hours,
885                   null                                    prior_missing_hours,
886 		  0 					  prior_total_actual_hours,
887 		  0                                       prior_actual_util_hours,
888                   0                                       prior_billable_hours,
889                   0                                       prior_sch_util_hours,
890                   0                                       prior_actual_hours,
891                   0                                       prior_scheduled_hours
892            FROM
893 	    /* Bug 3515594 */
894             (SELECT /*+ ORDERED */
895                      hou.name                                org_id,
896                      horg.name                               organization_id,
897                      time.name                               time_id,
898                      DECODE(p_view_by, 'TM', time.id, -1)    time_key,
899                      fct.capacity_hrs / decode(l_labor_unit, 'DAYS', imp.FTE_DAY, 'WEEKS',imp.FTE_WEEK, 1)
900                                                              capacity_hours,
901                      fct.total_hrs_a / decode(l_labor_unit, 'DAYS', imp.FTE_DAY, 'WEEKS',imp.FTE_WEEK, 1)
902                                                              total_actual_hours,
903                      fct.missing_hrs_a / decode(l_labor_unit, 'DAYS', imp.FTE_DAY, 'WEEKS',imp.FTE_WEEK, 1)
904 							     missing_hrs_a,
905                      fct.reduce_capacity_hrs_a / decode(l_labor_unit, 'DAYS', imp.FTE_DAY, 'WEEKS',imp.FTE_WEEK, 1)
906                                                              reduce_capacity_hrs_a,
907                      fct.reduce_capacity_hrs_s / decode(l_labor_unit, 'DAYS', imp.FTE_DAY, 'WEEKS',imp.FTE_WEEK, 1)
908                                                              reduce_capacity_hrs_s
909              FROM PJI_PMV_ORGZ_DIM_TMP horg,
910                   PJI_PMV_TIME_DIM_TMP time,
911                   PJI_RM_ORGO_F_MV fct,
912                   PJI_PMV_ORG_DIM_TMP hou,
913                   PA_IMPLEMENTATIONS_ALL imp
914              WHERE fct.expenditure_org_id = hou.id
915              AND   fct.expenditure_organization_id = horg.id
916              AND   fct.time_id = time.id
917              AND   fct.period_type_id = time.period_type
918              AND   fct.calendar_type  = decode(fct.period_type_id,1, 'C',time.calendar_type)
919              AND   time.id is not null
920              AND   hou.id = imp.org_id )         FACT,
921              (SELECT distinct WT.name
922               FROM   PJI_PMV_WT_DIM_TMP wt )     WT
923            UNION ALL  -- added for prior year capacity_hours
924 	   /* Bug 3515594 */
925            SELECT
926                   FACT.org_id,
927                   FACT.organization_id,
928                   FACT.time_id,
929                   FACT.time_key,
930                   decode(p_view_by, 'UC', WT.name, '-1')  util_category_id,
931                   decode(p_view_by, 'WT', WT.name, '-1')  work_type_id,
932                   '-1'                                    job_level_id,
933                   0                                       capacity_hours,
934                   0                                       act_reduce_capacity_hours,
935 		  null                                    missing_hours,
936 		  0 					  total_actual_hours,
937 		  0                                       actual_util_hours,
938                   0                                       billable_hours,
939                   0                                       scheduled_util_hours,
940                   0                                       sch_reduce_capacity_hours,
941                   0                                       actual_hours,
942                   0                                       scheduled_hours,
943                   FACT.capacity_hours                     prior_act_capacity_hours,
944                   FACT.reduce_capacity_hrs_a              prior_act_red_capacity_hours,
945                   FACT.missing_hrs_a                      prior_missing_hours,
946 		  FACT.total_actual_hours    		  prior_total_actual_hours,
947                   0                                       prior_actual_util_hours,
948                   0                                       prior_billable_hours,
949                   0                                       prior_sch_util_hours,
950                   0                                       prior_actual_hours,
951                   0                                       prior_scheduled_hours
952            FROM
953             (SELECT /*+ ORDERED */
954                      hou.name                                org_id,
955                      horg.name                               organization_id,
956                      time.name                               time_id,
957                      DECODE(p_view_by, 'TM', time.id, -1)    time_key,
958                      fct.capacity_hrs / decode(l_labor_unit, 'DAYS', imp.FTE_DAY, 'WEEKS',imp.FTE_WEEK, 1)
959                                                           capacity_hours,
960 		     fct.total_hrs_a / decode(l_labor_unit, 'DAYS', imp.FTE_DAY, 'WEEKS',imp.FTE_WEEK, 1)
961                                                              total_actual_hours,
962 		     fct.missing_hrs_a / decode(l_labor_unit, 'DAYS', imp.FTE_DAY, 'WEEKS',imp.FTE_WEEK, 1)
963                                                           missing_hrs_a,
964                      fct.reduce_capacity_hrs_a / decode(l_labor_unit, 'DAYS', imp.FTE_DAY, 'WEEKS',imp.FTE_WEEK, 1)
965                                                           reduce_capacity_hrs_a
966              FROM PJI_PMV_ORGZ_DIM_TMP horg,
967                   PJI_PMV_TCMP_DIM_TMP time,
968                   PJI_RM_ORGO_F_MV fct,
969                   PJI_PMV_ORG_DIM_TMP hou,
970                   PA_IMPLEMENTATIONS_ALL imp
971              WHERE fct.expenditure_org_id = hou.id
972              AND   fct.expenditure_organization_id = horg.id
973              AND   fct.time_id = time.id
974              AND   fct.period_type_id = time.period_type
975              AND   fct.calendar_type  = decode(fct.period_type_id,1, 'C',time.calendar_type)
976              AND   hou.id = imp.org_id )         FACT,
977              (SELECT distinct WT.name
978               FROM   PJI_PMV_WT_DIM_TMP wt )     WT
979            )
980            GROUP BY org_id,
981 		     organization_id,
982 		     time_id,
983 		     time_key,
984 		     util_category_id,
985              work_type_id,
986 		     job_level_id;
987 
988 
989    ELSIF l_util_category_flag = 'N' THEN
990 
991       PJI_PMV_ENGINE.Convert_Organization(P_TOP_ORGANIZATION_ID   => p_Organization
992                                         , P_VIEW_BY               => p_view_by
993                                         , P_TOP_ORGANIZATION_NAME => l_Top_Organization_Name );
994 
995 
996       SELECT PJI_REP_U1(org_id,
997                         organization_id,
998                         time_id,
999                         time_key,
1000                         util_category_id,
1001                         work_type_id,
1002                         job_level_id,
1003                         sum(capacity_hrs - reduce_capacity_hrs_a),
1004                         --null,
1005                         sum(missing_hours),
1006                         sum(actual_util_hours),
1007                         sum(billable_hours),
1008                         sum(scheduled_util_hours),
1009                         sum(capacity_hrs - reduce_capacity_hrs_s),
1010                         0,           -- resource_hours
1011                         0,           -- total_resource_hours,
1012                         sum(decode(l_denominator, 'CAPACITY', capacity_hrs - reduce_capacity_hrs_a, actual_hours)),
1013                         sum(decode(l_denominator, 'CAPACITY', capacity_hrs - reduce_capacity_hrs_s, actual_hours)),
1014                         sum (prior_capacity_hours - prior_reduce_capacity_hrs_a),
1015                         sum(prior_missing_hours),
1016                         --null,
1017                         sum(prior_actual_util_hours),
1018                         sum(prior_billable_hours),
1019                         sum(prior_sch_util_hours),
1020                         sum(prior_capacity_hours - prior_reduce_capacity_hrs_s),
1021                         0,           -- prior_resource_hours
1022                         0,           -- prior_total_resource_hours
1023                         sum(decode(l_denominator, 'CAPACITY', prior_capacity_hours - prior_reduce_capacity_hrs_a, prior_actual_hours)),
1024                         sum(decode(l_denominator, 'CAPACITY', prior_capacity_hours - prior_reduce_capacity_hrs_s, prior_actual_hours)),
1025                         null,null,null,null,null,null,
1026                         null,null,null,null,null,null,
1027                         null,null,null,null,null,null,
1028                         null,null,null,null,null,null,null
1029                         )
1030       /* Bug 3515594 */
1031       BULK COLLECT INTO l_u1_tbl
1032       FROM (
1033            SELECT /*+ ORDERED */
1034                   hou.name                                org_id,
1035                   horg.name                               organization_id,
1036                   time.name                               time_id,
1037                   DECODE(p_view_by, 'TM', time.id, -1)    time_key,
1038                   '-1'                                    util_category_id,
1039                   '-1'                                    work_type_id,
1040                   job.name                                job_level_id,
1041                   capacity_hrs                            capacity_hrs,
1042                   reduce_capacity_hrs_a                   reduce_capacity_hrs_a,
1043                   missing_hrs_a                           missing_hours,
1044                   total_wtd_org_hrs_a / decode(l_labor_unit, 'DAYS', imp.FTE_DAY, 'WEEKS',imp.FTE_WEEK, 1)
1045                                                           actual_util_hours,
1046                   bill_wtd_org_hrs_a / decode(l_labor_unit, 'DAYS', imp.FTE_DAY, 'WEEKS',imp.FTE_WEEK, 1)
1047                                                           billable_hours,
1048                   conf_wtd_org_hrs_s / decode(l_labor_unit, 'DAYS', imp.FTE_DAY, 'WEEKS',imp.FTE_WEEK, 1)
1049                                                           scheduled_util_hours,
1050                   reduce_capacity_hrs_s                   reduce_capacity_hrs_s,
1051                   total_hrs_a / decode(l_labor_unit, 'DAYS', imp.FTE_DAY, 'WEEKS',imp.FTE_WEEK, 1)
1052                                                           actual_hours,
1053                   conf_hrs_s / decode(l_labor_unit, 'DAYS', imp.FTE_DAY, 'WEEKS',imp.FTE_WEEK, 1)
1054                                                           scheduled_hours,
1055                   0                                       prior_capacity_hours,
1056                   0                                       prior_reduce_capacity_hrs_a,
1057                   0                                       prior_reduce_capacity_hrs_s,
1058                   0                                       prior_missing_hours,
1059                   0                                       prior_actual_util_hours,
1060                   0                                       prior_billable_hours,
1061                   0                                       prior_sch_util_hours,
1062                   0                                       prior_actual_hours,
1063                   0                                       prior_scheduled_hours
1064            FROM PJI_PMV_ORGZ_DIM_TMP horg,
1065                 PJI_PMV_TIME_DIM_TMP time,
1066                 PJI_PMV_JB_DIM_TMP job,
1067                 PJI_RM_JOBO_F_MV fct,
1068                 PJI_PMV_ORG_DIM_TMP hou,
1069                 PA_IMPLEMENTATIONS_ALL imp
1070            WHERE fct.expenditure_org_id = hou.id
1071              AND fct.expenditure_organization_id = horg.id
1072              AND fct.job_id = job.id
1073              AND fct.time_id = time.id
1074              AND fct.period_type_id = time.period_type
1075              AND fct.calendar_type  = decode(fct.period_type_id,1, 'C',time.calendar_type)
1076              AND time.id is not null
1077              AND hou.id = imp.org_id
1078            UNION ALL
1079 	   /* Bug 3515594 */
1080            SELECT /*+ ORDERED */
1081                   hou.name                                org_id,
1082                   horg.name                               organization_id,
1083                   time.name                               time_id,
1084                   DECODE(p_view_by, 'TM', time.id, -1)    time_key,
1085                   '-1'                                    util_category_id,
1086                   '-1'                                    work_type_id,
1087                   job.name                                job_level_id,
1088                   0                                       capacity_hours,
1089                   0                                       reduce_capacity_hrs_a,
1090                   0                                       reduce_capacity_hrs_s,
1091                   0                                       missing_hours,
1092                   0                                       actual_util_hours,
1093                   0                                       billable_hours,
1094                   0                                       scheduled_util_hours,
1095                   0                                       actual_hours,
1096                   0                                       scheduled_hours,
1097                   0                                       prior_capacity_hours,
1098                   reduce_capacity_hrs_a                   prior_reduce_capacity_hrs_a,
1099                   missing_hrs_a                           prior_missing_hours,
1100                   total_wtd_org_hrs_a / decode(l_labor_unit, 'DAYS', imp.FTE_DAY, 'WEEKS',imp.FTE_WEEK, 1)
1101                                                           prior_actual_util_hours,
1102                   bill_wtd_org_hrs_a / decode(l_labor_unit, 'DAYS', imp.FTE_DAY, 'WEEKS',imp.FTE_WEEK, 1)
1103                                                           prior_billable_hours,
1104                   conf_wtd_org_hrs_s / decode(l_labor_unit, 'DAYS', imp.FTE_DAY, 'WEEKS',imp.FTE_WEEK, 1)
1105                                                           prior_sch_util_hours,
1106                   reduce_capacity_hrs_s                   prior_reduce_capacity_hrs_s,
1107                   total_hrs_a / decode(l_labor_unit, 'DAYS', imp.FTE_DAY, 'WEEKS',imp.FTE_WEEK, 1)
1108                                                           prior_actual_hours,
1109                   conf_hrs_s / decode(l_labor_unit, 'DAYS', imp.FTE_DAY, 'WEEKS',imp.FTE_WEEK, 1)
1110                                                           prior_scheduled_hours
1111            FROM PJI_PMV_ORGZ_DIM_TMP horg,
1112                 PJI_PMV_TCMP_DIM_TMP time,
1113                 PJI_PMV_JB_DIM_TMP job,
1114                 PJI_RM_JOBO_F_MV fct,
1115                 PJI_PMV_ORG_DIM_TMP hou,
1116                 PA_IMPLEMENTATIONS_ALL imp
1117            WHERE fct.expenditure_org_id = hou.id
1118              AND fct.expenditure_organization_id = horg.id
1119              AND fct.job_id = job.id
1120              AND fct.time_id = time.id
1121              AND fct.period_type_id = time.period_type
1122              AND fct.calendar_type  = decode(fct.period_type_id,1, 'C',time.calendar_type)
1123              AND hou.id = imp.org_id
1124            UNION ALL
1125            SELECT '-1'                                    org_id,
1126                   name                                    organization_id,
1127                   '-1'                                    time_id,
1128                   -1                                      time_key,
1129                   '-1'                                    util_category_id,
1130                   '-1'                                    work_type_id,
1131                   '-1'                                    job_level_id,
1132                   0                                       capacity_hours,
1133                   0                                       reduce_capacity_hrs_a,
1134                   0                                       reduce_capacity_hrs_s,
1135                   null                                    missing_hours,
1136                   0                                       actual_util_hours,
1137                   0                                       billable_hours,
1138                   0                                       scheduled_util_hours,
1139                   0                                       actual_hours,
1140                   0                                       scheduled_hours,
1141                   0                                       prior_capacity_hours,
1142                   0                                       prior_reduce_capacity_hrs_a,
1143                   0                                       prior_reduce_capacity_hrs_s,
1144                   null                                    prior_missing_hours,
1145                   0                                       prior_actual_util_hours,
1146                   0                                       prior_billable_hours,
1147                   0                                       prior_sch_util_hours,
1148                   0                                       prior_actual_hours,
1149                   0                                       prior_scheduled_hours
1150            FROM PJI_PMV_ORGZ_DIM_TMP
1151            WHERE name <> '-1'
1152            UNION ALL
1153            SELECT '-1'                                    org_id,
1154                   '-1'                                    organization_id,
1155                   '-1'                                    time_id,
1156                   -1                                      time_key,
1157                   '-1'                                    util_category_id,
1158                   '-1'                                    work_type_id,
1159                   name                                    job_level_id,
1160                   0                                       capacity_hours,
1161                   0                                       reduce_capacity_hrs_a,
1162                   0                                       reduce_capacity_hrs_s,
1163                   null                                    missing_hours,
1164                   0                                       actual_util_hours,
1165                   0                                       billable_hours,
1166                   0                                       scheduled_util_hours,
1167                   0                                       actual_hours,
1168                   0                                       scheduled_hours,
1169                   0                                       prior_capacity_hours,
1170                   0                                       prior_reduce_capacity_hrs_a,
1171                   0                                       prior_reduce_capacity_hrs_s,
1172                   null                                    prior_missing_hours,
1173                   0                                       prior_actual_util_hours,
1174                   0                                       prior_billable_hours,
1175                   0                                       prior_sch_util_hours,
1176                   0                                       prior_actual_hours,
1177                   0                                       prior_scheduled_hours
1178            FROM PJI_PMV_JB_DIM_TMP
1179            WHERE name <> '-1'
1180            UNION ALL
1181            SELECT '-1'                                    org_id,
1182                   '-1'                                    organization_id,
1183                   name                                    time_id,
1184                   order_by_id                             time_key,
1185                   '-1'                                    util_category_id,
1186                   '-1'                                    work_type_id,
1187                   '-1'                                    job_level_id,
1188                   0                                       capacity_hours,
1189                   0                                       reduce_capacity_hrs_a,
1190                   0                                       reduce_capacity_hrs_s,
1191                   null                                    missing_hours,
1192                   0                                       actual_util_hours,
1193                   0                                       billable_hours,
1194                   0                                       scheduled_util_hours,
1195                   0                                       actual_hours,
1196                   0                                       scheduled_hours,
1197                   0                                       prior_capacity_hours,
1198                   0                                       prior_reduce_capacity_hrs_a,
1199                   0                                       prior_reduce_capacity_hrs_s,
1200                   null                                    prior_missing_hours,
1201                   0                                       prior_actual_util_hours,
1202                   0                                       prior_billable_hours,
1203                   0                                       prior_sch_util_hours,
1204                   0                                       prior_actual_hours,
1205                   0                                       prior_scheduled_hours
1206            FROM PJI_PMV_TIME_DIM_TMP
1207            WHERE name <> '-1'
1208            )
1209            GROUP BY org_id,
1210 		    organization_id,
1211 		    time_id,
1212 		    time_key,
1213 		    util_category_id,
1214             work_type_id,
1215 		    job_level_id;
1216 
1217    ELSE
1218 
1219       PJI_PMV_ENGINE.Convert_Organization( p_Organization, p_view_by);
1220 
1221       SELECT PJI_REP_U1(org_id,
1222                         organization_id,
1223                         time_id,
1224                         time_key,
1225                         util_category_id,
1226                         work_type_id,
1227                         job_level_id,
1228                         sum(capacity_hours-act_reduce_capacity_hours),
1229                         sum(decode (p_view_by, 'UC', null, 'WT',null, missing_hours)),
1230                         sum(actual_util_hours),
1231                         sum(billable_hours),
1232                         sum(scheduled_util_hours),
1233                         sum(capacity_hours-sch_reduce_capacity_hours),
1234                         0,           -- resource_hours
1235                         0,           -- total_resource_hours,
1236                         sum(decode(l_denominator, 'CAPACITY', capacity_hours-act_reduce_capacity_hours, total_actual_hours)),
1237                         sum(decode(l_denominator, 'CAPACITY', capacity_hours-sch_reduce_capacity_hours, total_actual_hours)),
1238                         sum(prior_act_capacity_hours-prior_act_red_capacity_hours),
1239                         sum(decode (p_view_by, 'UC', null, 'WT',null, prior_missing_hours)),
1240                         sum(prior_actual_util_hours),
1241                         sum(prior_billable_hours),
1242                         sum(prior_sch_util_hours),
1243                         sum(prior_act_capacity_hours-prior_act_red_capacity_hours),
1244                         0,           -- prior_resource_hours
1245                         0,           -- prior_total_resource_hours
1246                         sum(decode(l_denominator, 'CAPACITY', prior_act_capacity_hours-prior_act_red_capacity_hours,
1247                            prior_total_actual_hours)),
1248                         sum(decode(l_denominator, 'CAPACITY', prior_act_capacity_hours-prior_act_red_capacity_hours,
1249                            prior_total_actual_hours)),
1250                         null,null,null,null,null,null,
1251                         null,null,null,null,null,null,
1252                         null,null,null,null,null,null,
1253                         null,null,null,null,null,null,null
1254                         )
1255 	/* Bug 3515594 */
1256       BULK COLLECT INTO l_u1_tbl
1257       FROM (
1258            SELECT /*+ ORDERED */
1259                   hou.name                                org_id,
1260                   horg.name                               organization_id,
1261                   time.name                               time_id,
1262                   DECODE(p_view_by, 'TM', time.id, -1)    time_key,
1263                   decode(p_view_by, 'UC', wt.name, '-1')  util_category_id,
1264                   decode(p_view_by, 'WT', wt.name, '-1')  work_type_id,
1265 
1266                   job.name                                job_level_id,
1267                   0                                       capacity_hours,
1268                   0                                       act_reduce_capacity_hours,
1269                   null                                    missing_hours,
1270   		  0 					  total_actual_hours,
1271                   (fct.total_hrs_a / decode(l_labor_unit, 'DAYS', imp.FTE_DAY, 'WEEKS',imp.FTE_WEEK, 1)) *
1272                   worktype.org_utilization_percentage / 100
1273                                                           actual_util_hours,
1274 
1275                   (fct.bill_hrs_a * worktype.org_utilization_percentage / 100)
1276                                  / decode(l_labor_unit, 'DAYS', imp.FTE_DAY, 'WEEKS',imp.FTE_WEEK, 1)
1277                                                           billable_hours,
1278                   (fct.conf_hrs_s / decode(l_labor_unit, 'DAYS', imp.FTE_DAY, 'WEEKS',imp.FTE_WEEK, 1)) *
1279                   worktype.org_utilization_percentage / 100
1280                                                           scheduled_util_hours,
1281                   0                                       sch_reduce_capacity_hours,
1282                   fct.total_hrs_a / decode(l_labor_unit, 'DAYS', imp.FTE_DAY, 'WEEKS',imp.FTE_WEEK, 1)
1283                                                           actual_hours,
1284                   fct.conf_hrs_s / decode(l_labor_unit, 'DAYS', imp.FTE_DAY, 'WEEKS',imp.FTE_WEEK, 1)
1285                                                           scheduled_hours,
1286                   0                                       prior_act_capacity_hours,
1287                   0                                       prior_act_red_capacity_hours,
1288                   null                                    prior_missing_hours,
1289 		  0 					  prior_total_actual_hours,
1290 		  0                                       prior_actual_util_hours,
1291                   0                                       prior_billable_hours,
1292                   0                                       prior_sch_util_hours,
1293                -- 0                                       prior_sch_capacity_hours,
1294                   0                                       prior_actual_hours,
1295                   0                                       prior_scheduled_hours
1296            FROM PJI_PMV_ORGZ_DIM_TMP horg,
1297                 PJI_PMV_TIME_DIM_TMP time,
1298                 PJI_PMV_WT_DIM_TMP wt,
1299                 PJI_RM_RES_WT_F fct,
1300                 PJI_PMV_ORG_DIM_TMP hou,
1301                 PJI_PMV_JB_DIM_TMP job,
1302                 PA_WORK_TYPES_B worktype,
1303                 PA_IMPLEMENTATIONS_ALL imp
1304            WHERE fct.expenditure_org_id = hou.id
1305              AND fct.expenditure_organization_id = horg.id
1306              AND wt.id = worktype.work_type_id
1307              AND fct.work_type_id = wt.id
1308              AND fct.job_id = job.id
1309              AND fct.time_id = time.id
1310              AND fct.period_type_id = time.period_type
1311              AND fct.calendar_type  = decode(fct.period_type_id,1, 'C',time.calendar_type)
1312              AND time.id is not null
1313              AND hou.id = imp.org_id
1314            UNION ALL
1315 	   /* Bug 3515594 */
1316            SELECT  /*+ ORDERED */
1317                   hou.name                                org_id,
1318                   horg.name                               organization_id,
1319                   time.name                               time_id,
1320                   DECODE(p_view_by, 'TM', time.id, -1)    time_key,
1321                   decode(p_view_by, 'UC', wt.name, '-1')  util_category_id,
1322                   decode(p_view_by, 'WT', wt.name, '-1')  work_type_id,
1323 
1324                   job.name                                job_level_id,
1325                   0                                       capacity_hours,
1326                   0                                       act_reduce_capacity_hours,
1327                   null                                    missing_hours,
1328 		  0 					  total_actual_hours,
1329 		  0                                       actual_util_hours,
1330                   0                                       billable_hours,
1331                   0                                       scheduled_util_hours,
1332                   0                                       sch_reduce_capacity_hours,
1333                   0                                       actual_hours,
1334                   0                                       scheduled_hours,
1335                   0                                       prior_act_capacity_hours,
1336                   0                                       prior_act_red_capacity_hours,
1337                   null                                    prior_missing_hours,
1338   		  0 					  prior_total_actual_hours,
1339                   (fct.total_hrs_a / decode(l_labor_unit, 'DAYS', imp.FTE_DAY, 'WEEKS',imp.FTE_WEEK, 1)) *
1340                   worktype.org_utilization_percentage / 100
1341                                                           prior_actual_util_hours,
1342                   (fct.bill_hrs_a * worktype.org_utilization_percentage / 100)
1343                                  / decode(l_labor_unit, 'DAYS', imp.FTE_DAY, 'WEEKS',imp.FTE_WEEK, 1)
1344                                                           prior_billable_hours,
1345                   (fct.conf_hrs_s / decode(l_labor_unit, 'DAYS', imp.FTE_DAY, 'WEEKS',imp.FTE_WEEK, 1)) *
1346                   worktype.org_utilization_percentage / 100
1347                                                           prior_sch_util_hours,
1348                   fct.total_hrs_a / decode(l_labor_unit, 'DAYS', imp.FTE_DAY, 'WEEKS',imp.FTE_WEEK, 1)
1349                                                           prior_actual_hours,
1350                   fct.conf_hrs_s / decode(l_labor_unit, 'DAYS', imp.FTE_DAY, 'WEEKS',imp.FTE_WEEK, 1)
1351                                                           prior_scheduled_hours
1352            FROM PJI_PMV_ORGZ_DIM_TMP horg,
1353                 PJI_PMV_TCMP_DIM_TMP time,
1354                 PJI_PMV_WT_DIM_TMP wt,
1355                 PJI_RM_RES_WT_F fct,
1356                 PJI_PMV_ORG_DIM_TMP hou,
1357                 PJI_PMV_JB_DIM_TMP job,
1358                 PA_WORK_TYPES_B worktype,
1359                 PA_IMPLEMENTATIONS_ALL imp
1360            WHERE fct.expenditure_org_id = hou.id
1361              AND fct.expenditure_organization_id = horg.id
1362              AND wt.id = worktype.work_type_id
1363              AND fct.work_type_id = wt.id
1364              AND fct.job_id = job.id
1365              AND fct.time_id = time.id
1366              AND fct.period_type_id = time.period_type
1367              AND fct.calendar_type  = decode(fct.period_type_id,1, 'C',time.calendar_type)
1368              AND hou.id = imp.org_id
1369            UNION ALL
1370            SELECT '-1'                                    org_id,
1371                   name                                    organization_id,
1372                   '-1'                                    time_id,
1373                   -1                                      time_key,
1374                   '-1'                                    util_category_id,
1375                   '-1'                                    work_type_id,
1376                   '-1'                                    job_level_id,
1377                   0                                       capacity_hours,
1378                   0                                       act_reduce_capacity_hours,
1379                   null                                    missing_hours,
1380 		  0 					  total_actual_hours,
1381 		  0                                       actual_util_hours,
1382                   0                                       billable_hours,
1383                   0                                       scheduled_util_hours,
1384                   0                                       sch_reduce_capacity_hours,
1385                   0                                       actual_hours,
1386                   0                                       scheduled_hours,
1387                   0                                       prior_act_capacity_hours,
1388                   0                                       prior_act_red_capacity_hours,
1389                   null                                    prior_missing_hours,
1390 		  0 					  prior_total_actual_hours,
1391 		  0                                       prior_actual_util_hours,
1392                   0                                       prior_billable_hours,
1393                   0                                       prior_sch_util_hours,
1394                   0                                       prior_actual_hours,
1395                   0                                       prior_scheduled_hours
1396            FROM PJI_PMV_ORGZ_DIM_TMP
1397            WHERE name <> '-1'
1398            UNION ALL
1399            SELECT '-1'                                    org_id,
1400                   '-1'                                    organization_id,
1401                   '-1'                                    time_id,
1402                   -1                                      time_key,
1403                   decode(p_view_by, 'UC', name, '-1')     util_category_id,
1404                   decode(p_view_by, 'WT', name, '-1')     work_type_id,
1405                   '-1'                                    job_level_id,
1406                   0                                       capacity_hours,
1407                   0                                       act_reduce_capacity_hours,
1408                   null                                    missing_hours,
1409 		  0 					  total_actual_hours,
1410 		  0                                       actual_util_hours,
1411                   0                                       billable_hours,
1412                   0                                       scheduled_util_hours,
1413                   0                                       sch_reduce_capacity_hours,
1414                   0                                       actual_hours,
1415                   0                                       scheduled_hours,
1416                   0                                       prior_act_capacity_hours,
1417                   0                                       prior_act_red_capacity_hours,
1418                   null                                    prior_missing_hours,
1419 		  0 					  prior_total_actual_hours,
1420 		  0                                       prior_actual_util_hours,
1421                   0                                       prior_billable_hours,
1422                   0                                       prior_sch_util_hours,
1423                   0                                       prior_actual_hours,
1424                   0                                       prior_scheduled_hours
1425            FROM PJI_PMV_WT_DIM_TMP
1426            WHERE name <> '-1'
1427            UNION ALL
1428            SELECT '-1'                                    org_id,
1429                   '-1'                                    organization_id,
1430                   '-1'                                    time_id,
1431                   -1                                      time_key,
1432                   '-1'                                    util_category_id,
1433                   '-1'                                    work_typd_id,
1434                   name                                    job_level_id,
1435                   0                                       capacity_hours,
1436                   0                                       act_reduce_capacity_hours,
1437                   null                                    missing_hours,
1438 		  0 					  total_actual_hours,
1439 		  0                                       actual_util_hours,
1440                   0                                       billable_hours,
1441                   0                                       scheduled_util_hours,
1442                   0                                       sch_reduce_capacity_hours,
1443                   0                                       actual_hours,
1444                   0                                       scheduled_hours,
1445                   0                                       prior_act_capacity_hours,
1446                   0                                       prior_act_red_capacity_hours,
1447                   null                                    prior_missing_hours,
1448 		  0 					  prior_total_actual_hours,
1449 		  0                                       prior_actual_util_hours,
1450                   0                                       prior_billable_hours,
1451                   0                                       prior_sch_util_hours,
1452                   0                                       prior_actual_hours,
1453                   0                                       prior_scheduled_hours
1454            FROM PJI_PMV_JB_DIM_TMP
1455            WHERE name <> '-1'
1456            UNION ALL
1457            SELECT '-1'                                    org_id,
1458                   '-1'                                    organization_id,
1459                   name                                    time_id,
1460                   order_by_id                             time_key,
1461                   '-1'                                    util_category_id,
1462                   '-1'                                    work_type_id,
1463                   '-1'                                    job_level_id,
1464                   0                                       capacity_hours,
1465                   0                                       act_reduce_capacity_hours,
1466                   null                                    missing_hours,
1467 		  0 					  total_actual_hours,
1468                   0                                       actual_util_hours,
1469                   0                                       billable_hours,
1470                   0                                       scheduled_util_hours,
1471                   0                                       sch_reduce_capacity_hours,
1472                   0                                       actual_hours,
1473                   0                                       scheduled_hours,
1474                   0                                       prior_act_capacity_hours,
1475                   0                                       prior_act_red_capacity_hours,
1476                   null                                    prior_missing_hours,
1477 		  0 					  prior_total_actual_hours,
1478                   0                                       prior_actual_util_hours,
1479                   0                                       prior_billable_hours,
1480                   0                                       prior_sch_util_hours,
1481                   0                                       prior_actual_hours,
1482                   0                                       prior_scheduled_hours
1483            FROM PJI_PMV_TIME_DIM_TMP
1484            WHERE name <> '-1'
1485            UNION ALL  -- added for current year capacity_hours
1486 	   /* Bug 3515594 */
1487            SELECT
1488                   FACT.org_id,
1489                   FACT.organization_id,
1490                   FACT.time_id,
1491                   FACT.time_key,
1492                   decode(p_view_by, 'UC', WT.name, '-1')  util_category_id,
1493                   decode(p_view_by, 'WT', WT.name, '-1')  work_type_id,
1494                   FACT.job_level_id                       job_level_id,
1495                   FACT.capacity_hours,
1496                   FACT.reduce_capacity_hrs_a              act_reduce_capacity_hours,
1497                   FACT.missing_hrs_a                      missing_hours,
1498 		  FACT.total_actual_hours		  total_actual_hours,
1499 		  0                                       actual_util_hours,
1500                   0                                       billable_hours,
1501                   0                                       scheduled_util_hours,
1502                   FACT.reduce_capacity_hrs_s              sch_reduce_capacity_hours,
1503                   0                                       actual_hours,
1504                   0                                       scheduled_hours,
1505                   0                                       prior_act_capacity_hours,
1506                   0                                       prior_act_red_capacity_hours,
1507                   null                                    prior_missing_hours,
1508 		  0 					  prior_total_actual_hours,
1509 		  0                                       prior_actual_util_hours,
1510                   0                                       prior_billable_hours,
1511                   0                                       prior_sch_util_hours,
1512                   0                                       prior_actual_hours,
1513                   0                                       prior_scheduled_hours
1514            FROM
1515             (SELECT /*+ ORDERED */
1516                      hou.name                                org_id,
1517                      horg.name                               organization_id,
1518                      time.name                               time_id,
1519                      job.name                                job_level_id,
1520                      DECODE(p_view_by, 'TM', time.id, -1)    time_key,
1521 
1522                      capacity_hrs / decode(l_labor_unit, 'DAYS', imp.FTE_DAY, 'WEEKS',imp.FTE_WEEK, 1)
1523                                                           capacity_hours,
1524                      total_hrs_a / decode(l_labor_unit, 'DAYS', imp.FTE_DAY, 'WEEKS',imp.FTE_WEEK, 1)
1525                                                           total_actual_hours,
1526                      missing_hrs_a / decode(l_labor_unit, 'DAYS', imp.FTE_DAY, 'WEEKS',imp.FTE_WEEK, 1)
1527                                                           missing_hrs_a,
1528                      reduce_capacity_hrs_a / decode(l_labor_unit, 'DAYS', imp.FTE_DAY, 'WEEKS',imp.FTE_WEEK, 1)
1529                                                           reduce_capacity_hrs_a,
1530                      reduce_capacity_hrs_s / decode(l_labor_unit, 'DAYS', imp.FTE_DAY, 'WEEKS',imp.FTE_WEEK, 1)
1531                                                           reduce_capacity_hrs_s
1532              FROM PJI_PMV_ORGZ_DIM_TMP horg,
1533                   PJI_PMV_TIME_DIM_TMP time,
1534                   PJI_PMV_JB_DIM_TMP   job,
1535                   PJI_RM_JOB_F_MV fct,
1536                   PJI_PMV_ORG_DIM_TMP hou,
1537                   PA_IMPLEMENTATIONS_ALL imp
1538              WHERE fct.expenditure_org_id = hou.id
1539              AND   fct.expenditure_organization_id = horg.id
1540              AND   fct.time_id = time.id
1541              AND   time.id is not null
1542              AND   fct.job_id  = job.id
1543              AND   fct.period_type_id = time.period_type
1544              AND   fct.calendar_type  = decode(fct.period_type_id,1, 'C',time.calendar_type)
1545              AND   hou.id = imp.org_id )         FACT,
1546              (SELECT distinct WT.name
1547               FROM   PJI_PMV_WT_DIM_TMP wt )     WT
1548            UNION ALL  -- added for prior year capacity_hours
1549 	   /* Bug 3515594 */
1550            SELECT
1551                   FACT.org_id,
1552                   FACT.organization_id,
1553                   FACT.time_id,
1554                   FACT.time_key,
1555                   decode(p_view_by, 'UC', WT.name, '-1')  util_category_id,
1556                   decode(p_view_by, 'WT', WT.name, '-1')  work_type_id,
1557                   FACT.job_level_id                       job_level_id,
1558                   0                                       capacity_hours,
1559                   0                                       act_reduce_capacity_hours,
1560                   null                                    missing_hours,
1561 		  0 					  total_actual_hours,
1562 		  0                                       actual_util_hours,
1563                   0                                       billable_hours,
1564                   0                                       scheduled_util_hours,
1565                   0                                       sch_reduce_capacity_hours,
1566                   0                                       actual_hours,
1567                   0                                       scheduled_hours,
1568                   FACT.capacity_hours                     prior_act_capacity_hours,
1569                   FACT.prior_reduce_capacity_hrs_a        prior_act_red_capacity_hours,
1570                   FACT.missing_hrs_a                      prior_missing_hours,
1571 		  FACT.total_actual_hours                 prior_total_actual_hours,
1572 		  0                                       prior_actual_util_hours,
1573                   0                                       prior_billable_hours,
1574                   0                                       prior_sch_util_hours,
1575                   0                                       prior_actual_hours,
1576                   0                                       prior_scheduled_hours
1577            FROM
1578             (SELECT /*+ ORDERED */
1579                      hou.name                                org_id,
1580                      horg.name                               organization_id,
1581                      time.name                               time_id,
1582                      DECODE(p_view_by, 'TM', time.id, -1)    time_key,
1583                      job.name                                job_level_id,
1584                      capacity_hrs / decode(l_labor_unit, 'DAYS', imp.FTE_DAY, 'WEEKS',imp.FTE_WEEK, 1)
1585                                                           capacity_hours,
1586 
1587                      total_hrs_a / decode(l_labor_unit, 'DAYS', imp.FTE_DAY, 'WEEKS',imp.FTE_WEEK, 1)
1588                                                           total_actual_hours,
1589 
1590 		     missing_hrs_a / decode(l_labor_unit, 'DAYS', imp.FTE_DAY, 'WEEKS',imp.FTE_WEEK, 1)
1591                                                           missing_hrs_a,
1592                      reduce_capacity_hrs_a / decode(l_labor_unit, 'DAYS', imp.FTE_DAY, 'WEEKS',imp.FTE_WEEK, 1)
1593                                                           prior_reduce_capacity_hrs_a
1594              FROM PJI_PMV_ORGZ_DIM_TMP horg,
1595                   PJI_PMV_TCMP_DIM_TMP time,
1596                   PJI_PMV_JB_DIM_TMP job,
1597                   PJI_RM_JOB_F_MV fct,
1598                   PJI_PMV_ORG_DIM_TMP hou,
1599                   PA_IMPLEMENTATIONS_ALL imp
1600              WHERE fct.expenditure_org_id = hou.id
1601              AND   fct.expenditure_organization_id = horg.id
1602              AND   fct.time_id = time.id
1603              AND   fct.job_id  = job.id
1604              AND   fct.period_type_id = time.period_type
1605              AND   fct.calendar_type  = decode(fct.period_type_id,1, 'C',time.calendar_type)
1606              AND   hou.id = imp.org_id )         FACT,
1607              (SELECT distinct WT.name
1608               FROM   PJI_PMV_WT_DIM_TMP wt )     WT
1609            )
1610            GROUP BY org_id,
1611 		     organization_id,
1612 		     time_id,
1613 		     time_key,
1614 		     util_category_id,
1615              work_type_id,
1616 		     job_level_id;
1617 
1618    END IF;
1619 
1620 
1621      FOR i in 1..l_u1_tbl.COUNT
1622        LOOP
1623 
1624          IF p_View_By = 'OG' AND ( l_job_flag = 'N' OR l_util_category_flag = 'N' )
1625             AND l_u1_tbl(i).ORGANIZATION_ID = l_Top_Organization_Name   THEN
1626 
1627               l_Top_Org_Index:=i;
1628          ELSE
1629               l_actual_capacity_hours          := l_actual_capacity_hours       + nvl(l_u1_tbl(i).ACTUAL_CAPACITY_HOURS,0);
1630               l_missing_hours                  := l_missing_hours               + nvl(l_u1_tbl(i).MISSING_HOURS,0);
1631               l_actual_util_hours              := l_actual_util_hours           + nvl(l_u1_tbl(i).ACTUAL_UTIL_HOURS,0);
1632               l_billable_hours                 := l_billable_hours              + nvl(l_u1_tbl(i).BILLABLE_HOURS,0);
1633               l_scheduled_util_hours           := l_scheduled_util_hours        + nvl(l_u1_tbl(i).SCHEDULED_UTIL_HOURS,0);
1634               l_scheduled_capacity_hours       := l_scheduled_capacity_hours    + nvl(l_u1_tbl(i).SCHEDULED_CAPACITY_HOURS,0);
1635               l_resource_hours                 := l_resource_hours              + nvl(l_u1_tbl(i).RESOURCE_HOURS,0);
1636               l_total_resource_hours           := l_total_resource_hours        + nvl(l_u1_tbl(i).TOTAL_RESOURCE_HOURS,0);
1637               l_actual_denominator             := l_actual_denominator          + nvl(l_u1_tbl(i).ACTUAL_DENOMINATOR,0);
1638               l_scheduled_denominator          := l_scheduled_denominator       + nvl(l_u1_tbl(i).SCHEDULED_DENOMINATOR,0);
1639               l_prior_actual_capacity_hours    := l_prior_actual_capacity_hours + nvl(l_u1_tbl(i).PRIOR_ACTUAL_CAPACITY_HOURS,0);
1640               l_prior_missing_hours            := l_prior_missing_hours         + nvl(l_u1_tbl(i).PRIOR_MISSING_HOURS,0);
1641               l_prior_actual_util_hours        := l_prior_actual_util_hours     + nvl(l_u1_tbl(i).PRIOR_ACTUAL_UTIL_HOURS,0);
1642               l_prior_billable_hours           := l_prior_billable_hours        + nvl(l_u1_tbl(i).PRIOR_BILLABLE_HOURS,0);
1643               l_prior_sch_util_hours           := l_prior_sch_util_hours        + nvl(l_u1_tbl(i).PRIOR_SCH_UTIL_HOURS,0);
1644               l_prior_sch_capacity_hours       := l_prior_sch_capacity_hours    + nvl(l_u1_tbl(i).PRIOR_SCH_CAPACITY_HOURS,0);
1645               l_prior_resource_hours           := l_prior_resource_hours        + nvl(l_u1_tbl(i).PRIOR_RESOURCE_HOURS,0);
1646               l_prior_total_resource_hours     := l_prior_total_resource_hours  + nvl(l_u1_tbl(i).PRIOR_TOTAL_RESOURCE_HOURS,0);
1647               l_prior_actual_denominator       := l_prior_actual_denominator    + nvl(l_u1_tbl(i).PRIOR_ACTUAL_DENOMINATOR,0);
1648               l_prior_scheduled_denominator    := l_prior_scheduled_denominator + nvl(l_u1_tbl(i).PRIOR_SCHEDULED_DENOMINATOR,0);
1649 
1650               --Calculated columns processing is done below
1651               --The l_Top_org is not done here
1652               IF nvl(l_u1_tbl(i).prior_total_resource_hours,0) <> 0 THEN
1653                 l_u1_tbl(i).prior_res_hours_percent := 100 * (l_u1_tbl(i).prior_resource_hours / l_u1_tbl(i).prior_total_resource_hours);
1654               ELSE
1655                 l_u1_tbl(i).prior_res_hours_percent := NULL;
1656               END IF;
1657 
1658               IF nvl(l_u1_tbl(i).prior_actual_denominator,0) <> 0 THEN
1659                 l_u1_tbl(i).prior_act_util_percent := 100 * (l_u1_tbl(i).prior_actual_util_hours / l_u1_tbl(i).prior_actual_denominator);
1660                 l_u1_tbl(i).prior_bill_hours_percent := 100 * (l_u1_tbl(i).prior_billable_hours / l_u1_tbl(i).prior_actual_denominator);
1661               ELSE
1662                 l_u1_tbl(i).prior_act_util_percent := NULL;
1663                 l_u1_tbl(i).prior_bill_hours_percent := NULL;
1664               END IF;
1665 
1666               IF nvl(l_u1_tbl(i).actual_denominator,0) <> 0 THEN
1667                 l_u1_tbl(i).bill_hours_percent := 100 * (l_u1_tbl(i).billable_hours / l_u1_tbl(i).actual_denominator);
1668                 l_u1_tbl(i).act_util_percent := 100 * (l_u1_tbl(i).actual_util_hours / l_u1_tbl(i).actual_denominator);
1669               ELSE
1670                 l_u1_tbl(i).bill_hours_percent := NULL;
1671                 l_u1_tbl(i).act_util_percent := NULL;
1672               END IF;
1673 
1674               IF nvl(l_u1_tbl(i).total_resource_hours,0) <> 0 THEN
1675                 l_u1_tbl(i).res_hours_percent := 100 * (l_u1_tbl(i).resource_hours / l_u1_tbl(i).total_resource_hours);
1676               ELSE
1677                 l_u1_tbl(i).res_hours_percent := NULL;
1678               END IF;
1679 
1680               --TODO:Does the change need to be null when both values are null??
1681 		      l_u1_tbl(i).change_percent_1 := nvl(l_u1_tbl(i).act_util_percent,0) - nvl(l_u1_tbl(i).prior_act_util_percent,0);
1682 		      l_u1_tbl(i).change_percent_2 := nvl(l_u1_tbl(i).bill_hours_percent,0) - nvl(l_u1_tbl(i).prior_bill_hours_percent,0);
1683 	   	      l_u1_tbl(i).change_percent_3 := nvl(l_u1_tbl(i).res_hours_percent,0) - nvl(l_u1_tbl(i).prior_res_hours_percent,0);
1684 
1685               --Columns for U1 only
1686               IF nvl(l_u1_tbl(i).scheduled_denominator,0) <> 0 THEN
1687                 l_u1_tbl(i).sch_util_percent := 100 * (l_u1_tbl(i).scheduled_util_hours / l_u1_tbl(i).scheduled_denominator);
1688               ELSE
1689                 l_u1_tbl(i).sch_util_percent := NULL;
1690               END IF;
1691 
1692               IF nvl(l_u1_tbl(i).prior_missing_hours,0) <> 0 THEN
1693                 l_u1_tbl(i).missing_hours_percent := 100 * ((l_u1_tbl(i).missing_hours - l_u1_tbl(i).prior_missing_hours)/ l_u1_tbl(i).prior_missing_hours);
1694               ELSE
1695                 l_u1_tbl(i).missing_hours_percent := NULL;
1696               END IF;
1697 
1698               l_u1_tbl(i).sch_var_percent := nvl(l_u1_tbl(i).act_util_percent,0) - nvl(l_u1_tbl(i).sch_util_percent,0);
1699 
1700         END IF; --p_view_by
1701 
1702       END LOOP;
1703 
1704       --Processing for l_top_org_index
1705       IF p_View_By = 'OG' AND ( l_job_flag = 'N' OR l_util_category_flag = 'N' ) THEN
1706 
1707            l_u1_tbl(l_Top_Org_Index).ACTUAL_CAPACITY_HOURS          :=   l_u1_tbl(l_Top_Org_Index).ACTUAL_CAPACITY_HOURS         - l_actual_capacity_hours;
1708      	   l_u1_tbl(l_Top_Org_Index).MISSING_HOURS                  :=   l_u1_tbl(l_Top_Org_Index).MISSING_HOURS                 - l_missing_hours;
1709 		   l_u1_tbl(l_Top_Org_Index).ACTUAL_UTIL_HOURS              :=   l_u1_tbl(l_Top_Org_Index).ACTUAL_UTIL_HOURS             - l_actual_util_hours;
1710  		   l_u1_tbl(l_Top_Org_Index).BILLABLE_HOURS                 :=   l_u1_tbl(l_Top_Org_Index).BILLABLE_HOURS                - l_billable_hours;
1711 		   l_u1_tbl(l_Top_Org_Index).SCHEDULED_UTIL_HOURS           :=   l_u1_tbl(l_Top_Org_Index).SCHEDULED_UTIL_HOURS          - l_scheduled_util_hours;
1712 		   l_u1_tbl(l_Top_Org_Index).SCHEDULED_CAPACITY_HOURS       :=   l_u1_tbl(l_Top_Org_Index).SCHEDULED_CAPACITY_HOURS      - l_scheduled_capacity_hours;
1713 		   l_u1_tbl(l_Top_Org_Index).RESOURCE_HOURS                 :=   l_u1_tbl(l_Top_Org_Index).RESOURCE_HOURS                - l_resource_hours;
1714 		   l_u1_tbl(l_Top_Org_Index).TOTAL_RESOURCE_HOURS           :=   l_u1_tbl(l_Top_Org_Index).TOTAL_RESOURCE_HOURS          - l_total_resource_hours;
1715 		   l_u1_tbl(l_Top_Org_Index).ACTUAL_DENOMINATOR             :=   l_u1_tbl(l_Top_Org_Index).ACTUAL_DENOMINATOR            - l_actual_denominator;
1716 		   l_u1_tbl(l_Top_Org_Index).SCHEDULED_DENOMINATOR          :=   l_u1_tbl(l_Top_Org_Index).SCHEDULED_DENOMINATOR         - l_scheduled_denominator;
1717 		   l_u1_tbl(l_Top_Org_Index).PRIOR_ACTUAL_CAPACITY_HOURS    :=   l_u1_tbl(l_Top_Org_Index).PRIOR_ACTUAL_CAPACITY_HOURS   - l_prior_actual_capacity_hours;
1718 		   l_u1_tbl(l_Top_Org_Index).PRIOR_MISSING_HOURS            :=   l_u1_tbl(l_Top_Org_Index).PRIOR_MISSING_HOURS           - l_prior_missing_hours;
1719 		   l_u1_tbl(l_Top_Org_Index).PRIOR_ACTUAL_UTIL_HOURS        :=   l_u1_tbl(l_Top_Org_Index).PRIOR_ACTUAL_UTIL_HOURS       - l_prior_actual_util_hours;
1720 		   l_u1_tbl(l_Top_Org_Index).PRIOR_BILLABLE_HOURS           :=   l_u1_tbl(l_Top_Org_Index).PRIOR_BILLABLE_HOURS          - l_prior_billable_hours;
1721 		   l_u1_tbl(l_Top_Org_Index).PRIOR_SCH_UTIL_HOURS           :=   l_u1_tbl(l_Top_Org_Index).PRIOR_SCH_UTIL_HOURS          - l_prior_sch_util_hours;
1722 		   l_u1_tbl(l_Top_Org_Index).PRIOR_SCH_CAPACITY_HOURS       :=   l_u1_tbl(l_Top_Org_Index).PRIOR_SCH_CAPACITY_HOURS      - l_prior_sch_capacity_hours;
1723 		   l_u1_tbl(l_Top_Org_Index).PRIOR_RESOURCE_HOURS           :=   l_u1_tbl(l_Top_Org_Index).PRIOR_RESOURCE_HOURS          - l_prior_resource_hours;
1724 		   l_u1_tbl(l_Top_Org_Index).PRIOR_TOTAL_RESOURCE_HOURS     :=   l_u1_tbl(l_Top_Org_Index).PRIOR_TOTAL_RESOURCE_HOURS    - l_prior_total_resource_hours;
1725 		   l_u1_tbl(l_Top_Org_Index).PRIOR_ACTUAL_DENOMINATOR       :=   l_u1_tbl(l_Top_Org_Index).PRIOR_ACTUAL_DENOMINATOR      - l_prior_actual_denominator;
1726 		   l_u1_tbl(l_Top_Org_Index).PRIOR_SCHEDULED_DENOMINATOR    :=   l_u1_tbl(l_Top_Org_Index).PRIOR_SCHEDULED_DENOMINATOR   - l_prior_scheduled_denominator;
1727 
1728            --Calculated columns processing for l_top_org
1729            IF nvl(l_u1_tbl(l_Top_Org_Index).prior_total_resource_hours,0) <> 0 THEN
1730              l_u1_tbl(l_Top_Org_Index).prior_res_hours_percent := 100 * (l_u1_tbl(l_Top_Org_Index).prior_resource_hours / l_u1_tbl(l_Top_Org_Index).prior_total_resource_hours);
1731            ELSE
1732               l_u1_tbl(l_Top_Org_Index).prior_res_hours_percent := NULL;
1733            END IF;
1734 
1735            IF nvl(l_u1_tbl(l_Top_Org_Index).prior_actual_denominator,0) <> 0 THEN
1736              l_u1_tbl(l_Top_Org_Index).prior_act_util_percent := 100 * (l_u1_tbl(l_Top_Org_Index).prior_actual_util_hours / l_u1_tbl(l_Top_Org_Index).prior_actual_denominator);
1737              l_u1_tbl(l_Top_Org_Index).prior_bill_hours_percent := 100 * (l_u1_tbl(l_Top_Org_Index).prior_billable_hours / l_u1_tbl(l_Top_Org_Index).prior_actual_denominator);
1738            ELSE
1739              l_u1_tbl(l_Top_Org_Index).prior_act_util_percent := NULL;
1740              l_u1_tbl(l_Top_Org_Index).prior_bill_hours_percent := NULL;
1741            END IF;
1742 
1743            IF nvl(l_u1_tbl(l_Top_Org_Index).actual_denominator,0) <> 0 THEN
1744              l_u1_tbl(l_Top_Org_Index).bill_hours_percent := 100 * (l_u1_tbl(l_Top_Org_Index).billable_hours / l_u1_tbl(l_Top_Org_Index).actual_denominator);
1745              l_u1_tbl(l_Top_Org_Index).act_util_percent := 100 * (l_u1_tbl(l_Top_Org_Index).actual_util_hours / l_u1_tbl(l_Top_Org_Index).actual_denominator);
1746            ELSE
1747              l_u1_tbl(l_Top_Org_Index).bill_hours_percent := NULL;
1748              l_u1_tbl(l_Top_Org_Index).act_util_percent := NULL;
1749            END IF;
1750 
1751            IF nvl(l_u1_tbl(l_Top_Org_Index).total_resource_hours,0) <> 0 THEN
1752              l_u1_tbl(l_Top_Org_Index).res_hours_percent := 100 * (l_u1_tbl(l_Top_Org_Index).resource_hours / l_u1_tbl(l_Top_Org_Index).total_resource_hours);
1753            ELSE
1754              l_u1_tbl(l_Top_Org_Index).res_hours_percent := NULL;
1755            END IF;
1756 
1757            --TODO:Does the change need to be null when both values are null??
1758 		   l_u1_tbl(l_Top_Org_Index).change_percent_1 := nvl(l_u1_tbl(l_Top_Org_Index).act_util_percent,0) - nvl(l_u1_tbl(l_Top_Org_Index).prior_act_util_percent,0);
1759 		   l_u1_tbl(l_Top_Org_Index).change_percent_2 := nvl(l_u1_tbl(l_Top_Org_Index).bill_hours_percent,0) - nvl(l_u1_tbl(l_Top_Org_Index).prior_bill_hours_percent,0);
1760 	   	   l_u1_tbl(l_Top_Org_Index).change_percent_3 := nvl(l_u1_tbl(l_Top_Org_Index).res_hours_percent,0) - nvl(l_u1_tbl(l_Top_Org_Index).prior_res_hours_percent,0);
1761 
1762            --Columns for U1 only
1763            IF nvl(l_u1_tbl(l_Top_Org_Index).scheduled_denominator,0) <> 0 THEN
1764              l_u1_tbl(l_Top_Org_Index).sch_util_percent := 100 * (l_u1_tbl(l_Top_Org_Index).scheduled_util_hours / l_u1_tbl(l_Top_Org_Index).scheduled_denominator);
1765            ELSE
1766              l_u1_tbl(l_Top_Org_Index).sch_util_percent := NULL;
1767            END IF;
1768 
1769            IF nvl(l_u1_tbl(l_Top_Org_Index).prior_missing_hours,0) <> 0 THEN
1770              l_u1_tbl(l_Top_Org_Index).missing_hours_percent := 100 * ((l_u1_tbl(l_Top_Org_Index).missing_hours - l_u1_tbl(l_Top_Org_Index).prior_missing_hours)/ l_u1_tbl(l_Top_Org_Index).prior_missing_hours);
1771            ELSE
1772              l_u1_tbl(l_Top_Org_Index).missing_hours_percent := NULL;
1773            END IF;
1774 
1775            l_u1_tbl(l_Top_Org_Index).sch_var_percent := nvl(l_u1_tbl(l_Top_Org_Index).act_util_percent,0) - nvl(l_u1_tbl(l_Top_Org_Index).sch_util_percent,0);
1776 
1777       END IF; --end p_view_by = OG
1778 
1779    --Update local variables to include top level org for grand total
1780     IF l_Top_Org_Index is not null THEN
1781 
1782       l_actual_capacity_hours          := l_actual_capacity_hours       + nvl(l_u1_tbl(l_Top_Org_Index).ACTUAL_CAPACITY_HOURS,0);
1783       l_missing_hours                  := l_missing_hours               + nvl(l_u1_tbl(l_Top_Org_Index).MISSING_HOURS,0);
1784       l_actual_util_hours              := l_actual_util_hours           + nvl(l_u1_tbl(l_Top_Org_Index).ACTUAL_UTIL_HOURS,0);
1785       l_billable_hours                 := l_billable_hours              + nvl(l_u1_tbl(l_Top_Org_Index).BILLABLE_HOURS,0);
1786       l_scheduled_util_hours           := l_scheduled_util_hours        + nvl(l_u1_tbl(l_Top_Org_Index).SCHEDULED_UTIL_HOURS,0);
1787       l_scheduled_capacity_hours       := l_scheduled_capacity_hours    + nvl(l_u1_tbl(l_Top_Org_Index).SCHEDULED_CAPACITY_HOURS,0);
1788       l_resource_hours                 := l_resource_hours              + nvl(l_u1_tbl(l_Top_Org_Index).RESOURCE_HOURS,0);
1789       l_total_resource_hours           := l_total_resource_hours        + nvl(l_u1_tbl(l_Top_Org_Index).TOTAL_RESOURCE_HOURS,0);
1790       l_actual_denominator             := l_actual_denominator          + nvl(l_u1_tbl(l_Top_Org_Index).ACTUAL_DENOMINATOR,0);
1791       l_scheduled_denominator          := l_scheduled_denominator       + nvl(l_u1_tbl(l_Top_Org_Index).SCHEDULED_DENOMINATOR,0);
1792       l_prior_actual_capacity_hours    := l_prior_actual_capacity_hours + nvl(l_u1_tbl(l_Top_Org_Index).PRIOR_ACTUAL_CAPACITY_HOURS,0);
1793       l_prior_missing_hours            := l_prior_missing_hours         + nvl(l_u1_tbl(l_Top_Org_Index).PRIOR_MISSING_HOURS,0);
1794       l_prior_actual_util_hours        := l_prior_actual_util_hours     + nvl(l_u1_tbl(l_Top_Org_Index).PRIOR_ACTUAL_UTIL_HOURS,0);
1795       l_prior_billable_hours           := l_prior_billable_hours        + nvl(l_u1_tbl(l_Top_Org_Index).PRIOR_BILLABLE_HOURS,0);
1796       l_prior_sch_util_hours           := l_prior_sch_util_hours        + nvl(l_u1_tbl(l_Top_Org_Index).PRIOR_SCH_UTIL_HOURS,0);
1797       l_prior_sch_capacity_hours       := l_prior_sch_capacity_hours    + nvl(l_u1_tbl(l_Top_Org_Index).PRIOR_SCH_CAPACITY_HOURS,0);
1798       l_prior_resource_hours           := l_prior_resource_hours        + nvl(l_u1_tbl(l_Top_Org_Index).PRIOR_RESOURCE_HOURS,0);
1799       l_prior_total_resource_hours     := l_prior_total_resource_hours  + nvl(l_u1_tbl(l_Top_Org_Index).PRIOR_TOTAL_RESOURCE_HOURS,0);
1800       l_prior_actual_denominator       := l_prior_actual_denominator    + nvl(l_u1_tbl(l_Top_Org_Index).PRIOR_ACTUAL_DENOMINATOR,0);
1801       l_prior_scheduled_denominator    := l_prior_scheduled_denominator + nvl(l_u1_tbl(l_Top_Org_Index).PRIOR_SCHEDULED_DENOMINATOR,0);
1802     END IF;
1803 
1804    IF l_u1_tbl.COUNT > 0 THEN
1805    FOR i IN 1..l_u1_tbl.COUNT
1806 	LOOP
1807 
1808       IF l_u1_tbl.EXISTS(i) THEN
1809 
1810         /*Bug 2836444*/
1811         --Capacity is denormalized when context is view by UC or WT
1812         IF p_view_by = 'UC' OR p_view_by = 'WT' THEN
1813 
1814           l_actual_denominator := l_u1_tbl(i).ACTUAL_DENOMINATOR;
1815           l_scheduled_denominator := l_u1_tbl(i).SCHEDULED_DENOMINATOR;
1816           l_prior_actual_denominator := l_u1_tbl(i).PRIOR_ACTUAL_DENOMINATOR;
1817 
1818         END IF;
1819 
1820         IF nvl(l_actual_denominator,0) <> 0 THEN
1821 
1822           l_u1_tbl(i).PJI_REP_TOTAL_1      := (l_billable_hours/l_actual_denominator)*100;
1823           l_u1_tbl(i).PJI_REP_TOTAL_3      := (l_actual_util_hours/l_actual_denominator)*100;
1824 
1825         END IF;
1826 
1827         IF nvl(l_prior_actual_denominator,0) <> 0 THEN
1828 
1829           l_u1_tbl(i).PJI_REP_TOTAL_2      := (l_prior_billable_hours/l_prior_actual_denominator)*100;
1830           l_u1_tbl(i).PJI_REP_TOTAL_4      := (l_prior_actual_util_hours/l_prior_actual_denominator)*100;
1831 
1832         END IF;
1833 
1834         IF nvl(l_total_resource_hours,0) <> 0 THEN
1835 
1836           l_u1_tbl(i).PJI_REP_TOTAL_5      := (l_resource_hours/l_total_resource_hours)*100;
1837 
1838         END IF;
1839 
1840         IF nvl(l_prior_total_resource_hours,0) <> 0 THEN
1841 
1842           l_u1_tbl(i).PJI_REP_TOTAL_6      := (l_prior_resource_hours/l_prior_total_resource_hours)*100;
1843 
1844         END IF;
1845 
1846         l_u1_tbl(i).PJI_REP_TOTAL_7 := l_u1_tbl(i).PJI_REP_TOTAL_1 - l_u1_tbl(i).PJI_REP_TOTAL_2;
1847         l_u1_tbl(i).PJI_REP_TOTAL_8 := l_u1_tbl(i).PJI_REP_TOTAL_3 - l_u1_tbl(i).PJI_REP_TOTAL_4;
1848         l_u1_tbl(i).PJI_REP_TOTAL_9 := l_u1_tbl(i).PJI_REP_TOTAL_5 - l_u1_tbl(i).PJI_REP_TOTAL_6;
1849 
1850         --Columns for U1 only
1851         IF nvl(l_scheduled_denominator,0) <> 0 THEN
1852 
1853           l_u1_tbl(i).PJI_REP_TOTAL_10      := (l_scheduled_util_hours/l_scheduled_denominator)*100;
1854 
1855         END IF;
1856 
1857         IF nvl(l_prior_missing_hours,0) <> 0 THEN
1858 
1859           l_u1_tbl(i).PJI_REP_TOTAL_11      := ((l_missing_hours- l_prior_missing_hours)/l_prior_missing_hours)*100;
1860 
1861         END IF;
1862 
1863         l_u1_tbl(i).PJI_REP_TOTAL_12 := l_u1_tbl(i).PJI_REP_TOTAL_3 - l_u1_tbl(i).PJI_REP_TOTAL_10;
1864 
1865         l_u1_tbl(i).PJI_REP_TOTAL_13 := l_missing_hours;
1866 
1867       END IF; -- l_u1_tbl.EXISTS(i)
1868 	END LOOP;
1869     END IF; --l_u1_tbl.COUNT > 0
1870 
1871     IF l_Top_Org_Index is not null THEN
1872         --Delete record for top org if all values are 0 or null
1873         IF  nvl(l_u1_tbl(l_Top_Org_Index).ACTUAL_CAPACITY_HOURS,0) = 0 AND
1874 			nvl(l_u1_tbl(l_Top_Org_Index).MISSING_HOURS,0) = 0 AND
1875 			nvl(l_u1_tbl(l_Top_Org_Index).ACTUAL_UTIL_HOURS,0) = 0 AND
1876 			nvl(l_u1_tbl(l_Top_Org_Index).BILLABLE_HOURS,0) = 0 AND
1877 			nvl(l_u1_tbl(l_Top_Org_Index).SCHEDULED_UTIL_HOURS,0) = 0 AND
1878 			nvl(l_u1_tbl(l_Top_Org_Index).SCHEDULED_CAPACITY_HOURS,0) = 0 AND
1879 			nvl(l_u1_tbl(l_Top_Org_Index).RESOURCE_HOURS,0) = 0 AND
1880 			nvl(l_u1_tbl(l_Top_Org_Index).TOTAL_RESOURCE_HOURS,0) = 0 AND
1881 			nvl(l_u1_tbl(l_Top_Org_Index).ACTUAL_DENOMINATOR,0) = 0 AND
1882 			nvl(l_u1_tbl(l_Top_Org_Index).SCHEDULED_DENOMINATOR,0) = 0 AND
1883 			nvl(l_u1_tbl(l_Top_Org_Index).PRIOR_ACTUAL_CAPACITY_HOURS,0) = 0 AND
1884 			nvl(l_u1_tbl(l_Top_Org_Index).PRIOR_MISSING_HOURS,0) = 0 AND
1885 			nvl(l_u1_tbl(l_Top_Org_Index).PRIOR_ACTUAL_UTIL_HOURS,0) = 0 AND
1886 			nvl(l_u1_tbl(l_Top_Org_Index).PRIOR_BILLABLE_HOURS,0) = 0 AND
1887 			nvl(l_u1_tbl(l_Top_Org_Index).PRIOR_SCH_UTIL_HOURS,0) = 0 AND
1888 			nvl(l_u1_tbl(l_Top_Org_Index).PRIOR_SCH_CAPACITY_HOURS,0) = 0 AND
1889 			nvl(l_u1_tbl(l_Top_Org_Index).PRIOR_RESOURCE_HOURS,0) = 0 AND
1890 			nvl(l_u1_tbl(l_Top_Org_Index).PRIOR_TOTAL_RESOURCE_HOURS,0) = 0 AND
1891 			nvl(l_u1_tbl(l_Top_Org_Index).PRIOR_ACTUAL_DENOMINATOR,0) = 0 AND
1892 			nvl(l_u1_tbl(l_Top_Org_Index).PRIOR_SCHEDULED_DENOMINATOR,0) = 0 AND
1893             nvl(l_u1_tbl(l_Top_Org_Index).prior_res_hours_percent,0) = 0 AND
1894 			nvl(l_u1_tbl(l_Top_Org_Index).prior_act_util_percent,0) = 0 AND
1895 			nvl(l_u1_tbl(l_Top_Org_Index).prior_bill_hours_percent,0) = 0 AND
1896 			nvl(l_u1_tbl(l_Top_Org_Index).bill_hours_percent,0) = 0 AND
1897 			nvl(l_u1_tbl(l_Top_Org_Index).act_util_percent ,0) = 0 AND
1898 			nvl(l_u1_tbl(l_Top_Org_Index).res_hours_percent,0) = 0 AND
1899 			nvl(l_u1_tbl(l_Top_Org_Index).change_percent_1,0) = 0 AND
1900 			nvl(l_u1_tbl(l_Top_Org_Index).change_percent_2,0) = 0 AND
1901 			nvl(l_u1_tbl(l_Top_Org_Index).change_percent_3,0) = 0 AND
1902             nvl(l_u1_tbl(l_Top_Org_Index).sch_util_percent ,0) = 0 AND
1903 			nvl(l_u1_tbl(l_Top_Org_Index).missing_hours_percent,0) = 0 AND
1904 			nvl(l_u1_tbl(l_Top_Org_Index).sch_var_percent,0) = 0
1905          THEN
1906             l_u1_tbl.DELETE(l_Top_Org_Index);
1907          END IF;
1908     END IF;
1909 
1910 	/*
1911 	 ** Return the bulk collected table back to pmv.
1912 	 */
1913 
1914    COMMIT;
1915    RETURN l_u1_tbl;
1916 
1917 END PLSQLDriver_U1;
1918 
1919 FUNCTION PLSQLDriver_U2 (
1920    p_operating_unit        IN VARCHAR2 DEFAULT NULL,
1921    p_organization          IN VARCHAR2,
1922    p_as_of_date            IN NUMBER,
1923    p_period_type           IN VARCHAR2,
1924    p_view_by               IN VARCHAR2
1925 )  RETURN PJI_REP_U2_TBL
1926 IS
1927    PRAGMA AUTONOMOUS_TRANSACTION;
1928    l_u2_tbl                         PJI_REP_U2_TBL:=PJI_REP_U2_TBL();
1929    l_denominator                    VARCHAR2(25);
1930    l_labor_unit                     VARCHAR2(40);
1931    l_Top_Org_Index                  NUMBER;
1932    l_Top_Organization_Name          VARCHAR2(240);
1933 BEGIN
1934    PJI_PMV_ENGINE.Convert_Operating_Unit (p_operating_unit, p_view_by);
1935    PJI_PMV_ENGINE.Convert_Organization(P_TOP_ORGANIZATION_ID   => p_Organization
1936                                      , P_VIEW_BY               => p_view_by
1937                                      , P_TOP_ORGANIZATION_NAME => l_Top_Organization_Name );
1938    PJI_PMV_ENGINE.Convert_Time (p_as_of_date, p_period_type, p_view_by, 'Y');
1939 
1940    /*
1941     * Get Utilization percentage denominator profile value
1942     */
1943    BEGIN
1944      SELECT fnd_profile.value('PA_ORG_UTIL_DEF_CALC_METHOD')
1945      INTO l_denominator
1946      from dual;
1947 
1948      EXCEPTION WHEN NO_DATA_FOUND THEN
1949          l_denominator := 'CAPACITY';
1950    END;
1951 
1952    /*
1953     * Get report labor unit
1954     */
1955    BEGIN
1956      select report_labor_units
1957      into l_labor_unit
1958      from pji_system_settings;
1959 
1960    EXCEPTION WHEN OTHERS THEN
1961          l_labor_unit := null;
1962    END;
1963 
1964    SELECT PJI_REP_U2(org_id,
1965                      organization_id,
1966                      time_id,
1967                      time_key,
1968                      sum(actual_capacity_hours),
1969                      sum(missing_hours),
1970                      sum(actual_utilization_hours),
1971                      sum(billable_hours),
1972                      sum(nonbillable_hours),
1973                      sum(training_hours),
1974                      sum(scheduled_capacity_hours),
1975                      sum(conf_scheduled_hours),
1976                      sum(prov_scheduled_hours),
1977                      sum(scheduled_utilization_hours),
1978                      sum(decode(l_denominator, 'CAPACITY', actual_capacity_hours, actual_hours)),
1979                      sum(decode(l_denominator, 'CAPACITY', scheduled_capacity_hours, actual_hours)),
1980                      sum(prior_actual_util_hours),
1981                      sum(prior_actual_capacity_hours),
1982                      sum(decode(l_denominator, 'CAPACITY', prior_actual_capacity_hours, prior_actual_hours)),
1983                         null,null,null,null,null,null)
1984    BULK COLLECT INTO l_u2_tbl
1985    /* Bug 3515594 */
1986    FROM (
1987         SELECT /*+ ORDERED */
1988                hou.name                                       org_id,
1989                horg.name                                      organization_id,
1990                time.name                                      time_id,
1991                DECODE(p_view_by, 'TM', time.order_by_id, -1)  time_key,
1992                (capacity_hrs - reduce_capacity_hrs_a) / decode(l_labor_unit, 'DAYS', imp.FTE_DAY, 'WEEKS',imp.FTE_WEEK, 1)
1993                                                               actual_capacity_hours,
1994                missing_hrs_a / decode(l_labor_unit, 'DAYS', imp.FTE_DAY, 'WEEKS',imp.FTE_WEEK, 1)
1995                                                               missing_hours,
1996                total_wtd_org_hrs_a / decode(l_labor_unit, 'DAYS', imp.FTE_DAY, 'WEEKS',imp.FTE_WEEK, 1)
1997                                                               actual_utilization_hours,
1998                bill_wtd_org_hrs_a / decode(l_labor_unit, 'DAYS', imp.FTE_DAY, 'WEEKS',imp.FTE_WEEK, 1)
1999                                                               billable_hours,
2000                (total_wtd_org_hrs_a - bill_wtd_org_hrs_a) / decode(l_labor_unit, 'DAYS', imp.FTE_DAY, 'WEEKS',imp.FTE_WEEK, 1)
2001                                                               nonbillable_hours,
2002                training_hrs_a / decode(l_labor_unit, 'DAYS', imp.FTE_DAY, 'WEEKS',imp.FTE_WEEK, 1)
2003                                                               training_hours,
2004                (capacity_hrs - reduce_capacity_hrs_s) / decode(l_labor_unit, 'DAYS', imp.FTE_DAY, 'WEEKS',imp.FTE_WEEK, 1)
2005                                                               scheduled_capacity_hours,
2006                conf_hrs_s / decode(l_labor_unit, 'DAYS', imp.FTE_DAY, 'WEEKS',imp.FTE_WEEK, 1)
2007                                                               conf_scheduled_hours,
2008                prov_hrs_s / decode(l_labor_unit, 'DAYS', imp.FTE_DAY, 'WEEKS',imp.FTE_WEEK, 1)
2009                                                               prov_scheduled_hours,
2010                conf_wtd_org_hrs_s / decode(l_labor_unit, 'DAYS', imp.FTE_DAY, 'WEEKS',imp.FTE_WEEK, 1)
2011                                                               scheduled_utilization_hours,
2012                total_hrs_a / decode(l_labor_unit, 'DAYS', imp.FTE_DAY, 'WEEKS',imp.FTE_WEEK, 1)
2013                                                               actual_hours,
2014                0                                              prior_actual_util_hours,
2015                0                                              prior_actual_capacity_hours,
2016                0                                              prior_actual_hours
2017         FROM PJI_PMV_ORGZ_DIM_TMP horg,
2018              PJI_PMV_TIME_DIM_TMP time,
2019              PJI_RM_ORGO_F_MV fct,
2020              PJI_PMV_ORG_DIM_TMP hou,
2021              PA_IMPLEMENTATIONS_ALL imp
2022         WHERE fct.expenditure_org_id = hou.id
2023           AND fct.expenditure_organization_id = horg.id
2024           AND fct.time_id = time.id
2025           AND fct.period_type_id = time.period_type
2026           AND fct.calendar_type  = decode(fct.period_type_id,1, 'C',time.calendar_type)
2027           AND time.id is not null
2028           AND hou.id = imp.org_id
2029         UNION ALL
2030 	/* Bug 3515594 */
2031         SELECT /*+ ORDERED */
2032                hou.name                                       org_id,
2033                horg.name                                      organization_id,
2034                time.name                                      time_id,
2035                DECODE(p_view_by, 'TM', time.order_by_id, -1)  time_key,
2036                0                                              actual_capacity_hours,
2037                0                                              missing_hours,
2038                0                                              actual_utilization_hours,
2039                0                                              billable_hours,
2040                0                                              nonbillable_hours,
2041                0                                              training_hours,
2042                0                                              scheduled_capacity_hours,
2043                0                                              conf_scheduled_hours,
2044                0                                              prov_scheduled_hours,
2045                0                                              scheduled_utilization_hours,
2046                0                                              actual_hours,
2047                total_wtd_org_hrs_a / decode(l_labor_unit, 'DAYS', imp.FTE_DAY, 'WEEKS',imp.FTE_WEEK, 1)
2048                                                               prior_actual_util_hours,
2049                (capacity_hrs - reduce_capacity_hrs_a) / decode(l_labor_unit, 'DAYS', imp.FTE_DAY, 'WEEKS',imp.FTE_WEEK, 1)
2050                                                               prior_actual_capacity_hours,
2051                total_hrs_a / decode(l_labor_unit, 'DAYS', imp.FTE_DAY, 'WEEKS',imp.FTE_WEEK, 1)
2052                                                               prior_actual_hours
2053         FROM PJI_PMV_ORGZ_DIM_TMP horg,
2054              PJI_PMV_TIME_DIM_TMP time,
2055              PJI_RM_ORGO_F_MV fct,
2056              PJI_PMV_ORG_DIM_TMP hou,
2057              PA_IMPLEMENTATIONS_ALL imp
2058         WHERE fct.expenditure_org_id = hou.id
2059           AND fct.expenditure_organization_id = horg.id
2060           AND fct.time_id = time.prior_id
2061           AND fct.period_type_id = time.period_type
2062           AND fct.calendar_type  = decode(fct.period_type_id,1, 'C',time.calendar_type)
2063           AND time.prior_id is not null
2064           AND hou.id = imp.org_id
2065         UNION ALL
2066         SELECT '-1'                                           org_id,
2067                '-1'                                           organization_id,
2068                name                                           time_id,
2069                order_by_id                                    time_key,
2070                0                                              actual_capacity_hours,
2071                0                                              missing_hours,
2072                0                                              actual_utilization_hours,
2073                0                                              billable_hours,
2074                0                                              nonbillable_hours,
2075                0                                              training_hours,
2076                0                                              scheduled_capacity_hours,
2077                0                                              conf_scheduled_hours,
2078                0                                              prov_scheduled_hours,
2079                0                                              scheduled_utilization_hours,
2080                0                                              actual_hours,
2081                0                                              prior_actual_util_hours,
2082                0                                              prior_actual_capacity_hours,
2083                0                                              prior_actual_hours
2084         FROM PJI_PMV_TIME_DIM_TMP
2085         WHERE name <> '-1'
2086         )
2087         GROUP BY org_id,
2088                   organization_id,
2089                   time_key,
2090                   time_id ORDER BY TIME_KEY ASC;
2091 
2092    FOR i in 1..l_u2_tbl.COUNT
2093    LOOP
2094 
2095       --Calculated columns processing is done below
2096       IF nvl(l_u2_tbl(i).actual_denominator,0) <> 0 THEN
2097         l_u2_tbl(i).act_util_percent     := 100 * (l_u2_tbl(i).actual_utilization_hours / l_u2_tbl(i).actual_denominator);
2098         l_u2_tbl(i).bill_util_percent    := 100 * (l_u2_tbl(i).billable_hours / l_u2_tbl(i).actual_denominator);
2099         l_u2_tbl(i).nonbill_util_percent := 100 * (l_u2_tbl(i).nonbillable_hours / l_u2_tbl(i).actual_denominator);
2100         l_u2_tbl(i).training_percent     := 100 * (l_u2_tbl(i).training_hours / l_u2_tbl(i).actual_denominator);
2101 
2102       ELSE
2103         l_u2_tbl(i).act_util_percent     := NULL;
2104         l_u2_tbl(i).bill_util_percent    := NULL;
2105         l_u2_tbl(i).nonbill_util_percent := NULL;
2106 		l_u2_tbl(i).training_percent     := NULL;
2107 
2108       END IF;
2109 
2110       IF nvl(l_u2_tbl(i).scheduled_denominator,0) <> 0 THEN
2111         l_u2_tbl(i).sch_util_percent     := 100 * (l_u2_tbl(i).scheduled_utilization_hours / l_u2_tbl(i).scheduled_denominator);
2112       ELSE
2113         l_u2_tbl(i).sch_util_percent     := NULL;
2114       END IF;
2115 
2116       IF nvl(l_u2_tbl(i).prior_actual_denominator,0) <> 0 THEN
2117         l_u2_tbl(i).prior_util_percent     := 100 * (l_u2_tbl(i).prior_actual_util_hours / l_u2_tbl(i).prior_actual_denominator);
2118       ELSE
2119         l_u2_tbl(i).prior_util_percent     := NULL;
2120       END IF;
2121 
2122    END LOOP;
2123 
2124    COMMIT;
2125    RETURN l_u2_tbl;
2126 
2127 END PLSQLDriver_U2;
2128 
2129 FUNCTION PLSQLDriver_U3 (
2130    p_operating_unit        IN VARCHAR2 DEFAULT NULL,
2131    p_organization          IN VARCHAR2,
2132    p_as_of_date            IN NUMBER,
2133    p_period_type           IN VARCHAR2,
2134    p_view_by               IN VARCHAR2,
2135    p_utilization_category  IN VARCHAR2 DEFAULT NULL,
2136    p_work_type             IN VARCHAR2 DEFAULT NULL,
2137    p_job_level             IN VARCHAR2 DEFAULT NULL
2138 )  RETURN PJI_REP_U3_TBL
2139 IS
2140    PRAGMA AUTONOMOUS_TRANSACTION;
2141    l_u3_tbl                         PJI_REP_U3_TBL:=PJI_REP_U3_TBL();
2142    l_util_category_flag             VARCHAR2(1);
2143    l_job_flag                       VARCHAR2(1);
2144    l_denominator                    VARCHAR2(25);
2145    l_labor_unit                     VARCHAR2(40);
2146    l_actual_hours                   NUMBER := 0;
2147    l_capacity_hours                 NUMBER := 0;
2148    l_missing_hours                  NUMBER := 0;
2149    l_utilization_hours              NUMBER := 0;
2150    l_billable_hours                 NUMBER := 0;
2151    l_nonbillable_hours              NUMBER := 0;
2152    l_training_hours                 NUMBER := 0;
2153    l_actual_denominator             NUMBER := 0;
2154    l_prior_actual_hours             NUMBER := 0;
2155    l_prior_capacity_hours           NUMBER := 0;
2156    l_prior_utilization_hours        NUMBER := 0;
2157    l_prior_billable_hours           NUMBER := 0;
2158    l_prior_nonbillable_hours        NUMBER := 0;
2159    l_prior_training_hours           NUMBER := 0;
2160    l_prior_actual_denominator       NUMBER := 0;
2161    l_Top_Org_Index                  NUMBER;
2162    l_Top_Organization_Name          VARCHAR2(240);
2163 BEGIN
2164    PJI_PMV_ENGINE.Convert_Operating_Unit (p_operating_unit, p_view_by);
2165    PJI_PMV_ENGINE.Convert_Time (p_as_of_date, p_period_type, p_view_by, 'Y');
2166    l_util_category_flag := PJI_PMV_ENGINE.Convert_Util_Category(p_work_type, p_utilization_category, p_view_by);
2167    l_job_flag := PJI_PMV_ENGINE.Convert_Job_Level(null, p_job_level, p_view_by);
2168 
2169    /*
2170     * Get Utilization percentage denominator profile value
2171     */
2172    BEGIN
2173      SELECT fnd_profile.value('PA_ORG_UTIL_DEF_CALC_METHOD')
2174      INTO l_denominator
2175      from dual;
2176 
2177      EXCEPTION WHEN NO_DATA_FOUND THEN
2178          l_denominator := 'CAPACITY';
2179    END;
2180 
2181    /*
2182     * Get report labor unit
2183     */
2184    BEGIN
2185      select report_labor_units
2186      into l_labor_unit
2187      from pji_system_settings;
2188 
2189    EXCEPTION WHEN OTHERS THEN
2190          l_labor_unit := null;
2191    END;
2192 
2193    IF l_util_category_flag = 'N' AND l_job_flag = 'N' THEN
2194 
2195       PJI_PMV_ENGINE.Convert_Organization(P_TOP_ORGANIZATION_ID   => p_Organization
2196                                         , P_VIEW_BY               => p_view_by
2197                                         , P_TOP_ORGANIZATION_NAME => l_Top_Organization_Name );
2198 
2199 
2200       SELECT PJI_REP_U3(org_id,
2201                         organization_id,
2202                         time_id,
2203                         time_key,
2204                         util_category_id,
2205                         work_type_id,
2206                         job_level_id,
2207                         sum(actual_hours),
2208                         sum(capacity_hours),
2209                         sum(missing_hours),
2210                         sum(utilization_hours),
2211                         sum(billable_hours),
2212                         sum(nonbillable_hours),
2213                         sum(training_hours),
2214                         sum(decode(l_denominator, 'CAPACITY', capacity_hours, actual_hours)),
2215                         sum(prior_actual_hours),
2216                         sum(prior_capacity_hours),
2217                         sum(prior_utilization_hours),
2218                         sum(prior_billable_hours),
2219                         sum(prior_nonbillable_hours),
2220                         sum(prior_training_hours),
2221                         sum(decode(l_denominator, 'CAPACITY', prior_capacity_hours, prior_actual_hours)),
2222                         null,null,null,null,null,null,
2223                         null,null,null,null,null,null,
2224                         null,null,null,null,null,null,
2225                         null,null,null,null
2226                         )
2227       BULK COLLECT INTO l_u3_tbl
2228       /* Bug 3515594 */
2229       FROM (
2230            SELECT /*+ ORDERED */
2231                   hou.name                                org_id,
2232                   horg.name                               organization_id,
2233                   time.name                               time_id,
2234                   DECODE(p_view_by, 'TM', time.id, -1)    time_key,
2235                   '-1'                                    util_category_id,
2236                   '-1'                                    work_type_id,
2237                   '-1'                                    job_level_id,
2238                   total_hrs_a / decode(l_labor_unit, 'DAYS', imp.FTE_DAY, 'WEEKS',imp.FTE_WEEK, 1)
2239                                                           actual_hours,
2240                   (capacity_hrs - reduce_capacity_hrs_a) / decode(l_labor_unit, 'DAYS', imp.FTE_DAY, 'WEEKS',imp.FTE_WEEK, 1)
2241                                                           capacity_hours,
2242                   missing_hrs_a / decode(l_labor_unit, 'DAYS', imp.FTE_DAY, 'WEEKS',imp.FTE_WEEK, 1)
2243                                                           missing_hours,
2244                   total_wtd_org_hrs_a / decode(l_labor_unit, 'DAYS', imp.FTE_DAY, 'WEEKS',imp.FTE_WEEK, 1)
2245                                                           utilization_hours,
2246                   bill_wtd_org_hrs_a / decode(l_labor_unit, 'DAYS', imp.FTE_DAY, 'WEEKS',imp.FTE_WEEK, 1)
2247                                                           billable_hours,
2248                   (total_wtd_org_hrs_a - bill_wtd_org_hrs_a) / decode(l_labor_unit, 'DAYS', imp.FTE_DAY, 'WEEKS',imp.FTE_WEEK, 1)
2249                                                           nonbillable_hours,
2250                   training_hrs_a / decode(l_labor_unit, 'DAYS', imp.FTE_DAY, 'WEEKS',imp.FTE_WEEK, 1)
2251                                                           training_hours,
2252                   0                                       prior_actual_hours,
2253                   0                                       prior_capacity_hours,
2254                   0                                       prior_utilization_hours,
2255                   0                                       prior_billable_hours,
2256                   0                                       prior_nonbillable_hours,
2257                   0                                       prior_training_hours
2258            FROM PJI_PMV_ORGZ_DIM_TMP horg,
2259                 PJI_PMV_TIME_DIM_TMP time,
2260                 PJI_RM_ORGO_F_MV fct,
2261                 PJI_PMV_ORG_DIM_TMP hou,
2262                 PA_IMPLEMENTATIONS_ALL imp
2263            WHERE fct.expenditure_org_id = hou.id
2264              AND fct.expenditure_organization_id = horg.id
2265              AND fct.time_id = time.id
2266              AND fct.period_type_id = time.period_type
2267              AND fct.calendar_type  = decode(fct.period_type_id,1, 'C',time.calendar_type)
2268              AND time.id is not null
2269              AND hou.id = imp.org_id
2270            UNION ALL
2271 	   /* Bug 3515594 */
2272            SELECT /*+ ORDERED */
2273                   hou.name                                org_id,
2274                   horg.name                               organization_id,
2275                   time.name                               time_id,
2276                   DECODE(p_view_by, 'TM', time.id, -1)    time_key,
2277                   '-1'                                    util_category_id,
2278                   '-1'                                    work_type_id,
2279                   '-1'                                    job_level_id,
2280                   0                                       actual_hours,
2281                   0                                       capacity_hours,
2282                   0                                       missing_hours,
2283                   0                                       utilization_hours,
2284                   0                                       billable_hours,
2285                   0                                       nonbillable_hours,
2286                   0                                       training_hours,
2287                   total_hrs_a / decode(l_labor_unit, 'DAYS', imp.FTE_DAY, 'WEEKS',imp.FTE_WEEK, 1)
2288                                                           prior_actual_hours,
2289                   (capacity_hrs - reduce_capacity_hrs_a) / decode(l_labor_unit, 'DAYS', imp.FTE_DAY, 'WEEKS',imp.FTE_WEEK, 1)
2290                                                           prior_capacity_hours,
2291                   total_wtd_org_hrs_a / decode(l_labor_unit, 'DAYS', imp.FTE_DAY, 'WEEKS',imp.FTE_WEEK, 1)
2292                                                           prior_utilization_hours,
2293                   bill_wtd_org_hrs_a / decode(l_labor_unit, 'DAYS', imp.FTE_DAY, 'WEEKS',imp.FTE_WEEK, 1)
2294                                                           prior_billable_hours,
2295                   (total_wtd_org_hrs_a - bill_wtd_org_hrs_a) / decode(l_labor_unit, 'DAYS', imp.FTE_DAY, 'WEEKS',imp.FTE_WEEK, 1)
2296                                                           prior_nonbillable_hours,
2297                   training_hrs_a / decode(l_labor_unit, 'DAYS', imp.FTE_DAY, 'WEEKS',imp.FTE_WEEK, 1)
2298                                                           prior_training_hours
2299            FROM PJI_PMV_ORGZ_DIM_TMP horg,
2300                 PJI_PMV_TIME_DIM_TMP time,
2301                 PJI_RM_ORGO_F_MV fct,
2302                 PJI_PMV_ORG_DIM_TMP hou,
2303                 PA_IMPLEMENTATIONS_ALL imp
2304            WHERE fct.expenditure_org_id = hou.id
2305              AND fct.expenditure_organization_id = horg.id
2306              AND fct.time_id = time.prior_id
2307              AND fct.period_type_id = time.period_type
2308              AND fct.calendar_type  = decode(fct.period_type_id,1, 'C',time.calendar_type)
2309              AND time.prior_id is not null
2310              AND hou.id = imp.org_id
2311            UNION ALL
2312            SELECT '-1'                                    org_id,
2313                   name                                    organization_id,
2314                   '-1'                                    time_id,
2315                   -1                                      time_key,
2316                   '-1'                                    util_category_id,
2317                   '-1'                                    work_type_id,
2318                   '-1'                                    job_level_id,
2319                   0                                       actual_hours,
2320                   0                                       capacity_hours,
2321                   0                                       missing_hours,
2322                   0                                       utilization_hours,
2323                   0                                       billable_hours,
2324                   0                                       nonbillable_hours,
2325                   0                                       training_hours,
2326                   0                                       prior_actual_hours,
2327                   0                                       prior_capacity_hours,
2328                   0                                       prior_utilization_hours,
2329                   0                                       prior_billable_hours,
2330                   0                                       prior_nonbillable_hours,
2331                   0                                       prior_training_hours
2332            FROM PJI_PMV_ORGZ_DIM_TMP
2333            WHERE name <> '-1'
2334            UNION ALL
2335            SELECT '-1'                                    org_id,
2336                   '-1'                                    organization_id,
2337                   name                                    time_id,
2338                   order_by_id                             time_key,
2339                   '-1'                                    util_category_id,
2340                   '-1'                                    work_type_id,
2341                   '-1'                                    job_level_id,
2342                   0                                       actual_hours,
2343                   0                                       capacity_hours,
2344                   0                                       missing_hours,
2345                   0                                       utilization_hours,
2346                   0                                       billable_hours,
2347                   0                                       nonbillable_hours,
2348                   0                                       training_hours,
2349                   0                                       prior_actual_hours,
2350                   0                                       prior_capacity_hours,
2351                   0                                       prior_utilization_hours,
2352                   0                                       prior_billable_hours,
2353                   0                                       prior_nonbillable_hours,
2354                   0                                       prior_training_hours
2355            FROM PJI_PMV_TIME_DIM_TMP
2356            WHERE name <> '-1'
2357            )
2358            GROUP BY org_id,
2359 		    organization_id,
2360 		    time_id,
2361 		    time_key,
2362 		    util_category_id,
2363             work_type_id,
2364 		    job_level_id;
2365 
2366    ELSIF l_job_flag = 'N' THEN
2367 
2368       PJI_PMV_ENGINE.Convert_Organization(P_TOP_ORGANIZATION_ID   => p_Organization
2369                                      , P_VIEW_BY               => p_view_by
2370                                      , P_TOP_ORGANIZATION_NAME => l_Top_Organization_Name );
2371 
2372 
2373       SELECT PJI_REP_U3(org_id,
2374                         organization_id,
2375                         time_id,
2376                         time_key,
2377                         util_category_id,
2378                         work_type_id,
2379                         job_level_id,
2380                         sum(actual_hours),
2381                         sum(decode (p_view_by, 'UC', null, 'WT',null, capacity_hours-act_reduce_capacity_hours)),
2382                         sum(decode (p_view_by, 'UC', null, 'WT',null, missing_hours)),
2383                         sum(utilization_hours),
2384                         sum(billable_hours),
2385                         sum(nonbillable_hours),
2386                         sum(training_hours),
2387                         sum(decode(l_denominator, 'CAPACITY', capacity_hours-act_reduce_capacity_hours, total_actual_hours)),
2388                         sum(prior_actual_hours),
2389                         sum(decode (p_view_by, 'UC', null, 'WT',null, prior_act_capacity_hours-prior_act_red_capacity_hours)),
2390                         sum(prior_utilization_hours),
2391                         sum(prior_billable_hours),
2392                         sum(prior_nonbillable_hours),
2393                         sum(prior_training_hours),
2394                         sum(decode(l_denominator, 'CAPACITY', prior_act_capacity_hours-prior_act_red_capacity_hours,
2395                             prior_total_actual_hours)),
2396                         null,null,null,null,null,null,
2397                         null,null,null,null,null,null,
2398                         null,null,null,null,null,null,
2399                         null,null,null,null
2400                         )
2401       BULK COLLECT INTO l_u3_tbl
2402       /* Bug 3515594 */
2403       FROM (
2404            SELECT /*+ ORDERED */
2405                   hou.name                                org_id,
2406                   horg.name                               organization_id,
2407                   time.name                               time_id,
2408                   DECODE(p_view_by, 'TM', time.id, -1)    time_key,
2409                   decode(p_view_by, 'UC', wt.name, '-1')  util_category_id,
2410                   decode(p_view_by, 'WT', wt.name, '-1')  work_type_id,
2411                   '-1'                                    job_level_id,
2412                   total_hrs_a / decode(l_labor_unit, 'DAYS', imp.FTE_DAY, 'WEEKS',imp.FTE_WEEK, 1)
2413                                                           actual_hours,
2414                   0                                       capacity_hours,
2415                   0                                       act_reduce_capacity_hours,
2416 		  null                                    missing_hours,
2417 		  0 					  total_actual_hours,
2418 		  fct.total_hrs_a / decode(l_labor_unit, 'DAYS', imp.FTE_DAY, 'WEEKS',imp.FTE_WEEK, 1) *
2419                   worktype.org_utilization_percentage / 100
2420                                                           utilization_hours,
2421                   (fct.bill_hrs_a * worktype.org_utilization_percentage / 100)
2422                                  / decode(l_labor_unit, 'DAYS', imp.FTE_DAY, 'WEEKS',imp.FTE_WEEK, 1)
2423                                                           billable_hours,
2424                   ((fct.total_hrs_a - fct.bill_hrs_a) * worktype.org_utilization_percentage / 100)
2425                                                      / decode(l_labor_unit, 'DAYS', imp.FTE_DAY, 'WEEKS',imp.FTE_WEEK, 1)
2426                                                           nonbillable_hours,
2427                   (CASE WHEN worktype.training_flag = 'Y' THEN
2428                   fct.total_hrs_a
2429                   ELSE 0 END) / decode(l_labor_unit, 'DAYS', imp.FTE_DAY, 'WEEKS',imp.FTE_WEEK, 1)
2430                                                           training_hours,
2431                   0                                       prior_actual_hours,
2432                   0                                       prior_act_capacity_hours,
2433 		  0                                       prior_act_red_capacity_hours,
2434 		  0 					  prior_total_actual_hours,
2435 		  0                                       prior_utilization_hours,
2436                   0                                       prior_billable_hours,
2437                   0                                       prior_nonbillable_hours,
2438                   0                                       prior_training_hours
2439            FROM PJI_PMV_ORGZ_DIM_TMP horg,
2440                 PJI_PMV_TIME_DIM_TMP time,
2441                 PJI_PMV_WT_DIM_TMP wt,
2442                 PJI_RM_WTO_F_MV fct,
2443                 PJI_PMV_ORG_DIM_TMP hou,
2444                 PA_WORK_TYPES_B worktype,
2445                 PA_IMPLEMENTATIONS_ALL imp
2446            WHERE fct.expenditure_org_id = hou.id
2447              AND fct.expenditure_organization_id = horg.id
2448              AND wt.id = worktype.work_type_id
2449              AND fct.work_type_id = wt.id
2450              AND fct.time_id = time.id
2451              AND fct.period_type_id = time.period_type
2452              AND fct.calendar_type  = decode(fct.period_type_id,1, 'C',time.calendar_type)
2453              AND time.id is not null
2454              AND hou.id = imp.org_id
2455            UNION ALL
2456 	   /* Bug 3515594 */
2457            SELECT /*+ ORDERED */
2458                   hou.name                                org_id,
2459                   horg.name                               organization_id,
2460                   time.name                               time_id,
2461                   DECODE(p_view_by, 'TM', time.id, -1)    time_key,
2462                   decode(p_view_by, 'UC', wt.name, '-1')  util_category_id,
2463                   decode(p_view_by, 'WT', wt.name, '-1')  work_type_id,
2464                   '-1'                                    job_level_id,
2465                   0                                       actual_hours,
2466                   0                                       capacity_hours,
2467                   0                                       act_reduce_capacity_hours,
2468                   null                                    missing_hours,
2469 		  0 					  total_actual_hours,
2470 		  0                                       utilization_hours,
2471                   0                                       billable_hours,
2472                   0                                       nonbillable_hours,
2473                   0                                       training_hours,
2474                   total_hrs_a / decode(l_labor_unit, 'DAYS', imp.FTE_DAY, 'WEEKS',imp.FTE_WEEK, 1)
2475                                                           prior_actual_hours,
2476                   0                                       prior_act_capacity_hours,
2477                   0                                       prior_act_red_capacity_hours,
2478 		  0 					  prior_total_actual_hours,
2479 		  (fct.total_hrs_a / decode(l_labor_unit, 'DAYS', imp.FTE_DAY, 'WEEKS',imp.FTE_WEEK, 1)) *
2480                   worktype.org_utilization_percentage / 100
2481                                                           prior_utilization_hours,
2482                   (fct.bill_hrs_a * worktype.org_utilization_percentage / 100)
2483                                  / decode(l_labor_unit, 'DAYS', imp.FTE_DAY, 'WEEKS',imp.FTE_WEEK, 1)
2484                                                           prior_billable_hours,
2485                   ((fct.total_hrs_a-fct.bill_hrs_a) * worktype.org_utilization_percentage / 100)
2486                                                    / decode(l_labor_unit, 'DAYS', imp.FTE_DAY, 'WEEKS',imp.FTE_WEEK, 1)
2487                                                           prior_nonbillable_hours,
2488                   (CASE WHEN worktype.training_flag = 'Y' THEN
2489                   fct.total_hrs_a
2490                   ELSE 0 END) / decode(l_labor_unit, 'DAYS', imp.FTE_DAY, 'WEEKS',imp.FTE_WEEK, 1)
2491                                                           prior_training_hours
2492            FROM PJI_PMV_ORGZ_DIM_TMP horg,
2493                 PJI_PMV_TIME_DIM_TMP time,
2494                 PJI_PMV_WT_DIM_TMP wt,
2495                 PJI_RM_WTO_F_MV fct,
2496                 PJI_PMV_ORG_DIM_TMP hou,
2497                 PA_WORK_TYPES_B worktype,
2498                 PA_IMPLEMENTATIONS_ALL imp
2499            WHERE fct.expenditure_org_id = hou.id
2500              AND fct.expenditure_organization_id = horg.id
2501              AND wt.id = worktype.work_type_id
2502              AND fct.work_type_id = wt.id
2503              AND fct.time_id = time.prior_id
2504              AND fct.period_type_id = time.period_type
2505              AND fct.calendar_type  = decode(fct.period_type_id,1, 'C',time.calendar_type)
2506              AND time.prior_id is not null
2507              AND hou.id = imp.org_id
2508            UNION ALL
2509            SELECT '-1'                                    org_id,
2510                   name                                    organization_id,
2511                   '-1'                                    time_id,
2512                   -1                                      time_key,
2513                   '-1'                                    util_category_id,
2514                   '-1'                                    work_type_id,
2515                   '-1'                                    job_level_id,
2516                   0                                       actual_hours,
2517                   0                                       capacity_hours,
2518                   0                                       act_reduce_capacity_hours,
2519                   null                                    missing_hours,
2520 		  0 					  total_actual_hours,
2521 		  0                                       utilization_hours,
2522                   0                                       billable_hours,
2523                   0                                       nonbillable_hours,
2524                   0                                       training_hours,
2525                   0                                       prior_actual_hours,
2526                   0                                       prior_act_capacity_hours,
2527                   0                                       prior_act_red_capacity_hours,
2528 		  0 					  prior_total_actual_hours,
2529 		  0                                       prior_utilization_hours,
2530                   0                                       prior_billable_hours,
2531                   0                                       prior_nonbillable_hours,
2532                   0                                       prior_training_hours
2533            FROM PJI_PMV_ORGZ_DIM_TMP
2534            WHERE name <> '-1'
2535            UNION ALL
2536            SELECT '-1'                                    org_id,
2537                   '-1'                                    organization_id,
2538                   '-1'                                    time_id,
2539                   -1                                      time_key,
2540                   decode(p_view_by, 'UC', name, '-1')     util_category_id,
2541                   decode(p_view_by, 'WT', name, '-1')     work_type_id,
2542                   '-1'                                    job_level_id,
2543                   0                                       actual_hours,
2544                   0                                       capacity_hours,
2545                   0                                       act_reduce_capacity_hours,
2546                   null                                    missing_hours,
2547 		  0 					  total_actual_hours,
2548 		  0                                       utilization_hours,
2549                   0                                       billable_hours,
2550                   0                                       nonbillable_hours,
2551                   0                                       training_hours,
2552                   0                                       prior_actual_hours,
2553                   0                                       prior_act_capacity_hours,
2554 		  0                                       prior_act_red_capacity_hours,
2555 		  0 					  prior_total_actual_hours,
2556 		  0                                       prior_utilization_hours,
2557                   0                                       prior_billable_hours,
2558                   0                                       prior_nonbillable_hours,
2559                   0                                       prior_training_hours
2560            FROM PJI_PMV_WT_DIM_TMP
2561            WHERE name <> '-1'
2562            UNION ALL
2563            SELECT '-1'                                    org_id,
2564                   '-1'                                    organization_id,
2565                   name                                    time_id,
2566                   order_by_id                             time_key,
2567                   '-1'                                    util_category_id,
2568                   '-1'                                    work_type_id,
2569                   '-1'                                    job_level_id,
2570                   0                                       actual_hours,
2571                   0                                       capacity_hours,
2572                   0                                       act_reduce_capacity_hours,
2573                   null                                    missing_hours,
2574 		  0 					  total_actual_hours,
2575 		  0                                       utilization_hours,
2576                   0                                       billable_hours,
2577                   0                                       nonbillable_hours,
2578                   0                                       training_hours,
2579                   0                                       prior_actual_hours,
2580                   0                                       prior_act_capacity_hours,
2581                   0                                       prior_act_red_capacity_hours,
2582 		  0 					  prior_total_actual_hours,
2583 		  0                                       prior_utilization_hours,
2584                   0                                       prior_billable_hours,
2585                   0                                       prior_nonbillable_hours,
2586                   0                                       prior_training_hours
2587            FROM PJI_PMV_TIME_DIM_TMP
2588            WHERE name <> '-1'
2589            UNION ALL  -- added for current year capacity_hours
2590            SELECT
2591                   FACT.org_id,
2592                   FACT.organization_id,
2593                   FACT.time_id,
2594                   FACT.time_key,
2595                   decode(p_view_by, 'UC', WT.name, '-1')  util_category_id,
2596                   decode(p_view_by, 'WT', WT.name, '-1')  work_type_id,
2597                   '-1'                                    job_level_id,
2598                   0                                       actual_hours,
2599                   FACT.capacity_hours,
2600                   FACT.reduce_capacity_hrs_a              act_reduce_capacity_hours,
2601                   FACT.missing_hrs_a                      missing_hours,
2602 		  FACT.total_actual_hours                 total_actual_hours,
2603 		  0                                       utilization_hours,
2604                   0                                       billable_hours,
2605                   0                                       nonbillable_hours,
2606                   0                                       training_hours,
2607                   0                                       prior_actual_hours,
2608                   0                                       prior_act_capacity_hours,
2609                   0                                       prior_act_red_capacity_hours,
2610 		  0 					  prior_total_actual_hours,
2611 		  0                                       prior_utilization_hours,
2612                   0                                       prior_billable_hours,
2613                   0                                       prior_nonbillable_hours,
2614                   0                                       prior_training_hours
2615            FROM
2616 	   /* Bug 3515594 */
2617             (SELECT /*+ ORDERED */
2618                      hou.name                                org_id,
2619                      horg.name                               organization_id,
2620                      time.name                               time_id,
2621                      DECODE(p_view_by, 'TM', time.id, -1)    time_key,
2622                      fct.capacity_hrs / decode(l_labor_unit, 'DAYS', imp.FTE_DAY, 'WEEKS',imp.FTE_WEEK, 1)
2623                                                           capacity_hours,
2624                      fct.total_hrs_a / decode(l_labor_unit, 'DAYS', imp.FTE_DAY, 'WEEKS',imp.FTE_WEEK, 1)
2625                                                           total_actual_hours,
2626 
2627 		     fct.missing_hrs_a / decode(l_labor_unit, 'DAYS', imp.FTE_DAY, 'WEEKS',imp.FTE_WEEK, 1)
2628                                                           missing_hrs_a,
2629                      fct.reduce_capacity_hrs_a / decode(l_labor_unit, 'DAYS', imp.FTE_DAY, 'WEEKS',imp.FTE_WEEK, 1)
2630                                                           reduce_capacity_hrs_a
2631              FROM PJI_PMV_ORGZ_DIM_TMP horg,
2632                   PJI_PMV_TIME_DIM_TMP time,
2633                   PJI_RM_ORGO_F_MV fct,
2634                   PJI_PMV_ORG_DIM_TMP hou,
2635                   PA_IMPLEMENTATIONS_ALL imp
2636              WHERE fct.expenditure_org_id = hou.id
2637              AND   fct.expenditure_organization_id = horg.id
2638              AND   fct.time_id = time.id
2639              AND   fct.period_type_id = time.period_type
2640              AND   fct.calendar_type  = decode(fct.period_type_id,1, 'C',time.calendar_type)
2641              AND   time.id is not null
2642              AND   hou.id = imp.org_id )         FACT,
2643              (SELECT distinct WT.name
2644               FROM   PJI_PMV_WT_DIM_TMP wt )     WT
2645            UNION ALL  -- added for prior year capacity_hours
2646            SELECT
2647                   FACT.org_id,
2648                   FACT.organization_id,
2649                   FACT.time_id,
2650                   FACT.time_key,
2651                   decode(p_view_by, 'UC', WT.name, '-1')  util_category_id,
2652                   decode(p_view_by, 'WT', WT.name, '-1')  work_type_id,
2653                   '-1'                                    job_level_id,
2654                   0                                       actual_hours,
2655                   0                                       capacity_hours,
2656                   0                                       act_reduce_capacity_hours,
2657                   null                                    missing_hours,
2658 		  0 					  total_actual_hours,
2659 		  0                                       utilization_hours,
2660                   0                                       billable_hours,
2661                   0                                       nonbillable_hours,
2662                   0                                       training_hours,
2663                   0                                       prior_actual_hours,
2664                   FACT.capacity_hours                     prior_act_capacity_hours,
2665                   FACT.reduce_capacity_hrs_a              prior_act_red_capacity_hours,
2666 		  FACT.total_actual_hours		  prior_total_actual_hours,
2667 		  0                                       prior_utilization_hours,
2668                   0                                       prior_billable_hours,
2669                   0                                       prior_nonbillable_hours,
2670                   0                                       prior_training_hours
2671            FROM
2672 	   /* Bug 3515594 */
2673             (SELECT /*+ ORDERED */
2674                      hou.name                                org_id,
2675                      horg.name                               organization_id,
2676                      time.name                               time_id,
2677                      DECODE(p_view_by, 'TM', time.id, -1)    time_key,
2678                      fct.capacity_hrs / decode(l_labor_unit, 'DAYS', imp.FTE_DAY, 'WEEKS',imp.FTE_WEEK, 1)
2679                                                           capacity_hours,
2680                      fct.total_hrs_a / decode(l_labor_unit, 'DAYS', imp.FTE_DAY, 'WEEKS',imp.FTE_WEEK, 1)
2681                                                           total_actual_hours,
2682 
2683 		     fct.reduce_capacity_hrs_a / decode(l_labor_unit, 'DAYS', imp.FTE_DAY, 'WEEKS',imp.FTE_WEEK, 1)
2684                                                           reduce_capacity_hrs_a
2685              FROM PJI_PMV_ORGZ_DIM_TMP horg,
2686                   PJI_PMV_TIME_DIM_TMP time,
2687                   PJI_RM_ORGO_F_MV fct,
2688                   PJI_PMV_ORG_DIM_TMP hou,
2689                   PA_IMPLEMENTATIONS_ALL imp
2690              WHERE fct.expenditure_org_id = hou.id
2691              AND   fct.expenditure_organization_id = horg.id
2692              AND   fct.time_id = time.prior_id
2693              AND   fct.period_type_id = time.period_type
2694              AND   fct.calendar_type  = decode(fct.period_type_id,1, 'C',time.calendar_type)
2695              AND   time.prior_id is not null
2696              AND   hou.id = imp.org_id )         FACT,
2697              (SELECT distinct WT.name
2698               FROM   PJI_PMV_WT_DIM_TMP wt )     WT
2699            )
2700            GROUP BY org_id,
2701 		    organization_id,
2702 		    time_id,
2703 		    time_key,
2704 		    util_category_id,
2705             work_type_id,
2706 		    job_level_id;
2707 
2708 
2709    ELSIF l_util_category_flag = 'N' THEN
2710 
2711       PJI_PMV_ENGINE.Convert_Organization(P_TOP_ORGANIZATION_ID   => p_Organization
2712                                      , P_VIEW_BY               => p_view_by
2713                                      , P_TOP_ORGANIZATION_NAME => l_Top_Organization_Name );
2714 
2715 
2716       SELECT PJI_REP_U3(org_id,
2717                         organization_id,
2718                         time_id,
2719                         time_key,
2720                         util_category_id,
2721                         work_type_id,
2722                         job_level_id,
2723                         sum(actual_hours),
2724                         sum(capacity_hours - reduce_capacity_hrs_a),
2725                         sum(missing_hours),
2726                         sum(utilization_hours),
2727                         sum(billable_hours),
2728                         sum(nonbillable_hours),
2729                         sum(training_hours),
2730                         sum(decode(l_denominator, 'CAPACITY', capacity_hours - reduce_capacity_hrs_a, actual_hours)),
2731                         sum(prior_actual_hours),
2732                         sum(prior_capacity_hours - prior_reduce_capacity_hrs_a),
2733                         sum(prior_utilization_hours),
2734                         sum(prior_billable_hours),
2735                         sum(prior_nonbillable_hours),
2736                         sum(prior_training_hours),
2737                         sum(decode(l_denominator, 'CAPACITY', prior_capacity_hours - prior_reduce_capacity_hrs_a, prior_actual_hours)),
2738                         null,null,null,null,null,null,
2739                         null,null,null,null,null,null,
2740                         null,null,null,null,null,null,
2741                         null,null,null,null
2742                         )
2743       BULK COLLECT INTO l_u3_tbl
2744       /* Bug 3515594 */
2745       FROM (
2746            SELECT /*+ ORDERED */
2747                   hou.name                                org_id,
2748                   horg.name                               organization_id,
2749                   time.name                               time_id,
2750                   DECODE(p_view_by, 'TM', time.id, -1)    time_key,
2751                   '-1'                                    util_category_id,
2752                   '-1'                                    work_type_id,
2753                   job.name                                job_level_id,
2754                   total_hrs_a / decode(l_labor_unit, 'DAYS', imp.FTE_DAY, 'WEEKS',imp.FTE_WEEK, 1)
2755                                                           actual_hours,
2756                   capacity_hrs                            capacity_hours,
2757                   reduce_capacity_hrs_a                   reduce_capacity_hrs_a,
2758                   missing_hrs_a                           missing_hours,
2759                   total_wtd_org_hrs_a / decode(l_labor_unit, 'DAYS', imp.FTE_DAY, 'WEEKS',imp.FTE_WEEK, 1)
2760                                                           utilization_hours,
2761                   bill_wtd_org_hrs_a / decode(l_labor_unit, 'DAYS', imp.FTE_DAY, 'WEEKS',imp.FTE_WEEK, 1)
2762                                                           billable_hours,
2763                   (total_wtd_org_hrs_a - bill_wtd_org_hrs_a) / decode(l_labor_unit, 'DAYS', imp.FTE_DAY, 'WEEKS',imp.FTE_WEEK, 1)
2764                                                           nonbillable_hours,
2765                   training_hrs_a / decode(l_labor_unit, 'DAYS', imp.FTE_DAY, 'WEEKS',imp.FTE_WEEK, 1)
2766                                                           training_hours,
2767                   0                                       prior_actual_hours,
2768                   0                                       prior_capacity_hours,
2769                   0                                       prior_reduce_capacity_hrs_a,
2770                   0                                       prior_utilization_hours,
2771                   0                                       prior_billable_hours,
2772                   0                                       prior_nonbillable_hours,
2773                   0                                       prior_training_hours
2774            FROM PJI_PMV_ORGZ_DIM_TMP horg,
2775                 PJI_PMV_TIME_DIM_TMP time,
2776                 PJI_PMV_JB_DIM_TMP job,
2777                 PJI_RM_JOBO_F_MV fct,
2778                 PJI_PMV_ORG_DIM_TMP hou,
2779                 PA_IMPLEMENTATIONS_ALL imp
2780            WHERE fct.expenditure_org_id = hou.id
2781              AND fct.expenditure_organization_id = horg.id
2782              AND fct.job_id = job.id
2783              AND fct.time_id = time.id
2784              AND fct.period_type_id = time.period_type
2785              AND fct.calendar_type  = decode(fct.period_type_id,1, 'C',time.calendar_type)
2786              AND time.id is not null
2787              AND hou.id = imp.org_id
2788            UNION ALL
2789 	   /* Bug 3515594 */
2790            SELECT /*+ ORDERED */
2791                   hou.name                                org_id,
2792                   horg.name                               organization_id,
2793                   time.name                               time_id,
2794                   DECODE(p_view_by, 'TM', time.id, -1)    time_key,
2795                   '-1'                                    util_category_id,
2796                   '-1'                                    work_type_id,
2797                   job.name                                job_level_id,
2798                   0                                       actual_hours,
2799                   0                                       capacity_hours,
2800                   0                                       reduce_capacity_hrs_a,
2801                   null                                    missing_hours,
2802                   0                                       utilization_hours,
2803                   0                                       billable_hours,
2804                   0                                       nonbillable_hours,
2805                   0                                       training_hours,
2806                   total_hrs_a / decode(l_labor_unit, 'DAYS', imp.FTE_DAY, 'WEEKS',imp.FTE_WEEK, 1)
2807                                                           prior_actual_hours,
2808                   capacity_hrs                            prior_capacity_hours,
2809                   reduce_capacity_hrs_a                   prior_reduce_capacity_hrs_a,
2810                   total_wtd_org_hrs_a / decode(l_labor_unit, 'DAYS', imp.FTE_DAY, 'WEEKS',imp.FTE_WEEK, 1)
2811                                                           prior_utilization_hours,
2812                   bill_wtd_org_hrs_a / decode(l_labor_unit, 'DAYS', imp.FTE_DAY, 'WEEKS',imp.FTE_WEEK, 1)
2813                                                           prior_billable_hours,
2814                   (total_wtd_org_hrs_a - bill_wtd_org_hrs_a) / decode(l_labor_unit, 'DAYS', imp.FTE_DAY, 'WEEKS',imp.FTE_WEEK, 1)
2815                                                           prior_nonbillable_hours,
2816                   training_hrs_a / decode(l_labor_unit, 'DAYS', imp.FTE_DAY, 'WEEKS',imp.FTE_WEEK, 1)
2817                                                           prior_training_hours
2818            FROM PJI_PMV_ORGZ_DIM_TMP horg,
2819                 PJI_PMV_TIME_DIM_TMP time,
2820                 PJI_PMV_JB_DIM_TMP job,
2821                 PJI_RM_JOBO_F_MV fct,
2822                 PJI_PMV_ORG_DIM_TMP hou,
2823                 PA_IMPLEMENTATIONS_ALL imp
2824            WHERE fct.expenditure_org_id = hou.id
2825              AND fct.expenditure_organization_id = horg.id
2826              AND fct.job_id = job.id
2827              AND fct.time_id = time.prior_id
2828              AND fct.period_type_id = time.period_type
2829              AND fct.calendar_type  = decode(fct.period_type_id,1, 'C',time.calendar_type)
2830              AND time.prior_id is not null
2831              AND hou.id = imp.org_id
2832            UNION ALL
2833            SELECT '-1'                                    org_id,
2834                   name                                    organization_id,
2835                   '-1'                                    time_id,
2836                   -1                                      time_key,
2837                   '-1'                                    util_category_id,
2838                   '-1'                                    work_type_id,
2839                   '-1'                                    job_level_id,
2840                   0                                       actual_hours,
2841                   0                                       capacity_hours,
2842                   0                                       reduce_capacity_hrs_a,
2843                   null                                    missing_hours,
2844                   0                                       utilization_hours,
2845                   0                                       billable_hours,
2846                   0                                       nonbillable_hours,
2847                   0                                       training_hours,
2848                   0                                       prior_actual_hours,
2849                   0                                       prior_capacity_hours,
2850                   0                                       prior_reduce_capacity_hrs_a,
2851                   0                                       prior_utilization_hours,
2852                   0                                       prior_billable_hours,
2853                   0                                       prior_nonbillable_hours,
2854                   0                                       prior_training_hours
2855            FROM PJI_PMV_ORGZ_DIM_TMP
2856            WHERE name <> '-1'
2857            UNION ALL
2858            SELECT '-1'                                    org_id,
2859                   '-1'                                    organization_id,
2860                   '-1'                                    time_id,
2861                   -1                                      time_key,
2862                   '-1'                                    util_category_id,
2863                   '-1'                                    work_type_id,
2864                   name                                    job_level_id,
2865                   0                                       actual_hours,
2866                   0                                       capacity_hours,
2867                   0                                       reduce_capacity_hrs_a,
2868                   null                                    missing_hours,
2869                   0                                       utilization_hours,
2870                   0                                       billable_hours,
2871                   0                                       nonbillable_hours,
2872                   0                                       training_hours,
2873                   0                                       prior_actual_hours,
2874                   0                                       prior_capacity_hours,
2875                   0                                       prior_reduce_capacity_hrs_a,
2876                   0                                       prior_utilization_hours,
2877                   0                                       prior_billable_hours,
2878                   0                                       prior_nonbillable_hours,
2879                   0                                       prior_training_hours
2880            FROM PJI_PMV_JB_DIM_TMP
2881            WHERE name <> '-1'
2882            UNION ALL
2883            SELECT '-1'                                    org_id,
2884                   '-1'                                    organization_id,
2885                   name                                    time_id,
2886                   order_by_id                             time_key,
2887                   '-1'                                    util_category_id,
2888                   '-1'                                    work_type_id,
2889                   '-1'                                    job_level_id,
2890                   0                                       actual_hours,
2891                   0                                       capacity_hours,
2892                   0                                       reduce_capacity_hrs_a,
2893                   null                                    missing_hours,
2894                   0                                       utilization_hours,
2895                   0                                       billable_hours,
2896                   0                                       nonbillable_hours,
2897                   0                                       training_hours,
2898                   0                                       prior_actual_hours,
2899                   0                                       prior_capacity_hours,
2900                   0                                       prior_reduce_capacity_hrs_a,
2901                   0                                       prior_utilization_hours,
2902                   0                                       prior_billable_hours,
2903                   0                                       prior_nonbillable_hours,
2904                   0                                       prior_training_hours
2905            FROM PJI_PMV_TIME_DIM_TMP
2906            WHERE name <> '-1'
2907            )
2908            GROUP BY org_id,
2909 		    organization_id,
2910 		    time_id,
2911 		    time_key,
2912 		    util_category_id,
2913             work_type_id,
2914 		    job_level_id;
2915 
2916    ELSE
2917 
2918       PJI_PMV_ENGINE.Convert_Organization(p_Organization, p_view_by);
2919 
2920 
2921       SELECT PJI_REP_U3(org_id,
2922                         organization_id,
2923                         time_id,
2924                         time_key,
2925                         util_category_id,
2926                         work_type_id,
2927                         job_level_id,
2928                         sum(actual_hours),
2929                         sum(decode (p_view_by, 'UC', null, 'WT',null, capacity_hours-act_reduce_capacity_hours)),
2930                         sum(decode (p_view_by, 'UC', null, 'WT',null, missing_hours)),
2931                         sum(utilization_hours),
2932                         sum(billable_hours),
2933                         sum(nonbillable_hours),
2934                         sum(training_hours),
2935                         sum(decode(l_denominator, 'CAPACITY', capacity_hours-act_reduce_capacity_hours, total_actual_hours)),
2936                         sum(prior_actual_hours),
2937                         sum(decode (p_view_by, 'UC', null, 'WT',null, prior_act_capacity_hours-prior_act_red_capacity_hours)),
2938                         sum(prior_utilization_hours),
2939                         sum(prior_billable_hours),
2940                         sum(prior_nonbillable_hours),
2941                         sum(prior_training_hours),
2942                         sum(decode(l_denominator, 'CAPACITY', prior_act_capacity_hours-prior_act_red_capacity_hours,
2943                             prior_total_actual_hours)),
2944                         null,null,null,null,null,null,
2945                         null,null,null,null,null,null,
2946                         null,null,null,null,null,null,
2947                         null,null,null,null)
2948       BULK COLLECT INTO l_u3_tbl
2949       /* Bug 3515594 */
2950       FROM (
2951            SELECT /*+ ORDERED */
2952                   hou.name                                org_id,
2953                   decode(p_view_by, 'OG', horg.name, -1)                               organization_id,
2954                   time.name                               time_id,
2955                   DECODE(p_view_by, 'TM', time.id, -1)    time_key,
2956                   decode(p_view_by, 'UC', wt.name, '-1')  util_category_id,
2957                   decode(p_view_by, 'WT', wt.name, '-1')  work_type_id,
2958                   decode(p_view_by, 'JL', job.name , '-1') job_level_id,
2959                   total_hrs_a / decode(l_labor_unit, 'DAYS', imp.FTE_DAY, 'WEEKS',imp.FTE_WEEK, 1)
2960                                                           actual_hours,
2961                   0                                       capacity_hours,
2962                   0                                       act_reduce_capacity_hours,
2963                   null                                    missing_hours,
2964 		  0 					  total_actual_hours,
2965                   (fct.total_hrs_a / decode(l_labor_unit, 'DAYS', imp.FTE_DAY, 'WEEKS',imp.FTE_WEEK, 1)) *
2966                   worktype.org_utilization_percentage / 100
2967                                                           utilization_hours,
2968                   (fct.bill_hrs_a * worktype.org_utilization_percentage / 100)
2969                                  / decode(l_labor_unit, 'DAYS', imp.FTE_DAY, 'WEEKS',imp.FTE_WEEK, 1)
2970                                                           billable_hours,
2971                   ((fct.total_hrs_a - fct.bill_hrs_a) * worktype.org_utilization_percentage / 100)
2972                                                      / decode(l_labor_unit, 'DAYS', imp.FTE_DAY, 'WEEKS',imp.FTE_WEEK, 1)
2973                                                           nonbillable_hours,
2974                   (CASE WHEN worktype.training_flag = 'Y' THEN
2975                   fct.total_hrs_a
2976                   ELSE 0 END) / decode(l_labor_unit, 'DAYS', imp.FTE_DAY, 'WEEKS',imp.FTE_WEEK, 1)
2977                                                           training_hours,
2978                   0                                       prior_actual_hours,
2979                   0                                       prior_act_capacity_hours,
2980                   0                                       prior_act_red_capacity_hours,
2981 		  0 					  prior_total_actual_hours,
2982 		  0                                       prior_utilization_hours,
2983                   0                                       prior_billable_hours,
2984                   0                                       prior_nonbillable_hours,
2985                   0                                       prior_training_hours
2986            FROM PJI_PMV_ORGZ_DIM_TMP horg,
2987                 PJI_PMV_TIME_DIM_TMP time,
2988                 PJI_PMV_WT_DIM_TMP wt,
2989                 PJI_RM_RES_WT_F fct,
2990                 PJI_PMV_ORG_DIM_TMP hou,
2991                 PJI_PMV_JB_DIM_TMP job,
2992                 PA_WORK_TYPES_B worktype,
2993                 PA_IMPLEMENTATIONS_ALL imp
2994            WHERE fct.expenditure_org_id = hou.id
2995              AND fct.expenditure_organization_id = horg.id
2996              AND wt.id = worktype.work_type_id
2997              AND fct.work_type_id = wt.id
2998              AND fct.job_id = job.id
2999              AND fct.time_id = time.id
3000              AND fct.period_type_id = time.period_type
3001              AND fct.calendar_type  = decode(fct.period_type_id,1, 'C',time.calendar_type)
3002              AND time.id is not null
3003              AND hou.id = imp.org_id
3004            UNION ALL
3005 	   /* Bug 3515594 */
3006            SELECT /*+ ORDERED */
3007                   hou.name                                org_id,
3008                   decode(p_view_by, 'OG', horg.name, -1)  organization_id,
3009                   time.name                               time_id,
3010                   DECODE(p_view_by, 'TM', time.id, -1)    time_key,
3011                   decode(p_view_by, 'UC', wt.name, '-1')  util_category_id,
3012                   decode(p_view_by, 'WT', wt.name, '-1')  work_type_id,
3013                   decode(p_view_by, 'JL', job.name , '-1') job_level_id,
3014                   0                                       actual_hours,
3015                   0                                       capacity_hours,
3016                   0                                       act_reduce_capacity_hours,
3017                   null                                    missing_hours,
3018 		  0 					  total_actual_hours,
3019 		  0                                       utilization_hours,
3020                   0                                       billable_hours,
3021                   0                                       nonbillable_hours,
3022                   0                                       training_hours,
3023                   total_hrs_a / decode(l_labor_unit, 'DAYS', imp.FTE_DAY, 'WEEKS',imp.FTE_WEEK, 1)
3024                                                           prior_actual_hours,
3025                   0                                       prior_act_capacity_hours,
3026                   0                                       prior_act_red_capacity_hours,
3027 		  0 					  prior_total_actual_hours,
3028 		  fct.total_hrs_a / decode(l_labor_unit, 'DAYS', imp.FTE_DAY, 'WEEKS',imp.FTE_WEEK, 1) *
3029                   worktype.org_utilization_percentage / 100
3030                                                           prior_utilization_hours,
3031                   (fct.bill_hrs_a * worktype.org_utilization_percentage / 100)
3032                                  / decode(l_labor_unit, 'DAYS', imp.FTE_DAY, 'WEEKS',imp.FTE_WEEK, 1)
3033                                                           prior_billable_hours,
3034                   ((fct.total_hrs_a-fct.bill_hrs_a) * worktype.org_utilization_percentage / 100)
3035                                                    / decode(l_labor_unit, 'DAYS', imp.FTE_DAY, 'WEEKS',imp.FTE_WEEK, 1)
3036                                                           prior_nonbillable_hours,
3037                   (CASE WHEN worktype.training_flag = 'Y' THEN
3038                   fct.total_hrs_a
3039                   ELSE 0 END) / decode(l_labor_unit, 'DAYS', imp.FTE_DAY, 'WEEKS',imp.FTE_WEEK, 1)
3040                                                           prior_training_hours
3041            FROM PJI_PMV_ORGZ_DIM_TMP horg,
3042                 PJI_PMV_TIME_DIM_TMP time,
3043                 PJI_PMV_WT_DIM_TMP wt,
3044                 PJI_RM_RES_WT_F fct,
3045                 PJI_PMV_ORG_DIM_TMP hou,
3046                 PJI_PMV_JB_DIM_TMP job,
3047                 PA_WORK_TYPES_B worktype,
3048                 PA_IMPLEMENTATIONS_ALL imp
3049            WHERE fct.expenditure_org_id = hou.id
3050              AND fct.expenditure_organization_id = horg.id
3051              AND wt.id = worktype.work_type_id
3052              AND fct.work_type_id = wt.id
3053              AND fct.job_id = job.id
3054              AND fct.time_id = time.prior_id
3055              AND fct.period_type_id = time.period_type
3056              AND fct.calendar_type  = decode(fct.period_type_id,1, 'C',time.calendar_type)
3057              AND time.prior_id is not null
3058              AND hou.id = imp.org_id
3059            UNION ALL
3060            SELECT '-1'                                    org_id,
3061                   decode(p_view_by, 'OG', name, -1)  organization_id,
3062                   '-1'                                    time_id,
3063                   -1                                      time_key,
3064                   '-1'                                    util_category_id,
3065                   '-1'                                    work_type_id,
3066                   '-1'                                    job_level_id,
3067                   0                                       actual_hours,
3068                   0                                       capacity_hours,
3069                   0                                       act_reduce_capacity_hours,
3070                   null                                    missing_hours,
3071 		  0 					  total_actual_hours,
3072 		  0                                       utilization_hours,
3073                   0                                       billable_hours,
3074                   0                                       nonbillable_hours,
3075                   0                                       training_hours,
3076                   0                                       prior_actual_hours,
3077                   0                                       prior_act_capacity_hours,
3078                   0                                       prior_act_red_capacity_hours,
3079 		  0 					  prior_total_actual_hours,
3080 		  0                                       prior_utilization_hours,
3081                   0                                       prior_billable_hours,
3082                   0                                       prior_nonbillable_hours,
3083                   0                                       prior_training_hours
3084            FROM PJI_PMV_ORGZ_DIM_TMP
3085            WHERE name <> '-1'
3086            UNION ALL
3087            SELECT '-1'                                    org_id,
3088                   '-1'                                    organization_id,
3089                   '-1'                                    time_id,
3090                   -1                                      time_key,
3091                   decode(p_view_by, 'UC', name, '-1')     util_category_id,
3092                   decode(p_view_by, 'WT', name, '-1')     work_type_id,
3093                   '-1'                                    job_level_id,
3094                   0                                       actual_hours,
3095                   0                                       capacity_hours,
3096                   0                                       act_reduce_capacity_hours,
3097                   null                                    missing_hours,
3098 		  0 					  total_actual_hours,
3099 		  0                                       utilization_hours,
3100                   0                                       billable_hours,
3101                   0                                       nonbillable_hours,
3102                   0                                       training_hours,
3103                   0                                       prior_actual_hours,
3104                   0                                       prior_act_capacity_hours,
3105                   0                                       prior_act_red_capacity_hours,
3106 		  0 					  prior_total_actual_hours,
3107 		  0                                       prior_utilization_hours,
3108                   0                                       prior_billable_hours,
3109                   0                                       prior_nonbillable_hours,
3110                   0                                       prior_training_hours
3111            FROM PJI_PMV_WT_DIM_TMP
3112            WHERE name <> '-1'
3113            UNION ALL
3114            SELECT '-1'                                    org_id,
3115                   '-1'                                    organization_id,
3116                   '-1'                                    time_id,
3117                   -1                                      time_key,
3118                   '-1'                                    util_category_id,
3119                   '-1'                                    work_type_id,
3120                   name                                    job_level_id,
3121                   0                                       actual_hours,
3122                   0                                       capacity_hours,
3123                   0                                       act_reduce_capacity_hours,
3124                   null                                    missing_hours,
3125 		  0 					  total_actual_hours,
3126 		  0                                       utilization_hours,
3127                   0                                       billable_hours,
3128                   0                                       nonbillable_hours,
3129                   0                                       training_hours,
3130                   0                                       prior_actual_hours,
3131                   0                                       prior_act_capacity_hours,
3132                   0                                       prior_act_red_capacity_hours,
3133 		  0 					  prior_total_actual_hours,
3134 		  0                                       prior_utilization_hours,
3135                   0                                       prior_billable_hours,
3136                   0                                       prior_nonbillable_hours,
3137                   0                                       prior_training_hours
3138            FROM PJI_PMV_JB_DIM_TMP
3139            WHERE name <> '-1'
3140            UNION ALL
3141            SELECT '-1'                                    org_id,
3142                   '-1'                                    organization_id,
3143                   name                                    time_id,
3144                   order_by_id                             time_key,
3145                   '-1'                                    util_category_id,
3146                   '-1'                                    work_type_id,
3147                   '-1'                                    job_level_id,
3148                   0                                       actual_hours,
3149                   0                                       capacity_hours,
3150                   0                                       act_reduce_capacity_hours,
3151                   null                                    missing_hours,
3152 		  0 					  total_actual_hours,
3153                   0                                       utilization_hours,
3154                   0                                       billable_hours,
3155                   0                                       nonbillable_hours,
3156                   0                                       training_hours,
3157                   0                                       prior_actual_hours,
3158                  -- 0                                     prior_capacity_hours,
3159                   0                                       prior_act_capacity_hours,
3160                   0                                       prior_act_red_capacity_hours,
3161 		  0 					  prior_total_actual_hours,
3162 		  0                                       prior_utilization_hours,
3163                   0                                       prior_billable_hours,
3164                   0                                       prior_nonbillable_hours,
3165                   0                                       prior_training_hours
3166            FROM PJI_PMV_TIME_DIM_TMP
3167            WHERE name <> '-1'
3168            UNION ALL  -- added for current year capacity_hours
3169            SELECT
3170                   FACT.org_id,
3171                   FACT.organization_id,
3172                   FACT.time_id,
3173                   FACT.time_key,
3174                   decode(p_view_by, 'UC', WT.name, '-1')  util_category_id,
3175                   decode(p_view_by, 'WT', WT.name, '-1')  work_type_id,
3176                   decode(p_view_by, 'JL', FACT.job_level_id , '-1') job_level_id,
3177                   0                                       actual_hours,
3178                   FACT.capacity_hours			  capacity_hours,
3179                   FACT.reduce_capacity_hrs_a              act_reduce_capacity_hours,
3180                   FACT.missing_hrs_a                      missing_hours,
3181 		  FACT.total_actual_hours		  total_actual_hours,
3182 		  0                                       utilization_hours,
3183                   0                                       billable_hours,
3184                   0                                       nonbillable_hours,
3185                   0                                       training_hours,
3186                   0                                       prior_actual_hours,
3187                   0                                       prior_act_capacity_hours,
3188                   0                                       prior_act_red_capacity_hours,
3189 		  0 					  prior_total_actual_hours,
3190                   0                                       prior_utilization_hours,
3191                   0                                       prior_billable_hours,
3192                   0                                       prior_nonbillable_hours,
3193                   0                                       prior_training_hours
3194            FROM
3195 	     /* Bug 3515594 */
3196             (SELECT /*+ ORDERED */
3197                      hou.name                                org_id,
3198                      decode(p_view_by, 'OG', horg.name, -1)  organization_id,
3199                      time.name                               time_id,
3200                      DECODE(p_view_by, 'TM', time.id, -1)    time_key,
3201                      job.name                                job_level_id,
3202                      fct.capacity_hrs / decode(l_labor_unit, 'DAYS', imp.FTE_DAY, 'WEEKS',imp.FTE_WEEK, 1)
3203                                                           capacity_hours,
3204                      fct.total_hrs_a / decode(l_labor_unit, 'DAYS', imp.FTE_DAY, 'WEEKS',imp.FTE_WEEK, 1)
3205                                                           total_actual_hours,
3206 
3207 		     fct.missing_hrs_a / decode(l_labor_unit, 'DAYS', imp.FTE_DAY, 'WEEKS',imp.FTE_WEEK, 1)
3208                                                           missing_hrs_a,
3209                      fct.reduce_capacity_hrs_a / decode(l_labor_unit, 'DAYS', imp.FTE_DAY, 'WEEKS',imp.FTE_WEEK, 1)
3210                                                           reduce_capacity_hrs_a
3211              FROM PJI_PMV_ORGZ_DIM_TMP horg,
3212                   PJI_PMV_TIME_DIM_TMP time,
3213                   PJI_PMV_JB_DIM_TMP   job,
3214                   PJI_RM_JOB_F_MV fct,
3215                   PJI_PMV_ORG_DIM_TMP hou,
3216                   PA_IMPLEMENTATIONS_ALL imp
3217              WHERE fct.expenditure_org_id = hou.id
3218              AND   fct.expenditure_organization_id = horg.id
3219              AND   fct.time_id = time.id
3220              AND   fct.period_type_id = time.period_type
3221              AND   fct.job_id  = job.id
3222              AND   fct.calendar_type  = decode(fct.period_type_id,1, 'C',time.calendar_type)
3223              AND   time.id is not null
3224              AND   hou.id = imp.org_id )         FACT,
3225              (SELECT distinct WT.name
3226               FROM   PJI_PMV_WT_DIM_TMP wt )     WT
3227            UNION ALL  -- added for prior year capacity_hours
3228 	   /* Bug 3515594 */
3229            SELECT
3230                   FACT.org_id,
3231                   FACT.organization_id,
3232                   FACT.time_id,
3233                   FACT.time_key,
3234                   decode(p_view_by, 'UC', WT.name, '-1')  util_category_id,
3235                   decode(p_view_by, 'WT', WT.name, '-1')  work_type_id,
3236                   decode(p_view_by, 'JL', FACT.job_level_id , '-1') job_level_id,
3237                   0                                       actual_hours,
3238                   0                                       capacity_hours,
3239                   0                                       act_reduce_capacity_hours,
3240                   null                                    missing_hours,
3241 		  0 					  total_actual_hours,
3242 		  0                                       utilization_hours,
3243                   0                                       billable_hours,
3244                   0                                       nonbillable_hours,
3245                   0                                       training_hours,
3246                   0                                       prior_actual_hours,
3247                   FACT.capacity_hours                     prior_act_capacity_hours,
3248                   FACT.reduce_capacity_hrs_a              prior_act_red_capacity_hours,
3249 		  FACT.total_actual_hours		  prior_total_actual_hours,
3250 		  0                                       prior_utilization_hours,
3251                   0                                       prior_billable_hours,
3252                   0                                       prior_nonbillable_hours,
3253                   0                                       prior_training_hours
3254            FROM
3255             (SELECT /*+ ORDERED */
3256                      hou.name                                org_id,
3257                      decode(p_view_by, 'OG', horg.name, -1)  organization_id,
3258                      time.name                               time_id,
3259                      DECODE(p_view_by, 'TM', time.id, -1)    time_key,
3260                      job.name                                job_level_id,
3261                      fct.capacity_hrs / decode(l_labor_unit, 'DAYS', imp.FTE_DAY, 'WEEKS',imp.FTE_WEEK, 1)
3262                                                           capacity_hours,
3263                      fct.total_hrs_a / decode(l_labor_unit, 'DAYS', imp.FTE_DAY, 'WEEKS',imp.FTE_WEEK, 1)
3264                                                           total_actual_hours,
3265                      fct.reduce_capacity_hrs_a / decode(l_labor_unit, 'DAYS', imp.FTE_DAY, 'WEEKS',imp.FTE_WEEK, 1)
3266                                                           reduce_capacity_hrs_a
3267              FROM PJI_PMV_ORGZ_DIM_TMP horg,
3268                   PJI_PMV_TIME_DIM_TMP time,
3269                   PJI_PMV_JB_DIM_TMP   job,
3270                   PJI_RM_JOB_F_MV fct,
3271                   PJI_PMV_ORG_DIM_TMP hou,
3272                   PA_IMPLEMENTATIONS_ALL imp
3273              WHERE fct.expenditure_org_id = hou.id
3274              AND   fct.expenditure_organization_id = horg.id
3275              AND   fct.time_id = time.prior_id
3276              AND   fct.period_type_id = time.period_type
3277              AND   fct.job_id = job.id
3278              AND   fct.calendar_type  = decode(fct.period_type_id,1, 'C',time.calendar_type)
3279              AND   time.prior_id is not null
3280              AND   hou.id = imp.org_id )         FACT,
3281              (SELECT distinct WT.name
3282               FROM   PJI_PMV_WT_DIM_TMP wt )     WT
3283            )
3284            GROUP BY org_id,
3285 		     organization_id,
3286 		     time_id,
3287 		     time_key,
3288 		     util_category_id,
3289              work_type_id,
3290 		     job_level_id;
3291 
3292    END IF;
3293 
3294    /* Totals and Top level org correction*/
3295 
3296      FOR i in 1..l_u3_tbl.COUNT
3297        LOOP
3298          IF p_View_By = 'OG' AND ( l_job_flag = 'N' OR l_util_category_flag = 'N' )
3299             AND l_u3_tbl(i).ORGANIZATION_ID = l_Top_Organization_Name THEN
3300 
3301            l_Top_Org_Index:=i;
3302 
3303          ELSE
3304 
3305            l_actual_hours                 := l_actual_hours             + nvl(l_u3_tbl(i).actual_hours,0);
3306 		   l_capacity_hours          	  := l_capacity_hours          	+ nvl(l_u3_tbl(i).capacity_hours,0);
3307 		   l_missing_hours           	  := l_missing_hours           	+ nvl(l_u3_tbl(i).missing_hours,0);
3308 		   l_utilization_hours       	  := l_utilization_hours       	+ nvl(l_u3_tbl(i).utilization_hours,0);
3309 		   l_billable_hours          	  := l_billable_hours          	+ nvl(l_u3_tbl(i).billable_hours,0);
3310 		   l_nonbillable_hours       	  := l_nonbillable_hours       	+ nvl(l_u3_tbl(i).nonbillable_hours,0);
3311 		   l_training_hours          	  := l_training_hours          	+ nvl(l_u3_tbl(i).training_hours,0);
3312 		   l_actual_denominator      	  := l_actual_denominator      	+ nvl(l_u3_tbl(i).actual_denominator,0);
3313 		   l_prior_actual_hours      	  := l_prior_actual_hours      	+ nvl(l_u3_tbl(i).prior_actual_hours,0);
3314 		   l_prior_capacity_hours    	  := l_prior_capacity_hours    	+ nvl(l_u3_tbl(i).prior_capacity_hours,0);
3315 		   l_prior_utilization_hours 	  := l_prior_utilization_hours 	+ nvl(l_u3_tbl(i).prior_utilization_hours,0);
3316 		   l_prior_billable_hours    	  := l_prior_billable_hours    	+ nvl(l_u3_tbl(i).prior_billable_hours,0);
3317 		   l_prior_nonbillable_hours 	  := l_prior_nonbillable_hours 	+ nvl(l_u3_tbl(i).prior_nonbillable_hours,0);
3318 		   l_prior_training_hours    	  := l_prior_training_hours    	+ nvl(l_u3_tbl(i).prior_training_hours,0);
3319 		   l_prior_actual_denominator     := l_prior_actual_denominator	+ nvl(l_u3_tbl(i).prior_actual_denominator,0);
3320 
3321            --Calculated Columns processing is done below
3322            --The l_Top_org is not done here
3323            IF nvl(l_u3_tbl(i).actual_denominator,0) <> 0 THEN
3324              l_u3_tbl(i).util_percent := 100 * (l_u3_tbl(i).utilization_hours / l_u3_tbl(i).actual_denominator);
3325              l_u3_tbl(i).bill_percent := 100 * (l_u3_tbl(i).billable_hours / l_u3_tbl(i).actual_denominator);
3326              l_u3_tbl(i).non_bill_percent := 100 * (l_u3_tbl(i).nonbillable_hours / l_u3_tbl(i).actual_denominator);
3327              l_u3_tbl(i).training_percent := 100 * (l_u3_tbl(i).training_hours / l_u3_tbl(i).actual_denominator);
3328            ELSE
3329              l_u3_tbl(i).util_percent := NULL;
3330              l_u3_tbl(i).bill_percent := NULL;
3331              l_u3_tbl(i).non_bill_percent := NULL;
3332              l_u3_tbl(i).training_percent := NULL;
3333            END IF;
3334 
3335            IF nvl(l_u3_tbl(i).prior_actual_denominator,0) <> 0 THEN
3336              l_u3_tbl(i).prior_util_percent := 100 * (l_u3_tbl(i).prior_utilization_hours / l_u3_tbl(i).prior_actual_denominator);
3337              l_u3_tbl(i).prior_bill_percent := 100 * (l_u3_tbl(i).prior_billable_hours / l_u3_tbl(i).prior_actual_denominator);
3338              l_u3_tbl(i).prior_non_bill_percent := 100 * (l_u3_tbl(i).prior_nonbillable_hours / l_u3_tbl(i).prior_actual_denominator);
3339              l_u3_tbl(i).prior_training_percent := 100 * (l_u3_tbl(i).prior_training_hours / l_u3_tbl(i).prior_actual_denominator);
3340            ELSE
3341              l_u3_tbl(i).prior_util_percent := NULL;
3342              l_u3_tbl(i).prior_bill_percent := NULL;
3343              l_u3_tbl(i).prior_non_bill_percent := NULL;
3344              l_u3_tbl(i).prior_training_percent := NULL;
3345            END IF;
3346 
3347          END IF; --end p_view_by
3348        END LOOP;
3349 
3350        --Processing for Top Org
3351        IF p_View_By = 'OG' AND ( l_job_flag = 'N' OR l_util_category_flag = 'N' )  THEN
3352 
3353            l_u3_tbl(l_Top_Org_Index).actual_hours              :=  l_u3_tbl(l_Top_Org_Index).actual_hours             - l_actual_hours;
3354      	   l_u3_tbl(l_Top_Org_Index).capacity_hours            :=  l_u3_tbl(l_Top_Org_Index).capacity_hours           - l_capacity_hours;
3355 		   l_u3_tbl(l_Top_Org_Index).missing_hours             :=  l_u3_tbl(l_Top_Org_Index).missing_hours            - l_missing_hours;
3356  		   l_u3_tbl(l_Top_Org_Index).utilization_hours         :=  l_u3_tbl(l_Top_Org_Index).utilization_hours        - l_utilization_hours;
3357 		   l_u3_tbl(l_Top_Org_Index).billable_hours            :=  l_u3_tbl(l_Top_Org_Index).billable_hours           - l_billable_hours;
3358 		   l_u3_tbl(l_Top_Org_Index).nonbillable_hours         :=  l_u3_tbl(l_Top_Org_Index).nonbillable_hours        - l_nonbillable_hours;
3359 		   l_u3_tbl(l_Top_Org_Index).training_hours            :=  l_u3_tbl(l_Top_Org_Index).training_hours           - l_training_hours;
3360 		   l_u3_tbl(l_Top_Org_Index).actual_denominator        :=  l_u3_tbl(l_Top_Org_Index).actual_denominator       - l_actual_denominator;
3361 		   l_u3_tbl(l_Top_Org_Index).prior_actual_hours        :=  l_u3_tbl(l_Top_Org_Index).prior_actual_hours       - l_prior_actual_hours;
3362 		   l_u3_tbl(l_Top_Org_Index).prior_capacity_hours      :=  l_u3_tbl(l_Top_Org_Index).prior_capacity_hours     - l_prior_capacity_hours;
3363 		   l_u3_tbl(l_Top_Org_Index).prior_utilization_hours   :=  l_u3_tbl(l_Top_Org_Index).prior_utilization_hours  - l_prior_utilization_hours;
3364 		   l_u3_tbl(l_Top_Org_Index).prior_billable_hours      :=  l_u3_tbl(l_Top_Org_Index).prior_billable_hours     - l_prior_billable_hours;
3365 		   l_u3_tbl(l_Top_Org_Index).prior_nonbillable_hours   :=  l_u3_tbl(l_Top_Org_Index).prior_nonbillable_hours  - l_prior_nonbillable_hours;
3366 		   l_u3_tbl(l_Top_Org_Index).prior_training_hours      :=  l_u3_tbl(l_Top_Org_Index).prior_training_hours     - l_prior_training_hours;
3367 		   l_u3_tbl(l_Top_Org_Index).prior_actual_denominator  :=  l_u3_tbl(l_Top_Org_Index).prior_actual_denominator - l_prior_actual_denominator;
3368 
3369            --Calculated columns processing for Top Org
3370            IF nvl(l_u3_tbl(l_Top_Org_Index).actual_denominator,0) <> 0 THEN
3371              l_u3_tbl(l_Top_Org_Index).util_percent := 100 * (l_u3_tbl(l_Top_Org_Index).utilization_hours / l_u3_tbl(l_Top_Org_Index).actual_denominator);
3372              l_u3_tbl(l_Top_Org_Index).bill_percent := 100 * (l_u3_tbl(l_Top_Org_Index).billable_hours / l_u3_tbl(l_Top_Org_Index).actual_denominator);
3373              l_u3_tbl(l_Top_Org_Index).non_bill_percent := 100 * (l_u3_tbl(l_Top_Org_Index).nonbillable_hours / l_u3_tbl(l_Top_Org_Index).actual_denominator);
3374              l_u3_tbl(l_Top_Org_Index).training_percent := 100 * (l_u3_tbl(l_Top_Org_Index).training_hours / l_u3_tbl(l_Top_Org_Index).actual_denominator);
3375            ELSE
3376              l_u3_tbl(l_Top_Org_Index).util_percent := NULL;
3377              l_u3_tbl(l_Top_Org_Index).bill_percent := NULL;
3378              l_u3_tbl(l_Top_Org_Index).non_bill_percent := NULL;
3379              l_u3_tbl(l_Top_Org_Index).training_percent := NULL;
3380            END IF;
3381 
3382            IF nvl(l_u3_tbl(l_Top_Org_Index).prior_actual_denominator,0) <> 0 THEN
3383              l_u3_tbl(l_Top_Org_Index).prior_util_percent := 100 * (l_u3_tbl(l_Top_Org_Index).prior_utilization_hours / l_u3_tbl(l_Top_Org_Index).prior_actual_denominator);
3384              l_u3_tbl(l_Top_Org_Index).prior_bill_percent := 100 * (l_u3_tbl(l_Top_Org_Index).prior_billable_hours / l_u3_tbl(l_Top_Org_Index).prior_actual_denominator);
3385              l_u3_tbl(l_Top_Org_Index).prior_non_bill_percent := 100 * (l_u3_tbl(l_Top_Org_Index).prior_nonbillable_hours / l_u3_tbl(l_Top_Org_Index).prior_actual_denominator);
3386              l_u3_tbl(l_Top_Org_Index).prior_training_percent := 100 * (l_u3_tbl(l_Top_Org_Index).prior_training_hours / l_u3_tbl(l_Top_Org_Index).prior_actual_denominator);
3387            ELSE
3388              l_u3_tbl(l_Top_Org_Index).prior_util_percent := NULL;
3389              l_u3_tbl(l_Top_Org_Index).prior_bill_percent := NULL;
3390              l_u3_tbl(l_Top_Org_Index).prior_non_bill_percent := NULL;
3391              l_u3_tbl(l_Top_Org_Index).prior_training_percent := NULL;
3392            END IF;
3393 
3394        END IF; --end p_view_by
3395 
3396 
3397    --Update local variables to include top level org values in grand totals
3398    IF l_Top_Org_Index is not null THEN
3399 
3400       l_actual_hours                  := l_actual_hours             + nvl(l_u3_tbl(l_Top_Org_Index).actual_hours,0);
3401       l_capacity_hours          	  := l_capacity_hours          	+ nvl(l_u3_tbl(l_Top_Org_Index).capacity_hours,0);
3402       l_missing_hours           	  := l_missing_hours           	+ nvl(l_u3_tbl(l_Top_Org_Index).missing_hours,0);
3403       l_utilization_hours       	  := l_utilization_hours       	+ nvl(l_u3_tbl(l_Top_Org_Index).utilization_hours,0);
3404       l_billable_hours          	  := l_billable_hours          	+ nvl(l_u3_tbl(l_Top_Org_Index).billable_hours,0);
3405       l_nonbillable_hours       	  := l_nonbillable_hours       	+ nvl(l_u3_tbl(l_Top_Org_Index).nonbillable_hours,0);
3406       l_training_hours          	  := l_training_hours          	+ nvl(l_u3_tbl(l_Top_Org_Index).training_hours,0);
3407       l_actual_denominator      	  := l_actual_denominator      	+ nvl(l_u3_tbl(l_Top_Org_Index).actual_denominator,0);
3408       l_prior_actual_hours      	  := l_prior_actual_hours      	+ nvl(l_u3_tbl(l_Top_Org_Index).prior_actual_hours,0);
3409       l_prior_capacity_hours    	  := l_prior_capacity_hours    	+ nvl(l_u3_tbl(l_Top_Org_Index).prior_capacity_hours,0);
3410       l_prior_utilization_hours 	  := l_prior_utilization_hours 	+ nvl(l_u3_tbl(l_Top_Org_Index).prior_utilization_hours,0);
3411       l_prior_billable_hours    	  := l_prior_billable_hours    	+ nvl(l_u3_tbl(l_Top_Org_Index).prior_billable_hours,0);
3412       l_prior_nonbillable_hours 	  := l_prior_nonbillable_hours 	+ nvl(l_u3_tbl(l_Top_Org_Index).prior_nonbillable_hours,0);
3413       l_prior_training_hours    	  := l_prior_training_hours    	+ nvl(l_u3_tbl(l_Top_Org_Index).prior_training_hours,0);
3414       l_prior_actual_denominator      := l_prior_actual_denominator	+ nvl(l_u3_tbl(l_Top_Org_Index).prior_actual_denominator,0);
3415 
3416    END IF;
3417 
3418    IF l_u3_tbl.COUNT > 0 THEN
3419    FOR i IN 1..l_u3_tbl.COUNT
3420 	LOOP
3421 
3422       IF l_u3_tbl.EXISTS(i) THEN
3423 
3424         --Capacity is denormalized when context is view by UC or WT
3425         IF p_view_by = 'UC' OR p_view_by = 'WT' THEN
3426 
3427           /*Bug 2836444*/
3428 
3429           l_actual_denominator := l_u3_tbl(i).ACTUAL_DENOMINATOR;
3430           l_prior_actual_denominator := l_u3_tbl(i).PRIOR_ACTUAL_DENOMINATOR;
3431 
3432           /*Bug 2836477*/
3433 
3434           l_capacity_hours    := null;
3435           l_missing_hours     := null;
3436           l_prior_capacity_hours := null;
3437 
3438         END IF;
3439 
3440         l_u3_tbl(i).PJI_REP_TOTAL_1 := l_actual_hours;
3441         l_u3_tbl(i).PJI_REP_TOTAL_2 := l_capacity_hours;
3442         l_u3_tbl(i).PJI_REP_TOTAL_3 := l_missing_hours;
3443         l_u3_tbl(i).PJI_REP_TOTAL_4 := l_utilization_hours;
3444         l_u3_tbl(i).PJI_REP_TOTAL_5 := l_prior_actual_hours;
3445         l_u3_tbl(i).PJI_REP_TOTAL_6 := l_prior_capacity_hours;
3446 
3447         IF NVL(l_actual_denominator,0) <> 0 THEN
3448 
3449           l_u3_tbl(i).PJI_REP_TOTAL_7      := (l_utilization_hours/l_actual_denominator)*100;
3450           l_u3_tbl(i).PJI_REP_TOTAL_8      := (l_billable_hours/l_actual_denominator)*100;
3451           l_u3_tbl(i).PJI_REP_TOTAL_9      := (l_nonbillable_hours/l_actual_denominator)*100;
3452           l_u3_tbl(i).PJI_REP_TOTAL_10     := (l_training_hours/l_actual_denominator)*100;
3453 
3454         END IF;
3455 
3456         IF NVL(l_prior_actual_denominator,0) <> 0 THEN
3457 
3458           l_u3_tbl(i).PJI_REP_TOTAL_11      := (l_prior_utilization_hours/l_prior_actual_denominator)*100;
3459           l_u3_tbl(i).PJI_REP_TOTAL_12      := (l_prior_billable_hours/l_prior_actual_denominator)*100;
3460           l_u3_tbl(i).PJI_REP_TOTAL_13      := (l_prior_nonbillable_hours/l_prior_actual_denominator)*100;
3461           l_u3_tbl(i).PJI_REP_TOTAL_14      := (l_prior_training_hours/l_prior_actual_denominator)*100;
3462 
3463         END IF;
3464 
3465       END IF; -- l_u3_tbl.EXISTS(i)
3466 	END LOOP;
3467     END IF; --l_u3_tbl.COUNT > 0
3468 
3469 
3470     --Delete record for top org if all values are 0 or null
3471    IF l_Top_Org_Index is not null THEN
3472       IF  nvl(l_u3_tbl(l_Top_Org_Index).ACTUAL_HOURS,0) = 0 AND
3473 		nvl(l_u3_tbl(l_Top_Org_Index).CAPACITY_HOURS,0) = 0 AND
3474 		nvl(l_u3_tbl(l_Top_Org_Index).MISSING_HOURS,0) = 0 AND
3475 		nvl(l_u3_tbl(l_Top_Org_Index).UTILIZATION_HOURS,0) = 0 AND
3476 		nvl(l_u3_tbl(l_Top_Org_Index).PRIOR_ACTUAL_HOURS,0) = 0 AND
3477 		nvl(l_u3_tbl(l_Top_Org_Index).PRIOR_CAPACITY_HOURS,0) = 0 AND
3478 		nvl(l_u3_tbl(l_Top_Org_Index).UTIL_PERCENT,0) = 0 AND
3479 		nvl(l_u3_tbl(l_Top_Org_Index).BILL_PERCENT,0) = 0 AND
3480 		nvl(l_u3_tbl(l_Top_Org_Index).NON_BILL_PERCENT,0) = 0 AND
3481 		nvl(l_u3_tbl(l_Top_Org_Index).TRAINING_PERCENT,0) = 0 AND
3482 		nvl(l_u3_tbl(l_Top_Org_Index).PRIOR_UTIL_PERCENT,0) = 0 AND
3483 		nvl(l_u3_tbl(l_Top_Org_Index).PRIOR_BILL_PERCENT,0) = 0 AND
3484 		nvl(l_u3_tbl(l_Top_Org_Index).PRIOR_NON_BILL_PERCENT,0) = 0 AND
3485 		nvl(l_u3_tbl(l_Top_Org_Index).PRIOR_TRAINING_PERCENT,0) = 0
3486       THEN
3487        l_u3_tbl.DELETE(l_Top_Org_Index);
3488       END IF;
3489    END IF;
3490 
3491 
3492    COMMIT;
3493    RETURN l_u3_tbl;
3494 
3495 END PLSQLDriver_U3;
3496 
3497 FUNCTION PLSQLDriver_U4 (
3498    p_operating_unit        IN VARCHAR2 DEFAULT NULL,
3499    p_organization          IN VARCHAR2,
3500    p_as_of_date            IN NUMBER,
3501    p_period_type           IN VARCHAR2,
3502    p_view_by               IN VARCHAR2,
3503    p_utilization_category  IN VARCHAR2 DEFAULT NULL,
3504    p_work_type             IN VARCHAR2 DEFAULT NULL,
3505    p_job_level             IN VARCHAR2 DEFAULT NULL,
3506    p_flag                  IN VARCHAR2
3507 )  RETURN PJI_REP_U4_TBL
3508 IS
3509    PRAGMA AUTONOMOUS_TRANSACTION;
3510    l_u4_tbl                           PJI_REP_U4_TBL:=PJI_REP_U4_TBL();
3511    l_util_category_flag               VARCHAR2(1);
3512    l_job_flag                         VARCHAR2(1);
3513    l_denominator                      VARCHAR2(25);
3514    l_labor_unit                       VARCHAR2(40);
3515    l_scheduled_hours                  NUMBER := 0;
3516    l_scheduled_capacity_hours         NUMBER := 0;
3517    l_scheduled_util_hours             NUMBER := 0;
3518    l_provisional_hours                NUMBER := 0;
3519    l_unassigned_hours                 NUMBER := 0;
3520    l_conf_billable_hours              NUMBER := 0;
3521    l_conf_nonbillable_hours           NUMBER := 0;
3522    l_prov_billable_hours              NUMBER := 0;
3523    l_prov_nonbillable_hours           NUMBER := 0;
3524    l_training_hours                   NUMBER := 0;
3525    l_expected_hours                   NUMBER := 0;
3526    l_expected_util_hours              NUMBER := 0;
3527    l_expected_total_util_hours        NUMBER := 0;
3528    l_actual_util_hours                NUMBER := 0;
3529    l_actual_capacity_hours            NUMBER := 0;
3530    l_expected_capacity_hours          NUMBER := 0;
3531    l_prov_util_hours                  NUMBER := 0;
3532    l_exp_ac_util_hours                NUMBER := 0;
3533    l_exp_sch_util_hours               NUMBER := 0;
3534    l_exp_ac_denominator               NUMBER := 0;
3535    l_exp_sch_denominator              NUMBER := 0;
3536    l_actual_denominator               NUMBER := 0;
3537    l_scheduled_denominator            NUMBER := 0;
3538    l_expected_denominator             NUMBER := 0;
3539    l_prior_scheduled_hours            NUMBER := 0;
3540    l_prior_sch_capacity_hours         NUMBER := 0;
3541    l_prior_sch_util_hours             NUMBER := 0;
3542    l_prior_conf_billable_hours        NUMBER := 0;
3543    l_prior_conf_nonbillable_hours     NUMBER := 0;
3544    l_prior_actual_capacity_hours      NUMBER := 0;
3545    l_prior_actual_util_hours          NUMBER := 0;
3546    l_prior_actual_denominator         NUMBER := 0;
3547    l_prior_scheduled_denominator      NUMBER := 0;
3548    l_Top_Org_Index                    NUMBER;
3549    l_Top_Organization_Name            VARCHAR2(240);
3550 BEGIN
3551    PJI_PMV_ENGINE.Convert_Operating_Unit (p_operating_unit, p_view_by);
3552    IF (p_flag = 'FALSE') THEN
3553       PJI_PMV_ENGINE.Convert_Time (p_as_of_date, p_period_type, p_view_by, 'Y');
3554    ELSE PJI_PMV_ENGINE.Convert_Expected_Time (p_as_of_date, p_period_type, 'Y');
3555    END IF;
3556 
3557    l_util_category_flag := PJI_PMV_ENGINE.Convert_Util_Category(p_work_type, p_utilization_category, p_view_by);
3558    l_job_flag := PJI_PMV_ENGINE.Convert_Job_Level(null, p_job_level, p_view_by);
3559 
3560    /*
3561    * Get Utilization percentage denominator profile value
3562    */
3563    BEGIN
3564      SELECT fnd_profile.value('PA_ORG_UTIL_DEF_CALC_METHOD')
3565      INTO l_denominator
3566      from dual;
3567 
3568      EXCEPTION WHEN NO_DATA_FOUND THEN
3569          l_denominator := 'CAPACITY';
3570    END;
3571 
3572    /*
3573     * Get report labor unit
3574     */
3575    BEGIN
3576      select report_labor_units
3577      into l_labor_unit
3578      from pji_system_settings;
3579 
3580    EXCEPTION WHEN OTHERS THEN
3581          l_labor_unit := null;
3582    END;
3583 
3584    IF l_util_category_flag = 'N' AND l_job_flag = 'N' THEN
3585 
3586       PJI_PMV_ENGINE.Convert_Organization(P_TOP_ORGANIZATION_ID   => p_Organization
3587                                         , P_VIEW_BY               => p_view_by
3588                                         , P_TOP_ORGANIZATION_NAME => l_Top_Organization_Name );
3589 
3590       SELECT PJI_REP_U4(org_id,
3591                         organization_id,
3592                         time_id,
3593                         time_key,
3594                         util_category_id,
3595                         work_type_id,
3596                         job_level_id,
3597                         sum(scheduled_hours),
3598                         sum(scheduled_capacity_hours),
3599                         sum(scheduled_util_hours),
3600                         sum(provisional_hours),
3601                         sum(unassigned_hours),
3602                         sum(conf_billable_hours),
3603                         sum(conf_nonbillable_hours),
3604                         sum(prov_billable_hours),
3605                         sum(prov_nonbillable_hours),
3606                         sum(training_hours),
3607                         sum(expected_hours),
3608                         sum(expected_util_hours),
3609                         sum(expected_total_util_hours),
3610                         sum(actual_util_hours),
3611                         sum(actual_capacity_hours),
3612                         sum(expected_capacity_hours),
3613                         sum(prov_util_hours),
3614                         sum(exp_ac_util_hours),
3615                         sum(exp_sch_util_hours),
3616                         sum(decode(l_denominator, 'CAPACITY', exp_ac_capacity_hours, exp_ac_actual_hours)),
3617                         sum(decode(l_denominator, 'CAPACITY', exp_sch_capacity_hours, exp_sch_actual_hours)),
3618                         sum(decode(l_denominator, 'CAPACITY', actual_capacity_hours, actual_hours)),
3619                         sum(decode(l_denominator, 'CAPACITY', scheduled_capacity_hours, actual_hours)),
3620                         sum(decode(l_denominator, 'CAPACITY', expected_capacity_hours, actual_hours)),
3621                         sum(prior_scheduled_hours),
3622                         sum(prior_sch_capacity_hours),
3623                         sum(prior_sch_util_hours),
3624                         sum(prior_conf_billable_hours),
3625                         sum(prior_conf_nonbillable_hours),
3626                         sum(prior_actual_capacity_hours),
3627                         sum(prior_actual_util_hours),
3628                         sum(decode(l_denominator, 'CAPACITY', prior_actual_capacity_hours, prior_actual_hours)),
3629                         sum(decode(l_denominator, 'CAPACITY', prior_sch_capacity_hours, prior_actual_hours)),
3630                         null,null,null,null,null,null,
3631                         null,null,null,null,null,null,
3632                         null,null,null,null,null,null,
3633                         null,null,null,null,null,null,
3634                         null,null,null,null,null,null,
3635                         null,null,null,null,null,null,
3636                         null,null,null
3637                         )
3638       /* Bug 3515594 */
3639       BULK COLLECT INTO l_u4_tbl
3640       FROM (
3641            SELECT /*+ ORDERED */
3642                   hou.name                                       org_id,
3643                   horg.name                                      organization_id,
3644                   time.name                                      time_id,
3645                   DECODE(p_view_by, 'TM', time.id, -1)           time_key,
3646                   '-1'                                           util_category_id,
3647                   '-1'                                           work_type_id,
3648                   '-1'                                           job_level_id,
3649                   conf_hrs_s / decode(l_labor_unit, 'DAYS', imp.FTE_DAY, 'WEEKS',imp.FTE_WEEK, 1)
3650                                                                  scheduled_hours,
3651                   (capacity_hrs - reduce_capacity_hrs_s) / decode(l_labor_unit, 'DAYS', imp.FTE_DAY, 'WEEKS',imp.FTE_WEEK, 1)
3652                                                                  scheduled_capacity_hours,
3653                   conf_wtd_org_hrs_s / decode(l_labor_unit, 'DAYS', imp.FTE_DAY, 'WEEKS',imp.FTE_WEEK, 1)
3654                                                                  scheduled_util_hours,
3655                   prov_hrs_s / decode(l_labor_unit, 'DAYS', imp.FTE_DAY, 'WEEKS',imp.FTE_WEEK, 1)
3656                                                                  provisional_hours,
3657                   unassigned_hrs_s / decode(l_labor_unit, 'DAYS', imp.FTE_DAY, 'WEEKS',imp.FTE_WEEK, 1)
3658                                                                  unassigned_hours,
3659                   conf_bill_wtd_org_hrs_s / decode(l_labor_unit, 'DAYS', imp.FTE_DAY, 'WEEKS',imp.FTE_WEEK, 1)
3660                                                                  conf_billable_hours,
3661                   (conf_wtd_org_hrs_s - conf_bill_wtd_org_hrs_s) / decode(l_labor_unit, 'DAYS', imp.FTE_DAY, 'WEEKS',imp.FTE_WEEK, 1)
3662                                                                  conf_nonbillable_hours,
3663                   prov_wtd_org_hrs_s / decode(l_labor_unit, 'DAYS', imp.FTE_DAY, 'WEEKS',imp.FTE_WEEK, 1)
3664                                                                  prov_billable_hours,
3665                   (prov_wtd_org_hrs_s - prov_bill_wtd_org_hrs_s) / decode(l_labor_unit, 'DAYS', imp.FTE_DAY, 'WEEKS',imp.FTE_WEEK, 1)
3666                                                                  prov_nonbillable_hours,
3667                   training_hrs_s / decode(l_labor_unit, 'DAYS', imp.FTE_DAY, 'WEEKS',imp.FTE_WEEK, 1)
3668                                                                  training_hours,
3669                   decode(time.amount_type, 0, total_hrs_a, conf_hrs_s)
3670                   / decode(l_labor_unit, 'DAYS', imp.FTE_DAY, 'WEEKS',imp.FTE_WEEK, 1)
3671                                                                  expected_hours,
3672                   decode(time.amount_type, 0, total_wtd_org_hrs_a, conf_wtd_org_hrs_s)
3673                   / decode(l_labor_unit, 'DAYS', imp.FTE_DAY, 'WEEKS',imp.FTE_WEEK, 1)
3674                                                                  expected_util_hours,
3675                   decode(time.amount_type, 0, total_wtd_org_hrs_a, conf_wtd_org_hrs_s + prov_wtd_org_hrs_s)
3676                   / decode(l_labor_unit, 'DAYS', imp.FTE_DAY, 'WEEKS',imp.FTE_WEEK, 1)
3677                                                                  expected_total_util_hours,
3678                   decode(time.amount_type, 0, capacity_hrs-reduce_capacity_hrs_a,
3679                                               capacity_hrs-reduce_capacity_hrs_s)
3680                   / decode(l_labor_unit, 'DAYS', imp.FTE_DAY, 'WEEKS',imp.FTE_WEEK, 1)
3681                                                                  expected_capacity_hours,
3682                   total_hrs_a / decode(l_labor_unit, 'DAYS', imp.FTE_DAY, 'WEEKS',imp.FTE_WEEK, 1)
3683                                                                 actual_hours,
3684                   total_wtd_org_hrs_a / decode(l_labor_unit, 'DAYS', imp.FTE_DAY, 'WEEKS',imp.FTE_WEEK, 1)
3685                                                                  actual_util_hours,
3686                   (capacity_hrs - reduce_capacity_hrs_a) / decode(l_labor_unit, 'DAYS', imp.FTE_DAY, 'WEEKS',imp.FTE_WEEK, 1)
3687                                                                  actual_capacity_hours,
3688                   decode(time.amount_type, 0, 0, prov_wtd_org_hrs_s) / decode(l_labor_unit, 'DAYS', imp.FTE_DAY, 'WEEKS',imp.FTE_WEEK, 1)
3689                                                                  prov_util_hours,
3690                   decode(time.amount_type, 0, total_wtd_org_hrs_a, 0) / decode(l_labor_unit, 'DAYS', imp.FTE_DAY, 'WEEKS',imp.FTE_WEEK, 1)
3691                                                                  exp_ac_util_hours,
3692                   decode(time.amount_type, 0, 0, conf_wtd_org_hrs_s) / decode(l_labor_unit, 'DAYS', imp.FTE_DAY, 'WEEKS',imp.FTE_WEEK, 1)
3693                                                                  exp_sch_util_hours,
3694                   decode(time.amount_type, 0, total_hrs_a, 0) / decode(l_labor_unit, 'DAYS', imp.FTE_DAY, 'WEEKS',imp.FTE_WEEK, 1)
3695                                                                  exp_ac_actual_hours,
3696                   decode(time.amount_type, 0, 0, total_hrs_a) / decode(l_labor_unit, 'DAYS', imp.FTE_DAY, 'WEEKS',imp.FTE_WEEK, 1)
3697                                                                  exp_sch_actual_hours,
3698                   decode(time.amount_type, 0, capacity_hrs - reduce_capacity_hrs_a, capacity_hrs)
3699                   / decode(l_labor_unit, 'DAYS', imp.FTE_DAY, 'WEEKS',imp.FTE_WEEK, 1)
3700                                                                  exp_ac_capacity_hours,
3701                   decode(time.amount_type, 0, capacity_hrs, capacity_hrs - reduce_capacity_hrs_s)
3702                   / decode(l_labor_unit, 'DAYS', imp.FTE_DAY, 'WEEKS',imp.FTE_WEEK, 1)
3703                                                                  exp_sch_capacity_hours,
3704                   0                                              prior_scheduled_hours,
3705                   0                                              prior_sch_capacity_hours,
3706                   0                                              prior_sch_util_hours,
3707                   0                                              prior_conf_billable_hours,
3708                   0                                              prior_conf_nonbillable_hours,
3709                   0                                              prior_actual_capacity_hours,
3710                   0                                              prior_actual_util_hours,
3711                   0                                              prior_actual_hours
3712            FROM PJI_PMV_ORGZ_DIM_TMP horg,
3713                 PJI_PMV_TIME_DIM_TMP time,
3714                 PJI_RM_ORGO_F_MV fct,
3715                 PJI_PMV_ORG_DIM_TMP hou,
3716                 PA_IMPLEMENTATIONS_ALL imp
3717            WHERE fct.expenditure_org_id = hou.id
3718              AND fct.expenditure_organization_id = horg.id
3719              AND fct.time_id = time.id
3720              AND fct.period_type_id = time.period_type
3721              AND fct.calendar_type  = decode(fct.period_type_id,1, 'C',time.calendar_type)
3722              AND time.id is not null
3723              AND hou.id = imp.org_id
3724            UNION ALL
3725 	   /* Bug 3515594 */
3726            SELECT /*+ ORDERED */
3727                   hou.name                                       org_id,
3728                   horg.name                                      organization_id,
3729                   time.name                                      time_id,
3730                   DECODE(p_view_by, 'TM', time.id, -1)           time_key,
3731                   '-1'                                           util_category_id,
3732                   '-1'                                           work_type_id,
3733                   '-1'                                           job_level_id,
3734                   0                                              scheduled_hours,
3735                   0                                              scheduled_capacity_hours,
3736                   0                                              scheduled_util_hours,
3737                   0                                              provisional_hours,
3738                   0                                              unassigned_hours,
3739                   0                                              conf_billable_hours,
3740                   0                                              conf_nonbillable_hours,
3741                   0                                              prov_billable_hours,
3742                   0                                              prov_nonbillable_hours,
3743                   0                                              training_hours,
3744                   0                                              expected_hours,
3745                   0                                              expected_util_hours,
3746                   0                                              expected_total_util_hours,
3747                   0                                              expected_capacity_hours,
3748                   0                                              actual_hours,
3749                   0                                              actual_util_hours,
3750                   0                                              actual_capacity_hours,
3751                   0                                              prov_util_hours,
3752                   0                                              exp_ac_util_hours,
3753                   0                                              exp_sch_util_hours,
3754                   0                                              exp_ac_actual_hours,
3755                   0                                              exp_sch_actual_hours,
3756                   0                                              exp_ac_capacity_hours,
3757                   0                                              exp_sch_capacity_hours,
3758                   total_hrs_a / decode(l_labor_unit, 'DAYS', imp.FTE_DAY, 'WEEKS',imp.FTE_WEEK, 1)
3759                                                                  prior_scheduled_hours,
3760                   (capacity_hrs - reduce_capacity_hrs_a) / decode(l_labor_unit, 'DAYS', imp.FTE_DAY, 'WEEKS',imp.FTE_WEEK, 1)
3761                                                                  prior_sch_capacity_hours,
3762                   total_wtd_org_hrs_a / decode(l_labor_unit, 'DAYS', imp.FTE_DAY, 'WEEKS',imp.FTE_WEEK, 1)
3763                                                                  prior_sch_util_hours,
3764                   bill_wtd_org_hrs_a / decode(l_labor_unit, 'DAYS', imp.FTE_DAY, 'WEEKS',imp.FTE_WEEK, 1)
3765                                                                  prior_conf_billable_hours,
3766                   (total_wtd_org_hrs_a - bill_wtd_org_hrs_a) / decode(l_labor_unit, 'DAYS', imp.FTE_DAY, 'WEEKS',imp.FTE_WEEK, 1)
3767                                                                  prior_conf_nonbillable_hours,
3768                   (capacity_hrs - reduce_capacity_hrs_a) / decode(l_labor_unit, 'DAYS', imp.FTE_DAY, 'WEEKS',imp.FTE_WEEK, 1)
3769                                                                  prior_actual_capacity_hours,
3770                   total_wtd_org_hrs_a / decode(l_labor_unit, 'DAYS', imp.FTE_DAY, 'WEEKS',imp.FTE_WEEK, 1)
3771                                                                  prior_actual_util_hours,
3772                   total_hrs_a / decode(l_labor_unit, 'DAYS', imp.FTE_DAY, 'WEEKS',imp.FTE_WEEK, 1)
3773                                                                  prior_actual_hours
3774            FROM PJI_PMV_ORGZ_DIM_TMP horg,
3775                 PJI_PMV_TIME_DIM_TMP time,
3776                 PJI_RM_ORGO_F_MV fct,
3777                 PJI_PMV_ORG_DIM_TMP hou,
3778                 PA_IMPLEMENTATIONS_ALL imp
3779            WHERE fct.expenditure_org_id = hou.id
3780              AND fct.expenditure_organization_id = horg.id
3781              AND fct.time_id = time.prior_id
3782              AND fct.period_type_id = time.period_type
3783              AND fct.calendar_type  = decode(fct.period_type_id,1, 'C',time.calendar_type)
3784              AND time.prior_id is not null
3785              AND hou.id = imp.org_id
3786            UNION ALL
3787            SELECT '-1'                                           org_id,
3788                   name                                           organization_id,
3789                   '-1'                                           time_id,
3790                   -1                                             time_key,
3791                   '-1'                                           util_category_id,
3792                   '-1'                                           work_type_id,
3793                   '-1'                                           job_level_id,
3794                   0                                              scheduled_hours,
3795                   0                                              scheduled_capacity_hours,
3796                   0                                              scheduled_util_hours,
3797                   0                                              provisional_hours,
3798                   0                                              unassigned_hours,
3799                   0                                              conf_billable_hours,
3800                   0                                              conf_nonbillable_hours,
3801                   0                                              prov_billable_hours,
3802                   0                                              prov_nonbillable_hours,
3803                   0                                              training_hours,
3804                   0                                              expected_hours,
3805                   0                                              expected_util_hours,
3806                   0                                              expected_total_util_hours,
3807                   0                                              expected_capacity_hours,
3808                   0                                              actual_hours,
3809                   0                                              actual_util_hours,
3810                   0                                              actual_capacity_hours,
3811                   0                                              prov_util_hours,
3812                   0                                              exp_ac_util_hours,
3813                   0                                              exp_sch_util_hours,
3814                   0                                              exp_ac_actual_hours,
3815                   0                                              exp_sch_actual_hours,
3816                   0                                              exp_ac_capacity_hours,
3817                   0                                              exp_sch_capacity_hours,
3818                   0                                              prior_scheduled_hours,
3819                   0                                              prior_sch_capacity_hours,
3820                   0                                              prior_sch_util_hours,
3821                   0                                              prior_conf_billable_hours,
3822                   0                                              prior_conf_nonbillable_hours,
3823                   0                                              prior_actual_capacity_hours,
3824                   0                                              prior_actual_util_hours,
3825                   0                                              prior_actual_hours
3826            FROM PJI_PMV_ORGZ_DIM_TMP
3827            WHERE name <> '-1'
3828            UNION ALL
3829            SELECT '-1'                                           org_id,
3830                   '-1'                                           organization_id,
3831                   name                                           time_id,
3832                   order_by_id                                    time_key,
3833                   '-1'                                           util_category_id,
3834                   '-1'                                           work_type_id,
3835                   '-1'                                           job_level_id,
3836                   0                                              scheduled_hours,
3837                   0                                              scheduled_capacity_hours,
3838                   0                                              scheduled_util_hours,
3839                   0                                              provisional_hours,
3840                   0                                              unassigned_hours,
3841                   0                                              conf_billable_hours,
3842                   0                                              conf_nonbillable_hours,
3843                   0                                              prov_billable_hours,
3844                   0                                              prov_nonbillable_hours,
3845                   0                                              training_hours,
3846                   0                                              expected_hours,
3847                   0                                              expected_util_hours,
3848                   0                                              expected_total_util_hours,
3849                   0                                              expected_capacity_hours,
3850                   0                                              actual_hours,
3851                   0                                              actual_util_hours,
3852                   0                                              actual_capacity_hours,
3853                   0                                              prov_util_hours,
3854                   0                                              exp_ac_util_hours,
3855                   0                                              exp_sch_util_hours,
3856                   0                                              exp_ac_actual_hours,
3857                   0                                              exp_sch_actual_hours,
3858                   0                                              exp_ac_capacity_hours,
3859                   0                                              exp_sch_capacity_hours,
3860                   0                                              prior_scheduled_hours,
3861                   0                                              prior_sch_capacity_hours,
3862                   0                                              prior_sch_util_hours,
3863                   0                                              prior_conf_billable_hours,
3864                   0                                              prior_conf_nonbillable_hours,
3865                   0                                              prior_actual_capacity_hours,
3866                   0                                              prior_actual_util_hours,
3867                   0                                              prior_actual_hours
3868            FROM PJI_PMV_TIME_DIM_TMP
3869            WHERE name <> '-1'
3870            )
3871            GROUP BY org_id,
3872 		     organization_id,
3873 		     time_id,
3874 		     time_key,
3875 		     util_category_id,
3876              work_type_id,
3877 		     job_level_id;
3878 
3879    ELSIF l_job_flag = 'N' THEN
3880 
3881       PJI_PMV_ENGINE.Convert_Organization(P_TOP_ORGANIZATION_ID   => p_Organization
3882                                         , P_VIEW_BY               => p_view_by
3883                                         , P_TOP_ORGANIZATION_NAME => l_Top_Organization_Name );
3884 
3885       SELECT PJI_REP_U4(org_id,
3886                         organization_id,
3887                         time_id,
3888                         time_key,
3889                         util_category_id,
3890                         work_type_id,
3891                         job_level_id,
3892                         sum(scheduled_hours),
3893                         sum(decode (p_view_by, 'UC', null, 'WT',null, capacity_hours-sch_reduce_capacity_hours)),
3894                         sum(scheduled_util_hours),
3895                         sum(provisional_hours),
3896                         sum(decode (p_view_by, 'UC', null, 'WT',null, unassigned_hours)),
3897                         sum(conf_billable_hours),
3898                         sum(conf_nonbillable_hours),
3899                         sum(prov_billable_hours),
3900                         sum(prov_nonbillable_hours),
3901                         sum(training_hours),
3902                         sum(expected_hours),
3903                         sum(expected_util_hours),
3904                         sum(expected_total_util_hours),
3905                         sum(actual_util_hours),
3906                         sum(decode (p_view_by, 'UC', null, 'WT',null, capacity_hours-act_reduce_capacity_hours)),
3907                         sum(decode (p_view_by, 'UC', null, 'WT',null, capacity_hours-exp_reduce_capacity_hours)),
3908                         sum(prov_util_hours),
3909                         sum(exp_ac_util_hours),
3910                         sum(exp_sch_util_hours),
3911                         sum(decode(l_denominator, 'CAPACITY', capacity_hours-exp_ac_red_capacity_hours,
3912                             exp_ac_actual_hours)),
3913                         sum(decode(l_denominator, 'CAPACITY', capacity_hours-exp_sch_red_capacity_hours,
3914                             exp_ac_actual_hours)),
3915                         sum(decode(l_denominator, 'CAPACITY', capacity_hours-act_reduce_capacity_hours, total_actual_hours)),
3916                         sum(decode(l_denominator, 'CAPACITY', capacity_hours-sch_reduce_capacity_hours, total_actual_hours)),
3917                         sum(decode(l_denominator, 'CAPACITY', capacity_hours-exp_reduce_capacity_hours, total_actual_hours)),
3918                         sum(prior_scheduled_hours),
3919                         sum(prior_capacity_hours-prior_red_capacity_hours),
3920                         sum(prior_sch_util_hours),
3921                         sum(prior_conf_billable_hours),
3922                         sum(prior_conf_nonbillable_hours),
3923                         sum(prior_capacity_hours-prior_red_capacity_hours),
3924                         sum(prior_actual_util_hours),
3925                         sum(decode(l_denominator, 'CAPACITY', prior_capacity_hours-prior_red_capacity_hours,
3926                             prior_total_actual_hours)),
3927                         sum(decode(l_denominator, 'CAPACITY', prior_capacity_hours-prior_red_capacity_hours,
3928                             prior_total_actual_hours)),
3929                         null,null,null,null,null,null,
3930                         null,null,null,null,null,null,
3931                         null,null,null,null,null,null,
3932                         null,null,null,null,null,null,
3933                         null,null,null,null,null,null,
3934                         null,null,null,null,null,null,
3935                         null,null,null
3936                         )
3937       BULK COLLECT INTO l_u4_tbl
3938       /* Bug 3515594 */
3939       FROM (
3940            SELECT /*+ ORDERED */
3941                   hou.name                                       org_id,
3942                   horg.name                                      organization_id,
3943                   time.name                                      time_id,
3944                   DECODE(p_view_by, 'TM', time.id, -1)           time_key,
3945                   decode(p_view_by, 'UC', wt.name, '-1')         util_category_id,
3946                   decode(p_view_by, 'WT', wt.name, '-1')         work_type_id,
3947                   '-1'                                           job_level_id,
3948                   conf_hrs_s / decode(l_labor_unit, 'DAYS', imp.FTE_DAY, 'WEEKS',imp.FTE_WEEK, 1)
3949                                                                  scheduled_hours,
3950                   0                                              capacity_hours,
3951                   0                                              sch_reduce_capacity_hours,
3952 		  0						 total_actual_hours,
3953                   (fct.conf_hrs_s / decode(l_labor_unit, 'DAYS', imp.FTE_DAY, 'WEEKS',imp.FTE_WEEK, 1)) *
3954                   worktype.org_utilization_percentage / 100
3955                                                                  scheduled_util_hours,
3956                   prov_hrs_s / decode(l_labor_unit, 'DAYS', imp.FTE_DAY, 'WEEKS',imp.FTE_WEEK, 1)
3957                                                                  provisional_hours,
3958                   unassigned_hrs_s / decode(l_labor_unit, 'DAYS', imp.FTE_DAY, 'WEEKS',imp.FTE_WEEK, 1)
3959                                                                  unassigned_hours,
3960                   (CASE WHEN worktype.billable_capitalizable_flag = 'Y' THEN
3961                   fct.conf_hrs_s * worktype.org_utilization_percentage / 100
3962                   ELSE 0 END) / decode(l_labor_unit, 'DAYS', imp.FTE_DAY, 'WEEKS',imp.FTE_WEEK, 1)
3963                                                                  conf_billable_hours,
3964                   (CASE WHEN worktype.billable_capitalizable_flag = 'N' THEN
3965                   fct.conf_hrs_s * worktype.org_utilization_percentage / 100
3966                   ELSE 0 END) / decode(l_labor_unit, 'DAYS', imp.FTE_DAY, 'WEEKS',imp.FTE_WEEK, 1)
3967                                                                  conf_nonbillable_hours,
3968                   (CASE WHEN worktype.billable_capitalizable_flag = 'Y' THEN
3969                   fct.prov_hrs_s * worktype.org_utilization_percentage / 100
3970                   ELSE 0 END) / decode(l_labor_unit, 'DAYS', imp.FTE_DAY, 'WEEKS',imp.FTE_WEEK, 1)
3971                                                                  prov_billable_hours,
3972                   (CASE WHEN worktype.billable_capitalizable_flag = 'N' THEN
3973                   fct.prov_hrs_s * worktype.org_utilization_percentage / 100
3974                   ELSE 0 END) / decode(l_labor_unit, 'DAYS', imp.FTE_DAY, 'WEEKS',imp.FTE_WEEK, 1)
3975                                                                  prov_nonbillable_hours,
3976                   (CASE WHEN worktype.training_flag = 'Y' THEN
3977                   fct.conf_hrs_s
3978                   ELSE 0 END) / decode(l_labor_unit, 'DAYS', imp.FTE_DAY, 'WEEKS',imp.FTE_WEEK, 1)
3979                                                                  training_hours,
3980                   decode(time.amount_type, 0, fct.total_hrs_a, fct.conf_hrs_s)
3981                   / decode(l_labor_unit, 'DAYS', imp.FTE_DAY, 'WEEKS',imp.FTE_WEEK, 1)
3982                                                                  expected_hours,
3983                   (decode(time.amount_type, 0, fct.total_hrs_a, fct.conf_hrs_s) * worktype.org_utilization_percentage / 100)
3984                   / decode(l_labor_unit, 'DAYS', imp.FTE_DAY, 'WEEKS',imp.FTE_WEEK, 1)
3985                                                                  expected_util_hours,
3986                   (decode(time.amount_type, 0, fct.total_hrs_a, fct.conf_hrs_s + fct.prov_hrs_s)
3987                   * worktype.org_utilization_percentage / 100) / decode(l_labor_unit, 'DAYS', imp.FTE_DAY, 'WEEKS',imp.FTE_WEEK, 1)
3988                                                                  expected_total_util_hours,
3989                   0                                              exp_reduce_capacity_hours,
3990                   fct.total_hrs_a / decode(l_labor_unit, 'DAYS', imp.FTE_DAY, 'WEEKS',imp.FTE_WEEK, 1)
3991                                                                  actual_hours,
3992                   (fct.total_hrs_a / decode(l_labor_unit, 'DAYS', imp.FTE_DAY, 'WEEKS',imp.FTE_WEEK, 1)) *
3993                   worktype.org_utilization_percentage / 100
3994                                                                  actual_util_hours,
3995                   0                                              act_reduce_capacity_hours,
3996                   (decode(time.amount_type, 0, 0, fct.prov_hrs_s) / decode(l_labor_unit, 'DAYS', imp.FTE_DAY, 'WEEKS',imp.FTE_WEEK, 1)) *
3997                   worktype.org_utilization_percentage / 100
3998                                                                  prov_util_hours,
3999                   (decode(time.amount_type, 0, fct.total_hrs_a, 0) / decode(l_labor_unit, 'DAYS', imp.FTE_DAY, 'WEEKS',imp.FTE_WEEK, 1)) *
4000                   worktype.org_utilization_percentage / 100
4001                                                                  exp_ac_util_hours,
4002                   (decode(time.amount_type, 0, 0, fct.conf_hrs_s) / decode(l_labor_unit, 'DAYS', imp.FTE_DAY, 'WEEKS',imp.FTE_WEEK, 1)) *
4003                   worktype.org_utilization_percentage / 100
4004                                                                  exp_sch_util_hours,
4005                   decode(time.amount_type, 0, fct.total_hrs_a, 0) / decode(l_labor_unit, 'DAYS', imp.FTE_DAY, 'WEEKS',imp.FTE_WEEK, 1)
4006                                                                  exp_ac_actual_hours,
4007                   decode(time.amount_type, 0, 0, fct.total_hrs_a) / decode(l_labor_unit, 'DAYS', imp.FTE_DAY, 'WEEKS',imp.FTE_WEEK, 1)
4008                                                                  exp_sch_actual_hours,
4009                   0                                              exp_ac_red_capacity_hours,
4010                   0                                              exp_sch_red_capacity_hours,
4011                   0                                              prior_scheduled_hours,
4012                   0                                              prior_capacity_hours,
4013                   0                                              prior_red_capacity_hours,
4014 		  0						 prior_total_actual_hours,
4015 		  0                                              prior_sch_util_hours,
4016                   0                                              prior_conf_billable_hours,
4017                   0                                              prior_conf_nonbillable_hours,
4018                   0                                              prior_actual_util_hours,
4019                   0                                              prior_actual_hours
4020            FROM PJI_PMV_ORGZ_DIM_TMP horg,
4021                 PJI_PMV_TIME_DIM_TMP time,
4022                 PJI_PMV_WT_DIM_TMP wt,
4023                 PJI_RM_WTO_F_MV fct,
4024                 PJI_PMV_ORG_DIM_TMP hou,
4025                 PA_WORK_TYPES_B worktype,
4026                 PA_IMPLEMENTATIONS_ALL imp
4027            WHERE fct.expenditure_org_id = hou.id
4028              AND fct.expenditure_organization_id = horg.id
4029              AND fct.work_type_id = wt.id
4030              AND wt.id = worktype.work_type_id
4031              AND fct.time_id = time.id
4032              AND fct.period_type_id = time.period_type
4033              AND fct.calendar_type  = decode(fct.period_type_id,1, 'C',time.calendar_type)
4034              AND time.id is not null
4035              AND hou.id = imp.org_id
4036            UNION ALL
4037 	   /* Bug 3515594 */
4038            SELECT /*+ ORDERED */
4039                   hou.name                                       org_id,
4040                   horg.name                                      organization_id,
4041                   time.name                                      time_id,
4042                   DECODE(p_view_by, 'TM', time.id, -1)           time_key,
4043                   decode(p_view_by, 'UC', wt.name, '-1')         util_category_id,
4044                   decode(p_view_by, 'WT', wt.name, '-1')         work_type_id,
4045                   '-1'                                           job_level_id,
4046                   0                                              scheduled_hours,
4047                   0                                              capacity_hours,
4048                   0                                              sch_reduce_capacity_hours,
4049 		  0						 total_actual_hours,
4050                   0                                              scheduled_util_hours,
4051                   0                                              provisional_hours,
4052                   0                                              unassigned_hours,
4053                   0                                              conf_billable_hours,
4054                   0                                              conf_nonbillable_hours,
4055                   0                                              prov_billable_hours,
4056                   0                                              prov_nonbillable_hours,
4057                   0                                              training_hours,
4058                   0                                              expected_hours,
4059                   0                                              expected_util_hours,
4060                   0                                              expected_total_util_hours,
4061                   0                                              exp_reduce_capacity_hours,
4062                   0                                              actual_hours,
4063                   0                                              actual_util_hours,
4064                   0                                              act_reduce_capacity_hours,
4065                   0                                              prov_util_hours,
4066                   0                                              exp_ac_util_hours,
4067                   0                                              exp_sch_util_hours,
4068                   0                                              exp_ac_actual_hours,
4069                   0                                              exp_sch_actual_hours,
4070                   0                                              exp_ac_red_capacity_hours,
4071                   0                                              exp_sch_red_capacity_hours,
4072                   fct.total_hrs_a * decode(l_labor_unit, 'DAYS', imp.FTE_DAY, 'WEEKS',imp.FTE_WEEK, 1)
4073                                                                  prior_scheduled_hours,
4074                   0                                              prior_capacity_hours,
4075                   0                                              prior_red_capacity_hours,
4076 		  0						 prior_total_actual_hours,
4077 		  fct.total_hrs_a * decode(l_labor_unit, 'DAYS', imp.FTE_DAY, 'WEEKS',imp.FTE_WEEK, 1) *
4078                   worktype.org_utilization_percentage / 100      prior_sch_util_hours,
4079                   (CASE WHEN worktype.billable_capitalizable_flag = 'Y' THEN
4080                   fct.total_hrs_a * worktype.org_utilization_percentage / 100
4081                   ELSE 0 END) / decode(l_labor_unit, 'DAYS', imp.FTE_DAY, 'WEEKS',imp.FTE_WEEK, 1)
4082                                                                  prior_conf_billable_hours,
4083                   (CASE WHEN worktype.billable_capitalizable_flag = 'N' THEN
4084                   fct.total_hrs_a * worktype.org_utilization_percentage / 100
4085                   ELSE 0 END) / decode(l_labor_unit, 'DAYS', imp.FTE_DAY, 'WEEKS',imp.FTE_WEEK, 1)
4086                                                                  prior_conf_nonbillable_hours,
4087                   fct.total_hrs_a * decode(l_labor_unit, 'DAYS', imp.FTE_DAY, 'WEEKS',imp.FTE_WEEK, 1) *
4088                   worktype.org_utilization_percentage / 100      prior_actual_util_hours,
4089                   fct.total_hrs_a / decode(l_labor_unit, 'DAYS', imp.FTE_DAY, 'WEEKS',imp.FTE_WEEK, 1)
4090                                                                  prior_actual_hours
4091            FROM PJI_PMV_ORGZ_DIM_TMP horg,
4092                 PJI_PMV_TIME_DIM_TMP time,
4093                 PJI_PMV_WT_DIM_TMP wt,
4094                 PJI_RM_WTO_F_MV fct,
4095                 PJI_PMV_ORG_DIM_TMP hou,
4096                 PA_WORK_TYPES_B worktype,
4097                 PA_IMPLEMENTATIONS_ALL imp
4098            WHERE fct.expenditure_org_id = hou.id
4099              AND fct.expenditure_organization_id = horg.id
4100              AND fct.work_type_id = wt.id
4101              AND wt.id = worktype.work_type_id
4102              AND fct.time_id = time.prior_id
4103              AND fct.period_type_id = time.period_type
4104              AND fct.calendar_type  = decode(fct.period_type_id,1, 'C',time.calendar_type)
4105              AND time.prior_id is not null
4106              AND hou.id = imp.org_id
4107            UNION ALL
4108            SELECT '-1'                                           org_id,
4109                   name                                           organization_id,
4110                   '-1'                                           time_id,
4111                   -1                                             time_key,
4112                   '-1'                                           util_category_id,
4113                   '-1'                                           work_type_id,
4114                   '-1'                                           job_level_id,
4115                   0                                              scheduled_hours,
4116                   0                                              capacity_hours,
4117                   0                                              sch_reduce_capacity_hours,
4118 		  0						 total_actual_hours,
4119 		  0                                              scheduled_util_hours,
4120                   0                                              provisional_hours,
4121                   0                                              unassigned_hours,
4122                   0                                              conf_billable_hours,
4123                   0                                              conf_nonbillable_hours,
4124                   0                                              prov_billable_hours,
4125                   0                                              prov_nonbillable_hours,
4126                   0                                              training_hours,
4127                   0                                              expected_hours,
4128                   0                                              expected_util_hours,
4129                   0                                              expected_total_util_hours,
4130                   0                                              exp_reduce_capacity_hours,
4131                   0                                              actual_hours,
4132                   0                                              actual_util_hours,
4133                   0                                              act_reduce_capacity_hours,
4134                   0                                              prov_util_hours,
4135                   0                                              exp_ac_util_hours,
4136                   0                                              exp_sch_util_hours,
4137                   0                                              exp_ac_actual_hours,
4138                   0                                              exp_sch_actual_hours,
4139                   0                                              exp_ac_red_capacity_hours,
4140                   0                                              exp_sch_red_capacity_hours,
4141                   0                                              prior_scheduled_hours,
4142                   0                                              prior_capacity_hours,
4143                   0                                              prior_red_capacity_hours,
4144 		  0						 prior_total_actual_hours,
4145                   0                                              prior_sch_util_hours,
4146                   0                                              prior_conf_billable_hours,
4147                   0                                              prior_conf_nonbillable_hours,
4148                   0                                              prior_actual_util_hours,
4149                   0                                              prior_actual_hours
4150            FROM PJI_PMV_ORGZ_DIM_TMP
4151            WHERE name <> '-1'
4152            UNION ALL
4153            SELECT '-1'                                           org_id,
4154                   '-1'                                           organization_id,
4155                   '-1'                                           time_id,
4156                   -1                                             time_key,
4157                   decode(p_view_by, 'UC', name, '-1')            util_category_id,
4158                   decode(p_view_by, 'WT', name, '-1')            work_type_id,
4159                   '-1'                                           job_level_id,
4160                   0                                              scheduled_hours,
4161                   0                                              capacity_hours,
4162                   0                                              sch_reduce_capacity_hours,
4163 		  0						 total_actual_hours,
4164 		  0                                              scheduled_util_hours,
4165                   0                                              provisional_hours,
4166                   0                                              unassigned_hours,
4167                   0                                              conf_billable_hours,
4168                   0                                              conf_nonbillable_hours,
4169                   0                                              prov_billable_hours,
4170                   0                                              prov_nonbillable_hours,
4171                   0                                              training_hours,
4172                   0                                              expected_hours,
4173                   0                                              expected_util_hours,
4174                   0                                              expected_total_util_hours,
4175                   0                                              exp_reduce_capacity_hours,
4176                   0                                              actual_hours,
4177                   0                                              actual_util_hours,
4178                   0                                              act_reduce_capacity_hours,
4179                   0                                              prov_util_hours,
4180                   0                                              exp_ac_util_hours,
4181                   0                                              exp_sch_util_hours,
4182                   0                                              exp_ac_actual_hours,
4183                   0                                              exp_sch_actual_hours,
4184                   0                                              exp_ac_red_capacity_hours,
4185                   0                                              exp_sch_red_capacity_hours,
4186                   0                                              prior_scheduled_hours,
4187                   0                                              prior_capacity_hours,
4188                   0                                              prior_red_capacity_hours,
4189 		  0						 prior_total_actual_hours,
4190 		  0                                              prior_sch_util_hours,
4191                   0                                              prior_conf_billable_hours,
4192                   0                                              prior_conf_nonbillable_hours,
4193                   0                                              prior_actual_util_hours,
4194                   0                                              prior_actual_hours
4195            FROM PJI_PMV_WT_DIM_TMP
4196            WHERE name <> '-1'
4197            UNION ALL
4198            SELECT '-1'                                           org_id,
4199                   '-1'                                           organization_id,
4200                   name                                           time_id,
4201                   order_by_id                                    time_key,
4202                   '-1'                                           util_category_id,
4203                   '-1'                                           work_type_id,
4204                   '-1'                                           job_level_id,
4205                   0                                              scheduled_hours,
4206                   0                                              capacity_hours,
4207                   0                                              sch_reduce_capacity_hours,
4208 		  0						 total_actual_hours,
4209 		  0                                              scheduled_util_hours,
4210                   0                                              provisional_hours,
4211                   0                                              unassigned_hours,
4212                   0                                              conf_billable_hours,
4213                   0                                              conf_nonbillable_hours,
4214                   0                                              prov_billable_hours,
4215                   0                                              prov_nonbillable_hours,
4216                   0                                              training_hours,
4217                   0                                              expected_hours,
4218                   0                                              expected_util_hours,
4219                   0                                              expected_total_util_hours,
4220                   0                                              exp_reduce_capacity_hours,
4221                   0                                              actual_hours,
4222                   0                                              actual_util_hours,
4223                   0                                              act_reduce_capacity_hours,
4224                   0                                              prov_util_hours,
4225                   0                                              exp_ac_util_hours,
4226                   0                                              exp_sch_util_hours,
4227                   0                                              exp_ac_actual_hours,
4228                   0                                              exp_sch_actual_hours,
4229                   0                                              exp_ac_red_capacity_hours,
4230                   0                                              exp_sch_red_capacity_hours,
4231                   0                                              prior_scheduled_hours,
4232                   0                                              prior_capacity_hours,
4233                   0                                              prior_red_capacity_hours,
4234 		  0						 prior_total_actual_hours,
4235 		  0                                              prior_sch_util_hours,
4236                   0                                              prior_conf_billable_hours,
4237                   0                                              prior_conf_nonbillable_hours,
4238                   0                                              prior_actual_util_hours,
4239                   0                                              prior_actual_hours
4240            FROM PJI_PMV_TIME_DIM_TMP
4241            WHERE name <> '-1'
4242            UNION ALL   -- added for current year capacity_hours
4243            SELECT
4244                   FACT.org_id,
4245                   FACT.organization_id,
4246                   FACT.time_id,
4247                   FACT.time_key,
4248                   decode(p_view_by, 'UC', WT.name, '-1')  util_category_id,
4249                   decode(p_view_by, 'WT', WT.name, '-1')  work_type_id,
4250                   '-1'                                    job_level_id,
4251                   0                                       scheduled_hours,
4252                   FACT.capacity_hours,
4253                   FACT.sch_reduce_capacity_hours                 sch_reduce_capacity_hours,
4254 		  FACT.total_actual_hours			 total_actual_hours,
4255 		  0                                              scheduled_util_hours,
4256                   0                                              provisional_hours,
4257                   0                                              unassigned_hours,
4258                   0                                              conf_billable_hours,
4259                   0                                              conf_nonbillable_hours,
4260                   0                                              prov_billable_hours,
4261                   0                                              prov_nonbillable_hours,
4262                   0                                              training_hours,
4263                   0                                              expected_hours,
4264                   0                                              expected_util_hours,
4265                   0                                              expected_total_util_hours,
4266                   FACT.exp_reduce_capacity_hours                 exp_reduce_capacity_hours,
4267                   0                                              actual_hours,
4268                   0                                              actual_util_hours,
4269                   FACT.act_reduce_capacity_hours                 act_reduce_capacity_hours,
4270                   0                                              prov_util_hours,
4271                   0                                              exp_ac_util_hours,
4272                   0                                              exp_sch_util_hours,
4273                   0                                              exp_ac_actual_hours,
4274                   0                                              exp_sch_actual_hours,
4275                   FACT.exp_ac_red_capacity_hours                 exp_ac_red_capacity_hours,
4276                   FACT.exp_sch_red_capacity_hours                exp_sch_red_capacity_hours,
4277                   0                                              prior_scheduled_hours,
4278                   0                                              prior_capacity_hours,
4279                   0                                              prior_red_capacity_hours,
4280 		  0						 prior_total_actual_hours,
4281 		  0                                              prior_sch_util_hours,
4282                   0                                              prior_conf_billable_hours,
4283                   0                                              prior_conf_nonbillable_hours,
4284                   0                                              prior_actual_util_hours,
4285                   0                                              prior_actual_hours
4286            FROM
4287 	   /* Bug 3515594 */
4288             (SELECT /*+ ORDERED */
4289                      hou.name                                org_id,
4290                      horg.name                               organization_id,
4291                      time.name                               time_id,
4292                      DECODE(p_view_by, 'TM', time.id, -1)    time_key,
4293                      fct.capacity_hrs / decode(l_labor_unit, 'DAYS', imp.FTE_DAY, 'WEEKS',imp.FTE_WEEK, 1)
4294                                                           capacity_hours,
4295                      fct.total_hrs_a / decode(l_labor_unit, 'DAYS', imp.FTE_DAY, 'WEEKS',imp.FTE_WEEK, 1)
4296                                                           total_actual_hours,
4297 
4298 		     fct.reduce_capacity_hrs_s / decode(l_labor_unit, 'DAYS', imp.FTE_DAY, 'WEEKS',imp.FTE_WEEK, 1)
4299                                                           sch_reduce_capacity_hours,
4300                      decode(time.amount_type, 0, fct.reduce_capacity_hrs_a, fct.reduce_capacity_hrs_s)
4301                                                / decode(l_labor_unit, 'DAYS', imp.FTE_DAY, 'WEEKS',imp.FTE_WEEK, 1)
4302                                                           exp_reduce_capacity_hours,
4303                      fct.reduce_capacity_hrs_a / decode(l_labor_unit, 'DAYS', imp.FTE_DAY, 'WEEKS',imp.FTE_WEEK, 1)
4304                                                           act_reduce_capacity_hours,
4305                      decode(time.amount_type, 0, fct.reduce_capacity_hrs_a, 0)
4306                                                / decode(l_labor_unit, 'DAYS', imp.FTE_DAY, 'WEEKS',imp.FTE_WEEK, 1)
4307                                                           exp_ac_red_capacity_hours,
4308                      decode(time.amount_type, 1, fct.reduce_capacity_hrs_s, 0)
4309                                                / decode(l_labor_unit, 'DAYS', imp.FTE_DAY, 'WEEKS',imp.FTE_WEEK, 1)
4310                                                           exp_sch_red_capacity_hours
4311              FROM PJI_PMV_ORGZ_DIM_TMP horg,
4312                   PJI_PMV_TIME_DIM_TMP time,
4313                   PJI_RM_ORGO_F_MV fct,
4314                   PJI_PMV_ORG_DIM_TMP hou,
4315                   PA_IMPLEMENTATIONS_ALL imp
4316              WHERE fct.expenditure_org_id = hou.id
4317              AND   fct.expenditure_organization_id = horg.id
4318              AND   fct.time_id = time.id
4319              AND   fct.period_type_id = time.period_type
4320              AND   fct.calendar_type  = decode(fct.period_type_id,1, 'C',time.calendar_type)
4321              AND   time.id is not null
4322              AND   hou.id = imp.org_id )         FACT,
4323              (SELECT distinct WT.name
4324               FROM   PJI_PMV_WT_DIM_TMP wt )     WT
4325            UNION ALL   -- added for prior year capacity_hours
4326            SELECT
4327                   FACT.org_id,
4328                   FACT.organization_id,
4329                   FACT.time_id,
4330                   FACT.time_key,
4331                   decode(p_view_by, 'UC', WT.name, '-1')  util_category_id,
4332                   decode(p_view_by, 'WT', WT.name, '-1')  work_type_id,
4333                   '-1'                                    job_level_id,
4334                   0                                       scheduled_hours,
4335                   0                                       capacity_hours,
4336                   0                                              sch_reduce_capacity_hours,
4337 		  0						 total_actual_hours,
4338 		  0                                              scheduled_util_hours,
4339                   0                                              provisional_hours,
4340                   0                                              unassigned_hours,
4341                   0                                              conf_billable_hours,
4342                   0                                              conf_nonbillable_hours,
4343                   0                                              prov_billable_hours,
4344                   0                                              prov_nonbillable_hours,
4345                   0                                              training_hours,
4346                   0                                              expected_hours,
4347                   0                                              expected_util_hours,
4348                   0                                              expected_total_util_hours,
4349                   0                                              exp_reduce_capacity_hours,
4350                   0                                              actual_hours,
4351                   0                                              actual_util_hours,
4352                   0                                              act_reduce_capacity_hours,
4353                   0                                              prov_util_hours,
4354                   0                                              exp_ac_util_hours,
4355                   0                                              exp_sch_util_hours,
4356                   0                                              exp_ac_actual_hours,
4357                   0                                              exp_sch_actual_hours,
4358                   0                                              exp_ac_red_capacity_hours,
4359                   0                                              exp_sch_red_capacity_hours,
4360                   0                                              prior_scheduled_hours,
4361                   FACT.capacity_hours                            prior_capacity_hours,
4362                   FACT.prior_red_capacity_hours                  prior_red_capacity_hours,
4363 		  FACT.total_actual_hours			 prior_total_actual_hours,
4364                   0                                              prior_sch_util_hours,
4365                   0                                              prior_conf_billable_hours,
4366                   0                                              prior_conf_nonbillable_hours,
4367                   0                                              prior_actual_util_hours,
4368                   0                                              prior_actual_hours
4369            FROM
4370             (SELECT /*+ ORDERED */
4371                      hou.name                                org_id,
4372                      horg.name                               organization_id,
4373                      time.name                               time_id,
4374                      DECODE(p_view_by, 'TM', time.id, -1)    time_key,
4375                      fct.capacity_hrs / decode(l_labor_unit, 'DAYS', imp.FTE_DAY, 'WEEKS',imp.FTE_WEEK, 1)
4376                                                           capacity_hours,
4377                      fct.total_hrs_a / decode(l_labor_unit, 'DAYS', imp.FTE_DAY, 'WEEKS',imp.FTE_WEEK, 1)
4378                                                           total_actual_hours,
4379 		     fct.reduce_capacity_hrs_a / decode(l_labor_unit, 'DAYS', imp.FTE_DAY, 'WEEKS',imp.FTE_WEEK, 1)
4380                                                           prior_red_capacity_hours
4381              FROM PJI_PMV_ORGZ_DIM_TMP horg,
4382                   PJI_PMV_TIME_DIM_TMP time,
4383                   PJI_RM_ORGO_F_MV fct,
4384                   PJI_PMV_ORG_DIM_TMP hou,
4385                   PA_IMPLEMENTATIONS_ALL imp
4386              WHERE fct.expenditure_org_id = hou.id
4387              AND   fct.expenditure_organization_id = horg.id
4388              AND   fct.time_id = time.prior_id
4389              AND   fct.period_type_id = time.period_type
4390              AND   fct.calendar_type  = decode(fct.period_type_id,1, 'C',time.calendar_type)
4391              AND   time.prior_id is not null
4392              AND   hou.id = imp.org_id )         FACT,
4393              (SELECT distinct WT.name
4394               FROM   PJI_PMV_WT_DIM_TMP wt )     WT
4395            )
4396            GROUP BY org_id,
4397 		     organization_id,
4398 		     time_id,
4399 		     time_key,
4400 		     util_category_id,
4401                      work_type_id,
4402 		     job_level_id;
4403 
4404    ELSIF l_util_category_flag = 'N' THEN
4405 
4406       PJI_PMV_ENGINE.Convert_Organization(P_TOP_ORGANIZATION_ID   => p_Organization
4407                                         , P_VIEW_BY               => p_view_by
4408                                         , P_TOP_ORGANIZATION_NAME => l_Top_Organization_Name );
4409 
4410       SELECT PJI_REP_U4(org_id,
4411                         organization_id,
4412                         time_id,
4413                         time_key,
4414                         util_category_id,
4415                         work_type_id,
4416                         job_level_id,
4417                         sum(scheduled_hours),
4418                         sum(capacity_hours - reduce_capacity_hrs_s),
4419                         sum(scheduled_util_hours),
4420                         sum(provisional_hours),
4421                         sum(unassigned_hours),
4422                         sum(conf_billable_hours),
4423                         sum(conf_nonbillable_hours),
4424                         sum(prov_billable_hours),
4425                         sum(prov_nonbillable_hours),
4426                         sum(training_hours),
4427                         sum(expected_hours),
4428                         sum(expected_util_hours),
4429                         sum(expected_total_util_hours),
4430                         sum(actual_util_hours),
4431                         sum(capacity_hours - reduce_capacity_hrs_a),
4432                         sum(capacity_hours - reduce_capacity_hrs_e),
4433                         sum(prov_util_hours),
4434                         sum(exp_ac_util_hours),
4435                         sum(exp_sch_util_hours),
4436                         sum(decode(l_denominator, 'CAPACITY', capacity_hours - exp_ac_reduce_capacity_hours, exp_ac_actual_hours)),
4437                         sum(decode(l_denominator, 'CAPACITY', capacity_hours - exp_sch_reduce_capacity_hours, exp_sch_actual_hours)),
4438                         sum(decode(l_denominator, 'CAPACITY', capacity_hours - reduce_capacity_hrs_a, actual_hours)),
4439                         sum(decode(l_denominator, 'CAPACITY', capacity_hours - reduce_capacity_hrs_s, actual_hours)),
4440                         sum(decode(l_denominator, 'CAPACITY', capacity_hours - reduce_capacity_hrs_e, actual_hours)),
4441                         sum(prior_scheduled_hours),
4442                         sum(prior_capacity_hours - prior_reduce_capacity_hrs_a),
4443                         sum(prior_sch_util_hours),
4444                         sum(prior_conf_billable_hours),
4445                         sum(prior_conf_nonbillable_hours),
4446                         sum(prior_capacity_hours - prior_reduce_capacity_hrs_a),
4447                         sum(prior_actual_util_hours),
4448                         sum(decode(l_denominator, 'CAPACITY', prior_capacity_hours - prior_reduce_capacity_hrs_a, prior_actual_hours)),
4449                         sum(decode(l_denominator, 'CAPACITY', prior_capacity_hours - prior_reduce_capacity_hrs_a, prior_actual_hours)),
4450                         null,null,null,null,null,null,
4451                         null,null,null,null,null,null,
4452                         null,null,null,null,null,null,
4453                         null,null,null,null,null,null,
4454                         null,null,null,null,null,null,
4455                         null,null,null,null,null,null,
4456                         null,null,null
4457                         )
4458       /* Bug 3515594 */
4459       BULK COLLECT INTO l_u4_tbl
4460       FROM (
4461            SELECT /*+ ORDERED */
4462                   hou.name                                       org_id,
4463                   horg.name                                      organization_id,
4464                   time.name                                      time_id,
4465                   DECODE(p_view_by, 'TM', time.id, -1)           time_key,
4466                   '-1'                                           util_category_id,
4467                   '-1'                                           work_type_id,
4468                   job.name                                       job_level_id,
4469                   conf_hrs_s / decode(l_labor_unit, 'DAYS', imp.FTE_DAY, 'WEEKS',imp.FTE_WEEK, 1)
4470                                                                  scheduled_hours,
4471                   capacity_hrs                                   capacity_hours,
4472                   conf_wtd_org_hrs_s / decode(l_labor_unit, 'DAYS', imp.FTE_DAY, 'WEEKS',imp.FTE_WEEK, 1)
4473                                                                  scheduled_util_hours,
4474                   prov_hrs_s / decode(l_labor_unit, 'DAYS', imp.FTE_DAY, 'WEEKS',imp.FTE_WEEK, 1)
4475                                                                  provisional_hours,
4476                   unassigned_hrs_s / decode(l_labor_unit, 'DAYS', imp.FTE_DAY, 'WEEKS',imp.FTE_WEEK, 1)
4477                                                                  unassigned_hours,
4478                   conf_bill_wtd_org_hrs_s / decode(l_labor_unit, 'DAYS', imp.FTE_DAY, 'WEEKS',imp.FTE_WEEK, 1)
4479                                                                  conf_billable_hours,
4480                   (conf_wtd_org_hrs_s - conf_bill_wtd_org_hrs_s) / decode(l_labor_unit, 'DAYS', imp.FTE_DAY, 'WEEKS',imp.FTE_WEEK, 1)
4481                                                                  conf_nonbillable_hours,
4482                   prov_wtd_org_hrs_s / decode(l_labor_unit, 'DAYS', imp.FTE_DAY, 'WEEKS',imp.FTE_WEEK, 1)
4483                                                                  prov_billable_hours,
4484                   (prov_wtd_org_hrs_s - prov_bill_wtd_org_hrs_s) / decode(l_labor_unit, 'DAYS', imp.FTE_DAY, 'WEEKS',imp.FTE_WEEK, 1)
4485                                                                  prov_nonbillable_hours,
4486                   training_hrs_s / decode(l_labor_unit, 'DAYS', imp.FTE_DAY, 'WEEKS',imp.FTE_WEEK, 1)
4487                                                                  training_hours,
4488                   decode(time.amount_type, 0, total_hrs_a, conf_hrs_s)
4489                   / decode(l_labor_unit, 'DAYS', imp.FTE_DAY, 'WEEKS',imp.FTE_WEEK, 1)
4490                                                                  expected_hours,
4491                   decode(time.amount_type, 0, total_wtd_org_hrs_a, conf_wtd_org_hrs_s)
4492                   / decode(l_labor_unit, 'DAYS', imp.FTE_DAY, 'WEEKS',imp.FTE_WEEK, 1)
4493                                                                  expected_util_hours,
4494                   decode(time.amount_type, 0, total_wtd_org_hrs_a, conf_wtd_org_hrs_s + prov_wtd_org_hrs_s)
4495                   / decode(l_labor_unit, 'DAYS', imp.FTE_DAY, 'WEEKS',imp.FTE_WEEK, 1)
4496                                                                  expected_total_util_hours,
4497                   total_hrs_a / decode(l_labor_unit, 'DAYS', imp.FTE_DAY, 'WEEKS',imp.FTE_WEEK, 1)
4498                                                                  actual_hours,
4499                   total_wtd_org_hrs_a / decode(l_labor_unit, 'DAYS', imp.FTE_DAY, 'WEEKS',imp.FTE_WEEK, 1)
4500                                                                  actual_util_hours,
4501                   decode(time.amount_type, 0, 0, prov_wtd_org_hrs_s) / decode(l_labor_unit, 'DAYS', imp.FTE_DAY, 'WEEKS',imp.FTE_WEEK, 1)
4502                                                                  prov_util_hours,
4503                   decode(time.amount_type, 0, total_wtd_org_hrs_a, 0) / decode(l_labor_unit, 'DAYS', imp.FTE_DAY, 'WEEKS',imp.FTE_WEEK, 1)
4504                                                                  exp_ac_util_hours,
4505                   decode(time.amount_type, 0, 0, conf_wtd_org_hrs_s) / decode(l_labor_unit, 'DAYS', imp.FTE_DAY, 'WEEKS',imp.FTE_WEEK, 1)
4506                                                                  exp_sch_util_hours,
4507                   decode(time.amount_type, 0, total_hrs_a, 0) / decode(l_labor_unit, 'DAYS', imp.FTE_DAY, 'WEEKS',imp.FTE_WEEK, 1)
4508                                                                  exp_ac_actual_hours,
4509                   decode(time.amount_type, 0, 0, total_hrs_a) / decode(l_labor_unit, 'DAYS', imp.FTE_DAY, 'WEEKS',imp.FTE_WEEK, 1)
4510                                                                  exp_sch_actual_hours,
4511                   reduce_capacity_hrs_a
4512                        / decode(l_labor_unit, 'DAYS', imp.FTE_DAY, 'WEEKS',imp.FTE_WEEK, 1)
4513                                                                  reduce_capacity_hrs_a,
4514                   reduce_capacity_hrs_s
4515                        / decode(l_labor_unit, 'DAYS', imp.FTE_DAY, 'WEEKS',imp.FTE_WEEK, 1)
4516                                                                  reduce_capacity_hrs_s,
4517                   decode(time.amount_type, 0, reduce_capacity_hrs_a,
4518                                               reduce_capacity_hrs_s)
4519                        / decode(l_labor_unit, 'DAYS', imp.FTE_DAY, 'WEEKS',imp.FTE_WEEK, 1)
4520                                                                  reduce_capacity_hrs_e,
4521                   decode(time.amount_type, 0, reduce_capacity_hrs_a,
4522                                               0)
4523                        / decode(l_labor_unit, 'DAYS', imp.FTE_DAY, 'WEEKS',imp.FTE_WEEK, 1)
4524                                                                  exp_ac_reduce_capacity_hours,
4525                   decode(time.amount_type, 1, reduce_capacity_hrs_s,
4526                                               0)
4527                        / decode(l_labor_unit, 'DAYS', imp.FTE_DAY, 'WEEKS',imp.FTE_WEEK, 1)
4528                                                                  exp_sch_reduce_capacity_hours,
4529                   0                                              prior_reduce_capacity_hrs_a,
4530                   0                                              prior_scheduled_hours,
4531                   0                                              prior_capacity_hours,
4532                   0                                              prior_sch_util_hours,
4533                   0                                              prior_conf_billable_hours,
4534                   0                                              prior_conf_nonbillable_hours,
4535                   0                                              prior_actual_util_hours,
4536                   0                                              prior_actual_hours
4537            FROM PJI_PMV_ORGZ_DIM_TMP horg,
4538                 PJI_PMV_TIME_DIM_TMP time,
4539                 PJI_PMV_JB_DIM_TMP job,
4540                 PJI_RM_JOBO_F_MV fct,
4541                 PJI_PMV_ORG_DIM_TMP hou,
4542                 PA_IMPLEMENTATIONS_ALL imp
4543            WHERE fct.expenditure_org_id = hou.id
4544              AND fct.expenditure_organization_id = horg.id
4545              AND fct.job_id = job.id
4546              AND fct.time_id = time.id
4547              AND fct.period_type_id = time.period_type
4548              AND fct.calendar_type  = decode(fct.period_type_id,1, 'C',time.calendar_type)
4549              AND time.id is not null
4550              AND hou.id = imp.org_id
4551            UNION ALL
4552 	   /* Bug 3515594 */
4553            SELECT /*+ ORDERED */
4554                   hou.name                                       org_id,
4555                   horg.name                                      organization_id,
4556                   time.name                                      time_id,
4557                   DECODE(p_view_by, 'TM', time.id, -1)           time_key,
4558                   '-1'                                           util_category_id,
4559                   '-1'                                           work_type_id,
4560                   job.name                                       job_level_id,
4561                   0                                              scheduled_hours,
4562                   0                                              capacity_hours,
4563                   0                                              scheduled_util_hours,
4564                   0                                              provisional_hours,
4565                   0                                              unassigned_hours,
4566                   0                                              conf_billable_hours,
4567                   0                                              conf_nonbillable_hours,
4568                   0                                              prov_billable_hours,
4569                   0                                              prov_nonbillable_hours,
4570                   0                                              training_hours,
4571                   0                                              expected_hours,
4572                   0                                              expected_util_hours,
4573                   0                                              expected_total_util_hours,
4574                   0                                              actual_hours,
4575                   0                                              actual_util_hours,
4576                   0                                              prov_util_hours,
4577                   0                                              exp_ac_util_hours,
4578                   0                                              exp_sch_util_hours,
4579                   0                                              exp_ac_actual_hours,
4580                   0                                              exp_sch_actual_hours,
4581                   0                                              reduce_capacity_hrs_a,
4582                   0                                              reduce_capacity_hrs_s,
4583                   0                                              reduce_capacity_hrs_e,
4584                   0                                              exp_ac_reduce_capacity_hours,
4585                   0                                              exp_sch_reduce_capacity_hours,
4586                   reduce_capacity_hrs_a                          prior_reduce_capacity_hrs_a,
4587                   total_hrs_a / decode(l_labor_unit, 'DAYS', imp.FTE_DAY, 'WEEKS',imp.FTE_WEEK, 1)
4588                                                                  prior_scheduled_hours,
4589                   capacity_hrs                                   prior_capacity_hours,
4590                   total_wtd_org_hrs_a / decode(l_labor_unit, 'DAYS', imp.FTE_DAY, 'WEEKS',imp.FTE_WEEK, 1)
4591                                                                  prior_sch_util_hours,
4592                   bill_wtd_org_hrs_a / decode(l_labor_unit, 'DAYS', imp.FTE_DAY, 'WEEKS',imp.FTE_WEEK, 1)
4593                                                                  prior_conf_billable_hours,
4594                   (total_wtd_org_hrs_a - bill_wtd_org_hrs_a) / decode(l_labor_unit, 'DAYS', imp.FTE_DAY, 'WEEKS',imp.FTE_WEEK, 1)
4595                                                                  prior_conf_nonbillable_hours,
4596                   total_wtd_org_hrs_a / decode(l_labor_unit, 'DAYS', imp.FTE_DAY, 'WEEKS',imp.FTE_WEEK, 1)
4597                                                                  prior_actual_util_hours,
4598                   total_hrs_a / decode(l_labor_unit, 'DAYS', imp.FTE_DAY, 'WEEKS',imp.FTE_WEEK, 1)
4599                                                                  prior_actual_hours
4600            FROM PJI_PMV_ORGZ_DIM_TMP horg,
4601                 PJI_PMV_TIME_DIM_TMP time,
4602                 PJI_PMV_JB_DIM_TMP job,
4603                 PJI_RM_JOBO_F_MV fct,
4604                 PJI_PMV_ORG_DIM_TMP hou,
4605                 PA_IMPLEMENTATIONS_ALL imp
4606            WHERE fct.expenditure_org_id = hou.id
4607              AND fct.expenditure_organization_id = horg.id
4608              AND fct.job_id = job.id
4609              AND fct.time_id = time.prior_id
4610              AND fct.period_type_id = time.period_type
4611              AND fct.calendar_type  = decode(fct.period_type_id,1, 'C',time.calendar_type)
4612              AND time.prior_id is not null
4613              AND hou.id = imp.org_id
4614            UNION ALL
4615            SELECT '-1'                                           org_id,
4616                   name                                           organization_id,
4617                   '-1'                                           time_id,
4618                   -1                                             time_key,
4619                   '-1'                                           util_category_id,
4620                   '-1'                                           work_type_id,
4621                   '-1'                                           job_level_id,
4622                   0                                              scheduled_hours,
4623                   0                                              capacity_hours,
4624                   0                                              scheduled_util_hours,
4625                   0                                              provisional_hours,
4626                   0                                              unassigned_hours,
4627                   0                                              conf_billable_hours,
4628                   0                                              conf_nonbillable_hours,
4629                   0                                              prov_billable_hours,
4630                   0                                              prov_nonbillable_hours,
4631                   0                                              training_hours,
4632                   0                                              expected_hours,
4633                   0                                              expected_util_hours,
4634                   0                                              expected_total_util_hours,
4635                   0                                              actual_hours,
4636                   0                                              actual_util_hours,
4637                   0                                              prov_util_hours,
4638                   0                                              exp_ac_util_hours,
4639                   0                                              exp_sch_util_hours,
4640                   0                                              exp_ac_actual_hours,
4641                   0                                              exp_sch_actual_hours,
4642                   0                                              reduce_capacity_hrs_a,
4643                   0                                              reduce_capacity_hrs_s,
4644                   0                                              reduce_capacity_hrs_e,
4645                   0                                              exp_ac_reduce_capacity_hours,
4646                   0                                              exp_sch_reduce_capacity_hours,
4647                   0                                              prior_reduce_capacity_hrs_a,
4648                   0                                              prior_scheduled_hours,
4649                   0                                              prior_capacity_hours,
4650                   0                                              prior_sch_util_hours,
4651                   0                                              prior_conf_billable_hours,
4652                   0                                              prior_conf_nonbillable_hours,
4653                   0                                              prior_actual_util_hours,
4654                   0                                              prior_actual_hours
4655            FROM PJI_PMV_ORGZ_DIM_TMP
4656            WHERE name <> '-1'
4657            UNION ALL
4658            SELECT '-1'                                           org_id,
4659                   '-1'                                           organization_id,
4660                   '-1'                                           time_id,
4661                   -1                                             time_key,
4662                   '-1'                                           util_category_id,
4663                   '-1'                                           work_type_id,
4664                   name                                           job_level_id,
4665                   0                                              scheduled_hours,
4666                   0                                              capacity_hours,
4667                   0                                              scheduled_util_hours,
4668                   0                                              provisional_hours,
4669                   0                                              unassigned_hours,
4670                   0                                              conf_billable_hours,
4671                   0                                              conf_nonbillable_hours,
4672                   0                                              prov_billable_hours,
4673                   0                                              prov_nonbillable_hours,
4674                   0                                              training_hours,
4675                   0                                              expected_hours,
4676                   0                                              expected_util_hours,
4677                   0                                              expected_total_util_hours,
4678                   0                                              actual_hours,
4679                   0                                              actual_util_hours,
4680                   0                                              prov_util_hours,
4681                   0                                              exp_ac_util_hours,
4682                   0                                              exp_sch_util_hours,
4683                   0                                              exp_ac_actual_hours,
4684                   0                                              exp_sch_actual_hours,
4685                   0                                              reduce_capacity_hrs_a,
4686                   0                                              reduce_capacity_hrs_s,
4687                   0                                              reduce_capacity_hrs_e,
4688                   0                                              exp_ac_reduce_capacity_hours,
4689                   0                                              exp_sch_reduce_capacity_hours,
4690                   0                                              prior_reduce_capacity_hrs_a,
4691                   0                                              prior_scheduled_hours,
4692                   0                                              prior_capacity_hours,
4693                   0                                              prior_sch_util_hours,
4694                   0                                              prior_conf_billable_hours,
4695                   0                                              prior_conf_nonbillable_hours,
4696                   0                                              prior_actual_util_hours,
4697                   0                                              prior_actual_hours
4698            FROM PJI_PMV_JB_DIM_TMP
4699            WHERE name <> '-1'
4700            UNION ALL
4701            SELECT '-1'                                           org_id,
4702                   '-1'                                           organization_id,
4703                   name                                           time_id,
4704                   order_by_id                                    time_key,
4705                   '-1'                                           util_category_id,
4706                   '-1'                                           work_type_id,
4707                   '-1'                                           job_level_id,
4708                   0                                              scheduled_hours,
4709                   0                                              capacity_hours,
4710                   0                                              scheduled_util_hours,
4711                   0                                              provisional_hours,
4712                   0                                              unassigned_hours,
4713                   0                                              conf_billable_hours,
4714                   0                                              conf_nonbillable_hours,
4715                   0                                              prov_billable_hours,
4716                   0                                              prov_nonbillable_hours,
4717                   0                                              training_hours,
4718                   0                                              expected_hours,
4719                   0                                              expected_util_hours,
4720                   0                                              expected_total_util_hours,
4721                   0                                              actual_hours,
4722                   0                                              actual_util_hours,
4723                   0                                              prov_util_hours,
4724                   0                                              exp_ac_util_hours,
4725                   0                                              exp_sch_util_hours,
4726                   0                                              exp_ac_actual_hours,
4727                   0                                              exp_sch_actual_hours,
4728                   0                                              reduce_capacity_hrs_a,
4729                   0                                              reduce_capacity_hrs_s,
4730                   0                                              reduce_capacity_hrs_e,
4731                   0                                              exp_ac_reduce_capacity_hours,
4732                   0                                              exp_sch_reduce_capacity_hours,
4733                   0                                              prior_reduce_capacity_hrs_a,
4734                   0                                              prior_scheduled_hours,
4735                   0                                              prior_capacity_hours,
4736                   0                                              prior_sch_util_hours,
4737                   0                                              prior_conf_billable_hours,
4738                   0                                              prior_conf_nonbillable_hours,
4739                   0                                              prior_actual_util_hours,
4740                   0                                              prior_actual_hours
4741            FROM PJI_PMV_TIME_DIM_TMP
4742            WHERE name <> '-1'
4743            )
4744             GROUP BY org_id,
4745 		     organization_id,
4746 		     time_id,
4747 		     time_key,
4748 		     util_category_id,
4749                      work_type_id,
4750 		     job_level_id;
4751    ELSE
4752 
4753       PJI_PMV_ENGINE.Convert_Organization(p_Organization, p_view_by);
4754 
4755       SELECT PJI_REP_U4(org_id,
4756                         organization_id,
4757                         time_id,
4758                         time_key,
4759                         util_category_id,
4760                         work_type_id,
4761                         job_level_id,
4762                         sum(scheduled_hours),
4763                         sum(decode (p_view_by, 'UC', null, 'WT',null, capacity_hours-sch_reduce_capacity_hours)),
4764                         sum(scheduled_util_hours),
4765                         sum(provisional_hours),
4766                         sum(decode (p_view_by, 'UC', null, 'WT',null, unassigned_hours)),
4767                         sum(conf_billable_hours),
4768                         sum(conf_nonbillable_hours),
4769                         sum(prov_billable_hours),
4770                         sum(prov_nonbillable_hours),
4771                         sum(training_hours),
4772                         sum(expected_hours),
4773                         sum(expected_util_hours),
4774                         sum(expected_total_util_hours),
4775                         sum(actual_util_hours),
4776                         sum(decode (p_view_by, 'UC', null, 'WT',null, capacity_hours-act_reduce_capacity_hours)),
4777                         sum(decode (p_view_by, 'UC', null, 'WT',null, capacity_hours-exp_reduce_capacity_hours)),
4778                         sum(prov_util_hours),
4779                         sum(exp_ac_util_hours),
4780                         sum(exp_sch_util_hours),
4781                         sum(decode(l_denominator, 'CAPACITY', capacity_hours-exp_ac_red_capacity_hours,
4782                             exp_ac_actual_hours)),
4783                         sum(decode(l_denominator, 'CAPACITY', capacity_hours-exp_sch_red_capacity_hours,
4784                             exp_ac_actual_hours)),
4785                         sum(decode(l_denominator, 'CAPACITY', capacity_hours-act_reduce_capacity_hours, total_actual_hours)),
4786                         sum(decode(l_denominator, 'CAPACITY', capacity_hours-sch_reduce_capacity_hours, total_actual_hours)),
4787                         sum(decode(l_denominator, 'CAPACITY', capacity_hours-exp_reduce_capacity_hours, total_actual_hours)),
4788                         sum(prior_scheduled_hours),
4789                         sum(prior_capacity_hours-prior_red_capacity_hours),
4790                         sum(prior_sch_util_hours),
4791                         sum(prior_conf_billable_hours),
4792                         sum(prior_conf_nonbillable_hours),
4793                         sum(prior_capacity_hours-prior_red_capacity_hours),
4794                         sum(prior_actual_util_hours),
4795                         sum(decode(l_denominator, 'CAPACITY', prior_capacity_hours-prior_red_capacity_hours,
4796                             prior_total_actual_hours)),
4797                         sum(decode(l_denominator, 'CAPACITY', prior_capacity_hours-prior_red_capacity_hours,
4798                             prior_total_actual_hours)),
4799                         null,null,null,null,null,null,
4800                         null,null,null,null,null,null,
4801                         null,null,null,null,null,null,
4802                         null,null,null,null,null,null,
4803                         null,null,null,null,null,null,
4804                         null,null,null,null,null,null,
4805                         null,null,null
4806                         )
4807       /* Bug 3515594 */
4808       BULK COLLECT INTO l_u4_tbl
4809       FROM (
4810            SELECT /*+ ORDERED */
4811                   hou.name                                       org_id,
4812                   horg.name                                      organization_id,
4813                   time.name                                      time_id,
4814                   DECODE(p_view_by, 'TM', time.id, -1)           time_key,
4815                   decode(p_view_by, 'UC', wt.name, '-1')         util_category_id,
4816                   decode(p_view_by, 'WT', wt.name, '-1')         work_type_id,
4817                   job.name                                       job_level_id,
4818                   conf_hrs_s / decode(l_labor_unit, 'DAYS', imp.FTE_DAY, 'WEEKS',imp.FTE_WEEK, 1)
4819                                                                  scheduled_hours,
4820                   0                                              capacity_hours,
4821                   0                                              sch_reduce_capacity_hours,
4822 		  0						 total_actual_hours,
4823                   (fct.conf_hrs_s / decode(l_labor_unit, 'DAYS', imp.FTE_DAY, 'WEEKS',imp.FTE_WEEK, 1)) *
4824                   worktype.org_utilization_percentage / 100      scheduled_util_hours,
4825                   prov_hrs_s / decode(l_labor_unit, 'DAYS', imp.FTE_DAY, 'WEEKS',imp.FTE_WEEK, 1)
4826                                                                  provisional_hours,
4827                   unassigned_hrs_s / decode(l_labor_unit, 'DAYS', imp.FTE_DAY, 'WEEKS',imp.FTE_WEEK, 1)
4828                                                                  unassigned_hours,
4829                   (CASE WHEN worktype.billable_capitalizable_flag = 'Y' THEN
4830                   fct.conf_hrs_s * worktype.org_utilization_percentage / 100
4831                   ELSE 0 END) / decode(l_labor_unit, 'DAYS', imp.FTE_DAY, 'WEEKS',imp.FTE_WEEK, 1)
4832                                                                  conf_billable_hours,
4833                   (CASE WHEN worktype.billable_capitalizable_flag = 'N' THEN
4834                   fct.conf_hrs_s * worktype.org_utilization_percentage / 100
4835                   ELSE 0 END) / decode(l_labor_unit, 'DAYS', imp.FTE_DAY, 'WEEKS',imp.FTE_WEEK, 1)
4836                                                                  conf_nonbillable_hours,
4837                   (CASE WHEN worktype.billable_capitalizable_flag = 'Y' THEN
4838                   fct.prov_hrs_s * worktype.org_utilization_percentage / 100
4839                   ELSE 0 END) / decode(l_labor_unit, 'DAYS', imp.FTE_DAY, 'WEEKS',imp.FTE_WEEK, 1)
4840                                                                  prov_billable_hours,
4841                   (CASE WHEN worktype.billable_capitalizable_flag = 'N' THEN
4842                   fct.prov_hrs_s * worktype.org_utilization_percentage / 100
4843                   ELSE 0 END) / decode(l_labor_unit, 'DAYS', imp.FTE_DAY, 'WEEKS',imp.FTE_WEEK, 1)
4844                                                                  prov_nonbillable_hours,
4845                   (CASE WHEN worktype.training_flag = 'Y' THEN
4846                   fct.conf_hrs_s
4847                   ELSE 0 END) / decode(l_labor_unit, 'DAYS', imp.FTE_DAY, 'WEEKS',imp.FTE_WEEK, 1)
4848                                                                  training_hours,
4849                   decode(time.amount_type, 0, total_hrs_a, conf_hrs_s)
4850                   / decode(l_labor_unit, 'DAYS', imp.FTE_DAY, 'WEEKS',imp.FTE_WEEK, 1)
4851                                                                  expected_hours,
4852                   (decode(time.amount_type, 0, total_hrs_a, conf_hrs_s) * worktype.org_utilization_percentage / 100)
4853                   / decode(l_labor_unit, 'DAYS', imp.FTE_DAY, 'WEEKS',imp.FTE_WEEK, 1)
4854                                                                  expected_util_hours,
4855                   (decode(time.amount_type, 0, total_hrs_a, conf_hrs_s + prov_hrs_s) * worktype.org_utilization_percentage / 100)
4856                   / decode(l_labor_unit, 'DAYS', imp.FTE_DAY, 'WEEKS',imp.FTE_WEEK, 1)
4857                                                                  expected_total_util_hours,
4858                   0                                              exp_reduce_capacity_hours,
4859                   total_hrs_a / decode(l_labor_unit, 'DAYS', imp.FTE_DAY, 'WEEKS',imp.FTE_WEEK, 1)
4860                                                                  actual_hours,
4861                   (fct.total_hrs_a / decode(l_labor_unit, 'DAYS', imp.FTE_DAY, 'WEEKS',imp.FTE_WEEK, 1))*
4862                   worktype.org_utilization_percentage / 100      actual_util_hours,
4863                   0                                              act_reduce_capacity_hours,
4864                   (decode(time.amount_type, 0, 0, fct.prov_hrs_s) / decode(l_labor_unit, 'DAYS', imp.FTE_DAY, 'WEEKS',imp.FTE_WEEK, 1)) *
4865                   worktype.org_utilization_percentage / 100      prov_util_hours,
4866                   (decode(time.amount_type, 0, fct.total_hrs_a, 0) / decode(l_labor_unit, 'DAYS', imp.FTE_DAY, 'WEEKS',imp.FTE_WEEK, 1)) *
4867                   worktype.org_utilization_percentage / 100
4868                                                                  exp_ac_util_hours,
4869                   (decode(time.amount_type, 0, 0, fct.conf_hrs_s) / decode(l_labor_unit, 'DAYS', imp.FTE_DAY, 'WEEKS',imp.FTE_WEEK, 1)) *
4870                   worktype.org_utilization_percentage / 100
4871                                                                  exp_sch_util_hours,
4872                   decode(time.amount_type, 0, fct.total_hrs_a, 0) / decode(l_labor_unit, 'DAYS', imp.FTE_DAY, 'WEEKS',imp.FTE_WEEK, 1)
4873                                                                  exp_ac_actual_hours,
4874                   decode(time.amount_type, 0, 0, fct.total_hrs_a) / decode(l_labor_unit, 'DAYS', imp.FTE_DAY, 'WEEKS',imp.FTE_WEEK, 1)
4875                                                                  exp_sch_actual_hours,
4876                   0                                              exp_ac_red_capacity_hours,
4877                   0                                              exp_sch_red_capacity_hours,
4878                   0                                              prior_scheduled_hours,
4879                   0                                              prior_capacity_hours,
4880                   0                                              prior_red_capacity_hours,
4881 		  0						 prior_total_actual_hours,
4882 		  0                                              prior_sch_util_hours,
4883                   0                                              prior_conf_billable_hours,
4884                   0                                              prior_conf_nonbillable_hours,
4885                   0                                              prior_actual_util_hours,
4886                   0                                              prior_actual_hours
4887            FROM PJI_PMV_ORGZ_DIM_TMP horg,
4888                 PJI_PMV_TIME_DIM_TMP time,
4889                 PJI_PMV_WT_DIM_TMP wt,
4890                 PJI_RM_RES_WT_F fct,
4891                 PJI_PMV_ORG_DIM_TMP hou,
4892                 PJI_PMV_JB_DIM_TMP job,
4893                 PA_WORK_TYPES_B worktype,
4894                 PA_IMPLEMENTATIONS_ALL imp
4895            WHERE fct.expenditure_org_id = hou.id
4896              AND fct.expenditure_organization_id = horg.id
4897              AND fct.work_type_id = wt.id
4898              AND wt.id = worktype.work_type_id
4899              AND fct.job_id = job.id
4900              AND fct.time_id = time.id
4901              AND fct.period_type_id = time.period_type
4902              AND fct.calendar_type  = decode(fct.period_type_id,1, 'C',time.calendar_type)
4903              AND time.id is not null
4904              AND hou.id = imp.org_id
4905            UNION ALL
4906 	   /* Bug 3515594 */
4907            SELECT /*+ ORDERED */
4908                   hou.name                                       org_id,
4909                   horg.name                                      organization_id,
4910                   time.name                                      time_id,
4911                   DECODE(p_view_by, 'TM', time.id, -1)           time_key,
4912                   decode(p_view_by, 'UC', wt.name, '-1')         util_category_id,
4913                   decode(p_view_by, 'WT', wt.name, '-1')         work_type_id,
4914                   job.name                                       job_level_id,
4915                   0                                              scheduled_hours,
4916                   0                                              capacity_hours,
4917                   0                                              sch_reduce_capacity_hours,
4918 		  0						 total_actual_hours,
4919 		  0                                              scheduled_util_hours,
4920                   0                                              provisional_hours,
4921                   0                                              unassigned_hours,
4922                   0                                              conf_billable_hours,
4923                   0                                              conf_nonbillable_hours,
4924                   0                                              prov_billable_hours,
4925                   0                                              prov_nonbillable_hours,
4926                   0                                              training_hours,
4927                   0                                              expected_hours,
4928                   0                                              expected_util_hours,
4929                   0                                              expected_total_util_hours,
4930                   0                                              exp_reduce_capacity_hours,
4931                   0                                              actual_hours,
4932                   0                                              actual_util_hours,
4933                   0                                              act_reduce_capacity_hours,
4934                   0                                              prov_util_hours,
4935                   0                                              exp_ac_util_hours,
4936                   0                                              exp_sch_util_hours,
4937                   0                                              exp_ac_actual_hours,
4938                   0                                              exp_sch_actual_hours,
4939                   0                                              exp_ac_red_capacity_hours,
4940                   0                                              exp_sch_red_capacity_hours,
4941                   total_hrs_a / decode(l_labor_unit, 'DAYS', imp.FTE_DAY, 'WEEKS',imp.FTE_WEEK, 1)
4942                                                                  prior_scheduled_hours,
4943                   0                                              prior_capacity_hours,
4944                   0                                              prior_red_capacity_hours,
4945 		  0						 prior_total_actual_hours,
4946 		  (fct.total_hrs_a / decode(l_labor_unit, 'DAYS', imp.FTE_DAY, 'WEEKS',imp.FTE_WEEK, 1)) *
4947                   worktype.org_utilization_percentage / 100      prior_sch_util_hours,
4948                   (CASE WHEN worktype.billable_capitalizable_flag = 'Y' THEN
4949                   fct.total_hrs_a * worktype.org_utilization_percentage / 100
4950                   ELSE 0 END) / decode(l_labor_unit, 'DAYS', imp.FTE_DAY, 'WEEKS',imp.FTE_WEEK, 1)
4951                                                                  prior_conf_billable_hours,
4952                   (CASE WHEN worktype.billable_capitalizable_flag = 'N' THEN
4953                   fct.conf_hrs_s * worktype.org_utilization_percentage / 100
4954                   ELSE 0 END) / decode(l_labor_unit, 'DAYS', imp.FTE_DAY, 'WEEKS',imp.FTE_WEEK, 1)
4955                                                                  prior_conf_nonbillable_hours,
4956                   fct.total_hrs_a * decode(l_labor_unit, 'DAYS', imp.FTE_DAY, 'WEEKS',imp.FTE_WEEK, 1) *
4957                   worktype.org_utilization_percentage / 100      prior_actual_util_hours,
4958                   total_hrs_a / decode(l_labor_unit, 'DAYS', imp.FTE_DAY, 'WEEKS',imp.FTE_WEEK, 1)
4959                                                                  prior_actual_hours
4960            FROM PJI_PMV_ORGZ_DIM_TMP horg,
4961                 PJI_PMV_TIME_DIM_TMP time,
4962                 PJI_PMV_WT_DIM_TMP wt,
4963                 PJI_RM_RES_WT_F fct,
4964                 PJI_PMV_ORG_DIM_TMP hou,
4965                 PJI_PMV_JB_DIM_TMP job,
4966                 PA_WORK_TYPES_B worktype,
4967                 PA_IMPLEMENTATIONS_ALL imp
4968            WHERE fct.expenditure_org_id = hou.id
4969              AND fct.expenditure_organization_id = horg.id
4970              AND fct.work_type_id = wt.id
4971              AND wt.id = worktype.work_type_id
4972              AND fct.job_id = job.id
4973              AND fct.time_id = time.prior_id
4974              AND fct.period_type_id = time.period_type
4975              AND fct.calendar_type  = decode(fct.period_type_id,1, 'C',time.calendar_type)
4976              AND time.prior_id is not null
4977              AND hou.id = imp.org_id
4978            UNION ALL
4979            SELECT '-1'                                           org_id,
4980                   name                                           organization_id,
4981                   '-1'                                           time_id,
4982                   -1                                             time_key,
4983                   '-1'                                           util_category_id,
4984                   '-1'                                           work_type_id,
4985                   '-1'                                           job_level_id,
4986                   0                                              scheduled_hours,
4987                   0                                              capacity_hours,
4988                   0                                              sch_reduce_capacity_hours,
4989 		  0						 total_actual_hours,
4990 		  0                                              scheduled_util_hours,
4991                   0                                              provisional_hours,
4992                   0                                              unassigned_hours,
4993                   0                                              conf_billable_hours,
4994                   0                                              conf_nonbillable_hours,
4995                   0                                              prov_billable_hours,
4996                   0                                              prov_nonbillable_hours,
4997                   0                                              training_hours,
4998                   0                                              expected_hours,
4999                   0                                              expected_util_hours,
5000                   0                                              expected_total_util_hours,
5001                   0                                              exp_reduce_capacity_hours,
5002                   0                                              actual_hours,
5003                   0                                              actual_util_hours,
5004                   0                                              act_reduce_capacity_hours,
5005                   0                                              prov_util_hours,
5006                   0                                              exp_ac_util_hours,
5007                   0                                              exp_sch_util_hours,
5008                   0                                              exp_ac_actual_hours,
5009                   0                                              exp_sch_actual_hours,
5010                   0                                              exp_ac_red_capacity_hours,
5011                   0                                              exp_sch_red_capacity_hours,
5012                   0                                              prior_scheduled_hours,
5013                   0                                              prior_capacity_hours,
5014                   0                                              prior_red_capacity_hours,
5015 		  0						 prior_total_actual_hours,
5016 		  0                                              prior_sch_util_hours,
5017                   0                                              prior_conf_billable_hours,
5018                   0                                              prior_conf_nonbillable_hours,
5019                   0                                              prior_actual_util_hours,
5020                   0                                              prior_actual_hours
5021            FROM PJI_PMV_ORGZ_DIM_TMP
5022            WHERE name <> '-1'
5023            UNION ALL
5024            SELECT '-1'                                           org_id,
5025                   '-1'                                           organization_id,
5026                   '-1'                                           time_id,
5027                   -1                                             time_key,
5028                   decode(p_view_by, 'UC', name, '-1')            util_category_id,
5029                   decode(p_view_by, 'WT', name, '-1')            work_type_id,
5030                   '-1'                                           job_level_id,
5031                   0                                              scheduled_hours,
5032                   0                                              capacity_hours,
5033                   0                                              sch_reduce_capacity_hours,
5034 		  0						 total_actual_hours,
5035 		  0                                              scheduled_util_hours,
5036                   0                                              provisional_hours,
5037                   0                                              unassigned_hours,
5038                   0                                              conf_billable_hours,
5039                   0                                              conf_nonbillable_hours,
5040                   0                                              prov_billable_hours,
5041                   0                                              prov_nonbillable_hours,
5042                   0                                              training_hours,
5043                   0                                              expected_hours,
5044                   0                                              expected_util_hours,
5045                   0                                              expected_total_util_hours,
5046                   0                                              exp_reduce_capacity_hours,
5047                   0                                              actual_hours,
5048                   0                                              actual_util_hours,
5049                   0                                              act_reduce_capacity_hours,
5050                   0                                              prov_util_hours,
5051                   0                                              exp_ac_util_hours,
5052                   0                                              exp_sch_util_hours,
5053                   0                                              exp_ac_actual_hours,
5054                   0                                              exp_sch_actual_hours,
5055                   0                                              exp_ac_red_capacity_hours,
5056                   0                                              exp_sch_red_capacity_hours,
5057                   0                                              prior_scheduled_hours,
5058                   0                                              prior_capacity_hours,
5059                   0                                              prior_red_capacity_hours,
5060 		  0						 prior_total_actual_hours,
5061 		  0                                              prior_sch_util_hours,
5062                   0                                              prior_conf_billable_hours,
5063                   0                                              prior_conf_nonbillable_hours,
5064                   0                                              prior_actual_util_hours,
5065                   0                                              prior_actual_hours
5066            FROM PJI_PMV_WT_DIM_TMP
5067            WHERE name <> '-1'
5068            UNION ALL
5069            SELECT '-1'                                           org_id,
5070                   '-1'                                           organization_id,
5071                   '-1'                                           time_id,
5072                   -1                                             time_key,
5073                   '-1'                                           util_category_id,
5074                   '-1'                                           work_type_id,
5075                   name                                           job_level_id,
5076                   0                                              scheduled_hours,
5077                   0                                              capacity_hours,
5078                   0                                              sch_reduce_capacity_hours,
5079 		  0						 total_actual_hours,
5080 		  0                                              scheduled_util_hours,
5081                   0                                              provisional_hours,
5082                   0                                              unassigned_hours,
5083                   0                                              conf_billable_hours,
5084                   0                                              conf_nonbillable_hours,
5085                   0                                              prov_billable_hours,
5086                   0                                              prov_nonbillable_hours,
5087                   0                                              training_hours,
5088                   0                                              expected_hours,
5089                   0                                              expected_util_hours,
5090                   0                                              expected_total_util_hours,
5091                   0                                              exp_reduce_capacity_hours,
5092                   0                                              actual_hours,
5093                   0                                              actual_util_hours,
5094                   0                                              act_reduce_capacity_hours,
5095                   0                                              prov_util_hours,
5096                   0                                              exp_ac_util_hours,
5097                   0                                              exp_sch_util_hours,
5098                   0                                              exp_ac_actual_hours,
5099                   0                                              exp_sch_actual_hours,
5100                   0                                              exp_ac_red_capacity_hours,
5101                   0                                              exp_sch_red_capacity_hours,
5102                   0                                              prior_scheduled_hours,
5103                   0                                              prior_capacity_hours,
5104                   0                                              prior_red_capacity_hours,
5105 		  0						 prior_total_actual_hours,
5106                   0                                              prior_sch_util_hours,
5107                   0                                              prior_conf_billable_hours,
5108                   0                                              prior_conf_nonbillable_hours,
5109                   0                                              prior_actual_util_hours,
5110                   0                                              prior_actual_hours
5111            FROM PJI_PMV_JB_DIM_TMP
5112            WHERE name <> '-1'
5113            UNION ALL
5114            SELECT '-1'                                           org_id,
5115                   '-1'                                           organization_id,
5116                   name                                           time_id,
5117                   order_by_id                                    time_key,
5118                   '-1'                                           util_category_id,
5119                   '-1'                                           work_type_id,
5120                   '-1'                                           job_level_id,
5121                   0                                              scheduled_hours,
5122                   0                                              capacity_hours,
5123                   0                                              sch_reduce_capacity_hours,
5124 		  0						 total_actual_hours,
5125 		  0                                              scheduled_util_hours,
5126                   0                                              provisional_hours,
5127                   0                                              unassigned_hours,
5128                   0                                              conf_billable_hours,
5129                   0                                              conf_nonbillable_hours,
5130                   0                                              prov_billable_hours,
5131                   0                                              prov_nonbillable_hours,
5132                   0                                              training_hours,
5133                   0                                              expected_hours,
5134                   0                                              expected_util_hours,
5135                   0                                              expected_total_util_hours,
5136                   0                                              exp_reduce_capacity_hours,
5137                   0                                              actual_hours,
5138                   0                                              actual_util_hours,
5139                   0                                              act_reduce_capacity_hours,
5140                   0                                              prov_util_hours,
5141                   0                                              exp_ac_util_hours,
5142                   0                                              exp_sch_util_hours,
5143                   0                                              exp_ac_actual_hours,
5144                   0                                              exp_sch_actual_hours,
5145                   0                                              exp_ac_red_capacity_hours,
5146                   0                                              exp_sch_red_capacity_hours,
5147                   0                                              prior_scheduled_hours,
5148                   0                                              prior_capacity_hours,
5149                   0                                              prior_red_capacity_hours,
5150 		  0						 prior_total_actual_hours,
5151 		  0                                              prior_sch_util_hours,
5152                   0                                              prior_conf_billable_hours,
5153                   0                                              prior_conf_nonbillable_hours,
5154                   0                                              prior_actual_util_hours,
5155                   0                                              prior_actual_hours
5156            FROM PJI_PMV_TIME_DIM_TMP
5157            WHERE name <> '-1'
5158            UNION ALL   -- added for current year capacity_hours
5159 	   /* Bug 3515594 */
5160            SELECT
5161                   FACT.org_id,
5162                   FACT.organization_id,
5163                   FACT.time_id,
5164                   FACT.time_key,
5165                   decode(p_view_by, 'UC', WT.name, '-1')  util_category_id,
5166                   decode(p_view_by, 'WT', WT.name, '-1')  work_type_id,
5167                   FACT.job_level_id                       job_level_id,
5168                   0                                       scheduled_hours,
5169                   FACT.capacity_hours                            capacity_hours,
5170                   FACT.sch_reduce_capacity_hours                 sch_reduce_capacity_hours,
5171 		  FACT.total_actual_hours			 total_actual_hours,
5172 		  0                                              scheduled_util_hours,
5173                   0                                              provisional_hours,
5174                   0                                              unassigned_hours,
5175                   0                                              conf_billable_hours,
5176                   0                                              conf_nonbillable_hours,
5177                   0                                              prov_billable_hours,
5178                   0                                              prov_nonbillable_hours,
5179                   0                                              training_hours,
5180                   0                                              expected_hours,
5181                   0                                              expected_util_hours,
5182                   0                                              expected_total_util_hours,
5183                   FACT.exp_reduce_capacity_hours                 exp_reduce_capacity_hours,
5184                   0                                              actual_hours,
5185                   0                                              actual_util_hours,
5186                   FACT.act_reduce_capacity_hours                 act_reduce_capacity_hours,
5187                   0                                              prov_util_hours,
5188                   0                                              exp_ac_util_hours,
5189                   0                                              exp_sch_util_hours,
5190                   0                                              exp_ac_actual_hours,
5191                   0                                              exp_sch_actual_hours,
5192                   FACT.exp_ac_red_capacity_hours                 exp_ac_red_capacity_hours,
5193                   FACT.exp_sch_red_capacity_hours                exp_sch_red_capacity_hours,
5194                   0                                              prior_scheduled_hours,
5195                   0                                              prior_capacity_hours,
5196                   0                                              prior_red_capacity_hours,
5197 		  0						 prior_total_actual_hours,
5198 		  0                                              prior_sch_util_hours,
5199                   0                                              prior_conf_billable_hours,
5200                   0                                              prior_conf_nonbillable_hours,
5201                   0                                              prior_actual_util_hours,
5202                   0                                              prior_actual_hours
5203            FROM
5204             (SELECT /*+ ORDERED */
5205                      hou.name                                org_id,
5206                      horg.name                               organization_id,
5207                      time.name                               time_id,
5208                      DECODE(p_view_by, 'TM', time.id, -1)    time_key,
5209                      job.name                                job_level_id,
5210                      fct.capacity_hrs / decode(l_labor_unit, 'DAYS', imp.FTE_DAY, 'WEEKS',imp.FTE_WEEK, 1)
5211                                                           capacity_hours,
5212                      fct.total_hrs_a / decode(l_labor_unit, 'DAYS', imp.FTE_DAY, 'WEEKS',imp.FTE_WEEK, 1)
5213                                                           total_actual_hours,
5214 		     fct.reduce_capacity_hrs_s / decode(l_labor_unit, 'DAYS', imp.FTE_DAY, 'WEEKS',imp.FTE_WEEK, 1)
5215                                                           sch_reduce_capacity_hours,
5216                      decode(time.amount_type, 0, reduce_capacity_hrs_a, reduce_capacity_hrs_s)
5217                            /  decode(l_labor_unit, 'DAYS', imp.FTE_DAY, 'WEEKS',imp.FTE_WEEK, 1)
5218                                                           exp_reduce_capacity_hours,
5219                      fct.reduce_capacity_hrs_a / decode(l_labor_unit, 'DAYS', imp.FTE_DAY, 'WEEKS',imp.FTE_WEEK, 1)
5220                                                           act_reduce_capacity_hours,
5221                      decode(time.amount_type, 0, reduce_capacity_hrs_a,0)
5222                            /  decode(l_labor_unit, 'DAYS', imp.FTE_DAY, 'WEEKS',imp.FTE_WEEK, 1)
5223                                                           exp_ac_red_capacity_hours,
5224                      decode(time.amount_type, 1, reduce_capacity_hrs_s,0)
5225                            /  decode(l_labor_unit, 'DAYS', imp.FTE_DAY, 'WEEKS',imp.FTE_WEEK, 1)
5226                                                           exp_sch_red_capacity_hours
5227              FROM PJI_PMV_ORGZ_DIM_TMP horg,
5228                   PJI_PMV_TIME_DIM_TMP time,
5229                   PJI_PMV_JB_DIM_TMP   job,
5230                   PJI_RM_JOB_F_MV fct,
5231                   PJI_PMV_ORG_DIM_TMP hou,
5232                   PA_IMPLEMENTATIONS_ALL imp
5233              WHERE fct.expenditure_org_id = hou.id
5234              AND   fct.expenditure_organization_id = horg.id
5235              AND   fct.time_id = time.id
5236              AND   fct.period_type_id = time.period_type
5237              AND   fct.job_id  = job.id
5238              AND   fct.calendar_type  = decode(fct.period_type_id,1, 'C',time.calendar_type)
5239              AND   time.id is not null
5240              AND   hou.id = imp.org_id )         FACT,
5241              (SELECT distinct WT.name
5242               FROM   PJI_PMV_WT_DIM_TMP wt )     WT
5243            UNION ALL   -- added for prior year capacity_hours
5244 	   /* Bug 3515594 */
5245            SELECT
5246                   FACT.org_id,
5247                   FACT.organization_id,
5248                   FACT.time_id,
5249                   FACT.time_key,
5250                   decode(p_view_by, 'UC', WT.name, '-1')  util_category_id,
5251                   decode(p_view_by, 'WT', WT.name, '-1')  work_type_id,
5252                   FACT.job_level_id                       job_level_id,
5253                   0                                       scheduled_hours,
5254                   0                                       capacity_hours,
5255                   0                                              sch_reduce_capacity_hours,
5256 		  0						 total_actual_hours,
5257 		  0                                              scheduled_util_hours,
5258                   0                                              provisional_hours,
5259                   0                                              unassigned_hours,
5260                   0                                              conf_billable_hours,
5261                   0                                              conf_nonbillable_hours,
5262                   0                                              prov_billable_hours,
5263                   0                                              prov_nonbillable_hours,
5264                   0                                              training_hours,
5265                   0                                              expected_hours,
5266                   0                                              expected_util_hours,
5267                   0                                              expected_total_util_hours,
5268                   0                                              exp_reduce_capacity_hours,
5269                   0                                              actual_hours,
5270                   0                                              actual_util_hours,
5271                   0                                              act_reduce_capacity_hours,
5272                   0                                              prov_util_hours,
5273                   0                                              exp_ac_util_hours,
5274                   0                                              exp_sch_util_hours,
5275                   0                                              exp_ac_actual_hours,
5276                   0                                              exp_sch_actual_hours,
5277                   0                                              exp_ac_red_capacity_hours,
5278                   0                                              exp_sch_red_capacity_hours,
5279                   0                                              prior_scheduled_hours,
5280                   FACT.capacity_hours                            prior_capacity_hours,
5281                   FACT.prior_red_capacity_hours                  prior_red_capacity_hours,
5282 		  FACT.total_actual_hours			 prior_total_actual_hours,
5283 		  0                                              prior_sch_util_hours,
5284                   0                                              prior_conf_billable_hours,
5285                   0                                              prior_conf_nonbillable_hours,
5286                   0                                              prior_actual_util_hours,
5287                   0                                              prior_actual_hours
5288            FROM
5289             (SELECT /*+ ORDERED */
5290                      hou.name                                org_id,
5291                      horg.name                               organization_id,
5292                      time.name                               time_id,
5293                      DECODE(p_view_by, 'TM', time.id, -1)    time_key,
5294                      job.name                                job_level_id,
5295                      fct.capacity_hrs / decode(l_labor_unit, 'DAYS', imp.FTE_DAY, 'WEEKS',imp.FTE_WEEK, 1)
5296                                                           capacity_hours,
5297                      fct.total_hrs_a / decode(l_labor_unit, 'DAYS', imp.FTE_DAY, 'WEEKS',imp.FTE_WEEK, 1)
5298                                                           total_actual_hours,
5299 		     fct.reduce_capacity_hrs_a / decode(l_labor_unit, 'DAYS', imp.FTE_DAY, 'WEEKS',imp.FTE_WEEK, 1)
5300                                                           prior_red_capacity_hours
5301              FROM PJI_PMV_ORGZ_DIM_TMP horg,
5302                   PJI_PMV_TIME_DIM_TMP time,
5303                   PJI_PMV_JB_DIM_TMP   job,
5304                   PJI_RM_JOB_F_MV fct,
5305                   PJI_PMV_ORG_DIM_TMP hou,
5306                   PA_IMPLEMENTATIONS_ALL imp
5307              WHERE fct.expenditure_org_id = hou.id
5308              AND   fct.expenditure_organization_id = horg.id
5309              AND   fct.time_id = time.prior_id
5310              AND   fct.period_type_id = time.period_type
5311              AND   fct.job_id  = job.id
5312              AND   fct.calendar_type  = decode(fct.period_type_id,1, 'C',time.calendar_type)
5313              AND   time.prior_id is not null
5314              AND   hou.id = imp.org_id )         FACT,
5315              (SELECT distinct WT.name
5316               FROM   PJI_PMV_WT_DIM_TMP wt )     WT
5317            )
5318            GROUP BY org_id,
5319 		     organization_id,
5320 		     time_id,
5321 		     time_key,
5322 		     util_category_id,
5323              work_type_id,
5324 		     job_level_id;
5325    END IF;
5326 
5327    /* Correcting value of Top level Org */
5328 
5329 
5330      FOR i in 1..l_u4_tbl.COUNT
5331        LOOP
5332          IF p_View_By = 'OG' AND ( l_job_flag = 'N' OR l_util_category_flag = 'N' )
5333             AND  l_u4_tbl(i).ORGANIZATION_ID = l_Top_Organization_Name THEN
5334 
5335            l_Top_Org_Index:=i;
5336 
5337          ELSE
5338 
5339            l_scheduled_hours                  := l_scheduled_hours                + nvl(l_u4_tbl(i).scheduled_hours,0);
5340 		   l_scheduled_capacity_hours    	  := l_scheduled_capacity_hours    	  +	nvl(l_u4_tbl(i).scheduled_capacity_hours,0);
5341 		   l_scheduled_util_hours        	  := l_scheduled_util_hours        	  +	nvl(l_u4_tbl(i).scheduled_util_hours,0);
5342 		   l_provisional_hours           	  := l_provisional_hours           	  +	nvl(l_u4_tbl(i).provisional_hours,0);
5343 		   l_unassigned_hours            	  := l_unassigned_hours            	  +	nvl(l_u4_tbl(i).unassigned_hours,0);
5344 		   l_conf_billable_hours         	  := l_conf_billable_hours         	  +	nvl(l_u4_tbl(i).conf_billable_hours,0);
5345 		   l_conf_nonbillable_hours      	  := l_conf_nonbillable_hours      	  +	nvl(l_u4_tbl(i).conf_nonbillable_hours,0);
5346 		   l_prov_billable_hours         	  := l_prov_billable_hours         	  +	nvl(l_u4_tbl(i).prov_billable_hours,0);
5347 		   l_prov_nonbillable_hours      	  := l_prov_nonbillable_hours      	  +	nvl(l_u4_tbl(i).prov_nonbillable_hours,0);
5348 		   l_training_hours              	  := l_training_hours              	  +	nvl(l_u4_tbl(i).training_hours,0);
5349 		   l_expected_hours              	  := l_expected_hours              	  +	nvl(l_u4_tbl(i).expected_hours,0);
5350 		   l_expected_util_hours         	  := l_expected_util_hours         	  +	nvl(l_u4_tbl(i).expected_util_hours,0);
5351 		   l_expected_total_util_hours   	  := l_expected_total_util_hours   	  +	nvl(l_u4_tbl(i).expected_total_util_hours,0);
5352 		   l_actual_util_hours           	  := l_actual_util_hours           	  +	nvl(l_u4_tbl(i).actual_util_hours,0);
5353 		   l_actual_capacity_hours       	  := l_actual_capacity_hours       	  +	nvl(l_u4_tbl(i).actual_capacity_hours,0);
5354 		   l_expected_capacity_hours          	  := l_expected_capacity_hours        	  + 	nvl(l_u4_tbl(i).expected_capacity_hours,0);
5355 		   l_prov_util_hours             	  := l_prov_util_hours             	  +	nvl(l_u4_tbl(i).prov_util_hours,0);
5356 		   l_exp_ac_util_hours           	  := l_exp_ac_util_hours           	  +	nvl(l_u4_tbl(i).exp_ac_util_hours,0);
5357 		   l_exp_sch_util_hours          	  := l_exp_sch_util_hours          	  +	nvl(l_u4_tbl(i).exp_sch_util_hours,0);
5358 		   l_exp_ac_denominator          	  := l_exp_ac_denominator          	  +	nvl(l_u4_tbl(i).exp_ac_denominator,0);
5359 		   l_exp_sch_denominator         	  := l_exp_sch_denominator         	  +	nvl(l_u4_tbl(i).exp_sch_denominator,0);
5360 		   l_actual_denominator          	  := l_actual_denominator          	  +	nvl(l_u4_tbl(i).actual_denominator,0);
5361 		   l_scheduled_denominator       	  := l_scheduled_denominator       	  +	nvl(l_u4_tbl(i).scheduled_denominator,0);
5362 		   l_expected_denominator        	  := l_expected_denominator        	  +	nvl(l_u4_tbl(i).expected_denominator,0);
5363 		   l_prior_scheduled_hours       	  := l_prior_scheduled_hours       	  +	nvl(l_u4_tbl(i).prior_scheduled_hours,0);
5364 		   l_prior_sch_capacity_hours    	  := l_prior_sch_capacity_hours    	  +	nvl(l_u4_tbl(i).prior_sch_capacity_hours,0);
5365 		   l_prior_sch_util_hours        	  := l_prior_sch_util_hours        	  +	nvl(l_u4_tbl(i).prior_sch_util_hours,0);
5366 		   l_prior_conf_billable_hours   	  := l_prior_conf_billable_hours   	  +	nvl(l_u4_tbl(i).prior_conf_billable_hours,0);
5367 		   l_prior_conf_nonbillable_hours	  := l_prior_conf_nonbillable_hours	  +	nvl(l_u4_tbl(i).prior_conf_nonbillable_hours,0);
5368 		   l_prior_actual_capacity_hours 	  := l_prior_actual_capacity_hours 	  +	nvl(l_u4_tbl(i).prior_actual_capacity_hours,0);
5369 		   l_prior_actual_util_hours          := l_prior_actual_util_hours        + nvl(l_u4_tbl(i).prior_actual_util_hours,0);
5370 		   l_prior_actual_denominator         := l_prior_actual_denominator       + nvl(l_u4_tbl(i).prior_actual_denominator,0);
5371 		   l_prior_scheduled_denominator      := l_prior_scheduled_denominator    +	nvl(l_u4_tbl(i).prior_scheduled_denominator,0);
5372 
5373            --Calculated column processing is done below
5374            --L-Top-Org is not done here
5375            --Calculated columns for PJI_REP_U4
5376            IF nvl(l_u4_tbl(i).scheduled_denominator,0) <> 0 THEN
5377              l_u4_tbl(i).sch_util_percent := 100 * (l_u4_tbl(i).scheduled_util_hours / l_u4_tbl(i).scheduled_denominator);
5378              l_u4_tbl(i).bill_util_percent := 100 * (l_u4_tbl(i).conf_billable_hours / l_u4_tbl(i).scheduled_denominator);
5379              l_u4_tbl(i).nonbill_util_percent := 100 * (l_u4_tbl(i).conf_nonbillable_hours / l_u4_tbl(i).scheduled_denominator);
5380              l_u4_tbl(i).unassigned_percent := 100 * (l_u4_tbl(i).unassigned_hours / l_u4_tbl(i).scheduled_denominator);
5381              l_u4_tbl(i).training_percent := 100 * (l_u4_tbl(i).training_hours / l_u4_tbl(i).scheduled_denominator);
5382              l_u4_tbl(i).prov_bill_percent := 100 * (l_u4_tbl(i).prov_billable_hours / l_u4_tbl(i).scheduled_denominator);
5383              l_u4_tbl(i).prov_nonbill_percent := 100 * (l_u4_tbl(i).prov_nonbillable_hours / l_u4_tbl(i).scheduled_denominator);
5384 
5385            ELSE
5386              l_u4_tbl(i).sch_util_percent := NULL;
5387              l_u4_tbl(i).bill_util_percent := NULL;
5388 			 l_u4_tbl(i).nonbill_util_percent := NULL;
5389 			 l_u4_tbl(i).unassigned_percent := NULL;
5390 			 l_u4_tbl(i).training_percent := NULL;
5391 			 l_u4_tbl(i).prov_bill_percent := NULL;
5392 			 l_u4_tbl(i).prov_nonbill_percent := NULL;
5393 
5394            END IF;
5395 
5396            IF nvl(l_u4_tbl(i).prior_scheduled_denominator,0) <> 0 THEN
5397              l_u4_tbl(i).prior_sch_util_percent := 100 * (l_u4_tbl(i).prior_sch_util_hours / l_u4_tbl(i).prior_scheduled_denominator);
5398              l_u4_tbl(i).prior_bill_util_percent := 100 * (l_u4_tbl(i).prior_conf_billable_hours / l_u4_tbl(i).prior_scheduled_denominator);
5399              l_u4_tbl(i).prior_nonbill_util_percent := 100 * (l_u4_tbl(i).prior_conf_nonbillable_hours / l_u4_tbl(i).prior_scheduled_denominator);
5400            ELSE
5401              l_u4_tbl(i).prior_sch_util_percent := NULL;
5402              l_u4_tbl(i).prior_bill_util_percent := NULL;
5403 			 l_u4_tbl(i).prior_nonbill_util_percent := NULL;
5404            END IF;
5405 
5406            --Calculated columns for PJI_REP_U5
5407            IF nvl(l_u4_tbl(i).exp_ac_denominator,0) <> 0 THEN
5408 
5409              l_u4_tbl(i).exp_act_util_percent := 100 * (l_u4_tbl(i).exp_ac_util_hours / l_u4_tbl(i).exp_ac_denominator);
5410 
5411            ELSE
5412              l_u4_tbl(i).exp_act_util_percent := NULL;
5413            END IF;
5414 
5415            IF nvl(l_u4_tbl(i).exp_sch_denominator,0) <> 0 THEN
5416 
5417              l_u4_tbl(i).exp_sch_util_percent := 100 * (l_u4_tbl(i).exp_sch_util_hours / l_u4_tbl(i).exp_sch_denominator);
5418              l_u4_tbl(i).prov_sch_util_percent := 100 * (l_u4_tbl(i).prov_util_hours / l_u4_tbl(i).exp_sch_denominator);
5419 
5420            ELSE
5421              l_u4_tbl(i).exp_sch_util_percent := NULL;
5422              l_u4_tbl(i).prov_sch_util_percent := NULL;
5423            END IF;
5424 
5425            IF nvl(l_u4_tbl(i).expected_denominator,0) <> 0 THEN
5426 
5427              l_u4_tbl(i).exp_util_percent := 100 * (l_u4_tbl(i).expected_util_hours / l_u4_tbl(i).expected_denominator);
5428              l_u4_tbl(i).exp_total_util_percent := 100 * (l_u4_tbl(i).expected_total_util_hours / l_u4_tbl(i).expected_denominator);
5429 
5430            ELSE
5431              l_u4_tbl(i).exp_util_percent := NULL;
5432              l_u4_tbl(i).exp_total_util_percent := NULL;
5433            END IF;
5434 
5435            IF nvl(l_u4_tbl(i).prior_actual_denominator,0) <> 0 THEN
5436 
5437              l_u4_tbl(i).prior_act_util_percent := 100 * (l_u4_tbl(i).prior_actual_util_hours / l_u4_tbl(i).prior_actual_denominator);
5438 
5439            ELSE
5440              l_u4_tbl(i).prior_act_util_percent := NULL;
5441            END IF;
5442 
5443          END IF; --end p_view_by
5444        END LOOP;
5445 
5446        IF p_View_By = 'OG' AND ( l_job_flag = 'N' OR l_util_category_flag = 'N' )  THEN
5447 
5448            l_u4_tbl(l_Top_Org_Index).scheduled_hours                    :=  l_u4_tbl(l_Top_Org_Index).scheduled_hours               -  l_scheduled_hours;
5449 		   l_u4_tbl(l_Top_Org_Index).scheduled_capacity_hours       	:= 	l_u4_tbl(l_Top_Org_Index).scheduled_capacity_hours      -  l_scheduled_capacity_hours;
5450 		   l_u4_tbl(l_Top_Org_Index).scheduled_util_hours           	:= 	l_u4_tbl(l_Top_Org_Index).scheduled_util_hours          -  l_scheduled_util_hours;
5451 		   l_u4_tbl(l_Top_Org_Index).provisional_hours              	:= 	l_u4_tbl(l_Top_Org_Index).provisional_hours             -  l_provisional_hours;
5452 		   l_u4_tbl(l_Top_Org_Index).unassigned_hours               	:= 	l_u4_tbl(l_Top_Org_Index).unassigned_hours              -  l_unassigned_hours;
5453 		   l_u4_tbl(l_Top_Org_Index).conf_billable_hours            	:= 	l_u4_tbl(l_Top_Org_Index).conf_billable_hours           -  l_conf_billable_hours;
5454 		   l_u4_tbl(l_Top_Org_Index).conf_nonbillable_hours         	:= 	l_u4_tbl(l_Top_Org_Index).conf_nonbillable_hours        -  l_conf_nonbillable_hours;
5455 		   l_u4_tbl(l_Top_Org_Index).prov_billable_hours            	:= 	l_u4_tbl(l_Top_Org_Index).prov_billable_hours           -  l_prov_billable_hours;
5456 		   l_u4_tbl(l_Top_Org_Index).prov_nonbillable_hours         	:= 	l_u4_tbl(l_Top_Org_Index).prov_nonbillable_hours        -  l_prov_nonbillable_hours;
5457 		   l_u4_tbl(l_Top_Org_Index).training_hours                 	:= 	l_u4_tbl(l_Top_Org_Index).training_hours                -  l_training_hours;
5458 		   l_u4_tbl(l_Top_Org_Index).expected_hours                 	:= 	l_u4_tbl(l_Top_Org_Index).expected_hours                -  l_expected_hours;
5459 		   l_u4_tbl(l_Top_Org_Index).expected_util_hours            	:= 	l_u4_tbl(l_Top_Org_Index).expected_util_hours           -  l_expected_util_hours;
5460 		   l_u4_tbl(l_Top_Org_Index).expected_total_util_hours      	:= 	l_u4_tbl(l_Top_Org_Index).expected_total_util_hours     -  l_expected_total_util_hours;
5461 		   l_u4_tbl(l_Top_Org_Index).actual_util_hours              	:= 	l_u4_tbl(l_Top_Org_Index).actual_util_hours             -  l_actual_util_hours;
5462 		   l_u4_tbl(l_Top_Org_Index).actual_capacity_hours          	:= 	l_u4_tbl(l_Top_Org_Index).actual_capacity_hours         -  l_actual_capacity_hours;
5463 		   l_u4_tbl(l_Top_Org_Index).expected_capacity_hours        	:= 	l_u4_tbl(l_Top_Org_Index).expected_capacity_hours       -  l_expected_capacity_hours;
5464 		   l_u4_tbl(l_Top_Org_Index).prov_util_hours                	:= 	l_u4_tbl(l_Top_Org_Index).prov_util_hours               -  l_prov_util_hours;
5465 		   l_u4_tbl(l_Top_Org_Index).exp_ac_util_hours              	:= 	l_u4_tbl(l_Top_Org_Index).exp_ac_util_hours             -  l_exp_ac_util_hours;
5466 		   l_u4_tbl(l_Top_Org_Index).exp_sch_util_hours             	:= 	l_u4_tbl(l_Top_Org_Index).exp_sch_util_hours            -  l_exp_sch_util_hours;
5467 		   l_u4_tbl(l_Top_Org_Index).exp_ac_denominator             	:= 	l_u4_tbl(l_Top_Org_Index).exp_ac_denominator            -  l_exp_ac_denominator;
5468 		   l_u4_tbl(l_Top_Org_Index).exp_sch_denominator            	:= 	l_u4_tbl(l_Top_Org_Index).exp_sch_denominator           -  l_exp_sch_denominator;
5469 		   l_u4_tbl(l_Top_Org_Index).actual_denominator             	:= 	l_u4_tbl(l_Top_Org_Index).actual_denominator            -  l_actual_denominator;
5470 		   l_u4_tbl(l_Top_Org_Index).scheduled_denominator          	:= 	l_u4_tbl(l_Top_Org_Index).scheduled_denominator         -  l_scheduled_denominator;
5471 		   l_u4_tbl(l_Top_Org_Index).expected_denominator           	:= 	l_u4_tbl(l_Top_Org_Index).expected_denominator          -  l_expected_denominator;
5472 		   l_u4_tbl(l_Top_Org_Index).prior_scheduled_hours          	:= 	l_u4_tbl(l_Top_Org_Index).prior_scheduled_hours         -  l_prior_scheduled_hours;
5473 		   l_u4_tbl(l_Top_Org_Index).prior_sch_capacity_hours       	:= 	l_u4_tbl(l_Top_Org_Index).prior_sch_capacity_hours      -  l_prior_sch_capacity_hours;
5474 		   l_u4_tbl(l_Top_Org_Index).prior_sch_util_hours           	:= 	l_u4_tbl(l_Top_Org_Index).prior_sch_util_hours          -  l_prior_sch_util_hours;
5475 		   l_u4_tbl(l_Top_Org_Index).prior_conf_billable_hours      	:= 	l_u4_tbl(l_Top_Org_Index).prior_conf_billable_hours     -  l_prior_conf_billable_hours;
5476 		   l_u4_tbl(l_Top_Org_Index).prior_conf_nonbillable_hours   	:= 	l_u4_tbl(l_Top_Org_Index).prior_conf_nonbillable_hours  -  l_prior_conf_nonbillable_hours;
5477 		   l_u4_tbl(l_Top_Org_Index).prior_actual_capacity_hours    	:= 	l_u4_tbl(l_Top_Org_Index).prior_actual_capacity_hours   -  l_prior_actual_capacity_hours;
5478 		   l_u4_tbl(l_Top_Org_Index).prior_actual_util_hours        	:= 	l_u4_tbl(l_Top_Org_Index).prior_actual_util_hours       -  l_prior_actual_util_hours;
5479 		   l_u4_tbl(l_Top_Org_Index).prior_actual_denominator       	:= 	l_u4_tbl(l_Top_Org_Index).prior_actual_denominator      -  l_prior_actual_denominator;
5480 		   l_u4_tbl(l_Top_Org_Index).prior_scheduled_denominator   	    := 	l_u4_tbl(l_Top_Org_Index).prior_scheduled_denominator   -  l_prior_scheduled_denominator;
5481 
5482            --Calculated columns processing for l_top_org
5483            IF nvl(l_u4_tbl(l_Top_Org_Index).scheduled_denominator,0) <> 0 THEN
5484              l_u4_tbl(l_Top_Org_Index).sch_util_percent := 100 * (l_u4_tbl(l_Top_Org_Index).scheduled_util_hours / l_u4_tbl(l_Top_Org_Index).scheduled_denominator);
5485              l_u4_tbl(l_Top_Org_Index).bill_util_percent := 100 * (l_u4_tbl(l_Top_Org_Index).conf_billable_hours / l_u4_tbl(l_Top_Org_Index).scheduled_denominator);
5486              l_u4_tbl(l_Top_Org_Index).nonbill_util_percent := 100 * (l_u4_tbl(l_Top_Org_Index).conf_nonbillable_hours / l_u4_tbl(l_Top_Org_Index).scheduled_denominator);
5487              l_u4_tbl(l_Top_Org_Index).unassigned_percent := 100 * (l_u4_tbl(l_Top_Org_Index).unassigned_hours / l_u4_tbl(l_Top_Org_Index).scheduled_denominator);
5488              l_u4_tbl(l_Top_Org_Index).training_percent := 100 * (l_u4_tbl(l_Top_Org_Index).training_hours / l_u4_tbl(l_Top_Org_Index).scheduled_denominator);
5489              l_u4_tbl(l_Top_Org_Index).prov_bill_percent := 100 * (l_u4_tbl(l_Top_Org_Index).prov_billable_hours / l_u4_tbl(l_Top_Org_Index).scheduled_denominator);
5490              l_u4_tbl(l_Top_Org_Index).prov_nonbill_percent := 100 * (l_u4_tbl(l_Top_Org_Index).prov_nonbillable_hours / l_u4_tbl(l_Top_Org_Index).scheduled_denominator);
5491 
5492            ELSE
5493              l_u4_tbl(l_Top_Org_Index).sch_util_percent := NULL;
5494              l_u4_tbl(l_Top_Org_Index).bill_util_percent := NULL;
5495 			 l_u4_tbl(l_Top_Org_Index).nonbill_util_percent := NULL;
5496 			 l_u4_tbl(l_Top_Org_Index).unassigned_percent := NULL;
5497 			 l_u4_tbl(l_Top_Org_Index).training_percent := NULL;
5498 			 l_u4_tbl(l_Top_Org_Index).prov_bill_percent := NULL;
5499 			 l_u4_tbl(l_Top_Org_Index).prov_nonbill_percent := NULL;
5500 
5501            END IF;
5502 
5503            IF nvl(l_u4_tbl(l_Top_Org_Index).prior_scheduled_denominator,0) <> 0 THEN
5504              l_u4_tbl(l_Top_Org_Index).prior_sch_util_percent := 100 * (l_u4_tbl(l_Top_Org_Index).prior_sch_util_hours / l_u4_tbl(l_Top_Org_Index).prior_scheduled_denominator);
5505              l_u4_tbl(l_Top_Org_Index).prior_bill_util_percent := 100 * (l_u4_tbl(l_Top_Org_Index).prior_conf_billable_hours / l_u4_tbl(l_Top_Org_Index).prior_scheduled_denominator);
5506              l_u4_tbl(l_Top_Org_Index).prior_nonbill_util_percent := 100 * (l_u4_tbl(l_Top_Org_Index).prior_conf_nonbillable_hours / l_u4_tbl(l_Top_Org_Index).prior_scheduled_denominator);
5507            ELSE
5508              l_u4_tbl(l_Top_Org_Index).prior_sch_util_percent := NULL;
5509              l_u4_tbl(l_Top_Org_Index).prior_bill_util_percent := NULL;
5510 			 l_u4_tbl(l_Top_Org_Index).prior_nonbill_util_percent := NULL;
5511            END IF;
5512 
5513            --Calculated columns for PJI_REP_U5
5514            IF nvl(l_u4_tbl(l_Top_Org_Index).exp_ac_denominator,0) <> 0 THEN
5515 
5516              l_u4_tbl(l_Top_Org_Index).exp_act_util_percent := 100 * (l_u4_tbl(l_Top_Org_Index).exp_ac_util_hours / l_u4_tbl(l_Top_Org_Index).exp_ac_denominator);
5517 
5518            ELSE
5519              l_u4_tbl(l_Top_Org_Index).exp_act_util_percent := NULL;
5520            END IF;
5521 
5522            IF nvl(l_u4_tbl(l_Top_Org_Index).exp_sch_denominator,0) <> 0 THEN
5523 
5524              l_u4_tbl(l_Top_Org_Index).exp_sch_util_percent := 100 * (l_u4_tbl(l_Top_Org_Index).exp_sch_util_hours / l_u4_tbl(l_Top_Org_Index).exp_sch_denominator);
5525              l_u4_tbl(l_Top_Org_Index).prov_sch_util_percent := 100 * (l_u4_tbl(l_Top_Org_Index).prov_util_hours / l_u4_tbl(l_Top_Org_Index).exp_sch_denominator);
5526 
5527            ELSE
5528              l_u4_tbl(l_Top_Org_Index).exp_sch_util_percent := NULL;
5529              l_u4_tbl(l_Top_Org_Index).prov_sch_util_percent := NULL;
5530            END IF;
5531 
5532            IF nvl(l_u4_tbl(l_Top_Org_Index).expected_denominator,0) <> 0 THEN
5533 
5534              l_u4_tbl(l_Top_Org_Index).exp_util_percent := 100 * (l_u4_tbl(l_Top_Org_Index).expected_util_hours / l_u4_tbl(l_Top_Org_Index).expected_denominator);
5535              l_u4_tbl(l_Top_Org_Index).exp_total_util_percent := 100 * (l_u4_tbl(l_Top_Org_Index).expected_total_util_hours / l_u4_tbl(l_Top_Org_Index).expected_denominator);
5536 
5537            ELSE
5538              l_u4_tbl(l_Top_Org_Index).exp_util_percent := NULL;
5539              l_u4_tbl(l_Top_Org_Index).exp_total_util_percent := NULL;
5540            END IF;
5541 
5542            IF nvl(l_u4_tbl(l_Top_Org_Index).prior_actual_denominator,0) <> 0 THEN
5543 
5544              l_u4_tbl(l_Top_Org_Index).prior_act_util_percent := 100 * (l_u4_tbl(l_Top_Org_Index).prior_actual_util_hours / l_u4_tbl(l_Top_Org_Index).prior_actual_denominator);
5545 
5546            ELSE
5547              l_u4_tbl(l_Top_Org_Index).prior_act_util_percent := NULL;
5548            END IF;
5549 
5550         END IF; --end p_view_vy
5551 
5552     IF l_Top_Org_Index is not null THEN
5553 
5554         --Update local variables to include top level org for grand total
5555         l_scheduled_hours                 := l_scheduled_hours                + nvl(l_u4_tbl(l_Top_Org_Index).scheduled_hours,0);
5556 		l_scheduled_capacity_hours    	  := l_scheduled_capacity_hours    	  +	nvl(l_u4_tbl(l_Top_Org_Index).scheduled_capacity_hours,0);
5557 		l_scheduled_util_hours        	  := l_scheduled_util_hours        	  +	nvl(l_u4_tbl(l_Top_Org_Index).scheduled_util_hours,0);
5558 		l_provisional_hours           	  := l_provisional_hours           	  +	nvl(l_u4_tbl(l_Top_Org_Index).provisional_hours,0);
5559 		l_unassigned_hours            	  := l_unassigned_hours            	  +	nvl(l_u4_tbl(l_Top_Org_Index).unassigned_hours,0);
5560 		l_conf_billable_hours         	  := l_conf_billable_hours         	  +	nvl(l_u4_tbl(l_Top_Org_Index).conf_billable_hours,0);
5561 		l_conf_nonbillable_hours      	  := l_conf_nonbillable_hours      	  +	nvl(l_u4_tbl(l_Top_Org_Index).conf_nonbillable_hours,0);
5562 		l_prov_billable_hours         	  := l_prov_billable_hours         	  +	nvl(l_u4_tbl(l_Top_Org_Index).prov_billable_hours,0);
5563 		l_prov_nonbillable_hours      	  := l_prov_nonbillable_hours      	  +	nvl(l_u4_tbl(l_Top_Org_Index).prov_nonbillable_hours,0);
5564 		l_training_hours              	  := l_training_hours              	  +	nvl(l_u4_tbl(l_Top_Org_Index).training_hours,0);
5565 		l_expected_hours              	  := l_expected_hours              	  +	nvl(l_u4_tbl(l_Top_Org_Index).expected_hours,0);
5566 		l_expected_util_hours         	  := l_expected_util_hours         	  +	nvl(l_u4_tbl(l_Top_Org_Index).expected_util_hours,0);
5567 		l_expected_total_util_hours   	  := l_expected_total_util_hours   	  +	nvl(l_u4_tbl(l_Top_Org_Index).expected_total_util_hours,0);
5568 		l_actual_util_hours           	  := l_actual_util_hours           	  +	nvl(l_u4_tbl(l_Top_Org_Index).actual_util_hours,0);
5569 		l_actual_capacity_hours       	  := l_actual_capacity_hours       	  +	nvl(l_u4_tbl(l_Top_Org_Index).actual_capacity_hours,0);
5570 		l_expected_capacity_hours         := l_expected_capacity_hours        + nvl(l_u4_tbl(l_Top_Org_Index).expected_capacity_hours,0);
5571 		l_prov_util_hours             	  := l_prov_util_hours             	  +	nvl(l_u4_tbl(l_Top_Org_Index).prov_util_hours,0);
5572 		l_exp_ac_util_hours           	  := l_exp_ac_util_hours           	  +	nvl(l_u4_tbl(l_Top_Org_Index).exp_ac_util_hours,0);
5573 		l_exp_sch_util_hours          	  := l_exp_sch_util_hours          	  +	nvl(l_u4_tbl(l_Top_Org_Index).exp_sch_util_hours,0);
5574 		l_exp_ac_denominator          	  := l_exp_ac_denominator          	  +	nvl(l_u4_tbl(l_Top_Org_Index).exp_ac_denominator,0);
5575 		l_exp_sch_denominator         	  := l_exp_sch_denominator         	  +	nvl(l_u4_tbl(l_Top_Org_Index).exp_sch_denominator,0);
5576 		l_actual_denominator          	  := l_actual_denominator          	  +	nvl(l_u4_tbl(l_Top_Org_Index).actual_denominator,0);
5577 		l_scheduled_denominator       	  := l_scheduled_denominator       	  +	nvl(l_u4_tbl(l_Top_Org_Index).scheduled_denominator,0);
5578 		l_expected_denominator        	  := l_expected_denominator        	  +	nvl(l_u4_tbl(l_Top_Org_Index).expected_denominator,0);
5579 		l_prior_scheduled_hours       	  := l_prior_scheduled_hours       	  +	nvl(l_u4_tbl(l_Top_Org_Index).prior_scheduled_hours,0);
5580 		l_prior_sch_capacity_hours    	  := l_prior_sch_capacity_hours    	  +	nvl(l_u4_tbl(l_Top_Org_Index).prior_sch_capacity_hours,0);
5581 		l_prior_sch_util_hours        	  := l_prior_sch_util_hours        	  +	nvl(l_u4_tbl(l_Top_Org_Index).prior_sch_util_hours,0);
5582 		l_prior_conf_billable_hours   	  := l_prior_conf_billable_hours   	  +	nvl(l_u4_tbl(l_Top_Org_Index).prior_conf_billable_hours,0);
5583 		l_prior_conf_nonbillable_hours	  := l_prior_conf_nonbillable_hours	  +	nvl(l_u4_tbl(l_Top_Org_Index).prior_conf_nonbillable_hours,0);
5584 		l_prior_actual_capacity_hours 	  := l_prior_actual_capacity_hours 	  +	nvl(l_u4_tbl(l_Top_Org_Index).prior_actual_capacity_hours,0);
5585 		l_prior_actual_util_hours         := l_prior_actual_util_hours        + nvl(l_u4_tbl(l_Top_Org_Index).prior_actual_util_hours,0);
5586 		l_prior_actual_denominator        := l_prior_actual_denominator       + nvl(l_u4_tbl(l_Top_Org_Index).prior_actual_denominator,0);
5587 		l_prior_scheduled_denominator     := l_prior_scheduled_denominator    +	nvl(l_u4_tbl(l_Top_Org_Index).prior_scheduled_denominator,0);
5588 
5589     END IF;
5590 
5591         IF l_u4_tbl.COUNT > 0 THEN
5592           FOR i in 1..l_u4_tbl.COUNT LOOP
5593 
5594             IF l_u4_tbl.EXISTS(i) THEN
5595 
5596                --Capacity is denormalized when context is view by UC or WT
5597                IF p_view_by = 'UC' OR p_view_by = 'WT' THEN
5598 
5599                  /*Bug 2836444*/
5600 
5601                  l_scheduled_denominator       := l_u4_tbl(i).SCHEDULED_DENOMINATOR;
5602                  l_prior_scheduled_denominator := l_u4_tbl(i).PRIOR_SCHEDULED_DENOMINATOR;
5603                  l_exp_ac_denominator          := l_u4_tbl(i).EXP_AC_DENOMINATOR;
5604                  l_exp_sch_denominator         := l_u4_tbl(i).EXP_SCH_DENOMINATOR;
5605                  l_expected_denominator        := l_u4_tbl(i).EXPECTED_DENOMINATOR;
5606                  l_prior_actual_denominator    := l_u4_tbl(i).PRIOR_ACTUAL_DENOMINATOR;
5607 
5608                  /*Bug 2836477*/
5609                  l_scheduled_capacity_hours    := null;
5610                  l_expected_capacity_hours     := null;
5611                  l_unassigned_hours            := null;
5612 
5613                END IF;
5614 
5615                l_u4_tbl(i).PJI_REP_TOTAL_1 := l_scheduled_hours;
5616                l_u4_tbl(i).PJI_REP_TOTAL_2 := l_scheduled_capacity_hours;
5617                l_u4_tbl(i).PJI_REP_TOTAL_3 := l_scheduled_util_hours;
5618                l_u4_tbl(i).PJI_REP_TOTAL_4 := l_provisional_hours;
5619                l_u4_tbl(i).PJI_REP_TOTAL_5 := l_expected_hours;
5620                l_u4_tbl(i).PJI_REP_TOTAL_6 := l_expected_capacity_hours;
5621                l_u4_tbl(i).PJI_REP_TOTAL_7 := l_prior_scheduled_hours;
5622 
5623 
5624                IF nvl(l_scheduled_denominator,0) <> 0 THEN
5625 
5626                  l_u4_tbl(i).PJI_REP_TOTAL_8      := (l_scheduled_util_hours/l_scheduled_denominator)*100;
5627                  l_u4_tbl(i).PJI_REP_TOTAL_9      := (l_conf_billable_hours/l_scheduled_denominator)*100;
5628                  l_u4_tbl(i).PJI_REP_TOTAL_10     := (l_conf_nonbillable_hours/l_scheduled_denominator)*100;
5629                  l_u4_tbl(i).PJI_REP_TOTAL_11     := (l_unassigned_hours/l_scheduled_denominator)*100;
5630                  l_u4_tbl(i).PJI_REP_TOTAL_12     := (l_training_hours/l_scheduled_denominator)*100;
5631                  l_u4_tbl(i).PJI_REP_TOTAL_13     := (l_prov_billable_hours/l_scheduled_denominator)*100;
5632                  l_u4_tbl(i).PJI_REP_TOTAL_14     := (l_prov_nonbillable_hours/l_scheduled_denominator)*100;
5633 
5634                END IF;
5635 
5636                IF nvl(l_prior_scheduled_denominator,0) <> 0 THEN
5637 
5638                  l_u4_tbl(i).PJI_REP_TOTAL_15     := (l_prior_sch_util_hours/l_prior_scheduled_denominator)*100;
5639                  l_u4_tbl(i).PJI_REP_TOTAL_16     := (l_prior_conf_billable_hours/l_prior_scheduled_denominator)*100;
5640                  l_u4_tbl(i).PJI_REP_TOTAL_17     := (l_prior_conf_nonbillable_hours/l_prior_scheduled_denominator)*100;
5641 
5642                END IF;
5643 
5644                IF nvl(l_exp_ac_denominator,0) <> 0 THEN
5645                  l_u4_tbl(i).PJI_REP_TOTAL_18     := (l_exp_ac_util_hours/l_exp_ac_denominator)*100;
5646                END IF;
5647 
5648                IF nvl(l_exp_sch_denominator,0) <> 0 THEN
5649                  l_u4_tbl(i).PJI_REP_TOTAL_19     := (l_exp_sch_util_hours/l_exp_sch_denominator)*100;
5650                  l_u4_tbl(i).PJI_REP_TOTAL_21     := (l_prov_util_hours /l_exp_sch_denominator)*100;
5651 
5652                END IF;
5653 
5654                IF nvl(l_expected_denominator,0) <> 0 THEN
5655                  l_u4_tbl(i).PJI_REP_TOTAL_20     := (l_expected_util_hours/l_expected_denominator)*100;
5656                  l_u4_tbl(i).PJI_REP_TOTAL_22     := (l_expected_total_util_hours/l_expected_denominator)*100;
5657 
5658                END IF;
5659 
5660                IF nvl(l_prior_actual_denominator,0) <> 0 THEN
5661                  l_u4_tbl(i).PJI_REP_TOTAL_23     := (l_prior_actual_util_hours/l_prior_actual_denominator)*100;
5662                END IF;
5663 
5664             END IF; -- l_u4_tbl.EXISTS(i)
5665 
5666           END LOOP;
5667         END IF; --l_u4_tbl.COUNT
5668 
5669         --Delete record for top org if all values are 0 or null
5670 
5671         IF l_Top_Org_Index is not null THEN
5672         IF  nvl(l_u4_tbl(l_Top_Org_Index).SCHEDULED_HOURS,0) = 0 AND
5673 			nvl(l_u4_tbl(l_Top_Org_Index).SCHEDULED_CAPACITY_HOURS,0) = 0 AND
5674 			nvl(l_u4_tbl(l_Top_Org_Index).SCHEDULED_UTIL_HOURS,0) = 0 AND
5675 			nvl(l_u4_tbl(l_Top_Org_Index).PROVISIONAL_HOURS,0) = 0 AND
5676 			nvl(l_u4_tbl(l_Top_Org_Index).EXPECTED_HOURS,0) = 0 AND
5677 			nvl(l_u4_tbl(l_Top_Org_Index).EXPECTED_CAPACITY_HOURS,0) = 0 AND
5678 			nvl(l_u4_tbl(l_Top_Org_Index).PRIOR_SCHEDULED_HOURS,0) = 0 AND
5679 			nvl(l_u4_tbl(l_Top_Org_Index).SCH_UTIL_PERCENT,0) = 0 AND
5680 			nvl(l_u4_tbl(l_Top_Org_Index).BILL_UTIL_PERCENT,0) = 0 AND
5681 			nvl(l_u4_tbl(l_Top_Org_Index).NONBILL_UTIL_PERCENT,0) = 0 AND
5682 			nvl(l_u4_tbl(l_Top_Org_Index).UNASSIGNED_PERCENT,0) = 0 AND
5683 			nvl(l_u4_tbl(l_Top_Org_Index).TRAINING_PERCENT,0) = 0 AND
5684 			nvl(l_u4_tbl(l_Top_Org_Index).PROV_BILL_PERCENT,0) = 0 AND
5685 			nvl(l_u4_tbl(l_Top_Org_Index).PROV_NONBILL_PERCENT,0) = 0 AND
5686 			nvl(l_u4_tbl(l_Top_Org_Index).PRIOR_SCH_UTIL_PERCENT,0) = 0 AND
5687 			nvl(l_u4_tbl(l_Top_Org_Index).PRIOR_BILL_UTIL_PERCENT,0) = 0 AND
5688 			nvl(l_u4_tbl(l_Top_Org_Index).PRIOR_NONBILL_UTIL_PERCENT,0) = 0 AND
5689 			nvl(l_u4_tbl(l_Top_Org_Index).EXP_ACT_UTIL_PERCENT,0) = 0 AND
5690 			nvl(l_u4_tbl(l_Top_Org_Index).EXP_SCH_UTIL_PERCENT,0) = 0 AND
5691 			nvl(l_u4_tbl(l_Top_Org_Index).EXP_UTIL_PERCENT,0) = 0 AND
5692             nvl(l_u4_tbl(l_Top_Org_Index).PROV_SCH_UTIL_PERCENT,0) = 0 AND
5693 			nvl(l_u4_tbl(l_Top_Org_Index).EXP_TOTAL_UTIL_PERCENT,0) = 0 AND
5694 			nvl(l_u4_tbl(l_Top_Org_Index).PRIOR_ACT_UTIL_PERCENT,0) = 0
5695          THEN
5696             l_u4_tbl.DELETE(l_Top_Org_Index);
5697          END IF;
5698          END IF;
5699 
5700    COMMIT;
5701    RETURN l_u4_tbl;
5702 
5703 END PLSQLDriver_U4;
5704 
5705 
5706 
5707 
5708 /*****************************************************************************
5709  *
5710  * The functions for report U6: Project Actual Utilization Detail
5711  *
5712  *****************************************************************************/
5713 
5714 PROCEDURE Get_SQL_PJI_REP_U6(p_page_parameter_tbl IN BIS_PMV_PAGE_PARAMETER_TBL
5715                              , x_PMV_Sql OUT NOCOPY VARCHAR2
5716                              , x_PMV_Output OUT NOCOPY BIS_QUERY_ATTRIBUTES_TBL)
5717  IS
5718 BEGIN
5719 
5720     PJI_PMV_ENGINE.Generate_SQL(P_PAGE_PARAMETER_TBL  => p_page_parameter_tbl
5721                                ,P_SELECT_LIST         =>
5722                                ' FACT.RESOURCE_NAME  "VIEWBY",
5723                                  FACT.ACTUAL_HOURS  "PJI_REP_MSR_2",
5724 		                         FACT.CAPACITY_HOURS  "PJI_REP_MSR_3",
5725 		                         FACT.MISSING_HOURS  "PJI_REP_MSR_4",
5726 		                         FACT.BILLABLE_HOURS  "PJI_REP_MSR_5",
5727 		                         FACT.NONBILLABLE_HOURS  "PJI_REP_MSR_6",
5728 		                         FACT.TRAINING_HOURS  "PJI_REP_MSR_7",
5729 		                         FACT.ACT_UTIL_PERCENT  "PJI_REP_MSR_8",
5730 		                         FACT.BILL_UTIL_PERCENT  "PJI_REP_MSR_9",
5731 		                         FACT.NONBILL_UTIL_PERCENT  "PJI_REP_MSR_10",
5732 		                         FACT.TRAINING_PERCENT  "PJI_REP_MSR_11",
5733 		                         FACT.ACTUAL_WEIGHTED_HOURS  "PJI_REP_MSR_20",
5734 		                         FACT.BILLABLE_WEIGHTED_HOURS  "PJI_REP_MSR_21",
5735 		                         FACT.UTIL_PERCENT_DENOM_HOURS  "PJI_REP_MSR_22",
5736 		                         FACT.RESOURCE_ID  "PJI_REP_MSR_24",
5737                                  FACT.PJI_REP_TOTAL_1 "PJI_REP_TOTAL_1",
5738 		                         FACT.PJI_REP_TOTAL_2 "PJI_REP_TOTAL_2",
5739 		                         FACT.PJI_REP_TOTAL_3 "PJI_REP_TOTAL_3",
5740 		                         FACT.PJI_REP_TOTAL_4 "PJI_REP_TOTAL_4",
5741 		                         FACT.PJI_REP_TOTAL_5 "PJI_REP_TOTAL_5",
5742 		                         FACT.PJI_REP_TOTAL_6 "PJI_REP_TOTAL_6",
5743 		                         FACT.PJI_REP_TOTAL_7 "PJI_REP_TOTAL_7",
5744 		                         FACT.PJI_REP_TOTAL_8 "PJI_REP_TOTAL_8",
5745 		                         FACT.PJI_REP_TOTAL_9 "PJI_REP_TOTAL_9",
5746 		                         FACT.PJI_REP_TOTAL_10 "PJI_REP_TOTAL_10" '
5747                                ,P_SQL_STATEMENT       => x_PMV_Sql
5748                                ,P_PMV_OUTPUT          => x_PMV_Output,
5749                                 P_REGION_CODE         => 'PJI_REP_U6',
5750                                 P_PLSQL_DRIVER        => 'PJI_PMV_UTLZ.PLSQLDriver_PJI_REP_U6',
5751                                 P_PLSQL_DRIVER_PARAMS =>   '<<ORGANIZATION+FII_OPERATING_UNITS>>, ' ||
5752                                                            '<<ORGANIZATION+PJI_ORGANIZATIONS>>, ' ||
5753                                                            '<<AS_OF_DATE>>, ' ||
5754                                                            '<<PERIOD_TYPE>>, ' ||
5755                                        '<<PROJECT WORK TYPE+PJI_UTIL_CATEGORIES>>, ' ||
5756                                        '<<PROJECT WORK TYPE+PJI_WORK_TYPES>>, ' ||
5757                                        '<<PROJECT JOB LEVEL+PJI_JOB_LEVELS>>, ' ||
5758                                        '<<VIEW_BY>>');
5759 END Get_SQL_PJI_REP_U6;
5760 
5761 
5762 FUNCTION PLSQLDriver_PJI_REP_U6 (
5763     p_operating_unit		IN VARCHAR2 DEFAULT NULL
5764   , p_organization		IN VARCHAR2
5765   , p_as_of_date		IN NUMBER
5766   , p_period_type 		IN VARCHAR2
5767   , p_util_categories 		IN VARCHAR2 DEFAULT NULL
5768   , p_work_type                 IN VARCHAR2 DEFAULT NULL
5769   , p_job_level 		IN VARCHAR2 DEFAULT NULL
5770   , p_view_by                   IN VARCHAR2
5771 )RETURN PJI_REP_U6_TBL
5772 IS
5773 PRAGMA AUTONOMOUS_TRANSACTION;
5774 l_u6_tbl		PJI_REP_U6_TBL:=PJI_REP_U6_TBL();
5775 l_job_level_param               VARCHAR2(1);
5776 l_util_categories_param         VARCHAR2(1);
5777 l_util_percent_denom_prof       VARCHAR(25);
5778 l_dft_util_percent_denom_prof   VARCHAR(25) := 'CAPACITY';
5779 l_labor_unit                    VARCHAR2(40);
5780 l_actual_hours                  NUMBER := 0;
5781 l_capacity_hours                NUMBER := 0;
5782 l_missing_hours                 NUMBER := 0;
5783 l_billable_hours                NUMBER := 0;
5784 l_nonbillable_hours             NUMBER := 0;
5785 l_training_hours                NUMBER := 0;
5786 l_actual_weighted_hours         NUMBER := 0;
5787 l_billable_weighted_hours       NUMBER := 0;
5788 l_nonbillable_weighted_hours    NUMBER := 0;
5789 l_util_percent_denom_hours      NUMBER := 0;
5790 
5791 BEGIN
5792  /*
5793   * Place a call to all the parse API's which parse the parameters
5794   * passed by PMV and populate all the temporary tables.
5795   */
5796   PJI_PMV_ENGINE.Convert_Operating_Unit(p_operating_unit, p_view_by);
5797   PJI_PMV_ENGINE.Convert_Organization(p_organization, p_view_by);
5798   PJI_PMV_ENGINE.Convert_Time(p_as_of_date, p_period_type, p_view_by);
5799 
5800   l_util_categories_param := PJI_PMV_ENGINE.convert_util_category(p_work_type, p_util_categories, p_view_by);
5801   l_job_level_param       := PJI_PMV_ENGINE.convert_job_level(null, p_job_level, p_view_by);
5802 
5803  /*
5804   * Get Utilization percentage denominator profile value
5805   */
5806   BEGIN
5807     SELECT fnd_profile.value('PA_ORG_UTIL_DEF_CALC_METHOD')
5808     INTO l_util_percent_denom_prof
5809     from dual;
5810 
5811     EXCEPTION WHEN NO_DATA_FOUND THEN
5812         l_util_percent_denom_prof := l_dft_util_percent_denom_prof;
5813   END;
5814 
5815  /*
5816   * Get report labor unit
5817   */
5818   BEGIN
5819      select report_labor_units
5820      into l_labor_unit
5821      from pji_system_settings;
5822 
5823   EXCEPTION WHEN OTHERS THEN
5824          l_labor_unit := null;
5825   END;
5826 
5827 
5828  /*
5829   * determine the fact tables you choose to run the database query on.
5830   *
5831   * If util_categories=null and job_level=null
5832   */
5833 
5834   IF l_util_categories_param = 'N' AND l_job_level_param = 'N' THEN
5835 
5836      SELECT PJI_REP_U6(      resource_name
5837                            , resource_id
5838 	  		               , SUM(actual_hours)
5839 			               , SUM(capacity_hours)
5840                            , SUM(missing_hours)
5841                            , SUM(billable_hours)
5842                            , SUM(nonbillable_hours)
5843                            , SUM(training_hours)
5844                            , SUM(actual_weighted_hours)
5845                            , SUM(billable_weighted_hours)
5846                            , SUM(nonbillable_weighted_hours)
5847                            , SUM(DECODE(l_util_percent_denom_prof,'CAPACITY',capacity_hours,actual_hours)) ,
5848                              null,null,null,null,null,null,
5849                              null,null,null,null,null,null,
5850                              null,null)
5851      /* Bug 3515594 */
5852      BULK COLLECT INTO l_u6_tbl
5853      FROM
5854         (
5855         SELECT /*+ ORDERED */
5856            resd.resource_name                           resource_name
5857           ,fct.person_id                               resource_id
5858           ,fct.total_hrs_a / decode(l_labor_unit, 'DAYS', imp.FTE_DAY, 'WEEKS',imp.FTE_WEEK, 1)    actual_hours
5859           ,(fct.capacity_hrs-NVL(fct.reduce_capacity_hrs_a,0))
5860               / decode(l_labor_unit, 'DAYS', imp.FTE_DAY, 'WEEKS',imp.FTE_WEEK, 1)                 capacity_hours
5861           ,fct.missing_hrs_a / decode(l_labor_unit, 'DAYS', imp.FTE_DAY, 'WEEKS',imp.FTE_WEEK, 1)  missing_hours
5862           ,fct.bill_hrs_a  / decode(l_labor_unit, 'DAYS', imp.FTE_DAY, 'WEEKS',imp.FTE_WEEK, 1)    billable_hours
5863           ,(fct.total_hrs_a-bill_hrs_a)
5864              / decode(l_labor_unit, 'DAYS', imp.FTE_DAY, 'WEEKS',imp.FTE_WEEK, 1)                  nonbillable_hours
5865           ,fct.training_hrs_a / decode(l_labor_unit, 'DAYS', imp.FTE_DAY, 'WEEKS',imp.FTE_WEEK, 1) training_hours
5866           ,fct.total_wtd_org_hrs_a
5867              / decode(l_labor_unit, 'DAYS', imp.FTE_DAY, 'WEEKS',imp.FTE_WEEK, 1)                  actual_weighted_hours
5868           ,fct.bill_wtd_org_hrs_a
5869              / decode(l_labor_unit, 'DAYS', imp.FTE_DAY, 'WEEKS',imp.FTE_WEEK, 1)                  billable_weighted_hours
5870           ,(fct.total_wtd_org_hrs_a-fct.bill_wtd_org_hrs_a)
5871              / decode(l_labor_unit, 'DAYS', imp.FTE_DAY, 'WEEKS',imp.FTE_WEEK, 1)                  nonbillable_weighted_hours
5872         FROM
5873            pji_pmv_orgz_dim_tmp horg
5874           ,pji_pmv_time_dim_tmp time
5875           ,pji_rm_res_f         fct
5876           ,pji_pmv_org_dim_tmp  hou
5877           ,pa_resources_denorm  resd
5878           ,pa_implementations_all imp
5879         WHERE
5880            fct.expenditure_org_id = hou.id
5881            AND fct.expenditure_organization_id = horg.id
5882            AND fct.time_id = time.id
5883            AND fct.period_type_id = time.period_type
5884            AND fct.calendar_type  = decode(fct.period_type_id,1, 'C',time.calendar_type)
5885            AND time.id is not null
5886            AND fct.person_id = resd.person_id
5887            AND resd.resource_organization_id = horg.id
5888            AND TO_DATE(p_as_of_date,'j') between resd.resource_effective_start_date and
5889                resd.resource_effective_end_date
5890            AND hou.id = imp.org_id
5891         UNION ALL
5892         SELECT
5893            resd.resource_name  resource_name
5894           ,resd.person_id      resource_id
5895           ,0                   actual_hours
5896           ,0                   capacity_hours
5897           ,0                   missing_hours
5898           ,0                   billable_hours
5899           ,0                   nonbillable_hours
5900           ,0                   training_hours
5901           ,0                   actual_weighted_hours
5902           ,0                   billable_weighted_hours
5903           ,0                   nonbillable_weighted_hours
5904         FROM
5905            pa_resources_denorm resd
5906           ,pji_pmv_orgz_dim_tmp horg
5907         WHERE
5908            resd.resource_organization_id = horg.id
5909            AND resd.utilization_flag = 'Y'
5910            AND TO_DATE(p_as_of_date,'j') between resd.resource_effective_start_date and
5911                resd.resource_effective_end_date
5912         )
5913      GROUP BY resource_name, resource_id;
5914 
5915 
5916  /*
5917   * If util_categories=null and job_level<>null
5918   */
5919   ELSIF l_util_categories_param = 'N' AND l_job_level_param = 'Y' THEN
5920 
5921      SELECT PJI_REP_U6(      resource_name
5922                            , resource_id
5923 	  		               , SUM(actual_hours)
5924 			               , SUM(capacity_hours)
5925                            , SUM(missing_hours)
5926                            , SUM(billable_hours)
5927                            , SUM(nonbillable_hours)
5928                            , SUM(training_hours)
5929                            , SUM(actual_weighted_hours)
5930                            , SUM(billable_weighted_hours)
5931                            , SUM(nonbillable_weighted_hours)
5932                            , SUM(DECODE(l_util_percent_denom_prof,'CAPACITY',capacity_hours,actual_hours)) ,
5933                              null,null,null,null,null,null,
5934                              null,null,null,null,null,null,
5935                              null,null)
5936      /* Bug 3515594 */
5937      BULK COLLECT INTO l_u6_tbl
5938      FROM
5939         (
5940         SELECT /*+ ORDERED */
5941            resd.resource_name                           resource_name
5942           ,fct.person_id                                resource_id
5943           ,fct.total_hrs_a / decode(l_labor_unit, 'DAYS', imp.FTE_DAY, 'WEEKS',imp.FTE_WEEK, 1)    actual_hours
5944           ,(fct.capacity_hrs-NVL(fct.reduce_capacity_hrs_a,0))
5945               / decode(l_labor_unit, 'DAYS', imp.FTE_DAY, 'WEEKS',imp.FTE_WEEK, 1)                 capacity_hours
5946           ,fct.missing_hrs_a / decode(l_labor_unit, 'DAYS', imp.FTE_DAY, 'WEEKS',imp.FTE_WEEK, 1)  missing_hours
5947           ,fct.bill_hrs_a  / decode(l_labor_unit, 'DAYS', imp.FTE_DAY, 'WEEKS',imp.FTE_WEEK, 1)    billable_hours
5948           ,(fct.total_hrs_a-bill_hrs_a)
5949              / decode(l_labor_unit, 'DAYS', imp.FTE_DAY, 'WEEKS',imp.FTE_WEEK, 1)                  nonbillable_hours
5950           ,fct.training_hrs_a / decode(l_labor_unit, 'DAYS', imp.FTE_DAY, 'WEEKS',imp.FTE_WEEK, 1) training_hours
5951           ,fct.total_wtd_org_hrs_a
5952              / decode(l_labor_unit, 'DAYS', imp.FTE_DAY, 'WEEKS',imp.FTE_WEEK, 1)                  actual_weighted_hours
5953           ,fct.bill_wtd_org_hrs_a
5954              / decode(l_labor_unit, 'DAYS', imp.FTE_DAY, 'WEEKS',imp.FTE_WEEK, 1)                  billable_weighted_hours
5955           ,(fct.total_wtd_org_hrs_a-fct.bill_wtd_org_hrs_a)
5956              / decode(l_labor_unit, 'DAYS', imp.FTE_DAY, 'WEEKS',imp.FTE_WEEK, 1)                  nonbillable_weighted_hours
5957         FROM
5958            pji_pmv_orgz_dim_tmp horg
5959           ,pji_pmv_time_dim_tmp time
5960           ,pji_pmv_jb_dim_tmp   jbt
5961           ,pji_rm_res_f         fct
5962           ,pji_pmv_org_dim_tmp  hou
5963           ,pa_resources_denorm  resd
5964           ,pa_implementations_all imp
5965         WHERE
5966                fct.expenditure_org_id = hou.id
5967            AND fct.expenditure_organization_id = horg.id
5968            AND fct.time_id = time.id
5969            AND fct.period_type_id = time.period_type
5970            AND fct.calendar_type  = decode(fct.period_type_id,1, 'C',time.calendar_type)
5971            AND time.id is not null
5972            AND fct.job_id = jbt.id
5973            AND fct.person_id = resd.person_id
5974            AND resd.resource_organization_id = horg.id
5975            AND TO_DATE(p_as_of_date,'j') between resd.resource_effective_start_date and
5976                resd.resource_effective_end_date
5977            AND hou.id = imp.org_id
5978         UNION ALL
5979         SELECT
5980            resource_name      resource_name
5981           ,resd.person_id     resource_id
5982           ,0                  actual_hours
5983           ,0                  capacity_hours
5984           ,0                  missing_hours
5985           ,0                  billable_hours
5986           ,0                  nonbillable_hours
5987           ,0                  training_hours
5988           ,0                  actual_weighted_hours
5989           ,0                  billable_weighted_hours
5990           ,0                  nonbillable_weighted_hours
5991         FROM
5992            pa_resources_denorm   resd
5993           ,pji_pmv_orgz_dim_tmp  horg
5994           ,pji_pmv_jb_dim_tmp    jbt
5995         WHERE
5996            resd.resource_organization_id = horg.id
5997            AND resd.utilization_flag = 'Y'
5998            AND resd.job_id = jbt.id
5999            AND TO_DATE(p_as_of_date,'j') between resd.resource_effective_start_date and
6000                resd.resource_effective_end_date
6001         )
6002      GROUP BY resource_name, resource_id;
6003 
6004  /*
6005   * If util_categories<>null and job_level=null
6006   */
6007   ELSIF l_util_categories_param = 'Y' AND l_job_level_param = 'N' THEN
6008 
6009      SELECT PJI_REP_U6     ( resource_name
6010                            , resource_id
6011 	  		               , SUM(actual_hours)
6012                            , SUM(capacity_hours-act_reduce_capacity_hours)
6013                            , SUM(missing_hours)
6014                            , SUM(billable_hours)
6015                            , SUM(nonbillable_hours)
6016                            , SUM(training_hours)
6017                            , SUM(actual_weighted_hours)
6018                            , SUM(billable_weighted_hours)
6019                            , SUM(nonbillable_weighted_hours)
6020                            , SUM(DECODE(l_util_percent_denom_prof,'CAPACITY',capacity_hours-act_reduce_capacity_hours,
6021                                  actual_hours)) ,
6022                              null,null,null,null,null,null,
6023                              null,null,null,null,null,null,
6024                              null,null)
6025      /* Bug 3515594 */
6026      BULK COLLECT INTO l_u6_tbl
6027      FROM
6028         (
6029         SELECT /*+ ORDERED */
6030             resource_name                                                               resource_name
6031            ,fct.person_id                                                               resource_id
6032            ,fct.total_hrs_a                                                             actual_hours
6033            ,0                                                                           capacity_hours
6034            ,0                                                                           act_reduce_capacity_hours
6035            ,null                                                                        missing_hours
6036            ,fct.bill_hrs_a
6037               / decode(l_labor_unit, 'DAYS', imp.FTE_DAY, 'WEEKS',imp.FTE_WEEK, 1)      billable_hours
6038            ,(fct.total_hrs_a-fct.bill_hrs_a)
6039               / decode(l_labor_unit, 'DAYS', imp.FTE_DAY, 'WEEKS',imp.FTE_WEEK, 1)      nonbillable_hours
6040            ,decode(wtb.training_flag,'Y',fct.total_hrs_a, 0)
6041               / decode(l_labor_unit, 'DAYS', imp.FTE_DAY, 'WEEKS',imp.FTE_WEEK, 1)      training_hours
6042            ,fct.total_hrs_a * (wtb.org_utilization_percentage/100)
6043               / decode(l_labor_unit, 'DAYS', imp.FTE_DAY, 'WEEKS',imp.FTE_WEEK, 1)      actual_weighted_hours
6044            ,fct.bill_hrs_a * (wtb.org_utilization_percentage/100)
6045               / decode(l_labor_unit, 'DAYS', imp.FTE_DAY, 'WEEKS',imp.FTE_WEEK, 1)      billable_weighted_hours
6046            ,(fct.total_hrs_a-fct.bill_hrs_a)
6047             *wtb.org_utilization_percentage/100 / decode(l_labor_unit, 'DAYS', imp.FTE_DAY, 'WEEKS',imp.FTE_WEEK, 1)
6048                                                                                         nonbillable_weighted_hours
6049         FROM
6050             pji_pmv_orgz_dim_tmp  horg
6051            ,pji_pmv_time_dim_tmp  time
6052            ,pji_pmv_wt_dim_tmp    wt
6053            ,pji_rm_res_wt_f       fct
6054            ,pji_pmv_org_dim_tmp   hou
6055            ,pa_work_types_b       wtb
6056            ,pa_resources_denorm   resd
6057            ,pa_implementations_all imp
6058         WHERE
6059             fct.expenditure_org_id = hou.id
6060             AND fct.expenditure_organization_id = horg.id
6061             AND fct.time_id = time.id
6062             AND fct.period_type_id = time.period_type
6063             AND fct.calendar_type  = decode(fct.period_type_id,1, 'C',time.calendar_type)
6064             AND time.id is not null
6065             AND fct.work_type_id = wt.id
6066             AND wtb.work_type_id = wt.id
6067             AND fct.person_id = resd.person_id
6068             AND resd.resource_organization_id = horg.id
6069             AND TO_DATE(p_as_of_date,'j') between resd.resource_effective_start_date and
6070                 resd.resource_effective_end_date
6071             AND hou.id = imp.org_id
6072         UNION ALL
6073         SELECT
6074            resource_name      resource_name
6075           ,resd.person_id     resource_id
6076           ,0                  actual_hours
6077           ,0                  capacity_hours
6078           ,0                  act_reduce_capacity_hours
6079           ,null               missing_hours
6080           ,0                  billable_hours
6081           ,0                  nonbillable_hours
6082           ,0                  training_hours
6083           ,0                  actual_weighted_hours
6084           ,0                  billable_weighted_hours
6085           ,0                  nonbillable_weighted_hours
6086         FROM
6087            pa_resources_denorm resd
6088           ,pji_pmv_orgz_dim_tmp horg
6089         WHERE
6090            resd.resource_organization_id = horg.id
6091            AND resd.utilization_flag = 'Y'
6092            AND TO_DATE(p_as_of_date,'j') between resd.resource_effective_start_date and
6093                resd.resource_effective_end_date
6094 
6095         UNION ALL  -- added for current year capacity_hours
6096         SELECT  /*+ ORDERED */
6097            resource_name      resource_name
6098           ,resd.person_id     resource_id
6099           ,0                  actual_hours
6100           ,capacity_hrs / decode(l_labor_unit, 'DAYS', imp.FTE_DAY, 'WEEKS',imp.FTE_WEEK, 1)
6101                               capacity_hours
6102           ,reduce_capacity_hrs_a / decode(l_labor_unit, 'DAYS', imp.FTE_DAY, 'WEEKS',imp.FTE_WEEK, 1)
6103                               act_reduce_capacity_hours
6104           ,missing_hrs_a      missing_hours
6105           ,0                  billable_hours
6106           ,0                  nonbillable_hours
6107           ,0                  training_hours
6108           ,0                  actual_weighted_hours
6109           ,0                  billable_weighted_hours
6110           ,0                  nonbillable_weighted_hours
6111         FROM
6112             pji_pmv_orgz_dim_tmp  horg
6113            ,pji_pmv_time_dim_tmp  time
6114            ,pji_rm_res_f          fct
6115            ,pji_pmv_org_dim_tmp   hou
6116            ,pa_resources_denorm   resd
6117            ,pa_implementations_all imp
6118         WHERE
6119             fct.expenditure_org_id = hou.id
6120             AND fct.expenditure_organization_id = horg.id
6121             AND fct.time_id = time.id
6122             AND fct.period_type_id = time.period_type
6123             AND fct.calendar_type  = decode(fct.period_type_id,1, 'C',time.calendar_type)
6124             AND time.id is not null
6125             AND fct.person_id = resd.person_id
6126             AND resd.resource_organization_id = horg.id
6127             AND TO_DATE(p_as_of_date,'j') between resd.resource_effective_start_date and
6128                 resd.resource_effective_end_date
6129             AND hou.id = imp.org_id
6130         )
6131      GROUP BY resource_name, resource_id;
6132 
6133  /*
6134   * If util_categories<>null and job_level<>null
6135   */
6136   ELSIF l_util_categories_param = 'Y' AND l_job_level_param = 'Y' THEN
6137 
6138      SELECT PJI_REP_U6     ( resource_name
6139                            , resource_id
6140 	  		   , SUM(actual_hours)
6141                            , SUM(capacity_hours-act_reduce_capacity_hours)
6142                            , SUM(missing_hours)
6143                            , SUM(billable_hours)
6144                            , SUM(nonbillable_hours)
6145                            , SUM(training_hours)
6146                            , SUM(actual_weighted_hours)
6147                            , SUM(billable_weighted_hours)
6148                            , SUM(nonbillable_weighted_hours)
6149                            , SUM(DECODE(l_util_percent_denom_prof,'CAPACITY',capacity_hours-act_reduce_capacity_hours,
6150                                  actual_hours)) ,
6151                              null,null,null,null,null,null,
6152                              null,null,null,null,null,null,
6153                              null,null)
6154      /* Bug 3515594 */
6155      BULK COLLECT INTO l_u6_tbl
6156      FROM
6157         (
6158         SELECT /*+ ORDERED */
6159             resd.resource_name                                                         resource_name
6160            ,fct.person_id                                                              resource_id
6161            ,fct.total_hrs_a                                                            actual_hours
6162            ,0                                                                          capacity_hours
6163            ,0                                                                          act_reduce_capacity_hours
6164            ,null                                                                       missing_hours
6165            ,fct.bill_hrs_a
6166               / decode(l_labor_unit, 'DAYS', imp.FTE_DAY, 'WEEKS',imp.FTE_WEEK, 1)     billable_hours
6167            ,(fct.total_hrs_a - fct.bill_hrs_a)
6168               / decode(l_labor_unit, 'DAYS', imp.FTE_DAY, 'WEEKS',imp.FTE_WEEK, 1)     nonbillable_hours
6169            ,decode(wtb.training_flag,'Y',fct.total_hrs_a, 0)
6170               / decode(l_labor_unit, 'DAYS', imp.FTE_DAY, 'WEEKS',imp.FTE_WEEK, 1)     training_hours
6171            ,fct.total_hrs_a * (wtb.org_utilization_percentage/100)
6172               / decode(l_labor_unit, 'DAYS', imp.FTE_DAY, 'WEEKS',imp.FTE_WEEK, 1)     actual_weighted_hours
6173            ,fct.bill_hrs_a * (wtb.org_utilization_percentage/100)
6174               / decode(l_labor_unit, 'DAYS', imp.FTE_DAY, 'WEEKS',imp.FTE_WEEK, 1)     billable_weighted_hours
6175            ,(fct.total_hrs_a - fct.bill_hrs_a)
6176             *wtb.org_utilization_percentage/100 / decode(l_labor_unit, 'DAYS', imp.FTE_DAY, 'WEEKS',imp.FTE_WEEK, 1)
6177                                                                                        nonbillable_weighted_hours
6178         FROM
6179             pji_pmv_orgz_dim_tmp  horg
6180            ,pji_pmv_time_dim_tmp  time
6181            ,pji_pmv_wt_dim_tmp    wt
6182            ,pji_rm_res_wt_f       fct
6183            ,pji_pmv_jb_dim_tmp    jbt
6184            ,pji_pmv_org_dim_tmp   hou
6185            ,pa_work_types_b       wtb
6186            ,pa_resources_denorm   resd
6187            ,pa_implementations_all imp
6188         WHERE
6189             fct.expenditure_org_id = hou.id
6190             AND fct.expenditure_organization_id = horg.id
6191             AND fct.time_id = time.id
6192             AND fct.period_type_id = time.period_type
6193             AND fct.calendar_type  = decode(fct.period_type_id,1, 'C',time.calendar_type)
6194             AND time.id is not null
6195             AND fct.work_type_id = wt.id
6196             AND wtb.work_type_id = wt.id
6197             AND fct.job_id = jbt.id
6198             AND fct.person_id = resd.person_id
6199             AND resd.resource_organization_id = horg.id
6200             AND TO_DATE(p_as_of_date,'j') between resd.resource_effective_start_date and
6201                 resd.resource_effective_end_date
6202             AND hou.id = imp.org_id
6203         UNION ALL
6204         SELECT
6205            resd.resource_name resource_name
6206           ,resd.person_id     resource_id
6207           ,0                  actual_hours
6208           ,0                  capacity_hours
6209           ,0                  act_reduce_capacity_hours
6210           ,null               missing_hours
6211           ,0                  billable_hours
6212           ,0                  nonbillable_hours
6213           ,0                  training_hours
6214           ,0                  actual_weighted_hours
6215           ,0                  billable_weighted_hours
6216           ,0                  nonbillable_weighted_hours
6217         FROM
6218            pa_resources_denorm   resd
6219           ,pji_pmv_orgz_dim_tmp  horg
6220           ,pji_pmv_jb_dim_tmp    jbt
6221         WHERE
6222            resd.resource_organization_id = horg.id
6223            AND resd.utilization_flag = 'Y'
6224            AND resd.job_id = jbt.id
6225            AND TO_DATE(p_as_of_date,'j') between resd.resource_effective_start_date and
6226                resd.resource_effective_end_date
6227         UNION ALL  -- added for current year capacity_hours
6228 	/* Bug 3515594 */
6229         SELECT  /*+ ORDERED */
6230            resource_name      resource_name
6231           ,resd.person_id     resource_id
6232           ,0                  actual_hours
6233           ,capacity_hrs / decode(l_labor_unit, 'DAYS', imp.FTE_DAY, 'WEEKS',imp.FTE_WEEK, 1)
6234                               capacity_hours
6235           ,reduce_capacity_hrs_a / decode(l_labor_unit, 'DAYS', imp.FTE_DAY, 'WEEKS',imp.FTE_WEEK, 1)
6236                               act_reduce_capacity_hours
6237           ,missing_hrs_a      missing_hours
6238           ,0                  billable_hours
6239           ,0                  nonbillable_hours
6240           ,0                  training_hours
6241           ,0                  actual_weighted_hours
6242           ,0                  billable_weighted_hours
6243           ,0                  nonbillable_weighted_hours
6244         FROM
6245             pji_pmv_orgz_dim_tmp  horg
6246            ,pji_pmv_time_dim_tmp  time
6247            ,pji_pmv_jb_dim_tmp    jbt
6248            ,pji_rm_res_f          fct
6249            ,pji_pmv_org_dim_tmp   hou
6250            ,pa_resources_denorm   resd
6251            ,pa_implementations_all imp
6252         WHERE
6253             fct.expenditure_org_id = hou.id
6254             AND fct.expenditure_organization_id = horg.id
6255             AND fct.time_id = time.id
6256             AND fct.period_type_id = time.period_type
6257             AND fct.calendar_type  = decode(fct.period_type_id,1, 'C',time.calendar_type)
6258             AND time.id is not null
6259             AND fct.person_id = resd.person_id
6260             AND fct.job_id = jbt.id
6261             AND resd.resource_organization_id = horg.id
6262             AND TO_DATE(p_as_of_date,'j') between resd.resource_effective_start_date and
6263                 resd.resource_effective_end_date
6264             AND hou.id = imp.org_id
6265         )
6266      GROUP BY resource_name, resource_id;
6267 
6268   END IF;
6269 
6270   FOR i in 1..l_u6_tbl.COUNT
6271        LOOP
6272 
6273          l_actual_hours               := l_actual_hours                      + nvl(l_u6_tbl(i).actual_hours               ,0);
6274          l_capacity_hours             := l_capacity_hours                    + nvl(l_u6_tbl(i).capacity_hours             ,0);
6275          l_missing_hours              := l_missing_hours                     + nvl(l_u6_tbl(i).missing_hours              ,0);
6276          l_billable_hours             := l_billable_hours                    + nvl(l_u6_tbl(i).billable_hours             ,0);
6277          l_nonbillable_hours          := l_nonbillable_hours                 + nvl(l_u6_tbl(i).nonbillable_hours          ,0);
6278          l_training_hours             := l_training_hours                    + nvl(l_u6_tbl(i).training_hours             ,0);
6279          l_actual_weighted_hours      := l_actual_weighted_hours             + nvl(l_u6_tbl(i).actual_weighted_hours      ,0);
6280          l_billable_weighted_hours    := l_billable_weighted_hours           + nvl(l_u6_tbl(i).billable_weighted_hours    ,0);
6281          l_nonbillable_weighted_hours := l_nonbillable_weighted_hours        + nvl(l_u6_tbl(i).nonbillable_weighted_hours ,0);
6282          l_util_percent_denom_hours   := l_util_percent_denom_hours          + nvl(l_u6_tbl(i).util_percent_denom_hours   ,0);
6283 
6284 
6285          --Calculated columns processing is done below
6286          IF nvl(l_u6_tbl(i).util_percent_denom_hours,0) <> 0 THEN
6287            l_u6_tbl(i).act_util_percent     := 100 * (l_u6_tbl(i).actual_weighted_hours / l_u6_tbl(i).util_percent_denom_hours);
6288            l_u6_tbl(i).bill_util_percent    := 100 * (l_u6_tbl(i).billable_weighted_hours / l_u6_tbl(i).util_percent_denom_hours);
6289            l_u6_tbl(i).nonbill_util_percent := 100 * (l_u6_tbl(i).nonbillable_weighted_hours / l_u6_tbl(i).util_percent_denom_hours);
6290            l_u6_tbl(i).training_percent     := 100 * (l_u6_tbl(i).training_hours / l_u6_tbl(i).util_percent_denom_hours);
6291 
6292          ELSE
6293            l_u6_tbl(i).act_util_percent     := NULL;
6294 		   l_u6_tbl(i).bill_util_percent    := NULL;
6295 		   l_u6_tbl(i).nonbill_util_percent := NULL;
6296            l_u6_tbl(i).training_percent     := NULL;
6297          END IF;
6298 
6299    END LOOP;
6300 
6301    IF l_u6_tbl.COUNT > 0 THEN
6302    FOR i IN 1..l_u6_tbl.COUNT
6303 	LOOP
6304 
6305       IF l_u6_tbl.EXISTS(i) THEN
6306 
6307         l_u6_tbl(i).PJI_REP_TOTAL_1 := l_actual_hours     ;
6308         l_u6_tbl(i).PJI_REP_TOTAL_2 := l_capacity_hours   ;
6309         l_u6_tbl(i).PJI_REP_TOTAL_3 := l_missing_hours    ;
6310         l_u6_tbl(i).PJI_REP_TOTAL_4 := l_billable_hours   ;
6311         l_u6_tbl(i).PJI_REP_TOTAL_5 := l_nonbillable_hours;
6312         l_u6_tbl(i).PJI_REP_TOTAL_6 := l_training_hours   ;
6313 
6314 
6315         IF nvl(l_util_percent_denom_hours,0) <> 0 THEN
6316 
6317           l_u6_tbl(i).PJI_REP_TOTAL_7      := (l_actual_weighted_hours/l_util_percent_denom_hours)*100;
6318           l_u6_tbl(i).PJI_REP_TOTAL_8      := (l_billable_weighted_hours/l_util_percent_denom_hours)*100;
6319           l_u6_tbl(i).PJI_REP_TOTAL_9      := (l_nonbillable_weighted_hours/l_util_percent_denom_hours)*100;
6320           l_u6_tbl(i).PJI_REP_TOTAL_10      := (l_training_hours/l_util_percent_denom_hours)*100;
6321 
6322         END IF;
6323 
6324       END IF; -- l_u6_tbl.EXISTS(i)
6325 	END LOOP;
6326     END IF; --l_u6_tbl.COUNT > 0
6327 
6328 
6329  /*
6330   * Return the bulk collected table back to pmv.
6331   */
6332   COMMIT;
6333   RETURN l_u6_tbl;
6334 
6335 END PLSQLDriver_PJI_REP_U6;
6336 
6337 
6338 
6339 /*****************************************************************************
6340  *
6341  * The functions for report U7: Project Scheduled Utilization Detail
6342  *
6343  *****************************************************************************/
6344 PROCEDURE Get_SQL_PJI_REP_U7(p_page_parameter_tbl IN BIS_PMV_PAGE_PARAMETER_TBL
6345                              , x_PMV_Sql OUT NOCOPY VARCHAR2
6346                              , x_PMV_Output OUT NOCOPY BIS_QUERY_ATTRIBUTES_TBL)
6347  IS
6348 BEGIN
6349 
6350     PJI_PMV_ENGINE.Generate_SQL(P_PAGE_PARAMETER_TBL  => p_page_parameter_tbl
6351                                ,P_SELECT_LIST         =>
6352                                ' FACT.RESOURCE_NAME  "VIEWBY",
6353                                  FACT.SCHEDULED_HOURS  "PJI_REP_MSR_2",
6354                                  FACT.CAPACITY_HOURS  "PJI_REP_MSR_3",
6355                                  FACT.CONFIRMED_BILLABLE_HOURS  "PJI_REP_MSR_4",
6356                                  FACT.CONFIRMED_NONBILLABLE_HOURS  "PJI_REP_MSR_5",
6357                                  FACT.PROVISIONAL_BILLABLE_HOURS  "PJI_REP_MSR_6",
6358                                  FACT.PROVISIONAL_NONBILLABLE_HOURS  "PJI_REP_MSR_7",
6359                                  FACT.TRAINING_HOURS  "PJI_REP_MSR_12",
6360                                  FACT.SCH_UTIL_PERCENT  "PJI_REP_MSR_8",
6361                                  FACT.BILL_UTIL_PERCENT  "PJI_REP_MSR_9",
6362                                  FACT.NONBILL_UTIL_PERCENT  "PJI_REP_MSR_10",
6363                                  FACT.UNASSIGNED_PERCENT  "PJI_REP_MSR_13",
6364                                  FACT.TRAINING_PERCENT  "PJI_REP_MSR_11",
6365                                  FACT.CONFIRMED_WEIGHTED_HOURS  "PJI_REP_MSR_20",
6366                                  FACT.BILLABLE_CONF_WEIGHTED_HOURS  "PJI_REP_MSR_21",
6367                                  FACT.UTIL_PERCENT_DENOM_HOURS  "PJI_REP_MSR_22",
6368                                  FACT.UNASSIGNED_HOURS  "PJI_REP_MSR_23",
6369                                  FACT.RESOURCE_ID  "PJI_REP_MSR_24",
6370                                  FACT.PJI_REP_TOTAL_1 "PJI_REP_TOTAL_1",
6371                                  FACT.PJI_REP_TOTAL_2 "PJI_REP_TOTAL_2",
6372                                  FACT.PJI_REP_TOTAL_3 "PJI_REP_TOTAL_3",
6373                                  FACT.PJI_REP_TOTAL_4 "PJI_REP_TOTAL_4",
6374                                  FACT.PJI_REP_TOTAL_5 "PJI_REP_TOTAL_5",
6375                                  FACT.PJI_REP_TOTAL_6 "PJI_REP_TOTAL_6",
6376                                  FACT.PJI_REP_TOTAL_7 "PJI_REP_TOTAL_7",
6377                                  FACT.PJI_REP_TOTAL_8 "PJI_REP_TOTAL_8",
6378                                  FACT.PJI_REP_TOTAL_9 "PJI_REP_TOTAL_9",
6379                                  FACT.PJI_REP_TOTAL_10 "PJI_REP_TOTAL_10",
6380                                  FACT.PJI_REP_TOTAL_11 "PJI_REP_TOTAL_11",
6381                                  FACT.PJI_REP_TOTAL_12 "PJI_REP_TOTAL_12" '
6382                                ,P_SQL_STATEMENT       => x_PMV_Sql
6383                                ,P_PMV_OUTPUT          => x_PMV_Output,
6384                                 P_REGION_CODE         => 'PJI_REP_U7',
6385                                 P_PLSQL_DRIVER        => 'PJI_PMV_UTLZ.PLSQLDriver_PJI_REP_U7',
6386                                 P_PLSQL_DRIVER_PARAMS =>   '<<ORGANIZATION+FII_OPERATING_UNITS>>, ' ||
6387                                                            '<<ORGANIZATION+PJI_ORGANIZATIONS>>, ' ||
6388                                                            '<<AS_OF_DATE>>, ' ||
6389                                                            '<<PERIOD_TYPE>>, ' ||
6390                                        '<<PROJECT WORK TYPE+PJI_UTIL_CATEGORIES>>, ' ||
6391                                        '<<PROJECT WORK TYPE+PJI_WORK_TYPES>>, ' ||
6392                                        '<<PROJECT JOB LEVEL+PJI_JOB_LEVELS>>, ' ||
6393                                        '<<VIEW_BY>>');
6394 END Get_SQL_PJI_REP_U7;
6395 
6396 
6397 FUNCTION PLSQLDriver_PJI_REP_U7 (
6398     p_operating_unit		IN VARCHAR2 DEFAULT NULL
6399   , p_organization		    IN VARCHAR2
6400   , p_as_of_date		    IN NUMBER
6401   , p_period_type 		    IN VARCHAR2
6402   , p_util_categories 		IN VARCHAR2 DEFAULT NULL
6403   , p_work_type             IN VARCHAR2 DEFAULT NULL
6404   , p_job_level 		    IN VARCHAR2 DEFAULT NULL
6405   , p_view_by               IN VARCHAR2
6406 )RETURN PJI_REP_U7_TBL
6407 IS
6408 PRAGMA AUTONOMOUS_TRANSACTION;
6409 l_u7_tbl		PJI_REP_U7_TBL:=PJI_REP_U7_TBL();
6410 l_job_level_param               VARCHAR2(1);
6411 l_util_categories_param         VARCHAR2(1);
6412 l_util_percent_denom_prof       VARCHAR(25);
6413 l_dft_util_percent_denom_prof   VARCHAR(25) := 'CAPACITY';
6414 l_labor_unit                    VARCHAR2(40);
6415 l_scheduled_hours               NUMBER := 0;
6416 l_capacity_hours                NUMBER := 0;
6417 l_confirmed_billable_hours      NUMBER := 0;
6418 l_confirmed_nonbillable_hours   NUMBER := 0;
6419 l_provisional_billable_hours    NUMBER := 0;
6420 l_prov_nonbillable_hours NUMBER := 0;
6421 l_training_hours                NUMBER := 0;
6422 l_confirmed_weighted_hours      NUMBER := 0;
6423 l_billable_conf_weighted_hours  NUMBER := 0;
6424 l_unassigned_hours              NUMBER := 0;
6425 l_util_percent_denom_hours      NUMBER := 0;
6426 
6427 BEGIN
6428  /*
6429   * Place a call to all the parse API's which parse the parameters
6430   * passed by PMV and populate all the temporary tables.
6431   */
6432   PJI_PMV_ENGINE.Convert_Operating_Unit(p_operating_unit, p_view_by);
6433   PJI_PMV_ENGINE.Convert_Organization(p_organization, p_view_by);
6434   PJI_PMV_ENGINE.Convert_Time(p_as_of_date, p_period_type, p_view_by);
6435 
6436   l_util_categories_param := PJI_PMV_ENGINE.convert_util_category(p_work_type, p_util_categories, p_view_by);
6437   l_job_level_param       := PJI_PMV_ENGINE.convert_job_level(null, p_job_level, p_view_by);
6438 
6439 
6440  /*
6441   * Get Utilization percentage denominator profile value
6442   */
6443   BEGIN
6444     SELECT fnd_profile.value('PA_ORG_UTIL_DEF_CALC_METHOD')
6445     INTO l_util_percent_denom_prof
6446     from dual;
6447 
6448     EXCEPTION WHEN NO_DATA_FOUND THEN
6449         l_util_percent_denom_prof := l_dft_util_percent_denom_prof;
6450   END;
6451 
6452 
6453  /*
6454   * Get report labor unit
6455   */
6456   BEGIN
6457      select report_labor_units
6458      into l_labor_unit
6459      from pji_system_settings;
6460 
6461   EXCEPTION WHEN OTHERS THEN
6462          l_labor_unit := null;
6463   END;
6464 
6465  -- insert into pji_pmv_generated_sql values('PLSQLDriver_PJI_REP_U7 1');
6466  -- commit;
6467 
6468  /*
6469   * determine the fact tables you choose to run the database query on.
6470   *
6471   * If util_categories=null and job_level=null
6472   */
6473 
6474   IF l_util_categories_param = 'N' AND l_job_level_param = 'N' THEN
6475      SELECT PJI_REP_U7(      resource_name
6476                            , resource_id
6477 	  		               , SUM(scheduled_hours)
6478 			               , SUM(capacity_hours)
6479                            , SUM(confirmed_billable_hours)
6480                            , SUM(confirmed_nonbillable_hours)
6481                            , SUM(provisional_billable_hours)
6482                            , SUM(provisional_nonbillable_hours)
6483                            , SUM(training_hours)
6484                            , SUM(confirmed_weighted_hours)
6485                            , SUM(billable_conf_weighted_hours)
6486                            , SUM(unassigned_hours)
6487                            , SUM(DECODE(l_util_percent_denom_prof,'CAPACITY',
6488                                  capacity_hours,actual_hours)),
6489                               null,null,null,null,null,null,
6490                               null,null,null,null,null,null,
6491                               null,null,null,null,null)
6492      /* Bug 3515594 */
6493      BULK COLLECT INTO l_u7_tbl
6494      FROM
6495         (
6496         SELECT /*+ ORDERED */
6497            resd.resource_name                      resource_name
6498           ,fct.person_id                          resource_id
6499           ,fct.conf_hrs_s / decode(l_labor_unit, 'DAYS', imp.FTE_DAY, 'WEEKS',imp.FTE_WEEK, 1)    scheduled_hours
6500           ,(fct.capacity_hrs-NVL(fct.reduce_capacity_hrs_s,0))
6501                / decode(l_labor_unit, 'DAYS', imp.FTE_DAY, 'WEEKS',imp.FTE_WEEK, 1)         capacity_hours
6502           ,fct.conf_bill_hrs_s / decode(l_labor_unit, 'DAYS', imp.FTE_DAY, 'WEEKS',imp.FTE_WEEK, 1)
6503                                                                                             confirmed_billable_hours
6504           ,(fct.conf_hrs_s-conf_bill_hrs_s) / decode(l_labor_unit, 'DAYS', imp.FTE_DAY, 'WEEKS',imp.FTE_WEEK, 1)
6505                                                                                             confirmed_nonbillable_hours
6506           ,fct.prov_bill_hrs_s / decode(l_labor_unit, 'DAYS', imp.FTE_DAY, 'WEEKS',imp.FTE_WEEK, 1)
6507                                                                                             provisional_billable_hours
6508           ,(fct.prov_hrs_s-fct.prov_bill_hrs_s) / decode(l_labor_unit, 'DAYS', imp.FTE_DAY, 'WEEKS',imp.FTE_WEEK, 1)
6509                                                                                             provisional_nonbillable_hours
6510           ,fct.training_hrs_s  / decode(l_labor_unit, 'DAYS', imp.FTE_DAY, 'WEEKS',imp.FTE_WEEK, 1)  training_hours
6511           ,fct.conf_wtd_org_hrs_s  / decode(l_labor_unit, 'DAYS', imp.FTE_DAY, 'WEEKS',imp.FTE_WEEK, 1)
6512                                                                                             confirmed_weighted_hours
6513           ,fct.conf_bill_wtd_org_hrs_s  / decode(l_labor_unit, 'DAYS', imp.FTE_DAY, 'WEEKS',imp.FTE_WEEK, 1)
6514                                                                                             billable_conf_weighted_hours
6515           ,fct.unassigned_hrs_s  / decode(l_labor_unit, 'DAYS', imp.FTE_DAY, 'WEEKS',imp.FTE_WEEK, 1)  unassigned_hours
6516           ,fct.total_hrs_a / decode(l_labor_unit, 'DAYS', imp.FTE_DAY, 'WEEKS',imp.FTE_WEEK, 1)        actual_hours
6517         FROM
6518            pji_pmv_orgz_dim_tmp horg
6519           ,pji_pmv_time_dim_tmp time
6520           ,pji_rm_res_f         fct
6521           ,pji_pmv_org_dim_tmp  hou
6522           ,pa_resources_denorm  resd
6523           ,pa_implementations_all imp
6524         WHERE
6525            fct.expenditure_org_id = hou.id
6526            AND fct.expenditure_organization_id = horg.id
6527            AND fct.time_id = time.id
6528            AND fct.period_type_id = time.period_type
6529            AND fct.calendar_type  = decode(fct.period_type_id,1, 'C',time.calendar_type)
6530            AND time.id is not null
6531            AND fct.person_id = resd.person_id
6532            AND resd.resource_organization_id = horg.id
6533            AND TO_DATE(p_as_of_date,'j') between resd.resource_effective_start_date and
6534                resd.resource_effective_end_date
6535            AND hou.id = imp.org_id
6536         UNION ALL
6537         SELECT
6538            resd.resource_name  resource_name
6539           ,resd.person_id      resource_id
6540           ,0                   scheduled_hours
6541           ,0                   capacity_hours
6542           ,0                   confirmed_billable_hours
6543           ,0                   confirmed_nonbillable_hours
6544           ,0                   provisional_billable_hours
6545           ,0                   provisional_nonbillable_hours
6546           ,0                   training_hours
6547           ,0                   confirmed_weighted_hours
6548           ,0                   billable_conf_weighted_hours
6549           ,0                   unassigned_hours
6550           ,0                   actual_hours
6551         FROM
6552            pji_pmv_orgz_dim_tmp horg
6553           ,pa_resources_denorm resd
6554         WHERE
6555            resd.resource_organization_id = horg.id
6556            AND resd.utilization_flag = 'Y'
6557            AND TO_DATE(p_as_of_date,'j') between resd.resource_effective_start_date and
6558                resd.resource_effective_end_date
6559         )
6560      GROUP BY resource_name, resource_id;
6561 
6562  /*
6563   * If util_categories=null and job_level<>null
6564   */
6565   ELSIF l_util_categories_param = 'N' AND l_job_level_param = 'Y' THEN
6566      SELECT PJI_REP_U7(      resource_name
6567                            , resource_id
6568 	  		               , SUM(scheduled_hours)
6569 			               , SUM(capacity_hours)
6570                            , SUM(confirmed_billable_hours)
6571                            , SUM(confirmed_nonbillable_hours)
6572                            , SUM(provisional_billable_hours)
6573                            , SUM(provisional_nonbillable_hours)
6574                            , SUM(training_hours)
6575                            , SUM(confirmed_weighted_hours)
6576                            , SUM(billable_conf_weighted_hours)
6577                            , SUM(unassigned_hours)
6578                            , SUM(DECODE(l_util_percent_denom_prof,'CAPACITY',capacity_hours,
6579                              actual_hours)) ,
6580                               null,null,null,null,null,null,
6581                               null,null,null,null,null,null,
6582                               null,null,null,null,null)
6583      /* Bug 3515594 */
6584      BULK COLLECT INTO l_u7_tbl
6585      FROM
6586         (
6587         SELECT /*+ ORDERED */
6588            resd.resource_name                      resource_name
6589           ,fct.person_id                          resource_id
6590           ,fct.conf_hrs_s / decode(l_labor_unit, 'DAYS', imp.FTE_DAY, 'WEEKS',imp.FTE_WEEK, 1)    scheduled_hours
6591           ,(fct.capacity_hrs-NVL(fct.reduce_capacity_hrs_s,0))
6592                / decode(l_labor_unit, 'DAYS', imp.FTE_DAY, 'WEEKS',imp.FTE_WEEK, 1)         capacity_hours
6593           ,fct.conf_bill_hrs_s / decode(l_labor_unit, 'DAYS', imp.FTE_DAY, 'WEEKS',imp.FTE_WEEK, 1)
6594                                                                                             confirmed_billable_hours
6595           ,(fct.conf_hrs_s-conf_bill_hrs_s) / decode(l_labor_unit, 'DAYS', imp.FTE_DAY, 'WEEKS',imp.FTE_WEEK, 1)
6596                                                                                             confirmed_nonbillable_hours
6597           ,fct.prov_bill_hrs_s / decode(l_labor_unit, 'DAYS', imp.FTE_DAY, 'WEEKS',imp.FTE_WEEK, 1)
6598                                                                                             provisional_billable_hours
6599           ,(fct.prov_hrs_s-fct.prov_bill_hrs_s) / decode(l_labor_unit, 'DAYS', imp.FTE_DAY, 'WEEKS',imp.FTE_WEEK, 1)
6600                                                                                             provisional_nonbillable_hours
6601           ,fct.training_hrs_s  / decode(l_labor_unit, 'DAYS', imp.FTE_DAY, 'WEEKS',imp.FTE_WEEK, 1)  training_hours
6602           ,fct.conf_wtd_org_hrs_s  / decode(l_labor_unit, 'DAYS', imp.FTE_DAY, 'WEEKS',imp.FTE_WEEK, 1)
6603                                                                                             confirmed_weighted_hours
6604           ,fct.conf_bill_wtd_org_hrs_s  / decode(l_labor_unit, 'DAYS', imp.FTE_DAY, 'WEEKS',imp.FTE_WEEK, 1)
6605                                                                                             billable_conf_weighted_hours
6606           ,fct.unassigned_hrs_s  / decode(l_labor_unit, 'DAYS', imp.FTE_DAY, 'WEEKS',imp.FTE_WEEK, 1)  unassigned_hours
6607           ,fct.total_hrs_a / decode(l_labor_unit, 'DAYS', imp.FTE_DAY, 'WEEKS',imp.FTE_WEEK, 1)        actual_hours
6608         FROM
6609            pji_pmv_orgz_dim_tmp horg
6610           ,pji_pmv_time_dim_tmp time
6611           ,pji_pmv_jb_dim_tmp   jbt
6612           ,pji_rm_res_f         fct
6613           ,pji_pmv_org_dim_tmp  hou
6614           ,pa_resources_denorm  resd
6615           ,pa_implementations_all imp
6616         WHERE
6617                fct.expenditure_org_id = hou.id
6618            AND fct.expenditure_organization_id = horg.id
6619            AND fct.time_id = time.id
6620            AND fct.period_type_id = time.period_type
6621            AND fct.calendar_type  = decode(fct.period_type_id,1, 'C',time.calendar_type)
6622            AND time.id is not null
6623            AND fct.job_id = jbt.id
6624            AND fct.person_id = resd.person_id
6625            AND resd.resource_organization_id = horg.id
6626            AND TO_DATE(p_as_of_date,'j') between resd.resource_effective_start_date and
6627                resd.resource_effective_end_date
6628            AND hou.id = imp.org_id
6629         UNION ALL
6630         SELECT
6631            resd.resource_name resource_name
6632           ,resd.person_id     resource_id
6633           ,0                  scheduled_hours
6634           ,0                  capacity_hours
6635           ,0                  confirmed_billable_hours
6636           ,0                  confirmed_nonbillable_hours
6637           ,0                  provisional_billable_hours
6638           ,0                  provisional_nonbillable_hours
6639           ,0                  training_hours
6640           ,0                  confirmed_weighted_hours
6641           ,0                  billable_conf_weighted_hours
6642           ,0                  unassigned_hours
6643           ,0                  actual_hours
6644         FROM
6645            pji_pmv_orgz_dim_tmp  horg
6646           ,pji_pmv_jb_dim_tmp    jbt
6647           ,pa_resources_denorm   resd
6648         WHERE
6649                resd.resource_organization_id = horg.id
6650            AND resd.utilization_flag = 'Y'
6651            AND resd.job_id = jbt.id
6652            AND TO_DATE(p_as_of_date,'j') between resd.resource_effective_start_date and
6653                resd.resource_effective_end_date
6654         )
6655      GROUP BY resource_name, resource_id;
6656 
6657  /*
6658   * If util_categories<>null and job_level=null
6659   */
6660   ELSIF l_util_categories_param = 'Y' AND l_job_level_param = 'N' THEN
6661      SELECT PJI_REP_U7(      resource_name
6662                            , resource_id
6663 	  		               , SUM(scheduled_hours)
6664                            , SUM(capacity_hours-sch_reduce_capacity_hours)
6665                            , SUM(confirmed_billable_hours)
6666                            , SUM(confirmed_nonbillable_hours)
6667                            , SUM(provisional_billable_hours)
6668                            , SUM(provisional_nonbillable_hours)
6669                            , SUM(training_hours)
6670                            , SUM(confirmed_weighted_hours)
6671                            , SUM(billable_conf_weighted_hours)
6672                            , SUM(unassigned_hours)
6673                            , SUM(DECODE(l_util_percent_denom_prof,'CAPACITY',capacity_hours-sch_reduce_capacity_hours,
6674                                  actual_hours)) ,
6675                               null,null,null,null,null,null,
6676                               null,null,null,null,null,null,
6677                               null,null,null,null,null)
6678      /* Bug 3515594 */
6679      BULK COLLECT INTO l_u7_tbl
6680      FROM
6681         (
6682         SELECT /*+ ORDERED */
6683            resd.resource_name                      resource_name
6684           ,fct.person_id                           resource_id
6685           ,fct.conf_hrs_s                          scheduled_hours
6686           ,0                                                                         capacity_hours
6687           ,0                                                                         sch_reduce_capacity_hours
6688           ,decode(wtb.billable_capitalizable_flag,'Y',fct.conf_hrs_s, 0)
6689              / decode(l_labor_unit, 'DAYS', imp.FTE_DAY, 'WEEKS',imp.FTE_WEEK, 1)     confirmed_billable_hours
6690           ,(fct.conf_hrs_s-decode(wtb.billable_capitalizable_flag,'Y',fct.conf_hrs_s, 0))
6691              / decode(l_labor_unit, 'DAYS', imp.FTE_DAY, 'WEEKS',imp.FTE_WEEK, 1)     confirmed_nonbillable_hours
6692           ,decode(wtb.billable_capitalizable_flag,'Y',prov_hrs_s,0)
6693              / decode(l_labor_unit, 'DAYS', imp.FTE_DAY, 'WEEKS',imp.FTE_WEEK, 1)     provisional_billable_hours
6694           ,(prov_hrs_s-decode(wtb.billable_capitalizable_flag,'Y',prov_hrs_s,0))
6695              / decode(l_labor_unit, 'DAYS', imp.FTE_DAY, 'WEEKS',imp.FTE_WEEK, 1)     provisional_nonbillable_hours
6696           ,decode(wtb.training_flag,'Y',fct.conf_hrs_s, 0)
6697              / decode(l_labor_unit, 'DAYS', imp.FTE_DAY, 'WEEKS',imp.FTE_WEEK, 1)     training_hours
6698           ,fct.conf_hrs_s * wtb.org_utilization_percentage/100
6699              / decode(l_labor_unit, 'DAYS', imp.FTE_DAY, 'WEEKS',imp.FTE_WEEK, 1)     confirmed_weighted_hours
6700           ,decode(wtb.billable_capitalizable_flag,'Y',fct.conf_hrs_s, 0)*wtb.org_utilization_percentage/100
6701              / decode(l_labor_unit, 'DAYS', imp.FTE_DAY, 'WEEKS',imp.FTE_WEEK, 1)     billable_conf_weighted_hours
6702           ,unassigned_hrs_s / decode(l_labor_unit, 'DAYS', imp.FTE_DAY, 'WEEKS',imp.FTE_WEEK, 1)
6703                                                                                       unassigned_hours
6704           ,fct.total_hrs_a / decode(l_labor_unit, 'DAYS', imp.FTE_DAY, 'WEEKS',imp.FTE_WEEK, 1)  actual_hours
6705         FROM
6706             pji_pmv_orgz_dim_tmp  horg
6707            ,pji_pmv_time_dim_tmp  time
6708            ,pji_pmv_wt_dim_tmp    wt
6709            ,pji_rm_res_wt_f       fct
6710            ,pji_pmv_org_dim_tmp   hou
6711            ,pa_work_types_b       wtb
6712            ,pa_resources_denorm   resd
6713            ,pa_implementations_all imp
6714         WHERE
6715             fct.expenditure_org_id = hou.id
6716             AND fct.expenditure_organization_id = horg.id
6717             AND fct.time_id = time.id
6718             AND fct.period_type_id = time.period_type
6719             AND fct.calendar_type  = decode(fct.period_type_id,1, 'C',time.calendar_type)
6720             AND time.id is not null
6721             AND fct.work_type_id = wt.id
6722             AND wtb.work_type_id = wt.id
6723             AND fct.person_id = resd.person_id
6724             AND resd.resource_organization_id = horg.id
6725             AND TO_DATE(p_as_of_date,'j') between resd.resource_effective_start_date and
6726                 resd.resource_effective_end_date
6727             AND hou.id = imp.org_id
6728         UNION ALL
6729         SELECT
6730            resd.resource_name  resource_name
6731           ,resd.person_id      resource_id
6732           ,0                   scheduled_hours
6733           ,0                   capacity_hours
6734           ,0                   sch_reduce_capacity_hours
6735           ,0                   confirmed_billable_hours
6736           ,0                   confirmed_nonbillable_hours
6737           ,0                   provisional_billable_hours
6738           ,0                   provisional_nonbillable_hours
6739           ,0                   training_hours
6740           ,0                   confirmed_weighted_hours
6741           ,0                   billable_conf_weighted_hours
6742           ,0                   unassigned_hours
6743           ,0                   actual_hours
6744         FROM
6745            pji_pmv_orgz_dim_tmp horg
6746           ,pa_resources_denorm resd
6747         WHERE
6748            resd.resource_organization_id = horg.id
6749            AND resd.utilization_flag = 'Y'
6750            AND TO_DATE(p_as_of_date,'j') between resd.resource_effective_start_date and
6751                resd.resource_effective_end_date
6752 
6753         UNION ALL   -- added for current year capacity_hours
6754 	/* Bug 3515594 */
6755         SELECT  /*+ ORDERED */
6756            resd.resource_name  resource_name
6757           ,resd.person_id      resource_id
6758           ,0                   scheduled_hours
6759           ,capacity_hrs / decode(l_labor_unit, 'DAYS', imp.FTE_DAY, 'WEEKS',imp.FTE_WEEK, 1)
6760                                capacity_hours
6761           ,reduce_capacity_hrs_s / decode(l_labor_unit, 'DAYS', imp.FTE_DAY, 'WEEKS',imp.FTE_WEEK, 1)
6762                                sch_reduce_capacity_hours
6763           ,0                   confirmed_billable_hours
6764           ,0                   confirmed_nonbillable_hours
6765           ,0                   provisional_billable_hours
6766           ,0                   provisional_nonbillable_hours
6767           ,0                   training_hours
6768           ,0                   confirmed_weighted_hours
6769           ,0                   billable_conf_weighted_hours
6770           ,0                   unassigned_hours
6771           ,0                   actual_hours
6772         FROM
6773             pji_pmv_orgz_dim_tmp  horg
6774            ,pji_pmv_time_dim_tmp  time
6775            ,pji_rm_res_f          fct
6776            ,pji_pmv_org_dim_tmp   hou
6777            ,pa_resources_denorm   resd
6778            ,pa_implementations_all imp
6779         WHERE
6780             fct.expenditure_org_id = hou.id
6781             AND fct.expenditure_organization_id = horg.id
6782             AND fct.time_id = time.id
6783             AND fct.period_type_id = time.period_type
6784             AND fct.calendar_type  = decode(fct.period_type_id,1, 'C',time.calendar_type)
6785             AND time.id is not null
6786             AND fct.person_id = resd.person_id
6787             AND resd.resource_organization_id = horg.id
6788             AND TO_DATE(p_as_of_date,'j') between resd.resource_effective_start_date and
6789             resd.resource_effective_end_date
6790             AND hou.id = imp.org_id
6791         )
6792      GROUP BY resource_name, resource_id;
6793 
6794  /*
6795   * If util_categories<>null and job_level<>null
6796   */
6797   ELSIF l_util_categories_param = 'Y' AND l_job_level_param = 'Y' THEN
6798      SELECT PJI_REP_U7(      resource_name
6799                            , resource_id
6800 	  		               , SUM(scheduled_hours)
6801                            , SUM(capacity_hours-sch_reduce_capacity_hours)
6802                            , SUM(confirmed_billable_hours)
6803                            , SUM(confirmed_nonbillable_hours)
6804                            , SUM(provisional_billable_hours)
6805                            , SUM(provisional_nonbillable_hours)
6806                            , SUM(training_hours)
6807                            , SUM(confirmed_weighted_hours)
6808                            , SUM(billable_conf_weighted_hours)
6809                            , SUM(unassigned_hours)
6810                            , SUM(DECODE(l_util_percent_denom_prof,'CAPACITY',capacity_hours-sch_reduce_capacity_hours,
6811                                  actual_hours)) ,
6812                               null,null,null,null,null,null,
6813                               null,null,null,null,null,null,
6814                               null,null,null,null,null)
6815      /* Bug 3515594 */
6816      BULK COLLECT INTO l_u7_tbl
6817      FROM
6818         (
6819         SELECT /*+ ORDERED */
6820            resd.resource_name                      resource_name
6821           ,fct.person_id                           resource_id
6822           ,fct.conf_hrs_s                          scheduled_hours
6823           ,0                                                                           capacity_hours
6824           ,0                                                                           sch_reduce_capacity_hours
6825           ,decode(wtb.billable_capitalizable_flag,'Y',fct.conf_hrs_s, 0)
6826              / decode(l_labor_unit, 'DAYS', imp.FTE_DAY, 'WEEKS',imp.FTE_WEEK, 1)      confirmed_billable_hours
6827           ,(fct.conf_hrs_s-decode(wtb.billable_capitalizable_flag,'Y',fct.conf_hrs_s, 0))
6828              / decode(l_labor_unit, 'DAYS', imp.FTE_DAY, 'WEEKS',imp.FTE_WEEK, 1)      confirmed_nonbillable_hours
6829           ,decode(wtb.billable_capitalizable_flag,'Y',prov_hrs_s,0)
6830              / decode(l_labor_unit, 'DAYS', imp.FTE_DAY, 'WEEKS',imp.FTE_WEEK, 1)      provisional_billable_hours
6831           ,(prov_hrs_s-decode(wtb.billable_capitalizable_flag,'Y',prov_hrs_s,0))
6832              / decode(l_labor_unit, 'DAYS', imp.FTE_DAY, 'WEEKS',imp.FTE_WEEK, 1)      provisional_nonbillable_hours
6833           ,decode(wtb.training_flag,'Y',fct.conf_hrs_s, 0)
6834              / decode(l_labor_unit, 'DAYS', imp.FTE_DAY, 'WEEKS',imp.FTE_WEEK, 1)      training_hours
6835           ,fct.conf_hrs_s * wtb.org_utilization_percentage/100
6836              / decode(l_labor_unit, 'DAYS', imp.FTE_DAY, 'WEEKS',imp.FTE_WEEK, 1)      confirmed_weighted_hours
6837           ,decode(wtb.billable_capitalizable_flag,'Y',fct.conf_hrs_s, 0)*wtb.org_utilization_percentage/100
6838              / decode(l_labor_unit, 'DAYS', imp.FTE_DAY, 'WEEKS',imp.FTE_WEEK, 1)      billable_conf_weighted_hours
6839           ,unassigned_hrs_s * decode(l_labor_unit, 'DAYS', imp.FTE_DAY, 'WEEKS',imp.FTE_WEEK, 1)
6840                                                                                        unassigned_hours
6841           ,fct.total_hrs_a / decode(l_labor_unit, 'DAYS', imp.FTE_DAY, 'WEEKS',imp.FTE_WEEK, 1)  actual_hours
6842         FROM
6843             pji_pmv_orgz_dim_tmp  horg
6844            ,pji_pmv_time_dim_tmp  time
6845            ,pji_pmv_wt_dim_tmp    wt
6846            ,pji_rm_res_wt_f       fct
6847            ,pji_pmv_jb_dim_tmp    jbt
6848            ,pji_pmv_org_dim_tmp   hou
6849            ,pa_work_types_b       wtb
6850            ,pa_resources_denorm   resd
6851            ,pa_implementations_all imp
6852         WHERE
6853             fct.expenditure_org_id = hou.id
6854             AND fct.expenditure_organization_id = horg.id
6855             AND fct.time_id = time.id
6856             AND fct.period_type_id = time.period_type
6857             AND fct.calendar_type  = decode(fct.period_type_id,1, 'C',time.calendar_type)
6858             AND time.id is not null
6859             AND fct.work_type_id = wt.id
6860             AND wtb.work_type_id = wt.id
6861             AND fct.job_id = jbt.id
6862             AND fct.person_id = resd.person_id
6863             AND resd.resource_organization_id = horg.id
6864             AND TO_DATE(p_as_of_date,'j') between resd.resource_effective_start_date and
6865                 resd.resource_effective_end_date
6866             AND hou.id = imp.org_id
6867         UNION ALL
6868         SELECT
6869            resd.resource_name  resource_name
6870           ,resd.person_id      resource_id
6871           ,0                   scheduled_hours
6872           ,0                   capacity_hours
6873           ,0                   sch_reduce_capacity_hours
6874           ,0                   confirmed_billable_hours
6875           ,0                   confirmed_nonbillable_hours
6876           ,0                   provisional_billable_hours
6877           ,0                   provisional_nonbillable_hours
6878           ,0                   training_hours
6879           ,0                   confirmed_weighted_hours
6880           ,0                   billable_conf_weighted_hours
6881           ,0                   unassigned_hours
6882           ,0                   actual_hours
6883         FROM
6884            pji_pmv_orgz_dim_tmp  horg
6885           ,pji_pmv_jb_dim_tmp    jbt
6886           ,pa_resources_denorm   resd
6887         WHERE
6888            resd.resource_organization_id = horg.id
6889            AND resd.utilization_flag = 'Y'
6890            AND resd.job_id = jbt.id
6891            AND TO_DATE(p_as_of_date,'j') between resd.resource_effective_start_date and
6892                resd.resource_effective_end_date
6893         UNION ALL   -- added for current year capacity_hours
6894 	/* Bug 3515594 */
6895         SELECT   /*+ ORDERED */
6896            resd.resource_name  resource_name
6897           ,resd.person_id      resource_id
6898           ,0                   scheduled_hours
6899           ,capacity_hrs * decode(l_labor_unit, 'DAYS', imp.FTE_DAY, 'WEEKS',imp.FTE_WEEK, 1)
6900                                capacity_hours
6901           ,reduce_capacity_hrs_s * decode(l_labor_unit, 'DAYS', imp.FTE_DAY, 'WEEKS',imp.FTE_WEEK, 1)
6902                                sch_reduce_capacity_hours
6903           ,0                   confirmed_billable_hours
6904           ,0                   confirmed_nonbillable_hours
6905           ,0                   provisional_billable_hours
6906           ,0                   provisional_nonbillable_hours
6907           ,0                   training_hours
6908           ,0                   confirmed_weighted_hours
6909           ,0                   billable_conf_weighted_hours
6910           ,0                   unassigned_hours
6911           ,0                   actual_hours
6912         FROM
6913             pji_pmv_orgz_dim_tmp  horg
6914            ,pji_pmv_time_dim_tmp  time
6915            ,pji_pmv_jb_dim_tmp    jbt
6916            ,pji_rm_res_f          fct
6917            ,pji_pmv_org_dim_tmp   hou
6918            ,pa_resources_denorm   resd
6919            ,pa_implementations_all imp
6920         WHERE
6921             fct.expenditure_org_id = hou.id
6922             AND fct.expenditure_organization_id = horg.id
6923             AND fct.time_id = time.id
6924             AND fct.period_type_id = time.period_type
6925             AND fct.calendar_type  = decode(fct.period_type_id,1, 'C',time.calendar_type)
6926             AND time.id is not null
6927             AND fct.job_id = jbt.id
6928             AND fct.person_id = resd.person_id
6929             AND resd.resource_organization_id = horg.id
6930             AND TO_DATE(p_as_of_date,'j') between resd.resource_effective_start_date and
6931                 resd.resource_effective_end_date
6932             AND hou.id = imp.org_id
6933         )
6934      GROUP BY resource_name, resource_id;
6935   END IF;
6936 
6937   FOR i in 1..l_u7_tbl.COUNT
6938        LOOP
6939 
6940          l_scheduled_hours             := l_scheduled_hours                   + nvl(l_u7_tbl(i).scheduled_hours            ,0);
6941          l_capacity_hours              := l_capacity_hours                    + nvl(l_u7_tbl(i).capacity_hours             ,0);
6942          l_confirmed_billable_hours    := l_confirmed_billable_hours          + nvl(l_u7_tbl(i).confirmed_billable_hours   ,0);
6943          l_confirmed_nonbillable_hours := l_confirmed_nonbillable_hours       + nvl(l_u7_tbl(i).confirmed_nonbillable_hours,0);
6944          l_provisional_billable_hours  := l_provisional_billable_hours        + nvl(l_u7_tbl(i).provisional_billable_hours,0);
6945          l_prov_nonbillable_hours := l_prov_nonbillable_hours   + nvl(l_u7_tbl(i).provisional_nonbillable_hours,0);
6946          l_training_hours              := l_training_hours                    + nvl(l_u7_tbl(i).training_hours             ,0);
6947          l_confirmed_weighted_hours    := l_confirmed_weighted_hours          + nvl(l_u7_tbl(i).confirmed_weighted_hours   ,0);
6948          l_billable_conf_weighted_hours := l_billable_conf_weighted_hours     + nvl(l_u7_tbl(i).billable_conf_weighted_hours,0);
6949          l_unassigned_hours            := l_unassigned_hours                  + nvl(l_u7_tbl(i).unassigned_hours           ,0);
6950          l_util_percent_denom_hours    := l_util_percent_denom_hours          + nvl(l_u7_tbl(i).util_percent_denom_hours   ,0);
6951 
6952          --Calculated columns processing is done below
6953          IF nvl(l_u7_tbl(i).util_percent_denom_hours,0) <> 0 THEN
6954            l_u7_tbl(i).sch_util_percent     := 100 * (l_u7_tbl(i).confirmed_weighted_hours / l_u7_tbl(i).util_percent_denom_hours);
6955            l_u7_tbl(i).bill_util_percent    := 100 * (l_u7_tbl(i).billable_conf_weighted_hours / l_u7_tbl(i).util_percent_denom_hours);
6956            l_u7_tbl(i).nonbill_util_percent := 100 * ((l_u7_tbl(i).confirmed_weighted_hours - l_u7_tbl(i).billable_conf_weighted_hours)/ l_u7_tbl(i).util_percent_denom_hours);
6957            l_u7_tbl(i).unassigned_percent := 100 * (l_u7_tbl(i).unassigned_hours / l_u7_tbl(i).util_percent_denom_hours);
6958            l_u7_tbl(i).training_percent     := 100 * (l_u7_tbl(i).training_hours / l_u7_tbl(i).util_percent_denom_hours);
6959 
6960          ELSE
6961            l_u7_tbl(i).sch_util_percent     := NULL;
6962 		   l_u7_tbl(i).bill_util_percent    := NULL;
6963 		   l_u7_tbl(i).nonbill_util_percent := NULL;
6964            l_u7_tbl(i).unassigned_percent   := NULL;
6965            l_u7_tbl(i).training_percent     := NULL;
6966          END IF;
6967 
6968    END LOOP;
6969 
6970    IF l_u7_tbl.COUNT > 0 THEN
6971    FOR i IN 1..l_u7_tbl.COUNT
6972 	LOOP
6973 
6974       IF l_u7_tbl.EXISTS(i) THEN
6975 
6976         l_u7_tbl(i).PJI_REP_TOTAL_1 := l_scheduled_hours;
6977         l_u7_tbl(i).PJI_REP_TOTAL_2 := l_capacity_hours;
6978         l_u7_tbl(i).PJI_REP_TOTAL_3 := l_confirmed_billable_hours;
6979         l_u7_tbl(i).PJI_REP_TOTAL_4 := l_confirmed_nonbillable_hours;
6980         l_u7_tbl(i).PJI_REP_TOTAL_5 := l_provisional_billable_hours;
6981         l_u7_tbl(i).PJI_REP_TOTAL_6 := l_prov_nonbillable_hours;
6982         l_u7_tbl(i).PJI_REP_TOTAL_7 := l_training_hours   ;
6983 
6984 
6985         IF nvl(l_util_percent_denom_hours,0) <> 0 THEN
6986 
6987           l_u7_tbl(i).PJI_REP_TOTAL_8      := (l_confirmed_weighted_hours/l_util_percent_denom_hours)*100;
6988           l_u7_tbl(i).PJI_REP_TOTAL_9      := (l_billable_conf_weighted_hours/l_util_percent_denom_hours)*100;
6989           l_u7_tbl(i).PJI_REP_TOTAL_10      := ((l_confirmed_weighted_hours - l_billable_conf_weighted_hours)/l_util_percent_denom_hours)*100;
6990           l_u7_tbl(i).PJI_REP_TOTAL_11      := (l_unassigned_hours/l_util_percent_denom_hours)*100;
6991           l_u7_tbl(i).PJI_REP_TOTAL_12      := (l_training_hours/l_util_percent_denom_hours)*100;
6992 
6993         END IF;
6994 
6995       END IF; -- l_u7_tbl.EXISTS(i)
6996 	END LOOP;
6997     END IF; --l_u7_tbl.COUNT > 0
6998 
6999  /*
7000   * Return the bulk collected table back to pmv.
7001   */
7002   COMMIT;
7003   RETURN l_u7_tbl;
7004 
7005 
7006 END PLSQLDriver_PJI_REP_U7;
7007 
7008 
7009 /*****************************************************************************
7010  *
7011  * The functions for report U8: Project Expected Utilization Detail
7012  *
7013  *****************************************************************************/
7014 
7015 PROCEDURE Get_SQL_PJI_REP_U8(p_page_parameter_tbl IN BIS_PMV_PAGE_PARAMETER_TBL
7016                              , x_PMV_Sql OUT NOCOPY VARCHAR2
7017                              , x_PMV_Output OUT NOCOPY BIS_QUERY_ATTRIBUTES_TBL)
7018  IS
7019 BEGIN
7020 
7021     PJI_PMV_ENGINE.Generate_SQL(P_PAGE_PARAMETER_TBL  => p_page_parameter_tbl
7022                                ,P_SELECT_LIST         =>
7023                                ' FACT.RESOURCE_NAME  "VIEWBY",
7024                                  FACT.EXPECTED_HOURS  "PJI_REP_MSR_2",
7025 		                         FACT.CAPACITY_HOURS  "PJI_REP_MSR_3",
7026 		                         FACT.MISSING_HOURS  "PJI_REP_MSR_4",
7027 		                         FACT.ACT_UTIL_PERCENT  "PJI_REP_MSR_5",
7028 		                         FACT.SCH_UTIL_PERCENT  "PJI_REP_MSR_6",
7029 		                         FACT.EXP_UTIL_PERCENT  "PJI_REP_MSR_7",
7030 		                         FACT.PROV_SCH_UTIL_PERCENT  "PJI_REP_MSR_12",
7031 		                         FACT.EXP_TOTAL_UTIL_PERCENT  "PJI_REP_MSR_8",
7032 		                         FACT.PRIOR_UTIL_PERCENT  "PJI_REP_MSR_9",
7033 		                         FACT.EXP_BILL_UTIL_PERCENT  "PJI_REP_MSR_10",
7034 		                         FACT.EXP_NONBILL_UTIL_PERCENT  "PJI_REP_MSR_13",
7035 		                         FACT.EXP_TRAINING_PERCENT  "PJI_REP_MSR_11",
7036 		                         FACT.SCH_CONF_WEIGHTED_HOURS  "PJI_REP_MSR_21",
7037 		                         FACT.SCH_PROV_WEIGHTED_HOURS  "PJI_REP_MSR_23",
7038 		                         FACT.EXPECTED_BILL_WEIGHTED_HOURS  "PJI_REP_MSR_14",
7039 		                         FACT.EXPECTED_TRAINING_HOURS  "PJI_REP_MSR_15",
7040 		                         FACT.PRIOR_ACTUAL_WEIGHTED_HOURS  "PJI_REP_MSR_16",
7041 		                         FACT.PRIOR_CAPACITY_HOURS  "PJI_REP_MSR_17",
7042 		                         FACT.UTIL_PERCENT_DENOM_HOURS  "PJI_REP_MSR_22",
7043 		                         FACT.PRIOR_UTIL_PERCENT_DENOM_HOURS  "PJI_REP_MSR_18",
7044 		                         FACT.ACTUAL_WEIGHTED_HOURS  "PJI_REP_MSR_19",
7045 		                         FACT.RESOURCE_ID  "PJI_REP_MSR_24",
7046 		                         FACT.EXP_AC_UTIL_PERCENT_DENOM  "PJI_REP_MSR_25",
7047 		                         FACT.EXP_SCH_UTIL_PERCENT_DENOM  "PJI_REP_MSR_26",
7048 		                         FACT.PJI_REP_TOTAL_1 "PJI_REP_TOTAL_1",
7049 		                         FACT.PJI_REP_TOTAL_2 "PJI_REP_TOTAL_2",
7050 		                         FACT.PJI_REP_TOTAL_3 "PJI_REP_TOTAL_3",
7051 		                         FACT.PJI_REP_TOTAL_4 "PJI_REP_TOTAL_4",
7052 		                         FACT.PJI_REP_TOTAL_5 "PJI_REP_TOTAL_5",
7053 		                         FACT.PJI_REP_TOTAL_6 "PJI_REP_TOTAL_6",
7054 		                         FACT.PJI_REP_TOTAL_7 "PJI_REP_TOTAL_7",
7055 		                         FACT.PJI_REP_TOTAL_8 "PJI_REP_TOTAL_8",
7056 		                         FACT.PJI_REP_TOTAL_9 "PJI_REP_TOTAL_9",
7057 		                         FACT.PJI_REP_TOTAL_10 "PJI_REP_TOTAL_10",
7058 		                         FACT.PJI_REP_TOTAL_11 "PJI_REP_TOTAL_11",
7059 		                         FACT.PJI_REP_TOTAL_12 "PJI_REP_TOTAL_12" '
7060                                ,P_SQL_STATEMENT       => x_PMV_Sql
7061                                ,P_PMV_OUTPUT          => x_PMV_Output,
7062                                 P_REGION_CODE         => 'PJI_REP_U8',
7063                                 P_PLSQL_DRIVER        => 'PJI_PMV_UTLZ.PLSQLDriver_PJI_REP_U8',
7064                                 P_PLSQL_DRIVER_PARAMS =>   '<<ORGANIZATION+FII_OPERATING_UNITS>>, ' ||
7065                                                            '<<ORGANIZATION+PJI_ORGANIZATIONS>>, ' ||
7066                                                            '<<AS_OF_DATE>>, ' ||
7067                                                            '<<PERIOD_TYPE>>, ' ||
7068                                        '<<PROJECT WORK TYPE+PJI_UTIL_CATEGORIES>>, ' ||
7069                                        '<<PROJECT WORK TYPE+PJI_WORK_TYPES>>, ' ||
7070                                        '<<PROJECT JOB LEVEL+PJI_JOB_LEVELS>>, ' ||
7071                                        '<<VIEW_BY>>');
7072 END Get_SQL_PJI_REP_U8;
7073 
7074 
7075 FUNCTION PLSQLDriver_PJI_REP_U8 (
7076     p_operating_unit		IN VARCHAR2 DEFAULT NULL
7077   , p_organization		IN VARCHAR2
7078   , p_as_of_date		IN NUMBER
7079   , p_period_type 		IN VARCHAR2
7080   , p_util_categories 		IN VARCHAR2 DEFAULT NULL
7081   , p_work_type                 IN VARCHAR2 DEFAULT NULL
7082   , p_job_level 		IN VARCHAR2 DEFAULT NULL
7083   , p_view_by                   IN VARCHAR2
7084 )RETURN PJI_REP_U8_TBL
7085 IS
7086 PRAGMA AUTONOMOUS_TRANSACTION;
7087 l_u8_tbl		PJI_REP_U8_TBL:=PJI_REP_U8_TBL();
7088 l_job_level_param               VARCHAR2(1);
7089 l_util_categories_param         VARCHAR2(1);
7090 l_util_percent_denom_prof       VARCHAR(25);
7091 l_dft_util_percent_denom_prof   VARCHAR(25) := 'CAPACITY';
7092 l_labor_unit                    VARCHAR2(40);
7093 l_expected_hours                     NUMBER := 0;
7094 l_capacity_hours                     NUMBER := 0;
7095 l_missing_hours                      NUMBER := 0;
7096 l_actual_weighted_hours              NUMBER := 0;
7097 l_sch_conf_weighted_hours            NUMBER := 0;
7098 l_sch_prov_weighted_hours            NUMBER := 0;
7099 l_expected_bill_weighted_hours       NUMBER := 0;
7100 l_expected_training_hours            NUMBER := 0;
7101 l_prior_actual_weighted_hours        NUMBER := 0;
7102 l_prior_capacity_hours               NUMBER := 0;
7103 l_util_percent_denom_hours           NUMBER := 0;
7104 l_exp_ac_util_percent_denom          NUMBER := 0;
7105 l_exp_sch_util_percent_denom         NUMBER := 0;
7106 l_prior_util_denom     NUMBER := 0;
7107 l_act_util_percent            NUMBER := 0;
7108 l_sch_util_percent            NUMBER := 0;
7109 l_exp_util_percent            NUMBER := 0;
7110 l_prov_sch_util_percent       NUMBER := 0;
7111 l_exp_total_util_percent      NUMBER := 0;
7112 l_prior_util_percent          NUMBER := 0;
7113 l_exp_bill_util_percent       NUMBER := 0;
7114 l_exp_nonbill_util_percent    NUMBER := 0;
7115 l_exp_training_percent        NUMBER := 0;
7116 
7117 BEGIN
7118  /*
7119   * Place a call to all the parse API's which parse the parameters
7120   * passed by PMV and populate all the temporary tables.
7121   */
7122   PJI_PMV_ENGINE.Convert_Operating_Unit(p_operating_unit, p_view_by);
7123   PJI_PMV_ENGINE.Convert_Organization(p_organization, p_view_by);
7124   PJI_PMV_ENGINE.Convert_Expected_Time(p_as_of_date, p_period_type, 'Y');
7125 
7126   l_util_categories_param := PJI_PMV_ENGINE.convert_util_category(p_work_type, p_util_categories, p_view_by);
7127   l_job_level_param       := PJI_PMV_ENGINE.convert_job_level(null, p_job_level, p_view_by);
7128 
7129  /*
7130   * Get Utilization percentage denominator profile value
7131   */
7132   BEGIN
7133     SELECT fnd_profile.value('PA_ORG_UTIL_DEF_CALC_METHOD')
7134     INTO l_util_percent_denom_prof
7135     from dual;
7136 
7137     EXCEPTION WHEN NO_DATA_FOUND THEN
7138         l_util_percent_denom_prof := l_dft_util_percent_denom_prof;
7139   END;
7140 
7141 
7142  /*
7143   * Get report labor unit
7144   */
7145   BEGIN
7146      select report_labor_units
7147      into l_labor_unit
7148      from pji_system_settings;
7149 
7150   EXCEPTION WHEN OTHERS THEN
7151          l_labor_unit := null;
7152   END;
7153 
7154 
7155  /*
7156   * determine the fact tables you choose to run the database query on.
7157   *
7158   * If util_categories=null and job_level=null
7159   */
7160   IF l_util_categories_param = 'N' AND l_job_level_param = 'N' THEN
7161      SELECT PJI_REP_U8( resource_name
7162                        ,resource_id
7163                        ,SUM(expected_hours)
7164                        ,SUM(capacity_hours)
7165                        ,SUM(missing_hours)
7166                        ,SUM(actual_weighted_hours)
7167                        ,SUM(sch_conf_weighted_hours)
7168                        ,SUM(sch_prov_weighted_hours)
7169                        ,SUM(expected_bill_weighted_hours)
7170                        ,SUM(expected_training_hours)
7171                        ,SUM(prior_actual_weighted_hours)
7172                        ,SUM(prior_capacity_hours)
7173                        ,SUM(DECODE(l_util_percent_denom_prof,'CAPACITY',
7174                             capacity_hours,actual_hours))
7175                        ,SUM(decode(l_util_percent_denom_prof, 'CAPACITY',
7176                             exp_ac_capacity_hours, exp_ac_actual_hours))
7177                        ,SUM(decode(l_util_percent_denom_prof, 'CAPACITY',
7178                             exp_sch_capacity_hours, exp_sch_actual_hours))
7179                        ,SUM(DECODE(l_util_percent_denom_prof,'CAPACITY',
7180                             prior_capacity_hours,prior_actual_hours)),
7181                         null,null,null,null,null,null,
7182                         null,null,null,null,null,null,
7183                         null,null,null,null,null,null,
7184                         null,null,null
7185                        )
7186      BULK COLLECT INTO l_u8_tbl
7187      /* Bug 3515594 */
7188      FROM
7189         (
7190         -- get current year values
7191         SELECT /*+ ORDERED */
7192            resd.resource_name                      resource_name
7193           ,fct.person_id                          resource_id
7194           ,DECODE(time.amount_type,0,fct.total_hrs_a,fct.conf_hrs_s)
7195              / decode(l_labor_unit, 'DAYS', imp.FTE_DAY, 'WEEKS',imp.FTE_WEEK, 1)      expected_hours
7196           ,(fct.capacity_hrs-DECODE(time.amount_type,0,NVL(fct.reduce_capacity_hrs_a,0),
7197            NVL(fct.reduce_capacity_hrs_s,0)))
7198              / decode(l_labor_unit, 'DAYS', imp.FTE_DAY, 'WEEKS',imp.FTE_WEEK, 1)      capacity_hours
7199           ,fct.missing_hrs_a
7200              / decode(l_labor_unit, 'DAYS', imp.FTE_DAY, 'WEEKS',imp.FTE_WEEK, 1)      missing_hours
7201           ,DECODE(time.amount_type,0,fct.total_wtd_org_hrs_a,0)
7202              / decode(l_labor_unit, 'DAYS', imp.FTE_DAY, 'WEEKS',imp.FTE_WEEK, 1)      actual_weighted_hours
7203           ,DECODE(time.amount_type,1,conf_wtd_org_hrs_s,0)
7204              / decode(l_labor_unit, 'DAYS', imp.FTE_DAY, 'WEEKS',imp.FTE_WEEK, 1)      sch_conf_weighted_hours
7205           ,DECODE(time.amount_type,1,prov_wtd_org_hrs_s,0)
7206              / decode(l_labor_unit, 'DAYS', imp.FTE_DAY, 'WEEKS',imp.FTE_WEEK, 1)      sch_prov_weighted_hours
7207           ,DECODE(time.amount_type,0,fct.bill_wtd_org_hrs_a,fct.conf_bill_wtd_org_hrs_s)
7208              / decode(l_labor_unit, 'DAYS', imp.FTE_DAY, 'WEEKS',imp.FTE_WEEK, 1)      expected_bill_weighted_hours
7209           ,DECODE(time.amount_type,0,fct.training_hrs_a,fct.training_hrs_s)
7210              / decode(l_labor_unit, 'DAYS', imp.FTE_DAY, 'WEEKS',imp.FTE_WEEK, 1)      expected_training_hours
7211           ,fct.total_hrs_a * decode(l_labor_unit, 'DAYS', imp.FTE_DAY, 'WEEKS',imp.FTE_WEEK, 1)
7212                                                                                        actual_hours
7213           ,decode(time.amount_type, 0, fct.capacity_hrs - fct.reduce_capacity_hrs_a, fct.capacity_hrs)
7214              / decode(l_labor_unit, 'DAYS', imp.FTE_DAY, 'WEEKS',imp.FTE_WEEK, 1)
7215                                                    exp_ac_capacity_hours
7216           ,decode(time.amount_type, 0, fct.total_hrs_a, 0)
7217              / decode(l_labor_unit, 'DAYS', imp.FTE_DAY, 'WEEKS',imp.FTE_WEEK, 1)
7218                                                    exp_ac_actual_hours
7219           ,decode(time.amount_type, 0, fct.capacity_hrs, fct.capacity_hrs - fct.reduce_capacity_hrs_s)
7220              / decode(l_labor_unit, 'DAYS', imp.FTE_DAY, 'WEEKS',imp.FTE_WEEK, 1)
7221                                                    exp_sch_capacity_hours
7222           ,decode(time.amount_type, 0, 0, fct.total_hrs_a)
7223              / decode(l_labor_unit, 'DAYS', imp.FTE_DAY, 'WEEKS',imp.FTE_WEEK, 1)
7224                                                    exp_sch_actual_hours
7225           ,0                                       prior_actual_weighted_hours
7226           ,0                                       prior_capacity_hours
7227           ,0                                       prior_actual_hours
7228         FROM
7229            pji_pmv_orgz_dim_tmp horg
7230           ,pji_pmv_time_dim_tmp time
7231           ,pji_rm_res_f         fct
7232           ,pji_pmv_org_dim_tmp  hou
7233           ,pa_resources_denorm  resd
7234           ,pa_implementations_all imp
7235         WHERE
7236            fct.expenditure_org_id = hou.id
7237            AND fct.expenditure_organization_id = horg.id
7238            AND fct.time_id = time.id
7239            AND fct.period_type_id = time.period_type
7240            AND fct.calendar_type  = decode(fct.period_type_id,1, 'C',time.calendar_type)
7241            AND time.id is not null
7242            AND fct.person_id = resd.person_id
7243            AND resd.resource_organization_id = horg.id
7244            AND TO_DATE(p_as_of_date,'j') between resd.resource_effective_start_date and
7245                resd.resource_effective_end_date
7246            AND hou.id = imp.org_id
7247         -- get prior year values
7248         UNION ALL
7249 	/* Bug 3515594 */
7250         SELECT /*+ ORDERED */
7251            resd.resource_name                      resource_name
7252           ,fct.person_id                          resource_id
7253           ,0                                       expected_hours
7254           ,0                                       capacity_hours
7255           ,0                                       missing_hours
7256           ,0                                       actual_weighted_hours
7257           ,0                                       sch_conf_weighted_hours
7258           ,0                                       sch_prov_weighted_hours
7259           ,0                                       expected_bill_weighted_hours
7260           ,0                                       expected_training_hours
7261           ,0                                       actual_hours
7262           ,0                                       exp_ac_capacity_hours
7263           ,0                                       exp_ac_actual_hours
7264           ,0                                       exp_sch_capacity_hours
7265           ,0                                       exp_sch_actual_hours
7266           ,fct.total_wtd_org_hrs_a
7267              / decode(l_labor_unit, 'DAYS', imp.FTE_DAY, 'WEEKS',imp.FTE_WEEK, 1)   prior_actual_weighted_hours
7268           ,(fct.capacity_hrs-NVL(fct.reduce_capacity_hrs_a,0))
7269              / decode(l_labor_unit, 'DAYS', imp.FTE_DAY, 'WEEKS',imp.FTE_WEEK, 1)   prior_capacity_hours
7270           ,fct.total_hrs_a / decode(l_labor_unit, 'DAYS', imp.FTE_DAY, 'WEEKS',imp.FTE_WEEK, 1)
7271                                                                                     prior_actual_hours
7272         FROM
7273            pji_pmv_orgz_dim_tmp horg
7274           ,pji_pmv_time_dim_tmp time
7275           ,pji_rm_res_f         fct
7276           ,pji_pmv_org_dim_tmp  hou
7277           ,pa_resources_denorm  resd
7278           ,pa_implementations_all imp
7279         WHERE
7280            fct.expenditure_org_id = hou.id
7281            AND fct.expenditure_organization_id = horg.id
7282            AND fct.time_id = time.prior_id
7283            AND fct.period_type_id = time.period_type
7284            AND fct.calendar_type  = decode(fct.period_type_id,1, 'C',time.calendar_type)
7285            AND time.prior_id is not null
7286            AND fct.person_id = resd.person_id
7287            AND resd.resource_organization_id = horg.id
7288            AND TO_DATE(p_as_of_date,'j') between resd.resource_effective_start_date and
7289                resd.resource_effective_end_date
7290            AND fct.expenditure_org_id = imp.org_id
7291         -- get the data for the resources who doens't have data
7292         UNION ALL
7293         SELECT
7294            resd.resource_name                      resource_name
7295           ,resd.person_id                          resource_id
7296           ,0                                       expected_hours
7297           ,0                                       capacity_hours
7298           ,0                                       missing_hours
7299           ,0                                       actual_weighted_hours
7300           ,0                                       sch_conf_weighted_hours
7301           ,0                                       sch_prov_weighted_hours
7302           ,0                                       expected_bill_weighted_hours
7303           ,0                                       expected_training_hours
7304           ,0                                       actual_hours
7305           ,0                                       exp_ac_capacity_hours
7306           ,0                                       exp_ac_actual_hours
7307           ,0                                       exp_sch_capacity_hours
7308           ,0                                       exp_sch_actual_hours
7309           ,0                                       prior_actual_weighted_hours
7310           ,0                                       prior_capacity_hours
7311           ,0                                       prior_actual_hours
7312         FROM
7313            pji_pmv_orgz_dim_tmp horg
7314           ,pa_resources_denorm resd
7315         WHERE
7316            resd.resource_organization_id = horg.id
7317            AND resd.utilization_flag = 'Y'
7318            AND TO_DATE(p_as_of_date,'j') between resd.resource_effective_start_date and
7319                resd.resource_effective_end_date
7320         )
7321      GROUP BY resource_name, resource_id;
7322 
7323  /*
7324   * If util_categories=null and job_level<>null
7325   */
7326   ELSIF l_util_categories_param = 'N' AND l_job_level_param = 'Y' THEN
7327      SELECT PJI_REP_U8( resource_name
7328                        ,resource_id
7329                        ,SUM(expected_hours)
7330                        ,SUM(capacity_hours)
7331                        ,SUM(missing_hours)
7332                        ,SUM(actual_weighted_hours)
7333                        ,SUM(sch_conf_weighted_hours)
7334                        ,SUM(sch_prov_weighted_hours)
7335                        ,SUM(expected_bill_weighted_hours)
7336                        ,SUM(expected_training_hours)
7337                        ,SUM(prior_actual_weighted_hours)
7338                        ,SUM(prior_capacity_hours)
7339                        ,SUM(DECODE(l_util_percent_denom_prof,'CAPACITY',
7340                             capacity_hours,actual_hours))
7341                        ,SUM(decode(l_util_percent_denom_prof, 'CAPACITY',
7342                             exp_ac_capacity_hours, exp_ac_actual_hours))
7343                        ,SUM(decode(l_util_percent_denom_prof, 'CAPACITY',
7344                             exp_sch_capacity_hours, exp_sch_actual_hours))
7345                        ,SUM(DECODE(l_util_percent_denom_prof,'CAPACITY',
7346                             prior_capacity_hours,prior_actual_hours)),
7347                         null,null,null,null,null,null,
7348                         null,null,null,null,null,null,
7349                         null,null,null,null,null,null,
7350                         null,null,null
7351                        )
7352      /* Bug 3515594 */
7353      BULK COLLECT INTO l_u8_tbl
7354      FROM
7355         (
7356         -- get current year values
7357         SELECT /*+ ORDERED */
7358            resd.resource_name                      resource_name
7359           ,fct.person_id                          resource_id
7360           ,DECODE(time.amount_type,0,fct.total_hrs_a,fct.conf_hrs_s)
7361              / decode(l_labor_unit, 'DAYS', imp.FTE_DAY, 'WEEKS',imp.FTE_WEEK, 1)      expected_hours
7362           ,(fct.capacity_hrs-DECODE(time.amount_type,0,NVL(fct.reduce_capacity_hrs_a,0),
7363            NVL(fct.reduce_capacity_hrs_s,0)))
7364              / decode(l_labor_unit, 'DAYS', imp.FTE_DAY, 'WEEKS',imp.FTE_WEEK, 1)      capacity_hours
7365           ,fct.missing_hrs_a / decode(l_labor_unit, 'DAYS', imp.FTE_DAY, 'WEEKS',imp.FTE_WEEK, 1)                                                                                                                                 missing_hours
7366           ,DECODE(time.amount_type,0,fct.total_wtd_org_hrs_a,0)
7367              / decode(l_labor_unit, 'DAYS', imp.FTE_DAY, 'WEEKS',imp.FTE_WEEK, 1)      actual_weighted_hours
7368           ,DECODE(time.amount_type,1,conf_wtd_org_hrs_s,0)
7369              / decode(l_labor_unit, 'DAYS', imp.FTE_DAY, 'WEEKS',imp.FTE_WEEK, 1)      sch_conf_weighted_hours
7370           ,DECODE(time.amount_type,1,prov_wtd_org_hrs_s,0)
7371              / decode(l_labor_unit, 'DAYS', imp.FTE_DAY, 'WEEKS',imp.FTE_WEEK, 1)      sch_prov_weighted_hours
7372           ,DECODE(time.amount_type,0,fct.bill_wtd_org_hrs_a,fct.conf_bill_wtd_org_hrs_s)
7373              / decode(l_labor_unit, 'DAYS', imp.FTE_DAY, 'WEEKS',imp.FTE_WEEK, 1)      expected_bill_weighted_hours
7374           ,DECODE(time.amount_type,0,fct.training_hrs_a,fct.training_hrs_s)
7375              / decode(l_labor_unit, 'DAYS', imp.FTE_DAY, 'WEEKS',imp.FTE_WEEK, 1)      expected_training_hours
7376           ,fct.total_hrs_a / decode(l_labor_unit, 'DAYS', imp.FTE_DAY, 'WEEKS',imp.FTE_WEEK, 1)
7377                                                                                        actual_hours
7378           ,decode(time.amount_type, 0, fct.capacity_hrs - fct.reduce_capacity_hrs_a, fct.capacity_hrs)
7379              / decode(l_labor_unit, 'DAYS', imp.FTE_DAY, 'WEEKS',imp.FTE_WEEK, 1)
7380                                                    exp_ac_capacity_hours
7381           ,decode(time.amount_type, 0, fct.total_hrs_a, 0)
7382              / decode(l_labor_unit, 'DAYS', imp.FTE_DAY, 'WEEKS',imp.FTE_WEEK, 1)
7383                                                    exp_ac_actual_hours
7384           ,decode(time.amount_type, 0, fct.capacity_hrs, fct.capacity_hrs - fct.reduce_capacity_hrs_s)
7385              / decode(l_labor_unit, 'DAYS', imp.FTE_DAY, 'WEEKS',imp.FTE_WEEK, 1)
7386                                                    exp_sch_capacity_hours
7387           ,decode(time.amount_type, 0, 0, fct.total_hrs_a)
7388              / decode(l_labor_unit, 'DAYS', imp.FTE_DAY, 'WEEKS',imp.FTE_WEEK, 1)
7389                                                    exp_sch_actual_hours
7390           ,0                                       prior_actual_weighted_hours
7391           ,0                                       prior_capacity_hours
7392           ,0                                       prior_actual_hours
7393         FROM
7394            pji_pmv_orgz_dim_tmp horg
7395           ,pji_pmv_time_dim_tmp time
7396           ,pji_pmv_jb_dim_tmp   jbt
7397           ,pji_rm_res_f         fct
7398           ,pji_pmv_org_dim_tmp  hou
7399           ,pa_resources_denorm  resd
7400           ,pa_implementations_all imp
7401         WHERE
7402                fct.expenditure_org_id = hou.id
7403            AND fct.expenditure_organization_id = horg.id
7404            AND fct.time_id = time.id
7405            AND fct.period_type_id = time.period_type
7406            AND fct.calendar_type  = decode(fct.period_type_id,1, 'C',time.calendar_type)
7407            AND time.id is not null
7408            AND fct.job_id = jbt.id
7409            AND fct.person_id = resd.person_id
7410            AND resd.resource_organization_id = horg.id
7411            AND TO_DATE(p_as_of_date,'j') between resd.resource_effective_start_date and
7412                resd.resource_effective_end_date
7413            AND hou.id = imp.org_id
7414         -- get prior year values
7415         UNION ALL
7416         SELECT /*+ ORDERED */
7417            resd.resource_name                      resource_name
7418           ,fct.person_id                          resource_id
7419           ,0                                       expected_hours
7420           ,0                                       capacity_hours
7421           ,null                                    missing_hours
7422           ,0                                       actual_weighted_hours
7423           ,0                                       sch_conf_weighted_hours
7424           ,0                                       sch_prov_weighted_hours
7425           ,0                                       expected_bill_weighted_hours
7426           ,0                                       expected_traing_traing_hours
7427           ,0                                       actual_hours
7428           ,0                                       exp_ac_capacity_hours
7429           ,0                                       exp_ac_actual_hours
7430           ,0                                       exp_sch_capacity_hours
7431           ,0                                       exp_sch_actual_hours
7432           ,fct.total_wtd_org_hrs_a
7433              / decode(l_labor_unit, 'DAYS', imp.FTE_DAY, 'WEEKS',imp.FTE_WEEK, 1)      prior_actual_weighted_hours
7434           ,(fct.capacity_hrs-NVL(fct.reduce_capacity_hrs_a,0))
7435              / decode(l_labor_unit, 'DAYS', imp.FTE_DAY, 'WEEKS',imp.FTE_WEEK, 1)      prior_capacity_hours
7436           ,fct.total_hrs_a / decode(l_labor_unit, 'DAYS', imp.FTE_DAY, 'WEEKS',imp.FTE_WEEK, 1)
7437                                                                                        prior_actual_hours
7438         FROM
7439            pji_pmv_orgz_dim_tmp horg
7440           ,pji_pmv_time_dim_tmp time
7441           ,pji_pmv_jb_dim_tmp   jbt
7442           ,pji_rm_res_f         fct
7443           ,pji_pmv_org_dim_tmp  hou
7444           ,pa_resources_denorm  resd
7445           ,pa_implementations_all imp
7446         WHERE
7447                fct.expenditure_org_id = hou.id
7448            AND fct.expenditure_organization_id = horg.id
7449            AND fct.time_id = time.prior_id
7450            AND fct.period_type_id = time.period_type
7451            AND fct.calendar_type  = decode(fct.period_type_id,1, 'C',time.calendar_type)
7452            AND time.prior_id is not null
7453            AND fct.job_id = jbt.id
7454            AND fct.person_id = resd.person_id
7455            AND resd.resource_organization_id = horg.id
7456            AND TO_DATE(p_as_of_date,'j') between resd.resource_effective_start_date and
7457                resd.resource_effective_end_date
7458            AND hou.id = imp.org_id
7459         -- get the data for the resources who doens't have data
7460         UNION ALL
7461         SELECT
7462            resd.resource_name                      resource_name
7463           ,resd.person_id                          resource_id
7464           ,0                                       expected_hours
7465           ,0                                       capacity_hours
7466           ,null                                    missing_hours
7467           ,0                                       actual_weighted_hours
7468           ,0                                       sch_conf_weighted_hours
7469           ,0                                       sch_prov_weighted_hours
7470           ,0                                       expected_bill_weighted_hours
7471           ,0                                       expected_traing_traing_hours
7472           ,0                                       actual_hours
7473           ,0                                       exp_ac_capacity_hours
7474           ,0                                       exp_ac_actual_hours
7475           ,0                                       exp_sch_capacity_hours
7476           ,0                                       exp_sch_actual_hours
7477           ,0                                       prior_actual_weighted_hours
7478           ,0                                       prior_capacity_hours
7479           ,0                                       prior_actual_hours
7480         FROM
7481            pji_pmv_orgz_dim_tmp horg
7482           ,pji_pmv_jb_dim_tmp  jbt
7483           ,pa_resources_denorm resd
7484         WHERE
7485            resd.resource_organization_id = horg.id
7486            AND resd.utilization_flag = 'Y'
7487            AND resd.job_id = jbt.id
7488            AND TO_DATE(p_as_of_date,'j') between resd.resource_effective_start_date and
7489                resd.resource_effective_end_date
7490         )
7491      GROUP BY resource_name, resource_id;
7492 
7493  /*
7494   * If util_categories<>null and job_level=null
7495   */
7496   ELSIF l_util_categories_param = 'Y' AND l_job_level_param = 'N' THEN
7497      SELECT PJI_REP_U8( resource_name
7498                        ,resource_id
7499                        ,SUM(expected_hours)
7500                        ,SUM(capacity_hours-reduce_capacity_hours)
7501                        ,SUM(missing_hours)
7502                        ,SUM(actual_weighted_hours)
7503                        ,SUM(sch_conf_weighted_hours)
7504                        ,SUM(sch_prov_weighted_hours)
7505                        ,SUM(expected_bill_weighted_hours)
7506                        ,SUM(expected_training_hours)
7507                        ,SUM(prior_actual_weighted_hours)
7508                        ,SUM(prior_capacity_hours-prior_red_capacity_hours)
7509                        ,SUM(DECODE(l_util_percent_denom_prof,'CAPACITY',
7510                             capacity_hours-reduce_capacity_hours,actual_hours))
7511                        ,SUM(decode(l_util_percent_denom_prof, 'CAPACITY',
7512                             capacity_hours-exp_ac_red_capacity_hours, exp_ac_actual_hours))
7513                        ,SUM(decode(l_util_percent_denom_prof, 'CAPACITY',
7514                             capacity_hours-exp_sch_red_capacity_hours, exp_sch_actual_hours))
7515                        ,SUM(DECODE(l_util_percent_denom_prof,'CAPACITY',
7516                             prior_capacity_hours-prior_red_capacity_hours,prior_actual_hours)),
7517                         null,null,null,null,null,null,
7518                         null,null,null,null,null,null,
7519                         null,null,null,null,null,null,
7520                         null,null,null
7521                        )
7522      BULK COLLECT INTO l_u8_tbl
7523      /* Bug 3515594 */
7524      FROM
7525         (
7526         -- get current year values
7527         SELECT /*+ ORDERED */
7528            resd.resource_name                                            resource_name
7529           ,fct.person_id                                                 resource_id
7530           ,DECODE(time.amount_type,0,fct.total_hrs_a,fct.conf_hrs_s)
7531              / decode(l_labor_unit, 'DAYS', imp.FTE_DAY, 'WEEKS',imp.FTE_WEEK, 1)      expected_hours
7532           ,0                                                                           capacity_hours
7533           ,0                                                                           reduce_capacity_hours
7534           ,null                                                                        missing_hours
7535           ,DECODE(time.amount_type,0,fct.total_hrs_a,0)* wtb.org_utilization_percentage/100
7536              / decode(l_labor_unit, 'DAYS', imp.FTE_DAY, 'WEEKS',imp.FTE_WEEK, 1)      actual_weighted_hours
7537           ,DECODE(time.amount_type,1,fct.conf_hrs_s,0)* wtb.org_utilization_percentage/100
7538              / decode(l_labor_unit, 'DAYS', imp.FTE_DAY, 'WEEKS',imp.FTE_WEEK, 1)      sch_conf_weighted_hours
7539           ,DECODE(time.amount_type,1,fct.prov_hrs_s,0)* wtb.org_utilization_percentage/100
7540              / decode(l_labor_unit, 'DAYS', imp.FTE_DAY, 'WEEKS',imp.FTE_WEEK, 1)      sch_prov_weighted_hours
7541           ,(case when time.amount_type=0 then
7542              fct.bill_hrs_a*wtb.org_utilization_percentage/100
7543              when time.amount_type=1 and wtb.billable_capitalizable_flag='Y' then
7544              fct.conf_hrs_s*wtb.org_utilization_percentage/100
7545              else 0 end) * decode(l_labor_unit, 'DAYS', imp.FTE_DAY, 'WEEKS',imp.FTE_WEEK, 1)
7546                                                                                        expected_bill_weighted_hours
7547           ,(case when time.amount_type=0 and wtb.training_flag='Y' then fct.total_hrs_a
7548              when time.amount_type=1 and wtb.training_flag='Y' then fct.conf_hrs_s
7549              else 0 end) / decode(l_labor_unit, 'DAYS', imp.FTE_DAY, 'WEEKS',imp.FTE_WEEK, 1)
7550                                                                                        expected_training_hours
7551           ,fct.total_hrs_a / decode(l_labor_unit, 'DAYS', imp.FTE_DAY, 'WEEKS',imp.FTE_WEEK, 1)
7552                                                                                        actual_hours
7553           ,0                                                                           exp_ac_red_capacity_hours
7554           ,decode(time.amount_type, 0, fct.total_hrs_a, 0)
7555              / decode(l_labor_unit, 'DAYS', imp.FTE_DAY, 'WEEKS',imp.FTE_WEEK, 1)
7556                                                                                        exp_ac_actual_hours
7557           ,0                                                                           exp_sch_red_capacity_hours
7558           ,decode(time.amount_type, 0, 0, fct.total_hrs_a)
7559              / decode(l_labor_unit, 'DAYS', imp.FTE_DAY, 'WEEKS',imp.FTE_WEEK, 1)
7560                                                                                        exp_sch_actual_hours
7561           ,0                                                             prior_actual_weighted_hours
7562           ,0                                                             prior_capacity_hours
7563           ,0                                                             prior_red_capacity_hours
7564           ,0                                                             prior_actual_hours
7565         FROM
7566            pji_pmv_orgz_dim_tmp horg
7567           ,pji_pmv_time_dim_tmp time
7568           ,pji_pmv_wt_dim_tmp   wt
7569           ,pji_rm_res_wt_f      fct
7570           ,pji_pmv_org_dim_tmp  hou
7571           ,pa_work_types_b      wtb
7572           ,pa_resources_denorm  resd
7573           ,pa_implementations_all imp
7574         WHERE
7575            fct.expenditure_org_id = hou.id
7576            AND fct.expenditure_organization_id = horg.id
7577            AND fct.time_id = time.id
7578            AND fct.period_type_id = time.period_type
7579            AND fct.calendar_type  = decode(fct.period_type_id,1, 'C',time.calendar_type)
7580            AND time.id is not null
7581            AND fct.work_type_id = wt.id
7582            AND wtb.work_type_id = wt.id
7583            AND fct.person_id = resd.person_id
7584            AND resd.resource_organization_id = horg.id
7585            AND TO_DATE(p_as_of_date,'j') between resd.resource_effective_start_date and
7586                resd.resource_effective_end_date
7587            AND hou.id = imp.org_id
7588         -- get prior year values
7589         UNION ALL
7590         SELECT
7591            resd.resource_name                      resource_name
7592           ,fct.person_id                           resource_id
7593           ,0                                       expected_hours
7594           ,0                                       capacity_hours
7595           ,0                                       reduce_capacity_hours
7596           ,null                                    missing_hours
7597           ,0                                       actual_weighted_hours
7598           ,0                                       sch_conf_weighted_hours
7599           ,0                                       sch_prov_weighted_hours
7600           ,0                                       expected_bill_weighted_hours
7601           ,0                                       expected_traing_hours
7602           ,0                                       actual_hours
7603           ,0                                       exp_ac_red_capacity_hours
7604           ,0                                       exp_ac_actual_hours
7605           ,0                                       exp_sch_red_capacity_hours
7606           ,0                                       exp_sch_actual_hours
7607           ,fct.total_hrs_a * wtb.org_utilization_percentage/100
7608              / decode(l_labor_unit, 'DAYS', imp.FTE_DAY, 'WEEKS',imp.FTE_WEEK, 1)     prior_actual_weighted_hours
7609           ,0                                       prior_capacity_hours
7610           ,0                                       prior_red_capacity_hours
7611           ,fct.total_hrs_a  / decode(l_labor_unit, 'DAYS', imp.FTE_DAY, 'WEEKS',imp.FTE_WEEK, 1)
7612                                                                                       prior_actual_hours
7613         FROM
7614            pji_pmv_orgz_dim_tmp horg
7615           ,pji_pmv_time_dim_tmp time
7616           ,pji_pmv_wt_dim_tmp   wt
7617           ,pji_rm_res_wt_f      fct
7618           ,pji_pmv_org_dim_tmp  hou
7619           ,pa_work_types_b      wtb
7620           ,pa_resources_denorm  resd
7621           ,pa_implementations_all imp
7622         WHERE
7623            fct.expenditure_org_id = hou.id
7624            AND fct.expenditure_organization_id = horg.id
7625            AND fct.time_id = time.prior_id
7626            AND fct.period_type_id = time.period_type
7627            AND fct.calendar_type  = decode(fct.period_type_id,1, 'C',time.calendar_type)
7628            AND time.prior_id is not null
7629            AND fct.work_type_id = wt.id
7630            AND wtb.work_type_id = wt.id
7631            AND fct.person_id = resd.person_id
7632            AND resd.resource_organization_id = horg.id
7633            AND TO_DATE(p_as_of_date,'j') between resd.resource_effective_start_date and
7634                resd.resource_effective_end_date
7635            AND fct.expenditure_org_id = imp.org_id
7636         -- get the data for the resources who doesn't have data
7637         UNION ALL
7638         SELECT
7639            resd.resource_name                      resource_name
7640           ,resd.person_id                          resource_id
7641           ,0                                       expected_hours
7642           ,0                                       capacity_hours
7643           ,0                                       reduce_capacity_hours
7644           ,null                                    missing_hours
7645           ,0                                       actual_weighted_hours
7646           ,0                                       sch_conf_weighted_hours
7647           ,0                                       sch_prov_weighted_hours
7648           ,0                                       expected_bill_weighted_hours
7649           ,0                                       expected_traing_hours
7650           ,0                                       actual_hours
7651           ,0                                       exp_ac_red_capacity_hours
7652           ,0                                       exp_ac_actual_hours
7653           ,0                                       exp_sch_red_capacity_hours
7654           ,0                                       exp_sch_actual_hours
7655           ,0                                       prior_actual_weighted_hours
7656           ,0                                       prior_capacity_hours
7657           ,0                                       prior_red_capacity_hours
7658           ,0                                       prior_actual_hours
7659         FROM
7660            pji_pmv_orgz_dim_tmp horg
7661           ,pa_resources_denorm resd
7662         WHERE
7663            resd.resource_organization_id = horg.id
7664            AND resd.utilization_flag = 'Y'
7665            AND TO_DATE(p_as_of_date,'j') between resd.resource_effective_start_date and
7666                resd.resource_effective_end_date
7667         UNION ALL  -- added for current year capacity_hours
7668 	/* Bug 3515594 */
7669         SELECT  /*+ ORDERED */
7670            resd.resource_name                      resource_name
7671           ,resd.person_id                          resource_id
7672           ,0                                       expected_hours
7673           ,fct.capacity_hrs
7674                 / decode(l_labor_unit, 'DAYS', imp.FTE_DAY, 'WEEKS',imp.FTE_WEEK, 1)
7675                                                    capacity_hours
7676           ,decode(time.amount_type, 0, fct.reduce_capacity_hrs_a, reduce_capacity_hrs_s)
7677                 / decode(l_labor_unit, 'DAYS', imp.FTE_DAY, 'WEEKS',imp.FTE_WEEK, 1)
7678                                                    reduce_capacity_hours
7679           ,fct.missing_hrs_a / decode(l_labor_unit, 'DAYS', imp.FTE_DAY, 'WEEKS',imp.FTE_WEEK, 1)
7680                                                    missing_hours
7681           ,0                                       actual_weighted_hours
7682           ,0                                       sch_conf_weighted_hours
7683           ,0                                       sch_prov_weighted_hours
7684           ,0                                       expected_bill_weighted_hours
7685           ,0                                       expected_traing_hours
7686           ,0                                       actual_hours
7687           ,decode(time.amount_type, 0, fct.reduce_capacity_hrs_a, 0)
7688                 / decode(l_labor_unit, 'DAYS', imp.FTE_DAY, 'WEEKS',imp.FTE_WEEK, 1)
7689                                                    exp_ac_red_capacity_hours
7690           ,0                                       exp_ac_actual_hours
7691           ,decode(time.amount_type, 1, fct.reduce_capacity_hrs_s, 0)
7692                 / decode(l_labor_unit, 'DAYS', imp.FTE_DAY, 'WEEKS',imp.FTE_WEEK, 1)
7693                                                    exp_sch_red_capacity_hours
7694           ,0                                       exp_sch_actual_hours
7695           ,0                                       prior_actual_weighted_hours
7696           ,0                                       prior_capacity_hours
7697           ,0                                       prior_red_capacity_hours
7698           ,0                                       prior_actual_hours
7699         FROM
7700            pji_pmv_orgz_dim_tmp horg
7701           ,pji_pmv_time_dim_tmp time
7702           ,pji_rm_res_f         fct
7703           ,pji_pmv_org_dim_tmp  hou
7704           ,pa_resources_denorm  resd
7705           ,pa_implementations_all imp
7706         WHERE
7707            fct.expenditure_org_id = hou.id
7708            AND fct.expenditure_organization_id = horg.id
7709            AND fct.time_id = time.id
7710            AND fct.period_type_id = time.period_type
7711            AND fct.calendar_type  = decode(fct.period_type_id,1, 'C',time.calendar_type)
7712            AND time.id is not null
7713            AND fct.person_id = resd.person_id
7714            AND resd.resource_organization_id = horg.id
7715            AND TO_DATE(p_as_of_date,'j') between resd.resource_effective_start_date and
7716                resd.resource_effective_end_date
7717            AND hou.id = imp.org_id
7718         UNION ALL  -- added for prior year capacity_hours
7719         SELECT  /*+ ORDERED */
7720            resd.resource_name                      resource_name
7721           ,resd.person_id                          resource_id
7722           ,0                                       expected_hours
7723           ,0                                       capacity_hours
7724           ,0                                       reduce_capacity_hours
7725           ,null                                    missing_hours
7726           ,0                                       actual_weighted_hours
7727           ,0                                       sch_conf_weighted_hours
7728           ,0                                       sch_prov_weighted_hours
7729           ,0                                       expected_bill_weighted_hours
7730           ,0                                       expected_traing_hours
7731           ,0                                       actual_hours
7732           ,0                                       exp_ac_red_capacity_hours
7733           ,0                                       exp_ac_actual_hours
7734           ,0                                       exp_sch_red_capacity_hours
7735           ,0                                       exp_sch_actual_hours
7736           ,0                                       prior_actual_weighted_hours
7737           ,fct.capacity_hrs / decode(l_labor_unit, 'DAYS', imp.FTE_DAY, 'WEEKS',imp.FTE_WEEK, 1)
7738                                                    prior_capacity_hours
7739           ,fct.reduce_capacity_hrs_a  / decode(l_labor_unit, 'DAYS', imp.FTE_DAY, 'WEEKS',imp.FTE_WEEK, 1)
7740                                                    prior_red_capacity_hours
7741           ,0                                       prior_actual_hours
7742         FROM
7743            pji_pmv_orgz_dim_tmp horg
7744           ,pji_pmv_time_dim_tmp time
7745           ,pji_rm_res_f         fct
7746           ,pji_pmv_org_dim_tmp  hou
7747           ,pa_resources_denorm  resd
7748           ,pa_implementations_all imp
7749         WHERE
7750            fct.expenditure_org_id = hou.id
7751            AND fct.expenditure_organization_id = horg.id
7752            AND fct.time_id = time.prior_id
7753            AND fct.period_type_id = time.period_type
7754            AND fct.calendar_type  = decode(fct.period_type_id,1, 'C',time.calendar_type)
7755            AND time.prior_id is not null
7756            AND fct.person_id = resd.person_id
7757            AND resd.resource_organization_id = horg.id
7758            AND TO_DATE(p_as_of_date,'j') between resd.resource_effective_start_date and
7759                resd.resource_effective_end_date
7760            AND hou.id = imp.org_id
7761 
7762         )
7763      GROUP BY resource_name, resource_id;
7764 
7765  /*
7766   * If util_categories<>null and job_level<>null
7767   */
7768   ELSIF l_util_categories_param = 'Y' AND l_job_level_param = 'Y' THEN
7769      SELECT PJI_REP_U8( resource_name
7770                        ,resource_id
7771                        ,SUM(expected_hours)
7772                        ,SUM(capacity_hours-reduce_capacity_hours)
7773                        ,SUM(missing_hours)
7774                        ,SUM(actual_weighted_hours)
7775                        ,SUM(sch_conf_weighted_hours)
7776                        ,SUM(sch_prov_weighted_hours)
7777                        ,SUM(expected_bill_weighted_hours)
7778                        ,SUM(expected_training_hours)
7779                        ,SUM(prior_actual_weighted_hours)
7780                        ,SUM(prior_capacity_hours-prior_red_capacity_hours)
7781                        ,SUM(DECODE(l_util_percent_denom_prof,'CAPACITY',
7782                             capacity_hours-reduce_capacity_hours,actual_hours))
7783                        ,SUM(decode(l_util_percent_denom_prof, 'CAPACITY',
7784                             capacity_hours-exp_ac_red_capacity_hours, exp_ac_actual_hours))
7785                        ,SUM(decode(l_util_percent_denom_prof, 'CAPACITY',
7786                             capacity_hours-exp_sch_red_capacity_hours, exp_sch_actual_hours))
7787                        ,SUM(DECODE(l_util_percent_denom_prof,'CAPACITY',
7788                             prior_capacity_hours-prior_red_capacity_hours,prior_actual_hours)),
7789                         null,null,null,null,null,null,
7790                         null,null,null,null,null,null,
7791                         null,null,null,null,null,null,
7792                         null,null,null
7793                        )
7794      BULK COLLECT INTO l_u8_tbl
7795      /* Bug 3515594 */
7796      FROM
7797         (
7798         -- get current year values
7799         SELECT /*+ ORDERED */
7800            resd.resource_name                                            resource_name
7801           ,fct.person_id                                                 resource_id
7802           ,DECODE(time.amount_type,0,fct.total_hrs_a,fct.conf_hrs_s)
7803              / decode(l_labor_unit, 'DAYS', imp.FTE_DAY, 'WEEKS',imp.FTE_WEEK, 1)      expected_hours
7804           ,0                                                                           capacity_hours
7805           ,0                                                                           reduce_capacity_hours
7806           ,null                                                                        missing_hours
7807           ,DECODE(time.amount_type,0,fct.total_hrs_a,0)* wtb.org_utilization_percentage/100
7808              / decode(l_labor_unit, 'DAYS', imp.FTE_DAY, 'WEEKS',imp.FTE_WEEK, 1)      actual_weighted_hours
7809           ,DECODE(time.amount_type,1,fct.conf_hrs_s,0)* wtb.org_utilization_percentage/100
7810              / decode(l_labor_unit, 'DAYS', imp.FTE_DAY, 'WEEKS',imp.FTE_WEEK, 1)      sch_conf_weighted_hours
7811           ,DECODE(time.amount_type,1,fct.prov_hrs_s,0)* wtb.org_utilization_percentage/100
7812              / decode(l_labor_unit, 'DAYS', imp.FTE_DAY, 'WEEKS',imp.FTE_WEEK, 1)      sch_prov_weighted_hours
7813           ,(case when time.amount_type=0 and wtb.billable_capitalizable_flag='Y' then
7814              fct.total_hrs_a*wtb.org_utilization_percentage/100
7815              when time.amount_type=1 and wtb.billable_capitalizable_flag='Y' then
7816              fct.conf_hrs_s*wtb.org_utilization_percentage/100 else 0 end)
7817              / decode(l_labor_unit, 'DAYS', imp.FTE_DAY, 'WEEKS',imp.FTE_WEEK, 1)
7818                                                                                        expected_bill_weighted_hours
7819           ,(case when time.amount_type=0 and wtb.training_flag='Y' then fct.total_hrs_a
7820              when time.amount_type=1 and wtb.training_flag='Y' then fct.conf_hrs_s else 0 end)
7821              / decode(l_labor_unit, 'DAYS', imp.FTE_DAY, 'WEEKS',imp.FTE_WEEK, 1)
7822                                                                                        expected_training_hours
7823           ,fct.total_hrs_a / decode(l_labor_unit, 'DAYS', imp.FTE_DAY, 'WEEKS',imp.FTE_WEEK, 1)
7824                                                                                        actual_hours
7825           ,0                                                                           exp_ac_red_capacity_hours
7826           ,decode(time.amount_type, 0, fct.total_hrs_a, 0)
7827              / decode(l_labor_unit, 'DAYS', imp.FTE_DAY, 'WEEKS',imp.FTE_WEEK, 1)
7828                                                                                        exp_ac_actual_hours
7829           ,0                                                                           exp_sch_red_capacity_hours
7830           ,decode(time.amount_type, 0, 0, fct.total_hrs_a)
7831              / decode(l_labor_unit, 'DAYS', imp.FTE_DAY, 'WEEKS',imp.FTE_WEEK, 1)
7832                                                                                        exp_sch_actual_hours
7833           ,0                                                             prior_actual_weighted_hours
7834           ,0                                                             prior_capacity_hours
7835           ,0                                                             prior_red_capacity_hours
7836           ,0                                                             prior_actual_hours
7837         FROM
7838            pji_pmv_orgz_dim_tmp horg
7839           ,pji_pmv_time_dim_tmp time
7840           ,pji_pmv_wt_dim_tmp   wt
7841           ,pji_rm_res_wt_f      fct
7842           ,pji_pmv_jb_dim_tmp   jbt
7843           ,pji_pmv_org_dim_tmp  hou
7844           ,pa_work_types_b      wtb
7845           ,pa_resources_denorm  resd
7846           ,pa_implementations_all imp
7847         WHERE
7848            fct.expenditure_org_id = hou.id
7849            AND fct.expenditure_organization_id = horg.id
7850            AND fct.time_id = time.id
7851            AND fct.period_type_id = time.period_type
7852            AND fct.calendar_type  = decode(fct.period_type_id,1, 'C',time.calendar_type)
7853            AND time.id is not null
7854            AND fct.work_type_id = wt.id
7855            AND wtb.work_type_id = wt.id
7856            AND fct.job_id = jbt.id
7857            AND fct.person_id = resd.person_id
7858            AND resd.resource_organization_id = horg.id
7859            AND TO_DATE(p_as_of_date,'j') between resd.resource_effective_start_date and
7860                resd.resource_effective_end_date
7861            AND hou.id = imp.org_id
7862         -- get prior year values
7863         UNION ALL
7864         SELECT
7865            resd.resource_name                      resource_name
7866           ,fct.person_id                           resource_id
7867           ,0                                       expected_hours
7868           ,0                                       capacity_hours
7869           ,0                                       reduce_capacity_hours
7870           ,null                                    missing_hours
7871           ,0                                       actual_weighted_hours
7872           ,0                                       sch_conf_weighted_hours
7873           ,0                                       sch_prov_weighted_hours
7874           ,0                                       expected_bill_weighted_hours
7875           ,0                                       expected_traing_hours
7876           ,0                                       actual_hours
7877           ,0                                       exp_ac_red_capacity_hours
7878           ,0                                       exp_ac_actual_hours
7879           ,0                                       exp_sch_red_capacity_hours
7880           ,0                                       exp_sch_actual_hours
7881           ,(fct.total_hrs_a * wtb.org_utilization_percentage/100)
7882              / decode(l_labor_unit, 'DAYS', imp.FTE_DAY, 'WEEKS',imp.FTE_WEEK, 1)     prior_actual_weighted_hours
7883           ,0                                       prior_capacity_hours
7884           ,(CASE WHEN wtb.reduce_capacity_flag = 'Y' THEN fct.total_hrs_a ELSE 0 END)
7885              / decode(l_labor_unit, 'DAYS', imp.FTE_DAY, 'WEEKS',imp.FTE_WEEK, 1)     prior_red_capacity_hours
7886           ,fct.total_hrs_a  / decode(l_labor_unit, 'DAYS', imp.FTE_DAY, 'WEEKS',imp.FTE_WEEK, 1)
7887                                                                                       prior_actual_hours
7888         FROM
7889            pji_pmv_orgz_dim_tmp horg
7890           ,pji_pmv_time_dim_tmp time
7891           ,pji_pmv_wt_dim_tmp   wt
7892           ,pji_rm_res_wt_f      fct
7893           ,pji_pmv_jb_dim_tmp   jbt
7894           ,pji_pmv_org_dim_tmp  hou
7895           ,pa_work_types_b      wtb
7896           ,pa_resources_denorm  resd
7897           ,pa_implementations_all imp
7898         WHERE
7899            fct.expenditure_org_id = hou.id
7900            AND fct.expenditure_organization_id = horg.id
7901            AND fct.time_id = time.prior_id
7902            AND fct.period_type_id = time.period_type
7903            AND fct.calendar_type  = decode(fct.period_type_id,1, 'C',time.calendar_type)
7904            AND time.prior_id is not null
7905            AND fct.work_type_id = wt.id
7906            AND wtb.work_type_id = wt.id
7907            AND fct.job_id = jbt.id
7908            AND fct.person_id = resd.person_id
7909            AND resd.resource_organization_id = horg.id
7910            AND TO_DATE(p_as_of_date,'j') between resd.resource_effective_start_date and
7911                resd.resource_effective_end_date
7912            AND fct.expenditure_org_id = imp.org_id
7913         -- get the data for the resources who doesn't have data
7914         UNION ALL
7915         SELECT
7916            resd.resource_name                      resource_name
7917           ,resd.person_id                          resource_id
7918           ,0                                       expected_hours
7919           ,0                                       capacity_hours
7920           ,0                                       reduce_capacity_hours
7921           ,null                                    missing_hours
7922           ,0                                       actual_weighted_hours
7923           ,0                                       sch_conf_weighted_hours
7924           ,0                                       sch_prov_weighted_hours
7925           ,0                                       expected_bill_weighted_hours
7926           ,0                                       expected_traing_hours
7927           ,0                                       actual_hours
7928           ,0                                       exp_ac_red_capacity_hours
7929           ,0                                       exp_ac_actual_hours
7930           ,0                                       exp_sch_red_capacity_hours
7931           ,0                                       exp_sch_actual_hours
7932           ,0                                       prior_actual_weighted_hours
7933           ,0                                       prior_capacity_hours
7934           ,0                                       prior_red_capacity_hours
7935           ,0                                       prior_actual_hours
7936         FROM
7937            pa_resources_denorm resd
7938           ,pji_pmv_orgz_dim_tmp horg
7939           ,pji_pmv_jb_dim_tmp  jbt
7940         WHERE
7941            resd.resource_organization_id = horg.id
7942            AND resd.utilization_flag = 'Y'
7943            AND resd.job_id = jbt.id
7944            AND TO_DATE(p_as_of_date,'j') between resd.resource_effective_start_date and
7945                resd.resource_effective_end_date
7946 
7947         UNION ALL  -- added for current year capacity_hours
7948 	/* Bug 3515594 */
7949         SELECT   /*+ ORDERED */
7950            resd.resource_name                      resource_name
7951           ,resd.person_id                          resource_id
7952           ,0                                       expected_hours
7953           ,fct.capacity_hrs / decode(l_labor_unit, 'DAYS', imp.FTE_DAY, 'WEEKS',imp.FTE_WEEK, 1)
7954                                                    capacity_hours
7955           ,decode(time.amount_type, 0, fct.reduce_capacity_hrs_a, fct.reduce_capacity_hrs_s)
7956              / decode(l_labor_unit, 'DAYS', imp.FTE_DAY, 'WEEKS',imp.FTE_WEEK, 1)
7957                                                    reduce_capacity_hours
7958           ,fct.missing_hrs_a / decode(l_labor_unit, 'DAYS', imp.FTE_DAY, 'WEEKS',imp.FTE_WEEK, 1)
7959                                                    missing_hours
7960           ,0                                       actual_weighted_hours
7961           ,0                                       sch_conf_weighted_hours
7962           ,0                                       sch_prov_weighted_hours
7963           ,0                                       expected_bill_weighted_hours
7964           ,0                                       expected_traing_hours
7965           ,0                                       actual_hours
7966           ,decode(time.amount_type, 0, fct.reduce_capacity_hrs_a, 0)
7967              / decode(l_labor_unit, 'DAYS', imp.FTE_DAY, 'WEEKS',imp.FTE_WEEK, 1)
7968                                                    exp_ac_red_capacity_hours
7969           ,0                                       exp_ac_actual_hours
7970           ,decode(time.amount_type, 1, fct.reduce_capacity_hrs_s, 0)
7971              / decode(l_labor_unit, 'DAYS', imp.FTE_DAY, 'WEEKS',imp.FTE_WEEK, 1)      exp_sch_red_capacity_hours
7972           ,0                                       exp_sch_actual_hours
7973           ,0                                       prior_actual_weighted_hours
7974           ,0                                       prior_capacity_hours
7975           ,0                                       prior_red_capacity_hours
7976           ,0                                       prior_actual_hours
7977         FROM
7978            pji_pmv_orgz_dim_tmp horg
7979           ,pji_pmv_time_dim_tmp time
7980           ,pji_pmv_jb_dim_tmp   jbt
7981           ,pji_rm_res_f         fct
7982           ,pji_pmv_org_dim_tmp  hou
7983           ,pa_resources_denorm  resd
7984           ,pa_implementations_all imp
7985         WHERE
7986            fct.expenditure_org_id = hou.id
7987            AND fct.expenditure_organization_id = horg.id
7988            AND fct.time_id = time.id
7989            AND fct.period_type_id = time.period_type
7990            AND fct.calendar_type  = decode(fct.period_type_id,1, 'C',time.calendar_type)
7991            AND time.id is not null
7992            AND fct.job_id = jbt.id
7993            AND fct.person_id = resd.person_id
7994            AND resd.resource_organization_id = horg.id
7995            AND TO_DATE(p_as_of_date,'j') between resd.resource_effective_start_date and
7996                resd.resource_effective_end_date
7997            AND hou.id = imp.org_id
7998 
7999         UNION ALL  -- added for prior year capacity_hours
8000         SELECT  /*+ ORDERED */
8001            resd.resource_name                      resource_name
8002           ,resd.person_id                          resource_id
8003           ,0                                       expected_hours
8004           ,0                                       capacity_hours
8005           ,0                                       reduce_capacity_hours
8006           ,null                                    missing_hours
8007           ,0                                       actual_weighted_hours
8008           ,0                                       sch_conf_weighted_hours
8009           ,0                                       sch_prov_weighted_hours
8010           ,0                                       expected_bill_weighted_hours
8011           ,0                                       expected_traing_hours
8012           ,0                                       actual_hours
8013           ,0                                       exp_ac_red_capacity_hours
8014           ,0                                       exp_ac_actual_hours
8015           ,0                                       exp_sch_red_capacity_hours
8016           ,0                                       exp_sch_actual_hours
8017           ,0                                       prior_actual_weighted_hours
8018           ,fct.capacity_hrs * decode(l_labor_unit, 'DAYS', imp.FTE_DAY, 'WEEKS',imp.FTE_WEEK, 1)
8019                                                    prior_capacity_hours
8020           ,fct.reduce_capacity_hrs_a * decode(l_labor_unit, 'DAYS', imp.FTE_DAY, 'WEEKS',imp.FTE_WEEK, 1)
8021                                                    prior_red_capacity_hours
8022           ,0                                       prior_actual_hours
8023         FROM
8024            pji_pmv_orgz_dim_tmp horg
8025           ,pji_pmv_time_dim_tmp time
8026           ,pji_pmv_jb_dim_tmp   jbt
8027           ,pji_rm_res_f         fct
8028           ,pji_pmv_org_dim_tmp  hou
8029           ,pa_resources_denorm  resd
8030           ,pa_implementations_all imp
8031         WHERE
8032            fct.expenditure_org_id = hou.id
8033            AND fct.expenditure_organization_id = horg.id
8034            AND fct.time_id = time.prior_id
8035            AND fct.period_type_id = time.period_type
8036            AND fct.calendar_type  = decode(fct.period_type_id,1, 'C',time.calendar_type)
8037            AND time.prior_id is not null
8038            AND fct.job_id = jbt.id
8039            AND fct.person_id = resd.person_id
8040            AND resd.resource_organization_id = horg.id
8041            AND TO_DATE(p_as_of_date,'j') between resd.resource_effective_start_date and
8042                resd.resource_effective_end_date
8043            AND hou.id = imp.org_id
8044         )
8045      GROUP BY resource_name, resource_id;
8046 
8047     END IF;
8048 
8049     FOR i in 1..l_u8_tbl.COUNT
8050        LOOP
8051 
8052          l_expected_hours              := l_expected_hours                    + nvl(l_u8_tbl(i).expected_hours,0);
8053          l_capacity_hours              := l_capacity_hours                    + nvl(l_u8_tbl(i).capacity_hours,0);
8054          l_missing_hours               := l_missing_hours                     + nvl(l_u8_tbl(i).missing_hours,0);
8055          l_actual_weighted_hours       := l_actual_weighted_hours             + nvl(l_u8_tbl(i).actual_weighted_hours,0);
8056          l_sch_conf_weighted_hours     := l_sch_conf_weighted_hours           + nvl(l_u8_tbl(i).sch_conf_weighted_hours,0);
8057          l_sch_prov_weighted_hours     := l_sch_prov_weighted_hours           + nvl(l_u8_tbl(i).sch_prov_weighted_hours,0);
8058          l_expected_bill_weighted_hours := l_expected_bill_weighted_hours     + nvl(l_u8_tbl(i).expected_bill_weighted_hours,0);
8059          l_expected_training_hours     := l_expected_training_hours           + nvl(l_u8_tbl(i).expected_training_hours,0);
8060          l_prior_actual_weighted_hours := l_prior_actual_weighted_hours       + nvl(l_u8_tbl(i).prior_actual_weighted_hours,0);
8061          l_util_percent_denom_hours    := l_util_percent_denom_hours          + nvl(l_u8_tbl(i).util_percent_denom_hours,0);
8062          l_exp_ac_util_percent_denom   := l_exp_ac_util_percent_denom         + nvl(l_u8_tbl(i).exp_ac_util_percent_denom,0);
8063          l_exp_sch_util_percent_denom  := l_exp_sch_util_percent_denom        + nvl(l_u8_tbl(i).exp_sch_util_percent_denom,0);
8064          l_prior_util_denom := l_prior_util_denom + nvl(l_u8_tbl(i).prior_util_percent_denom_hours,0);
8065 
8066          --Calculated columns processing is done below
8067          IF nvl(l_u8_tbl(i).exp_ac_util_percent_denom,0) <> 0 THEN
8068            l_u8_tbl(i).act_util_percent     := 100 * (l_u8_tbl(i).actual_weighted_hours / l_u8_tbl(i).exp_ac_util_percent_denom);
8069          ELSE
8070            l_u8_tbl(i).act_util_percent     := NULL;
8071          END IF;
8072 
8073          IF nvl(l_u8_tbl(i).exp_sch_util_percent_denom,0) <> 0 THEN
8074            l_u8_tbl(i).sch_util_percent     := 100 * (l_u8_tbl(i).sch_conf_weighted_hours / l_u8_tbl(i).exp_sch_util_percent_denom);
8075            l_u8_tbl(i).prov_sch_util_percent := 100 * (l_u8_tbl(i).sch_prov_weighted_hours / l_u8_tbl(i).exp_sch_util_percent_denom);
8076 
8077          ELSE
8078            l_u8_tbl(i).sch_util_percent     := NULL;
8079            l_u8_tbl(i).prov_sch_util_percent := NULL;
8080          END IF;
8081 
8082          IF nvl(l_u8_tbl(i).util_percent_denom_hours,0) <> 0 THEN
8083            l_u8_tbl(i).exp_util_percent     := 100 * ((l_u8_tbl(i).actual_weighted_hours + l_u8_tbl(i).sch_conf_weighted_hours) / l_u8_tbl(i).util_percent_denom_hours);
8084            l_u8_tbl(i).exp_total_util_percent     := 100 * ((l_u8_tbl(i).actual_weighted_hours + l_u8_tbl(i).sch_conf_weighted_hours + l_u8_tbl(i).sch_prov_weighted_hours) / l_u8_tbl(i).util_percent_denom_hours);
8085            l_u8_tbl(i).exp_bill_util_percent     := 100 * ( l_u8_tbl(i).expected_bill_weighted_hours / l_u8_tbl(i).util_percent_denom_hours);
8086            l_u8_tbl(i).exp_nonbill_util_percent     := 100 * ((l_u8_tbl(i).actual_weighted_hours + l_u8_tbl(i).sch_conf_weighted_hours - l_u8_tbl(i).expected_bill_weighted_hours) / l_u8_tbl(i).util_percent_denom_hours);
8087            l_u8_tbl(i).exp_training_percent     := 100 * (l_u8_tbl(i).expected_training_hours/ l_u8_tbl(i).util_percent_denom_hours);
8088 
8089 
8090          ELSE
8091            l_u8_tbl(i).exp_util_percent     := NULL;
8092            l_u8_tbl(i).exp_total_util_percent := NULL;
8093            l_u8_tbl(i).exp_bill_util_percent    := NULL;
8094            l_u8_tbl(i).exp_nonbill_util_percent := NULL;
8095            l_u8_tbl(i).exp_training_percent     := NULL;
8096          END IF;
8097 
8098          IF nvl(l_u8_tbl(i).prior_util_percent_denom_hours,0) <> 0 THEN
8099            l_u8_tbl(i).prior_util_percent     := 100 * (l_u8_tbl(i).prior_actual_weighted_hours / l_u8_tbl(i).prior_util_percent_denom_hours);
8100          ELSE
8101            l_u8_tbl(i).prior_util_percent     := NULL;
8102          END IF;
8103 
8104    END LOOP;
8105 
8106    IF l_u8_tbl.COUNT > 0 THEN
8107    FOR i IN 1..l_u8_tbl.COUNT
8108 	LOOP
8109 
8110       IF l_u8_tbl.EXISTS(i) THEN
8111 
8112         l_u8_tbl(i).PJI_REP_TOTAL_1 := l_expected_hours;
8113         l_u8_tbl(i).PJI_REP_TOTAL_2 := l_capacity_hours;
8114         l_u8_tbl(i).PJI_REP_TOTAL_3 := l_missing_hours;
8115 
8116         IF nvl(l_exp_ac_util_percent_denom,0) <> 0 THEN
8117           l_u8_tbl(i).PJI_REP_TOTAL_4      := (l_actual_weighted_hours/l_exp_ac_util_percent_denom)*100;
8118         END IF;
8119 
8120         IF nvl(l_exp_sch_util_percent_denom,0) <> 0 THEN
8121           l_u8_tbl(i).PJI_REP_TOTAL_5      := (l_sch_conf_weighted_hours/l_exp_sch_util_percent_denom)*100;
8122           l_u8_tbl(i).PJI_REP_TOTAL_7      := (l_sch_prov_weighted_hours/l_exp_sch_util_percent_denom)*100;
8123 
8124         END IF;
8125 
8126         IF nvl(l_util_percent_denom_hours,0) <> 0 THEN
8127           l_u8_tbl(i).PJI_REP_TOTAL_6      := ((l_actual_weighted_hours + l_sch_conf_weighted_hours)/l_util_percent_denom_hours)*100;
8128           l_u8_tbl(i).PJI_REP_TOTAL_8      := ((l_actual_weighted_hours + l_sch_conf_weighted_hours + l_sch_prov_weighted_hours)/l_util_percent_denom_hours)*100;
8129           l_u8_tbl(i).PJI_REP_TOTAL_10      := (l_expected_bill_weighted_hours/l_util_percent_denom_hours)*100;
8130           l_u8_tbl(i).PJI_REP_TOTAL_11      := ((l_actual_weighted_hours + l_sch_conf_weighted_hours - l_expected_bill_weighted_hours)/l_util_percent_denom_hours)*100;
8131           l_u8_tbl(i).PJI_REP_TOTAL_12      := (l_expected_training_hours/l_util_percent_denom_hours)*100;
8132 
8133         END IF;
8134 
8135         IF nvl(l_prior_util_denom,0) <> 0 THEN
8136           l_u8_tbl(i).PJI_REP_TOTAL_9      := (l_prior_actual_weighted_hours/l_prior_util_denom)*100;
8137         END IF;
8138 
8139 
8140       END IF; -- l_u8_tbl.EXISTS(i)
8141 	END LOOP;
8142     END IF; --l_u8_tbl.COUNT > 0
8143 
8144 
8145  /*
8146   * Return the bulk collected table back to pmv.
8147   */
8148   COMMIT;
8149   RETURN l_u8_tbl;
8150 
8151 
8152 END PLSQLDriver_PJI_REP_U8;
8153 
8154 
8155 END PJI_PMV_UTLZ;