[Home] [Help]
PACKAGE BODY: APPS.PA_MAINT_PROJECT_BUDGETS
Source
1 PACKAGE BODY PA_MAINT_PROJECT_BUDGETS AS
2 /* $Header: PAACBUDB.pls 120.2 2005/09/26 15:06:48 jwhite noship $ */
3
4 --
5 --History:
6 -- xx-xxx-xxxx who? - Created
7 --
8 -- 26-SEP-2002 jwhite - Converted to support both r11.5.7 Budget and FP models.
9 -- 1) modified cursors to include FP model.
10 -- 2) passed fin_plan_type_id to lower-level procedures for
11 -- table insert.
12 -- 31-Jan-2004 sacgupta - Modified cursor PA_Budget_Cur. Added logic to consider
13 -- x_Budget_Type_Code if passed as a parameter.
14 --
15 Procedure Process_Budget_Txns (X_project_id in Number,
16 X_impl_opt In Varchar2,
17 x_Proj_accum_id in Number,
18 x_Budget_Type_code in Varchar2,
19 x_current_period in Varchar2,
20 x_prev_period in Varchar2,
21 x_current_year in Number,
22 x_prev_accum_period in Varchar2,
23 x_current_start_date In Date,
24 x_current_end_date In Date,
25 x_err_stack In Out NOCOPY Varchar2, --File.Sql.39 bug 4440895
26 x_err_stage In Out NOCOPY Varchar2, --File.Sql.39 bug 4440895
27 x_err_code In Out NOCOPY Number ) Is --File.Sql.39 bug 4440895
28
29 -- This cursor fetches all records from pavw669 views
30 -- which have not yet been accumulated.
31
32 CURSOR PA_Budget_Cur IS
33 Select
34 PAB.PROJECT_ID,
35 PAB.BUDGET_TYPE_CODE,
36 PAB.fin_plan_type_id,
37 PAB.TASK_ID task_id,
38 PAB.RESOURCE_LIST_MEMBER_ID,
39 PAB.RESOURCE_LIST_ID,
40 PAB.RESOURCE_ID,
41 ----------------------
42 SUM(NVL(PAB.BASE_RAW_COST,0)) BASE_RAW_COST,
43 SUM(NVL(PAB.BASE_BURDENED_COST,0)) BASE_BURDENED_COST,
44 SUM(NVL(PAB.BASE_REVENUE,0)) BASE_REVENUE,
45 SUM(NVL(PAB.BASE_QUANTITY,0)) BASE_QUANTITY,
46 SUM(NVL(PAB.BASE_LABOR_QUANTITY,0)) BASE_LABOR_QUANTITY,
47 SUM(NVL(PAB.ORIG_RAW_COST,0)) ORIG_RAW_COST,
48 SUM(NVL(PAB.ORIG_BURDENED_COST,0)) ORIG_BURDENED_COST,
49 SUM(NVL(PAB.ORIG_REVENUE,0)) ORIG_REVENUE,
50 SUM(NVL(PAB.ORIG_QUANTITY,0)) ORIG_QUANTITY,
51 SUM(NVL(PAB.ORIG_LABOR_QUANTITY,0)) ORIG_LABOR_QUANTITY,
52 ----------------------
53 SUM(NVL(PAB.RAW_COST_ITD_BASE,0)) BASE_RAW_COST_ITD,
54 SUM(NVL(PAB.BURDENED_COST_ITD_BASE,0)) BASE_BURDENED_COST_ITD,
55 SUM(NVL(PAB.REVENUE_ITD_BASE,0)) BASE_REVENUE_ITD,
56 SUM(NVL(PAB.QUANTITY_ITD_BASE,0)) BASE_QUANTITY_ITD,
57 SUM(NVL(PAB.LABOR_QUANTITY_ITD_BASE,0)) BASE_LABOR_QUANTITY_ITD,
58 SUM(NVL(PAB.RAW_COST_PTD_BASE,0)) BASE_RAW_COST_PTD,
59 SUM(NVL(PAB.BURDENED_COST_PTD_BASE,0)) BASE_BURDENED_COST_PTD,
60 SUM(NVL(PAB.REVENUE_PTD_BASE,0)) BASE_REVENUE_PTD,
61 SUM(NVL(PAB.QUANTITY_PTD_BASE,0)) BASE_QUANTITY_PTD,
62 SUM(NVL(PAB.LABOR_QUANTITY_PTD_BASE,0)) BASE_LABOR_QUANTITY_PTD,
63 SUM(NVL(PAB.RAW_COST_PP_BASE,0)) BASE_RAW_COST_PP,
64 SUM(NVL(PAB.BURDENED_COST_PP_BASE,0)) BASE_BURDENED_COST_PP,
65 SUM(NVL(PAB.REVENUE_PP_BASE,0)) BASE_REVENUE_PP,
66 SUM(NVL(PAB.QUANTITY_PP_BASE,0)) BASE_QUANTITY_PP,
67 SUM(NVL(PAB.LABOR_QUANTITY_PP_BASE,0)) BASE_LABOR_QUANTITY_PP,
68 SUM(NVL(PAB.RAW_COST_YTD_BASE,0)) BASE_RAW_COST_YTD,
69 SUM(NVL(PAB.BURDENED_COST_YTD_BASE,0)) BASE_BURDENED_COST_YTD,
70 SUM(NVL(PAB.REVENUE_YTD_BASE,0)) BASE_REVENUE_YTD,
71 SUM(NVL(PAB.QUANTITY_YTD_BASE,0)) BASE_QUANTITY_YTD,
72 SUM(NVL(PAB.LABOR_QUANTITY_YTD_BASE,0)) BASE_LABOR_QUANTITY_YTD,
73 SUM(NVL(PAB.RAW_COST_ITD_ORIG,0)) ORIG_RAW_COST_ITD,
74 SUM(NVL(PAB.BURDENED_COST_ITD_ORIG,0)) ORIG_BURDENED_COST_ITD,
75 SUM(NVL(PAB.REVENUE_ITD_ORIG,0)) ORIG_REVENUE_ITD,
76 SUM(NVL(PAB.QUANTITY_ITD_ORIG,0)) ORIG_QUANTITY_ITD,
77 SUM(NVL(PAB.LABOR_QUANTITY_ITD_ORIG,0)) ORIG_LABOR_QUANTITY_ITD,
78 SUM(NVL(PAB.RAW_COST_PTD_ORIG,0)) ORIG_RAW_COST_PTD,
79 SUM(NVL(PAB.BURDENED_COST_PTD_ORIG,0)) ORIG_BURDENED_COST_PTD,
80 SUM(NVL(PAB.REVENUE_PTD_ORIG,0)) ORIG_REVENUE_PTD,
81 SUM(NVL(PAB.QUANTITY_PTD_ORIG,0)) ORIG_QUANTITY_PTD,
82 SUM(NVL(PAB.LABOR_QUANTITY_PTD_ORIG,0)) ORIG_LABOR_QUANTITY_PTD,
83 SUM(NVL(PAB.RAW_COST_PP_ORIG,0)) ORIG_RAW_COST_PP,
84 SUM(NVL(PAB.BURDENED_COST_PP_ORIG,0)) ORIG_BURDENED_COST_PP,
85 SUM(NVL(PAB.REVENUE_PP_ORIG,0)) ORIG_REVENUE_PP,
86 SUM(NVL(PAB.QUANTITY_PP_ORIG,0)) ORIG_QUANTITY_PP,
87 SUM(NVL(PAB.LABOR_QUANTITY_PP_ORIG,0)) ORIG_LABOR_QUANTITY_PP,
88 SUM(NVL(PAB.RAW_COST_YTD_ORIG,0)) ORIG_RAW_COST_YTD,
89 SUM(NVL(PAB.BURDENED_COST_YTD_ORIG,0)) ORIG_BURDENED_COST_YTD,
90 SUM(NVL(PAB.REVENUE_YTD_ORIG,0)) ORIG_REVENUE_YTD,
91 SUM(NVL(PAB.QUANTITY_YTD_ORIG,0)) ORIG_QUANTITY_YTD,
92 SUM(NVL(PAB.LABOR_QUANTITY_YTD_ORIG,0)) ORIG_LABOR_QUANTITY_YTD,
93 PAB.UNIT_OF_MEASURE_BASE BASE_UNIT_OF_MEASURE,
94 PAB.UNIT_OF_MEASURE_ORIG ORIG_UNIT_OF_MEASURE,
95 PAB.ROLLUP_QUANTITY_FLAG,
96 PAB.RESOURCE_LIST_ASSIGNMENT_ID
97 FROM
98 (
99 SELECT
100 BGT.PROJECT_ID,
101 BGT.BUDGET_TYPE_CODE,
102 BGT.fin_plan_type_id,
103 BGT.TASK_ID,
104 BGT.RESOURCE_LIST_MEMBER_ID,
105 BGT.RESOURCE_LIST_ID,
106 BGT.RESOURCE_ID,
107 BGT.BASE_RAW_COST,
108 BGT.BASE_BURDENED_COST,
109 BGT.BASE_REVENUE,
110 BGT.BASE_QUANTITY,
111 BGT.BASE_LABOR_QUANTITY,
112 BGT.ORIG_RAW_COST,
113 BGT.ORIG_BURDENED_COST,
114 BGT.ORIG_REVENUE,
115 BGT.ORIG_QUANTITY,
116 BGT.ORIG_LABOR_QUANTITY,
117 BGT.RAW_COST_ITD_BASE,
118 BGT.BURDENED_COST_ITD_BASE,
119 BGT.REVENUE_ITD_BASE,
120 BGT.QUANTITY_ITD_BASE,
121 BGT.LABOR_QUANTITY_ITD_BASE,
122 BGT.RAW_COST_PTD_BASE,
123 BGT.BURDENED_COST_PTD_BASE,
124 BGT.REVENUE_PTD_BASE,
125 BGT.QUANTITY_PTD_BASE,
126 BGT.LABOR_QUANTITY_PTD_BASE,
127 BGT.RAW_COST_PP_BASE,
128 BGT.BURDENED_COST_PP_BASE,
129 BGT.REVENUE_PP_BASE,
130 BGT.QUANTITY_PP_BASE,
131 BGT.LABOR_QUANTITY_PP_BASE,
132 BGT.RAW_COST_YTD_BASE,
133 BGT.BURDENED_COST_YTD_BASE,
134 BGT.REVENUE_YTD_BASE,
135 BGT.QUANTITY_YTD_BASE,
136 BGT.LABOR_QUANTITY_YTD_BASE,
137 BGT.RAW_COST_ITD_ORIG,
138 BGT.BURDENED_COST_ITD_ORIG,
139 BGT.REVENUE_ITD_ORIG,
140 BGT.QUANTITY_ITD_ORIG,
141 BGT.LABOR_QUANTITY_ITD_ORIG,
142 BGT.RAW_COST_PTD_ORIG,
143 BGT.BURDENED_COST_PTD_ORIG,
144 BGT.REVENUE_PTD_ORIG,
145 BGT.QUANTITY_PTD_ORIG,
146 BGT.LABOR_QUANTITY_PTD_ORIG,
147 BGT.RAW_COST_PP_ORIG,
148 BGT.BURDENED_COST_PP_ORIG,
149 BGT.REVENUE_PP_ORIG,
150 BGT.QUANTITY_PP_ORIG,
151 BGT.LABOR_QUANTITY_PP_ORIG,
152 BGT.RAW_COST_YTD_ORIG,
153 BGT.BURDENED_COST_YTD_ORIG,
154 BGT.REVENUE_YTD_ORIG,
155 BGT.QUANTITY_YTD_ORIG,
156 BGT.LABOR_QUANTITY_YTD_ORIG,
157 BGT.UNIT_OF_MEASURE_BASE,
158 BGT.UNIT_OF_MEASURE_ORIG,
159 PAR.ROLLUP_QUANTITY_FLAG,
160 PARLA.RESOURCE_LIST_ASSIGNMENT_ID
161 FROM PA_TODATE_BASE_ORIG_BUDGET_V BGT
162 , PA_RESOURCES PAR
163 , PA_RESOURCE_LIST_ASSIGNMENTS PARLA
164 WHERE BGT.PROJECT_ID = x_project_id
165 and BGT.RESOURCE_ACCUMULATED_FLAG = 'N'
166 and BGT.RESOURCE_ID = PAR.RESOURCE_ID
167 And PARLA.PROJECT_ID = x_project_id
168 and PARLA.RESOURCE_LIST_ID = BGT.RESOURCE_LIST_ID
169 and bgt.budget_type_code IS NOT NULL -- r11.5.7 Budget Model
170 and bgt.budget_type_code = NVL(x_budget_type_code, bgt.budget_type_code) -- Added by Sachin.
171 UNION ALL
172 SELECT
173 BGT.PROJECT_ID,
174 to_char(BGT.fin_plan_type_id) BUDGET_TYPE_CODE,
175 BGT.fin_plan_type_id,
176 BGT.TASK_ID,
177 BGT.RESOURCE_LIST_MEMBER_ID,
178 BGT.RESOURCE_LIST_ID,
179 BGT.RESOURCE_ID,
180 BGT.BASE_RAW_COST,
181 BGT.BASE_BURDENED_COST,
182 BGT.BASE_REVENUE,
183 BGT.BASE_QUANTITY,
184 decode(bgt.track_as_labor_flag, NULL,decode(bgt.resource_class_code, 'PEOPLE',
185 decode(BGT.UNIT_OF_MEASURE_BASE,'HOURS',BGT.BASE_LABOR_QUANTITY,to_number(null)),to_number(null)),
186 BGT.BASE_LABOR_QUANTITY) BASE_LABOR_QUANTITY,
187 BGT.ORIG_RAW_COST,
188 BGT.ORIG_BURDENED_COST,
189 BGT.ORIG_REVENUE,
190 BGT.ORIG_QUANTITY,
191 decode(bgt.track_as_labor_flag, NULL,decode(bgt.resource_class_code, 'PEOPLE',
192 decode(BGT.UNIT_OF_MEASURE_ORIG,'HOURS',BGT.ORIG_LABOR_QUANTITY,to_number(null)),to_number(null)),
193 BGT.ORIG_LABOR_QUANTITY) ORIG_LABOR_QUANTITY,
194 BGT.RAW_COST_ITD_BASE,
195 BGT.BURDENED_COST_ITD_BASE,
196 BGT.REVENUE_ITD_BASE,
197 BGT.QUANTITY_ITD_BASE,
198 decode(bgt.track_as_labor_flag, NULL,decode(bgt.resource_class_code, 'PEOPLE',
199 decode(BGT.UNIT_OF_MEASURE_BASE,'HOURS',BGT.LABOR_QUANTITY_ITD_BASE,to_number(null)),to_number(null)),
200 BGT.LABOR_QUANTITY_ITD_BASE) LABOR_QUANTITY_ITD_BASE,
201 BGT.RAW_COST_PTD_BASE,
202 BGT.BURDENED_COST_PTD_BASE,
203 BGT.REVENUE_PTD_BASE,
204 BGT.QUANTITY_PTD_BASE,
205 decode(bgt.track_as_labor_flag, NULL,decode(bgt.resource_class_code, 'PEOPLE',
206 decode(BGT.UNIT_OF_MEASURE_BASE,'HOURS',BGT.LABOR_QUANTITY_PTD_BASE,to_number(null)),to_number(null)),
207 BGT.LABOR_QUANTITY_PTD_BASE) LABOR_QUANTITY_PTD_BASE,
208 BGT.RAW_COST_PP_BASE,
209 BGT.BURDENED_COST_PP_BASE,
210 BGT.REVENUE_PP_BASE,
211 BGT.QUANTITY_PP_BASE,
212 decode(bgt.track_as_labor_flag, NULL,decode(bgt.resource_class_code, 'PEOPLE',
213 decode(BGT.UNIT_OF_MEASURE_BASE,'HOURS',BGT.LABOR_QUANTITY_PP_BASE,to_number(null)),to_number(null)),
214 BGT.LABOR_QUANTITY_PP_BASE) LABOR_QUANTITY_PP_BASE,
215 BGT.RAW_COST_YTD_BASE,
216 BGT.BURDENED_COST_YTD_BASE,
217 BGT.REVENUE_YTD_BASE,
218 BGT.QUANTITY_YTD_BASE,
219 decode(bgt.track_as_labor_flag, NULL,decode(bgt.resource_class_code, 'PEOPLE',
220 decode(BGT.UNIT_OF_MEASURE_BASE,'HOURS',BGT.LABOR_QUANTITY_YTD_BASE,to_number(null)),to_number(null)),
221 BGT.LABOR_QUANTITY_YTD_BASE) LABOR_QUANTITY_YTD_BASE,
222 BGT.RAW_COST_ITD_ORIG,
223 BGT.BURDENED_COST_ITD_ORIG,
224 BGT.REVENUE_ITD_ORIG,
225 BGT.QUANTITY_ITD_ORIG,
226 decode(bgt.track_as_labor_flag, NULL,decode(bgt.resource_class_code, 'PEOPLE',
227 decode(BGT.UNIT_OF_MEASURE_ORIG,'HOURS',BGT.LABOR_QUANTITY_ITD_ORIG,to_number(null)),to_number(null)),
228 BGT.LABOR_QUANTITY_ITD_ORIG) LABOR_QUANTITY_ITD_ORIG,
229 BGT.RAW_COST_PTD_ORIG,
230 BGT.BURDENED_COST_PTD_ORIG,
231 BGT.REVENUE_PTD_ORIG,
232 BGT.QUANTITY_PTD_ORIG,
233 decode(bgt.track_as_labor_flag, NULL,decode(bgt.resource_class_code, 'PEOPLE',
234 decode(BGT.UNIT_OF_MEASURE_ORIG,'HOURS',BGT.LABOR_QUANTITY_PTD_ORIG,to_number(null)),to_number(null)),
235 BGT.LABOR_QUANTITY_PTD_ORIG) LABOR_QUANTITY_PTD_ORIG,
236 BGT.RAW_COST_PP_ORIG,
237 BGT.BURDENED_COST_PP_ORIG,
238 BGT.REVENUE_PP_ORIG,
239 BGT.QUANTITY_PP_ORIG,
240 decode(bgt.track_as_labor_flag, NULL,decode(bgt.resource_class_code, 'PEOPLE',
241 decode(BGT.UNIT_OF_MEASURE_ORIG,'HOURS',BGT.LABOR_QUANTITY_PP_ORIG,to_number(null)),to_number(null)),
242 BGT.LABOR_QUANTITY_PP_ORIG) LABOR_QUANTITY_PP_ORIG,
243 BGT.RAW_COST_YTD_ORIG,
244 BGT.BURDENED_COST_YTD_ORIG,
245 BGT.REVENUE_YTD_ORIG,
246 BGT.QUANTITY_YTD_ORIG,
247 decode(bgt.track_as_labor_flag, NULL,decode(bgt.resource_class_code, 'PEOPLE',
248 decode(BGT.UNIT_OF_MEASURE_ORIG,'HOURS',BGT.LABOR_QUANTITY_YTD_ORIG,to_number(null)),to_number(null)),
249 BGT.LABOR_QUANTITY_YTD_ORIG) LABOR_QUANTITY_YTD_ORIG,
250 BGT.UNIT_OF_MEASURE_BASE,
251 BGT.UNIT_OF_MEASURE_ORIG,
252 PAR.ROLLUP_QUANTITY_FLAG,
253 PARLA.RESOURCE_LIST_ASSIGNMENT_ID
254 FROM PA_TODATE_BASE_ORIG_BUDGET_V BGT
255 , PA_RESOURCES PAR
256 , PA_RESOURCE_LIST_ASSIGNMENTS PARLA
257 WHERE BGT.PROJECT_ID = x_project_id
258 and BGT.RESOURCE_ACCUMULATED_FLAG = 'N'
259 and BGT.RESOURCE_ID = PAR.RESOURCE_ID
260 And PARLA.PROJECT_ID = x_project_id
261 and PARLA.RESOURCE_LIST_ID = BGT.RESOURCE_LIST_ID
262 and bgt.budget_type_code IS NULL -- FP Model Plan Type
263 and x_budget_type_code is null -- Added by Sachin
264 UNION ALL
265 SELECT
266 BGT.PROJECT_ID,
267 'AC' BUDGET_TYPE_CODE,
268 BGT.fin_plan_type_id,
269 BGT.TASK_ID,
270 BGT.RESOURCE_LIST_MEMBER_ID,
271 BGT.RESOURCE_LIST_ID,
272 BGT.RESOURCE_ID,
273 BGT.BASE_RAW_COST,
274 BGT.BASE_BURDENED_COST,
275 0 BASE_REVENUE,
276 BGT.BASE_QUANTITY,
277 decode(bgt.track_as_labor_flag, NULL,decode(bgt.resource_class_code, 'PEOPLE',
278 decode(BGT.UNIT_OF_MEASURE_BASE,'HOURS',BGT.BASE_LABOR_QUANTITY,to_number(null)),to_number(null)),
279 BGT.BASE_LABOR_QUANTITY) BASE_LABOR_QUANTITY,
280 BGT.ORIG_RAW_COST,
281 BGT.ORIG_BURDENED_COST,
282 0 ORIG_REVENUE,
283 BGT.ORIG_QUANTITY,
284 decode(bgt.track_as_labor_flag, NULL,decode(bgt.resource_class_code, 'PEOPLE',
285 decode(BGT.UNIT_OF_MEASURE_ORIG,'HOURS',BGT.ORIG_LABOR_QUANTITY,to_number(null)),to_number(null)),
286 BGT.ORIG_LABOR_QUANTITY) ORIG_LABOR_QUANTITY,
287 BGT.RAW_COST_ITD_BASE,
288 BGT.BURDENED_COST_ITD_BASE,
289 0 REVENUE_ITD_BASE,
290 BGT.QUANTITY_ITD_BASE,
291 decode(bgt.track_as_labor_flag, NULL,decode(bgt.resource_class_code, 'PEOPLE',
292 decode(BGT.UNIT_OF_MEASURE_BASE,'HOURS',BGT.LABOR_QUANTITY_ITD_BASE,to_number(null)),to_number(null)),
293 BGT.LABOR_QUANTITY_ITD_BASE) LABOR_QUANTITY_ITD_BASE,
294 BGT.RAW_COST_PTD_BASE,
295 BGT.BURDENED_COST_PTD_BASE,
296 0 REVENUE_PTD_BASE,
297 BGT.QUANTITY_PTD_BASE,
298 decode(bgt.track_as_labor_flag, NULL,decode(bgt.resource_class_code, 'PEOPLE',
299 decode(BGT.UNIT_OF_MEASURE_BASE,'HOURS',BGT.LABOR_QUANTITY_PTD_BASE,to_number(null)),to_number(null)),
300 BGT.LABOR_QUANTITY_PTD_BASE) LABOR_QUANTITY_PTD_BASE,
301 BGT.RAW_COST_PP_BASE,
302 BGT.BURDENED_COST_PP_BASE,
303 0 REVENUE_PP_BASE,
304 BGT.QUANTITY_PP_BASE,
305 decode(bgt.track_as_labor_flag, NULL,decode(bgt.resource_class_code, 'PEOPLE',
306 decode(BGT.UNIT_OF_MEASURE_BASE,'HOURS',BGT.LABOR_QUANTITY_PP_BASE,to_number(null)),to_number(null)),
307 BGT.LABOR_QUANTITY_PP_BASE) LABOR_QUANTITY_PP_BASE,
308 BGT.RAW_COST_YTD_BASE,
309 BGT.BURDENED_COST_YTD_BASE,
310 0 REVENUE_YTD_BASE,
311 BGT.QUANTITY_YTD_BASE,
312 decode(bgt.track_as_labor_flag, NULL,decode(bgt.resource_class_code, 'PEOPLE',
313 decode(BGT.UNIT_OF_MEASURE_BASE,'HOURS',BGT.LABOR_QUANTITY_YTD_BASE,to_number(null)),to_number(null)),
314 BGT.LABOR_QUANTITY_YTD_BASE) LABOR_QUANTITY_YTD_BASE,
315 BGT.RAW_COST_ITD_ORIG,
316 BGT.BURDENED_COST_ITD_ORIG,
317 0 REVENUE_ITD_ORIG,
318 BGT.QUANTITY_ITD_ORIG,
319 decode(bgt.track_as_labor_flag, NULL,decode(bgt.resource_class_code, 'PEOPLE',
320 decode(BGT.UNIT_OF_MEASURE_ORIG,'HOURS',BGT.LABOR_QUANTITY_ITD_ORIG,to_number(null)),to_number(null)),
321 BGT.LABOR_QUANTITY_ITD_ORIG) LABOR_QUANTITY_ITD_ORIG,
322 BGT.RAW_COST_PTD_ORIG,
323 BGT.BURDENED_COST_PTD_ORIG,
324 0 REVENUE_PTD_ORIG,
325 BGT.QUANTITY_PTD_ORIG,
326 decode(bgt.track_as_labor_flag, NULL,decode(bgt.resource_class_code, 'PEOPLE',
327 decode(BGT.UNIT_OF_MEASURE_ORIG,'HOURS',BGT.LABOR_QUANTITY_PTD_ORIG,to_number(null)),to_number(null)),
328 BGT.LABOR_QUANTITY_PTD_ORIG) LABOR_QUANTITY_PTD_ORIG,
329 BGT.RAW_COST_PP_ORIG,
330 BGT.BURDENED_COST_PP_ORIG,
331 0 REVENUE_PP_ORIG,
332 BGT.QUANTITY_PP_ORIG,
333 decode(bgt.track_as_labor_flag, NULL,decode(bgt.resource_class_code, 'PEOPLE',
334 decode(BGT.UNIT_OF_MEASURE_ORIG,'HOURS',BGT.LABOR_QUANTITY_PP_ORIG,to_number(null)),to_number(null)),
335 BGT.LABOR_QUANTITY_PP_ORIG) LABOR_QUANTITY_PP_ORIG,
336 BGT.RAW_COST_YTD_ORIG,
337 BGT.BURDENED_COST_YTD_ORIG,
338 0 REVENUE_YTD_ORIG,
339 BGT.QUANTITY_YTD_ORIG,
340 decode(bgt.track_as_labor_flag, NULL,decode(bgt.resource_class_code, 'PEOPLE',
341 decode(BGT.UNIT_OF_MEASURE_ORIG,'HOURS',BGT.LABOR_QUANTITY_YTD_ORIG,to_number(null)),to_number(null)),
342 BGT.LABOR_QUANTITY_YTD_ORIG) LABOR_QUANTITY_YTD_ORIG,
343 BGT.UNIT_OF_MEASURE_BASE,
344 BGT.UNIT_OF_MEASURE_ORIG,
345 PAR.ROLLUP_QUANTITY_FLAG,
346 PARLA.RESOURCE_LIST_ASSIGNMENT_ID
347 FROM PA_TODATE_BASE_ORIG_BUDGET_V BGT
348 , PA_RESOURCES PAR
349 , PA_RESOURCE_LIST_ASSIGNMENTS PARLA
350 WHERE BGT.PROJECT_ID = x_project_id
351 and BGT.RESOURCE_ACCUMULATED_FLAG = 'N'
352 and BGT.RESOURCE_ID = PAR.RESOURCE_ID
353 And PARLA.PROJECT_ID = x_project_id
354 and PARLA.RESOURCE_LIST_ID = BGT.RESOURCE_LIST_ID
355 and bgt.budget_type_code IS NULL -- FP Model PSI AC Record
356 and nvl(bgt.approved_cost_plan_type_flag,'N') = 'Y' -- -- APPROVED C-O-S-T
357 and 'AC' = NVL(x_budget_type_code, 'AC') -- Added by Sachin.
358 UNION ALL
359 SELECT
360 BGT.PROJECT_ID,
361 'AR' BUDGET_TYPE_CODE,
362 BGT.fin_plan_type_id,
363 BGT.TASK_ID,
364 BGT.RESOURCE_LIST_MEMBER_ID,
365 BGT.RESOURCE_LIST_ID,
366 BGT.RESOURCE_ID,
367 0 BASE_RAW_COST,
368 0 BASE_BURDENED_COST,
369 BGT.BASE_REVENUE,
370 BGT.BASE_QUANTITY,
371 decode(bgt.track_as_labor_flag, NULL,decode(bgt.resource_class_code, 'PEOPLE',
372 decode(BGT.UNIT_OF_MEASURE_BASE,'HOURS',BGT.BASE_LABOR_QUANTITY,to_number(null)),to_number(null)),
373 BGT.BASE_LABOR_QUANTITY) BASE_LABOR_QUANTITY,
374 0 ORIG_RAW_COST,
375 0 ORIG_BURDENED_COST,
376 BGT.ORIG_REVENUE,
377 BGT.ORIG_QUANTITY,
378 decode(bgt.track_as_labor_flag, NULL,decode(bgt.resource_class_code, 'PEOPLE',
379 decode(BGT.UNIT_OF_MEASURE_ORIG,'HOURS',BGT.ORIG_LABOR_QUANTITY,to_number(null)),to_number(null)),
380 BGT.ORIG_LABOR_QUANTITY) ORIG_LABOR_QUANTITY,
381 0 RAW_COST_ITD_BASE,
382 0 BURDENED_COST_ITD_BASE,
383 BGT.REVENUE_ITD_BASE,
384 BGT.QUANTITY_ITD_BASE,
385 decode(bgt.track_as_labor_flag, NULL,decode(bgt.resource_class_code, 'PEOPLE',
386 decode(BGT.UNIT_OF_MEASURE_BASE,'HOURS',BGT.LABOR_QUANTITY_ITD_BASE,to_number(null)),to_number(null)),
387 BGT.LABOR_QUANTITY_ITD_BASE) LABOR_QUANTITY_ITD_BASE,
388 0 RAW_COST_PTD_BASE,
389 0 BURDENED_COST_PTD_BASE,
390 BGT.REVENUE_PTD_BASE,
391 BGT.QUANTITY_PTD_BASE,
392 decode(bgt.track_as_labor_flag, NULL,decode(bgt.resource_class_code, 'PEOPLE',
393 decode(BGT.UNIT_OF_MEASURE_BASE,'HOURS',BGT.LABOR_QUANTITY_PTD_BASE,to_number(null)),to_number(null)),
394 BGT.LABOR_QUANTITY_PTD_BASE) LABOR_QUANTITY_PTD_BASE,
395 0 RAW_COST_PP_BASE,
396 0 BURDENED_COST_PP_BASE,
397 BGT.REVENUE_PP_BASE,
398 BGT.QUANTITY_PP_BASE,
399 decode(bgt.track_as_labor_flag, NULL,decode(bgt.resource_class_code, 'PEOPLE',
400 decode(BGT.UNIT_OF_MEASURE_BASE,'HOURS',BGT.LABOR_QUANTITY_PP_BASE,to_number(null)),to_number(null)),
401 BGT.LABOR_QUANTITY_PP_BASE) LABOR_QUANTITY_PP_BASE,
402 0 RAW_COST_YTD_BASE,
403 0 BURDENED_COST_YTD_BASE,
404 BGT.REVENUE_YTD_BASE,
405 BGT.QUANTITY_YTD_BASE,
406 decode(bgt.track_as_labor_flag, NULL,decode(bgt.resource_class_code, 'PEOPLE',
407 decode(BGT.UNIT_OF_MEASURE_BASE,'HOURS',BGT.LABOR_QUANTITY_YTD_BASE,to_number(null)),to_number(null)),
408 BGT.LABOR_QUANTITY_YTD_BASE) LABOR_QUANTITY_YTD_BASE,
409 0 RAW_COST_ITD_ORIG,
410 0 BURDENED_COST_ITD_ORIG,
411 BGT.REVENUE_ITD_ORIG,
412 BGT.QUANTITY_ITD_ORIG,
413 decode(bgt.track_as_labor_flag, NULL,decode(bgt.resource_class_code, 'PEOPLE',
414 decode(BGT.UNIT_OF_MEASURE_ORIG,'HOURS',BGT.LABOR_QUANTITY_ITD_ORIG,to_number(null)),to_number(null)),
415 BGT.LABOR_QUANTITY_ITD_ORIG) LABOR_QUANTITY_ITD_ORIG,
416 0 RAW_COST_PTD_ORIG,
417 0 BURDENED_COST_PTD_ORIG,
418 BGT.REVENUE_PTD_ORIG,
419 BGT.QUANTITY_PTD_ORIG,
420 decode(bgt.track_as_labor_flag, NULL,decode(bgt.resource_class_code, 'PEOPLE',
421 decode(BGT.UNIT_OF_MEASURE_ORIG,'HOURS',BGT.LABOR_QUANTITY_PTD_ORIG,to_number(null)),to_number(null)),
422 BGT.LABOR_QUANTITY_PTD_ORIG) LABOR_QUANTITY_PTD_ORIG,
423 0 RAW_COST_PP_ORIG,
424 0 BURDENED_COST_PP_ORIG,
425 BGT.REVENUE_PP_ORIG,
426 BGT.QUANTITY_PP_ORIG,
427 decode(bgt.track_as_labor_flag, NULL,decode(bgt.resource_class_code, 'PEOPLE',
428 decode(BGT.UNIT_OF_MEASURE_ORIG,'HOURS',BGT.LABOR_QUANTITY_PP_ORIG,to_number(null)),to_number(null)),
429 BGT.LABOR_QUANTITY_PP_ORIG) LABOR_QUANTITY_PP_ORIG,
430 0 RAW_COST_YTD_ORIG,
431 0 BURDENED_COST_YTD_ORIG,
432 BGT.REVENUE_YTD_ORIG,
433 BGT.QUANTITY_YTD_ORIG,
434 decode(bgt.track_as_labor_flag, NULL,decode(bgt.resource_class_code, 'PEOPLE',
435 decode(BGT.UNIT_OF_MEASURE_ORIG,'HOURS',BGT.LABOR_QUANTITY_YTD_ORIG,to_number(null)),to_number(null)),
436 BGT.LABOR_QUANTITY_YTD_ORIG) LABOR_QUANTITY_YTD_ORIG,
437 BGT.UNIT_OF_MEASURE_BASE,
438 BGT.UNIT_OF_MEASURE_ORIG,
439 PAR.ROLLUP_QUANTITY_FLAG,
440 PARLA.RESOURCE_LIST_ASSIGNMENT_ID
441 FROM PA_TODATE_BASE_ORIG_BUDGET_V BGT
442 , PA_RESOURCES PAR
443 , PA_RESOURCE_LIST_ASSIGNMENTS PARLA
444 WHERE BGT.PROJECT_ID = x_project_id
445 and BGT.RESOURCE_ACCUMULATED_FLAG = 'N'
446 and BGT.RESOURCE_ID = PAR.RESOURCE_ID
447 And PARLA.PROJECT_ID = x_project_id
448 and PARLA.RESOURCE_LIST_ID = BGT.RESOURCE_LIST_ID
449 and bgt.budget_type_code IS NULL -- FP Model PSI AR Record
450 and nvl(bgt.approved_rev_plan_type_flag,'N') = 'Y' -- -- APPROVED R-E-V-E-N-U-E
451 and 'AR' = NVL(x_budget_type_code, 'AR') -- Added by Sachin.
452 UNION ALL
453 SELECT
454 BGT.PROJECT_ID,
455 'FC' BUDGET_TYPE_CODE,
456 BGT.fin_plan_type_id,
457 BGT.TASK_ID,
458 BGT.RESOURCE_LIST_MEMBER_ID,
459 BGT.RESOURCE_LIST_ID,
460 BGT.RESOURCE_ID,
461 BGT.BASE_RAW_COST,
462 BGT.BASE_BURDENED_COST,
463 0 BASE_REVENUE,
464 BGT.BASE_QUANTITY,
465 decode(bgt.track_as_labor_flag, NULL,decode(bgt.resource_class_code, 'PEOPLE',
466 decode(BGT.UNIT_OF_MEASURE_BASE,'HOURS',BGT.BASE_LABOR_QUANTITY,to_number(null)),to_number(null)),
467 BGT.BASE_LABOR_QUANTITY) BASE_LABOR_QUANTITY,
468 BGT.ORIG_RAW_COST,
469 BGT.ORIG_BURDENED_COST,
470 0 ORIG_REVENUE,
471 BGT.ORIG_QUANTITY,
472 decode(bgt.track_as_labor_flag, NULL,decode(bgt.resource_class_code, 'PEOPLE',
473 decode(BGT.UNIT_OF_MEASURE_ORIG,'HOURS',BGT.ORIG_LABOR_QUANTITY,to_number(null)),to_number(null)),
474 BGT.ORIG_LABOR_QUANTITY) ORIG_LABOR_QUANTITY,
475 BGT.RAW_COST_ITD_BASE,
476 BGT.BURDENED_COST_ITD_BASE,
477 0 REVENUE_ITD_BASE,
478 BGT.QUANTITY_ITD_BASE,
479 decode(bgt.track_as_labor_flag, NULL,decode(bgt.resource_class_code, 'PEOPLE',
480 decode(BGT.UNIT_OF_MEASURE_BASE,'HOURS',BGT.LABOR_QUANTITY_ITD_BASE,to_number(null)),to_number(null)),
481 BGT.LABOR_QUANTITY_ITD_BASE) LABOR_QUANTITY_ITD_BASE,
482 BGT.RAW_COST_PTD_BASE,
483 BGT.BURDENED_COST_PTD_BASE,
484 0 REVENUE_PTD_BASE,
485 BGT.QUANTITY_PTD_BASE,
486 decode(bgt.track_as_labor_flag, NULL,decode(bgt.resource_class_code, 'PEOPLE',
487 decode(BGT.UNIT_OF_MEASURE_BASE,'HOURS',BGT.LABOR_QUANTITY_PTD_BASE,to_number(null)),to_number(null)),
488 BGT.LABOR_QUANTITY_PTD_BASE) LABOR_QUANTITY_PTD_BASE,
489 BGT.RAW_COST_PP_BASE,
490 BGT.BURDENED_COST_PP_BASE,
491 0 REVENUE_PP_BASE,
492 BGT.QUANTITY_PP_BASE,
493 decode(bgt.track_as_labor_flag, NULL,decode(bgt.resource_class_code, 'PEOPLE',
494 decode(BGT.UNIT_OF_MEASURE_BASE,'HOURS',BGT.LABOR_QUANTITY_PP_BASE,to_number(null)),to_number(null)),
495 BGT.LABOR_QUANTITY_PP_BASE) LABOR_QUANTITY_PP_BASE,
496 BGT.RAW_COST_YTD_BASE,
497 BGT.BURDENED_COST_YTD_BASE,
498 0 REVENUE_YTD_BASE,
499 BGT.QUANTITY_YTD_BASE,
500 decode(bgt.track_as_labor_flag, NULL,decode(bgt.resource_class_code, 'PEOPLE',
501 decode(BGT.UNIT_OF_MEASURE_BASE,'HOURS',BGT.LABOR_QUANTITY_YTD_BASE,to_number(null)),to_number(null)),
502 BGT.LABOR_QUANTITY_YTD_BASE) LABOR_QUANTITY_YTD_BASE,
503 BGT.RAW_COST_ITD_ORIG,
504 BGT.BURDENED_COST_ITD_ORIG,
505 0 REVENUE_ITD_ORIG,
506 BGT.QUANTITY_ITD_ORIG,
507 decode(bgt.track_as_labor_flag, NULL,decode(bgt.resource_class_code, 'PEOPLE',
508 decode(BGT.UNIT_OF_MEASURE_ORIG,'HOURS',BGT.LABOR_QUANTITY_ITD_ORIG,to_number(null)),to_number(null)),
509 BGT.LABOR_QUANTITY_ITD_ORIG) LABOR_QUANTITY_ITD_ORIG,
510 BGT.RAW_COST_PTD_ORIG,
511 BGT.BURDENED_COST_PTD_ORIG,
512 0 REVENUE_PTD_ORIG,
513 BGT.QUANTITY_PTD_ORIG,
514 decode(bgt.track_as_labor_flag, NULL,decode(bgt.resource_class_code, 'PEOPLE',
515 decode(BGT.UNIT_OF_MEASURE_ORIG,'HOURS',BGT.LABOR_QUANTITY_PTD_ORIG,to_number(null)),to_number(null)),
516 BGT.LABOR_QUANTITY_PTD_ORIG) LABOR_QUANTITY_PTD_ORIG,
517 BGT.RAW_COST_PP_ORIG,
518 BGT.BURDENED_COST_PP_ORIG,
519 0 REVENUE_PP_ORIG,
520 BGT.QUANTITY_PP_ORIG,
521 decode(bgt.track_as_labor_flag, NULL,decode(bgt.resource_class_code, 'PEOPLE',
522 decode(BGT.UNIT_OF_MEASURE_ORIG,'HOURS',BGT.LABOR_QUANTITY_PP_ORIG,to_number(null)),to_number(null)),
523 BGT.LABOR_QUANTITY_PP_ORIG) LABOR_QUANTITY_PP_ORIG,
524 BGT.RAW_COST_YTD_ORIG,
525 BGT.BURDENED_COST_YTD_ORIG,
526 0 REVENUE_YTD_ORIG,
527 BGT.QUANTITY_YTD_ORIG,
528 decode(bgt.track_as_labor_flag, NULL,decode(bgt.resource_class_code, 'PEOPLE',
529 decode(BGT.UNIT_OF_MEASURE_ORIG,'HOURS',BGT.LABOR_QUANTITY_YTD_ORIG,to_number(null)),to_number(null)),
530 BGT.LABOR_QUANTITY_YTD_ORIG) LABOR_QUANTITY_YTD_ORIG,
531 BGT.UNIT_OF_MEASURE_BASE,
532 BGT.UNIT_OF_MEASURE_ORIG,
533 PAR.ROLLUP_QUANTITY_FLAG,
534 PARLA.RESOURCE_LIST_ASSIGNMENT_ID
535 FROM PA_TODATE_BASE_ORIG_BUDGET_V BGT
536 , PA_RESOURCES PAR
537 , PA_RESOURCE_LIST_ASSIGNMENTS PARLA
538 WHERE BGT.PROJECT_ID = x_project_id
539 and BGT.RESOURCE_ACCUMULATED_FLAG = 'N'
540 and BGT.RESOURCE_ID = PAR.RESOURCE_ID
541 And PARLA.PROJECT_ID = x_project_id
542 and PARLA.RESOURCE_LIST_ID = BGT.RESOURCE_LIST_ID
543 and bgt.budget_type_code IS NULL -- FP Model PSI FC Record
544 and nvl(bgt.primary_cost_forecast_flag,'N') = 'Y' -- -- PRIMARY FORECAST C-O-S-T
545 and 'FC' = NVL(x_budget_type_code, 'FC')
546 UNION ALL
547 SELECT
548 BGT.PROJECT_ID,
549 'FR' BUDGET_TYPE_CODE,
550 BGT.fin_plan_type_id,
551 BGT.TASK_ID,
552 BGT.RESOURCE_LIST_MEMBER_ID,
553 BGT.RESOURCE_LIST_ID,
554 BGT.RESOURCE_ID,
555 0 BASE_RAW_COST,
556 0 BASE_BURDENED_COST,
557 BGT.BASE_REVENUE,
558 BGT.BASE_QUANTITY,
559 decode(bgt.track_as_labor_flag, NULL,decode(bgt.resource_class_code, 'PEOPLE',
560 decode(BGT.UNIT_OF_MEASURE_BASE,'HOURS',BGT.BASE_LABOR_QUANTITY,to_number(null)),to_number(null)),
561 BGT.BASE_LABOR_QUANTITY) BASE_LABOR_QUANTITY,
562 0 ORIG_RAW_COST,
563 0 ORIG_BURDENED_COST,
564 BGT.ORIG_REVENUE,
565 BGT.ORIG_QUANTITY,
566 decode(bgt.track_as_labor_flag, NULL,decode(bgt.resource_class_code, 'PEOPLE',
567 decode(BGT.UNIT_OF_MEASURE_ORIG,'HOURS',BGT.ORIG_LABOR_QUANTITY,to_number(null)),to_number(null)),
568 BGT.ORIG_LABOR_QUANTITY) ORIG_LABOR_QUANTITY,
569 0 RAW_COST_ITD_BASE,
570 0 BURDENED_COST_ITD_BASE,
571 BGT.REVENUE_ITD_BASE,
572 BGT.QUANTITY_ITD_BASE,
573 decode(bgt.track_as_labor_flag, NULL,decode(bgt.resource_class_code, 'PEOPLE',
574 decode(BGT.UNIT_OF_MEASURE_BASE,'HOURS',BGT.LABOR_QUANTITY_ITD_BASE,to_number(null)),to_number(null)),
575 BGT.LABOR_QUANTITY_ITD_BASE) LABOR_QUANTITY_ITD_BASE,
576 0 RAW_COST_PTD_BASE,
577 0 BURDENED_COST_PTD_BASE,
578 BGT.REVENUE_PTD_BASE,
579 BGT.QUANTITY_PTD_BASE,
580 decode(bgt.track_as_labor_flag, NULL,decode(bgt.resource_class_code, 'PEOPLE',
581 decode(BGT.UNIT_OF_MEASURE_BASE,'HOURS',BGT.LABOR_QUANTITY_PTD_BASE,to_number(null)),to_number(null)),
582 BGT.LABOR_QUANTITY_PTD_BASE) LABOR_QUANTITY_PTD_BASE,
583 0 RAW_COST_PP_BASE,
584 0 BURDENED_COST_PP_BASE,
585 BGT.REVENUE_PP_BASE,
586 BGT.QUANTITY_PP_BASE,
587 decode(bgt.track_as_labor_flag, NULL,decode(bgt.resource_class_code, 'PEOPLE',
588 decode(BGT.UNIT_OF_MEASURE_BASE,'HOURS',BGT.LABOR_QUANTITY_PP_BASE,to_number(null)),to_number(null)),
589 BGT.LABOR_QUANTITY_PP_BASE) LABOR_QUANTITY_PP_BASE,
590 0 RAW_COST_YTD_BASE,
591 0 BURDENED_COST_YTD_BASE,
592 BGT.REVENUE_YTD_BASE,
593 BGT.QUANTITY_YTD_BASE,
594 decode(bgt.track_as_labor_flag, NULL,decode(bgt.resource_class_code, 'PEOPLE',
595 decode(BGT.UNIT_OF_MEASURE_BASE,'HOURS',BGT.LABOR_QUANTITY_YTD_BASE,to_number(null)),to_number(null)),
596 BGT.LABOR_QUANTITY_YTD_BASE) LABOR_QUANTITY_YTD_BASE,
597 0 RAW_COST_ITD_ORIG,
598 0 BURDENED_COST_ITD_ORIG,
599 BGT.REVENUE_ITD_ORIG,
600 BGT.QUANTITY_ITD_ORIG,
601 decode(bgt.track_as_labor_flag, NULL,decode(bgt.resource_class_code, 'PEOPLE',
602 decode(BGT.UNIT_OF_MEASURE_ORIG,'HOURS',BGT.LABOR_QUANTITY_ITD_ORIG,to_number(null)),to_number(null)),
603 BGT.LABOR_QUANTITY_ITD_ORIG) LABOR_QUANTITY_ITD_ORIG,
604 0 RAW_COST_PTD_ORIG,
605 0 BURDENED_COST_PTD_ORIG,
606 BGT.REVENUE_PTD_ORIG,
607 BGT.QUANTITY_PTD_ORIG,
608 decode(bgt.track_as_labor_flag, NULL,decode(bgt.resource_class_code, 'PEOPLE',
609 decode(BGT.UNIT_OF_MEASURE_ORIG,'HOURS',BGT.LABOR_QUANTITY_PTD_ORIG,to_number(null)),to_number(null)),
610 BGT.LABOR_QUANTITY_PTD_ORIG) LABOR_QUANTITY_PTD_ORIG,
611 0 RAW_COST_PP_ORIG,
612 0 BURDENED_COST_PP_ORIG,
613 BGT.REVENUE_PP_ORIG,
614 BGT.QUANTITY_PP_ORIG,
615 decode(bgt.track_as_labor_flag, NULL,decode(bgt.resource_class_code, 'PEOPLE',
616 decode(BGT.UNIT_OF_MEASURE_ORIG,'HOURS',BGT.LABOR_QUANTITY_PP_ORIG,to_number(null)),to_number(null)),
617 BGT.LABOR_QUANTITY_PP_ORIG) LABOR_QUANTITY_PP_ORIG,
618 0 RAW_COST_YTD_ORIG,
619 0 BURDENED_COST_YTD_ORIG,
620 BGT.REVENUE_YTD_ORIG,
621 BGT.QUANTITY_YTD_ORIG,
622 decode(bgt.track_as_labor_flag, NULL,decode(bgt.resource_class_code, 'PEOPLE',
623 decode(BGT.UNIT_OF_MEASURE_ORIG,'HOURS',BGT.LABOR_QUANTITY_YTD_ORIG,to_number(null)),to_number(null)),
624 BGT.LABOR_QUANTITY_YTD_ORIG) LABOR_QUANTITY_YTD_ORIG,
625 BGT.UNIT_OF_MEASURE_BASE,
626 BGT.UNIT_OF_MEASURE_ORIG,
627 PAR.ROLLUP_QUANTITY_FLAG,
628 PARLA.RESOURCE_LIST_ASSIGNMENT_ID
629 FROM PA_TODATE_BASE_ORIG_BUDGET_V BGT
630 , PA_RESOURCES PAR
631 , PA_RESOURCE_LIST_ASSIGNMENTS PARLA
632 WHERE BGT.PROJECT_ID = x_project_id
633 and BGT.RESOURCE_ACCUMULATED_FLAG = 'N'
634 and BGT.RESOURCE_ID = PAR.RESOURCE_ID
635 And PARLA.PROJECT_ID = x_project_id
636 and PARLA.RESOURCE_LIST_ID = BGT.RESOURCE_LIST_ID
637 and bgt.budget_type_code IS NULL -- FP Model PSI FR Record
638 and nvl(bgt.primary_rev_forecast_flag,'N') = 'Y' -- -- PRIMARY FORECAST R-E-V-E-N-U-E
639 and 'FR' = NVL(x_budget_type_code, 'FR')
640 ) PAB
641 GROUP BY
642 PAB.PROJECT_ID,
643 PAB.BUDGET_TYPE_CODE,
644 PAB.fin_plan_type_id,
645 PAB.TASK_ID,
646 PAB.RESOURCE_LIST_MEMBER_ID,
647 PAB.RESOURCE_LIST_ID,
648 PAB.RESOURCE_ID,
649 PAB.UNIT_OF_MEASURE_BASE,
650 PAB.UNIT_OF_MEASURE_ORIG,
651 PAB.ROLLUP_QUANTITY_FLAG,
652 PAB.RESOURCE_LIST_ASSIGNMENT_ID;
653
654 CURSOR PA_Budget_versions_cur
655 IS
656 SELECT Distinct
657 Budget_Type_Code,
658 Budget_Version_id
659 FROM
660 (
661 SELECT Budget_Type_Code
662 , Budget_Version_id
663 FROM PA_BUDGET_VERSIONS
664 Where Project_Id = x_project_id
665 And Current_Flag = 'Y'
666 and budget_type_code IS NOT NULL -- r11.5.7 Budgets Model
667 UNION ALL
668 SELECT to_char(fin_plan_type_id) Budget_Type_Code
669 , Budget_Version_id
670 FROM PA_BUDGET_VERSIONS
671 Where Project_Id = x_project_id
672 And Current_Flag = 'Y'
673 and budget_type_code IS NULL -- FP Model Plan Type, #3561255, changed to 'IS NULL'
674 UNION ALL
675 SELECT 'AC' Budget_Type_Code
676 , Budget_Version_id
677 FROM PA_BUDGET_VERSIONS
678 Where Project_Id = x_project_id
679 And Current_Flag = 'Y'
680 and budget_type_code IS NULL -- FP Model PSI AC Record, #3561255, changed to 'IS NULL'
681 and nvl(approved_cost_plan_type_flag,'N') = 'Y' -- -- APPROVED C-O-S-T
682 UNION ALL
683 SELECT 'AR' Budget_Type_Code
684 , Budget_Version_id
685 FROM PA_BUDGET_VERSIONS
686 Where Project_Id = x_project_id
687 And Current_Flag = 'Y'
688 and budget_type_code IS NULL -- FP Model PSI AC Record, #3561255, changed to 'IS NULL'
689 and nvl(approved_rev_plan_type_flag,'N') = 'Y' -- -- APPROVED R-E-V-E-N-U-E
690 UNION ALL
691 SELECT 'FC' Budget_Type_Code
692 , Budget_Version_id
693 FROM PA_BUDGET_VERSIONS
694 Where Project_Id = x_project_id
695 And Current_Flag = 'Y'
696 and budget_type_code IS NULL -- FP Model PSI FC Record
697 and nvl(primary_cost_forecast_flag,'N') = 'Y' -- -- PRIMARY FORECAST C-O-S-T
698 UNION ALL
699 SELECT 'FR' Budget_Type_Code
700 , Budget_Version_id
701 FROM PA_BUDGET_VERSIONS
702 Where Project_Id = x_project_id
703 And Current_Flag = 'Y'
704 and budget_type_code IS NULL -- FP Model PSI AC Record
705 and nvl(primary_rev_forecast_flag,'N') = 'Y' -- -- PRIMARY FORECAST R-E-V-E-N-U-E
706 );
707
708
709 PA_budget_versions_Rec PA_Budget_versions_cur%ROWTYPE;
710 tot_recs_processed Number := 0;
711 x_Budget_rec PA_Budget_Cur%ROWTYPE;
712 x_recs_processed Number := 0;
713
714 curr_budget_type_code Varchar2(30);
715 curr_fin_plan_type_id Number(15);
716 curr_task_id Number(15);
717 curr_rlmid Number(15);
718 curr_rlid Number(15);
719 curr_rid Number(15);
720 curr_rlaid Number(15);
721 curr_rlup_qty_flag varchar2(1);
722 curr_buom varchar2(30);
723 curr_ouom varchar2(30);
724
725 fetch_rec Boolean := true;
726 first_rec Boolean := true;
727 get_wbs Boolean := true;
728
729 V_Base_Burdened_Cost_Flag Varchar2(1) := 'N';
730 V_Base_Labor_Hours_Flag Varchar2(1) := 'N';
731 V_Base_Raw_Cost_Flag Varchar2(1) := 'N';
732 V_Base_Revenue_Flag Varchar2(1) := 'N';
733 V_Orig_Burdened_Cost_Flag Varchar2(1) := 'N';
734 V_Orig_Labor_Hours_Flag Varchar2(1) := 'N';
735 V_Orig_Quantity_Flag Varchar2(1) := 'N';
736 V_Base_Quantity_Flag Varchar2(1) := 'N';
737 V_Orig_Raw_Cost_Flag Varchar2(1) := 'N';
738 V_Orig_Revenue_Flag Varchar2(1) := 'N';
739 V_task_array task_id_tabtype;
740 v_noof_tasks Number := 0;
741 v_err_stage Varchar2(80);
742 v_err_stack Varchar2(630);
743 V_Old_Stack Varchar2(630);
744
745 Begin
746 -- The Get_config_Option is called for various columns in the Budget
747 -- table, to ensure that they have been configured for accumulation.
748 -- If any column is not configured , then the column would not be
749 -- accumulated (the amount would be 0s in those cases )
750
751 V_Old_Stack := x_err_stack;
752 x_err_stack :=
753 x_err_stack ||'->PA_MAINT_PROJECT_BUDGETS.Process_Budget_Txns';
754
755 pa_debug.debug(x_err_stack);
756
757 PA_ACCUM_UTILS.Get_config_Option
758 (X_project_id ,
759 'BUDGETS',
760 'BASE_BURDENED_COST',
761 V_Base_Burdened_Cost_Flag,
762 x_err_code ,
763 x_err_stage ,
764 x_err_stack );
765
766 PA_ACCUM_UTILS.Get_config_Option
767 (X_project_id ,
768 'BUDGETS',
769 'BASE_LABOR_HOURS',
770 V_Base_Labor_Hours_Flag,
771 x_err_code ,
772 x_err_stage ,
773 x_err_stack );
774
775 PA_ACCUM_UTILS.Get_config_Option
776 (X_project_id ,
777 'BUDGETS',
778 'BASE_RAW_COST',
779 V_Base_Raw_Cost_Flag,
780 x_err_code ,
781 x_err_stage ,
782 x_err_stack );
783
784 PA_ACCUM_UTILS.Get_config_Option
785 (X_project_id ,
786 'BUDGETS',
787 'BASE_REVENUE',
788 V_Base_Revenue_Flag,
789 x_err_code ,
790 x_err_stage ,
791 x_err_stack );
792
793 PA_ACCUM_UTILS.Get_config_Option
794 (X_project_id ,
795 'BUDGETS',
796 'ORIG_BURDENED_COST',
797 V_Orig_Burdened_Cost_Flag,
798 x_err_code ,
799 x_err_stage ,
800 x_err_stack );
801
802 PA_ACCUM_UTILS.Get_config_Option
803 (X_project_id ,
804 'BUDGETS',
805 'ORIG_LABOR_HOURS',
806 V_Orig_Labor_Hours_Flag,
807 x_err_code ,
808 x_err_stage ,
809 x_err_stack );
810
811 PA_ACCUM_UTILS.Get_config_Option
812 (X_project_id ,
813 'BUDGETS',
814 'ORIG_QUANTITY',
815 V_Orig_Quantity_Flag,
816 x_err_code ,
817 x_err_stage ,
818 x_err_stack );
819
820 PA_ACCUM_UTILS.Get_config_Option
821 (X_project_id ,
822 'BUDGETS',
823 'BASE_QUANTITY',
824 V_Base_Quantity_Flag,
825 x_err_code ,
826 x_err_stage ,
827 x_err_stack );
828
829 PA_ACCUM_UTILS.Get_config_Option
830 (X_project_id ,
831 'BUDGETS',
832 'ORIG_RAW_COST',
833 V_Orig_Raw_Cost_Flag,
834 x_err_code ,
835 x_err_stage ,
836 x_err_stack );
837
838 PA_ACCUM_UTILS.Get_config_Option
839 (X_project_id ,
840 'BUDGETS',
841 'ORIG_REVENUE',
842 V_Orig_Revenue_Flag,
843 x_err_code ,
844 x_err_stage ,
845 x_err_stack );
846 -- Read all relevant Budget records in a loop
847
848 -- For x_Budget_rec in PA_Budget_Cur LOOP
849
850 -- Based on the Configuration option, set the value either as 0
851 -- or retain the fetched value
852 initialize_res_level;
853 initialize_task_level;
854 initialize_project_level;
855 first_rec := true;
856
857 open pa_budget_cur;
858 Loop
859 If fetch_rec = true then
860 fetch pa_budget_cur into x_budget_rec;
861 end if;
862 fetch_rec := true;
863
864 If first_rec = true or (x_budget_rec.budget_type_code = curr_budget_type_code AND
865 x_budget_rec.task_id = curr_task_id AND
866 x_budget_rec.resource_list_member_id = curr_rlmid AND
867 pa_budget_cur%found) THEN
868
869 first_rec := false;
870 If V_Base_Burdened_Cost_Flag = 'Y' Then
871 V_Base_Burdened_Cost_ptd := V_Base_Burdened_Cost_ptd +
872 x_Budget_rec.Base_Burdened_Cost_ptd;
873 V_Base_Burdened_Cost_itd := V_Base_Burdened_Cost_itd +
874 x_Budget_rec.Base_Burdened_Cost_itd;
875 V_Base_Burdened_Cost_pp := V_Base_Burdened_Cost_pp +
876 x_Budget_rec.Base_Burdened_Cost_pp ;
877 V_Base_Burdened_Cost_ytd := V_Base_Burdened_Cost_ytd +
878 x_Budget_rec.Base_Burdened_Cost_ytd;
879 End If;
880 TOT_BASE_BURDENED_COST := TOT_BASE_BURDENED_COST +
881 x_budget_rec.base_burdened_cost;
882 If V_Base_Labor_Hours_Flag = 'Y' Then
883 V_Base_Labor_Hours_ptd := V_Base_Labor_Hours_ptd +
884 x_Budget_rec.Base_Labor_Quantity_ptd;
885 V_Base_Labor_Hours_itd := V_Base_Labor_Hours_itd +
886 x_Budget_rec.Base_Labor_Quantity_itd;
887 V_Base_Labor_Hours_pp := V_Base_Labor_Hours_pp +
888 x_Budget_rec.Base_Labor_Quantity_pp ;
889 V_Base_Labor_Hours_ytd := V_Base_Labor_Hours_ytd +
890 x_Budget_rec.Base_Labor_Quantity_ytd;
891 End If;
892 TOT_BASE_LABOR_HOURS := TOT_BASE_LABOR_HOURS +
893 x_budget_rec.base_labor_quantity;
894 If V_Base_Raw_Cost_Flag = 'Y' Then
895 V_Base_Raw_Cost_ptd := V_Base_Raw_Cost_ptd +
896 x_Budget_rec.Base_Raw_Cost_ptd;
897 V_Base_Raw_Cost_itd := V_Base_Raw_Cost_itd +
898 x_Budget_rec.Base_Raw_Cost_itd;
899 V_Base_Raw_Cost_pp := V_Base_Raw_Cost_pp +
900 x_Budget_rec.Base_Raw_Cost_pp ;
901 V_Base_Raw_Cost_ytd := V_Base_Raw_Cost_ytd +
902 x_Budget_rec.Base_Raw_Cost_ytd;
903 End If;
904 TOT_BASE_RAW_COST := TOT_BASE_RAW_COST +
905 x_budget_rec.base_raw_cost;
906 If V_Base_Revenue_Flag = 'Y' Then
907 V_Base_Revenue_ptd := V_Base_Revenue_ptd +
908 x_Budget_rec.Base_Revenue_ptd;
909 V_Base_Revenue_itd := V_Base_Revenue_itd +
910 x_Budget_rec.Base_Revenue_itd;
911 V_Base_Revenue_pp := V_Base_Revenue_pp +
912 x_Budget_rec.Base_Revenue_pp ;
913 V_Base_Revenue_ytd := V_Base_Revenue_ytd +
914 x_Budget_rec.Base_Revenue_ytd;
915 End If;
916 TOT_BASE_REVENUE := TOT_BASE_REVENUE +
917 x_budget_rec.base_revenue;
918 If V_Orig_Burdened_Cost_Flag = 'Y' Then
919 V_Orig_Burdened_Cost_ptd := V_Orig_Burdened_Cost_ptd +
920 x_Budget_rec.Orig_Burdened_Cost_ptd;
921 V_Orig_Burdened_Cost_itd := V_Orig_Burdened_Cost_itd +
922 x_Budget_rec.Orig_Burdened_Cost_itd;
923 V_Orig_Burdened_Cost_pp := V_Orig_Burdened_Cost_pp +
924 x_Budget_rec.Orig_Burdened_Cost_pp ;
925 V_Orig_Burdened_Cost_ytd := V_Orig_Burdened_Cost_ytd +
926 x_Budget_rec.Orig_Burdened_Cost_ytd;
927 End If;
928 TOT_ORIG_BURDENED_COST := TOT_ORIG_BURDENED_COST +
929 x_budget_rec.orig_burdened_cost;
930 If V_Orig_Labor_Hours_Flag = 'Y' Then
931 V_Orig_Labor_Hours_ptd := V_Orig_Labor_Hours_ptd +
932 x_Budget_rec.Orig_Labor_Quantity_ptd;
933 V_Orig_Labor_Hours_itd := V_Orig_Labor_Hours_itd +
934 x_Budget_rec.Orig_Labor_Quantity_itd;
935 V_Orig_Labor_Hours_pp := V_Orig_Labor_Hours_pp +
936 x_Budget_rec.Orig_Labor_Quantity_pp ;
937 V_Orig_Labor_Hours_ytd := V_Orig_Labor_Hours_ytd +
938 x_Budget_rec.Orig_Labor_Quantity_ytd;
939 End If;
940 TOT_ORIG_LABOR_HOURS := TOT_ORIG_LABOR_HOURS +
941 x_budget_rec.orig_labor_quantity;
942 If V_Orig_Quantity_Flag = 'Y' and x_budget_rec.rollup_quantity_flag = 'Y' Then
943 V_Orig_Quantity_ptd := V_Orig_Quantity_ptd +
944 x_Budget_rec.Orig_Quantity_ptd;
945 V_Orig_Quantity_itd := V_Orig_Quantity_itd +
946 x_Budget_rec.Orig_Quantity_itd;
947 V_Orig_Quantity_pp := V_Orig_Quantity_pp +
948 x_Budget_rec.Orig_Quantity_pp ;
949 V_Orig_Quantity_ytd := V_Orig_Quantity_ytd +
950 x_Budget_rec.Orig_Quantity_ytd;
951 TOT_ORIG_QUANTITY := TOT_ORIG_QUANTITY +
952 x_budget_rec.orig_quantity;
953 End If;
954 If V_Base_Quantity_Flag = 'Y' and x_budget_rec.rollup_quantity_flag = 'Y' Then
955 V_Base_Quantity_ptd := V_Base_Quantity_ptd +
956 x_Budget_rec.Base_Quantity_ptd;
957 V_Base_Quantity_itd := V_Base_Quantity_itd +
958 x_Budget_rec.Base_Quantity_itd;
959 V_Base_Quantity_pp := V_Base_Quantity_pp +
960 x_Budget_rec.Base_Quantity_pp ;
961 V_Base_Quantity_ytd := V_Base_Quantity_ytd +
962 x_Budget_rec.Base_Quantity_ytd;
963 TOT_BASE_QUANTITY := TOT_BASE_QUANTITY +
964 x_budget_rec.base_quantity;
965 End If;
966 If V_Orig_Raw_Cost_Flag = 'Y' Then
967 V_Orig_Raw_Cost_ptd := V_Orig_Raw_Cost_ptd +
968 x_Budget_rec.Orig_Raw_Cost_ptd;
969 V_Orig_Raw_Cost_itd := V_Orig_Raw_Cost_itd +
970 x_Budget_rec.Orig_Raw_Cost_itd;
971 V_Orig_Raw_Cost_pp := V_Orig_Raw_Cost_pp +
972 x_Budget_rec.Orig_Raw_Cost_pp ;
973 V_Orig_Raw_Cost_ytd := V_Orig_Raw_Cost_ytd +
974 x_Budget_rec.Orig_Raw_Cost_ytd;
975 End If;
976 TOT_ORIG_RAW_COST := TOT_ORIG_RAW_COST +
977 x_budget_rec.orig_raw_cost;
978 If V_Orig_Revenue_Flag = 'Y' Then
979 V_Orig_Revenue_ptd := V_Orig_Revenue_ptd +
980 x_Budget_rec.Orig_Revenue_ptd;
981 V_Orig_Revenue_itd := V_Orig_Revenue_itd +
982 x_Budget_rec.Orig_Revenue_itd;
983 V_Orig_Revenue_pp := V_Orig_Revenue_pp +
984 x_Budget_rec.Orig_Revenue_pp ;
985 V_Orig_Revenue_ytd := V_Orig_Revenue_ytd +
986 x_Budget_rec.Orig_Revenue_ytd;
987 End If;
988 TOT_ORIG_REVENUE := TOT_ORIG_REVENUE +
989 x_budget_rec.orig_revenue;
990
991 else
992 If curr_task_id = 0 then
993 add_project_amounts;
994 -- create P,B,0,R
995 Process_all_buds
996 (x_project_id,
997 x_current_period,
998 curr_task_id,
999 curr_rlid,
1000 curr_rlmid,
1001 curr_rid,
1002 curr_rlaid,
1003 curr_rlup_qty_flag,
1004 curr_budget_type_code,
1005 curr_fin_plan_type_id,
1006 curr_buom,
1007 curr_ouom,
1008 X_Recs_processed,
1009 x_err_stack,
1010 x_err_stage,
1011 x_err_code);
1012 if x_budget_rec.task_id <> curr_task_id then
1013 Get_all_higher_tasks_bud
1014 (x_project_id ,
1015 x_budget_rec.task_id ,
1016 0, -- resource_list_member_id
1017 v_task_array,
1018 v_noof_tasks,
1019 x_err_stack,
1020 x_err_stage,
1021 x_err_code);
1022 end if;
1023 if x_budget_rec.budget_type_code <> curr_budget_type_code
1024 OR pa_budget_cur%notfound then
1025 Process_bud_code
1026 (x_project_id,
1027 x_current_period,
1028 0,
1029 0,
1030 0,
1031 0,
1032 0,
1033 curr_rlup_qty_flag,
1034 curr_budget_type_code,
1035 curr_fin_plan_type_id,
1036 curr_buom,
1037 curr_ouom,
1038 X_Recs_processed,
1039 x_err_stack,
1040 x_err_stage,
1041 x_err_code);
1042
1043 COMMIT;
1044
1045 initialize_project_level;
1046 end if;
1047 else
1048 add_project_amounts;
1049 add_task_amounts;
1050 if get_wbs = true then
1051 Get_all_higher_tasks_bud
1052 (x_project_id ,
1053 curr_task_id ,
1054 0, -- resource_list_member_id
1055 v_task_array,
1056 v_noof_tasks,
1057 x_err_stack,
1058 x_err_stage,
1059 x_err_code);
1060 get_wbs := false;
1061 end if;
1062
1063 for i in 1..v_noof_tasks loop
1064 -- create P,B,T,R
1065 Process_all_buds
1066 (x_project_id,
1067 x_current_period,
1068 v_task_array(i),
1069 curr_rlid,
1070 curr_rlmid,
1071 curr_rid,
1072 curr_rlaid,
1073 curr_rlup_qty_flag,
1074 curr_budget_type_code,
1075 curr_fin_plan_type_id,
1076 curr_buom,
1077 curr_ouom,
1078 X_Recs_processed,
1079 x_err_stack,
1080 x_err_stage,
1081 x_err_code);
1082 end loop;
1083 -- create P,B,0,R
1084 Process_all_buds
1085 (x_project_id,
1086 x_current_period,
1087 0,
1088 curr_rlid,
1089 curr_rlmid,
1090 curr_rid,
1091 curr_rlaid,
1092 curr_rlup_qty_flag,
1093 curr_budget_type_code,
1094 curr_fin_plan_type_id,
1095 curr_buom,
1096 curr_ouom,
1097 X_Recs_processed,
1098 x_err_stack,
1099 x_err_stage,
1100 x_err_code);
1101 -- create P,B,T,0
1102 if x_budget_rec.task_id <> curr_task_id or
1103 x_budget_rec.budget_type_code <> curr_budget_type_code or
1104 pa_budget_cur%notfound then
1105 for i in 1..v_noof_tasks loop
1106 Process_all_tasks
1107 (x_project_id,
1108 x_current_period,
1109 v_task_array(i),
1110 0,
1111 0,
1112 0,
1113 0,
1114 curr_rlup_qty_flag,
1115 curr_budget_type_code,
1116 curr_fin_plan_type_id,
1117 curr_buom,
1118 curr_ouom,
1119 X_Recs_processed,
1120 x_err_stack,
1121 x_err_stage,
1122 x_err_code);
1123 end loop;
1124 Get_all_higher_tasks_bud
1125 (x_project_id ,
1126 x_budget_rec.task_id ,
1127 0, -- resource_list_member_id
1128 v_task_array,
1129 v_noof_tasks,
1130 x_err_stack,
1131 x_err_stage,
1132 x_err_code);
1133 initialize_task_level;
1134 end if;
1135 if x_budget_rec.budget_type_code <> curr_budget_type_code
1136 OR pa_budget_cur%notfound then
1137 Process_bud_code
1138 (x_project_id,
1139 x_current_period,
1140 0,
1141 0,
1142 0,
1143 0,
1144 0,
1145 curr_rlup_qty_flag,
1146 curr_budget_type_code,
1147 curr_fin_plan_type_id,
1148 curr_buom,
1149 curr_ouom,
1150 X_Recs_processed,
1151 x_err_stack,
1152 x_err_stage,
1153 x_err_code);
1154 initialize_project_level;
1155
1156 COMMIT;
1157 end if;
1158 end if;
1159 initialize_res_level;
1160 fetch_rec := false;
1161 end if;
1162
1163 exit when pa_budget_cur%notfound;
1164
1165 curr_task_id := x_budget_rec.task_id;
1166 curr_budget_type_code := x_budget_rec.budget_type_code;
1167 curr_fin_plan_type_id := x_budget_rec.fin_plan_type_id;
1168 curr_rlmid := x_budget_rec.resource_list_member_id;
1169 curr_rlid := x_budget_rec.resource_list_id;
1170 curr_rid := x_budget_rec.resource_id;
1171 curr_rlaid := x_budget_rec.resource_list_assignment_id;
1172 curr_rlup_qty_flag := x_budget_rec.rollup_quantity_flag;
1173 curr_buom := X_budget_rec.Base_Unit_Of_Measure;
1174 curr_ouom := X_budget_rec.Orig_Unit_Of_Measure;
1175
1176 end loop;
1177 close pa_budget_cur;
1178 -- If Budget_type is given as input, process only that budget type
1179 -- Else process all budget types.
1180
1181 -- After processing all budget records, mark the budget versions as accumulated
1182
1183 For PA_budget_versions_Rec In PA_Budget_versions_cur LOOP
1184 If nvl(x_Budget_Type_code,PA_budget_versions_Rec.BUDGET_TYPE_CODE)
1185 = PA_budget_versions_Rec.BUDGET_TYPE_CODE Then
1186 Update PA_BUDGET_VERSIONS SET
1187 RESOURCE_ACCUMULATED_FLAG = 'Y' WHERE
1188 BUDGET_VERSION_ID = PA_budget_versions_Rec.BUDGET_VERSION_ID;
1189 End If;
1190 END LOOP;
1191 COMMIT;
1192 -- Restore the old x_err_stack;
1193
1194 x_err_stack := V_Old_Stack;
1195
1196 Exception
1197 When Others Then
1198 x_err_code := SQLCODE;
1199 RAISE;
1200
1201 END Process_Budget_Txns;
1202
1203 Procedure Process_Budget_Tot (X_project_id in Number,
1204 x_Proj_accum_id in Number,
1205 x_Budget_Type_code in Varchar2,
1206 x_current_period in Varchar2,
1207 x_err_stack In Out NOCOPY Varchar2, --File.Sql.39 bug 4440895
1208 x_err_stage In Out NOCOPY Varchar2, --File.Sql.39 bug 4440895
1209 x_err_code In Out NOCOPY Number ) IS --File.Sql.39 bug 4440895
1210
1211 -- This procedure is not being used at all.(Ignore call to PA_BUDGET_BY_RESOURCE_V)
1212
1213 CURSOR PA_Budget_Cur IS
1214 SELECT
1215 PAB.TASK_ID,
1216 PAB.BUDGET_TYPE_CODE,
1217 PAB.RESOURCE_LIST_MEMBER_ID,
1218 PAB.RESOURCE_LIST_ID,PAB.RESOURCE_ID,
1219 NVL(PAB.BASE_RAW_COST,0) BASE_RAW_COST,
1220 NVL(PAB.BASE_BURDENED_COST,0) BASE_BURDENED_COST,
1221 NVL(PAB.BASE_REVENUE,0) BASE_REVENUE,
1222 NVL(PAB.BASE_QUANTITY,0) BASE_QUANTITY,
1223 NVL(PAB.BASE_LABOR_QUANTITY,0) BASE_LABOR_QUANTITY,
1224 NVL(PAB.ORIG_RAW_COST,0) ORIG_RAW_COST,
1225 NVL(PAB.ORIG_BURDENED_COST,0) ORIG_BURDENED_COST,
1226 NVL(PAB.ORIG_REVENUE,0) ORIG_REVENUE,
1227 NVL(PAB.ORIG_QUANTITY,0) ORIG_QUANTITY,
1228 NVL(PAB.ORIG_LABOR_QUANTITY,0) ORIG_LABOR_QUANTITY,
1229 PAR.ROLLUP_QUANTITY_FLAG,
1230 PARLA.RESOURCE_LIST_ASSIGNMENT_ID
1231 FROM
1232 PA_BUDGET_BY_RESOURCE_V PAB,
1233 PA_RESOURCES PAR,
1234 PA_RESOURCE_LIST_ASSIGNMENTS PARLA
1235 WHERE PAB.PROJECT_ID = x_project_id
1236 AND PAB.RESOURCE_ACCUMULATED_FLAG = 'N'
1237 AND PAB.RESOURCE_ID = PAR.RESOURCE_ID
1238 And PARLA.PROJECT_ID = x_project_id
1239 and PARLA.RESOURCE_LIST_ID = PAB.RESOURCE_LIST_ID;
1240
1241 x_Budget_rec PA_Budget_Cur%ROWTYPE;
1242 tot_recs_processed Number := 0;
1243 x_recs_processed Number := 0;
1244 v_err_code Number := 0;
1245 v_orig_qty Number := 0;
1246 v_Base_qty Number := 0;
1247 V_Old_Stack Varchar2(630);
1248 Begin
1249
1250 V_Old_Stack := x_err_stack;
1251 x_err_stack :=
1252 x_err_stack ||'->PA_MAINT_PROJECT_BUDGETS.Process_Budget_Tot';
1253 pa_debug.debug(x_err_stack);
1254
1255 For x_Budget_rec in PA_Budget_Cur LOOP
1256
1257 -- If Budget_type is given as input, process only that budget type
1258 -- Else process all budget types.
1259
1260 IF Nvl(x_budget_type_code,x_Budget_rec.BUDGET_TYPE_CODE) =
1261 x_Budget_rec.Budget_type_code Then
1262 -- If the Rollup_Quantity_flag of the Resource is 'Y' then Roll up
1263 -- Quantity amounts
1264
1265 -- Create task/resource and combination records for WBS
1266
1267 create_accum_budgets
1268 (x_project_id,
1269 x_budget_rec.task_id,
1270 x_budget_rec.budget_type_code,
1271 x_current_period,
1272 x_Recs_processed,
1273 x_err_stack,
1274 x_err_stage,
1275 x_err_code);
1276
1277 create_accum_budgets_res
1278 (x_project_id,
1279 x_budget_rec.task_id,
1280 x_budget_rec.resource_list_id,
1281 x_budget_rec.resource_list_Member_id,
1282 x_budget_rec.resource_id,
1283 x_budget_rec.resource_list_assignment_id,
1284 x_budget_rec.budget_type_code,
1285 x_current_period,
1286 X_Recs_processed,
1287 x_err_stack,
1288 x_err_stage,
1289 x_err_code);
1290
1291 IF x_Budget_rec.ROLLUP_QUANTITY_FLAG = 'Y' Then
1292 v_Orig_Qty := x_Budget_rec.ORIG_QUANTITY;
1293 v_Base_Qty := x_Budget_rec.BASE_QUANTITY;
1294 ELSE
1295 v_Orig_Qty := 0;
1296 v_Base_Qty := 0;
1297 END IF;
1298 -- The following Update statement will update all the following records
1299
1300 -- Project level record
1301 -- Project and fetched Task and all upper tasks in the hierarchy without
1302 -- resource
1303 -- Project and fetched task and all upper tasks with the fetched resource
1304 -- Project and fetched resource
1305
1306 Update PA_PROJECT_ACCUM_BUDGETS PAB SET
1307 BASE_RAW_COST_TOT = NVL(BASE_RAW_COST_TOT,0 ) +
1308 x_budget_rec.BASE_RAW_COST,
1309 BASE_BURDENED_COST_TOT = NVL(BASE_BURDENED_COST_TOT,0) +
1310 x_budget_rec.BASE_BURDENED_COST,
1311 ORIG_RAW_COST_TOT = NVL(ORIG_RAW_COST_TOT,0) +
1312 x_budget_rec.ORIG_RAW_COST,
1313 ORIG_BURDENED_COST_TOT = NVL(ORIG_BURDENED_COST_TOT,0) +
1314 x_budget_rec.ORIG_BURDENED_COST,
1315 BASE_REVENUE_TOT = NVL(BASE_REVENUE_TOT,0 ) +
1316 x_budget_rec.BASE_REVENUE,
1317 ORIG_REVENUE_TOT = NVL(ORIG_REVENUE_TOT,0 ) +
1318 x_budget_rec.ORIG_REVENUE,
1319 BASE_LABOR_HOURS_TOT = NVL(BASE_LABOR_HOURS_TOT,0) +
1320 x_budget_rec.BASE_LABOR_QUANTITY,
1321 ORIG_LABOR_HOURS_TOT = NVL(ORIG_LABOR_HOURS_TOT,0 ) +
1322 x_budget_rec.ORIG_LABOR_QUANTITY,
1323 BASE_QUANTITY_TOT = NVL(BASE_QUANTITY_TOT,0) +
1324 V_Base_Qty,
1325 ORIG_QUANTITY_TOT = NVL(ORIG_QUANTITY_TOT,0) +
1326 V_Orig_Qty,
1327 LAST_UPDATED_BY = pa_proj_accum_main.x_last_updated_by,
1328 LAST_UPDATE_DATE = Trunc(Sysdate),
1329 LAST_UPDATE_LOGIN = pa_proj_accum_main.x_last_update_login
1330 Where Budget_Type_Code = x_Budget_rec.BUDGET_TYPE_CODE
1331 AND
1332 (PAB.Project_Accum_id In
1333 (Select Pah.Project_Accum_id from PA_PROJECT_ACCUM_HEADERS PAH
1334 Where Pah.Project_id = x_project_id and
1335 pah.Resource_list_member_id = 0 and
1336 Pah.Task_id in (Select Pt.Task_Id from PA_TASKS pt
1337 start with pt.task_id = x_budget_rec.TASK_ID
1338 connect by prior pt.parent_task_id = pt.task_id)
1339 UNION
1340 select to_number(X_Proj_accum_id) from sys.dual
1341 UNION
1342 (Select Pah.Project_Accum_id from PA_PROJECT_ACCUM_HEADERS PAH
1343 Where Pah.Project_id = x_project_id and
1344 pah.Resource_list_member_id =
1345 x_Budget_rec.RESOURCE_LIST_MEMBER_ID and
1346 Pah.Task_id in (select 0 from sys.dual union
1347 Select Pt.Task_Id from PA_TASKS pt
1348 start with pt.task_id = x_budget_rec.TASK_ID
1349 connect by prior pt.parent_task_id = pt.task_id)))
1350 );
1351 tot_Recs_processed := tot_Recs_processed + SQL%ROWCOUNT;
1352 END IF;
1353 END LOOP;
1354 -- Restore the old x_err_stack;
1355 x_err_stack := V_Old_Stack;
1356
1357 Exception
1358 When Others Then
1359 x_err_code := SQLCODE;
1360 RAISE;
1361 End Process_Budget_Tot;
1362
1363 -- This procedure creates the records in pa_project_accum_budgets
1364 -- for all the task break down hierarachy
1365
1366 Procedure create_accum_budgets
1367 (x_project_id In Number,
1368 x_task_id In Number,
1369 x_budget_type_code In Varchar2,
1370 x_current_period In Varchar2,
1371 x_Recs_processed Out NOCOPY Number, --File.Sql.39 bug 4440895
1372 x_err_stack In Out NOCOPY Varchar2, --File.Sql.39 bug 4440895
1373 x_err_stage In Out NOCOPY Varchar2, --File.Sql.39 bug 4440895
1374 x_err_code In Out NOCOPY Number ) --File.Sql.39 bug 4440895
1375 IS
1376
1377 Recs_processed Number := 0;
1378 V_Accum_id Number := 0;
1379 V_task_array task_id_tabtype;
1380 v_noof_tasks Number := 0;
1381 v_err_code Number := 0;
1382 other_recs_processed Number := 0;
1383 V_Old_Stack Varchar2(630);
1384 Begin
1385 V_Old_Stack := x_err_stack;
1386 x_err_stack :=
1387 x_err_stack||'->PA_MAINT_PROJECT_BUDGETS.create_accum_budgets';
1388
1389 -- This checks for budgets record in PA_PROJECT_ACCUM_BUDGETS for this
1390 -- project and task combination. It is possible that there might be a
1391 -- header record for this combination in PA_PROJECT_ACCUM_HEADERS, but
1392 -- no corresponding detail record. The procedure called below,will
1393 -- check for the existence of the detail records and if not available
1394 -- would create it.
1395
1396 pa_accum_utils.Check_budget_Details
1397 (x_project_id,
1398 x_task_id,
1399 0,
1400 x_budget_type_code,
1401 other_recs_processed,
1402 x_err_stack,
1403 x_err_stage,
1404 x_err_code);
1405
1406 Recs_processed := Recs_processed + other_recs_processed;
1407
1408 -- The following procedure would return all the tasks in the given task
1409 -- WBS hierarchy, including the given task, which do not have a header
1410 -- record . The return parameter is an array of records.
1411
1412
1413 Get_all_higher_tasks_bud
1414 (x_project_id ,
1415 x_task_id ,
1416 0, -- resource_list_member_id
1417 v_task_array,
1418 v_noof_tasks,
1419 x_err_stack,
1420 x_err_stage,
1421 x_err_code);
1422 -- If the above procedure had returned any tasks , then we need to insert
1423 -- header record and budgets record. We need to process the tasks one by one
1424 -- since we require the Accum_id for each detail record.
1425 -- Eg: If the given task (the one fetched from PA_TXN_ACCUM) was say
1426 -- 1.1.1, then the first time, Get_all_higher_tasks would return,
1427 -- 1.1.1, 1.1, and 1. We create three header records and three detail records
1428 -- in the Project_accum_budgets table. The next time , if the given task
1429 -- is 1.1.2, the Get_all_higher_tasks would return only 1.1.2, since
1430 -- 1.1 and 1 are already available in the Pa_project_accum_headers. Those
1431 -- two records would have been processed by the Update statements.
1432
1433 If v_noof_tasks > 0 Then
1434 For i in 1..v_noof_tasks LOOP
1435 Select PA_PROJECT_ACCUM_HEADERS_S.Nextval into V_Accum_id
1436 From sys.Dual;
1437 PA_MAINT_PROJECT_ACCUMS.Insert_Headers_tasks
1438 (X_project_id,
1439 v_task_array(i),
1440 x_current_period,
1441 v_accum_id,
1442 x_err_stack,
1443 x_err_stage,
1444 x_err_code);
1445
1446 Recs_processed := Recs_processed + 1;
1447 Insert into PA_PROJECT_ACCUM_BUDGETS (
1448 PROJECT_ACCUM_ID,BUDGET_TYPE_CODE,BASE_RAW_COST_ITD,BASE_RAW_COST_YTD,
1449 BASE_RAW_COST_PP, BASE_RAW_COST_PTD,
1450 BASE_BURDENED_COST_ITD,BASE_BURDENED_COST_YTD,
1451 BASE_BURDENED_COST_PP,BASE_BURDENED_COST_PTD,
1452 ORIG_RAW_COST_ITD,ORIG_RAW_COST_YTD,
1453 ORIG_RAW_COST_PP, ORIG_RAW_COST_PTD,
1454 ORIG_BURDENED_COST_ITD,ORIG_BURDENED_COST_YTD,
1455 ORIG_BURDENED_COST_PP,ORIG_BURDENED_COST_PTD,
1456 BASE_QUANTITY_ITD,BASE_QUANTITY_YTD,BASE_QUANTITY_PP,
1457 BASE_QUANTITY_PTD,
1458 ORIG_QUANTITY_ITD,ORIG_QUANTITY_YTD,ORIG_QUANTITY_PP,
1459 ORIG_QUANTITY_PTD,
1460 BASE_LABOR_HOURS_ITD,BASE_LABOR_HOURS_YTD,BASE_LABOR_HOURS_PP,
1461 BASE_LABOR_HOURS_PTD,
1462 ORIG_LABOR_HOURS_ITD,ORIG_LABOR_HOURS_YTD,ORIG_LABOR_HOURS_PP,
1463 ORIG_LABOR_HOURS_PTD,
1464 BASE_REVENUE_ITD,BASE_REVENUE_YTD,BASE_REVENUE_PP,BASE_REVENUE_PTD,
1465 ORIG_REVENUE_ITD,ORIG_REVENUE_YTD,ORIG_REVENUE_PP,ORIG_REVENUE_PTD,
1466 BASE_UNIT_OF_MEASURE,ORIG_UNIT_OF_MEASURE,
1467 BASE_RAW_COST_TOT,BASE_BURDENED_COST_TOT,ORIG_RAW_COST_TOT,
1468 ORIG_BURDENED_COST_TOT,BASE_REVENUE_TOT,ORIG_REVENUE_TOT,
1469 BASE_LABOR_HOURS_TOT,ORIG_LABOR_HOURS_TOT,BASE_QUANTITY_TOT,
1470 ORIG_QUANTITY_TOT,
1471 REQUEST_ID,LAST_UPDATED_BY,LAST_UPDATE_DATE,CREATION_DATE,CREATED_BY,
1472 LAST_UPDATE_LOGIN) Values
1473 (V_Accum_id,x_budget_type_code,
1474 0,0,0,0,
1475 0,0,
1476 0,0,
1477 0,0,0,0,
1478 0,0,
1479 0,0,
1480 0,0,0,0,
1481 0,0,0,0,
1482 0,0,0,0,
1483 0,0,0,0,
1484 0,0,0,0,
1485 0,0,0,0,
1486 NULL,NULL,
1487 0,0,0,0,0,0,0,0,0,0,
1488 pa_proj_accum_main.x_request_id,pa_proj_accum_main.x_last_updated_by,Trunc(sysdate),
1489 Trunc(Sysdate),pa_proj_accum_main.x_created_by,pa_proj_accum_main.x_last_update_login);
1490 Recs_processed := Recs_processed + 1;
1491 END LOOP;
1492
1493 End If;
1494 x_recs_processed := Recs_processed;
1495 x_err_stack := V_Old_Stack;
1496
1497 EXCEPTION
1498 When Others then
1499 x_err_code := SQLCODE;
1500 RAISE;
1501 END create_accum_budgets;
1502
1503 -- This procedure creates records in HEADERS/budgets table for
1504 -- task/resource_list_member_id combination
1505
1506 Procedure create_accum_budgets_res
1507 (x_project_id In Number,
1508 x_task_id In Number,
1509 x_resource_list_id in Number,
1510 x_resource_list_Member_id in Number,
1511 x_resource_id in Number,
1512 x_resource_list_assignment_id in Number,
1513 x_budget_type_code in Varchar2,
1514 x_current_period In Varchar2,
1515 X_Recs_processed Out NOCOPY Number, --File.Sql.39 bug 4440895
1516 x_err_stack In Out NOCOPY Varchar2, --File.Sql.39 bug 4440895
1517 x_err_stage In Out NOCOPY Varchar2, --File.Sql.39 bug 4440895
1518 x_err_code In Out NOCOPY Number ) IS --File.Sql.39 bug 4440895
1519
1520 CURSOR Proj_Res_level_Cur IS
1521 SELECT Project_Accum_Id
1522 FROM
1523 PA_PROJECT_ACCUM_HEADERS
1524 WHERE Project_id = X_project_id
1525 AND Task_Id = 0
1526 AND Resource_list_Member_id = X_resource_list_member_id;
1527
1528 Recs_processed Number := 0;
1529 V_Accum_id Number := 0;
1530 V_task_array task_id_tabtype;
1531 v_noof_tasks Number := 0;
1532 Res_Recs_processed Number := 0;
1533 V_Old_Stack Varchar2(630);
1534
1535 Begin
1536 V_Old_Stack := x_err_stack;
1537 x_err_stack :=
1538 X_err_stack ||'->PA_MAINT_PROJECT_BUDGETS.create_accum_budgets_res';
1539
1540 -- This checks for budgets record in PA_PROJECT_ACCUM_ACTUALS for this
1541 -- project,task and resource combination.It is possible that there might be a
1542 -- header record for this combination in PA_PROJECT_ACCUM_HEADERS, but
1543 -- no corresponding detail record. The procedure called below,will
1544 -- check for the existence of the detail records and if not available
1545 -- would create it.
1546
1547 PA_ACCUM_UTILS.Check_budget_Details
1548 (x_project_id,
1549 x_task_id,
1550 x_resource_list_Member_id,
1551 x_budget_type_code,
1552 Res_recs_processed,
1553 x_err_stack,
1554 x_err_stage,
1555 x_err_code);
1556
1557 Recs_processed := Recs_processed + Res_recs_processed;
1558
1559 -- This checks for budgets record in PA_PROJECT_ACCUM_ACTUALS for this
1560 -- project and Resource combination. It is possible that there might be a
1561 -- header record for this combination in PA_PROJECT_ACCUM_HEADERS, but
1562 -- no corresponding detail record. The procedure called below,will
1563 -- check for the existence of the detail records and if not available
1564 -- would create it.
1565
1566 PA_ACCUM_UTILS.Check_budget_Details
1567 (x_project_id,
1568 0,
1569 x_resource_list_Member_id,
1570 x_budget_type_code,
1571 res_recs_processed,
1572 x_err_stack,
1573 x_err_stage,
1574 x_err_code);
1575 Recs_processed := Recs_processed + Res_recs_processed;
1576
1577 -- The following procedure would return all the tasks in the given task
1578 -- WBS hierarchy, including the given task, which do not have a header
1579 -- record . The return parameter is an array of records.
1580
1581 v_noof_tasks := 0;
1582
1583 Get_all_higher_tasks_bud (x_project_id ,
1584 x_task_id ,
1585 x_resource_list_member_id,
1586 v_task_array,
1587 v_noof_tasks,
1588 x_err_stack,
1589 x_err_stage,
1590 x_err_code);
1591
1592 -- If the above procedure had returned any tasks , then we need to insert
1593 -- header record and budgets record. We need to process the tasks one by one
1594 -- since we require the Accum_id for each detail record.
1595 -- Eg: If the given task (the one fetched from PA_TXN_ACCUM) was say
1596 -- 1.1.1, then the first time, Get_all_higher_tasks would return,
1597 -- 1.1.1, 1.1, and 1. We create three header records and three detail records
1598 -- in the Project_accum_budgets table. The next time , if the given task
1599 -- is 1.1.2, the Get_all_higher_tasks would return only 1.1.2, since
1600 -- 1.1 and 1 are already available in the Pa_project_accum_headers. Those
1601 -- two records would have been processed by the Update statements.
1602
1603 If v_noof_tasks > 0 Then
1604 For i in 1..v_noof_tasks LOOP
1605 Select PA_PROJECT_ACCUM_HEADERS_S.Nextval into V_Accum_id
1606 From sys.Dual;
1607 PA_process_accum_actuals_res.insert_headers_res
1608 (x_project_id,
1609 v_task_array(i),
1610 x_resource_list_id ,
1611 x_resource_list_Member_id ,
1612 x_resource_id ,
1613 x_resource_list_assignment_id ,
1614 x_current_period,
1615 v_accum_id,
1616 x_err_stack,
1617 x_err_stage,
1618 x_err_code);
1619 Recs_processed := Recs_processed + 1;
1620 Insert into PA_PROJECT_ACCUM_BUDGETS (
1621 PROJECT_ACCUM_ID,BUDGET_TYPE_CODE,BASE_RAW_COST_ITD,BASE_RAW_COST_YTD,
1622 BASE_RAW_COST_PP, BASE_RAW_COST_PTD,
1623 BASE_BURDENED_COST_ITD,BASE_BURDENED_COST_YTD,
1624 BASE_BURDENED_COST_PP,BASE_BURDENED_COST_PTD,
1625 ORIG_RAW_COST_ITD,ORIG_RAW_COST_YTD,
1626 ORIG_RAW_COST_PP, ORIG_RAW_COST_PTD,
1627 ORIG_BURDENED_COST_ITD,ORIG_BURDENED_COST_YTD,
1628 ORIG_BURDENED_COST_PP,ORIG_BURDENED_COST_PTD,
1629 BASE_QUANTITY_ITD,BASE_QUANTITY_YTD,BASE_QUANTITY_PP,
1630 BASE_QUANTITY_PTD,
1631 ORIG_QUANTITY_ITD,ORIG_QUANTITY_YTD,ORIG_QUANTITY_PP,
1632 ORIG_QUANTITY_PTD,
1633 BASE_LABOR_HOURS_ITD,BASE_LABOR_HOURS_YTD,BASE_LABOR_HOURS_PP,
1634 BASE_LABOR_HOURS_PTD,
1635 ORIG_LABOR_HOURS_ITD,ORIG_LABOR_HOURS_YTD,ORIG_LABOR_HOURS_PP,
1636 ORIG_LABOR_HOURS_PTD,
1637 BASE_REVENUE_ITD,BASE_REVENUE_YTD,BASE_REVENUE_PP,BASE_REVENUE_PTD,
1638 ORIG_REVENUE_ITD,ORIG_REVENUE_YTD,ORIG_REVENUE_PP,ORIG_REVENUE_PTD,
1639 BASE_UNIT_OF_MEASURE,ORIG_UNIT_OF_MEASURE,
1640 BASE_RAW_COST_TOT,BASE_BURDENED_COST_TOT,ORIG_RAW_COST_TOT,
1641 ORIG_BURDENED_COST_TOT,BASE_REVENUE_TOT,ORIG_REVENUE_TOT,
1642 BASE_LABOR_HOURS_TOT,ORIG_LABOR_HOURS_TOT,BASE_QUANTITY_TOT,
1643 ORIG_QUANTITY_TOT,
1644 REQUEST_ID,LAST_UPDATED_BY,LAST_UPDATE_DATE,CREATION_DATE,CREATED_BY,
1645 LAST_UPDATE_LOGIN) Values
1646 (V_Accum_id,x_budget_type_code,
1647 0,0,0,0,
1648 0,0,
1649 0,0,
1650 0,0,0,0,
1651 0,0,
1652 0,0,
1653 0,0,0,0,
1654 0,0,0,0,
1655 0,0,0,0,
1656 0,0,0,0,
1657 0,0,0,0,
1658 0,0,0,0,
1659 NULL,NULL,
1660 0,0,0,0,0,0,0,0,0,0,
1661 pa_proj_accum_main.x_request_id,pa_proj_accum_main.x_last_updated_by,Trunc(sysdate),
1662 Trunc(Sysdate),pa_proj_accum_main.x_created_by,pa_proj_accum_main.x_last_update_login);
1663
1664 Recs_processed := Recs_processed + 1;
1665 END LOOP;
1666 End If;
1667 -- This will check for the Project-Resource combination in the Header records
1668 -- and if not present create the Header and Detail records for budgets
1669 Open Proj_Res_level_Cur;
1670 Fetch Proj_Res_level_Cur Into V_Accum_Id;
1671 IF Proj_Res_level_Cur%NOTFOUND Then
1672 Select PA_PROJECT_ACCUM_HEADERS_S.Nextval into V_Accum_id
1673 From sys.Dual;
1674 PA_process_accum_actuals_res.insert_headers_res
1675 (x_project_id,
1676 0,
1677 x_resource_list_id ,
1678 x_resource_list_Member_id ,
1679 x_resource_id ,
1680 x_resource_list_assignment_id ,
1681 x_current_period,
1682 v_accum_id,
1683 x_err_stack,
1684 x_err_stage,
1685 x_err_code);
1686
1687 Recs_processed := Recs_processed + 1;
1688 Insert into PA_PROJECT_ACCUM_BUDGETS (
1689 PROJECT_ACCUM_ID,BUDGET_TYPE_CODE,BASE_RAW_COST_ITD,BASE_RAW_COST_YTD,
1690 BASE_RAW_COST_PP, BASE_RAW_COST_PTD,
1691 BASE_BURDENED_COST_ITD,BASE_BURDENED_COST_YTD,
1692 BASE_BURDENED_COST_PP,BASE_BURDENED_COST_PTD,
1693 ORIG_RAW_COST_ITD,ORIG_RAW_COST_YTD,
1694 ORIG_RAW_COST_PP, ORIG_RAW_COST_PTD,
1695 ORIG_BURDENED_COST_ITD,ORIG_BURDENED_COST_YTD,
1696 ORIG_BURDENED_COST_PP,ORIG_BURDENED_COST_PTD,
1697 BASE_QUANTITY_ITD,BASE_QUANTITY_YTD,BASE_QUANTITY_PP,
1698 BASE_QUANTITY_PTD,
1699 ORIG_QUANTITY_ITD,ORIG_QUANTITY_YTD,ORIG_QUANTITY_PP,
1700 ORIG_QUANTITY_PTD,
1701 BASE_LABOR_HOURS_ITD,BASE_LABOR_HOURS_YTD,BASE_LABOR_HOURS_PP,
1702 BASE_LABOR_HOURS_PTD,
1703 ORIG_LABOR_HOURS_ITD,ORIG_LABOR_HOURS_YTD,ORIG_LABOR_HOURS_PP,
1704 ORIG_LABOR_HOURS_PTD,
1705 BASE_REVENUE_ITD,BASE_REVENUE_YTD,BASE_REVENUE_PP,BASE_REVENUE_PTD,
1706 ORIG_REVENUE_ITD,ORIG_REVENUE_YTD,ORIG_REVENUE_PP,ORIG_REVENUE_PTD,
1707 BASE_UNIT_OF_MEASURE,ORIG_UNIT_OF_MEASURE,
1708 BASE_RAW_COST_TOT,BASE_BURDENED_COST_TOT,ORIG_RAW_COST_TOT,
1709 ORIG_BURDENED_COST_TOT,BASE_REVENUE_TOT,ORIG_REVENUE_TOT,
1710 BASE_LABOR_HOURS_TOT,ORIG_LABOR_HOURS_TOT,BASE_QUANTITY_TOT,
1711 ORIG_QUANTITY_TOT,
1712 REQUEST_ID,LAST_UPDATED_BY,LAST_UPDATE_DATE,CREATION_DATE,CREATED_BY,
1713 LAST_UPDATE_LOGIN) Values
1714 (V_Accum_id,x_budget_type_code,
1715 0,0,0,0,
1716 0,0,
1717 0,0,
1718 0,0,0,0,
1719 0,0,
1720 0,0,
1721 0,0,0,0,
1722 0,0,0,0,
1723 0,0,0,0,
1724 0,0,0,0,
1725 0,0,0,0,
1726 0,0,0,0,
1727 NULL,NULL,
1728 0,0,0,0,0,0,0,0,0,0,
1729 pa_proj_accum_main.x_request_id,pa_proj_accum_main.x_last_updated_by,Trunc(sysdate),
1730 Trunc(Sysdate),pa_proj_accum_main.x_created_by,pa_proj_accum_main.x_last_update_login);
1731 Recs_processed := Recs_processed + 1;
1732 END IF;
1733 Close Proj_Res_level_Cur;
1734 x_recs_processed := Recs_processed;
1735
1736 -- Restore the old x_err_stack;
1737
1738 x_err_stack := V_Old_Stack;
1739 Exception
1740 When Others Then
1741 x_err_code := SQLCODE;
1742 RAISE;
1743 End create_accum_budgets_res;
1744
1745 Procedure Get_all_higher_tasks_bud (x_project_id in Number,
1746 x_task_id in Number,
1747 x_resource_list_member_id In Number,
1748 x_task_array Out NOCOPY task_id_tabtype, --File.Sql.39 bug 4440895
1749 x_noof_tasks Out NOCOPY number, --File.Sql.39 bug 4440895
1750 x_err_stack In Out NOCOPY Varchar2, --File.Sql.39 bug 4440895
1751 x_err_stage In Out NOCOPY Varchar2, --File.Sql.39 bug 4440895
1752 x_err_code In Out NOCOPY Number ) IS --File.Sql.39 bug 4440895
1753
1754
1755 -- Get_all_higher_tasks_bud - For the given Task Id returns all the
1756 -- higher level tasks in the WBS (including the given
1757 -- task) which are not in PA_PROJECT_ACCUM_HEADERS
1758 -- (Tasks with the given Resource )
1759
1760 CURSOR Tasks_Cur IS
1761 SELECT task_id
1762 FROM
1763 pa_tasks pt
1764 WHERE project_id = x_project_id
1765 START WITH task_id = x_task_id
1766 CONNECT BY PRIOR parent_task_id = task_id;
1767
1768 v_noof_tasks Number := 0;
1769
1770 V_Old_Stack Varchar2(630);
1771 Task_Rec Tasks_Cur%ROWTYPE;
1772 Begin
1773 V_Old_Stack := x_err_stack;
1774 x_err_stack :=
1775 x_err_stack ||'->PA_MAINT_PROJECT_BUDGETS.Get_all_higher_tasks_bud';
1776
1777 pa_debug.debug(x_err_stack);
1778
1779 For Task_Rec IN Tasks_Cur LOOP
1780 v_noof_tasks := v_noof_tasks + 1;
1781 x_task_array(v_noof_tasks) := Task_Rec.Task_id;
1782
1783 END LOOP;
1784
1785 x_noof_tasks := v_noof_tasks;
1786
1787 -- Restore the old x_err_stack;
1788
1789 x_err_stack := V_Old_Stack;
1790 Exception
1791 When Others Then
1792 x_err_code := SQLCODE;
1793 RAISE ;
1794
1795 end Get_all_higher_tasks_bud;
1796
1797
1798
1799 Procedure Initialize_res_level is
1800 begin
1801 pa_debug.debug('Initialize_res_level');
1802
1803 V_Base_Burdened_Cost_itd :=0;
1804 V_Base_Burdened_Cost_ptd :=0;
1805 V_Base_Burdened_Cost_pp :=0;
1806 V_Base_Burdened_Cost_ytd :=0;
1807 V_Base_Labor_Hours_itd :=0;
1808 V_Base_Labor_Hours_ptd :=0;
1809 V_Base_Labor_Hours_pp :=0;
1810 V_Base_Labor_Hours_ytd :=0;
1811 V_Base_Raw_Cost_itd :=0;
1812 V_Base_Raw_Cost_ptd :=0;
1813 V_Base_Raw_Cost_pp :=0;
1814 V_Base_Raw_Cost_ytd :=0;
1815 V_Base_Revenue_itd :=0;
1816 V_Base_Revenue_ptd :=0;
1817 V_Base_Revenue_pp :=0;
1818 V_Base_Revenue_ytd :=0;
1819 V_Base_Quantity_itd :=0;
1820 V_Base_Quantity_ptd :=0;
1821 V_Base_Quantity_pp :=0;
1822 V_Base_Quantity_ytd :=0;
1823 V_Orig_Burdened_Cost_itd :=0;
1824 V_Orig_Burdened_Cost_ptd :=0;
1825 V_Orig_Burdened_Cost_pp :=0;
1826 V_Orig_Burdened_Cost_ytd :=0;
1827 V_Orig_Labor_Hours_itd :=0;
1828 V_Orig_Labor_Hours_ptd :=0;
1829 V_Orig_Labor_Hours_pp :=0;
1830 V_Orig_Labor_Hours_ytd :=0;
1831 V_Orig_Quantity_itd :=0;
1832 V_Orig_Quantity_ptd :=0;
1833 V_Orig_Quantity_pp :=0;
1834 V_Orig_Quantity_ytd :=0;
1835 V_Orig_Raw_Cost_itd :=0;
1836 V_Orig_Raw_Cost_ptd :=0;
1837 V_Orig_Raw_Cost_pp :=0;
1838 V_Orig_Raw_Cost_ytd :=0;
1839 V_Orig_Revenue_itd :=0;
1840 V_Orig_Revenue_ptd :=0;
1841 V_Orig_Revenue_pp :=0;
1842 V_Orig_Revenue_ytd :=0;
1843 TOT_ORIG_REVENUE := 0;
1844 TOT_BASE_REVENUE := 0;
1845 TOT_ORIG_QUANTITY := 0;
1846 TOT_BASE_QUANTITY := 0;
1847 TOT_ORIG_RAW_COST := 0;
1848 TOT_BASE_RAW_COST := 0;
1849 TOT_ORIG_BURDENED_COST := 0;
1850 TOT_BASE_BURDENED_COST := 0;
1851 TOT_ORIG_LABOR_HOURS := 0;
1852 TOT_BASE_LABOR_HOURS := 0;
1853
1854 end Initialize_res_level;
1855
1856 Procedure Initialize_project_level is
1857 begin
1858 pa_debug.debug('Initialize_project_level');
1859
1860 Prj_Base_Burdened_Cost_itd :=0;
1861 Prj_Base_Burdened_Cost_ptd :=0;
1862 Prj_Base_Burdened_Cost_pp :=0;
1863 Prj_Base_Burdened_Cost_ytd :=0;
1864 Prj_Base_Labor_Hours_itd :=0;
1865 Prj_Base_Labor_Hours_ptd :=0;
1866 Prj_Base_Labor_Hours_pp :=0;
1867 Prj_Base_Labor_Hours_ytd :=0;
1868 Prj_Base_Raw_Cost_itd :=0;
1869 Prj_Base_Raw_Cost_ptd :=0;
1870 Prj_Base_Raw_Cost_pp :=0;
1871 Prj_Base_Raw_Cost_ytd :=0;
1872 Prj_Base_Revenue_itd :=0;
1873 Prj_Base_Revenue_ptd :=0;
1874 Prj_Base_Revenue_pp :=0;
1875 Prj_Base_Revenue_ytd :=0;
1876 Prj_Base_Quantity_itd :=0;
1877 Prj_Base_Quantity_ptd :=0;
1878 Prj_Base_Quantity_pp :=0;
1879 Prj_Base_Quantity_ytd :=0;
1880 Prj_Orig_Burdened_Cost_itd :=0;
1881 Prj_Orig_Burdened_Cost_ptd :=0;
1882 Prj_Orig_Burdened_Cost_pp :=0;
1883 Prj_Orig_Burdened_Cost_ytd :=0;
1884 Prj_Orig_Labor_Hours_itd :=0;
1885 Prj_Orig_Labor_Hours_ptd :=0;
1886 Prj_Orig_Labor_Hours_pp :=0;
1887 Prj_Orig_Labor_Hours_ytd :=0;
1888 Prj_Orig_Quantity_itd :=0;
1889 Prj_Orig_Quantity_ptd :=0;
1890 Prj_Orig_Quantity_pp :=0;
1891 Prj_Orig_Quantity_ytd :=0;
1892 Prj_Orig_Raw_Cost_itd :=0;
1893 Prj_Orig_Raw_Cost_ptd :=0;
1894 Prj_Orig_Raw_Cost_pp :=0;
1895 Prj_Orig_Raw_Cost_ytd :=0;
1896 Prj_Orig_Revenue_itd :=0;
1897 Prj_Orig_Revenue_ptd :=0;
1898 Prj_Orig_Revenue_pp :=0;
1899 Prj_Orig_Revenue_ytd :=0;
1900 Prj_ORIG_REVENUE := 0;
1901 Prj_BASE_REVENUE := 0;
1902 Prj_ORIG_QUANTITY := 0;
1903 Prj_BASE_QUANTITY := 0;
1904 Prj_ORIG_RAW_COST := 0;
1905 Prj_BASE_RAW_COST := 0;
1906 Prj_ORIG_BURDENED_COST := 0;
1907 Prj_BASE_BURDENED_COST := 0;
1908 Prj_ORIG_LABOR_HOURS := 0;
1909 Prj_BASE_LABOR_HOURS := 0;
1910
1911 end Initialize_project_level;
1912
1913 Procedure Initialize_task_level is
1914 begin
1915 pa_debug.debug('Initialize_task_level');
1916
1917 Tsk_Base_Burdened_Cost_itd :=0;
1918 Tsk_Base_Burdened_Cost_ptd :=0;
1919 Tsk_Base_Burdened_Cost_pp :=0;
1920 Tsk_Base_Burdened_Cost_ytd :=0;
1921 Tsk_Base_Labor_Hours_itd :=0;
1922 Tsk_Base_Labor_Hours_ptd :=0;
1923 Tsk_Base_Labor_Hours_pp :=0;
1924 Tsk_Base_Labor_Hours_ytd :=0;
1925 Tsk_Base_Raw_Cost_itd :=0;
1926 Tsk_Base_Raw_Cost_ptd :=0;
1927 Tsk_Base_Raw_Cost_pp :=0;
1928 Tsk_Base_Raw_Cost_ytd :=0;
1929 Tsk_Base_Revenue_itd :=0;
1930 Tsk_Base_Revenue_ptd :=0;
1931 Tsk_Base_Revenue_pp :=0;
1932 Tsk_Base_Revenue_ytd :=0;
1933 Tsk_Base_Quantity_itd :=0;
1934 Tsk_Base_Quantity_ptd :=0;
1935 Tsk_Base_Quantity_pp :=0;
1936 Tsk_Base_Quantity_ytd :=0;
1937 Tsk_Orig_Burdened_Cost_itd :=0;
1938 Tsk_Orig_Burdened_Cost_ptd :=0;
1939 Tsk_Orig_Burdened_Cost_pp :=0;
1940 Tsk_Orig_Burdened_Cost_ytd :=0;
1941 Tsk_Orig_Labor_Hours_itd :=0;
1942 Tsk_Orig_Labor_Hours_ptd :=0;
1943 Tsk_Orig_Labor_Hours_pp :=0;
1944 Tsk_Orig_Labor_Hours_ytd :=0;
1945 Tsk_Orig_Quantity_itd :=0;
1946 Tsk_Orig_Quantity_ptd :=0;
1947 Tsk_Orig_Quantity_pp :=0;
1948 Tsk_Orig_Quantity_ytd :=0;
1949 Tsk_Orig_Raw_Cost_itd :=0;
1950 Tsk_Orig_Raw_Cost_ptd :=0;
1951 Tsk_Orig_Raw_Cost_pp :=0;
1952 Tsk_Orig_Raw_Cost_ytd :=0;
1953 Tsk_Orig_Revenue_itd :=0;
1954 Tsk_Orig_Revenue_ptd :=0;
1955 Tsk_Orig_Revenue_pp :=0;
1956 Tsk_Orig_Revenue_ytd :=0;
1957 Tsk_ORIG_REVENUE := 0;
1958 Tsk_BASE_REVENUE := 0;
1959 Tsk_ORIG_QUANTITY := 0;
1960 Tsk_BASE_QUANTITY := 0;
1961 Tsk_ORIG_RAW_COST := 0;
1962 Tsk_BASE_RAW_COST := 0;
1963 Tsk_ORIG_BURDENED_COST := 0;
1964 Tsk_BASE_BURDENED_COST := 0;
1965 Tsk_ORIG_LABOR_HOURS := 0;
1966 Tsk_BASE_LABOR_HOURS := 0;
1967
1968 end Initialize_task_level;
1969
1970 Procedure Add_task_amounts is
1971 begin
1972 pa_debug.debug('Add_task_amounts');
1973
1974 Tsk_Base_Burdened_Cost_itd := Tsk_Base_Burdened_Cost_itd + V_Base_Burdened_Cost_itd;
1975 Tsk_Base_Burdened_Cost_ptd := Tsk_Base_Burdened_Cost_ptd + V_Base_Burdened_Cost_ptd;
1976 Tsk_Base_Burdened_Cost_pp := Tsk_Base_Burdened_Cost_pp + V_Base_Burdened_Cost_pp;
1977 Tsk_Base_Burdened_Cost_ytd := Tsk_Base_Burdened_Cost_ytd + V_Base_Burdened_Cost_ytd;
1978 Tsk_Base_Labor_Hours_itd := Tsk_Base_Labor_Hours_itd + V_Base_Labor_Hours_itd;
1979 Tsk_Base_Labor_Hours_ptd := Tsk_Base_Labor_Hours_ptd + V_Base_Labor_Hours_ptd;
1980 Tsk_Base_Labor_Hours_pp := Tsk_Base_Labor_Hours_pp + V_Base_Labor_Hours_pp;
1981 Tsk_Base_Labor_Hours_ytd := Tsk_Base_Labor_Hours_ytd + V_Base_Labor_Hours_ytd;
1982 Tsk_Base_Raw_Cost_itd := Tsk_Base_Raw_Cost_itd + V_Base_Raw_Cost_itd;
1983 Tsk_Base_Raw_Cost_ptd := Tsk_Base_Raw_Cost_ptd + V_Base_Raw_Cost_ptd;
1984 Tsk_Base_Raw_Cost_pp := Tsk_Base_Raw_Cost_pp + V_Base_Raw_Cost_pp;
1985 Tsk_Base_Raw_Cost_ytd := Tsk_Base_Raw_Cost_ytd + V_Base_Raw_Cost_ytd;
1986 Tsk_Base_Revenue_itd := Tsk_Base_Revenue_itd + V_Base_Revenue_itd;
1987 Tsk_Base_Revenue_ptd := Tsk_Base_Revenue_ptd + V_Base_Revenue_ptd;
1988 Tsk_Base_Revenue_pp := Tsk_Base_Revenue_pp + V_Base_Revenue_pp;
1989 Tsk_Base_Revenue_ytd := Tsk_Base_Revenue_ytd + V_Base_Revenue_ytd;
1990 Tsk_Base_Quantity_itd := Tsk_Base_Quantity_itd + V_Base_Quantity_itd;
1991 Tsk_Base_Quantity_ptd := Tsk_Base_Quantity_ptd + V_Base_Quantity_ptd;
1992 Tsk_Base_Quantity_pp := Tsk_Base_Quantity_pp + V_Base_Quantity_pp;
1993 Tsk_Base_Quantity_ytd := Tsk_Base_Quantity_ytd + V_Base_Quantity_ytd;
1994 Tsk_Orig_Burdened_Cost_itd := Tsk_Orig_Burdened_Cost_itd + V_Orig_Burdened_Cost_itd;
1995 Tsk_Orig_Burdened_Cost_ptd := Tsk_Orig_Burdened_Cost_ptd + V_Orig_Burdened_Cost_ptd;
1996 Tsk_Orig_Burdened_Cost_pp := Tsk_Orig_Burdened_Cost_pp + V_Orig_Burdened_Cost_pp;
1997 Tsk_Orig_Burdened_Cost_ytd := Tsk_Orig_Burdened_Cost_ytd + V_Orig_Burdened_Cost_ytd;
1998 Tsk_Orig_Labor_Hours_itd := Tsk_Orig_Labor_Hours_itd + V_Orig_Labor_Hours_itd;
1999 Tsk_Orig_Labor_Hours_ptd := Tsk_Orig_Labor_Hours_ptd + V_Orig_Labor_Hours_ptd;
2000 Tsk_Orig_Labor_Hours_pp := Tsk_Orig_Labor_Hours_pp + V_Orig_Labor_Hours_pp;
2001 Tsk_Orig_Labor_Hours_ytd := Tsk_Orig_Labor_Hours_ytd + V_Orig_Labor_Hours_ytd;
2002 Tsk_Orig_Quantity_itd := Tsk_Orig_Quantity_itd + V_Orig_Quantity_itd;
2003 Tsk_Orig_Quantity_ptd := Tsk_Orig_Quantity_ptd + V_Orig_Quantity_ptd;
2004 Tsk_Orig_Quantity_pp := Tsk_Orig_Quantity_pp + V_Orig_Quantity_pp;
2005 Tsk_Orig_Quantity_ytd := Tsk_Orig_Quantity_ytd + V_Orig_Quantity_ytd;
2006 Tsk_Orig_Raw_Cost_itd := Tsk_Orig_Raw_Cost_itd + V_Orig_Raw_Cost_itd;
2007 Tsk_Orig_Raw_Cost_ptd := Tsk_Orig_Raw_Cost_ptd + V_Orig_Raw_Cost_ptd;
2008 Tsk_Orig_Raw_Cost_pp := Tsk_Orig_Raw_Cost_pp + V_Orig_Raw_Cost_pp;
2009 Tsk_Orig_Raw_Cost_ytd := Tsk_Orig_Raw_Cost_ytd + V_Orig_Raw_Cost_ytd;
2010 Tsk_Orig_Revenue_itd := Tsk_Orig_Revenue_itd + V_Orig_Revenue_itd;
2011 Tsk_Orig_Revenue_ptd := Tsk_Orig_Revenue_ptd + V_Orig_Revenue_ptd;
2012 Tsk_Orig_Revenue_pp := Tsk_Orig_Revenue_pp + V_Orig_Revenue_pp;
2013 Tsk_Orig_Revenue_ytd := Tsk_Orig_Revenue_ytd + V_Orig_Revenue_ytd;
2014 Tsk_ORIG_REVENUE := Tsk_ORIG_REVENUE + tot_orig_revenue;
2015 Tsk_BASE_REVENUE := Tsk_BASE_REVENUE + tot_base_revenue;
2016 Tsk_ORIG_QUANTITY := Tsk_ORIG_QUANTITY + tot_orig_quantity;
2017 Tsk_BASE_QUANTITY := Tsk_BASE_QUANTITY + tot_base_quantity;
2018 Tsk_ORIG_RAW_COST := Tsk_ORIG_RAW_COST + tot_orig_raw_cost;
2019 Tsk_BASE_RAW_COST := Tsk_BASE_RAW_COST + tot_base_raw_cost;
2020 Tsk_ORIG_BURDENED_COST := Tsk_ORIG_BURDENED_COST + tot_orig_burdened_cost;
2021 Tsk_BASE_BURDENED_COST := Tsk_BASE_BURDENED_COST + tot_base_burdened_cost;
2022 Tsk_ORIG_LABOR_HOURS := Tsk_ORIG_LABOR_HOURS + tot_orig_labor_hours;
2023 Tsk_BASE_LABOR_HOURS := Tsk_BASE_LABOR_HOURS + tot_base_labor_hours;
2024
2025 end Add_task_amounts;
2026
2027 Procedure Add_project_amounts is
2028 begin
2029 pa_debug.debug('Add_project_amounts');
2030
2031 Prj_Base_Burdened_Cost_itd := Prj_Base_Burdened_Cost_itd + V_Base_Burdened_Cost_itd;
2032 Prj_Base_Burdened_Cost_ptd := Prj_Base_Burdened_Cost_ptd + V_Base_Burdened_Cost_ptd;
2033 Prj_Base_Burdened_Cost_pp := Prj_Base_Burdened_Cost_pp + V_Base_Burdened_Cost_pp;
2034 Prj_Base_Burdened_Cost_ytd := Prj_Base_Burdened_Cost_ytd + V_Base_Burdened_Cost_ytd;
2035 Prj_Base_Labor_Hours_itd := Prj_Base_Labor_Hours_itd + V_Base_Labor_Hours_itd;
2036 Prj_Base_Labor_Hours_ptd := Prj_Base_Labor_Hours_ptd + V_Base_Labor_Hours_ptd;
2037 Prj_Base_Labor_Hours_pp := Prj_Base_Labor_Hours_pp + V_Base_Labor_Hours_pp;
2038 Prj_Base_Labor_Hours_ytd := Prj_Base_Labor_Hours_ytd + V_Base_Labor_Hours_ytd;
2039 Prj_Base_Raw_Cost_itd := Prj_Base_Raw_Cost_itd + V_Base_Raw_Cost_itd;
2040 Prj_Base_Raw_Cost_ptd := Prj_Base_Raw_Cost_ptd + V_Base_Raw_Cost_ptd;
2041 Prj_Base_Raw_Cost_pp := Prj_Base_Raw_Cost_pp + V_Base_Raw_Cost_pp;
2042 Prj_Base_Raw_Cost_ytd := Prj_Base_Raw_Cost_ytd + V_Base_Raw_Cost_ytd;
2043 Prj_Base_Revenue_itd := Prj_Base_Revenue_itd + V_Base_Revenue_itd;
2044 Prj_Base_Revenue_ptd := Prj_Base_Revenue_ptd + V_Base_Revenue_ptd;
2045 Prj_Base_Revenue_pp := Prj_Base_Revenue_pp + V_Base_Revenue_pp;
2046 Prj_Base_Revenue_ytd := Prj_Base_Revenue_ytd + V_Base_Revenue_ytd;
2047 Prj_Base_Quantity_itd := Prj_Base_Quantity_itd + V_Base_Quantity_itd;
2048 Prj_Base_Quantity_ptd := Prj_Base_Quantity_ptd + V_Base_Quantity_ptd;
2049 Prj_Base_Quantity_pp := Prj_Base_Quantity_pp + V_Base_Quantity_pp;
2050 Prj_Base_Quantity_ytd := Prj_Base_Quantity_ytd + V_Base_Quantity_ytd;
2051 Prj_Orig_Burdened_Cost_itd := Prj_Orig_Burdened_Cost_itd + V_Orig_Burdened_Cost_itd;
2052 Prj_Orig_Burdened_Cost_ptd := Prj_Orig_Burdened_Cost_ptd + V_Orig_Burdened_Cost_ptd;
2053 Prj_Orig_Burdened_Cost_pp := Prj_Orig_Burdened_Cost_pp + V_Orig_Burdened_Cost_pp;
2054 Prj_Orig_Burdened_Cost_ytd := Prj_Orig_Burdened_Cost_ytd + V_Orig_Burdened_Cost_ytd;
2055 Prj_Orig_Labor_Hours_itd := Prj_Orig_Labor_Hours_itd + V_Orig_Labor_Hours_itd;
2056 Prj_Orig_Labor_Hours_ptd := Prj_Orig_Labor_Hours_ptd + V_Orig_Labor_Hours_ptd;
2057 Prj_Orig_Labor_Hours_pp := Prj_Orig_Labor_Hours_pp + V_Orig_Labor_Hours_pp;
2058 Prj_Orig_Labor_Hours_ytd := Prj_Orig_Labor_Hours_ytd + V_Orig_Labor_Hours_ytd;
2059 Prj_Orig_Quantity_itd := Prj_Orig_Quantity_itd + V_Orig_Quantity_itd;
2060 Prj_Orig_Quantity_ptd := Prj_Orig_Quantity_ptd + V_Orig_Quantity_ptd;
2061 Prj_Orig_Quantity_pp := Prj_Orig_Quantity_pp + V_Orig_Quantity_pp;
2062 Prj_Orig_Quantity_ytd := Prj_Orig_Quantity_ytd + V_Orig_Quantity_ytd;
2063 Prj_Orig_Raw_Cost_itd := Prj_Orig_Raw_Cost_itd + V_Orig_Raw_Cost_itd;
2064 Prj_Orig_Raw_Cost_ptd := Prj_Orig_Raw_Cost_ptd + V_Orig_Raw_Cost_ptd;
2065 Prj_Orig_Raw_Cost_pp := Prj_Orig_Raw_Cost_pp + V_Orig_Raw_Cost_pp;
2066 Prj_Orig_Raw_Cost_ytd := Prj_Orig_Raw_Cost_ytd + V_Orig_Raw_Cost_ytd;
2067 Prj_Orig_Revenue_itd := Prj_Orig_Revenue_itd + V_Orig_Revenue_itd;
2068 Prj_Orig_Revenue_ptd := Prj_Orig_Revenue_ptd + V_Orig_Revenue_ptd;
2069 Prj_Orig_Revenue_pp := Prj_Orig_Revenue_pp + V_Orig_Revenue_pp;
2070 Prj_Orig_Revenue_ytd := Prj_Orig_Revenue_ytd + V_Orig_Revenue_ytd;
2071 Prj_ORIG_REVENUE := Prj_ORIG_REVENUE + tot_orig_revenue;
2072 Prj_BASE_REVENUE := Prj_BASE_REVENUE + tot_base_revenue;
2073 Prj_ORIG_QUANTITY := Prj_ORIG_QUANTITY + tot_orig_quantity;
2074 Prj_BASE_QUANTITY := Prj_BASE_QUANTITY + tot_base_quantity;
2075 Prj_ORIG_RAW_COST := Prj_ORIG_RAW_COST + tot_orig_raw_cost;
2076 Prj_BASE_RAW_COST := Prj_BASE_RAW_COST + tot_base_raw_cost;
2077 Prj_ORIG_BURDENED_COST := Prj_ORIG_BURDENED_COST + tot_orig_burdened_cost;
2078 Prj_BASE_BURDENED_COST := Prj_BASE_BURDENED_COST + tot_base_burdened_cost;
2079 Prj_ORIG_LABOR_HOURS := Prj_ORIG_LABOR_HOURS + tot_orig_labor_hours;
2080 Prj_BASE_LABOR_HOURS := Prj_BASE_LABOR_HOURS + tot_base_labor_hours;
2081
2082 end Add_project_amounts;
2083
2084
2085
2086 --
2087 --History:
2088 -- xx-xxx-xxxx who? - Created
2089 --
2090 -- 26-SEP-2002 jwhite - Converted to support both r11.5.7 Budget and FP models.
2091 -- 1) adapted code to include fin_plan_type_id.
2092
2093 ----------------------------------------------------------
2094 Procedure Process_all_buds
2095 (x_project_id In Number,
2096 x_current_period In varchar2,
2097 x_task_id In Number,
2098 x_resource_list_id In Number,
2099 x_resource_list_Member_id In Number,
2100 x_resource_id In Number,
2101 x_resource_list_assignment_id In Number,
2102 x_rollup_qty_flag In Varchar2,
2103 x_budget_type_code In Varchar2,
2104 x_fin_plan_type_id IN NUMBER,
2105 X_Base_Unit_Of_Measure In Varchar2,
2106 X_Orig_Unit_Of_Measure In Varchar2,
2107 X_Recs_processed Out NOCOPY Number, --File.Sql.39 bug 4440895
2108 x_err_stack In Out NOCOPY Varchar2, --File.Sql.39 bug 4440895
2109 x_err_stage In Out NOCOPY Varchar2, --File.Sql.39 bug 4440895
2110 x_err_code In Out NOCOPY Number ) IS --File.Sql.39 bug 4440895
2111
2112
2113 Recs_processed Number := 0;
2114 V_Accum_id Number := 0;
2115 Res_Recs_processed Number := 0;
2116 x_pab Boolean := true;
2117 V_Old_Stack Varchar2(630);
2118
2119 Begin
2120
2121 V_Old_Stack := x_err_stack;
2122 x_err_stack :=
2123 x_err_stack ||'->PA_PROCESS_ACCUM_BUDGETS_RES.Process_all_buds';
2124
2125 pa_debug.debug(x_err_stack);
2126
2127 x_pab := true;
2128
2129 -- The following Update statement updates all records in the given task
2130 -- WBS hierarchy.It will update only the Project-task-resource combination
2131 -- records and the Project-Resource level record(Task id = 0 and
2132 -- Resourcelist member id <> 0)
2133 begin
2134 Select project_accum_id into V_Accum_id
2135 from pa_project_accum_headers
2136 where project_id = x_project_id
2137 and task_id = x_task_id
2138 and resource_list_member_id = x_resource_list_member_id;
2139
2140 exception when no_data_found then
2141 Select PA_PROJECT_ACCUM_HEADERS_S.Nextval into V_Accum_id
2142 from sys.dual;
2143 Insert into PA_PROJECT_ACCUM_HEADERS
2144 (PROJECT_ACCUM_ID,PROJECT_ID,TASK_ID,ACCUM_PERIOD,RESOURCE_ID,
2145 RESOURCE_LIST_ID,RESOURCE_LIST_ASSIGNMENT_ID,
2146 RESOURCE_LIST_MEMBER_ID,LAST_UPDATED_BY,LAST_UPDATE_DATE,
2147 REQUEST_ID,CREATION_DATE,CREATED_BY,LAST_UPDATE_LOGIN
2148 )
2149 Values (v_accum_id,X_project_id,x_task_id,
2150 x_current_period,
2151 x_resource_id,x_resource_list_id,
2152 x_resource_list_assignment_id,x_resource_list_Member_id,
2153 pa_proj_accum_main.x_last_updated_by,
2154 Trunc(sysdate),pa_proj_accum_main.x_request_id,
2155 trunc(sysdate),
2156 pa_proj_accum_main.x_created_by,
2157 pa_proj_accum_main.x_last_update_login
2158 );
2159
2160 Insert into PA_PROJECT_ACCUM_BUDGETS (
2161 PROJECT_ACCUM_ID,BUDGET_TYPE_CODE,BASE_RAW_COST_ITD,BASE_RAW_COST_YTD,
2162 BASE_RAW_COST_PP, BASE_RAW_COST_PTD,
2163 BASE_BURDENED_COST_ITD,BASE_BURDENED_COST_YTD,
2164 BASE_BURDENED_COST_PP,BASE_BURDENED_COST_PTD,
2165 ORIG_RAW_COST_ITD,ORIG_RAW_COST_YTD,
2166 ORIG_RAW_COST_PP, ORIG_RAW_COST_PTD,
2167 ORIG_BURDENED_COST_ITD,ORIG_BURDENED_COST_YTD,
2168 ORIG_BURDENED_COST_PP,ORIG_BURDENED_COST_PTD,
2169 BASE_QUANTITY_ITD,BASE_QUANTITY_YTD,BASE_QUANTITY_PP,
2170 BASE_QUANTITY_PTD,
2171 ORIG_QUANTITY_ITD,ORIG_QUANTITY_YTD,ORIG_QUANTITY_PP,
2172 ORIG_QUANTITY_PTD,
2173 BASE_LABOR_HOURS_ITD,BASE_LABOR_HOURS_YTD,BASE_LABOR_HOURS_PP,
2174 BASE_LABOR_HOURS_PTD,
2175 ORIG_LABOR_HOURS_ITD,ORIG_LABOR_HOURS_YTD,ORIG_LABOR_HOURS_PP,
2176 ORIG_LABOR_HOURS_PTD,
2177 BASE_REVENUE_ITD,BASE_REVENUE_YTD,BASE_REVENUE_PP,BASE_REVENUE_PTD,
2178 ORIG_REVENUE_ITD,ORIG_REVENUE_YTD,ORIG_REVENUE_PP,ORIG_REVENUE_PTD,
2179 BASE_UNIT_OF_MEASURE,ORIG_UNIT_OF_MEASURE,
2180 BASE_RAW_COST_TOT,BASE_BURDENED_COST_TOT,ORIG_RAW_COST_TOT,
2181 ORIG_BURDENED_COST_TOT,BASE_REVENUE_TOT,ORIG_REVENUE_TOT,
2182 BASE_LABOR_HOURS_TOT,ORIG_LABOR_HOURS_TOT,BASE_QUANTITY_TOT,
2183 ORIG_QUANTITY_TOT,
2184 REQUEST_ID,LAST_UPDATED_BY,LAST_UPDATE_DATE,CREATION_DATE,CREATED_BY,
2185 LAST_UPDATE_LOGIN,
2186 FIN_PLAN_TYPE_ID
2187 )
2188 Values
2189 (
2190 V_Accum_id,x_budget_type_code,
2191 V_BASE_RAW_COST_ITD,V_BASE_RAW_COST_YTD,
2192 V_BASE_RAW_COST_PP, V_BASE_RAW_COST_PTD,
2193 V_BASE_BURDENED_COST_ITD,V_BASE_BURDENED_COST_YTD,
2194 V_BASE_BURDENED_COST_PP,V_BASE_BURDENED_COST_PTD,
2195 V_ORIG_RAW_COST_ITD,V_ORIG_RAW_COST_YTD,
2196 V_ORIG_RAW_COST_PP, V_ORIG_RAW_COST_PTD,
2197 V_ORIG_BURDENED_COST_ITD,V_ORIG_BURDENED_COST_YTD,
2198 V_ORIG_BURDENED_COST_PP,V_ORIG_BURDENED_COST_PTD,
2199 V_BASE_QUANTITY_ITD,V_BASE_QUANTITY_YTD,V_BASE_QUANTITY_PP,
2200 V_BASE_QUANTITY_PTD,
2201 V_ORIG_QUANTITY_ITD,V_ORIG_QUANTITY_YTD,V_ORIG_QUANTITY_PP,
2202 V_ORIG_QUANTITY_PTD,
2203 V_BASE_LABOR_HOURS_ITD,V_BASE_LABOR_HOURS_YTD,V_BASE_LABOR_HOURS_PP,
2204 V_BASE_LABOR_HOURS_PTD,
2205 V_ORIG_LABOR_HOURS_ITD,V_ORIG_LABOR_HOURS_YTD,V_ORIG_LABOR_HOURS_PP,
2206 V_ORIG_LABOR_HOURS_PTD,
2207 V_BASE_REVENUE_ITD,V_BASE_REVENUE_YTD,V_BASE_REVENUE_PP,V_BASE_REVENUE_PTD,
2208 V_ORIG_REVENUE_ITD,V_ORIG_REVENUE_YTD,V_ORIG_REVENUE_PP,V_ORIG_REVENUE_PTD,
2209 X_BASE_UNIT_OF_MEASURE,X_ORIG_UNIT_OF_MEASURE,
2210 TOT_BASE_RAW_COST,TOT_BASE_BURDENED_COST,TOT_ORIG_RAW_COST,
2211 TOT_ORIG_BURDENED_COST,TOT_BASE_REVENUE,TOT_ORIG_REVENUE,
2212 TOT_BASE_LABOR_HOURS,TOT_ORIG_LABOR_HOURS,TOT_BASE_QUANTITY,
2213 TOT_ORIG_QUANTITY,
2214 pa_proj_accum_main.x_request_id,pa_proj_accum_main.x_last_updated_by,Trunc(sysdate),
2215 Trunc(Sysdate),pa_proj_accum_main.x_created_by,pa_proj_accum_main.x_last_update_login,
2216 x_fin_plan_type_id
2217 );
2218 x_pab := false;
2219 end;
2220 If x_pab = true then
2221 Update PA_PROJECT_ACCUM_BUDGETS PAB SET
2222 BASE_RAW_COST_ITD = NVL(BASE_RAW_COST_ITD,0) +
2223 NVL(V_Base_Raw_Cost_itd,0),
2224 BASE_RAW_COST_YTD = NVL(BASE_RAW_COST_YTD,0) +
2225 NVL(V_Base_Raw_Cost_ytd,0),
2226 BASE_RAW_COST_PTD = NVL(BASE_RAW_COST_PTD,0) +
2227 NVL(V_Base_Raw_Cost_ptd,0),
2228 BASE_RAW_COST_PP = NVL(BASE_RAW_COST_PP,0) +
2229 NVL(V_Base_Raw_Cost_pp,0),
2230 ORIG_RAW_COST_ITD = NVL(ORIG_RAW_COST_ITD,0) +
2231 NVL(V_Orig_Raw_Cost_itd,0),
2232 ORIG_RAW_COST_YTD = NVL(ORIG_RAW_COST_YTD,0) +
2233 NVL(V_Orig_Raw_Cost_ytd,0),
2234 ORIG_RAW_COST_PTD = NVL(ORIG_RAW_COST_PTD,0) +
2235 NVL(V_Orig_Raw_Cost_ptd,0),
2236 ORIG_RAW_COST_PP = NVL(ORIG_RAW_COST_PP,0) +
2237 NVL(V_Orig_Raw_Cost_pp,0),
2238 BASE_BURDENED_COST_ITD = NVL(BASE_BURDENED_COST_ITD,0) +
2239 NVL(V_Base_Burdened_Cost_itd,0),
2240 BASE_BURDENED_COST_YTD = NVL(BASE_BURDENED_COST_YTD,0) +
2241 NVL(V_Base_Burdened_Cost_ytd,0),
2242 BASE_BURDENED_COST_PTD = NVL(BASE_BURDENED_COST_PTD,0) +
2243 NVL(V_Base_Burdened_Cost_ptd,0),
2244 BASE_BURDENED_COST_PP = NVL(BASE_BURDENED_COST_PP,0) +
2245 NVL(V_Base_Burdened_Cost_pp,0),
2246 ORIG_BURDENED_COST_ITD = NVL(ORIG_BURDENED_COST_ITD,0) +
2247 NVL(V_Orig_Burdened_Cost_itd,0),
2248 ORIG_BURDENED_COST_YTD = NVL(ORIG_BURDENED_COST_YTD,0) +
2249 NVL(V_Orig_Burdened_Cost_ytd,0),
2250 ORIG_BURDENED_COST_PTD = NVL(ORIG_BURDENED_COST_PTD,0) +
2251 NVL(V_Orig_Burdened_Cost_ptd,0),
2252 ORIG_BURDENED_COST_PP = NVL(ORIG_BURDENED_COST_PP,0) +
2253 NVL(V_Orig_Burdened_Cost_pp,0),
2254 BASE_LABOR_HOURS_ITD = NVL(BASE_LABOR_HOURS_ITD,0) +
2255 NVL(V_Base_Labor_Hours_itd,0),
2256 BASE_LABOR_HOURS_YTD = NVL(BASE_LABOR_HOURS_YTD,0) +
2257 NVL(V_Base_Labor_Hours_ytd,0),
2258 BASE_LABOR_HOURS_PTD = NVL(BASE_LABOR_HOURS_PTD,0) +
2259 NVL(V_Base_Labor_Hours_ptd,0),
2260 BASE_LABOR_HOURS_PP = NVL(BASE_LABOR_HOURS_PP,0) +
2261 NVL(V_Base_Labor_Hours_pp,0),
2262 ORIG_LABOR_HOURS_ITD = NVL(ORIG_LABOR_HOURS_ITD,0) +
2263 NVL(V_Orig_Labor_Hours_itd,0),
2264 ORIG_LABOR_HOURS_YTD = NVL(ORIG_LABOR_HOURS_YTD,0) +
2265 NVL(V_Orig_Labor_Hours_ytd,0),
2266 ORIG_LABOR_HOURS_PTD = NVL(ORIG_LABOR_HOURS_PTD,0) +
2267 NVL(V_Orig_Labor_Hours_ptd,0),
2268 ORIG_LABOR_HOURS_PP = NVL(ORIG_LABOR_HOURS_PP,0) +
2269 NVL(V_Orig_Labor_Hours_pp,0),
2270 BASE_QUANTITY_ITD = NVL(BASE_QUANTITY_ITD,0) +
2271 NVL(V_Base_Quantity_itd,0),
2272 BASE_QUANTITY_YTD = NVL(BASE_QUANTITY_YTD,0) +
2273 NVL(V_Base_Quantity_ytd,0),
2274 BASE_QUANTITY_PTD = NVL(BASE_QUANTITY_PTD,0) +
2275 NVL(V_Base_Quantity_ptd,0),
2276 BASE_QUANTITY_PP = NVL(BASE_QUANTITY_PP,0) +
2277 NVL(V_Base_Quantity_pp,0),
2278 ORIG_QUANTITY_ITD = NVL(ORIG_QUANTITY_ITD,0) +
2279 NVL(V_Orig_Quantity_itd,0),
2280 ORIG_QUANTITY_YTD = NVL(ORIG_QUANTITY_YTD,0) +
2281 NVL(V_Orig_Quantity_ytd,0),
2282 ORIG_QUANTITY_PTD = NVL(ORIG_QUANTITY_PTD,0) +
2283 NVL(V_Orig_Quantity_ptd,0),
2284 ORIG_QUANTITY_PP = NVL(ORIG_QUANTITY_PP,0) +
2285 NVL(V_Orig_Quantity_pp,0),
2286 BASE_REVENUE_ITD = NVL(BASE_REVENUE_ITD,0) +
2287 NVL(V_Base_Revenue_itd,0),
2288 BASE_REVENUE_YTD = NVL(BASE_REVENUE_YTD,0) +
2289 NVL(V_Base_Revenue_ytd,0),
2290 BASE_REVENUE_PTD = NVL(BASE_REVENUE_PTD,0) +
2291 NVL(V_Base_Revenue_ptd,0),
2292 BASE_REVENUE_PP = NVL(BASE_REVENUE_PP,0) +
2293 NVL(V_Base_Revenue_pp,0),
2294 ORIG_REVENUE_ITD = NVL(ORIG_REVENUE_ITD,0) +
2295 NVL(V_Orig_Revenue_itd,0),
2296 ORIG_REVENUE_YTD = NVL(ORIG_REVENUE_YTD,0) +
2297 NVL(V_Orig_Revenue_ytd,0),
2298 ORIG_REVENUE_PTD = NVL(ORIG_REVENUE_PTD,0) +
2299 NVL(V_Orig_Revenue_ptd,0),
2300 ORIG_REVENUE_PP = NVL(ORIG_REVENUE_PP,0) +
2301 NVL(V_Orig_Revenue_pp,0),
2302 BASE_RAW_COST_TOT = NVL(BASE_RAW_COST_TOT,0 ) +
2303 TOT_BASE_RAW_COST,
2304 BASE_BURDENED_COST_TOT = NVL(BASE_BURDENED_COST_TOT,0) +
2305 TOT_BASE_BURDENED_COST,
2306 ORIG_RAW_COST_TOT = NVL(ORIG_RAW_COST_TOT,0) +
2307 TOT_ORIG_RAW_COST,
2308 ORIG_BURDENED_COST_TOT = NVL(ORIG_BURDENED_COST_TOT,0) +
2309 TOT_ORIG_BURDENED_COST,
2310 BASE_REVENUE_TOT = NVL(BASE_REVENUE_TOT,0 ) +
2311 TOT_BASE_REVENUE,
2312 ORIG_REVENUE_TOT = NVL(ORIG_REVENUE_TOT,0 ) +
2313 TOT_ORIG_REVENUE,
2314 BASE_LABOR_HOURS_TOT = NVL(BASE_LABOR_HOURS_TOT,0) +
2315 TOT_BASE_LABOR_HOURS,
2316 ORIG_LABOR_HOURS_TOT = NVL(ORIG_LABOR_HOURS_TOT,0 ) +
2317 TOT_ORIG_LABOR_HOURS,
2318 BASE_QUANTITY_TOT = NVL(BASE_QUANTITY_TOT,0) +
2319 TOT_BASE_QUANTITY,
2320 ORIG_QUANTITY_TOT = NVL(ORIG_QUANTITY_TOT,0) +
2321 TOT_ORIG_QUANTITY,
2322 BASE_UNIT_OF_MEASURE = X_Base_Unit_of_Measure,
2323 ORIG_UNIT_OF_MEASURE = X_Orig_Unit_of_Measure,
2324 LAST_UPDATED_BY = pa_proj_accum_main.x_last_updated_by,
2325 LAST_UPDATE_DATE = Trunc(Sysdate),
2326 LAST_UPDATE_LOGIN = pa_proj_accum_main.x_last_update_login,
2327 FIN_PLAN_TYPE_ID = x_fin_plan_type_id
2328 Where Budget_Type_Code = x_Budget_type_code
2329 And PAB.Project_Accum_id = v_accum_id;
2330
2331 if sql%notfound then
2332 Insert into PA_PROJECT_ACCUM_BUDGETS (
2333 PROJECT_ACCUM_ID,BUDGET_TYPE_CODE,BASE_RAW_COST_ITD,BASE_RAW_COST_YTD,
2334 BASE_RAW_COST_PP, BASE_RAW_COST_PTD,
2335 BASE_BURDENED_COST_ITD,BASE_BURDENED_COST_YTD,
2336 BASE_BURDENED_COST_PP,BASE_BURDENED_COST_PTD,
2337 ORIG_RAW_COST_ITD,ORIG_RAW_COST_YTD,
2338 ORIG_RAW_COST_PP, ORIG_RAW_COST_PTD,
2339 ORIG_BURDENED_COST_ITD,ORIG_BURDENED_COST_YTD,
2340 ORIG_BURDENED_COST_PP,ORIG_BURDENED_COST_PTD,
2341 BASE_QUANTITY_ITD,BASE_QUANTITY_YTD,BASE_QUANTITY_PP,
2342 BASE_QUANTITY_PTD,
2343 ORIG_QUANTITY_ITD,ORIG_QUANTITY_YTD,ORIG_QUANTITY_PP,
2344 ORIG_QUANTITY_PTD,
2345 BASE_LABOR_HOURS_ITD,BASE_LABOR_HOURS_YTD,BASE_LABOR_HOURS_PP,
2346 BASE_LABOR_HOURS_PTD,
2347 ORIG_LABOR_HOURS_ITD,ORIG_LABOR_HOURS_YTD,ORIG_LABOR_HOURS_PP,
2348 ORIG_LABOR_HOURS_PTD,
2349 BASE_REVENUE_ITD,BASE_REVENUE_YTD,BASE_REVENUE_PP,BASE_REVENUE_PTD,
2350 ORIG_REVENUE_ITD,ORIG_REVENUE_YTD,ORIG_REVENUE_PP,ORIG_REVENUE_PTD,
2351 BASE_UNIT_OF_MEASURE,ORIG_UNIT_OF_MEASURE,
2352 BASE_RAW_COST_TOT,BASE_BURDENED_COST_TOT,ORIG_RAW_COST_TOT,
2353 ORIG_BURDENED_COST_TOT,BASE_REVENUE_TOT,ORIG_REVENUE_TOT,
2354 BASE_LABOR_HOURS_TOT,ORIG_LABOR_HOURS_TOT,BASE_QUANTITY_TOT,
2355 ORIG_QUANTITY_TOT,
2356 REQUEST_ID,LAST_UPDATED_BY,LAST_UPDATE_DATE,CREATION_DATE,CREATED_BY,
2357 LAST_UPDATE_LOGIN,
2358 FIN_PLAN_TYPE_ID
2359 )
2360 Values
2361 (
2362 V_Accum_id,x_budget_type_code,
2363 V_BASE_RAW_COST_ITD,V_BASE_RAW_COST_YTD,
2364 V_BASE_RAW_COST_PP, V_BASE_RAW_COST_PTD,
2365 V_BASE_BURDENED_COST_ITD,V_BASE_BURDENED_COST_YTD,
2366 V_BASE_BURDENED_COST_PP,V_BASE_BURDENED_COST_PTD,
2367 V_ORIG_RAW_COST_ITD,V_ORIG_RAW_COST_YTD,
2368 V_ORIG_RAW_COST_PP, V_ORIG_RAW_COST_PTD,
2369 V_ORIG_BURDENED_COST_ITD,V_ORIG_BURDENED_COST_YTD,
2370 V_ORIG_BURDENED_COST_PP,V_ORIG_BURDENED_COST_PTD,
2371 V_BASE_QUANTITY_ITD,V_BASE_QUANTITY_YTD,V_BASE_QUANTITY_PP,
2372 V_BASE_QUANTITY_PTD,
2373 V_ORIG_QUANTITY_ITD,V_ORIG_QUANTITY_YTD,V_ORIG_QUANTITY_PP,
2374 V_ORIG_QUANTITY_PTD,
2375 V_BASE_LABOR_HOURS_ITD,V_BASE_LABOR_HOURS_YTD,V_BASE_LABOR_HOURS_PP,
2376 V_BASE_LABOR_HOURS_PTD,
2377 V_ORIG_LABOR_HOURS_ITD,V_ORIG_LABOR_HOURS_YTD,V_ORIG_LABOR_HOURS_PP,
2378 V_ORIG_LABOR_HOURS_PTD,
2379 V_BASE_REVENUE_ITD,V_BASE_REVENUE_YTD,V_BASE_REVENUE_PP,V_BASE_REVENUE_PTD,
2380 V_ORIG_REVENUE_ITD,V_ORIG_REVENUE_YTD,V_ORIG_REVENUE_PP,V_ORIG_REVENUE_PTD,
2381 X_BASE_UNIT_OF_MEASURE,X_ORIG_UNIT_OF_MEASURE,
2382 TOT_BASE_RAW_COST,TOT_BASE_BURDENED_COST,TOT_ORIG_RAW_COST,
2383 TOT_ORIG_BURDENED_COST,TOT_BASE_REVENUE,TOT_ORIG_REVENUE,
2384 TOT_BASE_LABOR_HOURS,TOT_ORIG_LABOR_HOURS,TOT_BASE_QUANTITY,
2385 TOT_ORIG_QUANTITY,
2386 pa_proj_accum_main.x_request_id,pa_proj_accum_main.x_last_updated_by,Trunc(sysdate),
2387 Trunc(Sysdate),pa_proj_accum_main.x_created_by,pa_proj_accum_main.x_last_update_login,
2388 x_fin_plan_type_id
2389 );
2390 end if;
2391 end if;
2392 x_recs_processed := Recs_processed;
2393 -- Restore the old x_err_stack;
2394
2395 x_err_stack := V_Old_Stack;
2396 Exception
2397 When Others Then
2398 x_err_code := SQLCODE;
2399 RAISE;
2400 End Process_all_buds;
2401
2402 --
2403 --History:
2404 -- xx-xxx-xxxx who? - Created
2405 --
2406 -- 26-SEP-2002 jwhite - Converted to support both r11.5.7 Budget and FP models.
2407 -- 1) adapted code to include fin_plan_type_id.
2408
2409 Procedure Process_all_tasks
2410 (x_project_id In Number,
2411 x_current_period In varchar2,
2412 x_task_id In Number,
2413 x_resource_list_id In Number,
2414 x_resource_list_Member_id In Number,
2415 x_resource_id In Number,
2416 x_resource_list_assignment_id In Number,
2417 x_rollup_qty_flag In Varchar2,
2418 x_budget_type_code In Varchar2,
2419 x_fin_plan_type_id IN NUMBER,
2420 X_Base_Unit_Of_Measure In Varchar2,
2421 X_Orig_Unit_Of_Measure In Varchar2,
2422 X_Recs_processed Out NOCOPY Number, --File.Sql.39 bug 4440895
2423 x_err_stack In Out NOCOPY Varchar2, --File.Sql.39 bug 4440895
2424 x_err_stage In Out NOCOPY Varchar2, --File.Sql.39 bug 4440895
2425 x_err_code In Out NOCOPY Number ) IS --File.Sql.39 bug 4440895
2426
2427
2428 Recs_processed Number := 0;
2429 V_Accum_id Number := 0;
2430 Res_Recs_processed Number := 0;
2431 x_pab Boolean := true;
2432 V_Old_Stack Varchar2(630);
2433
2434 Begin
2435
2436 V_Old_Stack := x_err_stack;
2437 x_err_stack :=
2438 x_err_stack ||'->PA_PROCESS_ACCUM_BUDGETS_RES.Process_all_tasks';
2439
2440 pa_debug.debug(x_err_stack);
2441
2442 x_pab := true;
2443
2444 -- The following Update statement updates all records in the given task
2445 -- WBS hierarchy.It will update only the Project-task-resource combination
2446 -- records and the Project-Resource level record(Task id = 0 and
2447 -- Resourcelist member id <> 0)
2448 begin
2449 Select project_accum_id into V_Accum_id
2450 from pa_project_accum_headers
2451 where project_id = x_project_id
2452 and task_id = x_task_id
2453 and resource_list_member_id = x_resource_list_member_id;
2454
2455 exception when no_data_found then
2456 Select PA_PROJECT_ACCUM_HEADERS_S.Nextval into V_Accum_id
2457 from sys.dual;
2458 Insert into PA_PROJECT_ACCUM_HEADERS
2459 (PROJECT_ACCUM_ID,PROJECT_ID,TASK_ID,ACCUM_PERIOD,RESOURCE_ID,
2460 RESOURCE_LIST_ID,RESOURCE_LIST_ASSIGNMENT_ID,
2461 RESOURCE_LIST_MEMBER_ID,LAST_UPDATED_BY,LAST_UPDATE_DATE,
2462 REQUEST_ID,CREATION_DATE,CREATED_BY,LAST_UPDATE_LOGIN )
2463 Values (v_accum_id,X_project_id,x_task_id,
2464 x_current_period,
2465 x_resource_id,x_resource_list_id,
2466 x_resource_list_assignment_id,x_resource_list_Member_id,
2467 pa_proj_accum_main.x_last_updated_by,
2468 Trunc(sysdate),pa_proj_accum_main.x_request_id,
2469 trunc(sysdate),
2470 pa_proj_accum_main.x_created_by,
2471 pa_proj_accum_main.x_last_update_login );
2472
2473 Insert into PA_PROJECT_ACCUM_BUDGETS (
2474 PROJECT_ACCUM_ID,BUDGET_TYPE_CODE,BASE_RAW_COST_ITD,BASE_RAW_COST_YTD,
2475 BASE_RAW_COST_PP, BASE_RAW_COST_PTD,
2476 BASE_BURDENED_COST_ITD,BASE_BURDENED_COST_YTD,
2477 BASE_BURDENED_COST_PP,BASE_BURDENED_COST_PTD,
2478 ORIG_RAW_COST_ITD,ORIG_RAW_COST_YTD,
2479 ORIG_RAW_COST_PP, ORIG_RAW_COST_PTD,
2480 ORIG_BURDENED_COST_ITD,ORIG_BURDENED_COST_YTD,
2481 ORIG_BURDENED_COST_PP,ORIG_BURDENED_COST_PTD,
2482 BASE_QUANTITY_ITD,BASE_QUANTITY_YTD,BASE_QUANTITY_PP,
2483 BASE_QUANTITY_PTD,
2484 ORIG_QUANTITY_ITD,ORIG_QUANTITY_YTD,ORIG_QUANTITY_PP,
2485 ORIG_QUANTITY_PTD,
2486 BASE_LABOR_HOURS_ITD,BASE_LABOR_HOURS_YTD,BASE_LABOR_HOURS_PP,
2487 BASE_LABOR_HOURS_PTD,
2488 ORIG_LABOR_HOURS_ITD,ORIG_LABOR_HOURS_YTD,ORIG_LABOR_HOURS_PP,
2489 ORIG_LABOR_HOURS_PTD,
2490 BASE_REVENUE_ITD,BASE_REVENUE_YTD,BASE_REVENUE_PP,BASE_REVENUE_PTD,
2491 ORIG_REVENUE_ITD,ORIG_REVENUE_YTD,ORIG_REVENUE_PP,ORIG_REVENUE_PTD,
2492 BASE_UNIT_OF_MEASURE,ORIG_UNIT_OF_MEASURE,
2493 BASE_RAW_COST_TOT,BASE_BURDENED_COST_TOT,ORIG_RAW_COST_TOT,
2494 ORIG_BURDENED_COST_TOT,BASE_REVENUE_TOT,ORIG_REVENUE_TOT,
2495 BASE_LABOR_HOURS_TOT,ORIG_LABOR_HOURS_TOT,BASE_QUANTITY_TOT,
2496 ORIG_QUANTITY_TOT,
2497 REQUEST_ID,LAST_UPDATED_BY,LAST_UPDATE_DATE,CREATION_DATE,CREATED_BY,
2498 LAST_UPDATE_LOGIN,
2499 FIN_PLAN_TYPE_ID
2500 )
2501 Values
2502 (
2503 V_Accum_id,x_budget_type_code,
2504 Tsk_BASE_RAW_COST_ITD,Tsk_BASE_RAW_COST_YTD,
2505 Tsk_BASE_RAW_COST_PP, Tsk_BASE_RAW_COST_PTD,
2506 Tsk_BASE_BURDENED_COST_ITD,Tsk_BASE_BURDENED_COST_YTD,
2507 Tsk_BASE_BURDENED_COST_PP,Tsk_BASE_BURDENED_COST_PTD,
2508 Tsk_ORIG_RAW_COST_ITD,Tsk_ORIG_RAW_COST_YTD,
2509 Tsk_ORIG_RAW_COST_PP, Tsk_ORIG_RAW_COST_PTD,
2510 Tsk_ORIG_BURDENED_COST_ITD,Tsk_ORIG_BURDENED_COST_YTD,
2511 Tsk_ORIG_BURDENED_COST_PP,Tsk_ORIG_BURDENED_COST_PTD,
2512 Tsk_BASE_QUANTITY_ITD,Tsk_BASE_QUANTITY_YTD,Tsk_BASE_QUANTITY_PP,
2513 Tsk_BASE_QUANTITY_PTD,
2514 Tsk_ORIG_QUANTITY_ITD,Tsk_ORIG_QUANTITY_YTD,Tsk_ORIG_QUANTITY_PP,
2515 Tsk_ORIG_QUANTITY_PTD,
2516 Tsk_BASE_LABOR_HOURS_ITD,Tsk_BASE_LABOR_HOURS_YTD,Tsk_BASE_LABOR_HOURS_PP,
2517 Tsk_BASE_LABOR_HOURS_PTD,
2518 Tsk_ORIG_LABOR_HOURS_ITD,Tsk_ORIG_LABOR_HOURS_YTD,Tsk_ORIG_LABOR_HOURS_PP,
2519 Tsk_ORIG_LABOR_HOURS_PTD,
2520 Tsk_BASE_REVENUE_ITD,Tsk_BASE_REVENUE_YTD,Tsk_BASE_REVENUE_PP,Tsk_BASE_REVENUE_PTD,
2521 Tsk_ORIG_REVENUE_ITD,Tsk_ORIG_REVENUE_YTD,Tsk_ORIG_REVENUE_PP,Tsk_ORIG_REVENUE_PTD,
2522 X_BASE_UNIT_OF_MEASURE,X_ORIG_UNIT_OF_MEASURE,
2523 Tsk_BASE_RAW_COST,Tsk_BASE_BURDENED_COST,Tsk_ORIG_RAW_COST,
2524 Tsk_ORIG_BURDENED_COST,Tsk_BASE_REVENUE,Tsk_ORIG_REVENUE,
2525 Tsk_BASE_LABOR_HOURS,Tsk_ORIG_LABOR_HOURS,Tsk_BASE_QUANTITY,
2526 Tsk_ORIG_QUANTITY,
2527 pa_proj_accum_main.x_request_id,pa_proj_accum_main.x_last_updated_by,Trunc(sysdate),
2528 Trunc(Sysdate),pa_proj_accum_main.x_created_by,pa_proj_accum_main.x_last_update_login,
2529 x_fin_plan_type_id
2530 );
2531 x_pab := false;
2532 end;
2533 If x_pab = true then
2534 Update PA_PROJECT_ACCUM_BUDGETS PAB SET
2535 BASE_RAW_COST_ITD = NVL(BASE_RAW_COST_ITD,0) +
2536 NVL(Tsk_Base_Raw_Cost_itd,0),
2537 BASE_RAW_COST_YTD = NVL(BASE_RAW_COST_YTD,0) +
2538 NVL(Tsk_Base_Raw_Cost_ytd,0),
2539 BASE_RAW_COST_PTD = NVL(BASE_RAW_COST_PTD,0) +
2540 NVL(Tsk_Base_Raw_Cost_ptd,0),
2541 BASE_RAW_COST_PP = NVL(BASE_RAW_COST_PP,0) +
2542 NVL(Tsk_Base_Raw_Cost_pp,0),
2543 ORIG_RAW_COST_ITD = NVL(ORIG_RAW_COST_ITD,0) +
2544 NVL(Tsk_Orig_Raw_Cost_itd,0),
2545 ORIG_RAW_COST_YTD = NVL(ORIG_RAW_COST_YTD,0) +
2546 NVL(Tsk_Orig_Raw_Cost_ytd,0),
2547 ORIG_RAW_COST_PTD = NVL(ORIG_RAW_COST_PTD,0) +
2548 NVL(Tsk_Orig_Raw_Cost_ptd,0),
2549 ORIG_RAW_COST_PP = NVL(ORIG_RAW_COST_PP,0) +
2550 NVL(Tsk_Orig_Raw_Cost_pp,0),
2551 BASE_BURDENED_COST_ITD = NVL(BASE_BURDENED_COST_ITD,0) +
2552 NVL(Tsk_Base_Burdened_Cost_itd,0),
2553 BASE_BURDENED_COST_YTD = NVL(BASE_BURDENED_COST_YTD,0) +
2554 NVL(Tsk_Base_Burdened_Cost_ytd,0),
2555 BASE_BURDENED_COST_PTD = NVL(BASE_BURDENED_COST_PTD,0) +
2556 NVL(Tsk_Base_Burdened_Cost_ptd,0),
2557 BASE_BURDENED_COST_PP = NVL(BASE_BURDENED_COST_PP,0) +
2558 NVL(Tsk_Base_Burdened_Cost_pp,0),
2559 ORIG_BURDENED_COST_ITD = NVL(ORIG_BURDENED_COST_ITD,0) +
2560 NVL(Tsk_Orig_Burdened_Cost_itd,0),
2561 ORIG_BURDENED_COST_YTD = NVL(ORIG_BURDENED_COST_YTD,0) +
2562 NVL(Tsk_Orig_Burdened_Cost_ytd,0),
2563 ORIG_BURDENED_COST_PTD = NVL(ORIG_BURDENED_COST_PTD,0) +
2564 NVL(Tsk_Orig_Burdened_Cost_ptd,0),
2565 ORIG_BURDENED_COST_PP = NVL(ORIG_BURDENED_COST_PP,0) +
2566 NVL(Tsk_Orig_Burdened_Cost_pp,0),
2567 BASE_LABOR_HOURS_ITD = NVL(BASE_LABOR_HOURS_ITD,0) +
2568 NVL(Tsk_Base_Labor_Hours_itd,0),
2569 BASE_LABOR_HOURS_YTD = NVL(BASE_LABOR_HOURS_YTD,0) +
2570 NVL(Tsk_Base_Labor_Hours_ytd,0),
2571 BASE_LABOR_HOURS_PTD = NVL(BASE_LABOR_HOURS_PTD,0) +
2572 NVL(Tsk_Base_Labor_Hours_ptd,0),
2573 BASE_LABOR_HOURS_PP = NVL(BASE_LABOR_HOURS_PP,0) +
2574 NVL(Tsk_Base_Labor_Hours_pp,0),
2575 ORIG_LABOR_HOURS_ITD = NVL(ORIG_LABOR_HOURS_ITD,0) +
2576 NVL(Tsk_Orig_Labor_Hours_itd,0),
2577 ORIG_LABOR_HOURS_YTD = NVL(ORIG_LABOR_HOURS_YTD,0) +
2578 NVL(Tsk_Orig_Labor_Hours_ytd,0),
2579 ORIG_LABOR_HOURS_PTD = NVL(ORIG_LABOR_HOURS_PTD,0) +
2580 NVL(Tsk_Orig_Labor_Hours_ptd,0),
2581 ORIG_LABOR_HOURS_PP = NVL(ORIG_LABOR_HOURS_PP,0) +
2582 NVL(Tsk_Orig_Labor_Hours_pp,0),
2583 BASE_QUANTITY_ITD = NVL(BASE_QUANTITY_ITD,0) +
2584 NVL(Tsk_Base_Quantity_itd,0),
2585 BASE_QUANTITY_YTD = NVL(BASE_QUANTITY_YTD,0) +
2586 NVL(Tsk_Base_Quantity_ytd,0),
2587 BASE_QUANTITY_PTD = NVL(BASE_QUANTITY_PTD,0) +
2588 NVL(Tsk_Base_Quantity_ptd,0),
2589 BASE_QUANTITY_PP = NVL(BASE_QUANTITY_PP,0) +
2590 NVL(Tsk_Base_Quantity_pp,0),
2591 ORIG_QUANTITY_ITD = NVL(ORIG_QUANTITY_ITD,0) +
2592 NVL(Tsk_Orig_Quantity_itd,0),
2593 ORIG_QUANTITY_YTD = NVL(ORIG_QUANTITY_YTD,0) +
2594 NVL(Tsk_Orig_Quantity_ytd,0),
2595 ORIG_QUANTITY_PTD = NVL(ORIG_QUANTITY_PTD,0) +
2596 NVL(Tsk_Orig_Quantity_ptd,0),
2597 ORIG_QUANTITY_PP = NVL(ORIG_QUANTITY_PP,0) +
2598 NVL(Tsk_Orig_Quantity_pp,0),
2599 BASE_REVENUE_ITD = NVL(BASE_REVENUE_ITD,0) +
2600 NVL(Tsk_Base_Revenue_itd,0),
2601 BASE_REVENUE_YTD = NVL(BASE_REVENUE_YTD,0) +
2602 NVL(Tsk_Base_Revenue_ytd,0),
2603 BASE_REVENUE_PTD = NVL(BASE_REVENUE_PTD,0) +
2604 NVL(Tsk_Base_Revenue_ptd,0),
2605 BASE_REVENUE_PP = NVL(BASE_REVENUE_PP,0) +
2606 NVL(Tsk_Base_Revenue_pp,0),
2607 ORIG_REVENUE_ITD = NVL(ORIG_REVENUE_ITD,0) +
2608 NVL(Tsk_Orig_Revenue_itd,0),
2609 ORIG_REVENUE_YTD = NVL(ORIG_REVENUE_YTD,0) +
2610 NVL(Tsk_Orig_Revenue_ytd,0),
2611 ORIG_REVENUE_PTD = NVL(ORIG_REVENUE_PTD,0) +
2612 NVL(Tsk_Orig_Revenue_ptd,0),
2613 ORIG_REVENUE_PP = NVL(ORIG_REVENUE_PP,0) +
2614 NVL(Tsk_Orig_Revenue_pp,0),
2615 BASE_RAW_COST_TOT = NVL(BASE_RAW_COST_TOT,0 ) +
2616 Tsk_BASE_RAW_COST,
2617 BASE_BURDENED_COST_TOT = NVL(BASE_BURDENED_COST_TOT,0) +
2618 Tsk_BASE_BURDENED_COST,
2619 ORIG_RAW_COST_TOT = NVL(ORIG_RAW_COST_TOT,0) +
2620 Tsk_ORIG_RAW_COST,
2621 ORIG_BURDENED_COST_TOT = NVL(ORIG_BURDENED_COST_TOT,0) +
2622 Tsk_ORIG_BURDENED_COST,
2623 BASE_REVENUE_TOT = NVL(BASE_REVENUE_TOT,0 ) +
2624 Tsk_BASE_REVENUE,
2625 ORIG_REVENUE_TOT = NVL(ORIG_REVENUE_TOT,0 ) +
2626 Tsk_ORIG_REVENUE,
2627 BASE_LABOR_HOURS_TOT = NVL(BASE_LABOR_HOURS_TOT,0) +
2628 Tsk_BASE_LABOR_HOURS,
2629 ORIG_LABOR_HOURS_TOT = NVL(ORIG_LABOR_HOURS_TOT,0 ) +
2630 Tsk_ORIG_LABOR_HOURS,
2631 BASE_QUANTITY_TOT = NVL(BASE_QUANTITY_TOT,0) +
2632 Tsk_BASE_QUANTITY,
2633 ORIG_QUANTITY_TOT = NVL(ORIG_QUANTITY_TOT,0) +
2634 Tsk_ORIG_QUANTITY,
2635 BASE_UNIT_OF_MEASURE = X_Base_Unit_of_Measure,
2636 ORIG_UNIT_OF_MEASURE = X_Orig_Unit_of_Measure,
2637 LAST_UPDATED_BY = pa_proj_accum_main.x_last_updated_by,
2638 LAST_UPDATE_DATE = Trunc(Sysdate),
2639 LAST_UPDATE_LOGIN = pa_proj_accum_main.x_last_update_login,
2640 FIN_PLAN_TYPE_ID = x_fin_plan_type_id
2641 Where Budget_Type_Code = x_Budget_type_code
2642 And PAB.Project_Accum_id = v_accum_id;
2643
2644 if sql%notfound then
2645 Insert into PA_PROJECT_ACCUM_BUDGETS (
2646 PROJECT_ACCUM_ID,BUDGET_TYPE_CODE,BASE_RAW_COST_ITD,BASE_RAW_COST_YTD,
2647 BASE_RAW_COST_PP, BASE_RAW_COST_PTD,
2648 BASE_BURDENED_COST_ITD,BASE_BURDENED_COST_YTD,
2649 BASE_BURDENED_COST_PP,BASE_BURDENED_COST_PTD,
2650 ORIG_RAW_COST_ITD,ORIG_RAW_COST_YTD,
2651 ORIG_RAW_COST_PP, ORIG_RAW_COST_PTD,
2652 ORIG_BURDENED_COST_ITD,ORIG_BURDENED_COST_YTD,
2653 ORIG_BURDENED_COST_PP,ORIG_BURDENED_COST_PTD,
2654 BASE_QUANTITY_ITD,BASE_QUANTITY_YTD,BASE_QUANTITY_PP,
2655 BASE_QUANTITY_PTD,
2656 ORIG_QUANTITY_ITD,ORIG_QUANTITY_YTD,ORIG_QUANTITY_PP,
2657 ORIG_QUANTITY_PTD,
2658 BASE_LABOR_HOURS_ITD,BASE_LABOR_HOURS_YTD,BASE_LABOR_HOURS_PP,
2659 BASE_LABOR_HOURS_PTD,
2660 ORIG_LABOR_HOURS_ITD,ORIG_LABOR_HOURS_YTD,ORIG_LABOR_HOURS_PP,
2661 ORIG_LABOR_HOURS_PTD,
2662 BASE_REVENUE_ITD,BASE_REVENUE_YTD,BASE_REVENUE_PP,BASE_REVENUE_PTD,
2663 ORIG_REVENUE_ITD,ORIG_REVENUE_YTD,ORIG_REVENUE_PP,ORIG_REVENUE_PTD,
2664 BASE_UNIT_OF_MEASURE,ORIG_UNIT_OF_MEASURE,
2665 BASE_RAW_COST_TOT,BASE_BURDENED_COST_TOT,ORIG_RAW_COST_TOT,
2666 ORIG_BURDENED_COST_TOT,BASE_REVENUE_TOT,ORIG_REVENUE_TOT,
2667 BASE_LABOR_HOURS_TOT,ORIG_LABOR_HOURS_TOT,BASE_QUANTITY_TOT,
2668 ORIG_QUANTITY_TOT,
2669 REQUEST_ID,LAST_UPDATED_BY,LAST_UPDATE_DATE,CREATION_DATE,CREATED_BY,
2670 LAST_UPDATE_LOGIN,
2671 FIN_PLAN_TYPE_ID
2672 )
2673 Values
2674 (
2675 V_Accum_id,x_budget_type_code,
2676 Tsk_BASE_RAW_COST_ITD,Tsk_BASE_RAW_COST_YTD,
2677 Tsk_BASE_RAW_COST_PP, Tsk_BASE_RAW_COST_PTD,
2678 Tsk_BASE_BURDENED_COST_ITD,Tsk_BASE_BURDENED_COST_YTD,
2679 Tsk_BASE_BURDENED_COST_PP,Tsk_BASE_BURDENED_COST_PTD,
2680 Tsk_ORIG_RAW_COST_ITD,Tsk_ORIG_RAW_COST_YTD,
2681 Tsk_ORIG_RAW_COST_PP, Tsk_ORIG_RAW_COST_PTD,
2682 Tsk_ORIG_BURDENED_COST_ITD,Tsk_ORIG_BURDENED_COST_YTD,
2683 Tsk_ORIG_BURDENED_COST_PP,Tsk_ORIG_BURDENED_COST_PTD,
2684 Tsk_BASE_QUANTITY_ITD,Tsk_BASE_QUANTITY_YTD,Tsk_BASE_QUANTITY_PP,
2685 Tsk_BASE_QUANTITY_PTD,
2686 Tsk_ORIG_QUANTITY_ITD,Tsk_ORIG_QUANTITY_YTD,Tsk_ORIG_QUANTITY_PP,
2687 Tsk_ORIG_QUANTITY_PTD,
2688 Tsk_BASE_LABOR_HOURS_ITD,Tsk_BASE_LABOR_HOURS_YTD,Tsk_BASE_LABOR_HOURS_PP,
2689 Tsk_BASE_LABOR_HOURS_PTD,
2690 Tsk_ORIG_LABOR_HOURS_ITD,Tsk_ORIG_LABOR_HOURS_YTD,Tsk_ORIG_LABOR_HOURS_PP,
2691 Tsk_ORIG_LABOR_HOURS_PTD,
2692 Tsk_BASE_REVENUE_ITD,Tsk_BASE_REVENUE_YTD,Tsk_BASE_REVENUE_PP,Tsk_BASE_REVENUE_PTD,
2693 Tsk_ORIG_REVENUE_ITD,Tsk_ORIG_REVENUE_YTD,Tsk_ORIG_REVENUE_PP,Tsk_ORIG_REVENUE_PTD,
2694 X_BASE_UNIT_OF_MEASURE,X_ORIG_UNIT_OF_MEASURE,
2695 Tsk_BASE_RAW_COST,Tsk_BASE_BURDENED_COST,Tsk_ORIG_RAW_COST,
2696 Tsk_ORIG_BURDENED_COST,Tsk_BASE_REVENUE,Tsk_ORIG_REVENUE,
2697 Tsk_BASE_LABOR_HOURS,Tsk_ORIG_LABOR_HOURS,Tsk_BASE_QUANTITY,
2698 Tsk_ORIG_QUANTITY,
2699 pa_proj_accum_main.x_request_id,pa_proj_accum_main.x_last_updated_by,Trunc(sysdate),
2700 Trunc(Sysdate),pa_proj_accum_main.x_created_by,pa_proj_accum_main.x_last_update_login,
2701 x_fin_plan_type_id
2702 );
2703 end if;
2704 end if;
2705 x_recs_processed := Recs_processed;
2706 -- Restore the old x_err_stack;
2707
2708 x_err_stack := V_Old_Stack;
2709 Exception
2710 When Others Then
2711 x_err_code := SQLCODE;
2712 RAISE;
2713 End Process_all_tasks;
2714
2715 --
2716 --History:
2717 -- xx-xxx-xxxx who? - Created
2718 --
2719 -- 26-SEP-2002 jwhite - Converted to support both r11.5.7 Budget and FP models.
2720 -- 1) adapted code to include fin_plan_type_id.
2721
2722 Procedure Process_bud_code
2723 (x_project_id In Number,
2724 x_current_period In varchar2,
2725 x_task_id In Number,
2726 x_resource_list_id In Number,
2727 x_resource_list_Member_id In Number,
2728 x_resource_id In Number,
2729 x_resource_list_assignment_id In Number,
2730 x_rollup_qty_flag In Varchar2,
2731 x_budget_type_code In Varchar2,
2732 x_fin_plan_type_id IN NUMBER,
2733 X_Base_Unit_Of_Measure In Varchar2,
2734 X_Orig_Unit_Of_Measure In Varchar2,
2735 X_Recs_processed Out NOCOPY Number, --File.Sql.39 bug 4440895
2736 x_err_stack In Out NOCOPY Varchar2, --File.Sql.39 bug 4440895
2737 x_err_stage In Out NOCOPY Varchar2, --File.Sql.39 bug 4440895
2738 x_err_code In Out NOCOPY Number ) IS --File.Sql.39 bug 4440895
2739
2740 Recs_processed Number := 0;
2741 V_Accum_id Number := 0;
2742 Res_Recs_processed Number := 0;
2743 x_pab Boolean := true;
2744 V_Old_Stack Varchar2(630);
2745
2746 Begin
2747
2748 V_Old_Stack := x_err_stack;
2749 x_err_stack :=
2750 x_err_stack ||'->PA_PROCESS_ACCUM_BUDGETS_RES.Process_bud_code';
2751
2752 pa_debug.debug(x_err_stack);
2753
2754 x_pab := true;
2755
2756 -- The following Update statement updates all records in the given task
2757 -- WBS hierarchy.It will update only the Project-task-resource combination
2758 -- records and the Project-Resource level record(Task id = 0 and
2759 -- Resourcelist member id <> 0)
2760 begin
2761 Select project_accum_id into V_Accum_id
2762 from pa_project_accum_headers
2763 where project_id = x_project_id
2764 and task_id = x_task_id
2765 and resource_list_member_id = x_resource_list_member_id;
2766
2767 exception when no_data_found then
2768 Select PA_PROJECT_ACCUM_HEADERS_S.Nextval into V_Accum_id
2769 from sys.dual;
2770 Insert into PA_PROJECT_ACCUM_HEADERS
2771 (PROJECT_ACCUM_ID,PROJECT_ID,TASK_ID,ACCUM_PERIOD,RESOURCE_ID,
2772 RESOURCE_LIST_ID,RESOURCE_LIST_ASSIGNMENT_ID,
2773 RESOURCE_LIST_MEMBER_ID,LAST_UPDATED_BY,LAST_UPDATE_DATE,
2774 REQUEST_ID,CREATION_DATE,CREATED_BY,LAST_UPDATE_LOGIN )
2775 Values (v_accum_id,X_project_id,x_task_id,
2776 x_current_period,
2777 x_resource_id,x_resource_list_id,
2778 x_resource_list_assignment_id,x_resource_list_Member_id,
2779 pa_proj_accum_main.x_last_updated_by,
2780 Trunc(sysdate),pa_proj_accum_main.x_request_id,
2781 trunc(sysdate),
2782 pa_proj_accum_main.x_created_by,
2783 pa_proj_accum_main.x_last_update_login );
2784
2785 Insert into PA_PROJECT_ACCUM_BUDGETS (
2786 PROJECT_ACCUM_ID,BUDGET_TYPE_CODE,BASE_RAW_COST_ITD,BASE_RAW_COST_YTD,
2787 BASE_RAW_COST_PP, BASE_RAW_COST_PTD,
2788 BASE_BURDENED_COST_ITD,BASE_BURDENED_COST_YTD,
2789 BASE_BURDENED_COST_PP,BASE_BURDENED_COST_PTD,
2790 ORIG_RAW_COST_ITD,ORIG_RAW_COST_YTD,
2791 ORIG_RAW_COST_PP, ORIG_RAW_COST_PTD,
2792 ORIG_BURDENED_COST_ITD,ORIG_BURDENED_COST_YTD,
2793 ORIG_BURDENED_COST_PP,ORIG_BURDENED_COST_PTD,
2794 BASE_QUANTITY_ITD,BASE_QUANTITY_YTD,BASE_QUANTITY_PP,
2795 BASE_QUANTITY_PTD,
2796 ORIG_QUANTITY_ITD,ORIG_QUANTITY_YTD,ORIG_QUANTITY_PP,
2797 ORIG_QUANTITY_PTD,
2798 BASE_LABOR_HOURS_ITD,BASE_LABOR_HOURS_YTD,BASE_LABOR_HOURS_PP,
2799 BASE_LABOR_HOURS_PTD,
2800 ORIG_LABOR_HOURS_ITD,ORIG_LABOR_HOURS_YTD,ORIG_LABOR_HOURS_PP,
2801 ORIG_LABOR_HOURS_PTD,
2802 BASE_REVENUE_ITD,BASE_REVENUE_YTD,BASE_REVENUE_PP,BASE_REVENUE_PTD,
2803 ORIG_REVENUE_ITD,ORIG_REVENUE_YTD,ORIG_REVENUE_PP,ORIG_REVENUE_PTD,
2804 BASE_UNIT_OF_MEASURE,ORIG_UNIT_OF_MEASURE,
2805 BASE_RAW_COST_TOT,BASE_BURDENED_COST_TOT,ORIG_RAW_COST_TOT,
2806 ORIG_BURDENED_COST_TOT,BASE_REVENUE_TOT,ORIG_REVENUE_TOT,
2807 BASE_LABOR_HOURS_TOT,ORIG_LABOR_HOURS_TOT,BASE_QUANTITY_TOT,
2808 ORIG_QUANTITY_TOT,
2809 REQUEST_ID,LAST_UPDATED_BY,LAST_UPDATE_DATE,CREATION_DATE,CREATED_BY,
2810 LAST_UPDATE_LOGIN,
2811 FIN_PLAN_TYPE_ID
2812 )
2813 Values
2814 (
2815 V_Accum_id,x_budget_type_code,
2816 Prj_BASE_RAW_COST_ITD,Prj_BASE_RAW_COST_YTD,
2817 Prj_BASE_RAW_COST_PP, Prj_BASE_RAW_COST_PTD,
2818 Prj_BASE_BURDENED_COST_ITD,Prj_BASE_BURDENED_COST_YTD,
2819 Prj_BASE_BURDENED_COST_PP,Prj_BASE_BURDENED_COST_PTD,
2820 Prj_ORIG_RAW_COST_ITD,Prj_ORIG_RAW_COST_YTD,
2821 Prj_ORIG_RAW_COST_PP, Prj_ORIG_RAW_COST_PTD,
2822 Prj_ORIG_BURDENED_COST_ITD,Prj_ORIG_BURDENED_COST_YTD,
2823 Prj_ORIG_BURDENED_COST_PP,Prj_ORIG_BURDENED_COST_PTD,
2824 Prj_BASE_QUANTITY_ITD,Prj_BASE_QUANTITY_YTD,Prj_BASE_QUANTITY_PP,
2825 Prj_BASE_QUANTITY_PTD,
2826 Prj_ORIG_QUANTITY_ITD,Prj_ORIG_QUANTITY_YTD,Prj_ORIG_QUANTITY_PP,
2827 Prj_ORIG_QUANTITY_PTD,
2828 Prj_BASE_LABOR_HOURS_ITD,Prj_BASE_LABOR_HOURS_YTD,Prj_BASE_LABOR_HOURS_PP,
2829 Prj_BASE_LABOR_HOURS_PTD,
2830 Prj_ORIG_LABOR_HOURS_ITD,Prj_ORIG_LABOR_HOURS_YTD,Prj_ORIG_LABOR_HOURS_PP,
2831 Prj_ORIG_LABOR_HOURS_PTD,
2832 Prj_BASE_REVENUE_ITD,Prj_BASE_REVENUE_YTD,Prj_BASE_REVENUE_PP,Prj_BASE_REVENUE_PTD,
2833 Prj_ORIG_REVENUE_ITD,Prj_ORIG_REVENUE_YTD,Prj_ORIG_REVENUE_PP,Prj_ORIG_REVENUE_PTD,
2834 X_BASE_UNIT_OF_MEASURE,X_ORIG_UNIT_OF_MEASURE,
2835 Prj_BASE_RAW_COST,Prj_BASE_BURDENED_COST,Prj_ORIG_RAW_COST,
2836 Prj_ORIG_BURDENED_COST,Prj_BASE_REVENUE,Prj_ORIG_REVENUE,
2837 Prj_BASE_LABOR_HOURS,Prj_ORIG_LABOR_HOURS,Prj_BASE_QUANTITY,
2838 Prj_ORIG_QUANTITY,
2839 pa_proj_accum_main.x_request_id,pa_proj_accum_main.x_last_updated_by,Trunc(sysdate),
2840 Trunc(Sysdate),pa_proj_accum_main.x_created_by,pa_proj_accum_main.x_last_update_login,
2841 x_fin_plan_type_id
2842 );
2843 x_pab := false;
2844 end;
2845 If x_pab = true then
2846 Update PA_PROJECT_ACCUM_BUDGETS PAB SET
2847 BASE_RAW_COST_ITD = NVL(BASE_RAW_COST_ITD,0) +
2848 NVL(Prj_Base_Raw_Cost_itd,0),
2849 BASE_RAW_COST_YTD = NVL(BASE_RAW_COST_YTD,0) +
2850 NVL(Prj_Base_Raw_Cost_ytd,0),
2851 BASE_RAW_COST_PTD = NVL(BASE_RAW_COST_PTD,0) +
2852 NVL(Prj_Base_Raw_Cost_ptd,0),
2853 BASE_RAW_COST_PP = NVL(BASE_RAW_COST_PP,0) +
2854 NVL(Prj_Base_Raw_Cost_pp,0),
2855 ORIG_RAW_COST_ITD = NVL(ORIG_RAW_COST_ITD,0) +
2856 NVL(Prj_Orig_Raw_Cost_itd,0),
2857 ORIG_RAW_COST_YTD = NVL(ORIG_RAW_COST_YTD,0) +
2858 NVL(Prj_Orig_Raw_Cost_ytd,0),
2859 ORIG_RAW_COST_PTD = NVL(ORIG_RAW_COST_PTD,0) +
2860 NVL(Prj_Orig_Raw_Cost_ptd,0),
2861 ORIG_RAW_COST_PP = NVL(ORIG_RAW_COST_PP,0) +
2862 NVL(Prj_Orig_Raw_Cost_pp,0),
2863 BASE_BURDENED_COST_ITD = NVL(BASE_BURDENED_COST_ITD,0) +
2864 NVL(Prj_Base_Burdened_Cost_itd,0),
2865 BASE_BURDENED_COST_YTD = NVL(BASE_BURDENED_COST_YTD,0) +
2866 NVL(Prj_Base_Burdened_Cost_ytd,0),
2867 BASE_BURDENED_COST_PTD = NVL(BASE_BURDENED_COST_PTD,0) +
2868 NVL(Prj_Base_Burdened_Cost_ptd,0),
2869 BASE_BURDENED_COST_PP = NVL(BASE_BURDENED_COST_PP,0) +
2870 NVL(Prj_Base_Burdened_Cost_pp,0),
2871 ORIG_BURDENED_COST_ITD = NVL(ORIG_BURDENED_COST_ITD,0) +
2872 NVL(Prj_Orig_Burdened_Cost_itd,0),
2873 ORIG_BURDENED_COST_YTD = NVL(ORIG_BURDENED_COST_YTD,0) +
2874 NVL(Prj_Orig_Burdened_Cost_ytd,0),
2875 ORIG_BURDENED_COST_PTD = NVL(ORIG_BURDENED_COST_PTD,0) +
2876 NVL(Prj_Orig_Burdened_Cost_ptd,0),
2877 ORIG_BURDENED_COST_PP = NVL(ORIG_BURDENED_COST_PP,0) +
2878 NVL(Prj_Orig_Burdened_Cost_pp,0),
2879 BASE_LABOR_HOURS_ITD = NVL(BASE_LABOR_HOURS_ITD,0) +
2880 NVL(Prj_Base_Labor_Hours_itd,0),
2881 BASE_LABOR_HOURS_YTD = NVL(BASE_LABOR_HOURS_YTD,0) +
2882 NVL(Prj_Base_Labor_Hours_ytd,0),
2883 BASE_LABOR_HOURS_PTD = NVL(BASE_LABOR_HOURS_PTD,0) +
2884 NVL(Prj_Base_Labor_Hours_ptd,0),
2885 BASE_LABOR_HOURS_PP = NVL(BASE_LABOR_HOURS_PP,0) +
2886 NVL(Prj_Base_Labor_Hours_pp,0),
2887 ORIG_LABOR_HOURS_ITD = NVL(ORIG_LABOR_HOURS_ITD,0) +
2888 NVL(Prj_Orig_Labor_Hours_itd,0),
2889 ORIG_LABOR_HOURS_YTD = NVL(ORIG_LABOR_HOURS_YTD,0) +
2890 NVL(Prj_Orig_Labor_Hours_ytd,0),
2891 ORIG_LABOR_HOURS_PTD = NVL(ORIG_LABOR_HOURS_PTD,0) +
2892 NVL(Prj_Orig_Labor_Hours_ptd,0),
2893 ORIG_LABOR_HOURS_PP = NVL(ORIG_LABOR_HOURS_PP,0) +
2894 NVL(Prj_Orig_Labor_Hours_pp,0),
2895 BASE_QUANTITY_ITD = NVL(BASE_QUANTITY_ITD,0) +
2896 NVL(Prj_Base_Quantity_itd,0),
2897 BASE_QUANTITY_YTD = NVL(BASE_QUANTITY_YTD,0) +
2898 NVL(Prj_Base_Quantity_ytd,0),
2899 BASE_QUANTITY_PTD = NVL(BASE_QUANTITY_PTD,0) +
2900 NVL(Prj_Base_Quantity_ptd,0),
2901 BASE_QUANTITY_PP = NVL(BASE_QUANTITY_PP,0) +
2902 NVL(Prj_Base_Quantity_pp,0),
2903 ORIG_QUANTITY_ITD = NVL(ORIG_QUANTITY_ITD,0) +
2904 NVL(Prj_Orig_Quantity_itd,0),
2905 ORIG_QUANTITY_YTD = NVL(ORIG_QUANTITY_YTD,0) +
2906 NVL(Prj_Orig_Quantity_ytd,0),
2907 ORIG_QUANTITY_PTD = NVL(ORIG_QUANTITY_PTD,0) +
2908 NVL(Prj_Orig_Quantity_ptd,0),
2909 ORIG_QUANTITY_PP = NVL(ORIG_QUANTITY_PP,0) +
2910 NVL(Prj_Orig_Quantity_pp,0),
2911 BASE_REVENUE_ITD = NVL(BASE_REVENUE_ITD,0) +
2912 NVL(Prj_Base_Revenue_itd,0),
2913 BASE_REVENUE_YTD = NVL(BASE_REVENUE_YTD,0) +
2914 NVL(Prj_Base_Revenue_ytd,0),
2915 BASE_REVENUE_PTD = NVL(BASE_REVENUE_PTD,0) +
2916 NVL(Prj_Base_Revenue_ptd,0),
2917 BASE_REVENUE_PP = NVL(BASE_REVENUE_PP,0) +
2918 NVL(Prj_Base_Revenue_pp,0),
2919 ORIG_REVENUE_ITD = NVL(ORIG_REVENUE_ITD,0) +
2920 NVL(Prj_Orig_Revenue_itd,0),
2921 ORIG_REVENUE_YTD = NVL(ORIG_REVENUE_YTD,0) +
2922 NVL(Prj_Orig_Revenue_ytd,0),
2923 ORIG_REVENUE_PTD = NVL(ORIG_REVENUE_PTD,0) +
2924 NVL(Prj_Orig_Revenue_ptd,0),
2925 ORIG_REVENUE_PP = NVL(ORIG_REVENUE_PP,0) +
2926 NVL(Prj_Orig_Revenue_pp,0),
2927 BASE_RAW_COST_TOT = NVL(BASE_RAW_COST_TOT,0 ) +
2928 Prj_BASE_RAW_COST,
2929 BASE_BURDENED_COST_TOT = NVL(BASE_BURDENED_COST_TOT,0) +
2930 Prj_BASE_BURDENED_COST,
2931 ORIG_RAW_COST_TOT = NVL(ORIG_RAW_COST_TOT,0) +
2932 Prj_ORIG_RAW_COST,
2933 ORIG_BURDENED_COST_TOT = NVL(ORIG_BURDENED_COST_TOT,0) +
2934 Prj_ORIG_BURDENED_COST,
2935 BASE_REVENUE_TOT = NVL(BASE_REVENUE_TOT,0 ) +
2936 Prj_BASE_REVENUE,
2937 ORIG_REVENUE_TOT = NVL(ORIG_REVENUE_TOT,0 ) +
2938 Prj_ORIG_REVENUE,
2939 BASE_LABOR_HOURS_TOT = NVL(BASE_LABOR_HOURS_TOT,0) +
2940 Prj_BASE_LABOR_HOURS,
2941 ORIG_LABOR_HOURS_TOT = NVL(ORIG_LABOR_HOURS_TOT,0 ) +
2942 Prj_ORIG_LABOR_HOURS,
2943 BASE_QUANTITY_TOT = NVL(BASE_QUANTITY_TOT,0) +
2944 Prj_BASE_QUANTITY,
2945 ORIG_QUANTITY_TOT = NVL(ORIG_QUANTITY_TOT,0) +
2946 Prj_ORIG_QUANTITY,
2947 BASE_UNIT_OF_MEASURE = X_Base_Unit_of_Measure,
2948 ORIG_UNIT_OF_MEASURE = X_Orig_Unit_of_Measure,
2949 LAST_UPDATED_BY = pa_proj_accum_main.x_last_updated_by,
2950 LAST_UPDATE_DATE = Trunc(Sysdate),
2951 LAST_UPDATE_LOGIN = pa_proj_accum_main.x_last_update_login,
2952 FIN_PLAN_TYPE_ID = x_fin_plan_type_id
2953 Where Budget_Type_Code = x_Budget_type_code
2954 And PAB.Project_Accum_id = v_accum_id;
2955
2956 if sql%notfound then
2957 Insert into PA_PROJECT_ACCUM_BUDGETS (
2958 PROJECT_ACCUM_ID,BUDGET_TYPE_CODE,BASE_RAW_COST_ITD,BASE_RAW_COST_YTD,
2959 BASE_RAW_COST_PP, BASE_RAW_COST_PTD,
2960 BASE_BURDENED_COST_ITD,BASE_BURDENED_COST_YTD,
2961 BASE_BURDENED_COST_PP,BASE_BURDENED_COST_PTD,
2962 ORIG_RAW_COST_ITD,ORIG_RAW_COST_YTD,
2963 ORIG_RAW_COST_PP, ORIG_RAW_COST_PTD,
2964 ORIG_BURDENED_COST_ITD,ORIG_BURDENED_COST_YTD,
2965 ORIG_BURDENED_COST_PP,ORIG_BURDENED_COST_PTD,
2966 BASE_QUANTITY_ITD,BASE_QUANTITY_YTD,BASE_QUANTITY_PP,
2967 BASE_QUANTITY_PTD,
2968 ORIG_QUANTITY_ITD,ORIG_QUANTITY_YTD,ORIG_QUANTITY_PP,
2969 ORIG_QUANTITY_PTD,
2970 BASE_LABOR_HOURS_ITD,BASE_LABOR_HOURS_YTD,BASE_LABOR_HOURS_PP,
2971 BASE_LABOR_HOURS_PTD,
2972 ORIG_LABOR_HOURS_ITD,ORIG_LABOR_HOURS_YTD,ORIG_LABOR_HOURS_PP,
2973 ORIG_LABOR_HOURS_PTD,
2974 BASE_REVENUE_ITD,BASE_REVENUE_YTD,BASE_REVENUE_PP,BASE_REVENUE_PTD,
2975 ORIG_REVENUE_ITD,ORIG_REVENUE_YTD,ORIG_REVENUE_PP,ORIG_REVENUE_PTD,
2976 BASE_UNIT_OF_MEASURE,ORIG_UNIT_OF_MEASURE,
2977 BASE_RAW_COST_TOT,BASE_BURDENED_COST_TOT,ORIG_RAW_COST_TOT,
2978 ORIG_BURDENED_COST_TOT,BASE_REVENUE_TOT,ORIG_REVENUE_TOT,
2979 BASE_LABOR_HOURS_TOT,ORIG_LABOR_HOURS_TOT,BASE_QUANTITY_TOT,
2980 ORIG_QUANTITY_TOT,
2981 REQUEST_ID,LAST_UPDATED_BY,LAST_UPDATE_DATE,CREATION_DATE,CREATED_BY,
2982 LAST_UPDATE_LOGIN,
2983 FIN_PLAN_TYPE_ID
2984 )
2985 Values
2986 (
2987 V_Accum_id,x_budget_type_code,
2988 Prj_BASE_RAW_COST_ITD,Prj_BASE_RAW_COST_YTD,
2989 Prj_BASE_RAW_COST_PP, Prj_BASE_RAW_COST_PTD,
2990 Prj_BASE_BURDENED_COST_ITD,Prj_BASE_BURDENED_COST_YTD,
2991 Prj_BASE_BURDENED_COST_PP,Prj_BASE_BURDENED_COST_PTD,
2992 Prj_ORIG_RAW_COST_ITD,Prj_ORIG_RAW_COST_YTD,
2993 Prj_ORIG_RAW_COST_PP, Prj_ORIG_RAW_COST_PTD,
2994 Prj_ORIG_BURDENED_COST_ITD,Prj_ORIG_BURDENED_COST_YTD,
2995 Prj_ORIG_BURDENED_COST_PP,Prj_ORIG_BURDENED_COST_PTD,
2996 Prj_BASE_QUANTITY_ITD,Prj_BASE_QUANTITY_YTD,Prj_BASE_QUANTITY_PP,
2997 Prj_BASE_QUANTITY_PTD,
2998 Prj_ORIG_QUANTITY_ITD,Prj_ORIG_QUANTITY_YTD,Prj_ORIG_QUANTITY_PP,
2999 Prj_ORIG_QUANTITY_PTD,
3000 Prj_BASE_LABOR_HOURS_ITD,Prj_BASE_LABOR_HOURS_YTD,Prj_BASE_LABOR_HOURS_PP,
3001 Prj_BASE_LABOR_HOURS_PTD,
3002 Prj_ORIG_LABOR_HOURS_ITD,Prj_ORIG_LABOR_HOURS_YTD,Prj_ORIG_LABOR_HOURS_PP,
3003 Prj_ORIG_LABOR_HOURS_PTD,
3004 Prj_BASE_REVENUE_ITD,Prj_BASE_REVENUE_YTD,Prj_BASE_REVENUE_PP,Prj_BASE_REVENUE_PTD,
3005 Prj_ORIG_REVENUE_ITD,Prj_ORIG_REVENUE_YTD,Prj_ORIG_REVENUE_PP,Prj_ORIG_REVENUE_PTD,
3006 X_BASE_UNIT_OF_MEASURE,X_ORIG_UNIT_OF_MEASURE,
3007 Prj_BASE_RAW_COST,Prj_BASE_BURDENED_COST,Prj_ORIG_RAW_COST,
3008 Prj_ORIG_BURDENED_COST,Prj_BASE_REVENUE,Prj_ORIG_REVENUE,
3009 Prj_BASE_LABOR_HOURS,Prj_ORIG_LABOR_HOURS,Prj_BASE_QUANTITY,
3010 Prj_ORIG_QUANTITY,
3011 pa_proj_accum_main.x_request_id,pa_proj_accum_main.x_last_updated_by,Trunc(sysdate),
3012 Trunc(Sysdate),pa_proj_accum_main.x_created_by,pa_proj_accum_main.x_last_update_login,
3013 x_fin_plan_type_id
3014 );
3015 end if;
3016 end if;
3017 x_recs_processed := Recs_processed;
3018 -- Restore the old x_err_stack;
3019
3020 x_err_stack := V_Old_Stack;
3021 Exception
3022 When Others Then
3023 x_err_code := SQLCODE;
3024 RAISE;
3025 End Process_bud_code;
3026 ----------------------------------------------------------
3027 End PA_MAINT_PROJECT_BUDGETS;