DBA Data[Home] [Help]

PACKAGE BODY: APPS.PJI_PMV_PROFITABILITY

Source


1 PACKAGE BODY PJI_PMV_PROFITABILITY AS
2 /* $Header: PJIRF04B.pls 120.6 2005/11/24 07:22:41 appldev noship $ */
3 
4 G_Report_Cost_Type VARCHAR2(2);
5 
6 PROCEDURE GET_SQL_PJI_REP_PP1(p_page_parameter_tbl IN BIS_PMV_PAGE_PARAMETER_TBL
7 	         		, x_PMV_Sql OUT NOCOPY VARCHAR2
8                     		, x_PMV_Output OUT NOCOPY BIS_QUERY_ATTRIBUTES_TBL)
9 IS
10 l_Err_Message   VARCHAR2(3200);
11 l_PMV_Sql       VARCHAR2(3200);
12 	BEGIN
13 
14 		PJI_PMV_ENGINE.Generate_SQL(P_PAGE_PARAMETER_TBL => p_page_parameter_tbl
15 				, P_SELECT_LIST =>
16 				  ' FACT.CT_REVENUE  "PJI_REP_MSR_14"
17 				  , FACT.CT_MARGIN_PERCENT  "PJI_REP_MSR_15"
18 				  , FACT.REVENUE  "PJI_REP_MSR_16"
19 				  , FACT.MARGIN_PERCENT  "PJI_REP_MSR_17"
20 				  , FACT.CT_BURDENED_COST  "PJI_REP_MSR_19"
21 				  , FACT.BURDENED_COST  "PJI_REP_MSR_8"
22 				  , FACT.REVENUE  "PJI_REP_MSR_1"
23 				  , FACT.MARGIN  "PJI_REP_MSR_2"
24 				  , FACT.REVENUE  "PJI_REP_MSR_7"
25 				  , FACT.REV_CHANGE_PERCENT  "PJI_REP_MSR_11"
26 				  , FACT.MARGIN  "PJI_REP_MSR_9"
27 				  , FACT.MAR_CHANGE_PERCENT  "PJI_REP_MSR_12"
28 				  , FACT.MARGIN_PERCENT  "PJI_REP_MSR_10"
29 				  , FACT.MAR_PERCENT_CHANGE  "PJI_REP_MSR_13"
30 				  , FACT.CT_MARGIN  "PJI_REP_MSR_4"
31 				  , FACT.MARGIN  "PJI_REP_MSR_3"
32 				  , FACT.PJI_REP_TOTAL_1 "PJI_REP_TOTAL_1"
33 				  , FACT.PJI_REP_TOTAL_11 "PJI_REP_TOTAL_2"
34 				  , FACT.PJI_REP_TOTAL_14 "PJI_REP_TOTAL_3"
35 				  , FACT.PJI_REP_TOTAL_15 "PJI_REP_TOTAL_4"
36 				  , FACT.PJI_REP_TOTAL_16 "PJI_REP_TOTAL_5"
37 				  , FACT.PJI_REP_TOTAL_5 "PJI_REP_TOTAL_6"
38 				  , FACT.PJI_REP_TOTAL_12 "PJI_REP_TOTAL_7"
39 				  , FACT.PJI_REP_TOTAL_1 "PJI_REP_TOTAL_8"
40 				  , FACT.PJI_REP_TOTAL_11 "PJI_REP_TOTAL_9"
41 				  , FACT.PJI_REP_TOTAL_6 "PJI_REP_TOTAL_10"
42 				  , FACT.PJI_REP_TOTAL_9 "PJI_REP_TOTAL_11"
43 				  , FACT.PJI_REP_TOTAL_9 "PJI_REP_TOTAL_12"
44 				  , FACT.PJI_REP_TOTAL_10 "PJI_REP_TOTAL_13"
45 				  , FACT.PJI_REP_TOTAL_1 "PJI_REP_TOTAL_14"
46 				  , FACT.PJI_REP_TOTAL_2 "PJI_REP_TOTAL_15"
47 				  , FACT.PJI_REP_TOTAL_9 "PJI_REP_TOTAL_16" '
48             		, P_SQL_STATEMENT => x_PMV_Sql
49             		, P_PMV_OUTPUT => x_PMV_Output
50 				, p_Region_Code => 'PJI_REP_PP1'
51 				, p_PLSQL_Driver => 'PJI_PMV_PROFITABILITY.PLSQLDriver_PJI_REP_PPSUM'
52 				, p_PLSQL_Driver_Params => '  <<ORGANIZATION+FII_OPERATING_UNITS>>'||
53 				  ', <<ORGANIZATION+PJI_ORGANIZATIONS>>'||
54 				  ', <<CURRENCY+FII_CURRENCIES>>'||
55 				  ', <<AS_OF_DATE>>'||
56            	               ', <<TIME_COMPARISON_TYPE>>'||
57 				  ', <<PERIOD_TYPE>>'||
58 				  ', <<VIEW_BY>>'||
59 				  ', <<PROJECT CLASSIFICATION+CLASS_CATEGORY>>'||
60 				  ', <<PROJECT CLASSIFICATION+CLASS_CODE>> '||
61                                   ', NULL'||
62                                   ', NULL'||
63                                   ', <<PROJECT REVENUE CATEGORY+PJI_REVENUE_CATEGORIES>>'||
64                                   ', <<PROJECT REVENUE CATEGORY+PJI_EXP_EVT_TYPES>>'||
65                                   ', NULL'
66 				);
67 	END GET_SQL_PJI_REP_PP1;
68 
69 PROCEDURE GET_SQL_PJI_REP_PP2(p_page_parameter_tbl IN BIS_PMV_PAGE_PARAMETER_TBL
70 	                , x_PMV_Sql OUT NOCOPY VARCHAR2
71                     	, x_PMV_Output OUT NOCOPY BIS_QUERY_ATTRIBUTES_TBL)
72 IS
73 	l_Err_Message   VARCHAR2(3200);
74 	l_PMV_Sql       VARCHAR2(3200);
75 	BEGIN
76 
77                PJI_PMV_ENGINE.Generate_SQL(P_PAGE_PARAMETER_TBL => p_page_parameter_tbl
78 				, P_SELECT_LIST =>
79 				  ' FACT.CT_FORECAST_REVENUE  "PJI_REP_MSR_14"
80   				  , FACT.FCST_CT_MARGIN_PERCENT  "PJI_REP_MSR_15"
81   				  , FACT.FORECAST_REVENUE  "PJI_REP_MSR_16"
82   				  , FACT.FCST_MARGIN_PERCENT  "PJI_REP_MSR_17"
83 				  , FACT.FORECAST_BURDENED_COST  "PJI_REP_MSR_8"
84 				  , FACT.CT_FORECAST_BURDENED_COST  "PJI_REP_MSR_19"
85 				  , FACT.FORECAST_REVENUE  "PJI_REP_MSR_1"
86 				  , FACT.FCST_MARGIN_PERCENT  "PJI_REP_MSR_2"
87 				  , FACT.FORECAST_REVENUE  "PJI_REP_MSR_7"
88 				  , FACT.FCST_REV_CHANGE_PERCENT  "PJI_REP_MSR_11"
89 				  , FACT.FCST_MARGIN  "PJI_REP_MSR_9"
90 				  , FACT.FCST_MAR_CHANGE_PERCENT  "PJI_REP_MSR_12"
91 				  , FACT.FCST_MARGIN_PERCENT  "PJI_REP_MSR_10"
92 				  , FACT.FCST_MAR_PERCENT_CHANGE  "PJI_REP_MSR_13"
93 				  , FACT.FCST_CT_MARGIN  "PJI_REP_MSR_3"
94 				  , FACT.FCST_MARGIN  "PJI_REP_MSR_4"
95 				  , FACT.PJI_REP_TOTAL_7 "PJI_REP_TOTAL_1"
96 				  , FACT.PJI_REP_TOTAL_20 "PJI_REP_TOTAL_2"
97 				  , FACT.PJI_REP_TOTAL_3 "PJI_REP_TOTAL_3"
98 				  , FACT.PJI_REP_TOTAL_19 "PJI_REP_TOTAL_4"
99 				  , FACT.PJI_REP_TOTAL_4 "PJI_REP_TOTAL_5"
100 				  , FACT.PJI_REP_TOTAL_8 "PJI_REP_TOTAL_6"
101 				  , FACT.PJI_REP_TOTAL_3 "PJI_REP_TOTAL_7"
102 				  , FACT.PJI_REP_TOTAL_19 "PJI_REP_TOTAL_8"
103 				  , FACT.PJI_REP_TOTAL_3 "PJI_REP_TOTAL_9"
104 				  , FACT.PJI_REP_TOTAL_22 "PJI_REP_TOTAL_10"
105 				  , FACT.PJI_REP_TOTAL_17 "PJI_REP_TOTAL_11"
106 				  , FACT.PJI_REP_TOTAL_23 "PJI_REP_TOTAL_12"
107 				  , FACT.PJI_REP_TOTAL_19 "PJI_REP_TOTAL_13"
108 				  , FACT.PJI_REP_TOTAL_24 "PJI_REP_TOTAL_14"
109 				  , FACT.PJI_REP_TOTAL_18 "PJI_REP_TOTAL_15"
110 				  , FACT.PJI_REP_TOTAL_17 "PJI_REP_TOTAL_16" '
111                         , P_SQL_STATEMENT => x_PMV_Sql
112                         , P_PMV_OUTPUT => x_PMV_Output
113 				, p_Region_Code => 'PJI_REP_PP2'
114 				, p_PLSQL_Driver => 'PJI_PMV_PROFITABILITY.PLSQLDriver_PJI_REP_PPSUM'
115 				, p_PLSQL_Driver_Params => '  <<ORGANIZATION+FII_OPERATING_UNITS>>'||
116 				  ', <<ORGANIZATION+PJI_ORGANIZATIONS>>'||
117 				  ', <<CURRENCY+FII_CURRENCIES>>'||
118 				  ', <<AS_OF_DATE>>'||
119                           ', <<TIME_COMPARISON_TYPE>>'||
120 				  ', <<PERIOD_TYPE>>'||
121 				  ', <<VIEW_BY>>'||
122 				  ', <<PROJECT CLASSIFICATION+CLASS_CATEGORY>>'||
123 				  ', <<PROJECT CLASSIFICATION+CLASS_CODE>> '||
124                                   ', NULL'||
125                                   ', NULL'||
126                                   ', <<PROJECT REVENUE CATEGORY+PJI_REVENUE_CATEGORIES>>'||
127                                   ', <<PROJECT REVENUE CATEGORY+PJI_EXP_EVT_TYPES>>'||
128                                   ', NULL'
129                         );
130 	END GET_SQL_PJI_REP_PP2;
131 
132 PROCEDURE GET_SQL_PJI_REP_PP3(p_page_parameter_tbl IN BIS_PMV_PAGE_PARAMETER_TBL
133 	            , x_PMV_Sql OUT NOCOPY VARCHAR2
134                     , x_PMV_Output OUT NOCOPY BIS_QUERY_ATTRIBUTES_TBL)
135 	IS
136 l_Err_Message   VARCHAR2(3200);
137 l_PMV_Sql       VARCHAR2(3200);
138 	BEGIN
139 
140              PJI_PMV_ENGINE.Generate_SQL(P_PAGE_PARAMETER_TBL => p_page_parameter_tbl
141 				, P_SELECT_LIST =>
142 				  ' FACT.AMOUNT_TYPE_LABEL  "VIEWBY"
143 				  , FACT.P_ACTUAL  "PJI_REP_MSR_7"
144 				  , FACT.P_ACTUAL1  "PJI_REP_MSR_18"
145 				  , FACT.P_ACTUAL2  "PJI_REP_MSR_19"
146 				  , FACT.PY_ACTUAL  "PJI_REP_MSR_8"
147 				  , FACT.PY_ACTUAL1 "PJI_REP_MSR_20"
148 				  , FACT.PY_ACTUAL2 "PJI_REP_MSR_21"
149 				  , FACT.P_CHANGE1  "PJI_REP_MSR_9"
150 				  , FACT.P_CHANGE11  "PJI_REP_MSR_14"
151 				  , FACT.P_CHANGE12  "PJI_REP_MSR_15"
152 				  , FACT.P_FORECAST  "PJI_REP_MSR_10"
153 				  , FACT.P_FORECAST1  "PJI_REP_MSR_22"
154 				  , FACT.P_FORECAST2  "PJI_REP_MSR_23"
155 				  , FACT.PY_FORECAST "PJI_REP_MSR_11"
156 				  , FACT.PY_FORECAST1 "PJI_REP_MSR_24"
157 				  , FACT.PY_FORECAST2 "PJI_REP_MSR_25"
158 				  , FACT.P_CHANGE2   "PJI_REP_MSR_12"
159 				  , FACT.P_CHANGE21  "PJI_REP_MSR_16"
160 				  , FACT.P_CHANGE22  "PJI_REP_MSR_17"
161 				  , FACT.AMOUNT_TYPE_CODE  "PJI_REP_MSR_13"
162 				  , FACT.P_CHANGE1  "PJI_REP_MSR_1"
163 				  , FACT.P_CHANGE2  "PJI_REP_MSR_2"
164 				  , FACT.PJI_REP_URL1  "PJI_REP_URL1"
165 				  , FACT.PJI_REP_URL2  "PJI_REP_URL2" '
166 		                  , P_SQL_STATEMENT => x_PMV_Sql
167             		         , P_PMV_OUTPUT => x_PMV_Output
168 				 , p_Region_Code => 'PJI_REP_PP3'
169 				 , p_PLSQL_Driver => 'PJI_PMV_PROFITABILITY.PLSQLDriver_PJI_REP_PP3'
170 				 , p_PLSQL_Driver_Params => '  <<ORGANIZATION+FII_OPERATING_UNITS>>'||
171 				  ', <<ORGANIZATION+PJI_ORGANIZATIONS>>'||
172 				  ', <<CURRENCY+FII_CURRENCIES>>'||
173 				  ', <<AS_OF_DATE>>'||
174 				  ', <<PERIOD_TYPE>>'||
175 				  ', <<VIEW_BY>>'||
176 				  ', <<PROJECT CLASSIFICATION+CLASS_CATEGORY>>'||
177 				  ', <<PROJECT CLASSIFICATION+CLASS_CODE>> '||
178                                   ', NULL'||
179                                   ', NULL'||
180                                   ', <<PROJECT REVENUE CATEGORY+PJI_REVENUE_CATEGORIES>>'||
181                                   ', <<PROJECT REVENUE CATEGORY+PJI_EXP_EVT_TYPES>>'||
182                                   ', NULL'
183                         );
184 	END GET_SQL_PJI_REP_PP3;
185 
186 
187 PROCEDURE GET_SQL_PJI_REP_PP4(p_page_parameter_tbl IN BIS_PMV_PAGE_PARAMETER_TBL
188 		            , x_PMV_Sql OUT NOCOPY VARCHAR2
189         	            , x_PMV_Output OUT NOCOPY BIS_QUERY_ATTRIBUTES_TBL)
190 	IS
191 	l_Err_Message   VARCHAR2(3200);
192 	l_PMV_Sql       VARCHAR2(3200);
193 BEGIN
194 
195             PJI_PMV_ENGINE.Generate_SQL(P_PAGE_PARAMETER_TBL => p_page_parameter_tbl
196 				, P_SELECT_LIST =>
197 				' FACT.CT_BURDENED_COST  "PJI_REP_MSR_14"
198 				  , FACT.CT_FORECAST_BURDENED_COST  "PJI_REP_MSR_15"
199 				  , FACT.CST_CHANGE_PERCENT  "PJI_REP_MSR_1"
200 				  , FACT.FCST_CST_CHANGE_PERCENT  "PJI_REP_MSR_2"
201 				  , FACT.BURDENED_COST  "PJI_REP_MSR_3"
202 				  , FACT.FORECAST_BURDENED_COST  "PJI_REP_MSR_4"
203 				  , FACT.BURDENED_COST  "PJI_REP_MSR_8"
204 				  , FACT.CST_CHANGE_PERCENT  "PJI_REP_MSR_9"
205 				  , FACT.FORECAST_BURDENED_COST  "PJI_REP_MSR_12"
206 				  , FACT.FCST_CST_CHANGE_PERCENT  "PJI_REP_MSR_10"
207 				  , FACT.PJI_REP_TOTAL_6 "PJI_REP_TOTAL_1"
208 				  , FACT.PJI_REP_TOTAL_8 "PJI_REP_TOTAL_2"
209 				  , FACT.PJI_REP_TOTAL_13 "PJI_REP_TOTAL_3"
210 				  , FACT.PJI_REP_TOTAL_21 "PJI_REP_TOTAL_4"
211 				  , FACT.PJI_REP_TOTAL_2 "PJI_REP_TOTAL_5"
212 				  , FACT.PJI_REP_TOTAL_4 "PJI_REP_TOTAL_6"
213 				  , FACT.PJI_REP_TOTAL_2 "PJI_REP_TOTAL_7"
214 				  , FACT.PJI_REP_TOTAL_13 "PJI_REP_TOTAL_8"
215 				  , FACT.PJI_REP_TOTAL_4 "PJI_REP_TOTAL_9"
216 				  , FACT.PJI_REP_TOTAL_21 "PJI_REP_TOTAL_10" '
217             		, P_SQL_STATEMENT => x_PMV_Sql
218             		, P_PMV_OUTPUT => x_PMV_Output
219 				, p_Region_Code => 'PJI_REP_PP4'
220 				, p_PLSQL_Driver => 'PJI_PMV_PROFITABILITY.PLSQLDriver_PJI_REP_PPSUM'
221 				, p_PLSQL_Driver_Params => '  <<ORGANIZATION+FII_OPERATING_UNITS>>'||
222 				  ', <<ORGANIZATION+PJI_ORGANIZATIONS>>'||
223 				  ', <<CURRENCY+FII_CURRENCIES>>'||
224 				  ', <<AS_OF_DATE>>'||
225      	                     ', <<TIME_COMPARISON_TYPE>>'||
226 				  ', <<PERIOD_TYPE>>'||
227 				  ', <<VIEW_BY>>'||
228 				  ', <<PROJECT CLASSIFICATION+CLASS_CATEGORY>>'||
229 				  ', <<PROJECT CLASSIFICATION+CLASS_CODE>> '||
230                                   ', <<PROJECT EXPENDITURE TYPE+PJI_EXP_CATEGORIES>>'||
231                                   ', <<PROJECT EXPENDITURE TYPE+PJI_EXP_TYPES>>'||
232                                   ', NULL'||
233                                   ', NULL'||
234                                   ', <<PROJECT WORK TYPE+PJI_WORK_TYPES>> '
235 
236                         );
237 END GET_SQL_PJI_REP_PP4;
238 
239 
240 
241 PROCEDURE GET_SQL_PJI_REP_PP9(p_page_parameter_tbl IN BIS_PMV_PAGE_PARAMETER_TBL
242 	            , x_PMV_Sql OUT NOCOPY VARCHAR2
243                     , x_PMV_Output OUT NOCOPY BIS_QUERY_ATTRIBUTES_TBL)
244 	IS
245 	l_Err_Message   VARCHAR2(3200);
246 	l_PMV_Sql       VARCHAR2(3200);
247 	BEGIN
248 
249               PJI_PMV_ENGINE.Generate_SQL(P_PAGE_PARAMETER_TBL => p_page_parameter_tbl
250 				, P_SELECT_LIST =>
251 				  ' FACT.PROJECT_ID     "PJI_REP_MSR_18"
252 				  , FACT.PROJECT_NAME  "VIEWBY"
253 				  , FACT.PROJECT_NUMBER  "PJI_REP_MSR_2"
254 				  , FACT.URL_PARAMETERS01     "PJI_REP_MSR_20"
255                                   , FACT.URL_PARAMETERS01     "PJI_REP_MSR_30"
256 				  , FACT.PRIMARY_CUSTOMER_NAME  "PJI_REP_MSR_3"
257 				  , FACT.PROJECT_TYPE  "PJI_REP_MSR_4"
258 				  , FACT.ORGANIZATION_NAME  "PJI_REP_MSR_5"
259 				  , FACT.PERSON_MANAGER_NAME  "PJI_REP_MSR_6"
260 				  , FACT.REVENUE  "PJI_REP_MSR_7"
261 				  , FACT.BURDENED_COST  "PJI_REP_MSR_8"
262 				  , FACT.MARGIN  "PJI_REP_MSR_9"
263 				  , FACT.FORECAST_REVENUE  "PJI_REP_MSR_11"
264 				  , FACT.FORECAST_BURDENED_COST  "PJI_REP_MSR_12"
265 				  , FACT.FORECAST_MARGIN  "PJI_REP_MSR_13"
266 				  , FACT.BUDGET_MARGIN  "PJI_REP_MSR_10"
267 				  , FACT.FORECAST_MARGIN_VARIANCE  "PJI_REP_MSR_14"
268 				  , FACT.CURR_BGT_REVENUE  "PJI_REP_MSR_15"
269 				  , FACT.CURR_BGT_BURDENED_COST  "PJI_REP_MSR_16"
270 				  , FACT.PJI_REP_TOTAL_1 "PJI_REP_TOTAL_1"
271 				  , FACT.PJI_REP_TOTAL_2 "PJI_REP_TOTAL_2"
272 				  , FACT.PJI_REP_TOTAL_7 "PJI_REP_TOTAL_3"
273 				  , FACT.PJI_REP_TOTAL_5 "PJI_REP_TOTAL_4"
274 				  , FACT.PJI_REP_TOTAL_6 "PJI_REP_TOTAL_5"
275 				  , FACT.PJI_REP_TOTAL_10 "PJI_REP_TOTAL_6"
276 				  , FACT.PJI_REP_TOTAL_9 "PJI_REP_TOTAL_7"
277 				  , FACT.PJI_REP_TOTAL_11 "PJI_REP_TOTAL_8"
278 				  , FACT.PJI_REP_TOTAL_3 "PJI_REP_TOTAL_9"
279 				  , FACT.PJI_REP_TOTAL_4 "PJI_REP_TOTAL_10" '
280             		, P_SQL_STATEMENT => x_PMV_Sql
281 	           		, P_PMV_OUTPUT => x_PMV_Output
282 				, p_Region_Code => 'PJI_REP_PP9'
283 				, p_PLSQL_Driver => 'PJI_PMV_PROFITABILITY.PLSQLDriver_PJI_REP_PPDTL'
284 				, p_PLSQL_Driver_Params => '  <<ORGANIZATION+FII_OPERATING_UNITS>>'||
285 				  ', <<ORGANIZATION+PJI_ORGANIZATIONS>>'||
286 				  ', <<CURRENCY+FII_CURRENCIES>>'||
287 				  ', <<AS_OF_DATE>>'||
288 				  ', <<PERIOD_TYPE>>'||
289 				  ', <<VIEW_BY>>'||
290 				  ', <<PROJECT CLASSIFICATION+CLASS_CATEGORY>>'||
291 				  ', <<PROJECT CLASSIFICATION+CLASS_CODE>> '||
292 				  ', <<PROJECT+PJI_PROJECTS>> '||
293                                   ', NULL'||
294                                   ', NULL'||
295                                   ', <<PROJECT REVENUE CATEGORY+PJI_REVENUE_CATEGORIES>>'||
296                                   ', <<PROJECT REVENUE CATEGORY+PJI_EXP_EVT_TYPES>>'||
297                                   ', NULL'
298                         );
299 END GET_SQL_PJI_REP_PP9;
300 
301 
302 PROCEDURE GET_SQL_PJI_REP_PP10(p_page_parameter_tbl IN BIS_PMV_PAGE_PARAMETER_TBL
303 	            , x_PMV_Sql OUT NOCOPY VARCHAR2
304                     , x_PMV_Output OUT NOCOPY BIS_QUERY_ATTRIBUTES_TBL)
305 IS
306 	l_Err_Message   VARCHAR2(3200);
307 	l_PMV_Sql       VARCHAR2(3200);
308 	BEGIN
309               PJI_PMV_ENGINE.Generate_SQL(P_PAGE_PARAMETER_TBL => p_page_parameter_tbl
310 				, P_SELECT_LIST =>
311 				  ' FACT.PROJECT_ID       "PJI_REP_MSR18"
312 				  , FACT.PROJECT_NAME     "VIEWBY"
313 				  , FACT.PROJECT_NUMBER   "PJI_REP_MSR_2"
314 				  , FACT.URL_PARAMETERS01 "PJI_REP_MSR_20"
315                                   , FACT.URL_PARAMETERS01     "PJI_REP_MSR_30"
316 				  , FACT.PRIMARY_CUSTOMER_NAME  "PJI_REP_MSR_3"
317 				  , FACT.PROJECT_TYPE  "PJI_REP_MSR_4"
318 				  , FACT.ORGANIZATION_NAME  "PJI_REP_MSR_5"
319 				  , FACT.PERSON_MANAGER_NAME  "PJI_REP_MSR_6"
320 				  , FACT.BURDENED_COST  "PJI_REP_MSR_8"
321 				  , FACT.CURR_BGT_BURDENED_COST  "PJI_REP_MSR_16"
322 				  , FACT.COST_VARIANCE  "PJI_REP_MSR_17"
323 				  , FACT.FORECAST_BURDENED_COST  "PJI_REP_MSR_12"
324 				  , FACT.FORECAST_COST_VARIANCE  "PJI_REP_MSR_13"
325 				  , FACT.PJI_REP_TOTAL_2 "PJI_REP_TOTAL_1"
326 				  , FACT.PJI_REP_TOTAL_4 "PJI_REP_TOTAL_2"
327 				  , FACT.PJI_REP_TOTAL_8 "PJI_REP_TOTAL_3"
328 				  , FACT.PJI_REP_TOTAL_6 "PJI_REP_TOTAL_4"
329 				  , FACT.PJI_REP_TOTAL_12 "PJI_REP_TOTAL_5" '
330             		, P_SQL_STATEMENT => x_PMV_Sql
331             		, P_PMV_OUTPUT => x_PMV_Output
332 				, p_Region_Code =>'PJI_REP_PP10'
333 				, p_PLSQL_Driver => 'PJI_PMV_PROFITABILITY.PLSQLDriver_PJI_REP_PPDTL'
334 				, p_PLSQL_Driver_Params => '  <<ORGANIZATION+FII_OPERATING_UNITS>>'||
335 				  ', <<ORGANIZATION+PJI_ORGANIZATIONS>>'||
336 				  ', <<CURRENCY+FII_CURRENCIES>>'||
337 				  ', <<AS_OF_DATE>>'||
338 				  ', <<PERIOD_TYPE>>'||
339 				  ', <<VIEW_BY>>'||
340 				  ', <<PROJECT CLASSIFICATION+CLASS_CATEGORY>>'||
341 				  ', <<PROJECT CLASSIFICATION+CLASS_CODE>> '||
342 				  ', <<PROJECT+PJI_PROJECTS>> '||
343                                   ', <<PROJECT EXPENDITURE TYPE+PJI_EXP_CATEGORIES>>'||
344                                   ', <<PROJECT EXPENDITURE TYPE+PJI_EXP_TYPES>>'||
345                                   ', NULL'||
346                                   ', NULL'||
347                                   ', <<PROJECT WORK TYPE+PJI_WORK_TYPES>> '
348                         );
349 END GET_SQL_PJI_REP_PP10;
350 
351 /* -------------------------------------------------------------+
352 ** -- PLSQL DRIVERS
353 */ -------------------------------------------------------------+
354 
355 
356 /* Name:                 PLSQLDriver_PJI_REP_PP3
357 ** Type:                 Function
358 **
359 ** Description:          This function receives PM Viewer runtime query parameters
360 **                       and RETURNS a PL/SQL table for the PM Viewer report.
361 **
362 ** 			This function is designed for the Project Profitability
363 **                       Detail Reports:
364 **                       1) Project Profitability Overview (PP3)
365 **
366 ** NOTE:
367 **                       The PP3 report does NOT have any View-By dimensions. Therefore,
368 **                       the collection logic does not address view-by logic requirements.
369 **
370 ** Issues:
371 **
372 **
373 ** Called subprograms:
374 **                       Various PJI_PMV_ENGINE.Convert APIs
375 **
376 ** Called objects:
377 **                       PJI_REP_PP3_TBL (table of db object PJI_REP_PP3)
378 **
379 ** History:
380 **       21-MAY-2002	jwhite		Created.
381 **
382 **       15-JUL-2002     jwhite          As directed by Vijay, for the
383 **                                       PJI_PMV_ENGINE.Convert_Time API call
384 **                                       I removed the following parameter reference:
385 **
386 **                                           P_REPORT_TYPE  =>  'DBI'
387 **
388 */
389 
390 	FUNCTION  PLSQLDriver_PJI_REP_PP3(
391          p_Operating_Unit		IN VARCHAR2 DEFAULT NULL
392          , p_Organization		IN VARCHAR2
393          , p_Currency_Type		IN VARCHAR2
394          , p_As_of_Date         IN NUMBER
395          , p_Period_Type 		IN VARCHAR2
396          , p_View_BY 			IN VARCHAR2
397          , p_Classifications	IN VARCHAR2 DEFAULT NULL
398          , p_Class_Codes		IN VARCHAR2 DEFAULT NULL
399 
400          , p_Expenditure_Category        IN VARCHAR2 DEFAULT NULL
401          , p_Expenditure_Type            IN VARCHAR2 DEFAULT NULL
402          , p_Revenue_Category            IN VARCHAR2 DEFAULT NULL
403          , p_Revenue_Type                IN VARCHAR2 DEFAULT NULL
404          , p_Work_Type                   IN VARCHAR2 DEFAULT NULL
405 
406          )  RETURN PJI_REP_PP3_TBL
407 	IS
408 
409         PRAGMA AUTONOMOUS_TRANSACTION;
410 
411 /*
412 **  Local Variable Declaration
413 */
414         l_label_rev   	VARCHAR2(80) := NULL;
415         l_label_cost    VARCHAR2(80) := NULL;
416         l_label_margin  VARCHAR2(80) := NULL;
417         l_label_mgnpct  VARCHAR2(80) := NULL; -- Margin Percentage
418 
419         l_Parse_Class_Codes VARCHAR2(1) := NULL;
420 
421 		l_Top_Organization_Name VARCHAR2(240);
422 
423 
424         i                       NUMBER       := 0;
425         ln                      NUMBER       := 0;
426         l_rev_P_ACTUAL          NUMBER       := 0;
427         l_mgn_P_ACTUAL          NUMBER       := 0;
428         l_rev_P_FORECAST        NUMBER       := 0;
429         l_mgn_P_FORECAST        NUMBER       := 0;
430         l_rev_PY_ACTUAL         NUMBER       := 0;
431         l_mgn_PY_ACTUAL         NUMBER       := 0;
432         l_rev_PY_FORECAST       NUMBER       := 0;
433         l_mgn_PY_FORECAST       NUMBER       := 0;
434 
435         l_Convert_Classification        VARCHAR2(1);
436         l_Convert_Event_Revenue_Type    VARCHAR2(1);
437         l_Convert_Work_Type             VARCHAR2(1);
438 	l_curr_record_type_id           NUMBER:= 1;
439 
440 /*
441 **  PL/SQL Declaration
442 */
443 	l_phase_tab		PJI_REP_PP3_TBL := PJI_REP_PP3_TBL();
444 
445 
446 
447 BEGIN
448 
449 BEGIN
450 	SELECT report_cost_type
451 		INTO G_Report_Cost_Type
452 		FROM pji_system_settings;
453 	EXCEPTION
454 	WHEN NO_DATA_FOUND THEN
455 		G_Report_Cost_Type:='RC';
456 END;
457 
458 /*
459 **  Populate Report Labels
460 */
461         SELECT meaning
462         INTO   l_label_rev
463         FROM   pji_lookups
464         WHERE  lookup_type = 'PJI_PROFITABILITY_MEASURES'
465         AND    lookup_code = 'REVENUE';
466 
467         SELECT meaning
468         INTO   l_label_cost
469         FROM   pji_lookups
470         WHERE  lookup_type = 'PJI_PROFITABILITY_MEASURES'
471         AND    lookup_code = 'COST';
472 
473         SELECT meaning
474         INTO   l_label_margin
475         FROM   pji_lookups
476         WHERE  lookup_type = 'PJI_PROFITABILITY_MEASURES'
477         AND    lookup_code = 'MARGIN';
478 
479         SELECT meaning
480         INTO   l_label_mgnpct
481         FROM   pji_lookups
482         WHERE  lookup_type = 'PJI_PROFITABILITY_MEASURES'
483         AND    lookup_code = 'MARGIN_PERCENT';
484 
485 
486 
487 /*
488 ** Place a call to all the parse API's which parse the
489 ** parameters passed by PMV and populate all the
490 ** temporary tables.
491 */
492 
493 	PJI_PMV_ENGINE.Convert_Operating_Unit(P_OPERATING_UNIT_IDS   => p_Operating_Unit
494                                                 , P_VIEW_BY            => p_View_BY
495                                               );
496 
497 
498 	PJI_PMV_ENGINE.Convert_Organization(P_TOP_ORGANIZATION_ID  => p_Organization
499                                               , P_VIEW_BY            => p_View_BY
500 					  , p_Top_Organization_Name => l_Top_Organization_Name
501                                             );
502 	PJI_PMV_ENGINE.Convert_Time(P_AS_OF_DATE    => p_As_of_Date
503                                       , P_PERIOD_TYPE  =>  p_Period_Type
504                                       , P_VIEW_BY      =>  p_View_By
505                                       , P_PARSE_PRIOR  =>  'Y'
506                                       , P_COMPARATOR   =>  NULL
507                                       , P_PARSE_ITD    => NULL
508                                       , P_FULL_PERIOD_FLAG => 'Y'
509                                     );
510 
511       l_Convert_Classification := PJI_PMV_ENGINE.Convert_Classification(p_Classifications,
512 
513 p_Class_Codes, p_View_BY);
514       l_Convert_Event_Revenue_Type := PJI_PMV_ENGINE.Convert_Event_Revenue_Type(p_Revenue_Category,
515 p_Revenue_Type, p_View_BY );
516       l_Convert_Work_Type := PJI_PMV_ENGINE.Convert_Work_Type(p_Work_Type, p_View_BY);
517 	l_curr_record_type_id:=PJI_PMV_ENGINE.Convert_Currency_Record_Type(p_Currency_Type);
518 
519 /*
520 **
521 **      -- PHASE I: Insert Separate Current and Prior Year Rows for Revenue, Cost and Margin
522 */
523 
524 
525 		/*
526 		** Code the SQL statement for all of the following conditions
527 		** 1. Current Year
528 		** 2. Prior Year
529                 **
530                 ** Note: This report does NOT require the generation of rows with zero's for the
531                 **       query parameter dimensions.
532                 **
533 		** Bulk-Collect the output into a pl/sql table to be returned to
534 		** pmv.
535 		*/
536 
537 
538 /*
539 ** ORG Processing ---------------------------------------------------+
540 */
541 
542 
543 /* ----------------------------- Case 1 truth table ------------------------------------ */
544 
545         IF (l_Convert_Classification = 'N')
546          and (l_Convert_Event_Revenue_Type = 'N')
547          and (l_Convert_Work_Type = 'N')
548           THEN
549 
550 
551            SELECT PJI_REP_PP3(PHASE_CODE
552             ,AMOUNT_TYPE_CODE
553             ,AMOUNT_TYPE_LABEL
554 			, SUM( P_ACTUAL )
555 			, NULL
556 			, NULL
557 			, SUM( PY_ACTUAL )
558 			, NULL
559 			, NULL
560 			, SUM( P_CHANGE1 )
561 			, SUM( P_CHANGE11 )
562 			, SUM( P_CHANGE12 )
563 			, SUM( P_FORECAST )
564 			, NULL
565 			, NULL
566 			, SUM( PY_FORECAST )
567 			, NULL
568 			, NULL
569 			, SUM( P_CHANGE2 )
570 			, SUM( P_CHANGE21 )
571 			, SUM( P_CHANGE22 )
572             , NULL
573             , NULL )
574            BULK COLLECT INTO l_phase_tab
575            FROM
576 	      ( SELECT /*+ ORDERED */
577 			  1                     AS PHASE_CODE
578                         , 1                     AS AMOUNT_TYPE_CODE
579                         , l_label_rev           AS AMOUNT_TYPE_LABEL
580 			, DECODE(TIME.amount_type,1, revenue,0)    AS P_ACTUAL
581 			, 0                     AS PY_ACTUAL
582 			, null                  AS P_CHANGE1
583 			, null                  AS P_CHANGE11
584 			, null                  AS P_CHANGE12
585 			, DECODE(TIME.amount_type,2, forecast_revenue,0)      AS P_FORECAST
586 			, 0                     AS PY_FORECAST
587 			, null                  AS P_CHANGE2
588 			, null                  AS P_CHANGE21
589 			, null                  AS P_CHANGE22
590 		FROM
591 			PJI_PMV_TIME_DIM_TMP TIME
592 			, PJI_PMV_ORGZ_DIM_TMP HORG
593 			, pji_fp_orgo_f_mv fct
594 			, PJI_PMV_ORG_DIM_TMP HOU
595 		WHERE
596 			fct.org_id = hou.id
597 				AND FCT.ORGANIZATION_ID = HORG.ID
598 				AND FCT.TIME_ID = TIME.ID
599 				AND TIME.ID IS NOT NULL
600 				AND FCT.PERIOD_TYPE_ID = TIME.PERIOD_TYPE
601             	AND FCT.CALENDAR_TYPE = TIME.CALENDAR_TYPE
602 				AND bitand(fct.curr_record_type_id, l_curr_record_type_id) = l_curr_record_type_id
603 		UNION ALL
604                 SELECT /*+ ORDERED */
605 			  1                     AS PHASE_CODE
606             , 1                     AS AMOUNT_TYPE_CODE
607             , l_label_rev           AS AMOUNT_TYPE_LABEL
608 			, 0                     AS P_ACTUAL
609 			, DECODE(TIME.amount_type,1,revenue,0)               AS PY_ACTUAL
610 			, null                  AS P_CHANGE1
611 			, null                  AS P_CHANGE11
612 			, null                  AS P_CHANGE12
613 			, 0                     AS P_FORECAST
614 			, DECODE(TIME.amount_type,2,forecast_revenue,0)      AS PY_FORECAST
615 			, null                  AS P_CHANGE2
616 			, null                  AS P_CHANGE21
617 			, null                  AS P_CHANGE22
618 		FROM
619 			PJI_PMV_TIME_DIM_TMP TIME
620 			, PJI_PMV_ORGZ_DIM_TMP HORG
621 			, pji_fp_orgo_f_mv fct
622 			, PJI_PMV_ORG_DIM_TMP HOU
623 
624 		WHERE
625 			fct.org_id = hou.id
626 				AND FCT.ORGANIZATION_ID = HORG.ID
627 				AND FCT.TIME_ID = TIME.PRIOR_ID
628 				AND TIME.PRIOR_ID IS NOT NULL
629 				AND FCT.PERIOD_TYPE_ID = TIME.PERIOD_TYPE
630               	AND FCT.CALENDAR_TYPE = TIME.CALENDAR_TYPE
631 				AND bitand(fct.curr_record_type_id, l_curr_record_type_id) = l_curr_record_type_id
632                UNION ALL
633 	       SELECT /*+ ORDERED */
634 			  1          AS PHASE_CODE
635                         , 2                      AS AMOUNT_TYPE_CODE
636                         , l_label_cost           AS AMOUNT_TYPE_LABEL
637 			, DECODE(TIME.amount_type,1,
638                 DECODE(G_Report_Cost_Type,  'BC', burdened_cost,
639                                             'RC', raw_cost, 0),0)         AS P_ACTUAL
640 			, 0                     AS PY_ACTUAL
641 			, null                  AS P_CHANGE1
642 			, null                  AS P_CHANGE11
643 			, null                  AS P_CHANGE12
644 			, DECODE(TIME.amount_type,2,
645                                       DECODE(G_Report_Cost_Type,  'BC', forecast_burdened_cost,
646                                             'RC', forecast_raw_cost, 0),0)  AS P_FORECAST
647 			, 0                     AS PY_FORECAST
648 			, null                  AS P_CHANGE2
649 			, null                  AS P_CHANGE21
650 			, null                  AS P_CHANGE22
651 		FROM
652 			PJI_PMV_TIME_DIM_TMP TIME
653 			, PJI_PMV_ORGZ_DIM_TMP HORG
654 			, pji_fp_orgo_f_mv fct
655 			, PJI_PMV_ORG_DIM_TMP HOU
656 
657 		WHERE
658 			fct.org_id = hou.id
659 			AND FCT.ORGANIZATION_ID = HORG.ID
660 			AND FCT.TIME_ID = TIME.ID
661 			AND TIME.ID IS NOT NULL
662 			AND FCT.PERIOD_TYPE_ID = TIME.PERIOD_TYPE
663            	AND FCT.CALENDAR_TYPE = TIME.CALENDAR_TYPE
664 	        AND bitand(fct.curr_record_type_id, l_curr_record_type_id) = l_curr_record_type_id
665                 UNION ALL
666 		SELECT /*+ ORDERED */
667 			  1                                                 AS PHASE_CODE
668             , 2                                                 AS AMOUNT_TYPE_CODE
669             , l_label_cost                                      AS AMOUNT_TYPE_LABEL
670 			, 0                                                 AS P_ACTUAL
671 			, DECODE(TIME.amount_type,1,
672                 DECODE(G_Report_Cost_Type,  'BC', burdened_cost,
673                                             'RC', raw_cost, 0),0)         AS PY_ACTUAL
674 			, null                  AS P_CHANGE1
675 			, null                     AS P_CHANGE11
676 			, null                     AS P_CHANGE12
677 			, 0                     AS P_FORECAST
678 			, DECODE(TIME.amount_type,2,
679                 DECODE(G_Report_Cost_Type,  'BC', forecast_burdened_cost,
680                                             'RC', forecast_raw_cost, 0),0)  AS PY_FORECAST
681 			, null                     AS P_CHANGE2
682 			, null                     AS P_CHANGE21
683 			, null                     AS P_CHANGE22
684 		FROM
685 			PJI_PMV_TIME_DIM_TMP TIME
686 			, PJI_PMV_ORGZ_DIM_TMP HORG
687 			, pji_fp_orgo_f_mv fct
688 			, PJI_PMV_ORG_DIM_TMP HOU
689 
690 		WHERE
691 			fct.org_id = hou.id
692 			AND FCT.ORGANIZATION_ID = HORG.ID
693 			AND FCT.TIME_ID = TIME.PRIOR_ID
694 			AND TIME.PRIOR_ID IS NOT NULL
695 			AND FCT.PERIOD_TYPE_ID = TIME.PERIOD_TYPE
696            	        AND FCT.CALENDAR_TYPE = TIME.CALENDAR_TYPE
697 			AND bitand(fct.curr_record_type_id, l_curr_record_type_id) = l_curr_record_type_id
698                 UNION ALL
699 		SELECT /*+ ORDERED */
700 			  1                        AS PHASE_CODE
701                         , 3                        AS AMOUNT_TYPE_CODE
702                         , l_label_margin           AS AMOUNT_TYPE_LABEL
703 			,DECODE(TIME.amount_type,1,
704 			( NVL(revenue,0) - NVL(DECODE(G_Report_Cost_Type,  'BC', burdened_cost, 'RC', raw_cost, 0),0) ),  0)
705 			AS P_ACTUAL
706 
707 			, 0                     AS PY_ACTUAL
708 			, null                  AS P_CHANGE1
709 			, null                  AS P_CHANGE11
710 			, null                  AS P_CHANGE12
711 			, DECODE(TIME.amount_type,2, (nvl(forecast_revenue,0) -
712             NVL( DECODE(G_Report_Cost_Type,  'BC', forecast_burdened_cost,
713                                         'RC', forecast_raw_cost, 0),0)), 0)   AS P_FORECAST
714 			, 0                     AS PY_FORECAST
715 			, null                  AS P_CHANGE2
716 			, null                  AS P_CHANGE21
717 			, null                  AS P_CHANGE22
718 		FROM
719 				PJI_PMV_TIME_DIM_TMP TIME
720 				, PJI_PMV_ORGZ_DIM_TMP HORG
721 				, pji_fp_orgo_f_mv fct
722 				, PJI_PMV_ORG_DIM_TMP HOU
723 		WHERE
724 			fct.org_id = hou.id
725 			AND FCT.ORGANIZATION_ID = HORG.ID
726 			AND FCT.TIME_ID = TIME.ID
727 			AND TIME.ID IS NOT NULL
728 			AND FCT.PERIOD_TYPE_ID = TIME.PERIOD_TYPE
729         	AND FCT.CALENDAR_TYPE = TIME.CALENDAR_TYPE
730     		AND bitand(fct.curr_record_type_id, l_curr_record_type_id) = l_curr_record_type_id
731         UNION ALL
732 		SELECT /*+ ORDERED */
733 			  1                        AS PHASE_CODE
734             , 3                        AS AMOUNT_TYPE_CODE
735             , l_label_margin           AS AMOUNT_TYPE_LABEL
736 			, 0                        AS P_ACTUAL
737 			, DECODE(TIME.amount_type,1, (nvl(revenue,0) -
738                 NVL(DECODE(G_Report_Cost_Type,  'BC', burdened_cost,
739                                             'RC', raw_cost, 0),0)), 0)  AS PY_ACTUAL
740 			, null                  AS P_CHANGE1
741 			, null                  AS P_CHANGE11
742 			, null                  AS P_CHANGE12
743 			, 0                     AS P_FORECAST
744 			, DECODE(TIME.amount_type,2, (nvl(forecast_revenue,0) -
745                 NVL(DECODE(G_Report_Cost_Type,  'BC', forecast_burdened_cost,
746                                             'RC', forecast_raw_cost, 0),0)), 0)   AS PY_FORECAST
747 			, null                  AS P_CHANGE2
748 			, null                  AS P_CHANGE21
749 			, null                  AS P_CHANGE22
750 		FROM
751 			PJI_PMV_TIME_DIM_TMP TIME
752 			, PJI_PMV_ORGZ_DIM_TMP HORG
753 			, pji_fp_orgo_f_mv fct
754 			, PJI_PMV_ORG_DIM_TMP HOU
755 		WHERE
756 			fct.org_id = hou.id
757 				AND FCT.ORGANIZATION_ID = HORG.ID
758 				AND FCT.TIME_ID = TIME.PRIOR_ID
759 				AND TIME.PRIOR_ID IS NOT NULL
760 				AND FCT.PERIOD_TYPE_ID = TIME.PERIOD_TYPE
761                 AND FCT.CALENDAR_TYPE = TIME.CALENDAR_TYPE
762 				AND bitand(fct.curr_record_type_id, l_curr_record_type_id) = l_curr_record_type_id
763                 UNION ALL
764 		SELECT
765 			  1                       AS PHASE_CODE
766             , 1                       AS AMOUNT_TYPE_CODE
767             , l_label_rev             AS AMOUNT_TYPE_LABEL
768 			, 0                       AS P_ACTUAL
769 			, 0                       AS PY_ACTUAL
770 			, null                    AS P_CHANGE1
771 			, null                    AS P_CHANGE11
772 			, null                    AS P_CHANGE12
773 			, 0                       AS P_FORECAST
774 			, 0                       AS PY_FORECAST
775 			, null                    AS P_CHANGE2
776 			, null                    AS P_CHANGE21
777 			, null                    AS P_CHANGE22
778 		FROM	dual
779                 UNION ALL
780 		SELECT
781 			  1                       AS PHASE_CODE
782             , 2                       AS AMOUNT_TYPE_CODE
783             , l_label_cost            AS AMOUNT_TYPE_LABEL
784 			, 0                       AS P_ACTUAL
785 			, 0                       AS PY_ACTUAL
786 			, null                    AS P_CHANGE1
787 			, null                    AS P_CHANGE11
788 			, null                    AS P_CHANGE12
789 			, 0                       AS P_FORECAST
790 			, 0                       AS PY_FORECAST
791 			, null                    AS P_CHANGE2
792 			, null                    AS P_CHANGE21
793 			, null                    AS P_CHANGE22
794 		FROM	dual
795                 UNION ALL
796 		SELECT
797 			  1                       AS PHASE_CODE
798             , 3                       AS AMOUNT_TYPE_CODE
799             , l_label_margin          AS AMOUNT_TYPE_LABEL
800 			, 0                       AS P_ACTUAL
801 			, 0                       AS PY_ACTUAL
802 			, null                    AS P_CHANGE1
803 			, null                    AS P_CHANGE11
804 			, null                    AS P_CHANGE12
805 			, 0                       AS P_FORECAST
806 			, 0                       AS PY_FORECAST
807 			, null                    AS P_CHANGE2
808 			, null                    AS P_CHANGE21
809 			, null                    AS P_CHANGE22
810 		FROM	dual
811                 )
812         WHERE 1 = 1
813 	GROUP BY PHASE_CODE,AMOUNT_TYPE_CODE,AMOUNT_TYPE_LABEL;
814 
815 /*
816 ** -- PROJECT CLASSIFICATION Processing ---------------------------------------------------+
817 */
818 
819 
820 /* -----------------------------------  Case 2 truth table   -------------------------------------  */
821 
822         ELSIF (l_Convert_Event_Revenue_Type = 'N')
823          and (l_Convert_Work_Type = 'N')
824 
825           THEN
826 
827            SELECT PJI_REP_PP3(PHASE_CODE
828             ,AMOUNT_TYPE_CODE
829             ,AMOUNT_TYPE_LABEL
830 			, SUM( P_ACTUAL )
831 			, NULL
832 			, NULL
833 			, SUM( PY_ACTUAL )
834 			, NULL
835 			, NULL
836 			, SUM( P_CHANGE1 )
837 			, SUM( P_CHANGE11 )
838 			, SUM( P_CHANGE12 )
839 			, SUM( P_FORECAST )
840 			, NULL
841 			, NULL
842 			, SUM( PY_FORECAST )
843 			, NULL
844 			, NULL
845 			, SUM( P_CHANGE2 )
846 			, SUM( P_CHANGE21 )
847 			, SUM( P_CHANGE22 )
848 			, NULL
849 			, NULL)
850            BULK COLLECT INTO l_phase_tab
851            FROM
852 	      ( SELECT /*+ ORDERED */
853 			  1                     AS PHASE_CODE
854             , 1                     AS AMOUNT_TYPE_CODE
855             , l_label_rev           AS AMOUNT_TYPE_LABEL
856 			, DECODE(TIME.amount_type,1, revenue, 0)               AS P_ACTUAL
857 			, 0                     AS PY_ACTUAL
858 			, null                  AS P_CHANGE1
859 			, null                  AS P_CHANGE11
860 			, null                  AS P_CHANGE12
861 			, DECODE(TIME.amount_type,2, forecast_revenue,0)      AS P_FORECAST
862 			, 0                     AS PY_FORECAST
863 			, null                  AS P_CHANGE2
864 			, null                  AS P_CHANGE21
865 			, null                  AS P_CHANGE22
866 		FROM
867 			PJI_PMV_TIME_DIM_TMP TIME
868 			, PJI_PMV_ORGZ_DIM_TMP HORG
869 			, PJI_PMV_CLS_DIM_TMP CLS
870 			, pji_fp_clso_f_mv fct
871 			, PJI_PMV_ORG_DIM_TMP HOU
872 
873 		WHERE
874 				FCT.PROJECT_ORG_ID = HOU.ID
875 				AND FCT.PROJECT_ORGANIZATION_ID = HORG.ID
876 				AND FCT.TIME_ID = TIME.ID
877 				AND TIME.ID IS NOT NULL
878 				AND FCT.PERIOD_TYPE_ID = TIME.PERIOD_TYPE
879                          	AND FCT.CALENDAR_TYPE = TIME.CALENDAR_TYPE
880 				AND FCT.PROJECT_CLASS_ID = CLS.ID
881 				AND bitand(fct.curr_record_type_id, l_curr_record_type_id) = l_curr_record_type_id
882                 UNION ALL
883 		SELECT /*+ ORDERED */
884 			  1                     AS PHASE_CODE
885             , 1                     AS AMOUNT_TYPE_CODE
886             , l_label_rev           AS AMOUNT_TYPE_LABEL
887 			, 0                     AS P_ACTUAL
888 			, DECODE(TIME.amount_type,1, revenue, 0)               AS PY_ACTUAL
889 			, null                  AS P_CHANGE1
890 			, null                  AS P_CHANGE11
891 			, null                  AS P_CHANGE12
892 			, 0                     AS P_FORECAST
893 			, DECODE(TIME.amount_type,2, forecast_revenue, 0)      AS PY_FORECAST
894 			, null                  AS P_CHANGE2
895 			, null                  AS P_CHANGE21
896 			, null                  AS P_CHANGE22
897                 FROM
898 			PJI_PMV_TIME_DIM_TMP TIME
899 			, PJI_PMV_ORGZ_DIM_TMP HORG
900 			, PJI_PMV_CLS_DIM_TMP CLS
901 			, pji_fp_clso_f_mv fct
902 			, PJI_PMV_ORG_DIM_TMP HOU
903 		WHERE
904 				FCT.PROJECT_ORG_ID = HOU.ID
905 				AND FCT.PROJECT_ORGANIZATION_ID = HORG.ID
906 				AND FCT.TIME_ID = TIME.PRIOR_ID
907 				AND TIME.PRIOR_ID IS NOT NULL
908 				AND FCT.PERIOD_TYPE_ID = TIME.PERIOD_TYPE
909             	AND FCT.CALENDAR_TYPE = TIME.CALENDAR_TYPE
910 				AND FCT.PROJECT_CLASS_ID = CLS.ID
911 				AND bitand(fct.curr_record_type_id, l_curr_record_type_id) = l_curr_record_type_id
912 		UNION ALL
913                 SELECT /*+ ORDERED */
914 			  1          AS PHASE_CODE
915             , 2                      AS AMOUNT_TYPE_CODE
916             , l_label_cost           AS AMOUNT_TYPE_LABEL
917 			, DECODE(TIME.amount_type,1,
918             DECODE(G_Report_Cost_Type,  'BC', burdened_cost,
919                                         'RC', raw_cost, 0), 0)         AS P_ACTUAL
920 			, 0                     AS PY_ACTUAL
921 			, null                  AS P_CHANGE1
922 			, null                  AS P_CHANGE11
923 			, null                  AS P_CHANGE12
924 			, DECODE(TIME.amount_type,2,
925             DECODE(G_Report_Cost_Type,  'BC', forecast_burdened_cost,
926                                         'RC', forecast_raw_cost, 0), 0)  AS P_FORECAST
927 			, 0                     AS PY_FORECAST
928 			, null                  AS P_CHANGE2
929 			, null                  AS P_CHANGE21
930 			, null                  AS P_CHANGE22
931 		FROM
932 			PJI_PMV_TIME_DIM_TMP TIME
933 			, PJI_PMV_ORGZ_DIM_TMP HORG
934 			, PJI_PMV_CLS_DIM_TMP CLS
935 			, pji_fp_clso_f_mv fct
936 			, PJI_PMV_ORG_DIM_TMP HOU
937 
938 		WHERE
939 				FCT.PROJECT_ORG_ID = HOU.ID
940 				AND FCT.PROJECT_ORGANIZATION_ID = HORG.ID
941 				AND FCT.TIME_ID = TIME.ID
942 				AND TIME.ID IS NOT NULL
943 				AND FCT.PERIOD_TYPE_ID = TIME.PERIOD_TYPE
944             	AND FCT.CALENDAR_TYPE = TIME.CALENDAR_TYPE
945 				AND FCT.PROJECT_CLASS_ID = CLS.ID
946 				AND bitand(fct.curr_record_type_id, l_curr_record_type_id) = l_curr_record_type_id
947                 UNION ALL
948                 SELECT /*+ ORDERED */
949 			  1                     AS PHASE_CODE
950             , 2                     AS AMOUNT_TYPE_CODE
951             , l_label_cost          AS AMOUNT_TYPE_LABEL
952 			, 0                     AS P_ACTUAL
953 			, DECODE(TIME.amount_type,1,
954             DECODE(G_Report_Cost_Type,  'BC', burdened_cost,
955                                         'RC', raw_cost, 0), 0)         AS PY_ACTUAL
956 			, null                  AS P_CHANGE1
957 			, null                  AS P_CHANGE11
958 			, null                  AS P_CHANGE12
959 			, 0                     AS P_FORECAST
960 			, DECODE(TIME.amount_type,2,
961             DECODE(G_Report_Cost_Type,  'BC', forecast_burdened_cost,
962                                         'RC', forecast_raw_cost, 0), 0)  AS PY_FORECAST
963 			, null                  AS P_CHANGE2
964 			, null                  AS P_CHANGE21
965 			, null                  AS P_CHANGE22
966                 FROM
967                   PJI_PMV_TIME_DIM_TMP TIME
968 				, PJI_PMV_ORGZ_DIM_TMP HORG
969 				, PJI_PMV_CLS_DIM_TMP CLS
970 				, pji_fp_clso_f_mv fct
971 				, PJI_PMV_ORG_DIM_TMP HOU
972 			WHERE
973 				FCT.PROJECT_ORG_ID = HOU.ID
974 				AND FCT.PROJECT_ORGANIZATION_ID = HORG.ID
975 				AND FCT.TIME_ID = TIME.PRIOR_ID
976 				AND TIME.PRIOR_ID IS NOT NULL
977 				AND FCT.PERIOD_TYPE_ID = TIME.PERIOD_TYPE
978                 AND FCT.CALENDAR_TYPE = TIME.CALENDAR_TYPE
979 				AND FCT.PROJECT_CLASS_ID = CLS.ID
980 				AND bitand(fct.curr_record_type_id, l_curr_record_type_id) = l_curr_record_type_id
981 		UNION ALL
982 		SELECT /*+ ORDERED */
983 			  1                          AS PHASE_CODE
984             , 3                         AS AMOUNT_TYPE_CODE
985             , l_label_margin            AS AMOUNT_TYPE_LABEL
986 			, DECODE(TIME.amount_type,1, (revenue -
987             DECODE(G_Report_Cost_Type,  'BC', burdened_cost,
988                                         'RC', raw_cost, 0)), 0)  AS P_ACTUAL
989 			, 0                     AS PY_ACTUAL
990 			, null                  AS P_CHANGE1
991 			, null                  AS P_CHANGE11
992 			, null                  AS P_CHANGE12
993 			, DECODE(TIME.amount_type,2, (forecast_revenue -
994             DECODE(G_Report_Cost_Type,  'BC', forecast_burdened_cost,
995                                         'RC', forecast_raw_cost, 0)), 0)   AS P_FORECAST
996 			, 0                                           AS PY_FORECAST
997 			, null                  AS P_CHANGE2
998 			, null                  AS P_CHANGE21
999 			, null                  AS P_CHANGE22
1000 		FROM
1001 			PJI_PMV_TIME_DIM_TMP TIME
1002 			, PJI_PMV_ORGZ_DIM_TMP HORG
1003 			, PJI_PMV_CLS_DIM_TMP CLS
1004 			, pji_fp_clso_f_mv fct
1005 			, PJI_PMV_ORG_DIM_TMP HOU
1006 		WHERE
1007 				FCT.PROJECT_ORG_ID = HOU.ID
1008 				AND FCT.PROJECT_ORGANIZATION_ID = HORG.ID
1009 				AND FCT.TIME_ID = TIME.ID
1010 				AND TIME.ID IS NOT NULL
1011 				AND FCT.PERIOD_TYPE_ID = TIME.PERIOD_TYPE
1012                 AND FCT.CALENDAR_TYPE = TIME.CALENDAR_TYPE
1013 				AND FCT.PROJECT_CLASS_ID = CLS.ID
1014 				AND bitand(fct.curr_record_type_id, l_curr_record_type_id) = l_curr_record_type_id
1015                 UNION ALL
1016         	SELECT /*+ ORDERED */
1017 			  1                        AS PHASE_CODE
1018             , 3                        AS AMOUNT_TYPE_CODE
1019             , l_label_margin           AS AMOUNT_TYPE_LABEL
1020 			, 0                        AS P_ACTUAL
1021 			, DECODE(TIME.amount_type,1, (revenue -
1022                 DECODE(G_Report_Cost_Type,  'BC', burdened_cost,
1023                                             'RC', raw_cost, 0)), 0)  AS PY_ACTUAL
1024 			, null                  AS P_CHANGE1
1025 			, null                  AS P_CHANGE11
1026 			, null                  AS P_CHANGE12
1027 			, 0                     AS P_FORECAST
1028 			, DECODE(TIME.amount_type,2, (forecast_revenue -
1029                 DECODE(G_Report_Cost_Type,  'BC', forecast_burdened_cost,
1030                                             'RC', forecast_raw_cost, 0)), 0)   AS PY_FORECAST
1031 			, null                  AS P_CHANGE2
1032 			, null                  AS P_CHANGE21
1033 			, null                  AS P_CHANGE22
1034                 FROM	PJI_PMV_TIME_DIM_TMP TIME
1035           		, PJI_PMV_ORGZ_DIM_TMP HORG
1036 				, PJI_PMV_CLS_DIM_TMP CLS
1037 				, pji_fp_clso_f_mv fct
1038 				, PJI_PMV_ORG_DIM_TMP HOU
1039 			WHERE
1040 				FCT.PROJECT_ORG_ID = HOU.ID
1041 				AND FCT.PROJECT_ORGANIZATION_ID = HORG.ID
1042 				AND FCT.TIME_ID = TIME.PRIOR_ID
1043 				AND TIME.PRIOR_ID IS NOT NULL
1044 				AND FCT.PERIOD_TYPE_ID = TIME.PERIOD_TYPE
1045             	AND FCT.CALENDAR_TYPE = TIME.CALENDAR_TYPE
1046 				AND FCT.PROJECT_CLASS_ID = CLS.ID
1047 				AND bitand(fct.curr_record_type_id, l_curr_record_type_id) = l_curr_record_type_id
1048                 UNION ALL
1049 		SELECT
1050 			  1                       AS PHASE_CODE
1051             , 1                       AS AMOUNT_TYPE_CODE
1052             , l_label_rev             AS AMOUNT_TYPE_LABEL
1053 			, 0                       AS P_ACTUAL
1054 			, 0                       AS PY_ACTUAL
1055 			, null                    AS P_CHANGE1
1056 			, null                    AS P_CHANGE11
1057 			, null                    AS P_CHANGE12
1058 			, 0                       AS P_FORECAST
1059 			, 0                       AS PY_FORECAST
1060 			, null                    AS P_CHANGE2
1061 			, null                    AS P_CHANGE21
1062 			, null                    AS P_CHANGE22
1063 		FROM	dual
1064                 UNION ALL
1065 		SELECT
1066 			1                         AS PHASE_CODE
1067             ,2                        AS AMOUNT_TYPE_CODE
1068             ,l_label_cost             AS AMOUNT_TYPE_LABEL
1069 			, 0                       AS P_ACTUAL
1070 			, 0                       AS PY_ACTUAL
1071 			, null                    AS P_CHANGE1
1072 			, null                    AS P_CHANGE11
1073 			, null                    AS P_CHANGE12
1074 			, 0                       AS P_FORECAST
1075 			, 0                       AS PY_FORECAST
1076 			, null                    AS P_CHANGE2
1077 			, null                    AS P_CHANGE21
1078 			, null                    AS P_CHANGE22
1079 		FROM	dual
1080                 UNION ALL
1081 		SELECT
1082 			1                         AS PHASE_CODE
1083             ,3                        AS AMOUNT_TYPE_CODE
1084             ,l_label_margin           AS AMOUNT_TYPE_LABEL
1085 			, 0                        AS P_ACTUAL
1086 			, 0                        AS PY_ACTUAL
1087 			, null                     AS P_CHANGE1
1088 			, null                     AS P_CHANGE11
1089 			, null                     AS P_CHANGE12
1090 			, 0                        AS P_FORECAST
1091 			, 0                        AS PY_FORECAST
1092 			, null                     AS P_CHANGE2
1093 			, null                     AS P_CHANGE21
1094 			, null                     AS P_CHANGE22
1095 		FROM	dual
1096                 )
1097         WHERE 1 = 1
1098 	GROUP BY PHASE_CODE,AMOUNT_TYPE_CODE,AMOUNT_TYPE_LABEL;
1099 
1100 
1101 /*
1102 ** Expenditure or Revenue Type Processing ---------------------------------------------------+
1103 */
1104 
1105 /* -----------------------------------  Case 3 truth table   -------------------------------------  */
1106 
1107         ELSIF (l_Convert_Classification = 'N')
1108          and (l_Convert_Work_Type = 'N')
1109           THEN
1110 
1111            SELECT PJI_REP_PP3(PHASE_CODE
1112             ,AMOUNT_TYPE_CODE
1113             ,AMOUNT_TYPE_LABEL
1114 			, SUM( P_ACTUAL )
1115 			, NULL
1116 			, NULL
1117 			, SUM( PY_ACTUAL )
1118 			, NULL
1119 			, NULL
1120 			, SUM( P_CHANGE1 )
1121 			, SUM( P_CHANGE11 )
1122 			, SUM( P_CHANGE12 )
1123 			, SUM( P_FORECAST )
1124 			, NULL
1125 			, NULL
1126 			, SUM( PY_FORECAST )
1127 			, NULL
1128 			, NULL
1129 			, SUM( P_CHANGE2 )
1130 			, SUM( P_CHANGE21 )
1131 			, SUM( P_CHANGE22 )
1132 			, NULL
1133 			, NULL)
1134            BULK COLLECT INTO l_phase_tab
1135            FROM
1136 	      ( SELECT /*+ ORDERED */
1137 			  1                     AS PHASE_CODE
1138             , 1                     AS AMOUNT_TYPE_CODE
1139             , l_label_rev           AS AMOUNT_TYPE_LABEL
1140 			, DECODE(TIME.amount_type,1, revenue, 0)               AS P_ACTUAL
1141 			, 0                     AS PY_ACTUAL
1142 			, null                  AS P_CHANGE1
1143 			, null                  AS P_CHANGE11
1144 			, null                  AS P_CHANGE12
1145 			, null      AS P_FORECAST
1146 			, 0                     AS PY_FORECAST
1147 			, null                  AS P_CHANGE2
1148 			, null                  AS P_CHANGE21
1149 			, null                  AS P_CHANGE22
1150 		FROM
1151 			PJI_PMV_TIME_DIM_TMP TIME
1152 			, PJI_PMV_ORGZ_DIM_TMP HORG
1153 			, PJI_PMV_ET_RT_DIM_TMP ET
1154 			, PJI_FP_ORGO_ET_F_MV fct
1155 			, PJI_PMV_ORG_DIM_TMP HOU
1156 
1157 		WHERE
1158 				FCT.ORG_ID = HOU.ID
1159 				AND FCT.ORGANIZATION_ID = HORG.ID
1160 				AND FCT.TIME_ID = TIME.ID
1161 				AND TIME.ID IS NOT NULL
1162 				AND FCT.PERIOD_TYPE_ID = TIME.PERIOD_TYPE
1163                          	AND FCT.CALENDAR_TYPE = TIME.CALENDAR_TYPE
1164 				AND FCT.EXP_EVT_TYPE_ID = ET.ID
1165                                 AND ET.record_type = 'RT'
1166 				AND bitand(fct.curr_record_type_id, l_curr_record_type_id) = l_curr_record_type_id
1167                 UNION ALL
1168 		SELECT /*+ ORDERED */
1169 			  1                     AS PHASE_CODE
1170             , 1                     AS AMOUNT_TYPE_CODE
1171             , l_label_rev           AS AMOUNT_TYPE_LABEL
1172 			, 0                     AS P_ACTUAL
1173 			, DECODE(TIME.amount_type,1, revenue, 0)               AS PY_ACTUAL
1174 			, null                  AS P_CHANGE1
1175 			, null                  AS P_CHANGE11
1176 			, null                  AS P_CHANGE12
1177 			, 0                     AS P_FORECAST
1178 			, null      AS PY_FORECAST
1179 			, null                  AS P_CHANGE2
1180 			, null                  AS P_CHANGE21
1181 			, null                  AS P_CHANGE22
1182                 FROM
1183 			PJI_PMV_TIME_DIM_TMP TIME
1184 			, PJI_PMV_ORGZ_DIM_TMP HORG
1185 			, PJI_PMV_ET_RT_DIM_TMP ET
1186 			, PJI_FP_ORGO_ET_F_MV fct
1187 			, PJI_PMV_ORG_DIM_TMP HOU
1188 		WHERE
1189 				FCT.ORG_ID = HOU.ID
1190 				AND FCT.ORGANIZATION_ID = HORG.ID
1191 				AND FCT.TIME_ID = TIME.PRIOR_ID
1192 				AND TIME.PRIOR_ID IS NOT NULL
1193 				AND FCT.PERIOD_TYPE_ID = TIME.PERIOD_TYPE
1194             	AND FCT.CALENDAR_TYPE = TIME.CALENDAR_TYPE
1195 				AND FCT.EXP_EVT_TYPE_ID = ET.ID
1196                                 AND ET.record_type = 'RT'
1197 				AND bitand(fct.curr_record_type_id, l_curr_record_type_id) = l_curr_record_type_id
1198 		UNION ALL
1199                 SELECT /*+ ORDERED */
1200 			  1          AS PHASE_CODE
1201             , 2                      AS AMOUNT_TYPE_CODE
1202             , l_label_cost           AS AMOUNT_TYPE_LABEL
1203 			, DECODE(TIME.amount_type,1,
1204             DECODE(G_Report_Cost_Type,  'BC', burdened_cost,
1205                                         'RC', raw_cost, 0), 0)         AS P_ACTUAL
1206 			, 0                     AS PY_ACTUAL
1207 			, null                  AS P_CHANGE1
1208 			, null                  AS P_CHANGE11
1209 			, null                  AS P_CHANGE12
1210 			, null  AS P_FORECAST
1211 			, 0                     AS PY_FORECAST
1212 			, null                  AS P_CHANGE2
1213 			, null                  AS P_CHANGE21
1214 			, null                  AS P_CHANGE22
1215 		FROM
1216 			PJI_PMV_TIME_DIM_TMP TIME
1217 			, PJI_PMV_ORGZ_DIM_TMP HORG
1218 			, PJI_PMV_ET_RT_DIM_TMP ET
1219 			, PJI_FP_ORGO_ET_F_MV fct
1220 			, PJI_PMV_ORG_DIM_TMP HOU
1221 
1222 		WHERE
1223 				FCT.ORG_ID = HOU.ID
1224 				AND FCT.ORGANIZATION_ID = HORG.ID
1225 				AND FCT.TIME_ID = TIME.ID
1226 				AND TIME.ID IS NOT NULL
1227 				AND FCT.PERIOD_TYPE_ID = TIME.PERIOD_TYPE
1228             	AND FCT.CALENDAR_TYPE = TIME.CALENDAR_TYPE
1229 				AND FCT.EXP_EVT_TYPE_ID = ET.ID
1230                                 AND ET.record_type = 'RT'
1231 				AND bitand(fct.curr_record_type_id, l_curr_record_type_id) = l_curr_record_type_id
1232                 UNION ALL
1233                 SELECT /*+ ORDERED */
1234 			  1                     AS PHASE_CODE
1235             , 2                     AS AMOUNT_TYPE_CODE
1236             , l_label_cost          AS AMOUNT_TYPE_LABEL
1237 			, 0                     AS P_ACTUAL
1238 			, DECODE(TIME.amount_type,1,
1239             DECODE(G_Report_Cost_Type,  'BC', burdened_cost,
1240                                         'RC', raw_cost, 0), 0)         AS PY_ACTUAL
1241 			, null                  AS P_CHANGE1
1242 			, null                  AS P_CHANGE11
1243 			, null                  AS P_CHANGE12
1244 			, 0                     AS P_FORECAST
1245 			, null  AS PY_FORECAST
1246 			, null                  AS P_CHANGE2
1247 			, null                  AS P_CHANGE21
1248 			, null                  AS P_CHANGE22
1249                 FROM
1250                   PJI_PMV_TIME_DIM_TMP TIME
1251 				, PJI_PMV_ORGZ_DIM_TMP HORG
1252 				, PJI_PMV_ET_RT_DIM_TMP ET
1253 				, PJI_FP_ORGO_ET_F_MV fct
1254 				, PJI_PMV_ORG_DIM_TMP HOU
1255 			WHERE
1256 				FCT.ORG_ID = HOU.ID
1257 				AND FCT.ORGANIZATION_ID = HORG.ID
1258 				AND FCT.TIME_ID = TIME.PRIOR_ID
1259 				AND TIME.PRIOR_ID IS NOT NULL
1260 				AND FCT.PERIOD_TYPE_ID = TIME.PERIOD_TYPE
1261                 AND FCT.CALENDAR_TYPE = TIME.CALENDAR_TYPE
1262 				AND FCT.EXP_EVT_TYPE_ID = ET.ID
1263                                 AND ET.record_type = 'RT'
1264 				AND bitand(fct.curr_record_type_id, l_curr_record_type_id) = l_curr_record_type_id
1265 		UNION ALL
1266 		SELECT /*+ ORDERED */
1267 			  1                          AS PHASE_CODE
1268             , 3                         AS AMOUNT_TYPE_CODE
1269             , l_label_margin            AS AMOUNT_TYPE_LABEL
1270 			, DECODE(TIME.amount_type,1, (revenue -
1271             DECODE(G_Report_Cost_Type,  'BC', burdened_cost,
1272                                         'RC', raw_cost, 0)), 0)  AS P_ACTUAL
1273 			, 0                     AS PY_ACTUAL
1274 			, null                  AS P_CHANGE1
1275 			, null                  AS P_CHANGE11
1276 			, null                  AS P_CHANGE12
1277 			, null   AS P_FORECAST
1278 			, 0                                           AS PY_FORECAST
1279 			, null                  AS P_CHANGE2
1280 			, null                  AS P_CHANGE21
1281 			, null                  AS P_CHANGE22
1282 		FROM
1283 			PJI_PMV_TIME_DIM_TMP TIME
1284 			, PJI_PMV_ORGZ_DIM_TMP HORG
1285 			, PJI_PMV_ET_RT_DIM_TMP ET
1286 			, PJI_FP_ORGO_ET_F_MV fct
1287 			, PJI_PMV_ORG_DIM_TMP HOU
1288 		WHERE
1289 				FCT.ORG_ID = HOU.ID
1290 				AND FCT.ORGANIZATION_ID = HORG.ID
1291 				AND FCT.TIME_ID = TIME.ID
1292 				AND TIME.ID IS NOT NULL
1293 				AND FCT.PERIOD_TYPE_ID = TIME.PERIOD_TYPE
1294                 AND FCT.CALENDAR_TYPE = TIME.CALENDAR_TYPE
1295 				AND FCT.EXP_EVT_TYPE_ID = ET.ID
1296                                 AND ET.record_type = 'RT'
1297 				AND bitand(fct.curr_record_type_id, l_curr_record_type_id) = l_curr_record_type_id
1298                 UNION ALL
1299         	SELECT /*+ ORDERED */
1300 			  1                        AS PHASE_CODE
1301             , 3                        AS AMOUNT_TYPE_CODE
1302             , l_label_margin           AS AMOUNT_TYPE_LABEL
1303 			, 0                        AS P_ACTUAL
1304 			, DECODE(TIME.amount_type,1, (revenue -
1305                 DECODE(G_Report_Cost_Type,  'BC', burdened_cost,
1306                                             'RC', raw_cost, 0)), 0)  AS PY_ACTUAL
1307 			, null                  AS P_CHANGE1
1308 			, null                  AS P_CHANGE11
1309 			, null                  AS P_CHANGE12
1310 			, 0                     AS P_FORECAST
1311 			, null   AS PY_FORECAST
1312 			, null                  AS P_CHANGE2
1313 			, null                  AS P_CHANGE21
1314 			, null                  AS P_CHANGE22
1315                 FROM	PJI_PMV_TIME_DIM_TMP TIME
1316           		, PJI_PMV_ORGZ_DIM_TMP HORG
1317 			, PJI_PMV_ET_RT_DIM_TMP ET
1318 			, PJI_FP_ORGO_ET_F_MV fct
1319 			, PJI_PMV_ORG_DIM_TMP HOU
1320 			WHERE
1321 				FCT.ORG_ID = HOU.ID
1322 				AND FCT.ORGANIZATION_ID = HORG.ID
1323 				AND FCT.TIME_ID = TIME.PRIOR_ID
1324 				AND TIME.PRIOR_ID IS NOT NULL
1325 				AND FCT.PERIOD_TYPE_ID = TIME.PERIOD_TYPE
1326             	AND FCT.CALENDAR_TYPE = TIME.CALENDAR_TYPE
1327 				AND FCT.EXP_EVT_TYPE_ID = ET.ID
1328                                 AND ET.record_type = 'RT'
1329 				AND bitand(fct.curr_record_type_id, l_curr_record_type_id) = l_curr_record_type_id
1330                 UNION ALL
1331 		SELECT
1332 			  1                       AS PHASE_CODE
1333             , 1                       AS AMOUNT_TYPE_CODE
1334             , l_label_rev             AS AMOUNT_TYPE_LABEL
1335 			, 0                       AS P_ACTUAL
1336 			, 0                       AS PY_ACTUAL
1337 			, null                    AS P_CHANGE1
1338 			, null                    AS P_CHANGE11
1339 			, null                    AS P_CHANGE12
1340 			, 0                       AS P_FORECAST
1341 			, 0                       AS PY_FORECAST
1342 			, null                    AS P_CHANGE2
1343 			, null                    AS P_CHANGE21
1344 			, null                    AS P_CHANGE22
1345 		FROM	dual
1346                 UNION ALL
1347 		SELECT
1348 			1                         AS PHASE_CODE
1349             ,2                        AS AMOUNT_TYPE_CODE
1350             ,l_label_cost             AS AMOUNT_TYPE_LABEL
1351 			, 0                       AS P_ACTUAL
1352 			, 0                       AS PY_ACTUAL
1353 			, null                    AS P_CHANGE1
1354 			, null                    AS P_CHANGE11
1355 			, null                    AS P_CHANGE12
1356 			, 0                       AS P_FORECAST
1357 			, 0                       AS PY_FORECAST
1358 			, null                    AS P_CHANGE2
1359 			, null                    AS P_CHANGE21
1360 			, null                    AS P_CHANGE22
1361 		FROM	dual
1362                 UNION ALL
1363 		SELECT
1364 			1                         AS PHASE_CODE
1365             ,3                        AS AMOUNT_TYPE_CODE
1366             ,l_label_margin           AS AMOUNT_TYPE_LABEL
1367 			, 0                        AS P_ACTUAL
1368 			, 0                        AS PY_ACTUAL
1369 			, null                     AS P_CHANGE1
1370 			, null                     AS P_CHANGE11
1371 			, null                     AS P_CHANGE12
1372 			, 0                        AS P_FORECAST
1373 			, 0                        AS PY_FORECAST
1374 			, null                     AS P_CHANGE2
1375 			, null                     AS P_CHANGE21
1376 			, null                     AS P_CHANGE22
1377 		FROM	dual
1378                 )
1379         WHERE 1 = 1
1380 	GROUP BY PHASE_CODE,AMOUNT_TYPE_CODE,AMOUNT_TYPE_LABEL;
1381 
1382 /*
1383 **  Work Type Processing ---------------------------------------------------+
1384 */
1385 
1386 /* -----------------------------------  Case 4 truth table   -------------------------------------  */
1387 
1388         ELSIF (l_Convert_Classification = 'N')
1389          and  (l_Convert_Event_Revenue_Type = 'N')
1390           THEN
1391 
1392            SELECT PJI_REP_PP3(PHASE_CODE
1393             ,AMOUNT_TYPE_CODE
1394             ,AMOUNT_TYPE_LABEL
1395 			, SUM( P_ACTUAL )
1396 			, NULL
1397 			, NULL
1398 			, SUM( PY_ACTUAL )
1399 			, NULL
1400 			, NULL
1401 			, SUM( P_CHANGE1 )
1402 			, SUM( P_CHANGE11 )
1403 			, SUM( P_CHANGE12 )
1404 			, SUM( P_FORECAST )
1405 			, NULL
1406 			, NULL
1407 			, SUM( PY_FORECAST )
1408 			, NULL
1409 			, NULL
1410 			, SUM( P_CHANGE2 )
1411 			, SUM( P_CHANGE21 )
1412 			, SUM( P_CHANGE22 )
1413 			, NULL
1414 			, NULL)
1415            BULK COLLECT INTO l_phase_tab
1416            FROM
1417 	      ( SELECT /*+ ORDERED */
1418 			  1                     AS PHASE_CODE
1419             , 1                     AS AMOUNT_TYPE_CODE
1420             , l_label_rev           AS AMOUNT_TYPE_LABEL
1421 			, null               AS P_ACTUAL
1422 			, 0                     AS PY_ACTUAL
1423 			, null                  AS P_CHANGE1
1424 			, null                  AS P_CHANGE11
1425 			, null                  AS P_CHANGE12
1426 			, null      AS P_FORECAST
1427 			, 0                     AS PY_FORECAST
1428 			, null                  AS P_CHANGE2
1429 			, null                  AS P_CHANGE21
1430 			, null                  AS P_CHANGE22
1431 		FROM
1432 			PJI_PMV_TIME_DIM_TMP TIME
1433 			, PJI_PMV_ORGZ_DIM_TMP HORG
1434 			, PJI_PMV_WT_DIM_TMP WT
1435 			, PJI_FP_ORGO_ET_WT_F_MV fct
1436 			, PJI_PMV_ORG_DIM_TMP HOU
1437 
1438 		WHERE
1439 				FCT.ORG_ID = HOU.ID
1440 				AND FCT.ORGANIZATION_ID = HORG.ID
1441 				AND FCT.TIME_ID = TIME.ID
1442 				AND TIME.ID IS NOT NULL
1443 				AND FCT.PERIOD_TYPE_ID = TIME.PERIOD_TYPE
1444                          	AND FCT.CALENDAR_TYPE = TIME.CALENDAR_TYPE
1445 				AND FCT.WORK_TYPE_ID = WT.ID
1446 				AND bitand(fct.curr_record_type_id, l_curr_record_type_id) = l_curr_record_type_id
1447                 UNION ALL
1448 		SELECT /*+ ORDERED */
1449 			  1                     AS PHASE_CODE
1450             , 1                     AS AMOUNT_TYPE_CODE
1451             , l_label_rev           AS AMOUNT_TYPE_LABEL
1452 			, 0                     AS P_ACTUAL
1453 			, null               AS PY_ACTUAL
1454 			, null                  AS P_CHANGE1
1455 			, null                  AS P_CHANGE11
1456 			, null                  AS P_CHANGE12
1457 			, 0                     AS P_FORECAST
1458 			, null      AS PY_FORECAST
1459 			, null                  AS P_CHANGE2
1460 			, null                  AS P_CHANGE21
1461 			, null                  AS P_CHANGE22
1462                 FROM
1463 			PJI_PMV_TIME_DIM_TMP TIME
1464 			, PJI_PMV_ORGZ_DIM_TMP HORG
1465 			, PJI_PMV_WT_DIM_TMP WT
1466 			, PJI_FP_ORGO_ET_WT_F_MV fct
1467 			, PJI_PMV_ORG_DIM_TMP HOU
1468 		WHERE
1469 				FCT.ORG_ID = HOU.ID
1470 				AND FCT.ORGANIZATION_ID = HORG.ID
1471 				AND FCT.TIME_ID = TIME.PRIOR_ID
1472 				AND TIME.PRIOR_ID IS NOT NULL
1473 				AND FCT.PERIOD_TYPE_ID = TIME.PERIOD_TYPE
1474             	AND FCT.CALENDAR_TYPE = TIME.CALENDAR_TYPE
1475 				AND FCT.WORK_TYPE_ID = WT.ID
1476 				AND bitand(fct.curr_record_type_id, l_curr_record_type_id) = l_curr_record_type_id
1477 		UNION ALL
1478                 SELECT /*+ ORDERED */
1479 			  1          AS PHASE_CODE
1480             , 2                      AS AMOUNT_TYPE_CODE
1481             , l_label_cost           AS AMOUNT_TYPE_LABEL
1482 			, DECODE(TIME.amount_type,1,
1483             DECODE(G_Report_Cost_Type,  'BC', burdened_cost,
1484                                         'RC', raw_cost, 0), 0)         AS P_ACTUAL
1485 			, 0                     AS PY_ACTUAL
1486 			, null                  AS P_CHANGE1
1487 			, null                  AS P_CHANGE11
1488 			, null                  AS P_CHANGE12
1489 			, null  AS P_FORECAST
1490 			, 0                     AS PY_FORECAST
1491 			, null                  AS P_CHANGE2
1492 			, null                  AS P_CHANGE21
1493 			, null                  AS P_CHANGE22
1494 		FROM
1495 			PJI_PMV_TIME_DIM_TMP TIME
1496 			, PJI_PMV_ORGZ_DIM_TMP HORG
1497 			, PJI_PMV_WT_DIM_TMP WT
1498 			, PJI_FP_ORGO_ET_WT_F_MV fct
1499 			, PJI_PMV_ORG_DIM_TMP HOU
1500 
1501 		WHERE
1502 				FCT.ORG_ID = HOU.ID
1503 				AND FCT.ORGANIZATION_ID = HORG.ID
1504 				AND FCT.TIME_ID = TIME.ID
1505 				AND TIME.ID IS NOT NULL
1506 				AND FCT.PERIOD_TYPE_ID = TIME.PERIOD_TYPE
1507             	AND FCT.CALENDAR_TYPE = TIME.CALENDAR_TYPE
1508 				AND FCT.WORK_TYPE_ID = WT.ID
1509 				AND bitand(fct.curr_record_type_id, l_curr_record_type_id) = l_curr_record_type_id
1510                 UNION ALL
1511                 SELECT /*+ ORDERED */
1512 			  1                     AS PHASE_CODE
1513             , 2                     AS AMOUNT_TYPE_CODE
1514             , l_label_cost          AS AMOUNT_TYPE_LABEL
1515 			, 0                     AS P_ACTUAL
1516 			, DECODE(TIME.amount_type,1,
1517             DECODE(G_Report_Cost_Type,  'BC', burdened_cost,
1518                                         'RC', raw_cost, 0), 0)         AS PY_ACTUAL
1519 			, null                  AS P_CHANGE1
1520 			, null                  AS P_CHANGE11
1521 			, null                  AS P_CHANGE12
1522 			, 0                     AS P_FORECAST
1523 			, null  AS PY_FORECAST
1524 			, null                  AS P_CHANGE2
1525 			, null                  AS P_CHANGE21
1526 			, null                  AS P_CHANGE22
1527                 FROM
1528                   PJI_PMV_TIME_DIM_TMP TIME
1529 				, PJI_PMV_ORGZ_DIM_TMP HORG
1530 				, PJI_PMV_WT_DIM_TMP WT
1531 				, PJI_FP_ORGO_ET_WT_F_MV fct
1532 				, PJI_PMV_ORG_DIM_TMP HOU
1533 			WHERE
1534 				FCT.ORG_ID = HOU.ID
1535 				AND FCT.ORGANIZATION_ID = HORG.ID
1536 				AND FCT.TIME_ID = TIME.PRIOR_ID
1537 				AND TIME.PRIOR_ID IS NOT NULL
1538 				AND FCT.PERIOD_TYPE_ID = TIME.PERIOD_TYPE
1539                 AND FCT.CALENDAR_TYPE = TIME.CALENDAR_TYPE
1540 				AND FCT.WORK_TYPE_ID = WT.ID
1541 				AND bitand(fct.curr_record_type_id, l_curr_record_type_id) = l_curr_record_type_id
1542 		UNION ALL
1543 		SELECT /*+ ORDERED */
1544 			  1                          AS PHASE_CODE
1545             , 3                         AS AMOUNT_TYPE_CODE
1546             , l_label_margin            AS AMOUNT_TYPE_LABEL
1547 			, null  AS P_ACTUAL
1548 			, 0                     AS PY_ACTUAL
1549 			, null                  AS P_CHANGE1
1550 			, null                  AS P_CHANGE11
1551 			, null                  AS P_CHANGE12
1552 			, null   AS P_FORECAST
1553 			, 0                                           AS PY_FORECAST
1554 			, null                  AS P_CHANGE2
1555 			, null                  AS P_CHANGE21
1556 			, null                  AS P_CHANGE22
1557 		FROM
1558 			PJI_PMV_TIME_DIM_TMP TIME
1559 			, PJI_PMV_ORGZ_DIM_TMP HORG
1560 			, PJI_PMV_WT_DIM_TMP WT
1561 			, PJI_FP_ORGO_ET_WT_F_MV fct
1562 			, PJI_PMV_ORG_DIM_TMP HOU
1563 		WHERE
1564 				FCT.ORG_ID = HOU.ID
1565 				AND FCT.ORGANIZATION_ID = HORG.ID
1566 				AND FCT.TIME_ID = TIME.ID
1567 				AND TIME.ID IS NOT NULL
1568 				AND FCT.PERIOD_TYPE_ID = TIME.PERIOD_TYPE
1569                 AND FCT.CALENDAR_TYPE = TIME.CALENDAR_TYPE
1570 				AND FCT.WORK_TYPE_ID = WT.ID
1571 				AND bitand(fct.curr_record_type_id, l_curr_record_type_id) = l_curr_record_type_id
1572                 UNION ALL
1573         	SELECT /*+ ORDERED */
1574 			  1                        AS PHASE_CODE
1575             , 3                        AS AMOUNT_TYPE_CODE
1576             , l_label_margin           AS AMOUNT_TYPE_LABEL
1577 			, 0                        AS P_ACTUAL
1578 			, null  AS PY_ACTUAL
1579 			, null                  AS P_CHANGE1
1580 			, null                  AS P_CHANGE11
1581 			, null                  AS P_CHANGE12
1582 			, 0                     AS P_FORECAST
1583 			, null   AS PY_FORECAST
1584 			, null                  AS P_CHANGE2
1585 			, null                  AS P_CHANGE21
1586 			, null                  AS P_CHANGE22
1587                 FROM	PJI_PMV_TIME_DIM_TMP TIME
1588           		, PJI_PMV_ORGZ_DIM_TMP HORG
1589 			, PJI_PMV_WT_DIM_TMP WT
1590 			, PJI_FP_ORGO_ET_WT_F_MV fct
1591 			, PJI_PMV_ORG_DIM_TMP HOU
1592 			WHERE
1593 				FCT.ORG_ID = HOU.ID
1594 				AND FCT.ORGANIZATION_ID = HORG.ID
1595 				AND FCT.TIME_ID = TIME.PRIOR_ID
1596 				AND TIME.PRIOR_ID IS NOT NULL
1597 				AND FCT.PERIOD_TYPE_ID = TIME.PERIOD_TYPE
1598             	AND FCT.CALENDAR_TYPE = TIME.CALENDAR_TYPE
1599 				AND FCT.WORK_TYPE_ID = WT.ID
1600 				AND bitand(fct.curr_record_type_id, l_curr_record_type_id) = l_curr_record_type_id
1601                 UNION ALL
1602 		SELECT
1603 			  1                       AS PHASE_CODE
1604             , 1                       AS AMOUNT_TYPE_CODE
1605             , l_label_rev             AS AMOUNT_TYPE_LABEL
1606 			, 0                       AS P_ACTUAL
1607 			, 0                       AS PY_ACTUAL
1608 			, null                    AS P_CHANGE1
1609 			, null                    AS P_CHANGE11
1610 			, null                    AS P_CHANGE12
1611 			, 0                       AS P_FORECAST
1612 			, 0                       AS PY_FORECAST
1613 			, null                    AS P_CHANGE2
1614 			, null                    AS P_CHANGE21
1615 			, null                    AS P_CHANGE22
1616 		FROM	dual
1617                 UNION ALL
1618 		SELECT
1619 			1                         AS PHASE_CODE
1620             ,2                        AS AMOUNT_TYPE_CODE
1621             ,l_label_cost             AS AMOUNT_TYPE_LABEL
1622 			, 0                       AS P_ACTUAL
1623 			, 0                       AS PY_ACTUAL
1624 			, null                    AS P_CHANGE1
1625 			, null                    AS P_CHANGE11
1626 			, null                    AS P_CHANGE12
1627 			, 0                       AS P_FORECAST
1628 			, 0                       AS PY_FORECAST
1629 			, null                    AS P_CHANGE2
1630 			, null                    AS P_CHANGE21
1631 			, null                    AS P_CHANGE22
1632 		FROM	dual
1633                 UNION ALL
1634 		SELECT
1635 			1                         AS PHASE_CODE
1636             ,3                        AS AMOUNT_TYPE_CODE
1637             ,l_label_margin           AS AMOUNT_TYPE_LABEL
1638 			, 0                        AS P_ACTUAL
1639 			, 0                        AS PY_ACTUAL
1640 			, null                     AS P_CHANGE1
1641 			, null                     AS P_CHANGE11
1642 			, null                     AS P_CHANGE12
1643 			, 0                        AS P_FORECAST
1644 			, 0                        AS PY_FORECAST
1645 			, null                     AS P_CHANGE2
1646 			, null                     AS P_CHANGE21
1647 			, null                     AS P_CHANGE22
1648 		FROM	dual
1649                 )
1650         WHERE 1 = 1
1651 	GROUP BY PHASE_CODE,AMOUNT_TYPE_CODE,AMOUNT_TYPE_LABEL;
1652 
1653 /*
1654 ** Project classification and Expenditure or Revenue Type Processing
1655 
1656 ---------------------------------+
1657 */
1658 
1659 /* -----------------------------------  Case 5 truth table   -------------------------------------  */
1660 
1661         ELSIF (l_Convert_Work_Type = 'N')
1662           THEN
1663 
1664            SELECT PJI_REP_PP3(PHASE_CODE
1665             ,AMOUNT_TYPE_CODE
1666             ,AMOUNT_TYPE_LABEL
1667 			, SUM( P_ACTUAL )
1668 			, NULL
1669 			, NULL
1670 			, SUM( PY_ACTUAL )
1671 			, NULL
1672 			, NULL
1673 			, SUM( P_CHANGE1 )
1674 			, SUM( P_CHANGE11 )
1675 			, SUM( P_CHANGE12 )
1676 			, SUM( P_FORECAST )
1677 			, NULL
1678 			, NULL
1679 			, SUM( PY_FORECAST )
1680 			, NULL
1681 			, NULL
1682 			, SUM( P_CHANGE2 )
1683 			, SUM( P_CHANGE21 )
1684 			, SUM( P_CHANGE22 )
1685 			, NULL
1686 			, NULL)
1687            BULK COLLECT INTO l_phase_tab
1688            FROM
1689 	      ( SELECT /*+ ORDERED */
1690 			  1                     AS PHASE_CODE
1691             , 1                     AS AMOUNT_TYPE_CODE
1692             , l_label_rev           AS AMOUNT_TYPE_LABEL
1693 			, DECODE(TIME.amount_type,1, revenue, 0)               AS P_ACTUAL
1694 			, 0                     AS PY_ACTUAL
1695 			, null                  AS P_CHANGE1
1696 			, null                  AS P_CHANGE11
1697 			, null                  AS P_CHANGE12
1698 			, null      AS P_FORECAST
1699 			, 0                     AS PY_FORECAST
1700 			, null                  AS P_CHANGE2
1701 			, null                  AS P_CHANGE21
1702 			, null                  AS P_CHANGE22
1703 		FROM
1704 			PJI_PMV_TIME_DIM_TMP TIME
1705 			, PJI_PMV_ORGZ_DIM_TMP HORG
1706 			, PJI_PMV_CLS_DIM_TMP CLS
1707 			, PJI_PMV_ET_RT_DIM_TMP ET
1708 			, PJI_FP_CLSO_ET_F_MV fct
1709 			, PJI_PMV_ORG_DIM_TMP HOU
1710 
1711 		WHERE
1712 				FCT.PROJECT_ORG_ID = HOU.ID
1713 				AND FCT.PROJECT_ORGANIZATION_ID = HORG.ID
1714 				AND FCT.TIME_ID = TIME.ID
1715 				AND TIME.ID IS NOT NULL
1716 				AND FCT.PERIOD_TYPE_ID = TIME.PERIOD_TYPE
1717                          	AND FCT.CALENDAR_TYPE = TIME.CALENDAR_TYPE
1718 				AND FCT.PROJECT_CLASS_ID = CLS.ID
1719 				AND FCT.EXP_EVT_TYPE_ID = ET.ID
1720                                 AND ET.record_type = 'RT'
1721 
1722 				AND bitand(fct.curr_record_type_id, l_curr_record_type_id) = l_curr_record_type_id
1723                 UNION ALL
1724 		SELECT /*+ ORDERED */
1725 			  1                     AS PHASE_CODE
1726             , 1                     AS AMOUNT_TYPE_CODE
1727             , l_label_rev           AS AMOUNT_TYPE_LABEL
1728 			, 0                     AS P_ACTUAL
1729 			, DECODE(TIME.amount_type,1, revenue, 0)               AS PY_ACTUAL
1730 			, null                  AS P_CHANGE1
1731 			, null                  AS P_CHANGE11
1732 			, null                  AS P_CHANGE12
1733 			, 0                     AS P_FORECAST
1734 			, null      AS PY_FORECAST
1735 			, null                  AS P_CHANGE2
1736 			, null                  AS P_CHANGE21
1737 			, null                  AS P_CHANGE22
1738                 FROM
1739 			PJI_PMV_TIME_DIM_TMP TIME
1740 			, PJI_PMV_ORGZ_DIM_TMP HORG
1741 			, PJI_PMV_CLS_DIM_TMP CLS
1742 			, PJI_PMV_ET_RT_DIM_TMP ET
1743 			, PJI_FP_CLSO_ET_F_MV fct
1744 			, PJI_PMV_ORG_DIM_TMP HOU
1745 		WHERE
1746 				FCT.PROJECT_ORG_ID = HOU.ID
1747 				AND FCT.PROJECT_ORGANIZATION_ID = HORG.ID
1748 				AND FCT.TIME_ID = TIME.PRIOR_ID
1749 				AND TIME.PRIOR_ID IS NOT NULL
1750 				AND FCT.PERIOD_TYPE_ID = TIME.PERIOD_TYPE
1751             	AND FCT.CALENDAR_TYPE = TIME.CALENDAR_TYPE
1752 				AND FCT.PROJECT_CLASS_ID = CLS.ID
1753 				AND FCT.EXP_EVT_TYPE_ID = ET.ID
1754                                 AND ET.record_type = 'RT'
1755 				AND bitand(fct.curr_record_type_id, l_curr_record_type_id) = l_curr_record_type_id
1756 		UNION ALL
1757                 SELECT /*+ ORDERED */
1758 			  1          AS PHASE_CODE
1759             , 2                      AS AMOUNT_TYPE_CODE
1760             , l_label_cost           AS AMOUNT_TYPE_LABEL
1761 			, DECODE(TIME.amount_type,1,
1762             DECODE(G_Report_Cost_Type,  'BC', burdened_cost,
1763                                         'RC', raw_cost, 0), 0)         AS P_ACTUAL
1764 			, 0                     AS PY_ACTUAL
1765 			, null                  AS P_CHANGE1
1766 			, null                  AS P_CHANGE11
1767 			, null                  AS P_CHANGE12
1768 			, null  AS P_FORECAST
1769 			, 0                     AS PY_FORECAST
1770 			, null                  AS P_CHANGE2
1771 			, null                  AS P_CHANGE21
1772 			, null                  AS P_CHANGE22
1773 		FROM
1774 			PJI_PMV_TIME_DIM_TMP TIME
1775 			, PJI_PMV_ORGZ_DIM_TMP HORG
1776 			, PJI_PMV_CLS_DIM_TMP CLS
1777 			, PJI_PMV_ET_RT_DIM_TMP ET
1778 			, PJI_FP_CLSO_ET_F_MV fct
1779 			, PJI_PMV_ORG_DIM_TMP HOU
1780 
1781 		WHERE
1782 				FCT.PROJECT_ORG_ID = HOU.ID
1783 				AND FCT.PROJECT_ORGANIZATION_ID = HORG.ID
1784 				AND FCT.TIME_ID = TIME.ID
1785 				AND TIME.ID IS NOT NULL
1786 				AND FCT.PERIOD_TYPE_ID = TIME.PERIOD_TYPE
1787             	AND FCT.CALENDAR_TYPE = TIME.CALENDAR_TYPE
1788 				AND FCT.PROJECT_CLASS_ID = CLS.ID
1789 				AND FCT.EXP_EVT_TYPE_ID = ET.ID
1790                                 AND ET.record_type = 'RT'
1791 				AND bitand(fct.curr_record_type_id, l_curr_record_type_id) = l_curr_record_type_id
1792                 UNION ALL
1793                 SELECT /*+ ORDERED */
1794 			  1                     AS PHASE_CODE
1795             , 2                     AS AMOUNT_TYPE_CODE
1796             , l_label_cost          AS AMOUNT_TYPE_LABEL
1797 			, 0                     AS P_ACTUAL
1798 			, DECODE(TIME.amount_type,1,
1799             DECODE(G_Report_Cost_Type,  'BC', burdened_cost,
1800                                         'RC', raw_cost, 0), 0)         AS PY_ACTUAL
1801 			, null                  AS P_CHANGE1
1802 			, null                  AS P_CHANGE11
1803 			, null                  AS P_CHANGE12
1804 			, 0                     AS P_FORECAST
1805 			, null  AS PY_FORECAST
1806 			, null                  AS P_CHANGE2
1807 			, null                  AS P_CHANGE21
1808 			, null                  AS P_CHANGE22
1809                 FROM
1810                   PJI_PMV_TIME_DIM_TMP TIME
1811 				, PJI_PMV_ORGZ_DIM_TMP HORG
1812 				, PJI_PMV_CLS_DIM_TMP CLS
1813 				, PJI_PMV_ET_RT_DIM_TMP ET
1814 				, PJI_FP_CLSO_ET_F_MV fct
1815 				, PJI_PMV_ORG_DIM_TMP HOU
1816 			WHERE
1817 				FCT.PROJECT_ORG_ID = HOU.ID
1818 				AND FCT.PROJECT_ORGANIZATION_ID = HORG.ID
1819 				AND FCT.TIME_ID = TIME.PRIOR_ID
1820 				AND TIME.PRIOR_ID IS NOT NULL
1821 				AND FCT.PERIOD_TYPE_ID = TIME.PERIOD_TYPE
1822                 AND FCT.CALENDAR_TYPE = TIME.CALENDAR_TYPE
1823 				AND FCT.PROJECT_CLASS_ID = CLS.ID
1824 				AND FCT.EXP_EVT_TYPE_ID = ET.ID
1825                                 AND ET.record_type = 'RT'
1826 				AND bitand(fct.curr_record_type_id, l_curr_record_type_id) = l_curr_record_type_id
1827 		UNION ALL
1828 		SELECT /*+ ORDERED */
1829 			  1                          AS PHASE_CODE
1830             , 3                         AS AMOUNT_TYPE_CODE
1831             , l_label_margin            AS AMOUNT_TYPE_LABEL
1832 			, DECODE(TIME.amount_type,1, (revenue -
1833             DECODE(G_Report_Cost_Type,  'BC', burdened_cost,
1834                                         'RC', raw_cost, 0)), 0)  AS P_ACTUAL
1835 			, 0                     AS PY_ACTUAL
1836 			, null                  AS P_CHANGE1
1837 			, null                  AS P_CHANGE11
1838 			, null                  AS P_CHANGE12
1839 			, null   AS P_FORECAST
1840 			, 0                                           AS PY_FORECAST
1841 			, null                  AS P_CHANGE2
1842 			, null                  AS P_CHANGE21
1843 			, null                  AS P_CHANGE22
1844 		FROM
1845 			PJI_PMV_TIME_DIM_TMP TIME
1846 			, PJI_PMV_ORGZ_DIM_TMP HORG
1847 			, PJI_PMV_CLS_DIM_TMP CLS
1848 			, PJI_PMV_ET_RT_DIM_TMP ET
1849 			, PJI_FP_CLSO_ET_F_MV fct
1850 			, PJI_PMV_ORG_DIM_TMP HOU
1851 		WHERE
1852 				FCT.PROJECT_ORG_ID = HOU.ID
1853 				AND FCT.PROJECT_ORGANIZATION_ID = HORG.ID
1854 				AND FCT.TIME_ID = TIME.ID
1855 				AND TIME.ID IS NOT NULL
1856 				AND FCT.PERIOD_TYPE_ID = TIME.PERIOD_TYPE
1857                 AND FCT.CALENDAR_TYPE = TIME.CALENDAR_TYPE
1858 				AND FCT.PROJECT_CLASS_ID = CLS.ID
1859 				AND FCT.EXP_EVT_TYPE_ID = ET.ID
1860                                 AND ET.record_type = 'RT'
1861 				AND bitand(fct.curr_record_type_id, l_curr_record_type_id) = l_curr_record_type_id
1862                 UNION ALL
1863         	SELECT /*+ ORDERED */
1864 			  1                        AS PHASE_CODE
1865             , 3                        AS AMOUNT_TYPE_CODE
1866             , l_label_margin           AS AMOUNT_TYPE_LABEL
1867 			, 0                        AS P_ACTUAL
1868 			, DECODE(TIME.amount_type,1, (revenue -
1869                 DECODE(G_Report_Cost_Type,  'BC', burdened_cost,
1870                                             'RC', raw_cost, 0)), 0)  AS PY_ACTUAL
1871 			, null                  AS P_CHANGE1
1872 			, null                  AS P_CHANGE11
1873 			, null                  AS P_CHANGE12
1874 			, 0                     AS P_FORECAST
1875 			, null   AS PY_FORECAST
1876 			, null                  AS P_CHANGE2
1877 			, null                  AS P_CHANGE21
1878 			, null                  AS P_CHANGE22
1879                 FROM	PJI_PMV_TIME_DIM_TMP TIME
1880           		, PJI_PMV_ORGZ_DIM_TMP HORG
1881 				, PJI_PMV_CLS_DIM_TMP CLS
1882 				, PJI_PMV_ET_RT_DIM_TMP ET
1883 				, PJI_FP_CLSO_ET_F_MV fct
1884 				, PJI_PMV_ORG_DIM_TMP HOU
1885 			WHERE
1886 				FCT.PROJECT_ORG_ID = HOU.ID
1887 				AND FCT.PROJECT_ORGANIZATION_ID = HORG.ID
1888 				AND FCT.TIME_ID = TIME.PRIOR_ID
1889 				AND TIME.PRIOR_ID IS NOT NULL
1890 				AND FCT.PERIOD_TYPE_ID = TIME.PERIOD_TYPE
1891             	AND FCT.CALENDAR_TYPE = TIME.CALENDAR_TYPE
1892 				AND FCT.PROJECT_CLASS_ID = CLS.ID
1893 				AND FCT.EXP_EVT_TYPE_ID = ET.ID
1894                                 AND ET.record_type = 'RT'
1895 				AND bitand(fct.curr_record_type_id, l_curr_record_type_id) = l_curr_record_type_id
1896                 UNION ALL
1897 		SELECT
1898 			  1                       AS PHASE_CODE
1899             , 1                       AS AMOUNT_TYPE_CODE
1900             , l_label_rev             AS AMOUNT_TYPE_LABEL
1901 			, 0                       AS P_ACTUAL
1902 			, 0                       AS PY_ACTUAL
1903 			, null                    AS P_CHANGE1
1904 			, null                    AS P_CHANGE11
1905 			, null                    AS P_CHANGE12
1906 			, 0                       AS P_FORECAST
1907 			, 0                       AS PY_FORECAST
1908 			, null                    AS P_CHANGE2
1909 			, null                    AS P_CHANGE21
1910 			, null                    AS P_CHANGE22
1911 		FROM	dual
1912                 UNION ALL
1913 		SELECT
1914 			1                         AS PHASE_CODE
1915             ,2                        AS AMOUNT_TYPE_CODE
1916             ,l_label_cost             AS AMOUNT_TYPE_LABEL
1917 			, 0                       AS P_ACTUAL
1918 			, 0                       AS PY_ACTUAL
1919 			, null                    AS P_CHANGE1
1920 			, null                    AS P_CHANGE11
1921 			, null                    AS P_CHANGE12
1922 			, 0                       AS P_FORECAST
1923 			, 0                       AS PY_FORECAST
1924 			, null                    AS P_CHANGE2
1925 			, null                    AS P_CHANGE21
1926 			, null                    AS P_CHANGE22
1927 		FROM	dual
1928                 UNION ALL
1929 		SELECT
1930 			1                         AS PHASE_CODE
1931             ,3                        AS AMOUNT_TYPE_CODE
1932             ,l_label_margin           AS AMOUNT_TYPE_LABEL
1933 			, 0                        AS P_ACTUAL
1934 			, 0                        AS PY_ACTUAL
1935 			, null                     AS P_CHANGE1
1936 			, null                     AS P_CHANGE11
1937 			, null                     AS P_CHANGE12
1938 			, 0                        AS P_FORECAST
1939 			, 0                        AS PY_FORECAST
1940 			, null                     AS P_CHANGE2
1941 			, null                     AS P_CHANGE21
1942 			, null                     AS P_CHANGE22
1943 		FROM	dual
1944                 )
1945         WHERE 1 = 1
1946 	GROUP BY PHASE_CODE,AMOUNT_TYPE_CODE,AMOUNT_TYPE_LABEL;
1947 
1948 /*
1949 ** Expenditure or Revenue Type and Work Type Processing -----------------------------------------+
1950 */
1951 
1952 /* -----------------------------------  Case 6 truth table   -------------------------------------  */
1953 
1954         ELSIF (l_Convert_Classification = 'N')
1955           THEN
1956 
1957            SELECT PJI_REP_PP3(PHASE_CODE
1958             ,AMOUNT_TYPE_CODE
1959             ,AMOUNT_TYPE_LABEL
1960 			, SUM( P_ACTUAL )
1961 			, NULL
1962 			, NULL
1963 			, SUM( PY_ACTUAL )
1964 			, NULL
1965 			, NULL
1966 			, SUM( P_CHANGE1 )
1967 			, SUM( P_CHANGE11 )
1968 			, SUM( P_CHANGE12 )
1969 			, SUM( P_FORECAST )
1970 			, NULL
1971 			, NULL
1972 			, SUM( PY_FORECAST )
1973 			, NULL
1974 			, NULL
1975 			, SUM( P_CHANGE2 )
1976 			, SUM( P_CHANGE21 )
1977 			, SUM( P_CHANGE22 )
1978 			, NULL
1979 			, NULL)
1980            BULK COLLECT INTO l_phase_tab
1981            FROM
1982 	      ( SELECT /*+ ORDERED */
1983 			  1                     AS PHASE_CODE
1984             , 1                     AS AMOUNT_TYPE_CODE
1985             , l_label_rev           AS AMOUNT_TYPE_LABEL
1986 			, null               AS P_ACTUAL
1987 			, 0                     AS PY_ACTUAL
1988 			, null                  AS P_CHANGE1
1989 			, null                  AS P_CHANGE11
1990 			, null                  AS P_CHANGE12
1991 			, null      AS P_FORECAST
1992 			, 0                     AS PY_FORECAST
1993 			, null                  AS P_CHANGE2
1994 			, null                  AS P_CHANGE21
1995 			, null                  AS P_CHANGE22
1996 		FROM
1997 			PJI_PMV_TIME_DIM_TMP TIME
1998 			, PJI_PMV_ORGZ_DIM_TMP HORG
1999 			, PJI_PMV_ET_RT_DIM_TMP ET
2000 			, PJI_PMV_WT_DIM_TMP WT
2001 			, PJI_FP_ORGO_ET_WT_F_MV fct
2002 			, PJI_PMV_ORG_DIM_TMP HOU
2003 
2004 		WHERE
2005 				FCT.ORG_ID = HOU.ID
2006 				AND FCT.ORGANIZATION_ID = HORG.ID
2007 				AND FCT.TIME_ID = TIME.ID
2008 				AND TIME.ID IS NOT NULL
2009 				AND FCT.PERIOD_TYPE_ID = TIME.PERIOD_TYPE
2010                          	AND FCT.CALENDAR_TYPE = TIME.CALENDAR_TYPE
2011 				AND FCT.EXP_EVT_TYPE_ID = ET.ID
2012                                 AND ET.record_type = 'RT'
2013 				AND FCT.WORK_TYPE_ID = WT.ID
2014 				AND bitand(fct.curr_record_type_id, l_curr_record_type_id) = l_curr_record_type_id
2015                 UNION ALL
2016 		SELECT /*+ ORDERED */
2017 			  1                     AS PHASE_CODE
2018             , 1                     AS AMOUNT_TYPE_CODE
2019             , l_label_rev           AS AMOUNT_TYPE_LABEL
2020 			, 0                     AS P_ACTUAL
2021 			, null               AS PY_ACTUAL
2022 			, null                  AS P_CHANGE1
2023 			, null                  AS P_CHANGE11
2024 			, null                  AS P_CHANGE12
2025 			, 0                     AS P_FORECAST
2026 			, null      AS PY_FORECAST
2027 			, null                  AS P_CHANGE2
2028 			, null                  AS P_CHANGE21
2029 			, null                  AS P_CHANGE22
2030                 FROM
2031 			PJI_PMV_TIME_DIM_TMP TIME
2032 			, PJI_PMV_ORGZ_DIM_TMP HORG
2033 			, PJI_PMV_ET_RT_DIM_TMP ET
2034 			, PJI_PMV_WT_DIM_TMP WT
2035 			, PJI_FP_ORGO_ET_WT_F_MV fct
2036 			, PJI_PMV_ORG_DIM_TMP HOU
2037 		WHERE
2038 				FCT.ORG_ID = HOU.ID
2039 				AND FCT.ORGANIZATION_ID = HORG.ID
2040 				AND FCT.TIME_ID = TIME.PRIOR_ID
2041 				AND TIME.PRIOR_ID IS NOT NULL
2042 				AND FCT.PERIOD_TYPE_ID = TIME.PERIOD_TYPE
2043             	AND FCT.CALENDAR_TYPE = TIME.CALENDAR_TYPE
2044 				AND FCT.EXP_EVT_TYPE_ID = ET.ID
2045                                 AND ET.record_type = 'RT'
2046 				AND FCT.WORK_TYPE_ID = WT.ID
2047 
2048 				AND bitand(fct.curr_record_type_id, l_curr_record_type_id) = l_curr_record_type_id
2049 		UNION ALL
2050                 SELECT /*+ ORDERED */
2051 			  1          AS PHASE_CODE
2052             , 2                      AS AMOUNT_TYPE_CODE
2053             , l_label_cost           AS AMOUNT_TYPE_LABEL
2054 			, DECODE(TIME.amount_type,1,
2055             DECODE(G_Report_Cost_Type,  'BC', burdened_cost,
2056                                         'RC', raw_cost, 0), 0)         AS P_ACTUAL
2057 			, 0                     AS PY_ACTUAL
2058 			, null                  AS P_CHANGE1
2059 			, null                  AS P_CHANGE11
2060 			, null                  AS P_CHANGE12
2061 			, null  AS P_FORECAST
2062 			, 0                     AS PY_FORECAST
2063 			, null                  AS P_CHANGE2
2064 			, null                  AS P_CHANGE21
2065 			, null                  AS P_CHANGE22
2066 		FROM
2067 			PJI_PMV_TIME_DIM_TMP TIME
2068 			, PJI_PMV_ORGZ_DIM_TMP HORG
2069 			, PJI_PMV_ET_RT_DIM_TMP ET
2070 			, PJI_PMV_WT_DIM_TMP WT
2071 			, PJI_FP_ORGO_ET_WT_F_MV fct
2072 			, PJI_PMV_ORG_DIM_TMP HOU
2073 
2074 		WHERE
2075 				FCT.ORG_ID = HOU.ID
2076 				AND FCT.ORGANIZATION_ID = HORG.ID
2077 				AND FCT.TIME_ID = TIME.ID
2078 				AND TIME.ID IS NOT NULL
2079 				AND FCT.PERIOD_TYPE_ID = TIME.PERIOD_TYPE
2080             	AND FCT.CALENDAR_TYPE = TIME.CALENDAR_TYPE
2081 				AND FCT.EXP_EVT_TYPE_ID = ET.ID
2082                                 AND ET.record_type = 'RT'
2083 				AND FCT.WORK_TYPE_ID = WT.ID
2084 				AND bitand(fct.curr_record_type_id, l_curr_record_type_id) = l_curr_record_type_id
2085                 UNION ALL
2086                 SELECT /*+ ORDERED */
2087 			  1                     AS PHASE_CODE
2088             , 2                     AS AMOUNT_TYPE_CODE
2089             , l_label_cost          AS AMOUNT_TYPE_LABEL
2090 			, 0                     AS P_ACTUAL
2091 			, DECODE(TIME.amount_type,1,
2092             DECODE(G_Report_Cost_Type,  'BC', burdened_cost,
2093                                         'RC', raw_cost, 0), 0)         AS PY_ACTUAL
2094 			, null                  AS P_CHANGE1
2095 			, null                  AS P_CHANGE11
2096 			, null                  AS P_CHANGE12
2097 			, 0                     AS P_FORECAST
2098 			, null  AS PY_FORECAST
2099 			, null                  AS P_CHANGE2
2100 			, null                  AS P_CHANGE21
2101 			, null                  AS P_CHANGE22
2102                 FROM
2103                   PJI_PMV_TIME_DIM_TMP TIME
2104 				, PJI_PMV_ORGZ_DIM_TMP HORG
2105 				, PJI_PMV_ET_RT_DIM_TMP ET
2106 				, PJI_PMV_WT_DIM_TMP WT
2107 				, PJI_FP_ORGO_ET_WT_F_MV fct
2108 				, PJI_PMV_ORG_DIM_TMP HOU
2109 			WHERE
2110 				FCT.ORG_ID = HOU.ID
2111 				AND FCT.ORGANIZATION_ID = HORG.ID
2112 				AND FCT.TIME_ID = TIME.PRIOR_ID
2113 				AND TIME.PRIOR_ID IS NOT NULL
2114 				AND FCT.PERIOD_TYPE_ID = TIME.PERIOD_TYPE
2115                 AND FCT.CALENDAR_TYPE = TIME.CALENDAR_TYPE
2116 				AND FCT.EXP_EVT_TYPE_ID = ET.ID
2117                                 AND ET.record_type = 'RT'
2118 				AND FCT.WORK_TYPE_ID = WT.ID
2119 				AND bitand(fct.curr_record_type_id, l_curr_record_type_id) = l_curr_record_type_id
2120 		UNION ALL
2121 		SELECT /*+ ORDERED */
2122 			  1                          AS PHASE_CODE
2123             , 3                         AS AMOUNT_TYPE_CODE
2124             , l_label_margin            AS AMOUNT_TYPE_LABEL
2125 			, null  AS P_ACTUAL
2126 			, 0                     AS PY_ACTUAL
2127 			, null                  AS P_CHANGE1
2128 			, null                  AS P_CHANGE11
2129 			, null                  AS P_CHANGE12
2130 			, null   AS P_FORECAST
2131 			, 0                                           AS PY_FORECAST
2132 			, null                  AS P_CHANGE2
2133 			, null                  AS P_CHANGE21
2134 			, null                  AS P_CHANGE22
2135 		FROM
2136 			PJI_PMV_TIME_DIM_TMP TIME
2137 			, PJI_PMV_ORGZ_DIM_TMP HORG
2138 			, PJI_PMV_ET_RT_DIM_TMP ET
2139 			, PJI_PMV_WT_DIM_TMP WT
2140 			, PJI_FP_ORGO_ET_WT_F_MV fct
2141 			, PJI_PMV_ORG_DIM_TMP HOU
2142 		WHERE
2143 				FCT.ORG_ID = HOU.ID
2144 				AND FCT.ORGANIZATION_ID = HORG.ID
2145 				AND FCT.TIME_ID = TIME.ID
2146 				AND TIME.ID IS NOT NULL
2147 				AND FCT.PERIOD_TYPE_ID = TIME.PERIOD_TYPE
2148                 AND FCT.CALENDAR_TYPE = TIME.CALENDAR_TYPE
2149 				AND FCT.EXP_EVT_TYPE_ID = ET.ID
2150                                 AND ET.record_type = 'RT'
2151 				AND FCT.WORK_TYPE_ID = WT.ID
2152 				AND bitand(fct.curr_record_type_id, l_curr_record_type_id) = l_curr_record_type_id
2153                 UNION ALL
2154         	SELECT /*+ ORDERED */
2155 			  1                        AS PHASE_CODE
2156             , 3                        AS AMOUNT_TYPE_CODE
2157             , l_label_margin           AS AMOUNT_TYPE_LABEL
2158 			, 0                        AS P_ACTUAL
2159 			, null  AS PY_ACTUAL
2160 			, null                  AS P_CHANGE1
2161 			, null                  AS P_CHANGE11
2162 			, null                  AS P_CHANGE12
2163 			, 0                     AS P_FORECAST
2164 			, null   AS PY_FORECAST
2165 			, null                  AS P_CHANGE2
2166 			, null                  AS P_CHANGE21
2167 			, null                  AS P_CHANGE22
2168                 FROM	PJI_PMV_TIME_DIM_TMP TIME
2169           		, PJI_PMV_ORGZ_DIM_TMP HORG
2170 			, PJI_PMV_ET_RT_DIM_TMP ET
2171 			, PJI_PMV_WT_DIM_TMP WT
2172 			, PJI_FP_ORGO_ET_WT_F_MV fct
2173 			, PJI_PMV_ORG_DIM_TMP HOU
2174 			WHERE
2175 				FCT.ORG_ID = HOU.ID
2176 				AND FCT.ORGANIZATION_ID = HORG.ID
2177 				AND FCT.TIME_ID = TIME.PRIOR_ID
2178 				AND TIME.PRIOR_ID IS NOT NULL
2179 				AND FCT.PERIOD_TYPE_ID = TIME.PERIOD_TYPE
2180             	AND FCT.CALENDAR_TYPE = TIME.CALENDAR_TYPE
2181 				AND FCT.EXP_EVT_TYPE_ID = ET.ID
2182                                 AND ET.record_type = 'RT'
2183 				AND FCT.WORK_TYPE_ID = WT.ID
2184 				AND bitand(fct.curr_record_type_id, l_curr_record_type_id) = l_curr_record_type_id
2185                 UNION ALL
2186 		SELECT
2187 			  1                       AS PHASE_CODE
2188             , 1                       AS AMOUNT_TYPE_CODE
2189             , l_label_rev             AS AMOUNT_TYPE_LABEL
2190 			, 0                       AS P_ACTUAL
2191 			, 0                       AS PY_ACTUAL
2192 			, null                    AS P_CHANGE1
2193 			, null                    AS P_CHANGE11
2194 			, null                    AS P_CHANGE12
2195 			, 0                       AS P_FORECAST
2196 			, 0                       AS PY_FORECAST
2197 			, null                    AS P_CHANGE2
2198 			, null                    AS P_CHANGE21
2199 			, null                    AS P_CHANGE22
2200 		FROM	dual
2201                 UNION ALL
2202 		SELECT
2203 			1                         AS PHASE_CODE
2204             ,2                        AS AMOUNT_TYPE_CODE
2205             ,l_label_cost             AS AMOUNT_TYPE_LABEL
2206 			, 0                       AS P_ACTUAL
2207 			, 0                       AS PY_ACTUAL
2208 			, null                    AS P_CHANGE1
2209 			, null                    AS P_CHANGE11
2210 			, null                    AS P_CHANGE12
2211 			, 0                       AS P_FORECAST
2212 			, 0                       AS PY_FORECAST
2213 			, null                    AS P_CHANGE2
2214 			, null                    AS P_CHANGE21
2215 			, null                    AS P_CHANGE22
2216 		FROM	dual
2217                 UNION ALL
2218 		SELECT
2219 			1                         AS PHASE_CODE
2220             ,3                        AS AMOUNT_TYPE_CODE
2221             ,l_label_margin           AS AMOUNT_TYPE_LABEL
2222 			, 0                        AS P_ACTUAL
2223 			, 0                        AS PY_ACTUAL
2224 			, null                     AS P_CHANGE1
2225 			, null                     AS P_CHANGE11
2226 			, null                     AS P_CHANGE12
2227 			, 0                        AS P_FORECAST
2228 			, 0                        AS PY_FORECAST
2229 			, null                     AS P_CHANGE2
2230 			, null                     AS P_CHANGE21
2231 			, null                     AS P_CHANGE22
2232 		FROM	dual
2233                 )
2234         WHERE 1 = 1
2235 	GROUP BY PHASE_CODE,AMOUNT_TYPE_CODE,AMOUNT_TYPE_LABEL;
2236 
2237 /*
2238 **  Project classification and Work Type Processing -----------------------------------------------+
2239 */
2240 
2241 /* -----------------------------------  Case 7 truth table   -------------------------------------  */
2242 
2243         ELSIF (l_Convert_Event_Revenue_Type = 'N')
2244           THEN
2245 
2246            SELECT PJI_REP_PP3(PHASE_CODE
2247             ,AMOUNT_TYPE_CODE
2248             ,AMOUNT_TYPE_LABEL
2249 			, SUM( P_ACTUAL )
2250 			, NULL
2251 			, NULL
2252 			, SUM( PY_ACTUAL )
2253 			, NULL
2254 			, NULL
2255 			, SUM( P_CHANGE1 )
2256 			, SUM( P_CHANGE11 )
2257 			, SUM( P_CHANGE12 )
2258 			, SUM( P_FORECAST )
2259 			, NULL
2260 			, NULL
2261 			, SUM( PY_FORECAST )
2262 			, NULL
2263 			, NULL
2264 			, SUM( P_CHANGE2 )
2265 			, SUM( P_CHANGE21 )
2266 			, SUM( P_CHANGE22 )
2267 			, NULL
2268 			, NULL)
2269            BULK COLLECT INTO l_phase_tab
2270            FROM
2271 	      ( SELECT /*+ ORDERED */
2272 			  1                     AS PHASE_CODE
2273             , 1                     AS AMOUNT_TYPE_CODE
2274             , l_label_rev           AS AMOUNT_TYPE_LABEL
2275 			, null               AS P_ACTUAL
2276 			, 0                     AS PY_ACTUAL
2277 			, null                  AS P_CHANGE1
2278 			, null                  AS P_CHANGE11
2279 			, null                  AS P_CHANGE12
2280 			, null      AS P_FORECAST
2281 			, 0                     AS PY_FORECAST
2282 			, null                  AS P_CHANGE2
2283 			, null                  AS P_CHANGE21
2284 			, null                  AS P_CHANGE22
2285 		FROM
2286 			PJI_PMV_TIME_DIM_TMP TIME
2287 			, PJI_PMV_ORGZ_DIM_TMP HORG
2288 			, PJI_PMV_CLS_DIM_TMP CLS
2289 			, PJI_PMV_WT_DIM_TMP WT
2290 			, PJI_FP_CLSO_ET_WT_F_MV fct
2291 			, PJI_PMV_ORG_DIM_TMP HOU
2292 
2293 		WHERE
2294 				FCT.PROJECT_ORG_ID = HOU.ID
2295 				AND FCT.PROJECT_ORGANIZATION_ID = HORG.ID
2296 				AND FCT.TIME_ID = TIME.ID
2297 				AND TIME.ID IS NOT NULL
2298 				AND FCT.PERIOD_TYPE_ID = TIME.PERIOD_TYPE
2299                          	AND FCT.CALENDAR_TYPE = TIME.CALENDAR_TYPE
2300 				AND FCT.PROJECT_CLASS_ID = CLS.ID
2301 				AND FCT.WORK_TYPE_ID = WT.ID
2302 				AND bitand(fct.curr_record_type_id, l_curr_record_type_id) = l_curr_record_type_id
2303                 UNION ALL
2304 		SELECT /*+ ORDERED */
2305 			  1                     AS PHASE_CODE
2306             , 1                     AS AMOUNT_TYPE_CODE
2307             , l_label_rev           AS AMOUNT_TYPE_LABEL
2308 			, 0                     AS P_ACTUAL
2309 			, null               AS PY_ACTUAL
2310 			, null                  AS P_CHANGE1
2311 			, null                  AS P_CHANGE11
2312 			, null                  AS P_CHANGE12
2313 			, 0                     AS P_FORECAST
2314 			, null      AS PY_FORECAST
2315 			, null                  AS P_CHANGE2
2316 			, null                  AS P_CHANGE21
2317 			, null                  AS P_CHANGE22
2318                 FROM
2319 			PJI_PMV_TIME_DIM_TMP TIME
2320 			, PJI_PMV_ORGZ_DIM_TMP HORG
2321 			, PJI_PMV_CLS_DIM_TMP CLS
2322 			, PJI_PMV_WT_DIM_TMP WT
2323 			, PJI_FP_CLSO_ET_WT_F_MV fct
2324 			, PJI_PMV_ORG_DIM_TMP HOU
2325 		WHERE
2326 				FCT.PROJECT_ORG_ID = HOU.ID
2327 				AND FCT.PROJECT_ORGANIZATION_ID = HORG.ID
2328 				AND FCT.TIME_ID = TIME.PRIOR_ID
2329 				AND TIME.PRIOR_ID IS NOT NULL
2330 				AND FCT.PERIOD_TYPE_ID = TIME.PERIOD_TYPE
2331             	AND FCT.CALENDAR_TYPE = TIME.CALENDAR_TYPE
2332 				AND FCT.PROJECT_CLASS_ID = CLS.ID
2333 				AND FCT.WORK_TYPE_ID = WT.ID
2334 				AND bitand(fct.curr_record_type_id, l_curr_record_type_id) = l_curr_record_type_id
2335 		UNION ALL
2336                 SELECT /*+ ORDERED */
2337 			  1          AS PHASE_CODE
2338             , 2                      AS AMOUNT_TYPE_CODE
2339             , l_label_cost           AS AMOUNT_TYPE_LABEL
2340 			, DECODE(TIME.amount_type,1,
2341             DECODE(G_Report_Cost_Type,  'BC', burdened_cost,
2342                                         'RC', raw_cost, 0), 0)         AS P_ACTUAL
2343 			, 0                     AS PY_ACTUAL
2344 			, null                  AS P_CHANGE1
2345 			, null                  AS P_CHANGE11
2346 			, null                  AS P_CHANGE12
2347 			, null  AS P_FORECAST
2348 			, 0                     AS PY_FORECAST
2349 			, null                  AS P_CHANGE2
2350 			, null                  AS P_CHANGE21
2351 			, null                  AS P_CHANGE22
2352 		FROM
2353 			PJI_PMV_TIME_DIM_TMP TIME
2354 			, PJI_PMV_ORGZ_DIM_TMP HORG
2355 			, PJI_PMV_CLS_DIM_TMP CLS
2356 			, PJI_PMV_WT_DIM_TMP WT
2357 			, PJI_FP_CLSO_ET_WT_F_MV fct
2358 			, PJI_PMV_ORG_DIM_TMP HOU
2359 
2360 		WHERE
2361 				FCT.PROJECT_ORG_ID = HOU.ID
2362 				AND FCT.PROJECT_ORGANIZATION_ID = HORG.ID
2363 				AND FCT.TIME_ID = TIME.ID
2364 				AND TIME.ID IS NOT NULL
2365 				AND FCT.PERIOD_TYPE_ID = TIME.PERIOD_TYPE
2366             	AND FCT.CALENDAR_TYPE = TIME.CALENDAR_TYPE
2367 				AND FCT.PROJECT_CLASS_ID = CLS.ID
2368 				AND FCT.WORK_TYPE_ID = WT.ID
2369 				AND bitand(fct.curr_record_type_id, l_curr_record_type_id) = l_curr_record_type_id
2370                 UNION ALL
2371                 SELECT /*+ ORDERED */
2372 			  1                     AS PHASE_CODE
2373             , 2                     AS AMOUNT_TYPE_CODE
2374             , l_label_cost          AS AMOUNT_TYPE_LABEL
2375 			, 0                     AS P_ACTUAL
2376 			, DECODE(TIME.amount_type,1,
2377             DECODE(G_Report_Cost_Type,  'BC', burdened_cost,
2378                                         'RC', raw_cost, 0), 0)         AS PY_ACTUAL
2379 			, null                  AS P_CHANGE1
2380 			, null                  AS P_CHANGE11
2381 			, null                  AS P_CHANGE12
2382 			, 0                     AS P_FORECAST
2383 			, null  AS PY_FORECAST
2384 			, null                  AS P_CHANGE2
2385 			, null                  AS P_CHANGE21
2386 			, null                  AS P_CHANGE22
2387                 FROM
2388                   PJI_PMV_TIME_DIM_TMP TIME
2389 				, PJI_PMV_ORGZ_DIM_TMP HORG
2390 				, PJI_PMV_CLS_DIM_TMP CLS
2391 				, PJI_PMV_WT_DIM_TMP WT
2392 				, PJI_FP_CLSO_ET_WT_F_MV fct
2393 				, PJI_PMV_ORG_DIM_TMP HOU
2394 			WHERE
2395 				FCT.PROJECT_ORG_ID = HOU.ID
2396 				AND FCT.PROJECT_ORGANIZATION_ID = HORG.ID
2397 				AND FCT.TIME_ID = TIME.PRIOR_ID
2398 				AND TIME.PRIOR_ID IS NOT NULL
2399 				AND FCT.PERIOD_TYPE_ID = TIME.PERIOD_TYPE
2400                 AND FCT.CALENDAR_TYPE = TIME.CALENDAR_TYPE
2401 				AND FCT.PROJECT_CLASS_ID = CLS.ID
2402 				AND FCT.WORK_TYPE_ID = WT.ID
2403 				AND bitand(fct.curr_record_type_id, l_curr_record_type_id) = l_curr_record_type_id
2404 		UNION ALL
2405 		SELECT /*+ ORDERED */
2406 			  1                          AS PHASE_CODE
2407             , 3                         AS AMOUNT_TYPE_CODE
2408             , l_label_margin            AS AMOUNT_TYPE_LABEL
2409 			, null  AS P_ACTUAL
2410 			, 0                     AS PY_ACTUAL
2411 			, null                  AS P_CHANGE1
2412 			, null                  AS P_CHANGE11
2413 			, null                  AS P_CHANGE12
2414 			, null   AS P_FORECAST
2415 			, 0                                           AS PY_FORECAST
2416 			, null                  AS P_CHANGE2
2417 			, null                  AS P_CHANGE21
2418 			, null                  AS P_CHANGE22
2419 		FROM
2420 			PJI_PMV_TIME_DIM_TMP TIME
2421 			, PJI_PMV_ORGZ_DIM_TMP HORG
2422 			, PJI_PMV_CLS_DIM_TMP CLS
2423 			, PJI_PMV_WT_DIM_TMP WT
2424 			, PJI_FP_CLSO_ET_WT_F_MV fct
2425 			, PJI_PMV_ORG_DIM_TMP HOU
2426 		WHERE
2427 				FCT.PROJECT_ORG_ID = HOU.ID
2428 				AND FCT.PROJECT_ORGANIZATION_ID = HORG.ID
2429 				AND FCT.TIME_ID = TIME.ID
2430 				AND TIME.ID IS NOT NULL
2431 				AND FCT.PERIOD_TYPE_ID = TIME.PERIOD_TYPE
2432                 AND FCT.CALENDAR_TYPE = TIME.CALENDAR_TYPE
2433 				AND FCT.PROJECT_CLASS_ID = CLS.ID
2434 				AND FCT.WORK_TYPE_ID = WT.ID
2435 				AND bitand(fct.curr_record_type_id, l_curr_record_type_id) = l_curr_record_type_id
2436                 UNION ALL
2437         	SELECT /*+ ORDERED */
2438 			  1                        AS PHASE_CODE
2439             , 3                        AS AMOUNT_TYPE_CODE
2440             , l_label_margin           AS AMOUNT_TYPE_LABEL
2441 			, 0                        AS P_ACTUAL
2442 			, null  AS PY_ACTUAL
2443 			, null                  AS P_CHANGE1
2444 			, null                  AS P_CHANGE11
2445 			, null                  AS P_CHANGE12
2446 			, 0                     AS P_FORECAST
2447 			, null   AS PY_FORECAST
2448 			, null                  AS P_CHANGE2
2449 			, null                  AS P_CHANGE21
2450 			, null                  AS P_CHANGE22
2451                 FROM	PJI_PMV_TIME_DIM_TMP TIME
2452           		, PJI_PMV_ORGZ_DIM_TMP HORG
2453 				, PJI_PMV_CLS_DIM_TMP CLS
2454 				, PJI_PMV_WT_DIM_TMP WT
2455 				, PJI_FP_CLSO_ET_WT_F_MV fct
2456 				, PJI_PMV_ORG_DIM_TMP HOU
2457 			WHERE
2458 				FCT.PROJECT_ORG_ID = HOU.ID
2459 				AND FCT.PROJECT_ORGANIZATION_ID = HORG.ID
2460 				AND FCT.TIME_ID = TIME.PRIOR_ID
2461 				AND TIME.PRIOR_ID IS NOT NULL
2462 				AND FCT.PERIOD_TYPE_ID = TIME.PERIOD_TYPE
2463             	AND FCT.CALENDAR_TYPE = TIME.CALENDAR_TYPE
2464 				AND FCT.PROJECT_CLASS_ID = CLS.ID
2465 				AND FCT.WORK_TYPE_ID = WT.ID
2466 				AND bitand(fct.curr_record_type_id, l_curr_record_type_id) = l_curr_record_type_id
2467                 UNION ALL
2468 		SELECT
2469 			  1                       AS PHASE_CODE
2470             , 1                       AS AMOUNT_TYPE_CODE
2471             , l_label_rev             AS AMOUNT_TYPE_LABEL
2472 			, 0                       AS P_ACTUAL
2473 			, 0                       AS PY_ACTUAL
2474 			, null                    AS P_CHANGE1
2475 			, null                    AS P_CHANGE11
2476 			, null                    AS P_CHANGE12
2477 			, 0                       AS P_FORECAST
2478 			, 0                       AS PY_FORECAST
2479 			, null                    AS P_CHANGE2
2480 			, null                    AS P_CHANGE21
2481 			, null                    AS P_CHANGE22
2482 		FROM	dual
2483                 UNION ALL
2484 		SELECT
2485 			1                         AS PHASE_CODE
2486             ,2                        AS AMOUNT_TYPE_CODE
2487             ,l_label_cost             AS AMOUNT_TYPE_LABEL
2488 			, 0                       AS P_ACTUAL
2489 			, 0                       AS PY_ACTUAL
2490 			, null                    AS P_CHANGE1
2491 			, null                    AS P_CHANGE11
2492 			, null                    AS P_CHANGE12
2493 			, 0                       AS P_FORECAST
2494 			, 0                       AS PY_FORECAST
2495 			, null                    AS P_CHANGE2
2496 			, null                    AS P_CHANGE21
2497 			, null                    AS P_CHANGE22
2498 		FROM	dual
2499                 UNION ALL
2500 		SELECT
2501 			1                         AS PHASE_CODE
2502             ,3                        AS AMOUNT_TYPE_CODE
2503             ,l_label_margin           AS AMOUNT_TYPE_LABEL
2504 			, 0                        AS P_ACTUAL
2505 			, 0                        AS PY_ACTUAL
2506 			, null                     AS P_CHANGE1
2507 			, null                     AS P_CHANGE11
2508 			, null                     AS P_CHANGE12
2509 			, 0                        AS P_FORECAST
2510 			, 0                        AS PY_FORECAST
2511 			, null                     AS P_CHANGE2
2512 			, null                     AS P_CHANGE21
2513 			, null                     AS P_CHANGE22
2514 		FROM	dual
2515                 )
2516         WHERE 1 = 1
2517 	GROUP BY PHASE_CODE,AMOUNT_TYPE_CODE,AMOUNT_TYPE_LABEL;
2518 
2519 /*
2520 ** Project classification and Expenditure or Revenue Type and Work Type Processing ----------------+
2521 */
2522 
2523 /* -----------------------------------  Case 8 truth table   -------------------------------------  */
2524 
2525         ELSE
2526 
2527            SELECT PJI_REP_PP3(PHASE_CODE
2528             ,AMOUNT_TYPE_CODE
2529             ,AMOUNT_TYPE_LABEL
2530 			, SUM( P_ACTUAL )
2531 			, NULL
2532 			, NULL
2533 			, SUM( PY_ACTUAL )
2534 			, NULL
2535 			, NULL
2536 			, SUM( P_CHANGE1 )
2537 			, SUM( P_CHANGE11 )
2538 			, SUM( P_CHANGE12 )
2539 			, SUM( P_FORECAST )
2540 			, NULL
2541 			, NULL
2542 			, SUM( PY_FORECAST )
2543 			, NULL
2544 			, NULL
2545 			, SUM( P_CHANGE2 )
2546 			, SUM( P_CHANGE21 )
2547 			, SUM( P_CHANGE22 )
2548 			, NULL
2549 			, NULL)
2550            BULK COLLECT INTO l_phase_tab
2551            FROM
2552 	      ( SELECT /*+ ORDERED */
2553 			  1                     AS PHASE_CODE
2554             , 1                     AS AMOUNT_TYPE_CODE
2555             , l_label_rev           AS AMOUNT_TYPE_LABEL
2556 			, null               AS P_ACTUAL
2557 			, 0                     AS PY_ACTUAL
2558 			, null                  AS P_CHANGE1
2559 			, null                  AS P_CHANGE11
2560 			, null                  AS P_CHANGE12
2561 			, null      AS P_FORECAST
2562 			, 0                     AS PY_FORECAST
2563 			, null                  AS P_CHANGE2
2564 			, null                  AS P_CHANGE21
2565 			, null                  AS P_CHANGE22
2566 		FROM
2567 			PJI_PMV_TIME_DIM_TMP TIME
2568 			, PJI_PMV_ORGZ_DIM_TMP HORG
2569 			, PJI_PMV_CLS_DIM_TMP CLS
2570 			, PJI_PMV_ET_RT_DIM_TMP ET
2571 			, PJI_PMV_WT_DIM_TMP WT
2572 			, PJI_FP_CLSO_ET_WT_F_MV fct
2573 			, PJI_PMV_ORG_DIM_TMP HOU
2574 
2575 		WHERE
2576 				FCT.PROJECT_ORG_ID = HOU.ID
2577 				AND FCT.PROJECT_ORGANIZATION_ID = HORG.ID
2578 				AND FCT.TIME_ID = TIME.ID
2579 				AND TIME.ID IS NOT NULL
2580 				AND FCT.PERIOD_TYPE_ID = TIME.PERIOD_TYPE
2581                          	AND FCT.CALENDAR_TYPE = TIME.CALENDAR_TYPE
2582 				AND FCT.PROJECT_CLASS_ID = CLS.ID
2583 				AND FCT.EXP_EVT_TYPE_ID = ET.ID
2584                                 AND ET.record_type = 'RT'
2585 				AND FCT.WORK_TYPE_ID = WT.ID
2586 				AND bitand(fct.curr_record_type_id, l_curr_record_type_id) = l_curr_record_type_id
2587                 UNION ALL
2588 		SELECT /*+ ORDERED */
2589 			  1                     AS PHASE_CODE
2590             , 1                     AS AMOUNT_TYPE_CODE
2591             , l_label_rev           AS AMOUNT_TYPE_LABEL
2592 			, 0                     AS P_ACTUAL
2593 			, null               AS PY_ACTUAL
2594 			, null                  AS P_CHANGE1
2595 			, null                  AS P_CHANGE11
2596 			, null                  AS P_CHANGE12
2597 			, 0                     AS P_FORECAST
2598 			, null      AS PY_FORECAST
2599 			, null                  AS P_CHANGE2
2600 			, null                  AS P_CHANGE21
2601 			, null                  AS P_CHANGE22
2602                 FROM
2603 			PJI_PMV_TIME_DIM_TMP TIME
2604 			, PJI_PMV_ORGZ_DIM_TMP HORG
2605 			, PJI_PMV_CLS_DIM_TMP CLS
2606 			, PJI_PMV_ET_RT_DIM_TMP ET
2607 			, PJI_PMV_WT_DIM_TMP WT
2608 			, PJI_FP_CLSO_ET_WT_F_MV fct
2609 			, PJI_PMV_ORG_DIM_TMP HOU
2610 		WHERE
2611 				FCT.PROJECT_ORG_ID = HOU.ID
2612 				AND FCT.PROJECT_ORGANIZATION_ID = HORG.ID
2613 				AND FCT.TIME_ID = TIME.PRIOR_ID
2614 				AND TIME.PRIOR_ID IS NOT NULL
2615 				AND FCT.PERIOD_TYPE_ID = TIME.PERIOD_TYPE
2616             	AND FCT.CALENDAR_TYPE = TIME.CALENDAR_TYPE
2617 				AND FCT.PROJECT_CLASS_ID = CLS.ID
2618 				AND FCT.EXP_EVT_TYPE_ID = ET.ID
2619                                 AND ET.record_type = 'RT'
2620 				AND FCT.WORK_TYPE_ID = WT.ID
2621 				AND bitand(fct.curr_record_type_id, l_curr_record_type_id) = l_curr_record_type_id
2622 		UNION ALL
2623                 SELECT /*+ ORDERED */
2624 			  1          AS PHASE_CODE
2625             , 2                      AS AMOUNT_TYPE_CODE
2626             , l_label_cost           AS AMOUNT_TYPE_LABEL
2627 			, DECODE(TIME.amount_type,1,
2628             DECODE(G_Report_Cost_Type,  'BC', burdened_cost,
2629                                         'RC', raw_cost, 0), 0)         AS P_ACTUAL
2630 			, 0                     AS PY_ACTUAL
2631 			, null                  AS P_CHANGE1
2632 			, null                  AS P_CHANGE11
2633 			, null                  AS P_CHANGE12
2634 			, null  AS P_FORECAST
2635 			, 0                     AS PY_FORECAST
2636 			, null                  AS P_CHANGE2
2637 			, null                  AS P_CHANGE21
2638 			, null                  AS P_CHANGE22
2639 		FROM
2640 			PJI_PMV_TIME_DIM_TMP TIME
2641 			, PJI_PMV_ORGZ_DIM_TMP HORG
2642 			, PJI_PMV_CLS_DIM_TMP CLS
2643 			, PJI_PMV_ET_RT_DIM_TMP ET
2644 			, PJI_PMV_WT_DIM_TMP WT
2645 			, PJI_FP_CLSO_ET_WT_F_MV fct
2646 			, PJI_PMV_ORG_DIM_TMP HOU
2647 
2648 		WHERE
2649 				FCT.PROJECT_ORG_ID = HOU.ID
2650 				AND FCT.PROJECT_ORGANIZATION_ID = HORG.ID
2651 				AND FCT.TIME_ID = TIME.ID
2652 				AND TIME.ID IS NOT NULL
2653 				AND FCT.PERIOD_TYPE_ID = TIME.PERIOD_TYPE
2654             	AND FCT.CALENDAR_TYPE = TIME.CALENDAR_TYPE
2655 				AND FCT.PROJECT_CLASS_ID = CLS.ID
2656 				AND FCT.EXP_EVT_TYPE_ID = ET.ID
2657                                 AND ET.record_type = 'RT'
2658 				AND FCT.WORK_TYPE_ID = WT.ID
2659 				AND bitand(fct.curr_record_type_id, l_curr_record_type_id) = l_curr_record_type_id
2660                 UNION ALL
2661                 SELECT /*+ ORDERED */
2662 			  1                     AS PHASE_CODE
2663             , 2                     AS AMOUNT_TYPE_CODE
2664             , l_label_cost          AS AMOUNT_TYPE_LABEL
2665 			, 0                     AS P_ACTUAL
2666 			, DECODE(TIME.amount_type,1,
2667             DECODE(G_Report_Cost_Type,  'BC', burdened_cost,
2668                                         'RC', raw_cost, 0), 0)         AS PY_ACTUAL
2669 			, null                  AS P_CHANGE1
2670 			, null                  AS P_CHANGE11
2671 			, null                  AS P_CHANGE12
2672 			, 0                     AS P_FORECAST
2673 			, null AS PY_FORECAST
2674 			, null                  AS P_CHANGE2
2675 			, null                  AS P_CHANGE21
2676 			, null                  AS P_CHANGE22
2677                 FROM
2678                   PJI_PMV_TIME_DIM_TMP TIME
2679 				, PJI_PMV_ORGZ_DIM_TMP HORG
2680 				, PJI_PMV_CLS_DIM_TMP CLS
2681 				, PJI_PMV_ET_RT_DIM_TMP ET
2682 				, PJI_PMV_WT_DIM_TMP WT
2683 				, PJI_FP_CLSO_ET_WT_F_MV fct
2684 				, PJI_PMV_ORG_DIM_TMP HOU
2685 			WHERE
2686 				FCT.PROJECT_ORG_ID = HOU.ID
2687 				AND FCT.PROJECT_ORGANIZATION_ID = HORG.ID
2688 				AND FCT.TIME_ID = TIME.PRIOR_ID
2689 				AND TIME.PRIOR_ID IS NOT NULL
2690 				AND FCT.PERIOD_TYPE_ID = TIME.PERIOD_TYPE
2691                 AND FCT.CALENDAR_TYPE = TIME.CALENDAR_TYPE
2692 				AND FCT.PROJECT_CLASS_ID = CLS.ID
2693 				AND FCT.EXP_EVT_TYPE_ID = ET.ID
2694                                 AND ET.record_type = 'RT'
2695 				AND FCT.WORK_TYPE_ID = WT.ID
2696 				AND bitand(fct.curr_record_type_id, l_curr_record_type_id) = l_curr_record_type_id
2697 		UNION ALL
2698 		SELECT /*+ ORDERED */
2699 			  1                          AS PHASE_CODE
2700             , 3                         AS AMOUNT_TYPE_CODE
2701             , l_label_margin            AS AMOUNT_TYPE_LABEL
2702 			, null  AS P_ACTUAL
2703 			, 0                     AS PY_ACTUAL
2704 			, null                  AS P_CHANGE1
2705 			, null                  AS P_CHANGE11
2706 			, null                  AS P_CHANGE12
2707 			, null   AS P_FORECAST
2708 			, 0                                           AS PY_FORECAST
2709 			, null                  AS P_CHANGE2
2710 			, null                  AS P_CHANGE21
2711 			, null                  AS P_CHANGE22
2712 		FROM
2713 			PJI_PMV_TIME_DIM_TMP TIME
2714 			, PJI_PMV_ORGZ_DIM_TMP HORG
2715 			, PJI_PMV_CLS_DIM_TMP CLS
2716 			, PJI_PMV_ET_RT_DIM_TMP ET
2717 			, PJI_PMV_WT_DIM_TMP WT
2718 			, PJI_FP_CLSO_ET_WT_F_MV fct
2719 			, PJI_PMV_ORG_DIM_TMP HOU
2720 		WHERE
2721 				FCT.PROJECT_ORG_ID = HOU.ID
2722 				AND FCT.PROJECT_ORGANIZATION_ID = HORG.ID
2723 				AND FCT.TIME_ID = TIME.ID
2724 				AND TIME.ID IS NOT NULL
2725 				AND FCT.PERIOD_TYPE_ID = TIME.PERIOD_TYPE
2726                 AND FCT.CALENDAR_TYPE = TIME.CALENDAR_TYPE
2727 				AND FCT.PROJECT_CLASS_ID = CLS.ID
2728 				AND FCT.EXP_EVT_TYPE_ID = ET.ID
2729                                 AND ET.record_type = 'RT'
2730 				AND FCT.WORK_TYPE_ID = WT.ID
2731 				AND bitand(fct.curr_record_type_id, l_curr_record_type_id) = l_curr_record_type_id
2732                 UNION ALL
2733         	SELECT /*+ ORDERED */
2734 			  1                        AS PHASE_CODE
2735             , 3                        AS AMOUNT_TYPE_CODE
2736             , l_label_margin           AS AMOUNT_TYPE_LABEL
2737 			, 0                        AS P_ACTUAL
2738 			, null  AS PY_ACTUAL
2739 			, null                  AS P_CHANGE1
2740 			, null                  AS P_CHANGE11
2741 			, null                  AS P_CHANGE12
2742 			, 0                     AS P_FORECAST
2743 			, null   AS PY_FORECAST
2744 			, null                  AS P_CHANGE2
2745 			, null                  AS P_CHANGE21
2746 			, null                  AS P_CHANGE22
2747                 FROM	PJI_PMV_TIME_DIM_TMP TIME
2748           		, PJI_PMV_ORGZ_DIM_TMP HORG
2749 				, PJI_PMV_CLS_DIM_TMP CLS
2750 				, PJI_PMV_ET_RT_DIM_TMP ET
2751 				, PJI_PMV_WT_DIM_TMP WT
2752 				, PJI_FP_CLSO_ET_WT_F_MV fct
2753 				, PJI_PMV_ORG_DIM_TMP HOU
2754 			WHERE
2755 				FCT.PROJECT_ORG_ID = HOU.ID
2756 				AND FCT.PROJECT_ORGANIZATION_ID = HORG.ID
2757 				AND FCT.TIME_ID = TIME.PRIOR_ID
2758 				AND TIME.PRIOR_ID IS NOT NULL
2759 				AND FCT.PERIOD_TYPE_ID = TIME.PERIOD_TYPE
2760             	AND FCT.CALENDAR_TYPE = TIME.CALENDAR_TYPE
2761 				AND FCT.PROJECT_CLASS_ID = CLS.ID
2762 				AND FCT.EXP_EVT_TYPE_ID = ET.ID
2763                                 AND ET.record_type = 'RT'
2764 				AND FCT.WORK_TYPE_ID = WT.ID
2765 				AND bitand(fct.curr_record_type_id, l_curr_record_type_id) = l_curr_record_type_id
2766                 UNION ALL
2767 		SELECT
2768 			  1                       AS PHASE_CODE
2769             , 1                       AS AMOUNT_TYPE_CODE
2770             , l_label_rev             AS AMOUNT_TYPE_LABEL
2771 			, 0                       AS P_ACTUAL
2772 			, 0                       AS PY_ACTUAL
2773 			, null                    AS P_CHANGE1
2774 			, null                    AS P_CHANGE11
2775 			, null                    AS P_CHANGE12
2776 			, 0                       AS P_FORECAST
2777 			, 0                       AS PY_FORECAST
2778 			, null                    AS P_CHANGE2
2779 			, null                    AS P_CHANGE21
2780 			, null                    AS P_CHANGE22
2781 		FROM	dual
2782                 UNION ALL
2783 		SELECT
2784 			1                         AS PHASE_CODE
2785             ,2                        AS AMOUNT_TYPE_CODE
2786             ,l_label_cost             AS AMOUNT_TYPE_LABEL
2787 			, 0                       AS P_ACTUAL
2788 			, 0                       AS PY_ACTUAL
2789 			, null                    AS P_CHANGE1
2790 			, null                    AS P_CHANGE11
2791 			, null                    AS P_CHANGE12
2792 			, 0                       AS P_FORECAST
2793 			, 0                       AS PY_FORECAST
2794 			, null                    AS P_CHANGE2
2795 			, null                    AS P_CHANGE21
2796 			, null                    AS P_CHANGE22
2797 		FROM	dual
2798                 UNION ALL
2799 		SELECT
2800 			1                         AS PHASE_CODE
2801             ,3                        AS AMOUNT_TYPE_CODE
2802             ,l_label_margin           AS AMOUNT_TYPE_LABEL
2803 			, 0                        AS P_ACTUAL
2804 			, 0                        AS PY_ACTUAL
2805 			, null                     AS P_CHANGE1
2806 			, null                     AS P_CHANGE11
2807 			, null                     AS P_CHANGE12
2808 			, 0                        AS P_FORECAST
2809 			, 0                        AS PY_FORECAST
2810 			, null                     AS P_CHANGE2
2811 			, null                     AS P_CHANGE21
2812 			, null                     AS P_CHANGE22
2813 		FROM	dual
2814                 )
2815         WHERE 1 = 1
2816 	GROUP BY PHASE_CODE,AMOUNT_TYPE_CODE,AMOUNT_TYPE_LABEL;
2817 
2818 END IF; -- p_Class_Codes_Ids NOT Passed by User
2819 
2820 /*
2821 **        -- PHASE II: Derive ALL Ratios for Each Amount Type
2822 **        -- At this point, there should be one row for each amount type, three all together
2823 */
2824         Ln := 3;
2825         FOR i IN 1..Ln LOOP
2826             IF (l_phase_tab(i).amount_type_code = 1)
2827               THEN
2828 /*
2829 **               -- REVENUE -----------------------------+
2830 */
2831 
2832 l_phase_tab(i).P_ACTUAL1 := l_phase_tab(i).P_ACTUAL;
2833 l_phase_tab(i).P_ACTUAL2 := NULL;
2834 l_phase_tab(i).PY_ACTUAL1 := l_phase_tab(i).PY_ACTUAL;
2835 l_phase_tab(i).PY_ACTUAL2 := NULL;
2836 
2837 l_phase_tab(i).P_FORECAST1 := l_phase_tab(i).P_FORECAST;
2838 l_phase_tab(i).P_FORECAST2 := NULL;
2839 l_phase_tab(i).PY_FORECAST1 := l_phase_tab(i).PY_FORECAST;
2840 l_phase_tab(i).PY_FORECAST2 := NULL;
2841 
2842                IF (l_phase_tab(i).PY_ACTUAL = 0)
2843                   THEN
2844                      l_phase_tab(i).P_CHANGE11 := 0;
2845                      l_phase_tab(i).P_CHANGE12 := NULL;
2846                ELSE
2847 l_phase_tab(i).P_CHANGE11 := ROUND( ((l_phase_tab(i).P_ACTUAL -
2848 
2849 l_phase_tab(i).PY_ACTUAL)/ABS(l_phase_tab(i).PY_ACTUAL))*100, 2) ;
2850   l_phase_tab(i).P_CHANGE12 := NULL;
2851                END IF;
2852 
2853 
2854                IF (l_phase_tab(i).PY_FORECAST = 0)
2855                   THEN
2856                      l_phase_tab(i).P_CHANGE21 := 0;
2857                      l_phase_tab(i).P_CHANGE22 := NULL;
2858                ELSE
2859   l_phase_tab(i).P_CHANGE21 := ROUND( ((l_phase_tab(i).P_FORECAST -
2860 
2861 l_phase_tab(i).PY_FORECAST)/ABS(l_phase_tab(i).PY_FORECAST))*100, 2);
2862   l_phase_tab(i).P_CHANGE22 := NULL;
2863                END IF;
2864 
2865 /*
2866 **               -- Cache revenue amounts for subsequent Margin Percentage Calc
2867 */
2868 
2869                l_rev_P_ACTUAL         :=  l_phase_tab(i).P_ACTUAL;
2870                l_rev_P_FORECAST       :=  l_phase_tab(i).P_FORECAST;
2871                l_rev_PY_ACTUAL        :=  l_phase_tab(i).PY_ACTUAL;
2872                l_rev_PY_FORECAST      :=  l_phase_tab(i).PY_FORECAST;
2873 
2874 
2875 
2876             ELSIF (l_phase_tab(i).amount_type_code = 2)
2877               THEN
2878 /*
2879 **	     -- COST ---------------------------+
2880 */
2881 l_phase_tab(i).P_ACTUAL1 := l_phase_tab(i).P_ACTUAL;
2882 l_phase_tab(i).P_ACTUAL2 := NULL;
2883 l_phase_tab(i).PY_ACTUAL1 := l_phase_tab(i).PY_ACTUAL;
2884 l_phase_tab(i).PY_ACTUAL2 := NULL;
2885 
2886 l_phase_tab(i).P_FORECAST1 := l_phase_tab(i).P_FORECAST;
2887 l_phase_tab(i).P_FORECAST2 := NULL;
2888 l_phase_tab(i).PY_FORECAST1 := l_phase_tab(i).PY_FORECAST;
2889 l_phase_tab(i).PY_FORECAST2 := NULL;
2890 
2891 
2892               IF (l_phase_tab(i).PY_ACTUAL = 0)
2893                   THEN
2894                      l_phase_tab(i).P_CHANGE11 := 0;
2895                      l_phase_tab(i).P_CHANGE12 := NULL;
2896 
2897                ELSE
2898   l_phase_tab(i).P_CHANGE11 := ROUND( ((l_phase_tab(i).P_ACTUAL -
2899 
2900 l_phase_tab(i).PY_ACTUAL)/ABS(l_phase_tab(i).PY_ACTUAL))*100, 2) ;
2901   l_phase_tab(i).P_CHANGE12 := NULL;
2902                END IF;
2903 
2904 
2905                IF (l_phase_tab(i).PY_FORECAST = 0)
2906                   THEN
2907                      l_phase_tab(i).P_CHANGE21 := 0;
2908                      l_phase_tab(i).P_CHANGE22 := NULL;
2909                ELSE
2910   l_phase_tab(i).P_CHANGE21 := ROUND( ((l_phase_tab(i).P_FORECAST -
2911 
2912 l_phase_tab(i).PY_FORECAST)/ABS(l_phase_tab(i).PY_FORECAST))*100, 2);
2913   l_phase_tab(i).P_CHANGE22 := NULL;
2914                END IF;
2915 
2916 
2917             ELSIF (l_phase_tab(i).amount_type_code =3)
2918               THEN
2919 /*
2920 **              -- MARGIN ---------------------------+
2921 */
2922 l_phase_tab(i).P_ACTUAL1 := l_phase_tab(i).P_ACTUAL;
2923 l_phase_tab(i).P_ACTUAL2 := NULL;
2924 l_phase_tab(i).PY_ACTUAL1 := l_phase_tab(i).PY_ACTUAL;
2925 l_phase_tab(i).PY_ACTUAL2 := NULL;
2926 
2927 l_phase_tab(i).P_FORECAST1 := l_phase_tab(i).P_FORECAST;
2928 l_phase_tab(i).P_FORECAST2 := NULL;
2929 l_phase_tab(i).PY_FORECAST1 := l_phase_tab(i).PY_FORECAST;
2930 l_phase_tab(i).PY_FORECAST2 := NULL;
2931 
2932               IF (l_phase_tab(i).PY_ACTUAL = 0)
2933                   THEN
2934                      l_phase_tab(i).P_CHANGE11 := 0;
2935                      l_phase_tab(i).P_CHANGE12 := NULL;
2936                ELSE
2937   l_phase_tab(i).P_CHANGE11 := ROUND( ((l_phase_tab(i).P_ACTUAL -
2938 
2939 l_phase_tab(i).PY_ACTUAL)/ABS(l_phase_tab(i).PY_ACTUAL))*100, 2) ;
2940   l_phase_tab(i).P_CHANGE12 := NULL;
2941                END IF;
2942 
2943 
2944                IF (l_phase_tab(i).PY_FORECAST = 0)
2945                   THEN
2946                      l_phase_tab(i).P_CHANGE21 := 0;
2947                      l_phase_tab(i).P_CHANGE22 := NULL;
2948                ELSE
2949   l_phase_tab(i).P_CHANGE21 := ROUND( ((l_phase_tab(i).P_FORECAST -
2950 
2951 l_phase_tab(i).PY_FORECAST)/ABS(l_phase_tab(i).PY_FORECAST))*100, 2);
2952   l_phase_tab(i).P_CHANGE22 := NULL;
2953                END IF;
2954 
2955 /*
2956 **               -- Cache margin amounts for subsequent Margin Percentage Calc
2957 */
2958                l_mgn_P_ACTUAL         :=  l_phase_tab(i).P_ACTUAL;
2959                l_mgn_P_FORECAST       :=  l_phase_tab(i).P_FORECAST;
2960                l_mgn_PY_ACTUAL        :=  l_phase_tab(i).PY_ACTUAL;
2961                l_mgn_PY_FORECAST      :=  l_phase_tab(i).PY_FORECAST;
2962 
2963 
2964             END IF;
2965 
2966 
2967         END LOOP;
2968 
2969 /*
2970 **        -- PHASE III: Create the Margin Percentage Row ---------------------+
2971 */
2972         l_phase_tab.extend;
2973 
2974 
2975 l_phase_tab(4):=PJI_REP_PP3(NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,
2976                             NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,
2977                             NULL,NULL,NULL,NULL,NULL,NULL,NULL);
2978 
2979         i := 4;
2980 
2981                l_phase_tab(i).phase_code := 1;
2982 
2983                l_phase_tab(i).amount_type_code := 4;
2984 
2985                l_phase_tab(i).amount_type_label := l_label_mgnpct;
2986 
2987                IF (l_rev_P_ACTUAL = 0)
2988                  THEN
2989 
2990                   l_phase_tab(i).P_ACTUAL := NULL;
2991 
2992                ELSE
2993 
2994                    l_phase_tab(i).P_ACTUAL := ROUND((l_mgn_P_ACTUAL/l_rev_P_ACTUAL)*100,2);
2995 
2996                END IF;
2997 
2998                IF (l_rev_PY_ACTUAL = 0)
2999                  THEN
3000 
3001                   l_phase_tab(i).PY_ACTUAL := NULL;
3002                ELSE
3003 
3004                   l_phase_tab(i).PY_ACTUAL := ROUND((l_mgn_PY_ACTUAL/l_rev_PY_ACTUAL)*100, 2);
3005 
3006                END IF;
3007 
3008                IF ( (l_rev_P_ACTUAL = 0)
3009                         OR (l_rev_PY_ACTUAL = 0)
3010                   )
3011                  THEN
3012 
3013                  l_phase_tab(i).p_change11 := NULL;
3014                  l_phase_tab(i).p_change12 := 0;
3015                ELSE
3016 
3017                   l_phase_tab(i).p_change11 := NULL;
3018                   l_phase_tab(i).p_change12 := ROUND(
3019 
3020 (((l_mgn_P_ACTUAL/l_rev_P_ACTUAL)*100)-((l_mgn_PY_ACTUAL/l_rev_PY_ACTUAL)*100)), 2);
3021 
3022                END IF;
3023 
3024                IF (l_rev_P_FORECAST = 0)
3025                  THEN
3026 
3027                     l_phase_tab(i).P_FORECAST := NULL;
3028 
3029                ELSE
3030 
3031                     l_phase_tab(i).P_FORECAST := ROUND((l_mgn_P_FORECAST/l_rev_P_FORECAST)*100, 2);
3032 
3033                END IF;
3034 
3035 
3036                IF (l_rev_PY_FORECAST = 0)
3037                  THEN
3038 
3039                     l_phase_tab(i).PY_FORECAST := NULL;
3040 
3041                ELSE
3042 
3043                     l_phase_tab(i).PY_FORECAST := ROUND((l_mgn_PY_FORECAST/l_rev_PY_FORECAST)*100, 2);
3044 
3045                END IF;
3046 
3047 
3048                IF ( (l_rev_P_FORECAST = 0)
3049                         OR (l_rev_PY_FORECAST = 0)
3050                   )
3051                  THEN
3052 
3053                  l_phase_tab(i).p_change21 := NULL;
3054                  l_phase_tab(i).p_change22 := 0;
3055 
3056                ELSE
3057 
3058 
3059   l_phase_tab(i).p_change21 := NULL;
3060   l_phase_tab(i).p_change22 :=  ROUND((((l_mgn_P_FORECAST/l_rev_P_FORECAST)*100) -
3061 
3062 ((l_mgn_PY_FORECAST/l_rev_PY_FORECAST)*100)), 2);
3063 
3064                END IF;
3065 
3066 l_phase_tab(i).P_ACTUAL1 := NULL;
3067 l_phase_tab(i).P_ACTUAL2 := l_phase_tab(i).P_ACTUAL;
3068 l_phase_tab(i).PY_ACTUAL1 := NULL;
3069 l_phase_tab(i).PY_ACTUAL2 := l_phase_tab(i).PY_ACTUAL;
3070 
3071 l_phase_tab(i).P_FORECAST1 := NULL;
3072 l_phase_tab(i).P_FORECAST2 := l_phase_tab(i).P_FORECAST;
3073 l_phase_tab(i).PY_FORECAST1 := NULL;
3074 l_phase_tab(i).PY_FORECAST2 := l_phase_tab(i).PY_FORECAST;
3075 
3076 
3077 	 /*
3078 	 ** Additionally, generating the drill across url to different reports.
3079 	 */
3080 	 FOR i IN 1..4
3081 	 LOOP
3082 		IF l_phase_tab(i).amount_type_label = l_label_cost THEN
3083 
3084 
3085 l_phase_tab(i).pji_rep_url1:='pFunctionName=PJI_REP_PP10&VIEW_BY_NAME=VIEW_BY_VALUE';
3086 
3087 
3088 l_phase_tab(i).pji_rep_url2:='pFunctionName=PJI_REP_PP10&VIEW_BY_NAME=VIEW_BY_VALUE';
3089 		ELSE
3090 
3091 
3092 l_phase_tab(i).pji_rep_url1:='pFunctionName=PJI_REP_PP9&VIEW_BY_NAME=VIEW_BY_VALUE';
3093 
3094 
3095 l_phase_tab(i).pji_rep_url2:='pFunctionName=PJI_REP_PP9&VIEW_BY_NAME=VIEW_BY_VALUE';
3096 		END IF;
3097 	 END LOOP;
3098 
3099 
3100 
3101 
3102 	/*
3103 	** Return the bulk collected table back to pmv.
3104 	*/
3105 
3106 	   COMMIT;
3107 
3108 
3109            RETURN l_phase_tab;
3110 
3111 
3112         END PLSQLDriver_PJI_REP_PP3;
3113 
3114 
3115 
3116 
3117 
3118 
3119 
3120 
3121 
3122 /* Name:                 PLSQLDriver_PJI_REP_PPDTL
3123 ** Type:                 Function
3124 **
3125 ** Description:          This function receives PM Viewer runtime query parameters
3126 **                       and RETURNS a PL/SQL table for the PM Viewer report.
3127 **
3128 ** 			This function is designed for the Project Profitability
3129 **                     Detail Reports:
3130 **                       1) Project Profitability Detail (PP9)
3131 **                       2) Project Cost Detail (PP10)
3132 **
3133 ** NOTE:
3134 **                       These report do NOT have any View-By dimensions. Therefore,
3135 **                       the collection logic does not address view-by logic requirements.
3136 **
3137 **                       Also, double counting, which may occur if class codes are specified,
3138 **                       is NOT permitted for these reports. As a result, if class codes are specified,
3139 **                       then the pji_pmv_prj_dim_tmp is populated on the fly and joined in the SQL
3140 **                       to prevent double counting.
3141 **
3142 ** Issues:
3143 **
3144 **
3145 ** Called subprograms:
3146 **                       Various PJI_PMV_ENGINE.Convert APIs
3147 **
3148 ** Called objects:
3149 **                       PJI_REP_PPDTL_TBL (table of db object PJI_REP_PPDTL)
3150 **
3151 ** History:
3152 **       03-JUN-2002	jwhite		Created.
3153 */
3154 
3155 	FUNCTION  PLSQLDriver_PJI_REP_PPDTL(
3156          p_Operating_Unit		IN VARCHAR2 DEFAULT NULL
3157          , p_Organization		IN VARCHAR2
3158          , p_Currency_Type		IN VARCHAR2
3159          , p_As_of_Date         IN NUMBER
3160          , p_Period_Type 		IN VARCHAR2
3161          , p_View_BY 			IN VARCHAR2
3162          , p_Classifications	IN VARCHAR2 DEFAULT NULL
3163          , p_Class_Codes		IN VARCHAR2 DEFAULT NULL
3164          , p_Project_IDS		IN VARCHAR2 DEFAULT NULL
3165 
3166          , p_Expenditure_Category        IN VARCHAR2 DEFAULT NULL
3167          , p_Expenditure_Type            IN VARCHAR2 DEFAULT NULL
3168          , p_Revenue_Category            IN VARCHAR2 DEFAULT NULL
3169          , p_Revenue_Type                IN VARCHAR2 DEFAULT NULL
3170          , p_Work_Type                   IN VARCHAR2 DEFAULT NULL
3171 
3172          )  RETURN PJI_REP_PPDTL_TBL
3173 	IS
3174 
3175         PRAGMA AUTONOMOUS_TRANSACTION;
3176 
3177 /*
3178 **         PL/SQL Declaration
3179 */
3180 	l_detail_tab		PJI_REP_PPDTL_TBL := PJI_REP_PPDTL_TBL();
3181 
3182 	l_Total_Revenue				NUMBER := 0;
3183 	l_Total_Cost				NUMBER := 0;
3184 	l_Total_Bgt_Revenue			NUMBER := 0;
3185 	l_Total_Bgt_Cost			NUMBER := 0;
3186 	l_Total_Forecast_Revenue	NUMBER := 0;
3187 	l_Total_Forecast_Cost		NUMBER := 0;
3188 	l_Total_Margin				NUMBER := 0;
3189 	l_Total_Cost_Variance		NUMBER := 0;
3190 	l_Total_Budget_Margin		NUMBER := 0;
3191 	l_Total_Fcst_Margin			NUMBER := 0;
3192 	l_Total_Fcst_Margin_Variance	NUMBER := 0;
3193 	l_Total_Fcst_Cost_Variance	NUMBER := 0;
3194 
3195         l_Convert_Classification        VARCHAR2(1);
3196         l_Convert_Expenditure_Type      VARCHAR2(1);
3197         l_Convert_Event_Revenue_Type    VARCHAR2(1);
3198         l_Convert_Work_Type             VARCHAR2(1);
3199         l_number                        NUMBER := 0;
3200 	l_curr_record_type_id           NUMBER:= 1;
3201 
3202 	BEGIN
3203 
3204 BEGIN
3205 	SELECT report_cost_type
3206 		INTO G_Report_Cost_Type
3207 		FROM pji_system_settings;
3208 	EXCEPTION
3209 	WHEN NO_DATA_FOUND THEN
3210 		G_Report_Cost_Type:='RC';
3211 END;
3212 
3213       /*
3214 	** Place a call to all the parse API's which parse the
3215 	** parameters passed by PMV and populate all the
3216 	** temporary tables.
3217 	*/
3218 
3219 	PJI_PMV_ENGINE.Convert_Operating_Unit(P_OPERATING_UNIT_IDS   => p_Operating_Unit
3220                                                 , P_VIEW_BY            => p_View_BY
3221                                               );
3222 
3223 	PJI_PMV_ENGINE.Convert_Organization(P_TOP_ORGANIZATION_ID  => p_Organization
3224                                               , P_VIEW_BY            => p_View_BY
3225                                             );
3226 
3227 
3228 
3229 	PJI_PMV_ENGINE.Convert_Time(P_AS_OF_DATE    => p_As_of_Date
3230                                       , P_PERIOD_TYPE  =>  p_Period_Type
3231                                       , P_VIEW_BY      =>  p_View_By
3232                                       , P_PARSE_PRIOR  =>  NULL
3233                                       , P_PARSE_ITD    => NULL
3234                                       , P_FULL_PERIOD_FLAG => 'Y'
3235                                     );
3236 
3237 
3238       l_Convert_Classification := PJI_PMV_ENGINE.Convert_Classification(p_Classifications, p_Class_Codes, p_View_BY);
3239       l_Convert_Expenditure_Type := PJI_PMV_ENGINE.Convert_Expenditure_Type(p_Expenditure_Category, p_Expenditure_Type, p_View_BY);
3240       l_Convert_Event_Revenue_Type := PJI_PMV_ENGINE.Convert_Event_Revenue_Type(p_Revenue_Category, p_Revenue_Type, p_View_BY );
3241       l_Convert_Work_Type := PJI_PMV_ENGINE.Convert_Work_Type(p_Work_Type, p_View_BY);
3242 	l_curr_record_type_id:=PJI_PMV_ENGINE.Convert_Currency_Record_Type(p_Currency_Type);
3243 
3244 /*
3245 **        PHASE I: Insert Separate Current and Prior Year Rows for Revenue, Cost and Margin
3246 */
3247 
3248 	IF p_Project_IDS IS NULL THEN
3249 
3250 /*
3251 **		 Code the SQL statement for all of the following conditions
3252 **		 1. Current Year
3253 **
3254 **		Bulk-Collect the output into a pl/sql table to be returned to
3255 **		pmv.
3256 **
3257 */
3258 /*
3259 **        logic builds an intersection tmp table between the class codes tmp table and the
3260 **        project_class mapping table. The intersection table is equi-joined in the following
3261 **         select statement.
3262 */
3263 			BEGIN
3264                         DELETE pji_pmv_prj_dim_tmp;
3265 
3266                  if(l_Convert_Classification = 'Y') then
3267                         INSERT into  pji_pmv_prj_dim_tmp (id, name)
3268                         SELECT DISTINCT prj.project_id, '-1' name
3269                         FROM
3270                         pji_project_classes PJM
3271                         , pji_pmv_cls_dim_tmp PTM
3272                         , pji_pmv_orgz_dim_tmp org
3273                         , pa_projects_all prj
3274                         WHERE
3275                         pjm.project_class_id = ptm.id
3276                         AND prj.project_id = pjm.project_id
3277                         AND prj.carrying_out_organization_id = org.ID;
3278                  else
3279                         INSERT into  pji_pmv_prj_dim_tmp (id, name)
3280                         SELECT DISTINCT prj.project_id, '-1' name
3281                         FROM
3282                          pji_pmv_orgz_dim_tmp org
3283                         , pa_projects_all prj
3284                         WHERE
3285                          prj.carrying_out_organization_id = org.ID;
3286                 end if;
3287 
3288 			END;
3289 
3290 	ELSE
3291 	PJI_PMV_ENGINE.Convert_Project(P_PROJECT_IDS=>p_Project_IDS
3292 						, P_VIEW_BY =>p_View_BY);
3293 	END IF;
3294 
3295 
3296 
3297 /*
3298 ** ORG Processing ---------------------------------------------------+
3299 */
3300 
3301 
3302 /* ----------------------------- Case 1 truth table ------------------------------------ */
3303 
3304         IF (l_Convert_Classification = 'N')
3305          and (l_Convert_Expenditure_Type = 'N')
3306          and (l_Convert_Event_Revenue_Type = 'N')
3307          and (l_Convert_Work_Type = 'N')
3308           THEN
3309 
3310 
3311 
3312 			SELECT PJI_REP_PPDTL(PROJECT_ID
3313 			, NULL
3314 			, NULL
3315 			, PJI_PMV_UTIL.Drill_To_Proj_Perf_URL(PROJECT_ID, l_curr_record_type_id, p_As_of_Date,p_Period_Type)
3316 			, NULL
3317 			, NULL
3318 			, ORGANIZATION_ID
3319 			, NULL
3320 			, SUM(REVENUE)
3321 			, SUM(BURDENED_COST)
3322 			, SUM(CURR_BGT_REVENUE)
3323 			, SUM(CURR_BGT_BURDENED_COST)
3324 			, SUM(FORECAST_REVENUE)
3325 			, SUM(FORECAST_BURDENED_COST)
3326 			, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0
3327 			, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0
3328 			, 0, 0, 0, 0)
3329 			BULK COLLECT INTO l_detail_tab
3330 			FROM
3331 				(SELECT  /*+ ORDERED */
3332 					  FCT.PROJECT_ID                                             AS PROJECT_ID
3333 					, FCT.PROJECT_ORGANIZATION_ID                                AS ORGANIZATION_ID
3334 					, DECODE(TIME.amount_type,1,FCT.REVENUE, 0)                  AS REVENUE
3335 					, DECODE(TIME.amount_type,1,
3336                             DECODE(G_Report_Cost_Type,  'BC', fct.burdened_cost,
3337                                                         'RC', fct.raw_cost, 0), 0)            AS BURDENED_COST
3338 					, DECODE(TIME.amount_type,2,FCT.CURR_BGT_REVENUE, 0)         AS CURR_BGT_REVENUE
3339 					, DECODE(TIME.amount_type,2,
3340                             DECODE(G_Report_Cost_Type,  'BC', fct.curr_bgt_burdened_cost,
3341                                                         'RC', fct.curr_bgt_raw_cost, 0), 0)   AS CURR_BGT_BURDENED_COST
3342 					, DECODE(TIME.amount_type,2,FCT.FORECAST_REVENUE, 0)         AS FORECAST_REVENUE
3343 					, DECODE(TIME.amount_type,2,
3344                             DECODE(G_Report_Cost_Type,  'BC', fct.forecast_burdened_cost,
3345                                                         'RC', fct.forecast_raw_cost, 0), 0)   AS FORECAST_BURDENED_COST
3346 					FROM  PJI_PMV_TIME_DIM_TMP TIME
3347 						, PJI_PMV_PRJ_DIM_TMP PRJ
3348 						, PJI_PMV_ORGZ_DIM_TMP HORG
3349 					        , PJI_FP_PROJ_F FCT
3350 						, PJI_PMV_ORG_DIM_TMP HOU
3351 					WHERE  1=1
3352 					AND bitand(fct.curr_record_type_id, l_curr_record_type_id) = l_curr_record_type_id
3353 					AND FCT.PROJECT_ID = PRJ.ID
3354 					AND FCT.PROJECT_ORG_ID = HOU.ID
3355 					AND FCT.PROJECT_ORGANIZATION_ID = HORG.ID
3356 					AND FCT.TIME_ID = TIME.ID
3357 					AND TIME.ID IS NOT NULL
3358 					AND FCT.PERIOD_TYPE_ID = TIME.PERIOD_TYPE
3359 					AND FCT.CALENDAR_TYPE = TIME.CALENDAR_TYPE
3360 					) FCT
3361 			GROUP BY PROJECT_ID,ORGANIZATION_ID;
3362 
3363 /*
3364 ** -- PROJECT CLASSIFICATION Processing ---------------------------------------------------+
3365 */
3366 
3367 
3368 /* -----------------------------------  Case 2 truth table   -------------------------------------  */
3369 
3370         ELSIF (l_Convert_Expenditure_Type = 'N')
3371          and (l_Convert_Event_Revenue_Type = 'N')
3372          and (l_Convert_Work_Type = 'N')
3373 
3374           THEN
3375 
3376 			SELECT PJI_REP_PPDTL(PROJECT_ID
3377 			, NULL
3378 			, NULL
3379 			, PJI_PMV_UTIL.Drill_To_Proj_Perf_URL(PROJECT_ID, l_curr_record_type_id, p_As_of_Date,p_Period_Type)
3380 			, NULL
3381 			, NULL
3382 			, ORGANIZATION_ID
3383 			, NULL
3384 			, SUM(REVENUE)
3385 			, SUM(BURDENED_COST)
3386 			, SUM(CURR_BGT_REVENUE)
3387 			, SUM(CURR_BGT_BURDENED_COST)
3388 			, SUM(FORECAST_REVENUE)
3389 			, SUM(FORECAST_BURDENED_COST)
3390 			, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0
3391 			, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0
3392 			, 0, 0, 0, 0)
3393 			BULK COLLECT INTO l_detail_tab
3394 			FROM
3395 				(SELECT  /*+ ORDERED */
3396 					  FCT.PROJECT_ID                                             AS PROJECT_ID
3397 					, FCT.PROJECT_ORGANIZATION_ID                                AS ORGANIZATION_ID
3398 					, DECODE(TIME.amount_type,1,FCT.REVENUE, 0)                  AS REVENUE
3399 					, DECODE(TIME.amount_type,1,
3400                         DECODE(G_Report_Cost_Type,  'BC', fct.burdened_cost,
3401                                                     'RC', fct.raw_cost, 0), 0)   AS BURDENED_COST
3402 					, DECODE(TIME.amount_type,2,FCT.CURR_BGT_REVENUE, 0)         AS CURR_BGT_REVENUE
3403 					, DECODE(TIME.amount_type,2,
3404                         DECODE(G_Report_Cost_Type,  'BC',fct.curr_bgt_burdened_cost,
3405                                                     'RC',fct.curr_bgt_raw_cost, 0), 0)   AS CURR_BGT_BURDENED_COST
3406 					, DECODE(TIME.amount_type,2,FCT.FORECAST_REVENUE, 0)         AS FORECAST_REVENUE
3407 					, DECODE(TIME.amount_type,2,
3408                         DECODE(G_Report_Cost_Type,  'BC', fct.forecast_burdened_cost,
3409                                                     'RC', fct.forecast_raw_cost, 0), 0)   AS FORECAST_BURDENED_COST
3410 					FROM   PJI_PMV_TIME_DIM_TMP TIME
3411 						, PJI_PMV_PRJ_DIM_TMP PRJ
3412 						, PJI_FP_PROJ_F FCT
3413 						, PJI_PMV_ORG_DIM_TMP HOU
3414 					WHERE  1=1
3415 					AND bitand(fct.curr_record_type_id, l_curr_record_type_id) = l_curr_record_type_id
3416 					AND FCT.PROJECT_ID = PRJ.ID
3417 					AND FCT.PROJECT_ORG_ID = HOU.ID
3418 					AND FCT.TIME_ID = TIME.ID
3419 					AND TIME.ID IS NOT NULL
3420 					AND FCT.PERIOD_TYPE_ID = TIME.PERIOD_TYPE
3421 					AND FCT.CALENDAR_TYPE = TIME.CALENDAR_TYPE
3422 					) FCT
3423 			GROUP BY PROJECT_ID,ORGANIZATION_ID;
3424 
3425 /*
3426 ** Expenditure or Revenue Type Processing ---------------------------------------------------+
3427 */
3428 
3429 /* -----------------------------------  Case 3 truth table   -------------------------------------  */
3430 
3431         ELSIF (l_Convert_Classification = 'N')
3432          and (l_Convert_Work_Type = 'N')
3433           THEN
3434 
3435 
3436 			SELECT PJI_REP_PPDTL(PROJECT_ID
3437 			, NULL
3438 			, NULL
3439 			, PJI_PMV_UTIL.Drill_To_Proj_Perf_URL(PROJECT_ID, l_curr_record_type_id, p_As_of_Date,p_Period_Type)
3440 			, NULL
3441 			, NULL
3442 			, ORGANIZATION_ID
3443 			, NULL
3444 			, SUM(REVENUE)
3445 			, SUM(BURDENED_COST)
3446 			, SUM(CURR_BGT_REVENUE)
3447 			, SUM(CURR_BGT_BURDENED_COST)
3448 			, SUM(FORECAST_REVENUE)
3449 			, SUM(FORECAST_BURDENED_COST)
3450 			, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0
3451 			, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0
3452 			, 0, 0, 0, 0)
3453 			BULK COLLECT INTO l_detail_tab
3454 			FROM
3455 				(SELECT  /*+ ORDERED */
3456 					  FCT.PROJECT_ID                                             AS PROJECT_ID
3457 					, FCT.PROJECT_ORGANIZATION_ID                                AS ORGANIZATION_ID
3458 					, DECODE(TIME.amount_type,1,FCT.REVENUE, 0)                  AS REVENUE
3459 					, DECODE(TIME.amount_type,1,
3460                         DECODE(G_Report_Cost_Type,  'BC', fct.burdened_cost,
3461                                                     'RC', fct.raw_cost, 0), 0)   AS BURDENED_COST
3462 					, NULL         AS CURR_BGT_REVENUE
3463 					, NULL   	AS CURR_BGT_BURDENED_COST
3464 					, NULL         AS FORECAST_REVENUE
3465 					, NULL      AS FORECAST_BURDENED_COST
3466 					FROM   PJI_PMV_TIME_DIM_TMP TIME
3467 						, PJI_PMV_PRJ_DIM_TMP PRJ
3468 						, PJI_PMV_ET_RT_DIM_TMP ET
3469 						, PJI_FP_PROJ_ET_F FCT
3470 						, PJI_PMV_ORG_DIM_TMP HOU
3471 					WHERE  1=1
3472 					AND bitand(fct.curr_record_type_id, l_curr_record_type_id) = l_curr_record_type_id
3473 					AND FCT.PROJECT_ID = PRJ.ID
3474 					AND FCT.EXP_EVT_TYPE_ID = ET.ID
3475 					AND ET.record_type =
3476 
3477 decode(l_Convert_Expenditure_Type,'Y','ET',l_Convert_Event_Revenue_Type,'Y','RT')
3478 					AND FCT.PROJECT_ORG_ID = HOU.ID
3479 					AND FCT.TIME_ID = TIME.ID
3480 					AND TIME.ID IS NOT NULL
3481 					AND FCT.PERIOD_TYPE_ID = TIME.PERIOD_TYPE
3482 					AND FCT.CALENDAR_TYPE = TIME.CALENDAR_TYPE
3483 					) FCT
3484 			GROUP BY PROJECT_ID,ORGANIZATION_ID;
3485 
3486 /*
3487 **  Work Type Processing ---------------------------------------------------+
3488 */
3489 
3490 /* -----------------------------------  Case 4 truth table   -------------------------------------  */
3491 
3492         ELSIF (l_Convert_Classification = 'N')
3493          and  (l_Convert_Expenditure_Type = 'N')
3494          and  (l_Convert_Event_Revenue_Type = 'N')
3495           THEN
3496 
3497 
3498 			SELECT PJI_REP_PPDTL(PROJECT_ID
3499 			, NULL
3500 			, NULL
3501 			, PJI_PMV_UTIL.Drill_To_Proj_Perf_URL(PROJECT_ID, l_curr_record_type_id, p_As_of_Date,p_Period_Type)
3502 			, NULL
3503 			, NULL
3504 			, ORGANIZATION_ID
3505 			, NULL
3506 			, SUM(REVENUE)
3507 			, SUM(BURDENED_COST)
3508 			, SUM(CURR_BGT_REVENUE)
3509 			, SUM(CURR_BGT_BURDENED_COST)
3510 			, SUM(FORECAST_REVENUE)
3511 			, SUM(FORECAST_BURDENED_COST)
3512 			, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0
3513 			, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0
3514 			, 0, 0, 0, 0)
3515 			BULK COLLECT INTO l_detail_tab
3516 			FROM
3517 				(SELECT  /*+ ORDERED */
3518 					  FCT.PROJECT_ID                                             AS PROJECT_ID
3519 					, FCT.PROJECT_ORGANIZATION_ID                                AS ORGANIZATION_ID
3520 					, null                  AS REVENUE
3521 					, DECODE(TIME.amount_type,1,
3522                         DECODE(G_Report_Cost_Type,  'BC', fct.burdened_cost,
3523                                                     'RC', fct.raw_cost, 0), 0)   AS BURDENED_COST
3524 					, NULL         AS CURR_BGT_REVENUE
3525 					, NULL   	AS CURR_BGT_BURDENED_COST
3526 					, NULL         AS FORECAST_REVENUE
3527 					, NULL      AS FORECAST_BURDENED_COST
3528 					FROM   PJI_PMV_TIME_DIM_TMP TIME
3529 						, PJI_PMV_PRJ_DIM_TMP PRJ
3530 						, PJI_PMV_WT_DIM_TMP WT
3531 						, PJI_FP_PROJ_ET_WT_F FCT
3532 						, PJI_PMV_ORG_DIM_TMP HOU
3533 					WHERE  1=1
3534 					AND bitand(fct.curr_record_type_id, l_curr_record_type_id) = l_curr_record_type_id
3535 					AND FCT.PROJECT_ID = PRJ.ID
3536 					AND FCT.WORK_TYPE_ID = WT.ID
3537 					AND FCT.PROJECT_ORG_ID = HOU.ID
3538 					AND FCT.TIME_ID = TIME.ID
3539 					AND TIME.ID IS NOT NULL
3540 					AND FCT.PERIOD_TYPE_ID = TIME.PERIOD_TYPE
3541 					AND FCT.CALENDAR_TYPE = TIME.CALENDAR_TYPE
3542 					) FCT
3543 			GROUP BY PROJECT_ID,ORGANIZATION_ID;
3544 
3545 /*
3546 ** Project classification and Expenditure or Revenue Type Processing ---------------------------------+
3547 */
3548 
3549 /* -----------------------------------  Case 5 truth table   -------------------------------------  */
3550 
3551         ELSIF (l_Convert_Work_Type = 'N')
3552           THEN
3553 
3554 
3555 
3556 			SELECT PJI_REP_PPDTL(PROJECT_ID
3557 			, NULL
3558 			, NULL
3559 			, PJI_PMV_UTIL.Drill_To_Proj_Perf_URL(PROJECT_ID, l_curr_record_type_id, p_As_of_Date,p_Period_Type)
3560 			, NULL
3561 			, NULL
3562 			, ORGANIZATION_ID
3563 			, NULL
3564 			, SUM(REVENUE)
3565 			, SUM(BURDENED_COST)
3566 			, SUM(CURR_BGT_REVENUE)
3567 			, SUM(CURR_BGT_BURDENED_COST)
3568 			, SUM(FORECAST_REVENUE)
3569 			, SUM(FORECAST_BURDENED_COST)
3570 			, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0
3571 			, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0
3572 			, 0, 0, 0, 0)
3573 			BULK COLLECT INTO l_detail_tab
3574 			FROM
3575 				(SELECT  /*+ ORDERED */
3576 					  FCT.PROJECT_ID                                             AS PROJECT_ID
3577 					, FCT.PROJECT_ORGANIZATION_ID                                AS ORGANIZATION_ID
3578 					, DECODE(TIME.amount_type,1,FCT.REVENUE, 0)                  AS REVENUE
3579 					, DECODE(TIME.amount_type,1,
3580                         DECODE(G_Report_Cost_Type,  'BC', fct.burdened_cost,
3581                                                     'RC', fct.raw_cost, 0), 0)   AS BURDENED_COST
3582 					, NULL         AS CURR_BGT_REVENUE
3583 					, NULL   	AS CURR_BGT_BURDENED_COST
3584 					, NULL         AS FORECAST_REVENUE
3585 					, NULL      AS FORECAST_BURDENED_COST
3586 					FROM   PJI_PMV_TIME_DIM_TMP TIME
3587 						, PJI_PMV_PRJ_DIM_TMP PRJ
3588 						, PJI_PMV_ET_RT_DIM_TMP ET
3589 						, PJI_FP_PROJ_ET_F FCT
3590 						, PJI_PMV_ORG_DIM_TMP HOU
3591 					WHERE  1=1
3592 					AND bitand(fct.curr_record_type_id, l_curr_record_type_id) = l_curr_record_type_id
3593 					AND FCT.PROJECT_ID = PRJ.ID
3594 					AND FCT.EXP_EVT_TYPE_ID = ET.ID
3595 					AND ET.record_type =
3596 
3597 decode(l_Convert_Expenditure_Type,'Y','ET',l_Convert_Event_Revenue_Type,'Y','RT')
3598 					AND FCT.PROJECT_ORG_ID = HOU.ID
3599 					AND FCT.TIME_ID = TIME.ID
3600 					AND TIME.ID IS NOT NULL
3601 					AND FCT.PERIOD_TYPE_ID = TIME.PERIOD_TYPE
3602 					AND FCT.CALENDAR_TYPE = TIME.CALENDAR_TYPE
3603 					) FCT
3604 			GROUP BY PROJECT_ID,ORGANIZATION_ID;
3605 
3606 /*
3607 ** Expenditure or Revenue Type and Work Type Processing -----------------------------------------+
3608 */
3609 
3610 /* -----------------------------------  Case 6 truth table   -------------------------------------  */
3611 
3612         ELSIF (l_Convert_Classification = 'N')
3613           THEN
3614 
3615 
3616 
3617 			SELECT PJI_REP_PPDTL(PROJECT_ID
3618 			, NULL
3619 			, NULL
3620 			, PJI_PMV_UTIL.Drill_To_Proj_Perf_URL(PROJECT_ID, l_curr_record_type_id, p_As_of_Date,p_Period_Type)
3621 			, NULL
3622 			, NULL
3623 			, ORGANIZATION_ID
3624 			, NULL
3625 			, SUM(REVENUE)
3626 			, SUM(BURDENED_COST)
3627 			, SUM(CURR_BGT_REVENUE)
3628 			, SUM(CURR_BGT_BURDENED_COST)
3629 			, SUM(FORECAST_REVENUE)
3630 			, SUM(FORECAST_BURDENED_COST)
3631 			, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0
3632 			, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0
3633 			, 0, 0, 0, 0)
3634 			BULK COLLECT INTO l_detail_tab
3635 			FROM
3636 				(SELECT  /*+ ORDERED */
3637 					  FCT.PROJECT_ID                                             AS PROJECT_ID
3638 					, FCT.PROJECT_ORGANIZATION_ID                                AS ORGANIZATION_ID
3639 					, null                  AS REVENUE
3640 					, DECODE(TIME.amount_type,1,
3641                         DECODE(G_Report_Cost_Type,  'BC', fct.burdened_cost,
3642                                                     'RC', fct.raw_cost, 0), 0)   AS BURDENED_COST
3643 					, NULL         AS CURR_BGT_REVENUE
3644 					, NULL   	AS CURR_BGT_BURDENED_COST
3645 					, NULL         AS FORECAST_REVENUE
3646 					, NULL      AS FORECAST_BURDENED_COST
3647 					FROM   PJI_PMV_TIME_DIM_TMP TIME
3648 						, PJI_PMV_PRJ_DIM_TMP PRJ
3649 						, PJI_PMV_ET_RT_DIM_TMP ET
3650 						, PJI_PMV_WT_DIM_TMP WT
3651 						, PJI_FP_PROJ_ET_WT_F FCT
3652 						, PJI_PMV_ORG_DIM_TMP HOU
3653 					WHERE  1=1
3654 					AND bitand(fct.curr_record_type_id, l_curr_record_type_id) = l_curr_record_type_id
3655 					AND FCT.PROJECT_ID = PRJ.ID
3656 					AND FCT.EXP_EVT_TYPE_ID = ET.ID
3657 					AND ET.record_type =
3658 
3659 decode(l_Convert_Expenditure_Type,'Y','ET',l_Convert_Event_Revenue_Type,'Y','RT')
3660 					AND FCT.WORK_TYPE_ID = WT.ID
3661 					AND FCT.PROJECT_ORG_ID = HOU.ID
3662 					AND FCT.TIME_ID = TIME.ID
3663 					AND TIME.ID IS NOT NULL
3664 					AND FCT.PERIOD_TYPE_ID = TIME.PERIOD_TYPE
3665 					AND FCT.CALENDAR_TYPE = TIME.CALENDAR_TYPE
3666 					) FCT
3667 			GROUP BY PROJECT_ID,ORGANIZATION_ID;
3668 
3669 /*
3670 **  Project classification and Work Type Processing -----------------------------------------------+
3671 */
3672 
3673 /* -----------------------------------  Case 7 truth table   -------------------------------------  */
3674 
3675         ELSIF (l_Convert_Expenditure_Type = 'N')
3676           and (l_Convert_Event_Revenue_Type = 'N')
3677           THEN
3678 
3679 
3680 
3681 			SELECT PJI_REP_PPDTL(PROJECT_ID
3682 			, NULL
3683 			, NULL
3684 			, PJI_PMV_UTIL.Drill_To_Proj_Perf_URL(PROJECT_ID, l_curr_record_type_id, p_As_of_Date,p_Period_Type)
3685 			, NULL
3686 			, NULL
3687 			, ORGANIZATION_ID
3688 			, NULL
3689 			, SUM(REVENUE)
3690 			, SUM(BURDENED_COST)
3691 			, SUM(CURR_BGT_REVENUE)
3692 			, SUM(CURR_BGT_BURDENED_COST)
3693 			, SUM(FORECAST_REVENUE)
3694 			, SUM(FORECAST_BURDENED_COST)
3695 			, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0
3696 			, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0
3697 			, 0, 0, 0, 0)
3698 			BULK COLLECT INTO l_detail_tab
3699 			FROM
3700 				(SELECT  /*+ ORDERED */
3701 					  FCT.PROJECT_ID                                             AS PROJECT_ID
3702 					, FCT.PROJECT_ORGANIZATION_ID                                AS ORGANIZATION_ID
3703 					, null                  AS REVENUE
3704 					, DECODE(TIME.amount_type,1,
3705                         DECODE(G_Report_Cost_Type,  'BC', fct.burdened_cost,
3706                                                     'RC', fct.raw_cost, 0), 0)   AS BURDENED_COST
3707 					, NULL         AS CURR_BGT_REVENUE
3708 					, NULL   	AS CURR_BGT_BURDENED_COST
3709 					, NULL         AS FORECAST_REVENUE
3710 					, NULL      AS FORECAST_BURDENED_COST
3711 					FROM   PJI_PMV_TIME_DIM_TMP TIME
3712 						, PJI_PMV_PRJ_DIM_TMP PRJ
3713 						, PJI_PMV_WT_DIM_TMP WT
3714 						, PJI_FP_PROJ_ET_WT_F FCT
3715 						, PJI_PMV_ORG_DIM_TMP HOU
3716 					WHERE  1=1
3717 					AND bitand(fct.curr_record_type_id, l_curr_record_type_id) = l_curr_record_type_id
3718 					AND FCT.PROJECT_ID = PRJ.ID
3719 					AND FCT.WORK_TYPE_ID = WT.ID
3720 					AND FCT.PROJECT_ORG_ID = HOU.ID
3721 					AND FCT.TIME_ID = TIME.ID
3722 					AND TIME.ID IS NOT NULL
3723 					AND FCT.PERIOD_TYPE_ID = TIME.PERIOD_TYPE
3724 					AND FCT.CALENDAR_TYPE = TIME.CALENDAR_TYPE
3725 					) FCT
3726 			GROUP BY PROJECT_ID,ORGANIZATION_ID;
3727 
3728 /*
3729 ** Project classification and Expenditure or Revenue Type and Work Type Processing ----------------+
3730 */
3731 
3732 /* -----------------------------------  Case 8 truth table   -------------------------------------  */
3733 
3734         ELSE
3735 
3736 
3737 			SELECT PJI_REP_PPDTL(PROJECT_ID
3738 			, NULL
3739 			, NULL
3740 			, PJI_PMV_UTIL.Drill_To_Proj_Perf_URL(PROJECT_ID, l_curr_record_type_id, p_As_of_Date,p_Period_Type)
3741 			, NULL
3742 			, NULL
3743 			, ORGANIZATION_ID
3744 			, NULL
3745 			, SUM(REVENUE)
3746 			, SUM(BURDENED_COST)
3747 			, SUM(CURR_BGT_REVENUE)
3748 			, SUM(CURR_BGT_BURDENED_COST)
3749 			, SUM(FORECAST_REVENUE)
3750 			, SUM(FORECAST_BURDENED_COST)
3751 			, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0
3752 			, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0
3753 			, 0, 0, 0, 0)
3754 			BULK COLLECT INTO l_detail_tab
3755 			FROM
3756 				(SELECT  /*+ ORDERED */
3757 					  FCT.PROJECT_ID                                             AS PROJECT_ID
3758 					, FCT.PROJECT_ORGANIZATION_ID                                AS ORGANIZATION_ID
3759 					, null                  AS REVENUE
3760 					, DECODE(TIME.amount_type,1,
3761                         DECODE(G_Report_Cost_Type,  'BC', fct.burdened_cost,
3762                                                     'RC', fct.raw_cost, 0), 0)   AS BURDENED_COST
3763 					, NULL         AS CURR_BGT_REVENUE
3764 					, NULL   	AS CURR_BGT_BURDENED_COST
3765 					, NULL         AS FORECAST_REVENUE
3766 					, NULL      AS FORECAST_BURDENED_COST
3767 					FROM   PJI_PMV_TIME_DIM_TMP TIME
3768 						, PJI_PMV_PRJ_DIM_TMP PRJ
3769 						, PJI_PMV_ET_RT_DIM_TMP ET
3770 						, PJI_PMV_WT_DIM_TMP WT
3771 						, PJI_FP_PROJ_ET_WT_F FCT
3772 						, PJI_PMV_ORG_DIM_TMP HOU
3773 					WHERE  1=1
3774 					AND bitand(fct.curr_record_type_id, l_curr_record_type_id) = l_curr_record_type_id
3775 					AND FCT.PROJECT_ID = PRJ.ID
3776 					AND FCT.EXP_EVT_TYPE_ID = ET.ID
3777 					AND ET.record_type =
3778 
3779 decode(l_Convert_Expenditure_Type,'Y','ET',l_Convert_Event_Revenue_Type,'Y','RT')
3780 					AND FCT.WORK_TYPE_ID = WT.ID
3781 					AND FCT.PROJECT_ORG_ID = HOU.ID
3782 					AND FCT.TIME_ID = TIME.ID
3783 					AND TIME.ID IS NOT NULL
3784 					AND FCT.PERIOD_TYPE_ID = TIME.PERIOD_TYPE
3785 					AND FCT.CALENDAR_TYPE = TIME.CALENDAR_TYPE
3786 					) FCT
3787 			GROUP BY PROJECT_ID,ORGANIZATION_ID;
3788 
3789 
3790 	END IF;
3791 
3792 
3793 	FOR i IN 1..l_detail_tab.COUNT
3794 	LOOP
3795 		/*
3796 		** FETCH THE PRIMARY CUSTOMER NAME AND PROJECT MANAGER NAME.
3797 		*/
3798 
3799 
3800 
3801 l_detail_tab(i).PRIMARY_CUSTOMER_NAME:=PA_PROJECTS_MAINT_UTILS.GET_PRIMARY_CUSTOMER_NAME(l_detail_tab(i).PROJECT_ID);
3802 
3803 
3804 l_detail_tab(i).PERSON_MANAGER_NAME:=PA_PROJECTS_MAINT_UTILS.GET_PROJECT_MANAGER_NAME(l_detail_tab(i).PROJECT_ID);
3805 
3806 
3807 		/*
3808 		** FETCH THE PROJECT ATTRIBUTES.
3809 		*/
3810 		SELECT NAME
3811 			, SEGMENT1
3812 			, PROJECT_TYPE
3813 		INTO l_detail_tab(i).PROJECT_NAME
3814 			, l_detail_tab(i).PROJECT_NUMBER
3815 			, l_detail_tab(i).PROJECT_TYPE
3816 		FROM PA_PROJECTS_ALL
3817 		WHERE PROJECT_ID = l_detail_tab(i).PROJECT_ID;
3818 
3819 
3820 		/*
3821 		** FETCH THE ORGANIZATION NAME.
3822 		*/
3823 		SELECT NAME
3824 		INTO l_detail_tab(i).ORGANIZATION_NAME
3825 		FROM HR_ALL_ORGANIZATION_UNITS_TL
3826 		WHERE LANGUAGE = USERENV ('LANG')
3827 		AND ORGANIZATION_ID = l_detail_tab(i).ORGANIZATION_NAME;
3828 
3829 		l_detail_tab(i).MARGIN := l_detail_tab(i).REVENUE - l_detail_tab(i).BURDENED_COST;
3830 		l_detail_tab(i).BUDGET_MARGIN := l_detail_tab(i).CURR_BGT_REVENUE - l_detail_tab(i).CURR_BGT_BURDENED_COST;
3831 		l_detail_tab(i).FORECAST_MARGIN := l_detail_tab(i).FORECAST_REVENUE - l_detail_tab(i).FORECAST_BURDENED_COST;
3832 
3833 		IF NVL(l_detail_tab(i).CURR_BGT_BURDENED_COST, 0) <> 0 THEN
3834 			l_detail_tab(i).COST_VARIANCE :=
3835 
3836 100*((l_detail_tab(i).BURDENED_COST-l_detail_tab(i).CURR_BGT_BURDENED_COST)/ABS(l_detail_tab(i).CURR_BGT_BURDENED_COST));
3837 			l_detail_tab(i).FORECAST_COST_VARIANCE :=
3838 
3839 100*((l_detail_tab(i).FORECAST_BURDENED_COST-l_detail_tab(i).CURR_BGT_BURDENED_COST)/ABS(l_detail_tab(i).CURR_BGT_BURDENED_COST));
3840 		ELSE
3841 			l_detail_tab(i).FORECAST_COST_VARIANCE := NULL;
3842 			l_detail_tab(i).COST_VARIANCE := NULL;
3843 		END IF;
3844 
3845 		IF NVL(l_detail_tab(i).BUDGET_MARGIN, 0) <> 0 THEN
3846 			l_detail_tab(i).FORECAST_MARGIN_VARIANCE :=
3847 
3848 100*((l_detail_tab(i).FORECAST_MARGIN-l_detail_tab(i).BUDGET_MARGIN)/ABS(l_detail_tab(i).BUDGET_MARGIN));
3849 		ELSE
3850 			l_detail_tab(i).FORECAST_MARGIN_VARIANCE := NULL;
3851 		END IF;
3852 
3853 		l_Total_Revenue := l_Total_Revenue + NVL(l_detail_tab(i).REVENUE , 0);
3854 		l_Total_Cost := l_Total_Cost + NVL(l_detail_tab(i).BURDENED_COST , 0);
3855 		l_Total_Bgt_Revenue := l_Total_Bgt_Revenue + NVL(l_detail_tab(i).CURR_BGT_REVENUE , 0);
3856 		l_Total_Bgt_Cost := l_Total_Bgt_Cost + NVL(l_detail_tab(i).CURR_BGT_BURDENED_COST , 0);
3857 		l_Total_Forecast_Revenue := l_Total_Forecast_Revenue + NVL(l_detail_tab(i).FORECAST_REVENUE , 0);
3858 		l_Total_Forecast_Cost := l_Total_Forecast_Cost + NVL(l_detail_tab(i).FORECAST_BURDENED_COST , 0);
3859 		l_Total_Margin := l_Total_Margin + NVL(l_detail_tab(i).MARGIN , 0);
3860 		l_Total_Budget_Margin := l_Total_Budget_Margin + NVL(l_detail_tab(i).BUDGET_MARGIN , 0);
3861 		l_Total_Fcst_Margin := l_Total_Fcst_Margin + NVL(l_detail_tab(i).FORECAST_MARGIN , 0);
3862 	END LOOP;
3863 
3864 	FOR i IN 1..l_detail_tab.COUNT
3865 	LOOP
3866 		l_detail_tab(i).PJI_REP_TOTAL_1:=l_Total_Revenue;
3867 		l_detail_tab(i).PJI_REP_TOTAL_2:=l_Total_Cost;
3868 		l_detail_tab(i).PJI_REP_TOTAL_3:=l_Total_Bgt_Revenue;
3869 		l_detail_tab(i).PJI_REP_TOTAL_4:=l_Total_Bgt_Cost;
3870 		l_detail_tab(i).PJI_REP_TOTAL_5:=l_Total_Forecast_Revenue;
3871 		l_detail_tab(i).PJI_REP_TOTAL_6:=l_Total_Forecast_Cost;
3872 
3873 		l_detail_tab(i).PJI_REP_TOTAL_7:=l_detail_tab(i).PJI_REP_TOTAL_1 - l_detail_tab(i).PJI_REP_TOTAL_2;
3874 		l_detail_tab(i).PJI_REP_TOTAL_9:=l_detail_tab(i).PJI_REP_TOTAL_3 - l_detail_tab(i).PJI_REP_TOTAL_4;
3875 		l_detail_tab(i).PJI_REP_TOTAL_10:=l_detail_tab(i).PJI_REP_TOTAL_5 - l_detail_tab(i).PJI_REP_TOTAL_6;
3876 
3877 		IF NVL(l_detail_tab(i).PJI_REP_TOTAL_4, 0) <> 0 THEN
3878 			l_detail_tab(i).PJI_REP_TOTAL_8 :=
3879 
3880 100*((l_detail_tab(i).PJI_REP_TOTAL_2-l_detail_tab(i).PJI_REP_TOTAL_4)/ABS(l_detail_tab(i).PJI_REP_TOTAL_4));
3881 			l_detail_tab(i).PJI_REP_TOTAL_12 :=
3882 
3883 100*((l_detail_tab(i).PJI_REP_TOTAL_6-l_detail_tab(i).PJI_REP_TOTAL_4)/ABS(l_detail_tab(i).PJI_REP_TOTAL_4));
3884 		ELSE
3885 			l_detail_tab(i).PJI_REP_TOTAL_8 := NULL;
3886 			l_detail_tab(i).PJI_REP_TOTAL_12 := NULL;
3887 		END IF;
3888 
3889 		IF NVL(l_detail_tab(i).PJI_REP_TOTAL_9, 0) <> 0 THEN
3890 			l_detail_tab(i).PJI_REP_TOTAL_11 :=
3891 
3892 100*((l_detail_tab(i).PJI_REP_TOTAL_10-l_detail_tab(i).PJI_REP_TOTAL_9)/ABS(l_detail_tab(i).PJI_REP_TOTAL_9));
3893 		ELSE
3894 			l_detail_tab(i).PJI_REP_TOTAL_11 := NULL;
3895 		END IF;
3896 
3897 	END LOOP;
3898 
3899 
3900 /*
3901 ** Return the bulk collected table back to pmv.
3902 */
3903 
3904 	   COMMIT;
3905 
3906 
3907 
3908 
3909            RETURN l_detail_tab;
3910 
3911 
3912         END PLSQLDriver_PJI_REP_PPDTL;
3913 
3914 
3915 
3916 
3917 /* Name:                 PLSQLDriver_PJI_REP_PPSUM
3918 ** Type:                 Function
3919 **
3920 ** Description:          This function receives PM Viewer runtime query parameters
3921 **                       and RETURNS a PL/SQL table for the PM Viewer report.
3922 **
3923 ** 			This function is designed for the Project SUMMARY Profitability
3924 **                       Reports:
3925 **                       1) Project Actual Profitability (PP1)
3926 **                       2) Project Forecast Profitability (PP2)
3927 **                       3) Project Cost Profitability (PP4)
3928 **
3929 ** NOTE:
3930 **                       The Project SUMMARY Profitability reports are DBI reports.
3931 **
3932 ** Called subprograms:
3933 **                       Various PJI_PMV_ENGINE.Convert APIs
3934 **
3935 ** Called objects:
3936 **                       PJI_REP_PPSUM_TBL (table of db object PJI_REP_PPSUM)
3937 **
3938 ** History:
3939 **       06-JUN-2002	jwhite		Created.
3940 */
3941 
3942 	FUNCTION  PLSQLDriver_PJI_REP_PPSUM(
3943          p_Operating_Unit		IN VARCHAR2 DEFAULT NULL
3944          , p_Organization		IN VARCHAR2
3945          , p_Currency_Type		IN VARCHAR2
3946          , p_As_of_Date         IN NUMBER
3947          , p_Time_Comparison_Type       IN VARCHAR2
3948          , p_Period_Type 		IN VARCHAR2
3949          , p_View_BY 			IN VARCHAR2
3950          , p_Classifications	IN VARCHAR2 DEFAULT NULL
3951          , p_Class_Codes		IN VARCHAR2 DEFAULT NULL
3952 
3953          , p_Expenditure_Category        IN VARCHAR2 DEFAULT NULL
3954          , p_Expenditure_Type            IN VARCHAR2 DEFAULT NULL
3955          , p_Revenue_Category            IN VARCHAR2 DEFAULT NULL
3956          , p_Revenue_Type                IN VARCHAR2 DEFAULT NULL
3957          , p_Work_Type                   IN VARCHAR2 DEFAULT NULL
3958 
3959          )  RETURN PJI_REP_PPSUM_TBL
3960 	IS
3961 
3962         PRAGMA AUTONOMOUS_TRANSACTION;
3963 
3964 /*
3965 **  -- Local Variable Declaration
3966 */
3967 
3968 	l_Total_Revenue				NUMBER:=0;
3969 	l_Total_Cost				NUMBER:=0;
3970 	l_Total_Forecast_Revenue		NUMBER:=0;
3971 	l_Total_Forecast_Cost			NUMBER:=0;
3972 	l_Total_Margin				NUMBER:=0;
3973 
3974 	l_CT_Total_Revenue			NUMBER:=0;
3975 	l_CT_Total_Cost				NUMBER:=0;
3976 	l_CT_Total_Forecast_Revenue		NUMBER:=0;
3977 	l_CT_Total_Forecast_Cost		NUMBER:=0;
3978 	l_CT_Total_Margin				NUMBER:=0;
3979 
3980 	l_TO_Total_Revenue			NUMBER:=0;
3981 	l_TO_Total_Cost			NUMBER:=0;
3982 	l_TO_Total_Forecast_Revenue	NUMBER:=0;
3983 	l_TO_Total_Forecast_Cost		NUMBER:=0;
3984 	l_TO_Total_Margin			NUMBER:=0;
3985 
3986 	l_TO_CT_Total_Revenue		NUMBER:=0;
3987 	l_TO_CT_Total_Cost			NUMBER:=0;
3988 	l_TO_CT_Total_Forecast_Revenue	NUMBER:=0;
3989 	l_TO_CT_Total_Forecast_Cost	NUMBER:=0;
3990 	l_TO_CT_Total_Margin		NUMBER:=0;
3991 
3992 	l_Top_Org_Index			    NUMBER;
3993 	l_Top_Organization_Name		VARCHAR2(240);
3994 
3995         l_Convert_Classification        VARCHAR2(1);
3996         l_Convert_Expenditure_Type      VARCHAR2(1);
3997         l_Convert_Event_Revenue_Type    VARCHAR2(1);
3998         l_Convert_Work_Type             VARCHAR2(1);
3999 
4000 	l_curr_record_type_id           NUMBER:= 1;
4001 /*
4002 **        -- PL/SQL Declaration
4003 */
4004 	l_lines_tab		PJI_REP_PPSUM_TBL := PJI_REP_PPSUM_TBL();
4005 
4006 
4007 BEGIN
4008     BEGIN
4009 	    SELECT report_cost_type
4010 		    INTO G_Report_Cost_Type
4011 		    FROM pji_system_settings;
4012 	    EXCEPTION
4013 	    WHEN NO_DATA_FOUND THEN
4014 	    	G_Report_Cost_Type:='RC';
4015     END;
4016 
4017 /*
4018 **  Place a call to all the parse API's which parse the
4019 **  parameters passed by PMV and populate all the
4020 **  temporary tables.
4021 */
4022 
4023 	PJI_PMV_ENGINE.Convert_Operating_Unit(P_OPERATING_UNIT_IDS   => p_Operating_Unit
4024                                                 , P_VIEW_BY            => p_View_BY
4025                                               );
4026 
4027 
4028 	PJI_PMV_ENGINE.Convert_Organization(P_TOP_ORGANIZATION_ID  => p_Organization
4029                                               , P_VIEW_BY            => p_View_BY
4030 							    , p_Top_Organization_Name => l_Top_Organization_Name
4031                                             );
4032 
4033 
4034 	IF p_Time_Comparison_Type <> 'BUDGET' THEN
4035 		PJI_PMV_ENGINE.Convert_Time(P_AS_OF_DATE    => p_As_of_Date
4036       	                                , P_PERIOD_TYPE  =>  p_Period_Type
4037             	                          , P_VIEW_BY      =>  p_View_By
4038                   	                    , P_PARSE_PRIOR  =>  NULL
4039                         	              , P_REPORT_TYPE  =>  'DBI'
4040                               	        , P_COMPARATOR   =>  p_Time_Comparison_Type
4041                                     	  , P_PARSE_ITD    => NULL
4042 	                                      , P_FULL_PERIOD_FLAG => 'Y'
4043       	                              );
4044 	ELSE
4045 		PJI_PMV_ENGINE.Convert_Time(P_AS_OF_DATE    => p_As_of_Date
4046       	                                , P_PERIOD_TYPE  =>  p_Period_Type
4047             	                          , P_VIEW_BY      =>  p_View_By
4048                   	                    , P_PARSE_PRIOR  =>  NULL
4049                         	              , P_REPORT_TYPE  =>  NULL
4050                               	        , P_COMPARATOR   =>  NULL
4051                                     	  , P_PARSE_ITD    =>  NULL
4052 	                                      , P_FULL_PERIOD_FLAG => 'Y'
4053       	                              );
4054 	END IF;
4055 
4056       l_Convert_Classification := PJI_PMV_ENGINE.Convert_Classification(p_Classifications, p_Class_Codes, p_View_BY);
4057       l_Convert_Expenditure_Type := PJI_PMV_ENGINE.Convert_Expenditure_Type(p_Expenditure_Category, p_Expenditure_Type, p_View_BY);
4058       l_Convert_Event_Revenue_Type := PJI_PMV_ENGINE.Convert_Event_Revenue_Type(p_Revenue_Category, p_Revenue_Type, p_View_BY );
4059       l_Convert_Work_Type := PJI_PMV_ENGINE.Convert_Work_Type(p_Work_Type, p_View_BY);
4060 	l_curr_record_type_id:=PJI_PMV_ENGINE.Convert_Currency_Record_Type(p_Currency_Type);
4061 
4062 /*
4063 ** -- Conditionally Processing from different facts  --------------------------------+
4064 */
4065 
4066 
4067 /*
4068 **		 Code the SQL statement for all of the following conditions
4069 **		 1. Current Year Actuals and Forecast
4070 **		 2. Prior Year Actuals and Forecast
4071 **               3. Prior Period Actuals and Forecast
4072 **              4. Budget Actuals and Forecast
4073 **
4074 **              Prior Year and Period and Budget amounts will be stored in the
4075 **              equivalent Compare-To (CT) columns. Compare-To budget amounts
4076 **                are always CURR_BGT amounts.
4077 **
4078 **
4079 **               UNION ALLs conditionally create zero amount records for all OUs and organizations
4080 **                 class/codes.
4081 **                 1) The Org select forces creates OU and organization rows.
4082 **                 2) The Class/Code select creates OU and organization rows as well as class/code
4083 **                    rows. The OU/organization forced rows are required because the user can
4084 **                    VIEWBY OU/Organization and filter by Class/Code.
4085 **
4086 **		 Bulk-Collect the output into a pl/sql table to be returned to
4087 **		 pmv.
4088 */
4089 
4090 
4091 /*
4092 ** ORG Processing ---------------------------------------------------+
4093 */
4094 
4095 /* -----------------------------------  Case 1 truth table   -------------------------------------  */
4096 
4097         IF (l_Convert_Classification = 'N')
4098          and (l_Convert_Expenditure_Type = 'N')
4099          and (l_Convert_Event_Revenue_Type = 'N')
4100          and (l_Convert_Work_Type = 'N')
4101           THEN
4102 
4103 
4104             SELECT PJI_REP_PPSUM(ORG_ID
4105                                  , ORGANIZATION_ID
4106                                  , PROJECT_CLASS_ID
4107 				 , EXPENDITURE_CATEGORY
4108                                  , EXPENDITURE_TYPE_ID
4109                                  , REVENUE_CATEGORY
4110                                  , REVENUE_TYPE_ID
4111                                  , WORK_TYPE_ID
4112                                  , SUM(REVENUE)
4113                                  , SUM(BURDENED_COST)
4114                                  , SUM(FORECAST_REVENUE)
4115                                  , SUM(FORECAST_BURDENED_COST)
4116                                  , SUM(CT_REVENUE)
4117                                  , SUM(CT_BURDENED_COST)
4118                                  , SUM(CT_FORECAST_REVENUE)
4119                                  , SUM(CT_FORECAST_BURDENED_COST)
4120 					   , 0, 0, 0, 0, 0, 0, 0, 0, 0, 0
4121 					   , 0, 0, 0, 0, 0, 0, 0, 0, 0, 0
4122 					   , 0, 0, 0, 0, 0, 0, 0, 0, 0, 0
4123 					   , 0, 0, 0, 0, 0, 0, 0, 0, 0, 0
4124 					 )
4125            BULK COLLECT INTO l_lines_tab
4126            FROM
4127 	      ( SELECT /*+ ORDERED */
4128                                  HOU.NAME                   AS ORG_ID
4129                                  , HORG.NAME                AS ORGANIZATION_ID
4130                                  , '-1'                     AS PROJECT_CLASS_ID
4131                                  , '-1'                     AS EXPENDITURE_CATEGORY
4132                                  , '-1'                     AS EXPENDITURE_TYPE_ID
4133                                  , '-1'                     AS REVENUE_CATEGORY
4134                                  , '-1'                     AS REVENUE_TYPE_ID
4135                                  , '-1'                     AS WORK_TYPE_ID
4136                                  , DECODE(TIME.amount_type,1,REVENUE,0)                  AS REVENUE
4137                                  , DECODE(TIME.amount_type,1,
4138                                         DECODE(G_Report_Cost_Type,  'BC', fct.burdened_cost,
4139                                                                     'RC', fct.raw_cost, 0),0)            AS BURDENED_COST
4140                                  , DECODE(TIME.amount_type,2,FORECAST_REVENUE,0)         AS FORECAST_REVENUE
4141                                  , DECODE(TIME.amount_type,2,
4142                                         DECODE(G_Report_Cost_Type,  'BC', fct.forecast_burdened_cost,
4143                                                                     'RC', fct.forecast_raw_cost, 0),0)   AS
4144 
4145 FORECAST_BURDENED_COST
4146                                  , 0                        AS CT_REVENUE
4147                                  , 0                        AS CT_BURDENED_COST
4148                                  , 0                        AS CT_FORECAST_REVENUE
4149                                  , 0                        AS CT_FORECAST_BURDENED_COST
4150 		FROM
4151 			PJI_PMV_TIME_DIM_TMP TIME
4152 			, PJI_PMV_ORGZ_DIM_TMP HORG
4153 			, PJI_FP_ORGO_F_MV fct
4154 			, PJI_PMV_ORG_DIM_TMP HOU
4155 
4156 		WHERE
4157 			fct.org_id = hou.id
4158 				AND FCT.ORGANIZATION_ID = HORG.ID
4159 				AND FCT.TIME_ID = TIME.ID
4160 				AND TIME.ID IS NOT NULL
4161 				AND FCT.PERIOD_TYPE_ID = TIME.PERIOD_TYPE
4162             	AND FCT.CALENDAR_TYPE = TIME.CALENDAR_TYPE
4163 				AND bitand(fct.curr_record_type_id, l_curr_record_type_id) = l_curr_record_type_id
4164                 UNION ALL -- CURRENT Approved Budgets
4165                 SELECT /*+ ORDERED */
4166                                  HOU.NAME                   AS ORG_ID
4167                                  , HORG.NAME                AS ORGANIZATION_ID
4168                                  , '-1'                     AS PROJECT_CLASS_ID
4169                                  , '-1'                     AS EXPENDITURE_CATEGORY
4170                                  , '-1'                     AS EXPENDITURE_TYPE_ID
4171                                  , '-1'                     AS REVENUE_CATEGORY
4172                                  , '-1'                     AS REVENUE_TYPE_ID
4173                                  , '-1'                     AS WORK_TYPE_ID
4174                                  , 0                        AS REVENUE
4175                                  , 0                        AS BURDENED_COST
4176                                  , 0                        AS FORECAST_REVENUE
4177                                  , 0                        AS FORECAST_BURDENED_COST
4178                                  , DECODE(TIME.amount_type,2,CURR_BGT_REVENUE,0)         AS CT_REVENUE
4179                                  , DECODE(TIME.amount_type,2,
4180                                  DECODE(G_Report_Cost_Type, 'BC', fct.curr_bgt_burdened_cost,
4181                                                             'RC', fct.curr_bgt_raw_cost, 0)
4182                                                                     ,0)   AS CT_BURDENED_COST
4183                                  , DECODE(TIME.amount_type,2,CURR_BGT_REVENUE,0)         AS CT_FORECAST_REVENUE
4184                                  , DECODE(TIME.amount_type,2,
4185                                  DECODE(G_Report_Cost_Type, 'BC', fct.curr_bgt_burdened_cost,
4186                                                             'RC', fct.curr_bgt_raw_cost, 0)
4187                                                                     ,0)   AS CT_FORECAST_BURDENED_COST
4188 		FROM
4189 			PJI_PMV_TIME_DIM_TMP TIME
4190 				, PJI_PMV_ORGZ_DIM_TMP HORG
4191 				, PJI_FP_ORGO_F_MV fct
4192 				, PJI_PMV_ORG_DIM_TMP HOU
4193 		WHERE
4194 			fct.org_id = hou.id
4195 				AND FCT.ORGANIZATION_ID = HORG.ID
4196 				AND FCT.TIME_ID = TIME.ID
4197 				AND TIME.ID IS NOT NULL
4198 				AND FCT.PERIOD_TYPE_ID = TIME.PERIOD_TYPE
4199             	AND FCT.CALENDAR_TYPE = TIME.CALENDAR_TYPE
4200 				AND bitand(fct.curr_record_type_id, l_curr_record_type_id) = l_curr_record_type_id
4201                 and p_Time_Comparison_Type = 'BUDGET'
4202 		UNION ALL -- PRIOR Actuals
4203                 SELECT /*+ ORDERED */
4204                                  HOU.NAME                   AS ORG_ID
4205                                  , HORG.NAME                AS ORGANIZATION_ID
4206                                  , '-1'                     AS PROJECT_CLASS_ID
4207                                  , '-1'                     AS EXPENDITURE_CATEGORY
4208                                  , '-1'                     AS EXPENDITURE_TYPE_ID
4209                                  , '-1'                     AS REVENUE_CATEGORY
4210                                  , '-1'                     AS REVENUE_TYPE_ID
4211                                  , '-1'                     AS WORK_TYPE_ID
4212                                  , 0                        AS REVENUE
4213                                  , 0                        AS BURDENED_COST
4214                                  , 0                        AS FORECAST_REVENUE
4215                                  , 0                        AS FORECAST_BURDENED_COST
4216                                  , DECODE(TIME.amount_type,1,REVENUE,0)                  AS CT_REVENUE
4217                                  , DECODE(TIME.amount_type,1,
4218                                  DECODE(G_Report_Cost_Type, 'BC', fct.burdened_cost,
4219                                                             'RC', fct.raw_cost, 0),0)    AS CT_BURDENED_COST
4220                                  , DECODE(TIME.amount_type,2,FORECAST_REVENUE,0)         AS CT_FORECAST_REVENUE
4221                                  , DECODE(TIME.amount_type,2,
4222                                  DECODE(G_Report_Cost_Type, 'BC', fct.forecast_burdened_cost,
4223                                                             'RC', fct.forecast_raw_cost, 0),0)   AS CT_FORECAST_BURDENED_COST
4224 		FROM
4225 				PJI_PMV_TCMP_DIM_TMP TIME
4226 				, PJI_PMV_ORGZ_DIM_TMP HORG
4227 				, PJI_FP_ORGO_F_MV fct
4228 				, PJI_PMV_ORG_DIM_TMP HOU
4229 		WHERE
4230 			fct.org_id = hou.id
4231 				AND FCT.ORGANIZATION_ID = HORG.ID
4232 				AND FCT.TIME_ID = TIME.ID
4233 				AND TIME.ID IS NOT NULL
4234 				AND FCT.PERIOD_TYPE_ID = TIME.PERIOD_TYPE
4235                 AND FCT.CALENDAR_TYPE = TIME.CALENDAR_TYPE
4236 				AND bitand(fct.curr_record_type_id, l_curr_record_type_id) = l_curr_record_type_id
4237                 and p_Time_Comparison_Type <> 'BUDGET'
4238 		UNION ALL -- FORCE Creation of Org rows
4239                 SELECT          HOU.NAME                    AS ORG_ID
4240                                  , '-1'                     AS ORGANIZATION_ID
4241                                  , '-1'                     AS PROJECT_CLASS_ID
4242                                  , '-1'                     AS EXPENDITURE_CATEGORY
4243                                  , '-1'                     AS EXPENDITURE_TYPE_ID
4244                                 , '-1'                     AS REVENUE_CATEGORY
4245                                  , '-1'                     AS REVENUE_TYPE_ID
4246                                  , '-1'                     AS WORK_TYPE_ID
4247                                  , 0                        AS REVENUE
4248                                  , 0                        AS BURDENED_COST
4249                                  , 0                        AS FORECAST_REVENUE
4250                                  , 0                        AS FORECAST_BURDENED_COST
4251                                  , 0                        AS CT_REVENUE
4252                                  , 0                        AS CT_BURDENED_COST
4253                                  , 0                        AS CT_FORECAST_REVENUE
4254                                  , 0                        AS CT_FORECAST_BURDENED_COST
4255 		FROM	 PJI_PMV_ORG_DIM_TMP HOU
4256 		WHERE    HOU.NAME <> '-1'
4257                 UNION ALL  -- FORCE Creation of Organization Rows
4258                 SELECT           '-1'                       AS ORG_ID
4259                                  , HORG.NAME                AS ORGANIZATION_ID
4260                                  , '-1'                     AS PROJECT_CLASS_ID
4261                                  , '-1'                     AS EXPENDITURE_CATEGORY
4262                                  , '-1'                     AS EXPENDITURE_TYPE_ID
4263                                  , '-1'                     AS REVENUE_CATEGORY
4264                                  , '-1'                     AS REVENUE_TYPE_ID
4265                                  , '-1'                     AS WORK_TYPE_ID
4266                                  , 0                        AS REVENUE
4267                                  , 0                        AS BURDENED_COST
4268                                  , 0                        AS FORECAST_REVENUE
4269                                  , 0                        AS FORECAST_BURDENED_COST
4270                                  , 0                        AS CT_REVENUE
4271                                  , 0                        AS CT_BURDENED_COST
4272                                  , 0                        AS CT_FORECAST_REVENUE
4273                                  , 0                        AS CT_FORECAST_BURDENED_COST
4274 		FROM	 PJI_PMV_ORGZ_DIM_TMP HORG
4275 		WHERE    HORG.NAME <> '-1'
4276                 )
4277             GROUP BY ORG_ID, ORGANIZATION_ID, PROJECT_CLASS_ID, EXPENDITURE_CATEGORY,EXPENDITURE_TYPE_ID,REVENUE_CATEGORY,
4278 	             REVENUE_TYPE_ID, WORK_TYPE_ID;
4279 
4280 
4281 
4282 
4283 
4284 /*
4285 ** -- PROJECT CLASSIFICATION Processing ---------------------------------------------------+
4286 */
4287 
4288 
4289 /* -----------------------------------  Case 2 truth table   -------------------------------------  */
4290 
4291         ELSIF (l_Convert_Expenditure_Type = 'N')
4292          and (l_Convert_Event_Revenue_Type = 'N')
4293          and (l_Convert_Work_Type = 'N')
4294 
4295           THEN
4296 
4297             SELECT PJI_REP_PPSUM(ORG_ID
4298                                  , ORGANIZATION_ID
4299                                  , PROJECT_CLASS_ID
4300 				 , EXPENDITURE_CATEGORY
4301                                  , EXPENDITURE_TYPE_ID
4302                                  , REVENUE_CATEGORY
4303                                  , REVENUE_TYPE_ID
4304                                  , WORK_TYPE_ID
4305                                  , SUM(REVENUE)
4306                                  , SUM(BURDENED_COST)
4307                                  , SUM(FORECAST_REVENUE)
4308                                  , SUM(FORECAST_BURDENED_COST)
4309                                  , SUM(CT_REVENUE)
4310                                  , SUM(CT_BURDENED_COST)
4311                                  , SUM(CT_FORECAST_REVENUE)
4312                                  , SUM(CT_FORECAST_BURDENED_COST)
4313 					   , 0, 0, 0, 0, 0, 0, 0, 0, 0, 0
4314 					   , 0, 0, 0, 0, 0, 0, 0, 0, 0, 0
4315 					   , 0, 0, 0, 0, 0, 0, 0, 0, 0, 0
4316 					   , 0, 0, 0, 0, 0, 0, 0, 0, 0, 0
4317 					 )
4318            BULK COLLECT INTO l_lines_tab
4319            FROM
4320 	      ( SELECT /*+ ORDERED */
4321                                  HOU.NAME                   AS ORG_ID
4322                                  , HORG.NAME                AS ORGANIZATION_ID
4323                                  , CLS.NAME                 AS PROJECT_CLASS_ID
4324                                  , '-1'                     AS EXPENDITURE_CATEGORY
4325                                  , '-1'                     AS EXPENDITURE_TYPE_ID
4326                                  , '-1'                     AS REVENUE_CATEGORY
4327                                  , '-1'                     AS REVENUE_TYPE_ID
4328                                  , '-1'                     AS WORK_TYPE_ID
4329                                  , DECODE(TIME.amount_type,1,REVENUE, 0)                  AS REVENUE
4330                                  , DECODE(TIME.amount_type,1,
4331                                  DECODE(G_Report_Cost_Type, 'BC', fct.burdened_cost,
4332                                                             'RC', fct.raw_cost, 0), 0)    AS BURDENED_COST
4333                                  , DECODE(TIME.amount_type,2,FORECAST_REVENUE, 0)         AS FORECAST_REVENUE
4334                                  , DECODE(TIME.amount_type,2,
4335                                  DECODE(G_Report_Cost_Type, 'BC', fct.forecast_burdened_cost,
4336                                                             'RC', fct.forecast_raw_cost, 0), 0)   AS FORECAST_BURDENED_COST
4337                                  , 0                        AS CT_REVENUE
4338                                  , 0                        AS CT_BURDENED_COST
4339                                  , 0                        AS CT_FORECAST_REVENUE
4340                                  , 0                        AS CT_FORECAST_BURDENED_COST
4341 		FROM
4342 			PJI_PMV_TIME_DIM_TMP TIME
4343 			, PJI_PMV_ORGZ_DIM_TMP HORG
4344 			, PJI_PMV_CLS_DIM_TMP CLS
4345 			, PJI_FP_CLSO_F_MV fct
4346 			, PJI_PMV_ORG_DIM_TMP HOU
4347 		WHERE
4348 			fct.project_org_id = hou.id
4349 				AND FCT.project_ORGANIZATION_ID = HORG.ID
4350 				AND FCT.TIME_ID = TIME.ID
4351 				AND TIME.ID IS NOT NULL
4352 				AND FCT.PERIOD_TYPE_ID = TIME.PERIOD_TYPE
4353                 AND FCT.CALENDAR_TYPE = TIME.CALENDAR_TYPE
4354 				AND bitand(fct.curr_record_type_id, l_curr_record_type_id) = l_curr_record_type_id
4355                 and fct.project_class_id = CLS.id
4356                 UNION ALL -- CURRENT Approved Budgets
4357                 SELECT /*+ ORDERED */
4358                                  HOU.NAME                   AS ORG_ID
4359                                  , HORG.NAME                AS ORGANIZATION_ID
4360                                  , CLS.NAME                 AS PROJECT_CLASS_ID
4361                                  , '-1'                     AS EXPENDITURE_CATEGORY
4362                                  , '-1'                     AS EXPENDITURE_TYPE_ID
4363                                  , '-1'                     AS REVENUE_CATEGORY
4364                                  , '-1'                     AS REVENUE_TYPE_ID
4365                                  , '-1'                     AS WORK_TYPE_ID
4366                                  , 0                        AS REVENUE
4367                                  , 0                        AS BURDENED_COST
4368                                  , 0                        AS FORECAST_REVENUE
4369                                  , 0                        AS FORECAST_BURDENED_COST
4370                                  , DECODE(TIME.amount_type,2,CURR_BGT_REVENUE, 0)         AS CT_REVENUE
4371                                  , DECODE(TIME.amount_type,2,
4372                                  DECODE(G_Report_Cost_Type, 'BC', fct.curr_bgt_burdened_cost,
4373                                                             'RC', fct.curr_bgt_raw_cost, 0), 0)   AS CT_BURDENED_COST
4374                                  , DECODE(TIME.amount_type,2,CURR_BGT_REVENUE, 0)         AS CT_FORECAST_REVENUE
4375                                  , DECODE(TIME.amount_type,2,
4376                                  DECODE(G_Report_Cost_Type, 'BC', fct.curr_bgt_burdened_cost,
4377                                                             'RC', fct.curr_bgt_raw_cost, 0), 0)   AS
4378 
4379 CT_FORECAST_BURDENED_COST
4380 		FROM
4381 			PJI_PMV_TIME_DIM_TMP TIME
4382 			, PJI_PMV_ORGZ_DIM_TMP HORG
4383 			, PJI_PMV_CLS_DIM_TMP CLS
4384             , PJI_FP_CLSO_F_MV fct
4385 			, PJI_PMV_ORG_DIM_TMP HOU
4386 		WHERE
4387 			fct.project_org_id = hou.id
4388 				AND FCT.project_ORGANIZATION_ID = HORG.ID
4389 				AND FCT.TIME_ID = TIME.ID
4390 				AND TIME.ID IS NOT NULL
4391 				AND FCT.PERIOD_TYPE_ID = TIME.PERIOD_TYPE
4392              	AND FCT.CALENDAR_TYPE = TIME.CALENDAR_TYPE
4393 				AND bitand(fct.curr_record_type_id, l_curr_record_type_id) = l_curr_record_type_id
4394                 and fct.project_class_id = CLS.id
4395                 and p_Time_Comparison_Type = 'BUDGET'
4396 		UNION ALL -- PRIOR Actuals
4397                 SELECT /*+ ORDERED */
4398                                  HOU.NAME                   AS ORG_ID
4399                                  , HORG.NAME                AS ORGANIZATION_ID
4400                                  , CLS.NAME                 AS PROJECT_CLASS_ID
4401                                  , '-1'                     AS EXPENDITURE_CATEGORY
4402                                  , '-1'                     AS EXPENDITURE_TYPE_ID
4403                                  , '-1'                     AS REVENUE_CATEGORY
4404                                  , '-1'                     AS REVENUE_TYPE_ID
4405                                  , '-1'                     AS WORK_TYPE_ID
4406                                  , 0                        AS REVENUE
4407                                  , 0                        AS BURDENED_COST
4408                                  , 0                        AS FORECAST_REVENUE
4409                                  , 0                        AS FORECAST_BURDENED_COST
4410                                  , DECODE(TIME.amount_type,1,REVENUE, 0)                  AS CT_REVENUE
4411                                  , DECODE(TIME.amount_type,1,
4412                                  DECODE(G_Report_Cost_Type, 'BC', fct.burdened_cost,
4413                                                             'RC', fct.raw_cost, 0), 0)            AS CT_BURDENED_COST
4414                                  , DECODE(TIME.amount_type,2,FORECAST_REVENUE, 0)         AS CT_FORECAST_REVENUE
4415                                  , DECODE(TIME.amount_type,2,
4416                                  DECODE(G_Report_Cost_Type, 'BC', fct.forecast_burdened_cost,
4417                                                             'RC', fct.forecast_raw_cost, 0), 0)   AS
4418 
4419 CT_FORECAST_BURDENED_COST
4420 		FROM
4421 				PJI_PMV_TCMP_DIM_TMP TIME
4422                 , PJI_PMV_ORGZ_DIM_TMP HORG
4423 				, PJI_PMV_CLS_DIM_TMP CLS
4424 				, PJI_FP_CLSO_F_MV fct
4425 				, PJI_PMV_ORG_DIM_TMP HOU
4426 		WHERE
4427 			fct.project_org_id = hou.id
4428 				AND FCT.project_ORGANIZATION_ID = HORG.ID
4429 				AND FCT.TIME_ID = TIME.ID
4430 				AND TIME.ID IS NOT NULL
4431 				AND FCT.PERIOD_TYPE_ID = TIME.PERIOD_TYPE
4432             	AND FCT.CALENDAR_TYPE = TIME.CALENDAR_TYPE
4433 				AND bitand(fct.curr_record_type_id, l_curr_record_type_id) = l_curr_record_type_id
4434                 and fct.project_class_id = CLS.id
4435                 and p_Time_Comparison_Type <> 'BUDGET'
4436 		UNION ALL  -- FORCE Creation of Org Rows
4437                 SELECT          HOU.NAME                    AS ORG_ID
4438                                  , '-1'                     AS ORGANIZATION_ID
4439                                  , '-1'                     AS PROJECT_CLASS_ID
4440                                  , '-1'                     AS EXPENDITURE_CATEGORY
4441                                  , '-1'                     AS EXPENDITURE_TYPE_ID
4442                                  , '-1'                     AS REVENUE_CATEGORY
4443                                  , '-1'                     AS REVENUE_TYPE_ID
4444                                  , '-1'                     AS WORK_TYPE_ID
4445                                  , 0                        AS REVENUE
4446                                  , 0                        AS BURDENED_COST
4447                                  , 0                        AS FORECAST_REVENUE
4448                                  , 0                        AS FORECAST_BURDENED_COST
4449                                  , 0                        AS CT_REVENUE
4450                                  , 0                        AS CT_BURDENED_COST
4451                                  , 0                        AS CT_FORECAST_REVENUE
4452                                  , 0                        AS CT_FORECAST_BURDENED_COST
4453 		FROM	PJI_PMV_ORG_DIM_TMP HOU
4454 		WHERE   HOU.NAME <> '-1'
4455                 UNION ALL -- FORCE Creation of Organization Rows
4456                 SELECT           '-1'                       AS ORG_ID
4457                                  , HORG.NAME                AS ORGANIZATION_ID
4458                                  , '-1'                     AS PROJECT_CLASS_ID
4459                                  , '-1'                     AS EXPENDITURE_CATEGORY
4460                                  , '-1'                     AS EXPENDITURE_TYPE_ID
4461                                  , '-1'                     AS REVENUE_CATEGORY
4462                                  , '-1'                     AS REVENUE_TYPE_ID
4463                                  , '-1'                     AS WORK_TYPE_ID
4464                                  , 0                        AS REVENUE
4465                                  , 0                        AS BURDENED_COST
4466                                  , 0                        AS FORECAST_REVENUE
4467                                  , 0                        AS FORECAST_BURDENED_COST
4468                                  , 0                        AS CT_REVENUE
4469                                  , 0                        AS CT_BURDENED_COST
4470                                  , 0                        AS CT_FORECAST_REVENUE
4471                                  , 0                        AS CT_FORECAST_BURDENED_COST
4472 		FROM	 PJI_PMV_ORGZ_DIM_TMP HORG
4473 		WHERE    HORG.NAME <> '-1'
4474                 UNION ALL -- FORCE Creation of Class/Code Rows
4475                 SELECT           '-1'                       AS ORG_ID
4476                                  , '-1'                     AS ORGANIZATION_ID
4477                                  , NAME                     AS PROJECT_CLASS_ID
4478                                  , '-1'                     AS EXPENDITURE_CATEGORY
4479                                  , '-1'                     AS EXPENDITURE_TYPE_ID
4480                                  , '-1'                     AS REVENUE_CATEGORY
4481                                  , '-1'                     AS REVENUE_TYPE_ID
4482                                  , '-1'                     AS WORK_TYPE_ID
4483                                  , 0                        AS REVENUE
4484                                  , 0                        AS BURDENED_COST
4485                                  , 0                        AS FORECAST_REVENUE
4486                                  , 0                        AS FORECAST_BURDENED_COST
4487                                  , 0                        AS CT_REVENUE
4488                                  , 0                        AS CT_BURDENED_COST
4489                                  , 0                        AS CT_FORECAST_REVENUE
4490                                  , 0                        AS CT_FORECAST_BURDENED_COST
4491 		FROM	 PJI_PMV_CLS_DIM_TMP HORG
4492 		WHERE    HORG.NAME <> '-1'
4493                 )
4494            WHERE 1 = 1
4495             GROUP BY ORG_ID, ORGANIZATION_ID, PROJECT_CLASS_ID, EXPENDITURE_CATEGORY,EXPENDITURE_TYPE_ID,REVENUE_CATEGORY,
4496 	             REVENUE_TYPE_ID, WORK_TYPE_ID;
4497 
4498 /*
4499 ** Expenditure or Revenue Type Processing ---------------------------------------------------+
4500 */
4501 
4502 /* -----------------------------------  Case 3 truth table   -------------------------------------  */
4503 
4504         ELSIF (l_Convert_Classification = 'N')
4505          and (l_Convert_Work_Type = 'N')
4506           THEN
4507 
4508             SELECT PJI_REP_PPSUM(ORG_ID
4509                                  , ORGANIZATION_ID
4510                                  , PROJECT_CLASS_ID
4511 				 , EXPENDITURE_CATEGORY
4512                                  , EXPENDITURE_TYPE_ID
4513                                  , REVENUE_CATEGORY
4514                                  , REVENUE_TYPE_ID
4515                                  , WORK_TYPE_ID
4516                                  , SUM(REVENUE)
4517                                  , SUM(BURDENED_COST)
4518                                  , SUM(FORECAST_REVENUE)
4519                                  , SUM(FORECAST_BURDENED_COST)
4520                                  , SUM(CT_REVENUE)
4521                                  , SUM(CT_BURDENED_COST)
4522                                  , SUM(CT_FORECAST_REVENUE)
4523                                  , SUM(CT_FORECAST_BURDENED_COST)
4524 					   , 0, 0, 0, 0, 0, 0, 0, 0, 0, 0
4525 					   , 0, 0, 0, 0, 0, 0, 0, 0, 0, 0
4526 					   , 0, 0, 0, 0, 0, 0, 0, 0, 0, 0
4527 					   , 0, 0, 0, 0, 0, 0, 0, 0, 0, 0
4528 					 )
4529            BULK COLLECT INTO l_lines_tab
4530            FROM
4531 	      ( SELECT /*+ ORDERED */
4532                                  HOU.NAME                   AS ORG_ID
4533                                  , HORG.NAME                AS ORGANIZATION_ID
4534                                  , '-1'                     AS PROJECT_CLASS_ID
4535                                  , decode(p_view_by, 'EC', ET.name, '-1')             AS EXPENDITURE_CATEGORY
4536                                  , decode(p_view_by, 'ET', ET.name, '-1')             AS EXPENDITURE_TYPE_ID
4537                                  , decode(p_view_by, 'RC', ET.name, '-1')             AS REVENUE_CATEGORY
4538                                  , decode(p_view_by, 'RT', ET.name, '-1')             AS REVENUE_TYPE_ID
4539                                  , '-1'                     AS WORK_TYPE_ID
4540                                  , DECODE(TIME.amount_type,1,REVENUE, 0)                  AS REVENUE
4541                                  , DECODE(TIME.amount_type,1,
4542                                  DECODE(G_Report_Cost_Type, 'BC', fct.burdened_cost,
4543                                                             'RC', fct.raw_cost, 0), 0)    AS BURDENED_COST
4544                                  , NULL         		AS FORECAST_REVENUE
4545                                  , NULL   			AS FORECAST_BURDENED_COST
4546                                  , 0                        AS CT_REVENUE
4547                                  , 0                        AS CT_BURDENED_COST
4548                                  , NULL                        AS CT_FORECAST_REVENUE
4549                                  , NULL                        AS CT_FORECAST_BURDENED_COST
4550 		FROM
4551 			PJI_PMV_TIME_DIM_TMP TIME
4552 			, PJI_PMV_ORGZ_DIM_TMP HORG
4553 			, PJI_PMV_ET_RT_DIM_TMP ET
4554 			, PJI_FP_ORGO_ET_F_MV fct
4555 			, PJI_PMV_ORG_DIM_TMP HOU
4556 		WHERE
4557 			fct.org_id = hou.id
4558 				AND FCT.ORGANIZATION_ID = HORG.ID
4559 				AND FCT.TIME_ID = TIME.ID
4560 				AND TIME.ID IS NOT NULL
4561 				AND FCT.PERIOD_TYPE_ID = TIME.PERIOD_TYPE
4562                 AND FCT.CALENDAR_TYPE = TIME.CALENDAR_TYPE
4563 				AND bitand(fct.curr_record_type_id, l_curr_record_type_id) = l_curr_record_type_id
4564                 and fct.exp_evt_type_id = ET.id
4565                 and ET.record_type = decode(l_Convert_Expenditure_Type,'Y','ET',l_Convert_Event_Revenue_Type,'Y','RT')
4566                 UNION ALL -- CURRENT Approved Budgets
4567                 SELECT /*+ ORDERED */
4568                                  HOU.NAME                   AS ORG_ID
4569                                  , HORG.NAME                AS ORGANIZATION_ID
4570                                  , '-1'                 AS PROJECT_CLASS_ID
4571                                  , decode(p_view_by, 'EC', ET.name, '-1')             AS EXPENDITURE_CATEGORY
4572                                  , decode(p_view_by, 'ET', ET.name, '-1')             AS EXPENDITURE_TYPE_ID
4573                                  , decode(p_view_by, 'RC', ET.name, '-1')             AS REVENUE_CATEGORY
4574                                  , decode(p_view_by, 'RT', ET.name, '-1')	      AS REVENUE_TYPE_ID
4575                                  , '-1'                     AS WORK_TYPE_ID
4576                                  , 0                        AS REVENUE
4577                                  , 0                        AS BURDENED_COST
4578                                  , NULL                        AS FORECAST_REVENUE
4579                                  , NULL                        AS FORECAST_BURDENED_COST
4580                                  , 0         		AS CT_REVENUE
4581                                  , 0			AS CT_BURDENED_COST
4582                                  , NULL		    	    AS CT_FORECAST_REVENUE
4583                                  , NULL                     AS CT_FORECAST_BURDENED_COST
4584 		FROM
4585 			PJI_PMV_TIME_DIM_TMP TIME
4586 			, PJI_PMV_ORGZ_DIM_TMP HORG
4587 			, PJI_PMV_ET_RT_DIM_TMP ET
4588 			, PJI_FP_ORGO_ET_F_MV fct
4589 			, PJI_PMV_ORG_DIM_TMP HOU
4590 		WHERE
4591 			fct.org_id = hou.id
4592 				AND FCT.ORGANIZATION_ID = HORG.ID
4593 				AND FCT.TIME_ID = TIME.ID
4594 				AND TIME.ID IS NOT NULL
4595 				AND FCT.PERIOD_TYPE_ID = TIME.PERIOD_TYPE
4596              	AND FCT.CALENDAR_TYPE = TIME.CALENDAR_TYPE
4597 				AND bitand(fct.curr_record_type_id, l_curr_record_type_id) = l_curr_record_type_id
4598                 and fct.exp_evt_type_id = ET.id
4599                 and ET.record_type = decode(l_Convert_Expenditure_Type,'Y','ET',l_Convert_Event_Revenue_Type,'Y','RT')
4600                 and p_Time_Comparison_Type = 'BUDGET'
4601 		UNION ALL -- PRIOR Actuals
4602                 SELECT /*+ ORDERED */
4603                                  HOU.NAME                   AS ORG_ID
4604                                  , HORG.NAME                AS ORGANIZATION_ID
4605                                  , '-1'                 AS PROJECT_CLASS_ID
4606                                  , decode(p_view_by, 'EC', ET.name, '-1')             AS EXPENDITURE_CATEGORY
4607                                  , decode(p_view_by, 'ET', ET.name, '-1')             AS EXPENDITURE_TYPE_ID
4608                                  , decode(p_view_by, 'RC', ET.name, '-1')              AS REVENUE_CATEGORY
4609                                  , decode(p_view_by, 'RT', ET.name, '-1')             AS REVENUE_TYPE_ID
4610                                  , '-1'                     AS WORK_TYPE_ID
4611                                  , 0                        AS REVENUE
4612                                  , 0                        AS BURDENED_COST
4613                                  , 0                        AS FORECAST_REVENUE
4614                                  , 0                        AS FORECAST_BURDENED_COST
4615                                  , DECODE(TIME.amount_type,1,REVENUE, 0)                  AS CT_REVENUE
4616                                  , DECODE(TIME.amount_type,1,
4617                                  DECODE(G_Report_Cost_Type, 'BC', fct.burdened_cost,
4618                                                             'RC', fct.raw_cost, 0), 0)            AS CT_BURDENED_COST
4619                                  , NULL         AS CT_FORECAST_REVENUE
4620                                  , NULL   	AS CT_FORECAST_BURDENED_COST
4621 		FROM
4622 			PJI_PMV_TCMP_DIM_TMP TIME
4623                 	, PJI_PMV_ORGZ_DIM_TMP HORG
4624 			, PJI_PMV_ET_RT_DIM_TMP ET
4625 			, PJI_FP_ORGO_ET_F_MV fct
4626 			, PJI_PMV_ORG_DIM_TMP HOU
4627 		WHERE
4628 			fct.org_id = hou.id
4629 				AND FCT.ORGANIZATION_ID = HORG.ID
4630 				AND FCT.TIME_ID = TIME.ID
4631 				AND TIME.ID IS NOT NULL
4632 				AND FCT.PERIOD_TYPE_ID = TIME.PERIOD_TYPE
4633             	AND FCT.CALENDAR_TYPE = TIME.CALENDAR_TYPE
4634 				AND bitand(fct.curr_record_type_id, l_curr_record_type_id) = l_curr_record_type_id
4635                 and fct.exp_evt_type_id = ET.id
4636                 and ET.record_type = decode(l_Convert_Expenditure_Type,'Y','ET',l_Convert_Event_Revenue_Type,'Y','RT')
4637                 and p_Time_Comparison_Type <> 'BUDGET'
4638 		UNION ALL  -- FORCE Creation of Org Rows
4639                 SELECT          HOU.NAME                    AS ORG_ID
4640                                  , '-1'                     AS ORGANIZATION_ID
4641                                  , '-1'                     AS PROJECT_CLASS_ID
4642                                  , '-1'                     AS EXPENDITURE_CATEGORY
4643                                  , '-1'                     AS EXPENDITURE_TYPE_ID
4644                                  , '-1'                     AS REVENUE_CATEGORY
4645                                  , '-1'                     AS REVENUE_TYPE_ID
4646                                  , '-1'                     AS WORK_TYPE_ID
4647                                  , 0                        AS REVENUE
4648                                  , 0                        AS BURDENED_COST
4649                                  , 0                        AS FORECAST_REVENUE
4650                                  , 0                        AS FORECAST_BURDENED_COST
4651                                  , 0                        AS CT_REVENUE
4652                                  , 0                        AS CT_BURDENED_COST
4653                                  , 0                        AS CT_FORECAST_REVENUE
4654                                  , 0                        AS CT_FORECAST_BURDENED_COST
4655 		FROM	PJI_PMV_ORG_DIM_TMP HOU
4656 		WHERE   HOU.NAME <> '-1'
4657                 UNION ALL -- FORCE Creation of Organization Rows
4658                 SELECT           '-1'                       AS ORG_ID
4659                                  , HORG.NAME                AS ORGANIZATION_ID
4660                                  , '-1'                     AS PROJECT_CLASS_ID
4661                                  , '-1'                     AS EXPENDITURE_CATEGORY
4662                                  , '-1'                     AS EXPENDITURE_TYPE_ID
4663                                  , '-1'                     AS REVENUE_CATEGORY
4664                                  , '-1'                     AS REVENUE_TYPE_ID
4665                                  , '-1'                     AS WORK_TYPE_ID
4666                                  , 0                        AS REVENUE
4667                                  , 0                        AS BURDENED_COST
4668                                  , NULL                        AS FORECAST_REVENUE
4669                                  , NULL                        AS FORECAST_BURDENED_COST
4670                                  , 0                        AS CT_REVENUE
4671                                  , 0                        AS CT_BURDENED_COST
4672                                  , 0                        AS CT_FORECAST_REVENUE
4673                                  , 0                        AS CT_FORECAST_BURDENED_COST
4674 		FROM	 PJI_PMV_ORGZ_DIM_TMP HORG
4675 		WHERE    HORG.NAME <> '-1'
4676                 UNION ALL -- FORCE Creation of Expenditure Category/Type Rows
4677                 SELECT           '-1'                       AS ORG_ID
4678                                  , '-1'                     AS ORGANIZATION_ID
4679                                  , '-1'                     AS PROJECT_CLASS_ID
4680                                  , decode(p_view_by, 'EC', ET.name, '-1')             AS EXPENDITURE_CATEGORY
4681                                  , decode(p_view_by, 'ET', ET.name, '-1')             AS EXPENDITURE_TYPE_ID
4682                                  , decode(p_view_by, 'RC', ET.name, '-1')              AS REVENUE_CATEGORY
4683                                  , decode(p_view_by, 'RT', ET.name, '-1')             AS REVENUE_TYPE_ID
4684                                  , '-1'                     AS WORK_TYPE_ID
4685                                  , 0                        AS REVENUE
4686                                  , 0                        AS BURDENED_COST
4687                                  , NULL                        AS FORECAST_REVENUE
4688                                  , NULL                        AS FORECAST_BURDENED_COST
4689                                  , 0                        AS CT_REVENUE
4690                                  , 0                        AS CT_BURDENED_COST
4691                                  , 0                        AS CT_FORECAST_REVENUE
4692                                  , 0                        AS CT_FORECAST_BURDENED_COST
4693 		FROM	 PJI_PMV_ET_RT_DIM_TMP ET
4694 		WHERE    ET.NAME <> '-1'
4695                 )
4696            WHERE 1 = 1
4697             GROUP BY ORG_ID, ORGANIZATION_ID, PROJECT_CLASS_ID, EXPENDITURE_CATEGORY,EXPENDITURE_TYPE_ID,REVENUE_CATEGORY,
4698 	             REVENUE_TYPE_ID, WORK_TYPE_ID;
4699 
4700 /*
4701 **  Work Type Processing ---------------------------------------------------+
4702 */
4703 
4704 /* -----------------------------------  Case 4 truth table   -------------------------------------  */
4705 
4706         ELSIF (l_Convert_Classification = 'N')
4707          and  (l_Convert_Expenditure_Type = 'N')
4708          and  (l_Convert_Event_Revenue_Type = 'N')
4709           THEN
4710 
4711             SELECT PJI_REP_PPSUM(ORG_ID
4712                                  , ORGANIZATION_ID
4713                                  , PROJECT_CLASS_ID
4714 				 , EXPENDITURE_CATEGORY
4715                                  , EXPENDITURE_TYPE_ID
4716                                  , REVENUE_CATEGORY
4717                                  , REVENUE_TYPE_ID
4718                                  , WORK_TYPE_ID
4719                                  , SUM(REVENUE)
4720                                  , SUM(BURDENED_COST)
4721                                  , SUM(FORECAST_REVENUE)
4722                                  , SUM(FORECAST_BURDENED_COST)
4723                                  , SUM(CT_REVENUE)
4724                                  , SUM(CT_BURDENED_COST)
4725                                  , SUM(CT_FORECAST_REVENUE)
4726                                  , SUM(CT_FORECAST_BURDENED_COST)
4727 					   , 0, 0, 0, 0, 0, 0, 0, 0, 0, 0
4728 					   , 0, 0, 0, 0, 0, 0, 0, 0, 0, 0
4729 					   , 0, 0, 0, 0, 0, 0, 0, 0, 0, 0
4730 					   , 0, 0, 0, 0, 0, 0, 0, 0, 0, 0
4731 					 )
4732            BULK COLLECT INTO l_lines_tab
4733            FROM
4734 	      ( SELECT /*+ ORDERED */
4735                                  HOU.NAME                   AS ORG_ID
4736                                  , HORG.NAME                AS ORGANIZATION_ID
4737                                  , '-1'                     AS PROJECT_CLASS_ID
4738                                  , '-1'             	    AS EXPENDITURE_CATEGORY
4739                                  , '-1'                     AS EXPENDITURE_TYPE_ID
4740                                  , '-1'                     AS REVENUE_CATEGORY
4741                                  , '-1'                     AS REVENUE_TYPE_ID
4742                                  , WT.NAME                     AS WORK_TYPE_ID
4743                                  , null                  AS REVENUE
4744                                  , DECODE(TIME.amount_type,1,
4745                                  DECODE(G_Report_Cost_Type, 'BC', fct.burdened_cost,
4746                                                             'RC', fct.raw_cost, 0), 0)    AS BURDENED_COST
4747                                  , NULL         		AS FORECAST_REVENUE
4748                                  , NULL   			AS FORECAST_BURDENED_COST
4749                                  , 0                        AS CT_REVENUE
4750                                  , 0                        AS CT_BURDENED_COST
4751                                  , NULL                        AS CT_FORECAST_REVENUE
4752                                  , NULL                        AS CT_FORECAST_BURDENED_COST
4753 		FROM
4754 			PJI_PMV_TIME_DIM_TMP TIME
4755 			, PJI_PMV_ORGZ_DIM_TMP HORG
4756 			, PJI_PMV_WT_DIM_TMP WT
4757 			, PJI_FP_ORGO_ET_WT_F_MV fct
4758 			, PJI_PMV_ORG_DIM_TMP HOU
4759 		WHERE
4760 			fct.org_id = hou.id
4761 				AND FCT.ORGANIZATION_ID = HORG.ID
4762 				AND FCT.TIME_ID = TIME.ID
4763 				AND TIME.ID IS NOT NULL
4764 				AND FCT.PERIOD_TYPE_ID = TIME.PERIOD_TYPE
4765                 AND FCT.CALENDAR_TYPE = TIME.CALENDAR_TYPE
4766 				AND bitand(fct.curr_record_type_id, l_curr_record_type_id) = l_curr_record_type_id
4767                 and fct.work_type_id = WT.id
4768                 UNION ALL -- CURRENT Approved Budgets
4769                 SELECT /*+ ORDERED */
4770                                  HOU.NAME                   AS ORG_ID
4771                                  , HORG.NAME                AS ORGANIZATION_ID
4772                                  , '-1'                 AS PROJECT_CLASS_ID
4773                                  , '-1'             AS EXPENDITURE_CATEGORY
4774                                  , '-1'             AS EXPENDITURE_TYPE_ID
4775                                  , '-1'                     AS REVENUE_CATEGORY
4776                                  , '-1'                     AS REVENUE_TYPE_ID
4777                                  , WT.NAME                     AS WORK_TYPE_ID
4778                                  , 0                        AS REVENUE
4779                                  , 0                        AS BURDENED_COST
4780                                  , NULL                        AS FORECAST_REVENUE
4781                                  , NULL                        AS FORECAST_BURDENED_COST
4782                                  , 0         		AS CT_REVENUE
4783                                  , 0			AS CT_BURDENED_COST
4784                                  , NULL		    	    AS CT_FORECAST_REVENUE
4785                                  , NULL                     AS CT_FORECAST_BURDENED_COST
4786 		FROM
4787 			PJI_PMV_TIME_DIM_TMP TIME
4788 			, PJI_PMV_ORGZ_DIM_TMP HORG
4789 			, PJI_PMV_WT_DIM_TMP WT
4790 			, PJI_FP_ORGO_ET_WT_F_MV fct
4791 			, PJI_PMV_ORG_DIM_TMP HOU
4792 		WHERE
4793 			fct.org_id = hou.id
4794 				AND FCT.ORGANIZATION_ID = HORG.ID
4795 				AND FCT.TIME_ID = TIME.ID
4796 				AND TIME.ID IS NOT NULL
4797 				AND FCT.PERIOD_TYPE_ID = TIME.PERIOD_TYPE
4798              	AND FCT.CALENDAR_TYPE = TIME.CALENDAR_TYPE
4799 				AND bitand(fct.curr_record_type_id, l_curr_record_type_id) = l_curr_record_type_id
4800                 and fct.work_type_id = WT.id
4801                 and p_Time_Comparison_Type = 'BUDGET'
4802 		UNION ALL -- PRIOR Actuals
4803                 SELECT /*+ ORDERED */
4804                                  HOU.NAME                   AS ORG_ID
4805                                  , HORG.NAME                AS ORGANIZATION_ID
4806                                  , '-1'                 AS PROJECT_CLASS_ID
4807                                  , '-1'             AS EXPENDITURE_CATEGORY
4808                                  , '-1'             AS EXPENDITURE_TYPE_ID
4809                                  , '-1'                     AS REVENUE_CATEGORY
4810                                  , '-1'                     AS REVENUE_TYPE_ID
4811                                  , WT.NAME                     AS WORK_TYPE_ID
4812                                  , 0                        AS REVENUE
4813                                  , 0                        AS BURDENED_COST
4814                                  , 0                        AS FORECAST_REVENUE
4815                                  , 0                        AS FORECAST_BURDENED_COST
4816                                  , null                  AS CT_REVENUE
4817                                  , DECODE(TIME.amount_type,1,
4818                                  DECODE(G_Report_Cost_Type, 'BC', fct.burdened_cost,
4819                                                             'RC', fct.raw_cost, 0), 0)            AS CT_BURDENED_COST
4820                                  , NULL         AS CT_FORECAST_REVENUE
4821                                  , NULL   	AS CT_FORECAST_BURDENED_COST
4822 		FROM
4823 			PJI_PMV_TCMP_DIM_TMP TIME
4824                 	, PJI_PMV_ORGZ_DIM_TMP HORG
4825 			, PJI_PMV_WT_DIM_TMP WT
4826 			, PJI_FP_ORGO_ET_WT_F_MV fct
4827 			, PJI_PMV_ORG_DIM_TMP HOU
4828 		WHERE
4829 			fct.org_id = hou.id
4830 				AND FCT.ORGANIZATION_ID = HORG.ID
4831 				AND FCT.TIME_ID = TIME.ID
4832 				AND TIME.ID IS NOT NULL
4833 				AND FCT.PERIOD_TYPE_ID = TIME.PERIOD_TYPE
4834             	AND FCT.CALENDAR_TYPE = TIME.CALENDAR_TYPE
4835 				AND bitand(fct.curr_record_type_id, l_curr_record_type_id) = l_curr_record_type_id
4836                 and fct.work_type_id = WT.id
4837                 and p_Time_Comparison_Type <> 'BUDGET'
4838 		UNION ALL  -- FORCE Creation of Org Rows
4839                 SELECT          HOU.NAME                    AS ORG_ID
4840                                  , '-1'                     AS ORGANIZATION_ID
4841                                  , '-1'                     AS PROJECT_CLASS_ID
4842                                  , '-1'                     AS EXPENDITURE_CATEGORY
4843                                  , '-1'                     AS EXPENDITURE_TYPE_ID
4844                                  , '-1'                     AS REVENUE_CATEGORY
4845                                  , '-1'                     AS REVENUE_TYPE_ID
4846                                  , '-1'                     AS WORK_TYPE_ID
4847                                  , 0                        AS REVENUE
4848                                  , 0                        AS BURDENED_COST
4849                                  , 0                        AS FORECAST_REVENUE
4850                                  , 0                        AS FORECAST_BURDENED_COST
4851                                  , 0                        AS CT_REVENUE
4852                                  , 0                        AS CT_BURDENED_COST
4853                                  , 0                        AS CT_FORECAST_REVENUE
4854                                  , 0                        AS CT_FORECAST_BURDENED_COST
4855 		FROM	PJI_PMV_ORG_DIM_TMP HOU
4856 		WHERE   HOU.NAME <> '-1'
4857                 UNION ALL -- FORCE Creation of Organization Rows
4858                 SELECT           '-1'                       AS ORG_ID
4859                                  , HORG.NAME                AS ORGANIZATION_ID
4860                                  , '-1'                     AS PROJECT_CLASS_ID
4861                                  , '-1'                     AS EXPENDITURE_CATEGORY
4862                                  , '-1'                     AS EXPENDITURE_TYPE_ID
4863                                  , '-1'                     AS REVENUE_CATEGORY
4864                                  , '-1'                     AS REVENUE_TYPE_ID
4865                                  , '-1'                     AS WORK_TYPE_ID
4866                                  , 0                        AS REVENUE
4867                                  , 0                        AS BURDENED_COST
4868                                  , NULL                        AS FORECAST_REVENUE
4869                                  , NULL                        AS FORECAST_BURDENED_COST
4870                                  , 0                        AS CT_REVENUE
4871                                  , 0                        AS CT_BURDENED_COST
4872                                  , 0                        AS CT_FORECAST_REVENUE
4873                                  , 0                        AS CT_FORECAST_BURDENED_COST
4874 		FROM	 PJI_PMV_ORGZ_DIM_TMP HORG
4875 		WHERE    HORG.NAME <> '-1'
4876                 UNION ALL -- FORCE Creation of Work Type Rows
4877                 SELECT           '-1'                       AS ORG_ID
4878                                  , '-1'                     AS ORGANIZATION_ID
4879                                  , '-1'                     AS PROJECT_CLASS_ID
4880                                  , '-1'             AS EXPENDITURE_CATEGORY
4881                                  , '-1'             AS EXPENDITURE_TYPE_ID
4882                                  , '-1'                     AS REVENUE_CATEGORY
4883                                  , '-1'                     AS REVENUE_TYPE_ID
4884                                  , WT.NAME                     AS WORK_TYPE_ID
4885                                  , 0                        AS REVENUE
4886                                  , 0                        AS BURDENED_COST
4887                                  , NULL                        AS FORECAST_REVENUE
4888                                  , NULL                        AS FORECAST_BURDENED_COST
4889                                  , 0                        AS CT_REVENUE
4890                                  , 0                        AS CT_BURDENED_COST
4891                                  , 0                        AS CT_FORECAST_REVENUE
4892                                  , 0                        AS CT_FORECAST_BURDENED_COST
4893 		FROM	 PJI_PMV_WT_DIM_TMP WT
4894 		WHERE    WT.NAME <> '-1'
4895                 )
4896            WHERE 1 = 1
4897             GROUP BY ORG_ID, ORGANIZATION_ID, PROJECT_CLASS_ID, EXPENDITURE_CATEGORY,EXPENDITURE_TYPE_ID,REVENUE_CATEGORY,
4898 	             REVENUE_TYPE_ID, WORK_TYPE_ID;
4899 
4900 /*
4901 ** Project classification and Expenditure or Revenue Type Processing ---------------------------------+
4902 */
4903 
4904 /* -----------------------------------  Case 5 truth table   -------------------------------------  */
4905 
4906         ELSIF (l_Convert_Work_Type = 'N')
4907           THEN
4908 
4909             SELECT PJI_REP_PPSUM(ORG_ID
4910                                  , ORGANIZATION_ID
4911                                  , PROJECT_CLASS_ID
4912 				 , EXPENDITURE_CATEGORY
4913                                  , EXPENDITURE_TYPE_ID
4914                                  , REVENUE_CATEGORY
4915                                  , REVENUE_TYPE_ID
4916                                  , WORK_TYPE_ID
4917                                  , SUM(REVENUE)
4918                                  , SUM(BURDENED_COST)
4919                                  , SUM(FORECAST_REVENUE)
4920                                  , SUM(FORECAST_BURDENED_COST)
4921                                  , SUM(CT_REVENUE)
4922                                  , SUM(CT_BURDENED_COST)
4923                                  , SUM(CT_FORECAST_REVENUE)
4924                                  , SUM(CT_FORECAST_BURDENED_COST)
4925 					   , 0, 0, 0, 0, 0, 0, 0, 0, 0, 0
4926 					   , 0, 0, 0, 0, 0, 0, 0, 0, 0, 0
4927 					   , 0, 0, 0, 0, 0, 0, 0, 0, 0, 0
4928 					   , 0, 0, 0, 0, 0, 0, 0, 0, 0, 0
4929 					 )
4930            BULK COLLECT INTO l_lines_tab
4931            FROM
4932 	      ( SELECT /*+ ORDERED */
4933                                  HOU.NAME                   AS ORG_ID
4934                                  , HORG.NAME                AS ORGANIZATION_ID
4935                                  , decode(p_view_by, 'CC', CLS.name, '-1')                     AS PROJECT_CLASS_ID
4936                                  , decode(p_view_by, 'EC', ET.name, '-1')             	      AS EXPENDITURE_CATEGORY
4937                                  , decode(p_view_by, 'ET', ET.name, '-1')                     AS EXPENDITURE_TYPE_ID
4938                                  , decode(p_view_by, 'RC', ET.name, '-1')             AS REVENUE_CATEGORY
4939                                  , decode(p_view_by, 'RT', ET.name, '-1')             AS REVENUE_TYPE_ID
4940                                  , '-1'                     AS WORK_TYPE_ID
4941                                  , DECODE(TIME.amount_type,1,REVENUE, 0)                  AS REVENUE
4942                                  , DECODE(TIME.amount_type,1,
4943                                  DECODE(G_Report_Cost_Type, 'BC', fct.burdened_cost,
4944                                                             'RC', fct.raw_cost, 0), 0)    AS BURDENED_COST
4945                                  , NULL         		AS FORECAST_REVENUE
4946                                  , NULL   			AS FORECAST_BURDENED_COST
4947                                  , 0                        AS CT_REVENUE
4948                                  , 0                        AS CT_BURDENED_COST
4949                                  , NULL                        AS CT_FORECAST_REVENUE
4950                                  , NULL                        AS CT_FORECAST_BURDENED_COST
4951 		FROM
4952 			PJI_PMV_TIME_DIM_TMP TIME
4953 			, PJI_PMV_ORGZ_DIM_TMP HORG
4954 			, PJI_PMV_CLS_DIM_TMP CLS
4955 			, PJI_PMV_ET_RT_DIM_TMP ET
4956 			, PJI_FP_CLSO_ET_F_MV fct
4957 			, PJI_PMV_ORG_DIM_TMP HOU
4958 		WHERE
4959 			fct.project_org_id = hou.id
4960 				AND FCT.PROJECT_ORGANIZATION_ID = HORG.ID
4961 				AND FCT.TIME_ID = TIME.ID
4962 				AND TIME.ID IS NOT NULL
4963 				AND FCT.PERIOD_TYPE_ID = TIME.PERIOD_TYPE
4964                 AND FCT.CALENDAR_TYPE = TIME.CALENDAR_TYPE
4965 				AND bitand(fct.curr_record_type_id, l_curr_record_type_id) = l_curr_record_type_id
4966                 and fct.project_class_id = CLS.id
4967                 and fct.exp_evt_type_id = ET.id
4968                 and ET.record_type = decode(l_Convert_Expenditure_Type,'Y','ET',l_Convert_Event_Revenue_Type,'Y','RT')
4969                 UNION ALL -- CURRENT Approved Budgets
4970                 SELECT /*+ ORDERED */
4971                                  HOU.NAME                   AS ORG_ID
4972                                  , HORG.NAME                AS ORGANIZATION_ID
4973                                  , decode(p_view_by, 'CC', CLS.name, '-1')                     AS PROJECT_CLASS_ID
4974                                  , decode(p_view_by, 'EC', ET.name, '-1')             	      AS EXPENDITURE_CATEGORY
4975                                  , decode(p_view_by, 'ET', ET.name, '-1')                     AS EXPENDITURE_TYPE_ID
4976                                  , decode(p_view_by, 'RC', ET.name, '-1')             AS REVENUE_CATEGORY
4977                                  , decode(p_view_by, 'RT', ET.name, '-1')             AS REVENUE_TYPE_ID
4978                                  , '-1'                     AS WORK_TYPE_ID
4979                                  , 0                        AS REVENUE
4980                                  , 0                        AS BURDENED_COST
4981                                  , NULL                        AS FORECAST_REVENUE
4982                                  , NULL                        AS FORECAST_BURDENED_COST
4983                                  , 0         		AS CT_REVENUE
4984                                  , 0			AS CT_BURDENED_COST
4985                                  , NULL		    	    AS CT_FORECAST_REVENUE
4986                                  , NULL                     AS CT_FORECAST_BURDENED_COST
4987 		FROM
4988 			PJI_PMV_TIME_DIM_TMP TIME
4989 			, PJI_PMV_ORGZ_DIM_TMP HORG
4990 			, PJI_PMV_CLS_DIM_TMP CLS
4991 			, PJI_PMV_ET_RT_DIM_TMP ET
4992 			, PJI_FP_CLSO_ET_F_MV fct
4993 			, PJI_PMV_ORG_DIM_TMP HOU
4994 		WHERE
4995 			fct.project_org_id = hou.id
4996 				AND FCT.PROJECT_ORGANIZATION_ID = HORG.ID
4997 				AND FCT.TIME_ID = TIME.ID
4998 				AND TIME.ID IS NOT NULL
4999 				AND FCT.PERIOD_TYPE_ID = TIME.PERIOD_TYPE
5000                 AND FCT.CALENDAR_TYPE = TIME.CALENDAR_TYPE
5001 				AND bitand(fct.curr_record_type_id, l_curr_record_type_id) = l_curr_record_type_id
5002                 and fct.project_class_id = CLS.id
5003                 and fct.exp_evt_type_id = ET.id
5004                 and ET.record_type = decode(l_Convert_Expenditure_Type,'Y','ET',l_Convert_Event_Revenue_Type,'Y','RT')
5005                 and p_Time_Comparison_Type = 'BUDGET'
5006 		UNION ALL -- PRIOR Actuals
5007                 SELECT /*+ ORDERED */
5008                                  HOU.NAME                   AS ORG_ID
5009                                  , HORG.NAME                AS ORGANIZATION_ID
5010                                  , decode(p_view_by, 'CC', CLS.name, '-1')                     AS PROJECT_CLASS_ID
5011                                  , decode(p_view_by, 'EC', ET.name, '-1')             	      AS EXPENDITURE_CATEGORY
5012                                  , decode(p_view_by, 'ET', ET.name, '-1')                     AS EXPENDITURE_TYPE_ID
5013                                  , decode(p_view_by, 'RC', ET.name, '-1')             AS REVENUE_CATEGORY
5014                                  , decode(p_view_by, 'RT', ET.name, '-1')             AS REVENUE_TYPE_ID
5015                                  , '-1'                     AS WORK_TYPE_ID
5016                                  , 0                        AS REVENUE
5017                                  , 0                        AS BURDENED_COST
5018                                  , 0                        AS FORECAST_REVENUE
5019                                  , 0                        AS FORECAST_BURDENED_COST
5020                                  , DECODE(TIME.amount_type,1,REVENUE, 0)                  AS CT_REVENUE
5021                                  , DECODE(TIME.amount_type,1,
5022                                  DECODE(G_Report_Cost_Type, 'BC', fct.burdened_cost,
5023                                                             'RC', fct.raw_cost, 0), 0)            AS CT_BURDENED_COST
5024                                  , NULL         AS CT_FORECAST_REVENUE
5025                                  , NULL   	AS CT_FORECAST_BURDENED_COST
5026 		FROM
5027 			PJI_PMV_TCMP_DIM_TMP TIME
5028 			, PJI_PMV_ORGZ_DIM_TMP HORG
5029 			, PJI_PMV_CLS_DIM_TMP CLS
5030 			, PJI_PMV_ET_RT_DIM_TMP ET
5031 			, PJI_FP_CLSO_ET_F_MV fct
5032 			, PJI_PMV_ORG_DIM_TMP HOU
5033 		WHERE
5034 			fct.project_org_id = hou.id
5035 				AND FCT.PROJECT_ORGANIZATION_ID = HORG.ID
5036 				AND FCT.TIME_ID = TIME.ID
5037 				AND TIME.ID IS NOT NULL
5038 				AND FCT.PERIOD_TYPE_ID = TIME.PERIOD_TYPE
5039                 AND FCT.CALENDAR_TYPE = TIME.CALENDAR_TYPE
5040 				AND bitand(fct.curr_record_type_id, l_curr_record_type_id) = l_curr_record_type_id
5041                 and fct.project_class_id = CLS.id
5042                 and fct.exp_evt_type_id = ET.id
5043                 and ET.record_type = decode(l_Convert_Expenditure_Type,'Y','ET',l_Convert_Event_Revenue_Type,'Y','RT')
5044                 and p_Time_Comparison_Type <> 'BUDGET'
5045 		UNION ALL  -- FORCE Creation of Org Rows
5046                 SELECT          HOU.NAME                    AS ORG_ID
5047                                  , '-1'                     AS ORGANIZATION_ID
5048                                  , '-1'                     AS PROJECT_CLASS_ID
5049                                  , '-1'                     AS EXPENDITURE_CATEGORY
5050                                  , '-1'                     AS EXPENDITURE_TYPE_ID
5051                                  , '-1'                     AS REVENUE_CATEGORY
5052                                  , '-1'                     AS REVENUE_TYPE_ID
5053                                  , '-1'                     AS WORK_TYPE_ID
5054                                  , 0                        AS REVENUE
5055                                  , 0                        AS BURDENED_COST
5056                                  , 0                        AS FORECAST_REVENUE
5057                                  , 0                        AS FORECAST_BURDENED_COST
5058                                  , 0                        AS CT_REVENUE
5059                                  , 0                        AS CT_BURDENED_COST
5060                                  , 0                        AS CT_FORECAST_REVENUE
5061                                  , 0                        AS CT_FORECAST_BURDENED_COST
5062 		FROM	PJI_PMV_ORG_DIM_TMP HOU
5063 		WHERE   HOU.NAME <> '-1'
5064                 UNION ALL -- FORCE Creation of Organization Rows
5065                 SELECT           '-1'                       AS ORG_ID
5066                                  , HORG.NAME                AS ORGANIZATION_ID
5067                                  , '-1'                     AS PROJECT_CLASS_ID
5068                                  , '-1'                     AS EXPENDITURE_CATEGORY
5069                                  , '-1'                     AS EXPENDITURE_TYPE_ID
5070                                  , '-1'                     AS REVENUE_CATEGORY
5071                                  , '-1'                     AS REVENUE_TYPE_ID
5072                                  , '-1'                     AS WORK_TYPE_ID
5073                                  , 0                        AS REVENUE
5074                                  , 0                        AS BURDENED_COST
5075                                  , NULL                        AS FORECAST_REVENUE
5076                                  , NULL                        AS FORECAST_BURDENED_COST
5077                                  , 0                        AS CT_REVENUE
5078                                  , 0                        AS CT_BURDENED_COST
5079                                  , 0                        AS CT_FORECAST_REVENUE
5080                                  , 0                        AS CT_FORECAST_BURDENED_COST
5081 		FROM	 PJI_PMV_ORGZ_DIM_TMP HORG
5082 		WHERE    HORG.NAME <> '-1'
5083                 UNION ALL -- FORCE Creation of Class/Code Rows
5084                 SELECT           '-1'                       AS ORG_ID
5085                                  , '-1'                     AS ORGANIZATION_ID
5086                                  , CLS.NAME                     AS PROJECT_CLASS_ID
5087                                  , '-1'             AS EXPENDITURE_CATEGORY
5088                                  , '-1'             AS EXPENDITURE_TYPE_ID
5089                                  , '-1'                     AS REVENUE_CATEGORY
5090                                  , '-1'                     AS REVENUE_TYPE_ID
5091                                  , '-1'                     AS WORK_TYPE_ID
5092                                  , 0                        AS REVENUE
5093                                  , 0                        AS BURDENED_COST
5094                                  , NULL                        AS FORECAST_REVENUE
5095                                  , NULL                        AS FORECAST_BURDENED_COST
5096                                  , 0                        AS CT_REVENUE
5097                                  , 0                        AS CT_BURDENED_COST
5098                                  , 0                        AS CT_FORECAST_REVENUE
5099                                  , 0                        AS CT_FORECAST_BURDENED_COST
5100 		FROM	 PJI_PMV_CLS_DIM_TMP CLS
5101 		WHERE    CLS.NAME <> '-1'
5102                 UNION ALL -- FORCE Creation of Expenditure Category/Type Rows
5103                 SELECT           '-1'                       AS ORG_ID
5104                                  , '-1'                     AS ORGANIZATION_ID
5105                                  , '-1'                     AS PROJECT_CLASS_ID
5106                                  , decode(p_view_by, 'EC', ET.name, '-1')             AS EXPENDITURE_CATEGORY
5107                                  , decode(p_view_by, 'ET', ET.name, '-1')             AS EXPENDITURE_TYPE_ID
5108                                  , decode(p_view_by, 'RC', ET.name, '-1')             AS REVENUE_CATEGORY
5109                                  , decode(p_view_by, 'RT', ET.name, '-1')             AS REVENUE_TYPE_ID
5110                                  , '-1'                     AS WORK_TYPE_ID
5111                                  , 0                        AS REVENUE
5112                                  , 0                        AS BURDENED_COST
5113                                  , NULL                        AS FORECAST_REVENUE
5114                                  , NULL                        AS FORECAST_BURDENED_COST
5115                                  , 0                        AS CT_REVENUE
5116                                  , 0                        AS CT_BURDENED_COST
5117                                  , 0                        AS CT_FORECAST_REVENUE
5118                                  , 0                        AS CT_FORECAST_BURDENED_COST
5119 		FROM	 PJI_PMV_ET_RT_DIM_TMP ET
5120 		WHERE    ET.NAME <> '-1'
5121 
5122                 )
5123            WHERE 1 = 1
5124             GROUP BY ORG_ID, ORGANIZATION_ID, PROJECT_CLASS_ID, EXPENDITURE_CATEGORY,EXPENDITURE_TYPE_ID,REVENUE_CATEGORY,
5125 	             REVENUE_TYPE_ID, WORK_TYPE_ID;
5126 
5127 /*
5128 ** Expenditure or Revenue Type and Work Type Processing -----------------------------------------+
5129 */
5130 
5131 /* -----------------------------------  Case 6 truth table   -------------------------------------  */
5132 
5133         ELSIF (l_Convert_Classification = 'N')
5134           THEN
5135 
5136             SELECT PJI_REP_PPSUM(ORG_ID
5137                                  , ORGANIZATION_ID
5138                                  , PROJECT_CLASS_ID
5139 				 , EXPENDITURE_CATEGORY
5140                                  , EXPENDITURE_TYPE_ID
5141                                  , REVENUE_CATEGORY
5142                                  , REVENUE_TYPE_ID
5143                                  , WORK_TYPE_ID
5144                                  , SUM(REVENUE)
5145                                  , SUM(BURDENED_COST)
5146                                  , SUM(FORECAST_REVENUE)
5147                                  , SUM(FORECAST_BURDENED_COST)
5148                                  , SUM(CT_REVENUE)
5149                                  , SUM(CT_BURDENED_COST)
5150                                  , SUM(CT_FORECAST_REVENUE)
5151                                  , SUM(CT_FORECAST_BURDENED_COST)
5152 					   , 0, 0, 0, 0, 0, 0, 0, 0, 0, 0
5153 					   , 0, 0, 0, 0, 0, 0, 0, 0, 0, 0
5154 					   , 0, 0, 0, 0, 0, 0, 0, 0, 0, 0
5155 					   , 0, 0, 0, 0, 0, 0, 0, 0, 0, 0
5156 					 )
5157            BULK COLLECT INTO l_lines_tab
5158            FROM
5159 	      ( SELECT /*+ ORDERED */
5160                                  HOU.NAME                   AS ORG_ID
5161                                  , HORG.NAME                AS ORGANIZATION_ID
5162                                  , '-1'                     AS PROJECT_CLASS_ID
5163                                  , decode(p_view_by, 'EC', ET.name, '-1')             	      AS EXPENDITURE_CATEGORY
5164                                  , decode(p_view_by, 'ET', ET.name, '-1')                     AS EXPENDITURE_TYPE_ID
5165                                  , decode(p_view_by, 'RC', ET.name, '-1')             AS REVENUE_CATEGORY
5166                                  , decode(p_view_by, 'RT', ET.name, '-1')             AS REVENUE_TYPE_ID
5167                                  , decode(p_view_by, 'WT', WT.name, '-1')                     AS WORK_TYPE_ID
5168                                  , null                  AS REVENUE
5169                                  , DECODE(TIME.amount_type,1,
5170                                  DECODE(G_Report_Cost_Type, 'BC', fct.burdened_cost,
5171                                                             'RC', fct.raw_cost, 0), 0)    AS BURDENED_COST
5172                                  , NULL         		AS FORECAST_REVENUE
5173                                  , NULL   			AS FORECAST_BURDENED_COST
5174                                  , 0                        AS CT_REVENUE
5175                                  , 0                        AS CT_BURDENED_COST
5176                                  , NULL                        AS CT_FORECAST_REVENUE
5177                                  , NULL                        AS CT_FORECAST_BURDENED_COST
5178 		FROM
5179 			PJI_PMV_TIME_DIM_TMP TIME
5180 			, PJI_PMV_ORGZ_DIM_TMP HORG
5181 			, PJI_PMV_ET_RT_DIM_TMP ET
5182 			, PJI_PMV_WT_DIM_TMP WT
5183 			, PJI_FP_ORGO_ET_WT_F_MV fct
5184 			, PJI_PMV_ORG_DIM_TMP HOU
5185 		WHERE
5186 			fct.org_id = hou.id
5187 				AND FCT.ORGANIZATION_ID = HORG.ID
5188 				AND FCT.TIME_ID = TIME.ID
5189 				AND TIME.ID IS NOT NULL
5190 				AND FCT.PERIOD_TYPE_ID = TIME.PERIOD_TYPE
5191                 AND FCT.CALENDAR_TYPE = TIME.CALENDAR_TYPE
5192 				AND bitand(fct.curr_record_type_id, l_curr_record_type_id) = l_curr_record_type_id
5193                 and fct.exp_evt_type_id = ET.id
5194                 and ET.record_type = decode(l_Convert_Expenditure_Type,'Y','ET',l_Convert_Event_Revenue_Type,'Y','RT')
5195                 and fct.work_type_id = WT.id
5196                 UNION ALL -- CURRENT Approved Budgets
5197                 SELECT /*+ ORDERED */
5198                                  HOU.NAME                   AS ORG_ID
5199                                  , HORG.NAME                AS ORGANIZATION_ID
5200                                  , '-1'                     AS PROJECT_CLASS_ID
5201                                  , decode(p_view_by, 'EC', ET.name, '-1')             	      AS EXPENDITURE_CATEGORY
5202                                  , decode(p_view_by, 'ET', ET.name, '-1')                     AS EXPENDITURE_TYPE_ID
5203                                  , decode(p_view_by, 'RC', ET.name, '-1')             AS REVENUE_CATEGORY
5204                                  , decode(p_view_by, 'RT', ET.name, '-1')             AS REVENUE_TYPE_ID
5205                                  , decode(p_view_by, 'WT', WT.name, '-1')                     AS WORK_TYPE_ID
5206                                  , 0                        AS REVENUE
5207                                  , 0                        AS BURDENED_COST
5208                                  , NULL                        AS FORECAST_REVENUE
5209                                  , NULL                        AS FORECAST_BURDENED_COST
5210                                  , 0         		AS CT_REVENUE
5211                                  , 0			AS CT_BURDENED_COST
5212                                  , NULL		    	    AS CT_FORECAST_REVENUE
5213                                  , NULL                     AS CT_FORECAST_BURDENED_COST
5214 		FROM
5215 			PJI_PMV_TIME_DIM_TMP TIME
5216 			, PJI_PMV_ORGZ_DIM_TMP HORG
5217 			, PJI_PMV_ET_RT_DIM_TMP ET
5218 			, PJI_PMV_WT_DIM_TMP WT
5219 			, PJI_FP_ORGO_ET_WT_F_MV fct
5220 			, PJI_PMV_ORG_DIM_TMP HOU
5221 		WHERE
5222 			fct.org_id = hou.id
5223 				AND FCT.ORGANIZATION_ID = HORG.ID
5224 				AND FCT.TIME_ID = TIME.ID
5225 				AND TIME.ID IS NOT NULL
5226 				AND FCT.PERIOD_TYPE_ID = TIME.PERIOD_TYPE
5227                 AND FCT.CALENDAR_TYPE = TIME.CALENDAR_TYPE
5228 				AND bitand(fct.curr_record_type_id, l_curr_record_type_id) = l_curr_record_type_id
5229                 and fct.exp_evt_type_id = ET.id
5230                 and ET.record_type = decode(l_Convert_Expenditure_Type,'Y','ET',l_Convert_Event_Revenue_Type,'Y','RT')
5231                 and fct.work_type_id = WT.id
5232                 and p_Time_Comparison_Type = 'BUDGET'
5233 		UNION ALL -- PRIOR Actuals
5234                 SELECT /*+ ORDERED */
5235                                  HOU.NAME                   AS ORG_ID
5236                                  , HORG.NAME                AS ORGANIZATION_ID
5237                                  , '-1'                     AS PROJECT_CLASS_ID
5238                                  , decode(p_view_by, 'EC', ET.name, '-1')             	      AS EXPENDITURE_CATEGORY
5239                                  , decode(p_view_by, 'ET', ET.name, '-1')                     AS EXPENDITURE_TYPE_ID
5240                                  , decode(p_view_by, 'RC', ET.name, '-1')             AS REVENUE_CATEGORY
5241                                  , decode(p_view_by, 'RT', ET.name, '-1')             AS REVENUE_TYPE_ID
5242                                  , decode(p_view_by, 'WT', WT.name, '-1')                     AS WORK_TYPE_ID
5243                                  , 0                        AS REVENUE
5244                                  , 0                        AS BURDENED_COST
5245                                  , 0                        AS FORECAST_REVENUE
5246                                  , 0                        AS FORECAST_BURDENED_COST
5247                                  , null                  AS CT_REVENUE
5248                                  , DECODE(TIME.amount_type,1,
5249                                  DECODE(G_Report_Cost_Type, 'BC', fct.burdened_cost,
5250                                                             'RC', fct.raw_cost, 0), 0)            AS CT_BURDENED_COST
5251                                  , NULL         AS CT_FORECAST_REVENUE
5252                                  , NULL   	AS CT_FORECAST_BURDENED_COST
5253 		FROM
5254 			PJI_PMV_TCMP_DIM_TMP TIME
5255 			, PJI_PMV_ORGZ_DIM_TMP HORG
5256 			, PJI_PMV_ET_RT_DIM_TMP ET
5257 			, PJI_PMV_WT_DIM_TMP WT
5258 			, PJI_FP_ORGO_ET_WT_F_MV fct
5259 			, PJI_PMV_ORG_DIM_TMP HOU
5260 		WHERE
5261 			fct.org_id = hou.id
5262 				AND FCT.ORGANIZATION_ID = HORG.ID
5263 				AND FCT.TIME_ID = TIME.ID
5264 				AND TIME.ID IS NOT NULL
5265 				AND FCT.PERIOD_TYPE_ID = TIME.PERIOD_TYPE
5266                 AND FCT.CALENDAR_TYPE = TIME.CALENDAR_TYPE
5267 				AND bitand(fct.curr_record_type_id, l_curr_record_type_id) = l_curr_record_type_id
5268                 and fct.exp_evt_type_id = ET.id
5269                 and ET.record_type = decode(l_Convert_Expenditure_Type,'Y','ET',l_Convert_Event_Revenue_Type,'Y','RT')
5270                 and fct.work_type_id = WT.id
5271                 and p_Time_Comparison_Type <> 'BUDGET'
5272 		UNION ALL  -- FORCE Creation of Org Rows
5273                 SELECT          HOU.NAME                    AS ORG_ID
5274                                  , '-1'                     AS ORGANIZATION_ID
5275                                  , '-1'                     AS PROJECT_CLASS_ID
5276                                  , '-1'                     AS EXPENDITURE_CATEGORY
5277                                  , '-1'                     AS EXPENDITURE_TYPE_ID
5278                                  , '-1'                     AS REVENUE_CATEGORY
5279                                  , '-1'                     AS REVENUE_TYPE_ID
5280                                  , '-1'                     AS WORK_TYPE_ID
5281                                  , 0                        AS REVENUE
5282                                  , 0                        AS BURDENED_COST
5283                                  , 0                        AS FORECAST_REVENUE
5284                                  , 0                        AS FORECAST_BURDENED_COST
5285                                  , 0                        AS CT_REVENUE
5286                                  , 0                        AS CT_BURDENED_COST
5287                                  , 0                        AS CT_FORECAST_REVENUE
5288                                  , 0                        AS CT_FORECAST_BURDENED_COST
5289 		FROM	PJI_PMV_ORG_DIM_TMP HOU
5290 		WHERE   HOU.NAME <> '-1'
5291                 UNION ALL -- FORCE Creation of Organization Rows
5292                 SELECT           '-1'                       AS ORG_ID
5293                                  , HORG.NAME                AS ORGANIZATION_ID
5294                                  , '-1'                     AS PROJECT_CLASS_ID
5295                                  , '-1'                     AS EXPENDITURE_CATEGORY
5296                                  , '-1'                     AS EXPENDITURE_TYPE_ID
5297                                  , '-1'                     AS REVENUE_CATEGORY
5298                                  , '-1'                     AS REVENUE_TYPE_ID
5299                                  , '-1'                     AS WORK_TYPE_ID
5300                                  , 0                        AS REVENUE
5301                                  , 0                        AS BURDENED_COST
5302                                  , NULL                        AS FORECAST_REVENUE
5303                                  , NULL                        AS FORECAST_BURDENED_COST
5304                                  , 0                        AS CT_REVENUE
5305                                  , 0                        AS CT_BURDENED_COST
5306                                  , 0                        AS CT_FORECAST_REVENUE
5307                                  , 0                        AS CT_FORECAST_BURDENED_COST
5308 		FROM	 PJI_PMV_ORGZ_DIM_TMP HORG
5309 		WHERE    HORG.NAME <> '-1'
5310                 UNION ALL -- FORCE Creation of Expenditure Category/Type Rows
5311                 SELECT           '-1'                       AS ORG_ID
5312                                  , '-1'                     AS ORGANIZATION_ID
5313                                  , '-1'                     AS PROJECT_CLASS_ID
5314                                  , decode(p_view_by, 'EC', ET.name, '-1')             AS EXPENDITURE_CATEGORY
5315                                  , decode(p_view_by, 'ET', ET.name, '-1')             AS EXPENDITURE_TYPE_ID
5316                                  , decode(p_view_by, 'RC', ET.name, '-1')             AS REVENUE_CATEGORY
5317                                  , decode(p_view_by, 'RT', ET.name, '-1')             AS REVENUE_TYPE_ID
5318                                  , '-1'                     AS WORK_TYPE_ID
5319                                  , 0                        AS REVENUE
5320                                  , 0                        AS BURDENED_COST
5321                                  , NULL                        AS FORECAST_REVENUE
5322                                  , NULL                        AS FORECAST_BURDENED_COST
5323                                  , 0                        AS CT_REVENUE
5324                                  , 0                        AS CT_BURDENED_COST
5325                                  , 0                        AS CT_FORECAST_REVENUE
5326                                  , 0                        AS CT_FORECAST_BURDENED_COST
5327 		FROM	 PJI_PMV_ET_RT_DIM_TMP ET
5328 		WHERE    ET.NAME <> '-1'
5329                 UNION ALL -- FORCE Creation of Work Type Rows
5330                 SELECT           '-1'                       AS ORG_ID
5331                                  , '-1'                     AS ORGANIZATION_ID
5332                                  , '-1'                     AS PROJECT_CLASS_ID
5333                                  , '-1'             AS EXPENDITURE_CATEGORY
5334                                  , '-1'             AS EXPENDITURE_TYPE_ID
5335                                  , '-1'                     AS REVENUE_CATEGORY
5336                                  , '-1'                     AS REVENUE_TYPE_ID
5337                                  , decode(p_view_by, 'WT', WT.name, '-1')                     AS WORK_TYPE_ID
5338                                  , 0                        AS REVENUE
5339                                  , 0                        AS BURDENED_COST
5340                                  , NULL                        AS FORECAST_REVENUE
5341                                  , NULL                        AS FORECAST_BURDENED_COST
5342                                  , 0                        AS CT_REVENUE
5343                                  , 0                        AS CT_BURDENED_COST
5344                                  , 0                        AS CT_FORECAST_REVENUE
5345                                  , 0                        AS CT_FORECAST_BURDENED_COST
5346 		FROM	 PJI_PMV_WT_DIM_TMP WT
5347 		WHERE    WT.NAME <> '-1'
5348 
5349 
5350                 )
5351            WHERE 1 = 1
5352             GROUP BY ORG_ID, ORGANIZATION_ID, PROJECT_CLASS_ID, EXPENDITURE_CATEGORY,EXPENDITURE_TYPE_ID,REVENUE_CATEGORY,
5353 	             REVENUE_TYPE_ID, WORK_TYPE_ID;
5354 
5355 /*
5356 **  Project classification and Work Type Processing -----------------------------------------------+
5357 */
5358 
5359 /* -----------------------------------  Case 7 truth table   -------------------------------------  */
5360 
5361         ELSIF (l_Convert_Expenditure_Type = 'N')
5362           and (l_Convert_Event_Revenue_Type = 'N')
5363           THEN
5364 
5365             SELECT PJI_REP_PPSUM(ORG_ID
5366                                  , ORGANIZATION_ID
5367                                  , PROJECT_CLASS_ID
5368 				 , EXPENDITURE_CATEGORY
5369                                  , EXPENDITURE_TYPE_ID
5370                                  , REVENUE_CATEGORY
5371                                  , REVENUE_TYPE_ID
5372                                  , WORK_TYPE_ID
5373                                  , SUM(REVENUE)
5374                                  , SUM(BURDENED_COST)
5375                                  , SUM(FORECAST_REVENUE)
5376                                  , SUM(FORECAST_BURDENED_COST)
5377                                  , SUM(CT_REVENUE)
5378                                  , SUM(CT_BURDENED_COST)
5379                                  , SUM(CT_FORECAST_REVENUE)
5380                                  , SUM(CT_FORECAST_BURDENED_COST)
5381 					   , 0, 0, 0, 0, 0, 0, 0, 0, 0, 0
5382 					   , 0, 0, 0, 0, 0, 0, 0, 0, 0, 0
5383 					   , 0, 0, 0, 0, 0, 0, 0, 0, 0, 0
5384 					   , 0, 0, 0, 0, 0, 0, 0, 0, 0, 0
5385 					 )
5386            BULK COLLECT INTO l_lines_tab
5387            FROM
5388 	      ( SELECT /*+ ORDERED */
5389                                  HOU.NAME                   AS ORG_ID
5390                                  , HORG.NAME                AS ORGANIZATION_ID
5391                                  , decode(p_view_by, 'CC', CLS.name, '-1')                     AS PROJECT_CLASS_ID
5392                                  , '-1'             	    AS EXPENDITURE_CATEGORY
5393                                  , '-1'                     AS EXPENDITURE_TYPE_ID
5394                                  , '-1'                     AS REVENUE_CATEGORY
5395                                  , '-1'                     AS REVENUE_TYPE_ID
5396                                  , decode(p_view_by, 'WT', WT.name, '-1')                     AS WORK_TYPE_ID
5397                                  , null                  AS REVENUE
5398                                  , DECODE(TIME.amount_type,1,
5399                                  DECODE(G_Report_Cost_Type, 'BC', fct.burdened_cost,
5400                                                             'RC', fct.raw_cost, 0), 0)    AS BURDENED_COST
5401                                  , NULL         		AS FORECAST_REVENUE
5402                                  , NULL   			AS FORECAST_BURDENED_COST
5403                                  , 0                        AS CT_REVENUE
5404                                  , 0                        AS CT_BURDENED_COST
5405                                  , NULL                        AS CT_FORECAST_REVENUE
5406                                  , NULL                        AS CT_FORECAST_BURDENED_COST
5407 		FROM
5408 			PJI_PMV_TIME_DIM_TMP TIME
5409 			, PJI_PMV_ORGZ_DIM_TMP HORG
5410 			, PJI_PMV_CLS_DIM_TMP CLS
5411 			, PJI_PMV_WT_DIM_TMP WT
5412 			, PJI_FP_CLSO_ET_WT_F_MV fct
5413 			, PJI_PMV_ORG_DIM_TMP HOU
5414 		WHERE
5415 			fct.project_org_id = hou.id
5416 				AND FCT.PROJECT_ORGANIZATION_ID = HORG.ID
5417 				AND FCT.TIME_ID = TIME.ID
5418 				AND TIME.ID IS NOT NULL
5419 				AND FCT.PERIOD_TYPE_ID = TIME.PERIOD_TYPE
5420                 AND FCT.CALENDAR_TYPE = TIME.CALENDAR_TYPE
5421 				AND bitand(fct.curr_record_type_id, l_curr_record_type_id) = l_curr_record_type_id
5422                 and fct.project_class_id = CLS.id
5423                 and fct.work_type_id = WT.id
5424                 UNION ALL -- CURRENT Approved Budgets
5425                 SELECT /*+ ORDERED */
5426                                  HOU.NAME                   AS ORG_ID
5427                                  , HORG.NAME                AS ORGANIZATION_ID
5428                                  , decode(p_view_by, 'CC', CLS.name, '-1')                     AS PROJECT_CLASS_ID
5429                                  , '-1'             	    AS EXPENDITURE_CATEGORY
5430                                  , '-1'                     AS EXPENDITURE_TYPE_ID
5431                                  , '-1'                     AS REVENUE_CATEGORY
5432                                  , '-1'                     AS REVENUE_TYPE_ID
5433                                  , decode(p_view_by, 'WT', WT.name, '-1')                     AS WORK_TYPE_ID
5434                                  , 0                        AS REVENUE
5435                                  , 0                        AS BURDENED_COST
5436                                  , NULL                        AS FORECAST_REVENUE
5437                                  , NULL                        AS FORECAST_BURDENED_COST
5438                                  , 0         		AS CT_REVENUE
5439                                  , 0			AS CT_BURDENED_COST
5440                                  , NULL		    	    AS CT_FORECAST_REVENUE
5441                                  , NULL                     AS CT_FORECAST_BURDENED_COST
5442 		FROM
5443 			PJI_PMV_TIME_DIM_TMP TIME
5444 			, PJI_PMV_ORGZ_DIM_TMP HORG
5445 			, PJI_PMV_CLS_DIM_TMP CLS
5446 			, PJI_PMV_WT_DIM_TMP WT
5447 			, PJI_FP_CLSO_ET_WT_F_MV fct
5448 			, PJI_PMV_ORG_DIM_TMP HOU
5449 		WHERE
5450 			fct.project_org_id = hou.id
5451 				AND FCT.PROJECT_ORGANIZATION_ID = HORG.ID
5452 				AND FCT.TIME_ID = TIME.ID
5453 				AND TIME.ID IS NOT NULL
5454 				AND FCT.PERIOD_TYPE_ID = TIME.PERIOD_TYPE
5455                 AND FCT.CALENDAR_TYPE = TIME.CALENDAR_TYPE
5456 				AND bitand(fct.curr_record_type_id, l_curr_record_type_id) = l_curr_record_type_id
5457                 and fct.project_class_id = CLS.id
5458                 and fct.work_type_id = WT.id
5459                 and p_Time_Comparison_Type = 'BUDGET'
5460 		UNION ALL -- PRIOR Actuals
5461                 SELECT /*+ ORDERED */
5462                                  HOU.NAME                   AS ORG_ID
5463                                  , HORG.NAME                AS ORGANIZATION_ID
5464                                  , decode(p_view_by, 'CC', CLS.name, '-1')                     AS PROJECT_CLASS_ID
5465                                  , '-1'             	      AS EXPENDITURE_CATEGORY
5466                                  , '-1'                     AS EXPENDITURE_TYPE_ID
5467                                  , '-1'                     AS REVENUE_CATEGORY
5468                                  , '-1'                     AS REVENUE_TYPE_ID
5469                                  , decode(p_view_by, 'WT', WT.name, '-1')                     AS WORK_TYPE_ID
5470                                  , 0                        AS REVENUE
5471                                  , 0                        AS BURDENED_COST
5472                                  , 0                        AS FORECAST_REVENUE
5473                                  , 0                        AS FORECAST_BURDENED_COST
5474                                  , null                  AS CT_REVENUE
5475                                  , DECODE(TIME.amount_type,1,
5476                                  DECODE(G_Report_Cost_Type, 'BC', fct.burdened_cost,
5477                                                             'RC', fct.raw_cost, 0), 0)            AS CT_BURDENED_COST
5478                                  , NULL         AS CT_FORECAST_REVENUE
5479                                  , NULL   	AS CT_FORECAST_BURDENED_COST
5480 		FROM
5481 			PJI_PMV_TCMP_DIM_TMP TIME
5482 			, PJI_PMV_ORGZ_DIM_TMP HORG
5483 			, PJI_PMV_CLS_DIM_TMP CLS
5484 			, PJI_PMV_WT_DIM_TMP WT
5485 			, PJI_FP_CLSO_ET_WT_F_MV fct
5486 			, PJI_PMV_ORG_DIM_TMP HOU
5487 		WHERE
5488 			fct.project_org_id = hou.id
5489 				AND FCT.PROJECT_ORGANIZATION_ID = HORG.ID
5490 				AND FCT.TIME_ID = TIME.ID
5491 				AND TIME.ID IS NOT NULL
5492 				AND FCT.PERIOD_TYPE_ID = TIME.PERIOD_TYPE
5493                 AND FCT.CALENDAR_TYPE = TIME.CALENDAR_TYPE
5494 				AND bitand(fct.curr_record_type_id, l_curr_record_type_id) = l_curr_record_type_id
5495                 and fct.project_class_id = CLS.id
5496                 and fct.work_type_id = WT.id
5497                 and p_Time_Comparison_Type <> 'BUDGET'
5498 		UNION ALL  -- FORCE Creation of Org Rows
5499                 SELECT          HOU.NAME                    AS ORG_ID
5500                                  , '-1'                     AS ORGANIZATION_ID
5501                                  , '-1'                     AS PROJECT_CLASS_ID
5502                                  , '-1'                     AS EXPENDITURE_CATEGORY
5503                                  , '-1'                     AS EXPENDITURE_TYPE_ID
5504                                  , '-1'                     AS REVENUE_CATEGORY
5505                                  , '-1'                     AS REVENUE_TYPE_ID
5506                                  , '-1'                     AS WORK_TYPE_ID
5507                                  , 0                        AS REVENUE
5508                                  , 0                        AS BURDENED_COST
5509                                  , 0                        AS FORECAST_REVENUE
5510                                  , 0                        AS FORECAST_BURDENED_COST
5511                                  , 0                        AS CT_REVENUE
5512                                  , 0                        AS CT_BURDENED_COST
5513                                  , 0                        AS CT_FORECAST_REVENUE
5514                                  , 0                        AS CT_FORECAST_BURDENED_COST
5515 		FROM	PJI_PMV_ORG_DIM_TMP HOU
5516 		WHERE   HOU.NAME <> '-1'
5517                 UNION ALL -- FORCE Creation of Organization Rows
5518                 SELECT           '-1'                       AS ORG_ID
5519                                  , HORG.NAME                AS ORGANIZATION_ID
5520                                  , '-1'                     AS PROJECT_CLASS_ID
5521                                  , '-1'                     AS EXPENDITURE_CATEGORY
5522                                  , '-1'                     AS EXPENDITURE_TYPE_ID
5523                                  , '-1'                     AS REVENUE_CATEGORY
5524                                  , '-1'                     AS REVENUE_TYPE_ID
5525                                  , '-1'                     AS WORK_TYPE_ID
5526                                  , 0                        AS REVENUE
5527                                  , 0                        AS BURDENED_COST
5528                                  , NULL                        AS FORECAST_REVENUE
5529                                  , NULL                        AS FORECAST_BURDENED_COST
5530                                  , 0                        AS CT_REVENUE
5531                                  , 0                        AS CT_BURDENED_COST
5532                                  , 0                        AS CT_FORECAST_REVENUE
5533                                  , 0                        AS CT_FORECAST_BURDENED_COST
5534 		FROM	 PJI_PMV_ORGZ_DIM_TMP HORG
5535 		WHERE    HORG.NAME <> '-1'
5536                 UNION ALL -- FORCE Creation of Class/Code Rows
5537                 SELECT           '-1'                       AS ORG_ID
5538                                  , '-1'                     AS ORGANIZATION_ID
5539                                  , decode(p_view_by, 'CC', CLS.name, '-1')                     AS PROJECT_CLASS_ID
5540                                  , '-1'             AS EXPENDITURE_CATEGORY
5541                                  , '-1'             AS EXPENDITURE_TYPE_ID
5542                                  , '-1'                     AS REVENUE_CATEGORY
5543                                  , '-1'                     AS REVENUE_TYPE_ID
5544                                  , '-1'                     AS WORK_TYPE_ID
5545                                  , 0                        AS REVENUE
5546                                  , 0                        AS BURDENED_COST
5547                                  , NULL                        AS FORECAST_REVENUE
5548                                  , NULL                        AS FORECAST_BURDENED_COST
5549                                  , 0                        AS CT_REVENUE
5550                                  , 0                        AS CT_BURDENED_COST
5551                                  , 0                        AS CT_FORECAST_REVENUE
5552                                  , 0                        AS CT_FORECAST_BURDENED_COST
5553 		FROM	 PJI_PMV_CLS_DIM_TMP CLS
5554 		WHERE    CLS.NAME <> '-1'
5555                 UNION ALL -- FORCE Creation of Work Type Rows
5556                 SELECT           '-1'                       AS ORG_ID
5557                                  , '-1'                     AS ORGANIZATION_ID
5558                                  , '-1'                     AS PROJECT_CLASS_ID
5559                                  , '-1'             AS EXPENDITURE_CATEGORY
5560                                  , '-1'             AS EXPENDITURE_TYPE_ID
5561                                  , '-1'                     AS REVENUE_CATEGORY
5562                                  , '-1'                     AS REVENUE_TYPE_ID
5563                                  , decode(p_view_by, 'WT', WT.name, '-1')                     AS WORK_TYPE_ID
5564                                  , 0                        AS REVENUE
5565                                  , 0                        AS BURDENED_COST
5566                                  , NULL                        AS FORECAST_REVENUE
5567                                  , NULL                        AS FORECAST_BURDENED_COST
5568                                  , 0                        AS CT_REVENUE
5569                                  , 0                        AS CT_BURDENED_COST
5570                                  , 0                        AS CT_FORECAST_REVENUE
5571                                  , 0                        AS CT_FORECAST_BURDENED_COST
5572 		FROM	 PJI_PMV_WT_DIM_TMP WT
5573 		WHERE    WT.NAME <> '-1'
5574 
5575 
5576                 )
5577            WHERE 1 = 1
5578             GROUP BY ORG_ID, ORGANIZATION_ID, PROJECT_CLASS_ID, EXPENDITURE_CATEGORY,EXPENDITURE_TYPE_ID,REVENUE_CATEGORY,
5579 	             REVENUE_TYPE_ID, WORK_TYPE_ID;
5580 
5581 /*
5582 ** Project classification and Expenditure or Revenue Type and Work Type Processing ----------------+
5583 */
5584 
5585 /* -----------------------------------  Case 8 truth table   -------------------------------------  */
5586 
5587         ELSE
5588 
5589             SELECT PJI_REP_PPSUM(ORG_ID
5590                                  , ORGANIZATION_ID
5591                                  , PROJECT_CLASS_ID
5592 				 , EXPENDITURE_CATEGORY
5593                                  , EXPENDITURE_TYPE_ID
5594                                  , REVENUE_CATEGORY
5595                                  , REVENUE_TYPE_ID
5596                                  , WORK_TYPE_ID
5597                                  , SUM(REVENUE)
5598                                  , SUM(BURDENED_COST)
5599                                  , SUM(FORECAST_REVENUE)
5600                                  , SUM(FORECAST_BURDENED_COST)
5601                                  , SUM(CT_REVENUE)
5602                                  , SUM(CT_BURDENED_COST)
5603                                  , SUM(CT_FORECAST_REVENUE)
5604                                  , SUM(CT_FORECAST_BURDENED_COST)
5605 					   , 0, 0, 0, 0, 0, 0, 0, 0, 0, 0
5606 					   , 0, 0, 0, 0, 0, 0, 0, 0, 0, 0
5607 					   , 0, 0, 0, 0, 0, 0, 0, 0, 0, 0
5608 					   , 0, 0, 0, 0, 0, 0, 0, 0, 0, 0
5609 					 )
5610            BULK COLLECT INTO l_lines_tab
5611            FROM
5612 	      ( SELECT /*+ ORDERED */
5613                                  HOU.NAME                   AS ORG_ID
5614                                  , HORG.NAME                AS ORGANIZATION_ID
5615                                  , decode(p_view_by, 'CC', CLS.name, '-1')                     AS PROJECT_CLASS_ID
5616                                  , decode(p_view_by, 'EC', ET.name, '-1')             	    AS EXPENDITURE_CATEGORY
5617                                  , decode(p_view_by, 'ET', ET.name, '-1')                     AS EXPENDITURE_TYPE_ID
5618                                  , decode(p_view_by, 'RC', ET.name, '-1')             AS REVENUE_CATEGORY
5619                                  , decode(p_view_by, 'RT', ET.name, '-1')             AS REVENUE_TYPE_ID
5620                                  , decode(p_view_by, 'WT', WT.name, '-1')                     AS WORK_TYPE_ID
5621                                  , null                  AS REVENUE
5622                                  , DECODE(TIME.amount_type,1,
5623                                  DECODE(G_Report_Cost_Type, 'BC', fct.burdened_cost,
5624                                                             'RC', fct.raw_cost, 0), 0)    AS BURDENED_COST
5625                                  , NULL         		AS FORECAST_REVENUE
5626                                  , NULL   			AS FORECAST_BURDENED_COST
5627                                  , 0                        AS CT_REVENUE
5628                                  , 0                        AS CT_BURDENED_COST
5629                                  , NULL                        AS CT_FORECAST_REVENUE
5630                                  , NULL                        AS CT_FORECAST_BURDENED_COST
5631 		FROM
5632 			PJI_PMV_TIME_DIM_TMP TIME
5633 			, PJI_PMV_ORGZ_DIM_TMP HORG
5634 			, PJI_PMV_CLS_DIM_TMP CLS
5635 			, PJI_PMV_ET_RT_DIM_TMP ET
5636 			, PJI_PMV_WT_DIM_TMP WT
5637 			, PJI_FP_CLSO_ET_WT_F_MV fct
5638 			, PJI_PMV_ORG_DIM_TMP HOU
5639 		WHERE
5640 			fct.project_org_id = hou.id
5641 				AND FCT.PROJECT_ORGANIZATION_ID = HORG.ID
5642 				AND FCT.TIME_ID = TIME.ID
5643 				AND TIME.ID IS NOT NULL
5644 				AND FCT.PERIOD_TYPE_ID = TIME.PERIOD_TYPE
5645                 AND FCT.CALENDAR_TYPE = TIME.CALENDAR_TYPE
5646 				AND bitand(fct.curr_record_type_id, l_curr_record_type_id) = l_curr_record_type_id
5647                 and fct.project_class_id = CLS.id
5648                 and fct.exp_evt_type_id = ET.id
5649                 and ET.record_type = decode(l_Convert_Expenditure_Type,'Y','ET',l_Convert_Event_Revenue_Type,'Y','RT')
5650                 and fct.work_type_id = WT.id
5651                 UNION ALL -- CURRENT Approved Budgets
5652                 SELECT /*+ ORDERED */
5653                                  HOU.NAME                   AS ORG_ID
5654                                  , HORG.NAME                AS ORGANIZATION_ID
5655                                  , decode(p_view_by, 'CC', CLS.name, '-1')                     AS PROJECT_CLASS_ID
5656                                  , decode(p_view_by, 'EC', ET.name, '-1')             	    AS EXPENDITURE_CATEGORY
5657                                  , decode(p_view_by, 'ET', ET.name, '-1')                     AS EXPENDITURE_TYPE_ID
5658                                  , decode(p_view_by, 'RC', ET.name, '-1')             AS REVENUE_CATEGORY
5659                                  , decode(p_view_by, 'RT', ET.name, '-1')             AS REVENUE_TYPE_ID
5660                                  , decode(p_view_by, 'WT', WT.name, '-1')                     AS WORK_TYPE_ID
5661                                  , 0                        AS REVENUE
5662                                  , 0                        AS BURDENED_COST
5663                                  , NULL                        AS FORECAST_REVENUE
5664                                  , NULL                        AS FORECAST_BURDENED_COST
5665                                  , 0         		AS CT_REVENUE
5666                                  , 0			AS CT_BURDENED_COST
5667                                  , NULL		    	    AS CT_FORECAST_REVENUE
5668                                  , NULL                     AS CT_FORECAST_BURDENED_COST
5669 		FROM
5670 			PJI_PMV_TIME_DIM_TMP TIME
5671 			, PJI_PMV_ORGZ_DIM_TMP HORG
5672 			, PJI_PMV_CLS_DIM_TMP CLS
5673 			, PJI_PMV_ET_RT_DIM_TMP ET
5674 			, PJI_PMV_WT_DIM_TMP WT
5675 			, PJI_FP_CLSO_ET_WT_F_MV fct
5676 			, PJI_PMV_ORG_DIM_TMP HOU
5677 		WHERE
5678 			fct.project_org_id = hou.id
5679 				AND FCT.PROJECT_ORGANIZATION_ID = HORG.ID
5680 				AND FCT.TIME_ID = TIME.ID
5681 				AND TIME.ID IS NOT NULL
5682 				AND FCT.PERIOD_TYPE_ID = TIME.PERIOD_TYPE
5683                 AND FCT.CALENDAR_TYPE = TIME.CALENDAR_TYPE
5684 				AND bitand(fct.curr_record_type_id, l_curr_record_type_id) = l_curr_record_type_id
5685                 and fct.project_class_id = CLS.id
5686                 and fct.exp_evt_type_id = ET.id
5687                 and ET.record_type = decode(l_Convert_Expenditure_Type,'Y','ET',l_Convert_Event_Revenue_Type,'Y','RT')
5688                 and fct.work_type_id = WT.id
5689                 and p_Time_Comparison_Type = 'BUDGET'
5690 		UNION ALL -- PRIOR Actuals
5691                 SELECT /*+ ORDERED */
5692                                  HOU.NAME                   AS ORG_ID
5693                                  , HORG.NAME                AS ORGANIZATION_ID
5694                                  , decode(p_view_by, 'CC', CLS.name, '-1')                     AS PROJECT_CLASS_ID
5695                                  , decode(p_view_by, 'EC', ET.name, '-1')             	    AS EXPENDITURE_CATEGORY
5696                                  , decode(p_view_by, 'ET', ET.name, '-1')                     AS EXPENDITURE_TYPE_ID
5697                                  , decode(p_view_by, 'RC', ET.name, '-1')             AS REVENUE_CATEGORY
5698                                  , decode(p_view_by, 'RT', ET.name, '-1')             AS REVENUE_TYPE_ID
5699                                  , decode(p_view_by, 'WT', WT.name, '-1')                     AS WORK_TYPE_ID
5700                                  , 0                        AS REVENUE
5701                                  , 0                        AS BURDENED_COST
5702                                  , 0                        AS FORECAST_REVENUE
5703                                  , 0                        AS FORECAST_BURDENED_COST
5704                                  , null                  AS CT_REVENUE
5705                                  , DECODE(TIME.amount_type,1,
5706                                  DECODE(G_Report_Cost_Type, 'BC', fct.burdened_cost,
5707                                                             'RC', fct.raw_cost, 0), 0)            AS CT_BURDENED_COST
5708                                  , NULL         AS CT_FORECAST_REVENUE
5709                                  , NULL   	AS CT_FORECAST_BURDENED_COST
5710 		FROM
5711 			PJI_PMV_TCMP_DIM_TMP TIME
5712 			, PJI_PMV_ORGZ_DIM_TMP HORG
5713 			, PJI_PMV_CLS_DIM_TMP CLS
5714 			, PJI_PMV_ET_RT_DIM_TMP ET
5715 			, PJI_PMV_WT_DIM_TMP WT
5716 			, PJI_FP_CLSO_ET_WT_F_MV fct
5717 			, PJI_PMV_ORG_DIM_TMP HOU
5718 		WHERE
5719 			fct.project_org_id = hou.id
5720 				AND FCT.PROJECT_ORGANIZATION_ID = HORG.ID
5721 				AND FCT.TIME_ID = TIME.ID
5722 				AND TIME.ID IS NOT NULL
5723 				AND FCT.PERIOD_TYPE_ID = TIME.PERIOD_TYPE
5724                 AND FCT.CALENDAR_TYPE = TIME.CALENDAR_TYPE
5725 				AND bitand(fct.curr_record_type_id, l_curr_record_type_id) = l_curr_record_type_id
5726                 and fct.project_class_id = CLS.id
5727                 and fct.exp_evt_type_id = ET.id
5728                 and ET.record_type = decode(l_Convert_Expenditure_Type,'Y','ET',l_Convert_Event_Revenue_Type,'Y','RT')
5729                 and fct.work_type_id = WT.id
5730                 and p_Time_Comparison_Type <> 'BUDGET'
5731 		UNION ALL  -- FORCE Creation of Org Rows
5732                 SELECT          HOU.NAME                    AS ORG_ID
5733                                  , '-1'                     AS ORGANIZATION_ID
5734                                  , '-1'                     AS PROJECT_CLASS_ID
5735                                  , '-1'                     AS EXPENDITURE_CATEGORY
5736                                  , '-1'                     AS EXPENDITURE_TYPE_ID
5737                                  , '-1'                     AS REVENUE_CATEGORY
5738                                  , '-1'                     AS REVENUE_TYPE_ID
5739                                  , '-1'                     AS WORK_TYPE_ID
5740                                  , 0                        AS REVENUE
5741                                  , 0                        AS BURDENED_COST
5742                                  , 0                        AS FORECAST_REVENUE
5743                                  , 0                        AS FORECAST_BURDENED_COST
5744                                  , 0                        AS CT_REVENUE
5745                                  , 0                        AS CT_BURDENED_COST
5746                                  , 0                        AS CT_FORECAST_REVENUE
5747                                  , 0                        AS CT_FORECAST_BURDENED_COST
5748 		FROM	PJI_PMV_ORG_DIM_TMP HOU
5749 		WHERE   HOU.NAME <> '-1'
5750                 UNION ALL -- FORCE Creation of Organization Rows
5751                 SELECT           '-1'                       AS ORG_ID
5752                                  , HORG.NAME                AS ORGANIZATION_ID
5753                                  , '-1'                     AS PROJECT_CLASS_ID
5754                                  , '-1'                     AS EXPENDITURE_CATEGORY
5755                                  , '-1'                     AS EXPENDITURE_TYPE_ID
5756                                  , '-1'                     AS REVENUE_CATEGORY
5757                                  , '-1'                     AS REVENUE_TYPE_ID
5758                                  , '-1'                     AS WORK_TYPE_ID
5759                                  , 0                        AS REVENUE
5760                                  , 0                        AS BURDENED_COST
5761                                  , NULL                        AS FORECAST_REVENUE
5762                                  , NULL                        AS FORECAST_BURDENED_COST
5763                                  , 0                        AS CT_REVENUE
5764                                  , 0                        AS CT_BURDENED_COST
5765                                  , 0                        AS CT_FORECAST_REVENUE
5766                                  , 0                        AS CT_FORECAST_BURDENED_COST
5767 		FROM	 PJI_PMV_ORGZ_DIM_TMP HORG
5768 		WHERE    HORG.NAME <> '-1'
5769                 UNION ALL -- FORCE Creation of Class/Code Rows
5770                 SELECT           '-1'                       AS ORG_ID
5771                                  , '-1'                     AS ORGANIZATION_ID
5772                                  , decode(p_view_by, 'CC', CLS.name, '-1')                     AS PROJECT_CLASS_ID
5773                                  , '-1'             AS EXPENDITURE_CATEGORY
5774                                  , '-1'             AS EXPENDITURE_TYPE_ID
5775                                  , '-1'                     AS REVENUE_CATEGORY
5776                                  , '-1'                     AS REVENUE_TYPE_ID
5777                                  , '-1'                     AS WORK_TYPE_ID
5778                                  , 0                        AS REVENUE
5779                                  , 0                        AS BURDENED_COST
5780                                  , NULL                        AS FORECAST_REVENUE
5781                                  , NULL                        AS FORECAST_BURDENED_COST
5782                                  , 0                        AS CT_REVENUE
5783                                  , 0                        AS CT_BURDENED_COST
5784                                  , 0                        AS CT_FORECAST_REVENUE
5785                                  , 0                        AS CT_FORECAST_BURDENED_COST
5786 		FROM	 PJI_PMV_CLS_DIM_TMP CLS
5787 		WHERE    CLS.NAME <> '-1'
5788                 UNION ALL -- FORCE Creation of Expenditure Category/Type Rows
5789                 SELECT           '-1'                       AS ORG_ID
5790                                  , '-1'                     AS ORGANIZATION_ID
5791                                  , '-1'                     AS PROJECT_CLASS_ID
5792                                  , decode(p_view_by, 'EC', ET.name, '-1')             AS EXPENDITURE_CATEGORY
5793                                  , decode(p_view_by, 'ET', ET.name, '-1')             AS EXPENDITURE_TYPE_ID
5794                                  , decode(p_view_by, 'RC', ET.name, '-1')             AS REVENUE_CATEGORY
5795                                  , decode(p_view_by, 'RT', ET.name, '-1')             AS REVENUE_TYPE_ID
5796                                  , '-1'                     AS WORK_TYPE_ID
5797                                  , 0                        AS REVENUE
5798                                  , 0                        AS BURDENED_COST
5799                                  , NULL                        AS FORECAST_REVENUE
5800                                  , NULL                        AS FORECAST_BURDENED_COST
5801                                  , 0                        AS CT_REVENUE
5802                                  , 0                        AS CT_BURDENED_COST
5803                                  , 0                        AS CT_FORECAST_REVENUE
5804                                  , 0                        AS CT_FORECAST_BURDENED_COST
5805 		FROM	 PJI_PMV_ET_RT_DIM_TMP ET
5806 		WHERE    ET.NAME <> '-1'
5807                 UNION ALL -- FORCE Creation of Work Type Rows
5808                 SELECT           '-1'                       AS ORG_ID
5809                                  , '-1'                     AS ORGANIZATION_ID
5810                                  , '-1'                     AS PROJECT_CLASS_ID
5811                                  , '-1'             AS EXPENDITURE_CATEGORY
5812                                  , '-1'             AS EXPENDITURE_TYPE_ID
5813                                  , '-1'                     AS REVENUE_CATEGORY
5814                                  , '-1'                     AS REVENUE_TYPE_ID
5815                                  , decode(p_view_by, 'WT', WT.name, '-1')                     AS WORK_TYPE_ID
5816                                  , 0                        AS REVENUE
5817                                  , 0                        AS BURDENED_COST
5818                                  , NULL                        AS FORECAST_REVENUE
5819                                  , NULL                        AS FORECAST_BURDENED_COST
5820                                  , 0                        AS CT_REVENUE
5821                                  , 0                        AS CT_BURDENED_COST
5822                                  , 0                        AS CT_FORECAST_REVENUE
5823                                  , 0                        AS CT_FORECAST_BURDENED_COST
5824 		FROM	 PJI_PMV_WT_DIM_TMP WT
5825 		WHERE    WT.NAME <> '-1'
5826 
5827 
5828                 )
5829            WHERE 1 = 1
5830             GROUP BY ORG_ID, ORGANIZATION_ID, PROJECT_CLASS_ID, EXPENDITURE_CATEGORY,EXPENDITURE_TYPE_ID,REVENUE_CATEGORY,
5831 	             REVENUE_TYPE_ID, WORK_TYPE_ID;
5832 
5833       END IF;-- p_Class_Codes_Ids NOT Passed by User
5834 
5835 	FOR i in 1..l_lines_tab.COUNT
5836 	LOOP
5837 
5838 		IF p_View_By = 'OG' THEN
5839 			IF l_lines_tab(i).ORGANIZATION_ID = l_Top_Organization_Name THEN
5840 				l_Top_Org_Index:=i;
5841 
5842 				/*
5843 				** Storing the total values at top org level.
5844 				*/
5845 				l_TO_Total_Revenue :=l_lines_tab(i).REVENUE;
5846 				l_TO_Total_Cost :=l_lines_tab(i).BURDENED_COST;
5847 				l_TO_Total_Forecast_Revenue :=l_lines_tab(i).FORECAST_REVENUE;
5848 				l_TO_Total_Forecast_Cost :=l_lines_tab(i).FORECAST_BURDENED_COST;
5849 
5850 				l_TO_CT_Total_Revenue :=l_lines_tab(i).CT_REVENUE;
5851 				l_TO_CT_Total_Cost :=l_lines_tab(i).CT_BURDENED_COST;
5852 				l_TO_CT_Total_Forecast_Revenue :=l_lines_tab(i).CT_FORECAST_REVENUE;
5853 				l_TO_CT_Total_Forecast_Cost :=l_lines_tab(i).CT_FORECAST_BURDENED_COST;
5854 			ELSE
5855 				l_Total_Revenue		:=l_Total_Revenue
5856                        + NVL(l_lines_tab(i).REVENUE,0);
5857 				l_Total_Cost		:=l_Total_Cost
5858                        + NVL(l_lines_tab(i).BURDENED_COST,0);
5859 				l_Total_Forecast_Revenue:=l_Total_Forecast_Revenue
5860                        + NVL(l_lines_tab(i).FORECAST_REVENUE,0);
5861 				l_Total_Forecast_Cost	:=l_Total_Forecast_Cost
5862                        + NVL(l_lines_tab(i).FORECAST_BURDENED_COST,0);
5863 				l_CT_Total_Revenue	:=l_CT_Total_Revenue
5864                        + NVL(l_lines_tab(i).CT_REVENUE,0);
5865 				l_CT_Total_Cost		:=l_CT_Total_Cost
5866                        + NVL(l_lines_tab(i).CT_BURDENED_COST,0);
5867 				l_CT_Total_Forecast_Revenue	:=l_CT_Total_Forecast_Revenue
5868                        + NVL(l_lines_tab(i).CT_FORECAST_REVENUE,0);
5869 				l_CT_Total_Forecast_Cost:=l_CT_Total_Forecast_Cost
5870                        + NVL(l_lines_tab(i).CT_FORECAST_BURDENED_COST,0);
5871 			END IF;
5872 		ELSE
5873 			l_Total_Revenue		:=l_Total_Revenue
5874                       + NVL(l_lines_tab(i).REVENUE,0);
5875 			l_Total_Cost		:=l_Total_Cost
5876                       + NVL(l_lines_tab(i).BURDENED_COST,0);
5877 			l_Total_Forecast_Revenue:=l_Total_Forecast_Revenue
5878                       + NVL(l_lines_tab(i).FORECAST_REVENUE,0);
5879 			l_Total_Forecast_Cost	:=l_Total_Forecast_Cost
5880                       + NVL(l_lines_tab(i).FORECAST_BURDENED_COST,0);
5881 			l_CT_Total_Revenue	:=l_CT_Total_Revenue
5882                       + NVL(l_lines_tab(i).CT_REVENUE,0);
5883 			l_CT_Total_Cost		:=l_CT_Total_Cost
5884                       + NVL(l_lines_tab(i).CT_BURDENED_COST,0);
5885 			l_CT_Total_Forecast_Revenue	:=l_CT_Total_Forecast_Revenue
5886                       + NVL(l_lines_tab(i).CT_FORECAST_REVENUE,0);
5887 			l_CT_Total_Forecast_Cost:=l_CT_Total_Forecast_Cost
5888                       + NVL(l_lines_tab(i).CT_FORECAST_BURDENED_COST,0);
5889 		END IF;
5890 
5891 		l_lines_tab(i).MARGIN := l_lines_tab(i).REVENUE
5892 			- l_lines_tab(i).BURDENED_COST;
5893 		l_lines_tab(i).CT_MARGIN := l_lines_tab(i).CT_REVENUE
5894 			- l_lines_tab(i).CT_BURDENED_COST;
5895 		l_lines_tab(i).FCST_MARGIN := l_lines_tab(i).FORECAST_REVENUE
5896 			- l_lines_tab(i).FORECAST_BURDENED_COST;
5897 		l_lines_tab(i).FCST_CT_MARGIN := l_lines_tab(i).CT_FORECAST_REVENUE
5898 			- l_lines_tab(i).CT_FORECAST_BURDENED_COST;
5899 
5900 
5901 		IF NVL(l_lines_tab(i).REVENUE, 0) <> 0 THEN
5902 			l_lines_tab(i).MARGIN_PERCENT := 100 * (l_lines_tab(i).MARGIN
5903 				/ ABS( l_lines_tab(i).REVENUE));
5904 		ELSE
5905 			l_lines_tab(i).MARGIN_PERCENT := NULL;
5906 		END IF;
5907 
5908 
5909 		IF NVL(l_lines_tab(i).CT_REVENUE, 0) <> 0 THEN
5910 			l_lines_tab(i).CT_MARGIN_PERCENT := 100 * (l_lines_tab(i).CT_MARGIN
5911 				/ ABS( l_lines_tab(i).CT_REVENUE));
5912 			l_lines_tab(i).REV_CHANGE_PERCENT := 100 * ( (l_lines_tab(i).REVENUE
5913 				- l_lines_tab(i).CT_REVENUE)
5914 				/ ABS( l_lines_tab(i).CT_REVENUE));
5915 		ELSE
5916 			l_lines_tab(i).CT_MARGIN_PERCENT := NULL;
5917 			l_lines_tab(i).REV_CHANGE_PERCENT := NULL;
5918 		END IF;
5919 
5920 		IF NVL(l_lines_tab(i).CT_BURDENED_COST, 0) <> 0 THEN
5921 			l_lines_tab(i).CST_CHANGE_PERCENT := 100 * ( (l_lines_tab(i).BURDENED_COST
5922 				- l_lines_tab(i).CT_BURDENED_COST)
5923 				/ ABS( l_lines_tab(i).CT_BURDENED_COST));
5924 		ELSE
5925 			l_lines_tab(i).CST_CHANGE_PERCENT := NULL;
5926 		END IF;
5927 
5928 		IF NVL(l_lines_tab(i).CT_MARGIN, 0) <> 0 THEN
5929 			l_lines_tab(i).MAR_CHANGE_PERCENT := 100 * ( (l_lines_tab(i).MARGIN
5930 				- l_lines_tab(i).CT_MARGIN)
5931 				/ ABS( l_lines_tab(i).CT_MARGIN));
5932 		ELSE
5933 			l_lines_tab(i).MAR_CHANGE_PERCENT := NULL;
5934 		END IF;
5935 
5936 
5937 		IF NVL(l_lines_tab(i).FORECAST_REVENUE, 0) <> 0 THEN
5938 			l_lines_tab(i).FCST_MARGIN_PERCENT := 100 * (l_lines_tab(i).FCST_MARGIN
5939 				/ ABS( l_lines_tab(i).FORECAST_REVENUE));
5940 		ELSE
5941 			l_lines_tab(i).FCST_MARGIN_PERCENT := NULL;
5942 		END IF;
5943 
5944 		IF NVL(l_lines_tab(i).CT_FORECAST_REVENUE, 0) <> 0 THEN
5945 			l_lines_tab(i).FCST_CT_MARGIN_PERCENT := 100 * (l_lines_tab(i).FCST_CT_MARGIN
5946 				/ ABS( l_lines_tab(i).CT_FORECAST_REVENUE));
5947 			l_lines_tab(i).FCST_REV_CHANGE_PERCENT := 100 * ( (l_lines_tab(i).FORECAST_REVENUE
5948 				- l_lines_tab(i).CT_FORECAST_REVENUE)
5949 				/ ABS( l_lines_tab(i).CT_FORECAST_REVENUE));
5950 		ELSE
5951 			l_lines_tab(i).FCST_CT_MARGIN_PERCENT := NULL;
5952 			l_lines_tab(i).FCST_REV_CHANGE_PERCENT := NULL;
5953 		END IF;
5954 
5955 		IF NVL(l_lines_tab(i).CT_FORECAST_BURDENED_COST, 0) <> 0 THEN
5956 			l_lines_tab(i).FCST_CST_CHANGE_PERCENT := 100 * ( (l_lines_tab(i).FORECAST_BURDENED_COST
5957 				- l_lines_tab(i).CT_FORECAST_BURDENED_COST)
5958 				/ ABS( l_lines_tab(i).CT_FORECAST_BURDENED_COST));
5959 		ELSE
5960 			l_lines_tab(i).FCST_CST_CHANGE_PERCENT := NULL;
5961 		END IF;
5962 
5963 		IF NVL(l_lines_tab(i).FCST_CT_MARGIN, 0) <> 0 THEN
5964 			l_lines_tab(i).FCST_MAR_CHANGE_PERCENT := 100 * ( (l_lines_tab(i).FCST_MARGIN
5965 				- l_lines_tab(i).FCST_CT_MARGIN)
5966 				/ ABS( l_lines_tab(i).FCST_CT_MARGIN));
5967 		ELSE
5968 			l_lines_tab(i).FCST_MAR_CHANGE_PERCENT := NULL;
5969 		END IF;
5970 
5971 		l_lines_tab(i).MAR_PERCENT_CHANGE := l_lines_tab(i).MARGIN_PERCENT
5972 			- l_lines_tab(i).CT_MARGIN_PERCENT;
5973 		l_lines_tab(i).FCST_MAR_PERCENT_CHANGE := l_lines_tab(i).FCST_MARGIN_PERCENT
5974 			- l_lines_tab(i).FCST_CT_MARGIN_PERCENT;
5975 	END LOOP;
5976 
5977 
5978 	IF p_View_By = 'OG' THEN
5979 		l_lines_tab(l_Top_Org_Index).REVENUE
5980        		:=NVL(l_lines_tab(l_Top_Org_Index).REVENUE,0)-l_Total_Revenue;
5981 		l_lines_tab(l_Top_Org_Index).BURDENED_COST
5982 	        :=NVL(l_lines_tab(l_Top_Org_Index).BURDENED_COST,0)-l_Total_Cost;
5983 		l_lines_tab(l_Top_Org_Index).FORECAST_REVENUE
5984 	        :=NVL(l_lines_tab(l_Top_Org_Index).FORECAST_REVENUE,0)-l_Total_Forecast_Revenue;
5985 		l_lines_tab(l_Top_Org_Index).FORECAST_BURDENED_COST
5986 	        :=NVL(l_lines_tab(l_Top_Org_Index).FORECAST_BURDENED_COST,0)-l_Total_Forecast_Cost;
5987 		l_lines_tab(l_Top_Org_Index).CT_REVENUE
5988 	        :=NVL(l_lines_tab(l_Top_Org_Index).CT_REVENUE,0)-l_CT_Total_Revenue;
5989 		l_lines_tab(l_Top_Org_Index).CT_BURDENED_COST
5990 	        :=NVL(l_lines_tab(l_Top_Org_Index).CT_BURDENED_COST,0)-l_CT_Total_Cost;
5991 		l_lines_tab(l_Top_Org_Index).CT_FORECAST_REVENUE
5992 	        :=NVL(l_lines_tab(l_Top_Org_Index).CT_FORECAST_REVENUE,0)-l_CT_Total_Forecast_Revenue;
5993 		l_lines_tab(l_Top_Org_Index).CT_FORECAST_BURDENED_COST
5994 	        :=NVL(l_lines_tab(l_Top_Org_Index).CT_FORECAST_BURDENED_COST,0)-l_CT_Total_Forecast_Cost;
5995 
5996 		l_lines_tab(l_Top_Org_Index).MARGIN := l_lines_tab(l_Top_Org_Index).REVENUE
5997 			- l_lines_tab(l_Top_Org_Index).BURDENED_COST;
5998 		l_lines_tab(l_Top_Org_Index).CT_MARGIN := l_lines_tab(l_Top_Org_Index).CT_REVENUE
5999 			- l_lines_tab(l_Top_Org_Index).CT_BURDENED_COST;
6000 
6001 		l_lines_tab(l_Top_Org_Index).FCST_MARGIN := l_lines_tab(l_Top_Org_Index).FORECAST_REVENUE
6002 			- l_lines_tab(l_Top_Org_Index).FORECAST_BURDENED_COST;
6003 		l_lines_tab(l_Top_Org_Index).FCST_CT_MARGIN := l_lines_tab(l_Top_Org_Index).CT_FORECAST_REVENUE
6004 			- l_lines_tab(l_Top_Org_Index).CT_FORECAST_BURDENED_COST;
6005 
6006 		IF NVL(l_lines_tab(l_Top_Org_Index).REVENUE, 0) <> 0 THEN
6007 			l_lines_tab(l_Top_Org_Index).MARGIN_PERCENT := 100*(l_lines_tab(l_Top_Org_Index).MARGIN
6008 				/ ABS( l_lines_tab(l_Top_Org_Index).REVENUE));
6009 		ELSE
6010 			l_lines_tab(l_Top_Org_Index).MARGIN_PERCENT := NULL;
6011 		END IF;
6012 
6013 		IF NVL(l_lines_tab(l_Top_Org_Index).CT_REVENUE, 0) <> 0 THEN
6014 			l_lines_tab(l_Top_Org_Index).CT_MARGIN_PERCENT := 100*(l_lines_tab(l_Top_Org_Index).CT_MARGIN
6015 				/ ABS( l_lines_tab(l_Top_Org_Index).CT_REVENUE));
6016 			l_lines_tab(l_Top_Org_Index).REV_CHANGE_PERCENT := 100*((l_lines_tab(l_Top_Org_Index).REVENUE
6017 				- l_lines_tab(l_Top_Org_Index).CT_REVENUE)/ABS( l_lines_tab(l_Top_Org_Index).CT_REVENUE));
6018 		ELSE
6019 			l_lines_tab(l_Top_Org_Index).CT_MARGIN_PERCENT := NULL;
6020 			l_lines_tab(l_Top_Org_Index).REV_CHANGE_PERCENT := NULL;
6021 		END IF;
6022 
6023 		IF NVL(l_lines_tab(l_Top_Org_Index).CT_BURDENED_COST, 0) <> 0 THEN
6024 			l_lines_tab(l_Top_Org_Index).CST_CHANGE_PERCENT := 100*((l_lines_tab(l_Top_Org_Index).BURDENED_COST
6025 				- l_lines_tab(l_Top_Org_Index).CT_BURDENED_COST)/ABS(
6026 
6027 l_lines_tab(l_Top_Org_Index).CT_BURDENED_COST));
6028 		ELSE
6029 			l_lines_tab(l_Top_Org_Index).CST_CHANGE_PERCENT := NULL;
6030 		END IF;
6031 
6032 		IF NVL(l_lines_tab(l_Top_Org_Index).CT_MARGIN, 0) <> 0 THEN
6033 			l_lines_tab(l_Top_Org_Index).MAR_CHANGE_PERCENT := 100*((l_lines_tab(l_Top_Org_Index).MARGIN
6034 				- l_lines_tab(l_Top_Org_Index).CT_MARGIN)/ABS( l_lines_tab(l_Top_Org_Index).CT_MARGIN));
6035 		ELSE
6036 			l_lines_tab(l_Top_Org_Index).MAR_CHANGE_PERCENT := NULL;
6037 		END IF;
6038 
6039 		IF NVL(l_lines_tab(l_Top_Org_Index).FORECAST_REVENUE, 0) <> 0 THEN
6040 			l_lines_tab(l_Top_Org_Index).FCST_MARGIN_PERCENT := 100*(l_lines_tab(l_Top_Org_Index).FCST_MARGIN
6041 				/ ABS( l_lines_tab(l_Top_Org_Index).FORECAST_REVENUE));
6042 		ELSE
6043 			l_lines_tab(l_Top_Org_Index).FCST_MARGIN_PERCENT := NULL;
6044 		END IF;
6045 
6046 		IF NVL(l_lines_tab(l_Top_Org_Index).CT_FORECAST_REVENUE, 0) <> 0 THEN
6047 			l_lines_tab(l_Top_Org_Index).FCST_CT_MARGIN_PERCENT :=
6048 
6049 100*(l_lines_tab(l_Top_Org_Index).FCST_CT_MARGIN
6050 				/ ABS( l_lines_tab(l_Top_Org_Index).CT_FORECAST_REVENUE));
6051 			l_lines_tab(l_Top_Org_Index).FCST_REV_CHANGE_PERCENT :=
6052 
6053 100*((l_lines_tab(l_Top_Org_Index).FORECAST_REVENUE
6054 				- l_lines_tab(l_Top_Org_Index).CT_FORECAST_REVENUE)/ABS(
6055 
6056 l_lines_tab(l_Top_Org_Index).CT_FORECAST_REVENUE));
6057 		ELSE
6058 			l_lines_tab(l_Top_Org_Index).FCST_CT_MARGIN_PERCENT := NULL;
6059 			l_lines_tab(l_Top_Org_Index).FCST_REV_CHANGE_PERCENT := NULL;
6060 		END IF;
6061 
6062 		IF NVL(l_lines_tab(l_Top_Org_Index).CT_FORECAST_BURDENED_COST, 0) <> 0 THEN
6063 			l_lines_tab(l_Top_Org_Index).FCST_CST_CHANGE_PERCENT :=
6064 
6065 100*((l_lines_tab(l_Top_Org_Index).FORECAST_BURDENED_COST
6066 			- l_lines_tab(l_Top_Org_Index).CT_FORECAST_BURDENED_COST)/ABS(
6067 
6068 l_lines_tab(l_Top_Org_Index).CT_FORECAST_BURDENED_COST));
6069 		ELSE
6070 			l_lines_tab(l_Top_Org_Index).FCST_CST_CHANGE_PERCENT := NULL;
6071 		END IF;
6072 
6073 		IF NVL(l_lines_tab(l_Top_Org_Index).FCST_CT_MARGIN, 0) <> 0 THEN
6074 			l_lines_tab(l_Top_Org_Index).FCST_MAR_CHANGE_PERCENT :=
6075 
6076 100*((l_lines_tab(l_Top_Org_Index).FCST_MARGIN
6077 				- l_lines_tab(l_Top_Org_Index).FCST_CT_MARGIN)/ABS(
6078 
6079 l_lines_tab(l_Top_Org_Index).FCST_CT_MARGIN));
6080 		ELSE
6081 			l_lines_tab(l_Top_Org_Index).FCST_MAR_CHANGE_PERCENT := NULL;
6082 		END IF;
6083 
6084 		l_lines_tab(l_Top_Org_Index).MAR_PERCENT_CHANGE := l_lines_tab(l_Top_Org_Index).MARGIN_PERCENT
6085 			- l_lines_tab(l_Top_Org_Index).CT_MARGIN_PERCENT;
6086 		l_lines_tab(l_Top_Org_Index).FCST_MAR_PERCENT_CHANGE := l_lines_tab(l_Top_Org_Index).FCST_MARGIN_PERCENT
6087 			- l_lines_tab(l_Top_Org_Index).FCST_CT_MARGIN_PERCENT;
6088 
6089 		IF NVL( l_lines_tab(l_Top_Org_Index).REVENUE, 0 ) = 0
6090 			AND NVL( l_lines_tab(l_Top_Org_Index).BURDENED_COST, 0 ) = 0
6091 			AND NVL( l_lines_tab(l_Top_Org_Index).FORECAST_REVENUE, 0 ) = 0
6092 			AND NVL( l_lines_tab(l_Top_Org_Index).FORECAST_BURDENED_COST, 0 ) = 0
6093 			AND NVL( l_lines_tab(l_Top_Org_Index).CT_REVENUE, 0 ) = 0
6094 			AND NVL( l_lines_tab(l_Top_Org_Index).CT_BURDENED_COST, 0 ) = 0
6095 			AND NVL( l_lines_tab(l_Top_Org_Index).CT_FORECAST_REVENUE, 0 ) = 0
6096 			AND NVL( l_lines_tab(l_Top_Org_Index).CT_FORECAST_BURDENED_COST, 0 ) = 0
6097 			AND NVL( l_lines_tab(l_Top_Org_Index).MARGIN, 0 ) = 0
6098 			AND NVL( l_lines_tab(l_Top_Org_Index).CT_MARGIN, 0 ) = 0
6099 			AND NVL( l_lines_tab(l_Top_Org_Index).MARGIN_PERCENT, 0 ) = 0
6100 			AND NVL( l_lines_tab(l_Top_Org_Index).CT_MARGIN_PERCENT, 0 ) = 0
6101 			AND NVL( l_lines_tab(l_Top_Org_Index).CST_CHANGE_PERCENT, 0 ) = 0
6102 			AND NVL( l_lines_tab(l_Top_Org_Index).REV_CHANGE_PERCENT, 0 ) = 0
6103 			AND NVL( l_lines_tab(l_Top_Org_Index).MAR_CHANGE_PERCENT, 0 ) = 0
6104 			AND NVL( l_lines_tab(l_Top_Org_Index).MAR_PERCENT_CHANGE, 0 ) = 0
6105 			AND NVL( l_lines_tab(l_Top_Org_Index).FCST_MARGIN, 0 ) = 0
6106 			AND NVL( l_lines_tab(l_Top_Org_Index).FCST_CT_MARGIN, 0 ) = 0
6107 			AND NVL( l_lines_tab(l_Top_Org_Index).FCST_MARGIN_PERCENT, 0 ) = 0
6108 			AND NVL( l_lines_tab(l_Top_Org_Index).FCST_CT_MARGIN_PERCENT, 0 ) = 0
6109 			AND NVL( l_lines_tab(l_Top_Org_Index).FCST_CST_CHANGE_PERCENT, 0 ) = 0
6110 			AND NVL( l_lines_tab(l_Top_Org_Index).FCST_REV_CHANGE_PERCENT, 0 ) = 0
6111 			AND NVL( l_lines_tab(l_Top_Org_Index).FCST_MAR_CHANGE_PERCENT, 0 ) = 0
6112 			AND NVL( l_lines_tab(l_Top_Org_Index).FCST_MAR_PERCENT_CHANGE, 0 ) = 0
6113 		THEN
6114 			l_lines_tab.DELETE(l_Top_Org_Index);
6115 		END IF;
6116 		l_Total_Revenue:=l_TO_Total_Revenue;
6117 		l_Total_Cost:=l_TO_Total_Cost;
6118 		l_Total_Forecast_Revenue:=l_TO_Total_Forecast_Revenue;
6119 		l_Total_Forecast_Cost:=l_TO_Total_Forecast_Cost;
6120 		l_CT_Total_Revenue:=l_TO_CT_Total_Revenue;
6121 		l_CT_Total_Cost:=l_TO_CT_Total_Cost;
6122 		l_CT_Total_Forecast_Revenue:=l_TO_CT_Total_Forecast_Revenue;
6123 		l_CT_Total_Forecast_Cost:=l_TO_CT_Total_Forecast_Cost;
6124 	END IF;
6125 
6126 	IF l_lines_tab.COUNT > 0 THEN
6127 	FOR i in l_lines_tab.FIRST..l_lines_tab.LAST
6128 	LOOP
6129 		IF l_lines_tab.EXISTS(i) THEN
6130 			l_lines_tab(i).PJI_REP_TOTAL_1:=l_Total_Revenue;
6131 			l_lines_tab(i).PJI_REP_TOTAL_2:=l_Total_Cost;
6132 			l_lines_tab(i).PJI_REP_TOTAL_3:=l_Total_Forecast_Revenue;
6133 			l_lines_tab(i).PJI_REP_TOTAL_4:=l_Total_Forecast_Cost;
6134 			l_lines_tab(i).PJI_REP_TOTAL_5:=l_CT_Total_Revenue;
6135 			l_lines_tab(i).PJI_REP_TOTAL_6:=l_CT_Total_Cost;
6136 			l_lines_tab(i).PJI_REP_TOTAL_7:=l_CT_Total_Forecast_Revenue;
6137 			l_lines_tab(i).PJI_REP_TOTAL_8:=l_CT_Total_Forecast_Cost;
6138 
6139 			/* Actual Amount */
6140 			l_lines_tab(i).PJI_REP_TOTAL_9:=l_Total_Revenue-l_Total_Cost; -- Total Margin
6141 			l_lines_tab(i).PJI_REP_TOTAL_10:=l_CT_Total_Revenue-l_CT_Total_Cost; -- Total CT Margin
6142 
6143 			IF NVL(l_Total_Revenue, 0) <> 0 THEN
6144 				l_lines_tab(i).PJI_REP_TOTAL_11:=100*((l_Total_Revenue-l_Total_Cost)/ABS( l_Total_Revenue));
6145 
6146 -- Margin %
6147 			ELSE
6148 				l_lines_tab(i).PJI_REP_TOTAL_11:=NULL;
6149 			END IF;
6150 
6151 			IF NVL(l_CT_Total_Revenue, 0) <> 0 THEN
6152 				l_lines_tab(i).PJI_REP_TOTAL_12:=100*((l_CT_Total_Revenue-l_CT_Total_Cost)/ABS(
6153 
6154 l_CT_Total_Revenue)); -- CT Margin %
6155 				l_lines_tab(i).PJI_REP_TOTAL_14:=100*((l_Total_Revenue-l_CT_Total_Revenue)/ABS(
6156 
6157 l_CT_Total_Revenue)); -- Revenue Change %
6158 			ELSE
6159 				l_lines_tab(i).PJI_REP_TOTAL_12:=NULL;
6160 				l_lines_tab(i).PJI_REP_TOTAL_14:=NULL;
6161 			END IF;
6162 
6163 			IF NVL(l_CT_Total_Cost, 0) <> 0 THEN
6164 				l_lines_tab(i).PJI_REP_TOTAL_13:=100*((l_Total_Cost-l_CT_Total_Cost)/ABS( l_CT_Total_Cost));
6165 
6166 -- Cost Change %
6167 			ELSE
6168 				l_lines_tab(i).PJI_REP_TOTAL_13:=NULL;
6169 			END IF;
6170 
6171 			IF NVL(l_lines_tab(i).PJI_REP_TOTAL_10, 0) <> 0 THEN
6172 
6173 
6174 l_lines_tab(i).PJI_REP_TOTAL_15:=100*((l_lines_tab(i).PJI_REP_TOTAL_9-l_lines_tab(i).PJI_REP_TOTAL_10)
6175 					/ABS( l_lines_tab(i).PJI_REP_TOTAL_10)); -- Margin Change %
6176 			ELSE
6177 				l_lines_tab(i).PJI_REP_TOTAL_15:=NULL;
6178 			END IF;
6179 
6180 			l_lines_tab(i).PJI_REP_TOTAL_16:=l_lines_tab(i).PJI_REP_TOTAL_11-l_lines_tab(i).PJI_REP_TOTAL_12;
6181 
6182 -- Margin % Change
6183 
6184 			/* Forecast Amount */
6185 			l_lines_tab(i).PJI_REP_TOTAL_17:=l_Total_Forecast_Revenue-l_Total_Forecast_Cost; -- Total Margin
6186 			l_lines_tab(i).PJI_REP_TOTAL_18:=l_CT_Total_Forecast_Revenue-l_CT_Total_Forecast_Cost; -- Total CT Margin
6187 
6188 			IF NVL(l_Total_Forecast_Revenue, 0) <> 0 THEN
6189 				l_lines_tab(i).PJI_REP_TOTAL_19:=100*((l_Total_Forecast_Revenue-l_Total_Forecast_Cost)/ABS(
6190 
6191 l_Total_Forecast_Revenue)); -- Margin %
6192 			ELSE
6193 				l_lines_tab(i).PJI_REP_TOTAL_19:=NULL;
6194 			END IF;
6195 
6196 			IF NVL(l_CT_Total_Forecast_Revenue, 0) <> 0 THEN
6197 
6198 
6199 l_lines_tab(i).PJI_REP_TOTAL_20:=100*((l_CT_Total_Forecast_Revenue-l_CT_Total_Forecast_Cost)/ABS(
6200 
6201 l_CT_Total_Forecast_Revenue)); -- CT Margin %
6202 
6203 
6204 l_lines_tab(i).PJI_REP_TOTAL_22:=100*((l_Total_Forecast_Revenue-l_CT_Total_Forecast_Revenue)/ABS(
6205 
6206 l_CT_Total_Forecast_Revenue)); -- Revenue Change %
6207 			ELSE
6208 				l_lines_tab(i).PJI_REP_TOTAL_20:=NULL;
6209 				l_lines_tab(i).PJI_REP_TOTAL_22:=NULL;
6210 			END IF;
6211 
6212 			IF NVL(l_CT_Total_Forecast_Cost, 0) <> 0 THEN
6213 				l_lines_tab(i).PJI_REP_TOTAL_21:=100*((l_Total_Forecast_Cost-l_CT_Total_Forecast_Cost)/ABS(
6214 
6215 l_CT_Total_Forecast_Cost)); -- Cost Change %
6216 			ELSE
6217 				l_lines_tab(i).PJI_REP_TOTAL_21:=NULL;
6218 			END IF;
6219 
6220 			IF NVL(l_lines_tab(i).PJI_REP_TOTAL_18, 0) <> 0 THEN
6221 
6222 
6223 l_lines_tab(i).PJI_REP_TOTAL_23:=100*((l_lines_tab(i).PJI_REP_TOTAL_17-l_lines_tab(i).PJI_REP_TOTAL_18)
6224 					/ABS( l_lines_tab(i).PJI_REP_TOTAL_18)); -- Margin Change %
6225 			ELSE
6226 				l_lines_tab(i).PJI_REP_TOTAL_23:=NULL;
6227 			END IF;
6228 
6229 			l_lines_tab(i).PJI_REP_TOTAL_24:=l_lines_tab(i).PJI_REP_TOTAL_19-l_lines_tab(i).PJI_REP_TOTAL_20; -- Margin % Change
6230 
6231 		END IF;
6232 	END LOOP;
6233 	END IF;
6234 
6235 /*
6236 ** ---------------------------------------------------+
6237 ** --	 Return the bulk collected table back to pmv.-+
6238 ** ---------------------------------------------------+
6239 */
6240 	COMMIT;
6241 
6242 
6243 	RETURN l_lines_tab;
6244 
6245 
6246 END PLSQLDriver_PJI_REP_PPSUM;
6247 
6248 END PJI_PMV_PROFITABILITY;
6249