DBA Data[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;