DBA Data[Home] [Help]

PACKAGE: APPS.PA_PROGRESS_UTILS

Source


1 package PA_PROGRESS_UTILS as
2 /* $Header: PAPCUTLS.pls 120.12.12010000.5 2008/12/17 20:32:16 bifernan ship $ */
3 
4 --The following global varables are added for as_of_date APIs
5   previous_record_count  NUMBER(15) := 0;
6   next_record_count      NUMBER(15) := 0;
7   record_count           NUMBER(15) := 0;
8   x_bill_thru_date       DATE;
9   project_id             NUMBER := 0;
10   previous_record_index  NUMBER := 0;
11   current_index          NUMBER := 0;
12   previous_return_date   DATE   := sysdate - 10;
13   l_last_progress_date DATE;
14   l_Last_Bill_Thru_Date DATE;
15   l_return_date     PA_VC_1000_10 := PA_VC_1000_10(1000);
16   i                      NUMBER := 0;
17 
18   X_project_start_date   DATE;
19   X_project_finish_date  DATE;
20   G_prog_as_of_date      DATE := sysdate;
21   G_bac_value_project_id NUMBER := 0; -- FPM Dev CR 3
22 
23   -- 4535784 Begin
24   j_task                 NUMBER := 0;
25   g_task_id      NUMBER := 0;
26   g_max_rollup_dt    DATE;
27   -- 4535784 End
28 --
29 
30   -- Bug 7633088
31   g_override_as_of_date    DATE := NULL;
32 
33 FUNCTION GET_LATEST_TASK_VER_ID (p_project_id      IN  NUMBER,
34                                  p_task_id         IN  NUMBER) return NUMBER;
35 
36 FUNCTION PROGRESS_RECORD_EXISTS (p_element_version_id   IN  NUMBER,
37                                  p_object_type          IN  VARCHAR2
38                  ,p_project_id      IN  NUMBER -- Fixed bug # 3688901.
39                 ) return VARCHAR2;
40 
41 FUNCTION GET_LATEST_STRUCTURE_VER_ID (p_project_id IN  NUMBER) return NUMBER;
42 
43 FUNCTION isUserProjectManager(p_user_id       IN   NUMBER,
44                               p_project_id    IN   NUMBER) return VARCHAR2;
45 
46 FUNCTION Get_Working_Progress_Id(p_project_id    IN   NUMBER,
47                                  p_task_id       IN   NUMBER) return NUMBER;
48 
49 PROCEDURE UPDATE_TASK_PROG_REQ_DATE(p_commit         in varchar2 := FND_API.G_TRUE,
50                                   p_object_id      in number,
51                                   p_object_type    in varchar2,
52                                   x_return_status  out NOCOPY varchar2, --File.Sql.39 bug 4440895
53                                   x_msg_count      out NOCOPY number, --File.Sql.39 bug 4440895
54                                   x_msg_data       out NOCOPY varchar2); --File.Sql.39 bug 4440895
55 PROCEDURE adjust_reminder_date(
56         p_commit                         IN VARCHAR2 := FND_API.G_TRUE
57        ,p_project_id                     IN  NUMBER
58        ,x_return_status                  OUT NOCOPY VARCHAR2 --File.Sql.39 bug 4440895
59        ,x_msg_count                      OUT NOCOPY NUMBER --File.Sql.39 bug 4440895
60        ,x_msg_data                       OUT NOCOPY VARCHAR2); --File.Sql.39 bug 4440895
61 
62 FUNCTION PROJ_TASK_PROG_EXISTS(p_project_id IN  NUMBER,
63                           p_task_id    IN  NUMBER) return VARCHAR2;
64 
65 FUNCTION GET_PRIOR_PERCENT_COMPLETE(p_project_id IN  NUMBER,
66                                     p_task_id    IN  NUMBER,
67                                     p_as_of_date IN  DATE) return NUMBER;
68 
69 
70 FUNCTION GET_LATEST_AS_OF_DATE(
71     p_task_id      NUMBER
72     ,p_project_id   NUMBER := null -- FPM Development Bug 3420093
73     ,p_object_id   NUMBER := null -- FPM Development Bug 3420093
74     ,p_object_type VARCHAR2 := 'PA_TASKS'-- FPM Development Bug 3420093
75     ,p_structure_type VARCHAR2 := 'WORKPLAN' -- FPM Development Bug 3420093
76     ) RETURN DATE;
77 
78 
79 
80 
81 function Get_AS_OF_DATE (
82            X_Project_ID                 IN      Number,
83                 X_project_start_date            IN      Date    default NULL,
84                                 X_Billing_Cycle_ID              IN      Number  default NULL,
85                                 X_Billing_Offset_Days   IN      Number  default NULL,
86                                 X_Bill_Thru_Date                IN      Date    default NULL,
87                                 X_Last_Bill_Thru_Date   IN      Date    default NULL
88                                         )       RETURN DATE;
89 
90 
91 FUNCTION as_of_date(
92         X_Project_ID                    IN      NUMBER                          ,
93         x_object_id                     IN      NUMBER                          ,
94         X_Billing_Cycle_ID              IN      NUMBER  DEFAULT NULL            ,
95         X_Object_type                   IN      VARCHAR2  DEFAULT 'PA_TASKS'    , -- FPM Development Bug 3420093
96         X_structure_type                IN      VARCHAR2  DEFAULT 'WORKPLAN'    ,-- FPM Development Bug 3420093
97     X_proj_element_id               IN      NUMBER    := null   /* Amit : Modified for IB4 Progress CR. */
98           ) RETURN DATE;
99 
100 FUNCTION get_next_ppc_id RETURN NUMBER;
101 
102 -- FPM Development Bug 3420093 : Added p_object_type
103 FUNCTION CHECK_VALID_AS_OF_DATE(p_as_of_date IN DATE, p_project_id IN NUMBER, p_object_id NUMBER, p_object_type VARCHAR2 := 'PA_TASKS', p_proj_element_id  IN      NUMBER    := null    /* Amit : Modified for IB4 Progress CR. */  )
104 RETURN VARCHAR2;
105 
106 FUNCTION Calc_base_percent(
107  p_task_id     NUMBER,
108  p_incr_work_qty NUMBER,
109  p_cuml_work_qty NUMBER,
110  p_est_remaining_effort NUMBER
111 ) RETURN NUMBER;
112 
113 -- 4392189 Phase 2: This method is not used anywhere
114 /*
115 PROCEDURE get_rollup_attrs(
116  p_task_id                           NUMBER,
117  p_as_of_date                        DATE,
118  x_EFF_ROLLUP_PROG_STAT_CODE         OUT VARCHAR2,
119  x_EFF_ROLLUP_PROG_STAT_NAME         OUT VARCHAR2,
120  x_ESTIMATED_REMAINING_EFFORT        OUT NUMBER,
121  x_BASE_PERCENT_COMPLETE             OUT NUMBER,
122  x_EFF_ROLLUP_PERCENT_COMP           OUT NUMBER,
123  x_ESTIMATED_START_DATE              OUT DATE,
124  x_ESTIMATED_FINISH_DATE             OUT DATE,
125  x_ACTUAL_START_DATE                 OUT DATE,
126  x_ACTUAL_FINISH_DATE                OUT DATE,
127  x_status_icon_ind                   OUT VARCHAR2,
128  x_status_icon_active_ind            OUT VARCHAR2
129 );
130 */
131 
132 FUNCTION get_next_progress_cycle(
133  p_project_id NUMBER,
134  p_task_id NUMBER,
135  p_object_id NUMBER := null, -- FPM Development Bug 3420093
136  p_object_type VARCHAR2 := 'PA_TASKS', -- FPM Development Bug 3420093
137  p_structure_type VARCHAR2 := 'WORKPLAN', -- FPM Development Bug 3420093
138  p_start_date DATE := to_date(null) -- FPM Development Bug 3420093
139 )  RETURN DATE;
140 
141 FUNCTION get_prog_dt_closest_to_sys_dt(
142  p_project_id NUMBER,
143  p_task_id NUMBER,
144  p_object_id NUMBER := null, -- FPM Development Bug 3420093
145  p_object_type VARCHAR2 := 'PA_TASKS', -- FPM Development Bug 3420093
146  p_structure_type VARCHAR2 := 'WORKPLAN'
147 ) RETURN DATE ;
148 
149 FUNCTION check_prog_exists_on_aod(
150  p_project_id       NUMBER,
151  p_object_type      VARCHAR2,
152  p_object_version_id NUMBER,
153  p_task_id NUMBER := null/* Amit : Modified for IB4 Progress CR. */     ,
154  p_as_of_date DATE,
155  p_structure_type VARCHAR2 := 'WORKPLAN' -- FPM Development Bug 3420093
156  ,p_object_id   NUMBER := null /* Modified for IB4 Progress CR. */
157 ) RETURN VARCHAR2;
158 
159 FUNCTION get_ppc_id(
160  p_project_id    NUMBER
161 ,p_object_id     NUMBER
162 ,p_object_type   VARCHAR2
163 ,p_object_version_id  NUMBER
164 ,p_as_of_date    DATE
165 ,p_structure_type VARCHAR2 := 'WORKPLAN' -- FPM Development Bug 3420093
166 ,p_task_id NUMBER := null /* Modified for IB4 Progress CR. */
167 ) RETURN NUMBER;
168 
169 FUNCTION get_prog_rollup_id(
170  p_project_id    NUMBER
171 ,p_object_id     NUMBER
172 ,p_object_type   VARCHAR2
173 ,p_object_version_id NUMBER
174 ,p_as_of_date    DATE
175 ,p_structure_type VARCHAR2 := 'WORKPLAN' -- FPM Development Bug 3420093
176 ,p_structure_version_id NUMBER := null -- FPM Development Bug 3420093
177 ,x_record_version_number OUT NOCOPY NUMBER --File.Sql.39 bug 4440895
178 ,p_proj_element_id NUMBER := null /* Modified for IB4 Progress CR. */
179 ,p_action          VARCHAR2 := 'PUBLISH' -- Bug 3879461
180  ) RETURN NUMBER;
181 
182 FUNCTION check_task_has_progress(
183 p_task_id    NUMBER ) RETURN VARCHAR2;
184 
185 FUNCTION get_last_cumulative(
186  p_project_id    NUMBER
187 ,p_object_id     NUMBER
188 ,p_object_type   VARCHAR2
189 ,p_as_of_date    DATE ) RETURN NUMBER;
190 
191 
192 FUNCTION get_planned_wq(
193  p_project_id    NUMBER
194 ,p_object_id     NUMBER
195 ,p_object_version_id NUMBER ) RETURN NUMBER;
196 
197 PROCEDURE clear_prog_outdated_flag(
198  p_project_id    NUMBER
199 ,p_object_id     NUMBER
200 ,p_object_type   VARCHAR2
201 ,p_structure_version_id   NUMBER   default null    --bug 3851528
202 ,x_return_status              OUT       NOCOPY VARCHAR2 --File.Sql.39 bug 4440895
203 ,x_msg_count          OUT       NOCOPY NUMBER --File.Sql.39 bug 4440895
204 ,x_msg_data                 OUT         NOCOPY VARCHAR2 --File.Sql.39 bug 4440895
205 );
206 
207 -- FPM Development Bug 3420093
208 PROCEDURE get_project_progress_defaults(
209  p_project_id                   NUMBER
210 ,p_structure_type               IN VARCHAR2
211 ,x_WQ_ENABLED_FLAG              OUT NOCOPY VARCHAR2 --File.Sql.39 bug 4440895
212 ,x_EFFORT_ENABLED_FLAG          OUT NOCOPY VARCHAR2 --File.Sql.39 bug 4440895
213 ,x_PERCENT_COMP_ENABLED_FLAG    OUT NOCOPY VARCHAR2 --File.Sql.39 bug 4440895
214 ,x_task_weight_basis_code       OUT NOCOPY VARCHAR2 --File.Sql.39 bug 4440895
215 ,X_ALLOW_COLLAB_PROG_ENTRY      OUT NOCOPY VARCHAR2  --File.Sql.39 bug 4440895
216 ,X_ALLW_PHY_PRCNT_CMP_OVERRIDES OUT NOCOPY VARCHAR2  --File.Sql.39 bug 4440895
217 );
218 
219 PROCEDURE get_progress_defaults(
220  p_project_id                   NUMBER
221 ,p_object_version_id            NUMBER
222 ,p_object_type                  VARCHAR2
223 ,p_object_id                  NUMBER
224 ,p_as_of_date                   DATE
225 ,p_structure_type               VARCHAR2 := 'WORKPLAN'  -- FPM Development Bug 3420093
226 ,x_WQ_ACTUAL_ENTRY_CODE         OUT NOCOPY VARCHAR2 --File.Sql.39 bug 4440895
227 ,x_WQ_ENABLED_FLAG              OUT NOCOPY VARCHAR2 --File.Sql.39 bug 4440895
228 ,x_EFFORT_ENABLED_FLAG          OUT NOCOPY VARCHAR2 --File.Sql.39 bug 4440895
229 ,x_BASE_PERCENT_COMP_DERIV_CODE OUT NOCOPY VARCHAR2 --File.Sql.39 bug 4440895
230 ,x_PERCENT_COMP_ENABLED_FLAG    OUT NOCOPY VARCHAR2 --File.Sql.39 bug 4440895
231 ,X_PROGRESS_ENTRY_ENABLE_FLAG    OUT NOCOPY VARCHAR2 --File.Sql.39 bug 4440895
232 ,X_ALLOW_COLLAB_PROG_ENTRY      OUT NOCOPY VARCHAR2 -- FPM Development Bug 3420093 --File.Sql.39 bug 4440895
233 ,X_ALLW_PHY_PRCNT_CMP_OVERRIDES OUT NOCOPY VARCHAR2 -- FPM Development Bug 3420093 --File.Sql.39 bug 4440895
234 ,x_task_weight_basis_code       OUT NOCOPY VARCHAR2 --File.Sql.39 bug 4440895
235 );
236 
237 FUNCTION chk_prg_since_last_prg(
238  p_project_id                   NUMBER
239 ,p_percent_complete_id          NUMBER
240 ,p_object_type                  VARCHAR2
241 ,p_object_id                    NUMBER
242 ,p_task_id                      NUMBER := null /* Modified for IB4 Progress CR. */
243 ) RETURN VARCHAR2;
244 
245 FUNCTION check_project_has_progress(
246 p_project_id    NUMBER,
247 p_object_id     NUMBER,
248 p_structure_type VARCHAR2 := null ) RETURN VARCHAR2;       -- added by kmaddi for bug 6914708
249 
250 FUNCTION get_task_prog_profile(
251 p_profile_name    VARCHAR2 ) RETURN VARCHAR2;
252 
253 FUNCTION Working_version_exist(
254      p_task_id          NUMBER  := null /* Amit : Modified for IB4 Progress CR. */
255     ,p_project_id       NUMBER
256     ,p_object_type      VARCHAR2
257     ,p_object_id        NUMBER := null /* Modified for IB4 Progress CR. */
258     ,p_as_of_date       DATE := null  -- bug 4185364
259     ) RETURN DATE;
260 
261 FUNCTION check_status_referenced(
262       p_status_code    VARCHAR2 ) RETURN BOOLEAN;
263 
264 FUNCTION GET_LATEST_AS_OF_DATE2(
265     p_task_id      NUMBER
266    ,p_as_of_date  DATE ) RETURN DATE;
267 
268 FUNCTION is_parent_on_hold(
269    p_object_version_id     NUMBER
270 ) RETURN VARCHAR2;
271 
272 FUNCTION get_task_status(
273   p_project_id     NUMBER
274  ,p_object_id     NUMBER
275  , p_object_type  VARCHAR2 := 'PA_TASKS' -- FPM Development Bug 3420093
276  ) RETURN VARCHAR2;
277 
278  FUNCTION get_system_task_status(
279  p_status_code   VARCHAR2
280  ,p_object_type   VARCHAR2 := 'PA_TASKS'
281  ) RETURN VARCHAR2;
282 
283 Function is_cycle_ok_to_delete(p_progress_cycle_id  IN  NUMBER) return VARCHAR2;
284 
285 function get_max_ppc_id(p_project_id   IN  NUMBER,
286                         p_object_id    IN  NUMBER,
287                         p_object_type  IN  VARCHAR2,
288                         p_as_of_date   IN  DATE) return number;
289 
290 function get_max_rollup_asofdate(p_project_id           IN  NUMBER,
291                                  p_object_id            IN  NUMBER,
292                                  p_object_type          IN  VARCHAR2,
293                                  p_as_of_date           IN  DATE,
294                                  p_object_version_id    IN  NUMBER,
295                  p_structure_type IN VARCHAR2 := 'WORKPLAN', -- FPM Dev CR 3
296                  p_structure_version_id NUMBER := NULL -- FPM Dev CR 4
297                  ,p_proj_element_id NUMBER := null /* Modified for IB4 Progress CR. */
298                  ) return date;
299 
300 function get_project_wq_flag(p_project_id  IN  NUMBER) return varchar2;
301 
302 PROCEDURE copy_attachments (
303   p_project_id                  IN NUMBER,
304   p_object_id                   IN NUMBER,
305   p_object_type                 IN VARCHAR2,
306   p_from_pc_id                  IN NUMBER,
307   p_to_pc_id                    IN NUMBER,
308   x_return_status               OUT NOCOPY VARCHAR2, --File.Sql.39 bug 4440895
309   x_msg_count                   OUT NOCOPY NUMBER, --File.Sql.39 bug 4440895
310   x_msg_data                    OUT NOCOPY VARCHAR2 --File.Sql.39 bug 4440895
311 );
312 
313 function is_task_manager (p_task_id           IN  NUMBER,
314                           p_project_id        IN  NUMBER,
315                           p_user_id           IN  NUMBER) return varchar2;
316 
317 --Bug 3010538 : New API for the Task Weighting Enhancement.
318 FUNCTION GET_TASK_WEIGHTING_BASIS(
319     p_project_id  IN  pa_projects_all.project_id%TYPE
320     , p_structure_type IN VARCHAR2 := 'WORKPLAN' -- FPM Dev CR 3
321 )
322 return VARCHAR2;
323 
324 -- Progress Management Changes. Bug # 3420093.
325 
326 FUNCTION is_object_progressable(p_project_id            IN              NUMBER
327                                 ,p_proj_element_id      IN              NUMBER
328                                 ,p_object_id            IN              NUMBER
329                                 ,p_object_type          IN              VARCHAR2) return VARCHAR2;
330 
331 FUNCTION check_wp_working_prog_exists(p_project_id            IN              NUMBER
332                                 ,p_structure_version_id      IN              NUMBER
333                 ) return VARCHAR2;
334 
335 FUNCTION is_pc_override_allowed(p_project_id            IN              NUMBER
336                                 ,p_structure_type        IN              VARCHAR2 := 'WORKPLAN'
337                 ) return VARCHAR2;
338 
339 
340 FUNCTION calculate_percentage( p_actual_value   NUMBER
341                                ,p_planned_value  NUMBER ) return NUMBER;
342 
343 
344 FUNCTION GET_EARLIEST_AS_OF_DATE(
345      p_project_id   NUMBER
346     ,p_object_id   NUMBER
347     ,p_object_type VARCHAR2
348     ,p_structure_type VARCHAR2 := 'WORKPLAN' -- FPM Development Bug 3420093
349     ,p_task_id     NUMBER  := null /* Modified for IB4 Progress CR. */
350     ) RETURN DATE;
351 
352 FUNCTION check_assignment_exists(
353      p_project_id   NUMBER
354     ,p_object_version_id   NUMBER
355     ,p_object_type VARCHAR2
356     ,p_structure_type VARCHAR2 := 'WORKPLAN' -- FPM Development Bug 3420093
357  ) RETURN VARCHAR2;
358 
359 FUNCTION get_last_effort(
360      p_project_id   NUMBER
361     ,p_object_id   NUMBER
362     ,p_object_type VARCHAR2
363     ,p_as_of_date  DATE
364     ,p_structure_type VARCHAR2 := 'WORKPLAN' -- FPM Development Bug 3420093
365     ,p_proj_element_id NUMBER := null /* Modified for IB4 Progress CR. */
366 ) RETURN NUMBER;
367 
368 FUNCTION get_last_cost(
369      p_project_id   NUMBER
370     ,p_object_id   NUMBER
371     ,p_object_type VARCHAR2
372     ,p_as_of_date  DATE
373     ,p_structure_type VARCHAR2 := 'WORKPLAN' -- FPM Development Bug 3420093
374     ,p_proj_element_id NUMBER := null /* Modified for IB4 Progress CR. */
375 ) RETURN NUMBER;
376 
377 
378 PROCEDURE convert_currency_amounts(
379   p_api_version                 IN      NUMBER          :=1.0
380  ,p_init_msg_list               IN      VARCHAR2        :=FND_API.G_TRUE
381  ,p_commit                      IN      VARCHAR2        :=FND_API.G_FALSE
382  ,p_validate_only               IN      VARCHAR2        :=FND_API.G_TRUE
383  ,p_validation_level            IN      NUMBER          :=FND_API.G_VALID_LEVEL_FULL
384  ,p_calling_module              IN      VARCHAR2        :='SELF_SERVICE'
385  ,p_debug_mode                  IN      VARCHAR2        :='N'
386  ,p_max_msg_count               IN      NUMBER          :=PA_INTERFACE_UTILS_PUB.G_PA_MISS_NUM
387  ,p_project_id                  IN      NUMBER
388  ,p_task_id                     IN      NUMBER      /* to pass to conversion api */
389  ,p_as_of_date                  IN      DATE        /* to pass to conversion api */
390  ,P_txn_cost                    IN      NUMBER
391  ,P_txn_curr_code               IN      VARCHAR2
392  ,p_structure_version_id        IN      NUMBER -- Bug 3627787
393  ,p_calling_mode        IN  VARCHAR2        := 'ACTUAL_RATES' -- Bug 4372462
394  ,p_budget_version_id           IN      NUMBER          := null -- Bug 4372462
395  ,p_res_assignment_id           IN      NUMBER          := null -- Bug 4372462
396  ,p_init_inout_vars             IN      VARCHAR2        := 'Y' -- Bug 4372462
397  ,P_project_curr_code           IN OUT  NOCOPY VARCHAR2 --File.Sql.39 bug 4440895
398  ,P_project_rate_type           IN OUT  NOCOPY VARCHAR2 --File.Sql.39 bug 4440895
399  ,P_project_rate_date           IN OUT  NOCOPY DATE --File.Sql.39 bug 4440895
400  ,P_project_exch_rate           IN OUT  NOCOPY NUMBER --File.Sql.39 bug 4440895
401  ,P_project_raw_cost            IN OUT  NOCOPY NUMBER --File.Sql.39 bug 4440895
402  ,P_projfunc_curr_code          IN OUT  NOCOPY VARCHAR2 --File.Sql.39 bug 4440895
403  ,P_projfunc_cost_rate_type     IN OUT  NOCOPY VARCHAR2 --File.Sql.39 bug 4440895
404  ,P_projfunc_cost_rate_date     IN OUT  NOCOPY DATE --File.Sql.39 bug 4440895
405  ,P_projfunc_cost_exch_rate     IN OUT  NOCOPY NUMBER --File.Sql.39 bug 4440895
406  ,P_projfunc_raw_cost           IN OUT  NOCOPY NUMBER --File.Sql.39 bug 4440895
407  ,x_return_status               OUT NOCOPY VARCHAR2 --File.Sql.39 bug 4440895
408  ,x_msg_count                   OUT NOCOPY NUMBER --File.Sql.39 bug 4440895
409  ,x_msg_data                    OUT NOCOPY VARCHAR2 --File.Sql.39 bug 4440895
413                    ,p_project_id        IN      NUMBER := NULL) return VARCHAR2;
410 );
411 
412 FUNCTION get_time_phase_period(p_structure_version_id   IN      NUMBER
414 
415 FUNCTION get_incremental_actual_cost(p_as_of_date           IN              DATE
416                                     ,p_period_name          IN              VARCHAR2
417                                     ,pgn_flag               IN              VARCHAR2
418                                     ,p_project_id           IN              NUMBER
419                                     ,p_object_id            IN              NUMBER
420                                     ,p_object_version_id    IN              NUMBER
421                     ,currency_flag      IN          VARCHAR2 := 'T'
422                                     ,p_structure_version_id IN              NUMBER := null  --3694031
423               ,p_proj_element_id      IN    NUMBER := null /* Modified for IB4 Progress CR. */
424                       ) return NUMBER;
425 
426 FUNCTION get_incremental_actual_rawcost(p_as_of_date           IN            DATE
427                                        ,p_period_name          IN            VARCHAR2
428                                        ,pgn_flag               IN            VARCHAR2
429                                        ,p_project_id           IN            NUMBER
430                                        ,p_object_id            IN            NUMBER
431                                        ,p_object_version_id    IN            NUMBER
432                                        ,currency_flag          IN            VARCHAR2 := 'T'
433                                        ,p_structure_version_id IN              NUMBER := null  --3694031
434                  ,p_proj_element_id      IN  NUMBER := null /* Modified for IB4 Progress CR. */
435                                     ) return NUMBER;
436 
437 FUNCTION get_incremental_actual_effort(p_as_of_date           IN              DATE
438                                       ,p_period_name          IN              VARCHAR2
439                                       ,pgn_flag               IN              VARCHAR2
440                                       ,p_project_id           IN              NUMBER
441                                       ,p_object_id            IN              NUMBER
442                                       ,p_object_version_id    IN              NUMBER
443                                       ,p_structure_version_id IN              NUMBER := null  --3694031
444                 ,p_proj_element_id      IN   NUMBER := null /* Modified for IB4 Progress CR. */
445                                   ) return NUMBER;
446 
447 
448 FUNCTION get_act_txn_cost_this_period (p_as_of_date      IN     DATE
449                                     ,p_project_id        IN     NUMBER
450                                     ,p_object_id         IN     NUMBER
451                                     ,p_object_version_id IN     NUMBER
452     ,p_proj_element_id   IN     NUMBER := null /* Modified for IB4 Progress CR. */) return NUMBER;
453 
454 FUNCTION get_act_pfn_cost_this_period (p_as_of_date      IN     DATE
455                                     ,p_project_id        IN     NUMBER
456                                     ,p_object_id         IN     NUMBER
457                                     ,p_object_version_id IN     NUMBER
458     ,p_proj_element_id   IN     NUMBER := null /* Modified for IB4 Progress CR. */) return NUMBER;
459 
460 FUNCTION get_act_cost_this_period (p_as_of_date          IN     DATE
461                                     ,p_project_id        IN     NUMBER
462                                     ,p_object_id         IN     NUMBER
463                                     ,p_object_version_id IN     NUMBER
464     ,p_proj_element_id   IN     NUMBER := null /* Modified for IB4 Progress CR. */) return NUMBER;
465 
466 
467 FUNCTION get_act_effort_this_period (p_as_of_date        IN     DATE
468                                     ,p_project_id        IN     NUMBER
469                                     ,p_object_id         IN     NUMBER
470                                     ,p_object_version_id IN     NUMBER
471     ,p_proj_element_id   IN     NUMBER := null /* Modified for IB4 Progress CR. */) return NUMBER;
472 
473 
474 FUNCTION check_wwp_prog_publishing_ok(
475     p_project_id              IN NUMBER
476    ,p_structure_version_id    IN NUMBER
477 ) RETURN VARCHAR2;
478 
479 FUNCTION Get_BAC_Value(
480     p_project_id                IN NUMBER
481    ,p_task_weight_method        IN VARCHAR2
482    ,p_proj_element_id           IN NUMBER
483    ,p_structure_version_id      IN NUMBER
484    ,p_structure_type            IN VARCHAR2
485    ,p_working_wp_prog_flag      IN VARCHAR2 default 'N' --maansari7/18. To get the planned in case of apply lp flow
486    ,p_program_flag              IN VARCHAR2 default 'Y' -- Bug 4493105
487 ) RETURN NUMBER;
488 
489 FUNCTION Get_LATEST_PROGRESS_ENTRY_DATE(
490      p_project_id  NUMBER
491     ,p_object_id   NUMBER
492     ,p_object_type VARCHAR2 := 'PA_TASKS'
493     ,p_structure_type VARCHAR2 := 'WORKPLAN'
494     ,p_task_id  NUMBER := null /* Amit : Modified for IB4 Progress CR. */
495     ) RETURN DATE ;
496 
497 FUNCTION Get_EARLY_PROGRESS_ENTRY_DATE(
498      p_project_id  NUMBER
499     ,p_object_id   NUMBER
500     ,p_object_type VARCHAR2 := 'PA_TASKS'
501     ,p_structure_type VARCHAR2 := 'WORKPLAN'
502     ,p_task_id  NUMBER := null /* Modified for IB4 Progress CR. */
503     ) RETURN DATE ;
504 
505 FUNCTION latest_published_progress_date(p_project_id      IN    NUMBER
506                         ,p_structure_type IN    VARCHAR2 ) RETURN DATE;
507 
508 FUNCTION check_object_has_prog(
512     ,p_object_type              IN  VARCHAR2:='PA_TASKS'
509     p_project_id                IN  NUMBER  -- FPM Dev CR 7 : Removed defaulting
510         ,p_proj_element_id                      IN      NUMBER := null /* Modified for IB4 Progress CR. */
511         ,p_object_id                            IN      NUMBER -- FPM Dev CR 7 : Removed defaulting
513     ,p_structure_type           IN  VARCHAR2:='WORKPLAN'
514         ,p_progress_status                      IN      VARCHAR2:='ANY'
515     )   RETURN VARCHAR2;
516 
517 --- Following APIs added by Bhumesh
518 
519 Function Prog_Get_Pa_Period_Name (p_Date  IN Date
520 , p_org_id IN NUMBER :=null -- 4746476
521 ) RETURN VARCHAR2 ;
522 
523 Function Prog_Get_GL_Period_Name (P_Date  IN Date
524 , p_org_id IN NUMBER :=null -- 4746476
525 ) RETURN VARCHAR2 ;
526 
527 -- History
528 --  02-aug-04
529 --  Added two params p_structure_version_id and p_structure_status to return base percent complete
530 --  from a working version also.
531 --  This change is done for B and F.
532 
533 Procedure REDEFAULT_BASE_PC    (
534     p_Project_ID        IN NUMBER
535    ,p_Proj_element_id       IN NUMBER
536    ,p_Structure_type        IN VARCHAR2 DEFAULT 'WORKPLAN'
537    ,p_object_type           IN VARCHAR2 DEFAULT 'PA_TASKS'
538    ,p_As_Of_Date        IN DATE
539    ,p_structure_version_id      IN NUMBER    DEFAULT null
540    ,p_structure_status          IN VARCHAR2  DEFAULT null
541    ,p_calling_context           IN VARCHAR2  DEFAULT 'PROGRESS'
542    ,X_base_percent_complete OUT NOCOPY NUMBER --File.Sql.39 bug 4440895
543    ,x_return_status             OUT NOCOPY VARCHAR2 --File.Sql.39 bug 4440895
544    ,x_msg_count                 OUT NOCOPY NUMBER --File.Sql.39 bug 4440895
545    ,x_msg_data                  OUT NOCOPY VARCHAR2 --File.Sql.39 bug 4440895
546 );
547 
548 Procedure RECALCULATE_PROG_STATS (
549     p_project_id        IN NUMBER
550    ,p_proj_element_id       IN NUMBER
551    ,p_task_version_id       IN NUMBER
552    ,p_structure_type        IN VARCHAR2 DEFAULT 'WORKPLAN'
553    ,p_As_Of_Date        IN DATE
554    ,P_Overide_Percent_Complete  IN NUMBER
555    ,p_Actual_Effort     IN NUMBER
556    ,p_Actual_Cost       IN NUMBER
557    ,p_Planned_Effort        IN NUMBER
558    ,p_Planned_Cost      IN NUMBER
559    ,p_baselined_Effort      IN NUMBER
560    ,p_baselined_Cost        IN NUMBER
561    ,x_BCWS          OUT NOCOPY NUMBER --File.Sql.39 bug 4440895
562    ,X_BCWP          OUT NOCOPY NUMBER --File.Sql.39 bug 4440895
563    ,X_SCH_Performance_Index OUT NOCOPY NUMBER --File.Sql.39 bug 4440895
564    ,X_COST_Performance_Index    OUT NOCOPY NUMBER --File.Sql.39 bug 4440895
565    ,x_Sch_At_Completion     OUT NOCOPY DATE  --File.Sql.39 bug 4440895
566    ,x_Complete_Performance_Index OUT NOCOPY NUMBER  --File.Sql.39 bug 4440895
567    ,x_return_status             OUT NOCOPY VARCHAR2 --File.Sql.39 bug 4440895
568    ,x_msg_count                 OUT NOCOPY NUMBER --File.Sql.39 bug 4440895
569    ,x_msg_data                  OUT NOCOPY VARCHAR2 --File.Sql.39 bug 4440895
570 );
571 
572 Procedure DEF_DATES_FROM_RESOURCES (
573     p_project_id        IN NUMBER
574    ,p_proj_element_id       IN NUMBER
575    ,p_structure_type        IN VARCHAR2 DEFAULT 'WORKPLAN'
576    ,p_As_Of_Date        IN DATE
577    ,x_Actual_Start_Date     OUT NOCOPY DATE --File.Sql.39 bug 4440895
578    ,x_Actual_Finish_Date    OUT NOCOPY DATE --File.Sql.39 bug 4440895
579    ,x_Estimated_Start_Date  OUT NOCOPY DATE --File.Sql.39 bug 4440895
580    ,x_Estimated_Finish_Date OUT NOCOPY DATE --File.Sql.39 bug 4440895
581    ,x_return_status             OUT NOCOPY VARCHAR2 --File.Sql.39 bug 4440895
582    ,x_msg_count                 OUT NOCOPY NUMBER --File.Sql.39 bug 4440895
583    ,x_msg_data                  OUT NOCOPY VARCHAR2 --File.Sql.39 bug 4440895
584 );
585 
586 FUNCTION check_actuals_allowed (p_project_id     IN NUMBER
587                                ,p_structure_type IN VARCHAR2 := 'WORKPLAN') RETURN VARCHAR2;
588 
589 -- Progress Management Changes Bug # 3420093.
590 
591 FUNCTION get_bcws (p_project_id                 IN NUMBER
592                   ,p_object_id                  IN NUMBER
593                   ,p_proj_element_id            IN NUMBER
594                   ,p_as_of_date                 IN DATE
595                   ,p_structure_version_id       IN NUMBER   := PA_INTERFACE_UTILS_PUB.G_PA_MISS_NUM
596                   ,p_rollup_method              IN VARCHAR2 := PA_INTERFACE_UTILS_PUB.G_PA_MISS_CHAR
597                   ,p_scheduled_start_date       IN DATE := PA_INTERFACE_UTILS_PUB.G_PA_MISS_DATE
598                   ,p_scheduled_end_date         IN DATE := PA_INTERFACE_UTILS_PUB.G_PA_MISS_DATE
599           ,p_prj_currency_code          IN VARCHAR2 := null           --bug 3824042
600           ,p_structure_type             IN VARCHAR2 := 'WORKPLAN'   --maansari4/10
601           ) RETURN NUMBER;
602 
603 FUNCTION get_latest_ass_prog_date(p_project_id      IN  NUMBER
604                  ,p_structure_type  IN  VARCHAR2
605                  ,p_object_id       IN  NUMBER
606                  ,p_object_type     IN  VARCHAR2
607         ,p_task_id     IN      NUMBER := null /* Modified for IB4 Progress CR. */) RETURN DATE;
608 
609 --- End of addding new APIs
610 
611 FUNCTION get_resource_list_id ( p_resource_list_member_id NUMBER) RETURN NUMBER;
612 
613 
614 function get_max_rollup_asofdate2(p_project_id   IN  NUMBER,
615                                  p_object_id    IN  NUMBER,
616                                  p_object_type  IN  VARCHAR2,
620                                  ) return date;
617                  p_structure_type IN VARCHAR2 := 'WORKPLAN', -- FPM Dev CR 3
618                  p_structure_version_id IN NUMBER := NULL -- FPM Dev CR 4
619                  ,p_proj_element_id IN NUMBER  := null /* Modified for IB4 Progress CR. */
621 
622 procedure set_prog_as_of_Date(p_project_id   IN NUMBER,
623                               p_task_id      IN NUMBER,
624                               p_as_of_date   IN DATE default to_date(null),
625                   p_object_id    IN NUMBER := null, -- Bug 3974627
626                   p_object_type  IN VARCHAR2 := 'PA_TASKS' -- Bug 3974627
627                   );
628 
629 function get_prog_asofdate return date;
630 PRAGMA RESTRICT_REFERENCES(get_prog_asofdate, WNDS, WNPS);
631 
632 --The following api is used to render cost region on Task progress Details -summary page
633 
634 --bug 4085786, changed the signature
635 --function check_workplan_cost ( p_project_id   NUMBER) RETURN VARCHAR2;
636 function check_workplan_cost ( p_project_id IN NUMBER,
637                    p_task_id    IN NUMBER   := NULL,
638                    p_object_id  IN NUMBER   := NULL,
639                    p_object_type    IN VARCHAR2 := 'PA_TASKS',
640                    p_structure_version_id IN NUMBER := NULL
641                  )  RETURN VARCHAR2;
642 
643 -- Progress Management Changes. Bug # 3420093.
644 
645 procedure get_actuals_for_task(p_project_id             IN      NUMBER
646                               ,p_wp_task_id             IN      NUMBER
647                   ,p_res_list_mem_id    IN  NUMBER
648                               ,p_as_of_date             IN      DATE
649                               ,x_planned_work_qty       OUT     NOCOPY NUMBER --File.Sql.39 bug 4440895
650                               ,x_actual_work_qty        OUT     NOCOPY NUMBER --File.Sql.39 bug 4440895
651                               ,x_ppl_act_cost_pc        OUT     NOCOPY NUMBER --File.Sql.39 bug 4440895
652                               ,x_eqpmt_act_cost_pc      OUT     NOCOPY NUMBER --File.Sql.39 bug 4440895
653                               ,x_oth_act_cost_pc        OUT     NOCOPY NUMBER --File.Sql.39 bug 4440895
654                               ,x_ppl_act_cost_fc        OUT     NOCOPY NUMBER --File.Sql.39 bug 4440895
655                               ,x_eqpmt_act_cost_fc      OUT     NOCOPY NUMBER --File.Sql.39 bug 4440895
656                               ,x_oth_act_cost_fc        OUT     NOCOPY NUMBER --File.Sql.39 bug 4440895
657                   ,x_act_labor_effort   OUT NOCOPY NUMBER --File.Sql.39 bug 4440895
658                   ,x_act_eqpmt_effort   OUT NOCOPY NUMBER --File.Sql.39 bug 4440895
659                   ,x_unit_of_measure        OUT     NOCOPY VARCHAR2 --File.Sql.39 bug 4440895
660                       ,x_txn_currency_code  OUT NOCOPY VARCHAR2 --File.Sql.39 bug 4440895
661                               ,x_ppl_act_cost_tc        OUT     NOCOPY NUMBER --File.Sql.39 bug 4440895
662                               ,x_eqpmt_act_cost_tc      OUT     NOCOPY NUMBER --File.Sql.39 bug 4440895
663                               ,x_oth_act_cost_tc        OUT     NOCOPY NUMBER --File.Sql.39 bug 4440895
664                               ,x_ppl_act_rawcost_pc        OUT     NOCOPY NUMBER --File.Sql.39 bug 4440895
665                               ,x_eqpmt_act_rawcost_pc      OUT     NOCOPY NUMBER --File.Sql.39 bug 4440895
666                               ,x_oth_act_rawcost_pc        OUT     NOCOPY NUMBER --File.Sql.39 bug 4440895
667                               ,x_ppl_act_rawcost_fc        OUT     NOCOPY NUMBER --File.Sql.39 bug 4440895
668                               ,x_eqpmt_act_rawcost_fc      OUT     NOCOPY NUMBER --File.Sql.39 bug 4440895
669                               ,x_oth_act_rawcost_fc        OUT     NOCOPY NUMBER --File.Sql.39 bug 4440895
670                               ,x_ppl_act_rawcost_tc        OUT     NOCOPY NUMBER --File.Sql.39 bug 4440895
671                               ,x_eqpmt_act_rawcost_tc      OUT     NOCOPY NUMBER --File.Sql.39 bug 4440895
672                               ,x_oth_act_rawcost_tc        OUT     NOCOPY NUMBER --File.Sql.39 bug 4440895
673                   ,x_oth_quantity          OUT     NOCOPY NUMBER --File.Sql.39 bug 4440895
674                               ,x_return_status          OUT     NOCOPY VARCHAR2 --File.Sql.39 bug 4440895
675                               ,x_msg_count              OUT     NOCOPY NUMBER --File.Sql.39 bug 4440895
676                               ,x_msg_data               OUT     NOCOPY VARCHAR2); --File.Sql.39 bug 4440895
677 
678 -- Progress Management Changes. Bug # 3420093.
679 
680 FUNCTION wp_task_ver_id_for_fin_task_id(p_project_id NUMBER, p_fin_task_id NUMBER) return NUMBER;
681 /* Bug 3595585 : Added the following procedure */
682 FUNCTION get_last_etc_effort(
683      p_project_id   NUMBER
684     ,p_object_id   NUMBER
685     ,p_object_type VARCHAR2
686     ,p_as_of_date  DATE
687     ,p_structure_type VARCHAR2 := 'WORKPLAN'
688     ,p_proj_element_id NUMBER := null /* Modified for IB4 Progress CR. */
689 ) RETURN NUMBER;
690 
691 /* Bug 3595585 : Added the following procedure */
692 FUNCTION get_last_etc_cost(
693      p_project_id   NUMBER
694     ,p_object_id   NUMBER
695     ,p_object_type VARCHAR2
696     ,p_as_of_date  DATE
697     ,p_structure_type VARCHAR2 := 'WORKPLAN'
698     ,p_proj_element_id NUMBER := null /* Modified for IB4 Progress CR. */
699 ) RETURN NUMBER;
700 
701 /* Bug 3595585 : Added the following procedure */
702 -- Bug 3621404 : Added burden parameters
703 PROCEDURE get_last_etc_all(p_project_id             IN      NUMBER
704                               ,p_object_id      IN      NUMBER
705                               ,p_object_type            IN      VARCHAR2
709                               ,x_etc_prj_raw_cost_last_subm OUT     NOCOPY NUMBER --File.Sql.39 bug 4440895
706                               ,p_as_of_date     IN  DATE
707                               ,p_structure_type     IN  VARCHAR2    := 'WORKPLAN'
708                               ,x_etc_txn_raw_cost_last_subm OUT     NOCOPY NUMBER --File.Sql.39 bug 4440895
710                               ,x_etc_pfc_raw_cost_last_subm OUT     NOCOPY NUMBER --File.Sql.39 bug 4440895
711                               ,x_etc_txn_bur_cost_last_subm OUT     NOCOPY NUMBER --File.Sql.39 bug 4440895
712                               ,x_etc_prj_bur_cost_last_subm OUT     NOCOPY NUMBER --File.Sql.39 bug 4440895
713                               ,x_etc_pfc_bur_cost_last_subm OUT     NOCOPY NUMBER --File.Sql.39 bug 4440895
714                               ,x_etc_effort_last_subm   OUT     NOCOPY NUMBER --File.Sql.39 bug 4440895
715                               ,x_return_status          OUT     NOCOPY VARCHAR2 --File.Sql.39 bug 4440895
716                               ,x_msg_count              OUT     NOCOPY NUMBER --File.Sql.39 bug 4440895
717                               ,x_msg_data               OUT     NOCOPY VARCHAR2 --File.Sql.39 bug 4440895
718             ,p_proj_element_id        IN      NUMBER := null /* Modified for IB4 Progress CR. */
719           ,p_resource_class_code IN VARCHAR2    := 'PEOPLE' -- Bug 3836485
720             );
721 
722 function sum_etc_values(
723      p_planned_value        NUMBER := null
724      ,p_ppl_etc_value       NUMBER := null
725      ,p_eqpmt_etc_value     NUMBER := null
726      ,p_oth_etc_value       NUMBER := null
727      ,p_subprj_ppl_etc_value    NUMBER := null
728      ,p_subprj_eqpmt_etc_value  NUMBER := null
729      ,p_subprj_oth_etc_value    NUMBER := null
730      ,p_oth_etc_quantity        NUMBER := null
731      ,p_actual_value            NUMBER := null
732      ,p_mode                    VARCHAR2 := 'PUBLISH'
733 )return number;
734 
735 
736 -- Progress Management Changes. Bug # 3621404.
737 
738 FUNCTION get_act_rawcost_this_period (p_as_of_date        IN     DATE
739                                      ,p_project_id        IN     NUMBER
740                                      ,p_object_id         IN     NUMBER
741                                      ,p_object_version_id IN     NUMBER
742        ,p_proj_element_id      IN     NUMBER := null /* Modified for IB4 Progress CR. */) return NUMBER;
743 
744 
745 -- Progress Management Changes. Bug # 3621404.
746 
747 FUNCTION get_act_txn_rawcost_thisperiod (p_as_of_date        IN     DATE
748                                         ,p_project_id        IN     NUMBER
749                                         ,p_object_id         IN     NUMBER
750                                         ,p_object_version_id IN     NUMBER
751        ,p_proj_element_id      IN     NUMBER := null /* Modified for IB4 Progress CR. */) return NUMBER;
752 
753 
754 -- Progress Management Changes. Bug # 3621404.
755 
756 FUNCTION get_act_pfn_rawcost_thisperiod (p_as_of_date        IN     DATE
757                                         ,p_project_id        IN     NUMBER
758                                         ,p_object_id         IN     NUMBER
759                                         ,p_object_version_id IN     NUMBER
760       ,p_proj_element_id      IN     NUMBER := null /* Modified for IB4 Progress CR. */) return NUMBER;
761 
762 
763 -- Bug 3621404 : Added Get_Res_Rate_Burden_Multiplier
764 Procedure Get_Res_Rate_Burden_Multiplier(P_res_list_mem_id      IN  NUMBER
765                                 ,P_project_id           IN  NUMBER
766                 ,P_task_id                      IN  NUMBER := null     --bug 3860575
767                                 ,p_as_of_date                   IN  DATE   := null     --bug 3901289
768                                 --maansari6/14 bug 3686920
769                                 ,p_structure_version_id IN NUMBER   default null
770                                 ,p_currency_code        IN  VARCHAR2 default null
771                                 --maansari6/14 bug 3686920
772                                 ,p_init_msg_list        IN  VARCHAR2        := FND_API.G_FALSE
773                 ,p_calling_mode                 IN  VARCHAR2        := 'ACTUAL_RATES' -- Bug 3627315
774             --  ,P_dummy_override_raw_cost  IN  NUMBER Bug 3632946
775             --  ,P_override_txn_currency_code   IN  VARCHAR2 Bug 3632946
776                 ,x_resource_curr_code           OUT NOCOPY VARCHAR2
777                                 ,x_resource_raw_rate            OUT NOCOPY NUMBER
778                                 ,x_resource_burden_rate         OUT NOCOPY NUMBER
779             --  ,X_dummy_burden_cost            OUT NOCOPY NUMBER Bug 3632946
780                 ,X_burden_multiplier            OUT NOCOPY NUMBER
781                                 ,x_return_status                OUT  NOCOPY VARCHAR2       --File.Sql.39 bug 4440895
782                                 ,x_msg_count                    OUT  NOCOPY NUMBER         --File.Sql.39 bug 4440895
783                                 ,x_msg_data                     OUT  NOCOPY VARCHAR2  --File.Sql.39 bug 4440895
784                        );
785 
786 -- Bug 3621404 : Raw Cost Changes, Added this procedure
787 PROCEDURE get_all_amounts_cumulative
788     (p_project_id       IN     NUMBER
789     ,p_object_id        IN     NUMBER
790     ,p_object_type          IN     VARCHAR2
791         ,p_structure_version_id IN     NUMBER := NULL -- Do not pass if published structure version
792     ,p_as_of_date           IN     DATE   := NULL -- Must pass if published structure version
793     ,x_act_bur_cost_tc  OUT    NOCOPY NUMBER --File.Sql.39 bug 4440895
794     ,x_act_bur_cost_pc  OUT    NOCOPY NUMBER --File.Sql.39 bug 4440895
795     ,x_act_bur_cost_fc  OUT    NOCOPY NUMBER --File.Sql.39 bug 4440895
796     ,x_act_raw_cost_tc  OUT    NOCOPY NUMBER --File.Sql.39 bug 4440895
797     ,x_act_raw_cost_pc  OUT    NOCOPY NUMBER --File.Sql.39 bug 4440895
798     ,x_act_raw_cost_fc  OUT    NOCOPY NUMBER --File.Sql.39 bug 4440895
799     ,x_etc_bur_cost_tc  OUT    NOCOPY NUMBER --File.Sql.39 bug 4440895
800     ,x_etc_bur_cost_pc  OUT    NOCOPY NUMBER --File.Sql.39 bug 4440895
801     ,x_etc_bur_cost_fc  OUT    NOCOPY NUMBER --File.Sql.39 bug 4440895
802     ,x_etc_raw_cost_tc  OUT    NOCOPY NUMBER --File.Sql.39 bug 4440895
803     ,x_etc_raw_cost_pc  OUT    NOCOPY NUMBER --File.Sql.39 bug 4440895
804     ,x_etc_raw_cost_fc  OUT    NOCOPY NUMBER --File.Sql.39 bug 4440895
805     ,x_act_effort       OUT    NOCOPY NUMBER --File.Sql.39 bug 4440895
806     ,x_etc_effort       OUT    NOCOPY NUMBER --File.Sql.39 bug 4440895
807         ,x_return_status        OUT    NOCOPY VARCHAR2       --File.Sql.39 bug 4440895
808         ,x_msg_count            OUT    NOCOPY NUMBER         --File.Sql.39 bug 4440895
809         ,x_msg_data             OUT    NOCOPY VARCHAR2 --File.Sql.39 bug 4440895
810     ,p_proj_element_id      IN     NUMBER := null /* Modified for IB4 Progress CR. */
811     );
812 
813 -- Progress Management Changes. Bug # 3621404.
814 
815 function derive_etc_values(
816      p_planned_value        NUMBER := null
817      ,p_ppl_act_value       NUMBER := null
818      ,p_eqpmt_act_value     NUMBER := null
819      ,p_oth_act_value       NUMBER := null
820      ,p_subprj_ppl_act_value    NUMBER := null
821      ,p_subprj_eqpmt_act_value  NUMBER := null
822      ,p_subprj_oth_act_value    NUMBER := null
823      ,p_oth_quantity_to_date    NUMBER := null
824 )return number;
825 
826 -- Bug 3633293 : Added check_deliverable_exists
827 FUNCTION check_deliverable_exists(
828      p_project_id   NUMBER
829     ,p_object_id    NUMBER
830  ) RETURN VARCHAR2 ;
831 
832 -- Bug 3651781 : Added published_dlv_prog_exists
833 function published_dlv_prog_exists
834 (
835  p_project_id        PA_PROJECTS_ALL.PROJECT_ID%TYPE
836  ,p_dlv_proj_elt_id  PA_PROJ_ELEMENTS.PROJ_ELEMENT_ID%TYPE
837 ) RETURN VARCHAR2 ;
838 
839 
840 --Added for performance improvements.
841 g_structure_version_id NUMBER;
842 procedure set_global_str_ver_id(p_structure_version_id NUMBER);
843 function get_global_str_ver_id RETURN NUMBER;
844 
845 g_time_phase_period_name VARCHAR2(150);
846 procedure set_global_time_phase_period(p_period_name VARCHAR2);
847 function get_global_time_phase_period RETURN VARCHAR2;
848 
849 -- Added following two functions for bug 3709439
850 FUNCTION Percent_Spent_Value
851 (
852   p_actual_value       NUMBER
853  ,p_planned_value      NUMBER
854 ) RETURN NUMBER ;
855 
856 FUNCTION Percent_Complete_Value
857 (
858   p_actual_value       NUMBER
859  ,p_etc_value          NUMBER
860 ) RETURN NUMBER ;
861 
862 -- Bug 3784324 : Added procedure convert_effort_to_cost
863 PROCEDURE convert_effort_to_cost
864 (   p_resource_list_mem_id        IN  NUMBER
865     ,p_project_id                 IN  NUMBER
866     ,p_structure_version_id       IN  NUMBER
867     ,p_txn_currency_code              IN  VARCHAR
868     ,p_planned_effort             IN  NUMBER
869     ,p_planned_rawcost_tc         IN  NUMBER
870     ,p_act_effort_this_period     IN  NUMBER
871     ,p_act_effort                 IN  NUMBER
872     ,p_etc_effort                 IN  NUMBER
873     ,p_rate_based_flag            IN  VARCHAR := 'Y'
874     ,p_act_rawcost_tc             IN  NUMBER
875     ,x_act_rawcost_tc_this_period IN OUT NOCOPY NUMBER    --File.Sql.39 bug 4440895
876     ,x_etc_rawcost_tc             IN OUT NOCOPY NUMBER --File.Sql.39 bug 4440895
877     ,x_prcnt_comp_effort          OUT NOCOPY NUMBER --File.Sql.39 bug 4440895
878     ,x_prcnt_spent_effort         OUT NOCOPY NUMBER --File.Sql.39 bug 4440895
879     ,x_eac_effort                 OUT NOCOPY NUMBER --File.Sql.39 bug 4440895
880     ,x_prcnt_comp_rawcost_tc      OUT NOCOPY NUMBER --File.Sql.39 bug 4440895
881     ,x_prcnt_spent_rawcost_tc     OUT NOCOPY NUMBER --File.Sql.39 bug 4440895
882     ,x_eac_rawcost_tc             OUT NOCOPY NUMBER --File.Sql.39 bug 4440895
883     ,x_return_status          OUT    NOCOPY VARCHAR2       --File.Sql.39 bug 4440895
884     ,x_msg_count          OUT    NOCOPY NUMBER         --File.Sql.39 bug 4440895
885     ,x_msg_data           OUT    NOCOPY VARCHAR2 --File.Sql.39 bug 4440895
886 );
887 --BUG 3815202, rtarway
891  ,p_as_of_date       Date
888 FUNCTION get_last_published_perc_comp(
889   p_project_id       NUMBER
890  ,p_object_id        NUMBER
892  ,p_object_type      VARCHAR2
893 ) RETURN NUMBER ;
894 
895 /* Bug # 3861344: Created API: return_start_end_date(). */
896 
897 Function return_start_end_date(
898 p_scheduled_date        DATE            := NULL
899 ,p_baselined_date       DATE            := NULL
900 ,p_project_id           NUMBER
901 ,p_proj_element_id      NUMBER
902 ,p_object_type          VARCHAR2        := 'PA_TASKS'
903 ,p_start_end_flag       VARCHAR2        := 'S'
904 ) return date;
905 
906 -- Procedure to be called when applying latest progress to / publishing the working workplan version.
907 PROCEDURE check_txn_currency_diff
908 (
909     p_structure_version_id IN  NUMBER,
910     p_context              IN  VARCHAR2 DEFAULT 'PUBLISH_STRUCTURE',
911     x_return_status        OUT NOCOPY VARCHAR2 --File.Sql.39 bug 4440895
912 );
913 
914 -- Procedure to be called when updating task assignments for progress related business rules check.
915 PROCEDURE check_prog_for_update_asgmts
916 (
917     p_task_assignment_tbl IN  PA_TASK_ASSIGNMENT_UTILS.l_resource_rec_tbl_type,
918     x_return_status       OUT NOCOPY VARCHAR2 --File.Sql.39 bug 4440895
919 );
920 
921 -- Bug # 3910193: Created API: convert_effort_to_cost_brdn_pc().
922 
923 PROCEDURE convert_effort_to_cost_brdn_pc
924 (   p_resource_list_mem_id        IN                      NUMBER
925     ,p_project_id                     IN                      NUMBER
926     ,p_task_id                IN                      NUMBER
927     ,p_as_of_date             IN                      DATE
928     ,p_structure_version_id           IN                      NUMBER
929     ,p_txn_currency_code              IN                      VARCHAR
930     ,p_planned_quantity               IN                      NUMBER
931     ,p_act_quantity_this_period       IN                      NUMBER
932     ,p_act_quantity                   IN                      NUMBER
933     ,p_act_brdncost_pc                IN                      NUMBER
934     ,p_etc_quantity                   IN                      NUMBER
935     ,p_rate_based_flag                IN                      VARCHAR := 'Y'
936     ,x_act_brdncost_pc_this_period    OUT                     NOCOPY NUMBER --File.Sql.39 bug 4440895
937     ,x_etc_brdncost_pc                OUT                     NOCOPY NUMBER --File.Sql.39 bug 4440895
938     ,x_prcnt_comp_quantity            OUT                     NOCOPY NUMBER --File.Sql.39 bug 4440895
939     ,x_prcnt_spent_quantity           OUT                     NOCOPY NUMBER --File.Sql.39 bug 4440895
940     ,x_eac_quantity                   OUT                     NOCOPY NUMBER --File.Sql.39 bug 4440895
941     ,x_prcnt_comp_brdncost_pc         OUT                     NOCOPY NUMBER --File.Sql.39 bug 4440895
942     ,x_prcnt_spent_brdncost_pc        OUT                     NOCOPY NUMBER --File.Sql.39 bug 4440895
943     ,x_eac_brdncost_pc                OUT                     NOCOPY NUMBER --File.Sql.39 bug 4440895
944     ,x_return_status              OUT                     NOCOPY VARCHAR2 --File.Sql.39 bug 4440895
945     ,x_msg_count              OUT                     NOCOPY NUMBER --File.Sql.39 bug 4440895
946     ,x_msg_data               OUT                     NOCOPY VARCHAR2 --File.Sql.39 bug 4440895
947 );
948 
949 function get_actual_summ_date(p_project_id   IN  NUMBER) return date;
950 
951 /* Bug # 3956235: Created API: get_cost_variance(). */
952 
953 Function get_cost_variance(
954         p_project_id                            NUMBER
955         , p_proj_element_id                     NUMBER
956         , p_structure_version_id                NUMBER
957         , p_task_weight_method                  VARCHAR2
958         , p_structure_type                      VARCHAR2 := 'WORKPLAN'
959         , p_base_percent_complete               NUMBER
960         , p_eff_rollup_percent_comp             NUMBER
961         , p_earned_value                        NUMBER
962         , p_oth_act_cost_to_date_pc             NUMBER
963         , p_ppl_act_cost_to_date_pc             NUMBER
964         , p_eqpmt_act_cost_to_date_pc           NUMBER
965         , p_spj_oth_act_cost_to_date_pc         NUMBER
966         , p_spj_ppl_act_cost_pc                 NUMBER
967         , p_spj_eqpmt_act_cost_pc               NUMBER
968 ) return number;
969 
970 -- Begin fix for Bug # 4073659.
971 
972 FUNCTION check_prog_exists_and_delete(
973  p_project_id       NUMBER
974  ,p_task_id         NUMBER
975  ,p_object_type     VARCHAR2 := 'PA_TASKS'
976  ,p_object_id       NUMBER   := null
977  ,p_structure_type  VARCHAR2 := 'WORKPLAN'
978  ,p_delete_progress_flag    VARCHAR2 := 'Y' -- Fix for Bug # 4140984.
979 ) RETURN VARCHAR2;
980 
981 -- End fix for Bug # 4073659.
982 
983 /* Begin fix for bug # 4115607. */
984 
985 FUNCTION get_app_cost_budget_cb_wor_ver(p_project_id NUMBER)
986 return NUMBER;
987 
988 /* End fix for bug # 4115607. */
989 --Bug 5027965. introduced parameter p_etc_cost_calc_mode which  can be either COPY or DERIVE.
990 --If its COPY then
991 ----the etc cost in the current working workplan version will returned. In this case
992 ----the parameter p_budget_version_id will contain the budget version id corresponding to the
993 ----current working workplan version
994 --If its DERIVE then
995 ----the etc cost will be derived based on the rate setup on p_as_of_date
996 ----p_budget_version_id will contain the budget version id corresponding to the latest published
997 ---- workplan version
998 procedure get_plan_costs_for_qty
999 (  p_etc_cost_calc_mode         IN        VARCHAR2 DEFAULT 'DERIVE'   --Bug 5027965
1000   ,p_resource_list_mem_id       IN        NUMBER
1001   ,p_project_id                 IN        NUMBER
1002   ,p_task_id                    IN        NUMBER
1003   ,p_as_of_date                 IN        DATE
1004   ,p_structure_version_id       IN        NUMBER
1005   ,p_txn_currency_code          IN        VARCHAR
1006   ,p_rate_based_flag            IN        VARCHAR := 'Y'
1007   ,p_quantity                   IN        NUMBER
1008   ,p_budget_version_id          IN        NUMBER   ---4372462
1009   ,p_res_assignment_id          IN        NUMBER
1010   ,x_rawcost_tc                 OUT       NOCOPY NUMBER --File.Sql.39 bug 4440895
1011   ,x_brdncost_tc                OUT       NOCOPY NUMBER --File.Sql.39 bug 4440895
1012   ,x_rawcost_pc                 OUT       NOCOPY NUMBER --File.Sql.39 bug 4440895
1013   ,x_brdncost_pc                OUT       NOCOPY NUMBER --File.Sql.39 bug 4440895
1014   ,x_rawcost_fc                 OUT       NOCOPY NUMBER --File.Sql.39 bug 4440895
1015   ,x_brdncost_fc                OUT       NOCOPY NUMBER --File.Sql.39 bug 4440895
1016   ,x_return_status              OUT       NOCOPY VARCHAR2 --File.Sql.39 bug 4440895
1017   ,x_msg_count                  OUT       NOCOPY NUMBER --File.Sql.39 bug 4440895
1018   ,x_msg_data                   OUT       NOCOPY VARCHAR2 --File.Sql.39 bug 4440895
1019 );
1020 
1021 /* Begin Fix for Bug # 4108270.*/
1022 
1023 FUNCTION get_pc_from_sub_tasks_assgn
1024 (p_project_id           NUMBER
1025 ,p_proj_element_id      NUMBER
1026 ,p_structure_version_id     NUMBER
1027 ,p_include_sub_tasks_flag   VARCHAR2 := 'Y'
1028 ,p_structure_type       VARCHAR2 := 'WORKPLAN'
1029 ,p_object_type          VARCHAR2 := 'PA_TASKS'
1030 ,p_as_of_date           DATE := null
1031 ,p_program_flag                 VARCHAR2 := 'Y' -- 4392189 : Program Reporting Changes - Phase 2
1032 )
1033 RETURN NUMBER;
1034 
1035 /* End Fix for Bug # 4108270.*/
1036 
1037 /* Begin fix for Bug # 4185974. */
1038 
1039 FUNCTION get_act_for_prev_asofdate (p_as_of_date         IN     DATE
1040                                 ,p_project_id        IN     NUMBER
1041                                 ,p_object_id         IN     NUMBER
1042                                 ,p_object_version_id IN     NUMBER
1043                     ,p_proj_element_id   IN     NUMBER := null
1044                     ,p_effort_cost_flag  IN VARCHAR2 := 'C'
1045                                     ,p_cost_type_flag    IN     VARCHAR2 := 'B'
1046                                     ,p_currency_flag     IN     VARCHAR2 := 'T') return NUMBER;
1047 
1048 /* End fix for Bug # 4185974. */
1049 
1050 -- Begin fix for Bug # 4319171.
1051 
1052 function calc_act(p_ppl_cost_eff                IN NUMBER := null
1053                   , p_eqpmt_cost_eff            IN NUMBER := null
1054                   , p_oth_cost_eff              IN NUMBER := null
1055                   , p_subprj_ppl_cost_eff       IN NUMBER := null
1056                   , p_subprj_eqpmt_cost_eff     IN NUMBER := null
1057                   , p_subprj_oth_cost_eff       IN NUMBER := null) return NUMBER;
1058 
1059 function calc_etc(p_planned_cost_eff            IN NUMBER := null
1060                   , p_ppl_cost_eff              IN NUMBER := null
1061                   , p_eqpmt_cost_eff            IN NUMBER := null
1062                   , p_oth_cost_eff              IN NUMBER := null
1063                   , p_subprj_ppl_cost_eff       IN NUMBER := null
1064                   , p_subprj_eqpmt_cost_eff     IN NUMBER := null
1065                   , p_subprj_oth_cost_eff       IN NUMBER := null
1066           , p_oth_quantity      IN NUMBER := null
1067                   , p_act_cost_eff              IN NUMBER := null) return NUMBER;
1068 
1069 function calc_wetc(p_planned_cost_eff           IN NUMBER := null
1070                   , p_ppl_cost_eff              IN NUMBER := null
1071                   , p_eqpmt_cost_eff            IN NUMBER := null
1072                   , p_oth_cost_eff              IN NUMBER := null
1073                   , p_subprj_ppl_cost_eff       IN NUMBER := null
1074                   , p_subprj_eqpmt_cost_eff     IN NUMBER := null
1075                   , p_subprj_oth_cost_eff       IN NUMBER := null
1076                   , p_oth_quantity              IN NUMBER := null) return NUMBER;
1077 
1078 function calc_plan(p_ppl_cost_eff                IN NUMBER := null
1079                    , p_eqpmt_cost_eff            IN NUMBER := null
1080                    , p_oth_cost_eff              IN NUMBER := null) return NUMBER;
1081 
1082 -- End fix for Bug # 4319171.
1083 
1084 -- Bug 4490532 Begin
1085 g_self_project_id       NUMBER;
1086 g_self_object_version_id    NUMBER;
1087 g_self_as_of_date       DATE;
1088 g_self_current_flag     VARCHAR2(1);
1089 g_self_rec_version_number   NUMBER;
1090 g_self_act_effort       NUMBER;
1091 g_self_act_cost         NUMBER;
1092 g_self_etc_effort       NUMBER;
1093 g_self_etc_cost         NUMBER;
1094 
1095 function get_self_amounts(p_amount_type         IN VARCHAR2
1096                    , p_structure_sharing_code   IN VARCHAR2
1097                    , p_prg_group                IN NUMBER
1098            , p_project_id       IN NUMBER
1099            , p_object_version_id    IN NUMBER
1100            , p_proj_element_id      IN NUMBER
1101            , p_as_of_date       IN DATE
1102            , p_current_flag     IN VARCHAR2
1103            , p_record_version_number    IN NUMBER
1104            ) return NUMBER;
1105 -- Bug 4490532 End
1106 
1107 -- Bug 4871809, added this function for perf reasons, used in pa_progress_pvt.
1108 function get_w_pub_prupid_asofdate(p_project_id  IN  number,
1109                                          p_object_id   IN  number,
1110                                          p_object_type IN  varchar2,
1111                                          p_task_id     IN  number,
1112                                          p_as_of_date  IN  date,
1113                                          p_chk_task    IN  varchar2 default 'Y') return number;
1114 
1115 function get_w_pub_currflag(p_project_id  IN  number,
1116                             p_object_id   IN  number,
1117                             p_object_type IN  varchar2,
1118                             p_task_id     IN  number,
1119                             p_chk_task    IN  varchar2 default 'N') return varchar2;
1120 
1121 function check_etc_overridden(p_plan_qty    IN   NUMBER,
1122  	                               p_actual_qty  IN   NUMBER,
1123  	                               p_etc_qty     IN   NUMBER) return varchar2;
1124 
1125 function check_ta_has_prog(
1126                            p_project_id IN NUMBER,
1127                            p_proj_element_id IN NUMBER,
1128                            p_element_ver_id IN NUMBER ) return varchar2;
1129 
1130 
1131 --Start changes for Bug 6664716
1132 procedure get_plan_value
1133 (  p_project_id                  IN        NUMBER
1134   ,p_structure_version_id        IN        NUMBER
1135   ,p_element_id                  IN        NUMBER
1136   ,p_as_of_date                  IN        DATE
1137   );
1138 
1139 procedure clear_tmp_tables (p_task_id IN Number Default Null);
1140 --End changes for Bug 6664716
1141 
1142 
1143 -- Bug 7259306
1144 FUNCTION get_def_as_of_date_prog_report(
1145     p_project_id        pa_progress_rollup.project_id%TYPE,
1146     p_proj_element_id   pa_progress_rollup.proj_element_id%TYPE,
1147     p_object_type       pa_progress_rollup.object_type%TYPE := 'PA_TASKS'
1148 ) RETURN DATE;
1149 
1150 -- Bug 7633088
1151 procedure set_override_as_of_date(p_as_of_date IN DATE DEFAULT to_date(NULL));
1152 
1153 
1154 end PA_PROGRESS_UTILS;
1155