DBA Data[Home] [Help]

PACKAGE: APPS.PA_PROJ_ELEMENTS_UTILS

Source


1 PACKAGE PA_PROJ_ELEMENTS_UTILS AS
2 /* $Header: PATSK1US.pls 120.7 2007/02/06 10:08:17 dthakker ship $ */
3 
4 --Global variable to store project id and structure version id
5 g_Struc_Ver_Id NUMBER := NULL;
6 
7 --type sub_task is table of task_rec;
8 
9 PROCEDURE SetGlobalStrucVerId (p_structure_version_id IN NUMBER);
10 
11 FUNCTION GetGlobalStrucVerId RETURN NUMBER;
12 
13 -- 5/13/05: DHI ER: Allowing multiple user to update task assignment
14 --          Added p_require_lock_flag parameter defauled to 'Y'.
15 -- 8/29/05: R12 Bug fix 4533152: Added p_add_error_flag paramter
16 --          defaulted to 'N'.
17 FUNCTION Check_Edit_Task_Ok(p_project_id IN NUMBER,
18                             p_structure_version_id IN NUMBER,
19                             p_curr_struct_version_id IN NUMBER,
20                             p_element_id IN NUMBER := NULL,
21                             p_require_lock_flag IN VARCHAR := 'Y',
22                             p_add_error_flag IN VARCHAR := 'N')
23 RETURN VARCHAR2;
24 
25 PROCEDURE Get_Structure_Attributes(
26     p_element_version_id       NUMBER,
27     p_structure_type_code       VARCHAR2 := 'WORKPLAN',
28     x_task_name                 OUT NOCOPY VARCHAR2, --File.Sql.39 bug 4440895
29     x_task_number               OUT NOCOPY VARCHAR2, --File.Sql.39 bug 4440895
30     x_task_version_id           OUT NOCOPY NUMBER, --File.Sql.39 bug 4440895
31     x_structure_version_name    OUT NOCOPY VARCHAR2, --File.Sql.39 bug 4440895
32     x_structure_version_number  OUT NOCOPY NUMBER, --File.Sql.39 bug 4440895
33     x_structure_name            OUT NOCOPY VARCHAR2, --File.Sql.39 bug 4440895
34     x_structure_number          OUT NOCOPY VARCHAR2, --File.Sql.39 bug 4440895
35     x_structure_id              OUT NOCOPY NUMBER,    --File.Sql.39 bug 4440895
36     x_structure_type_code_name  OUT NOCOPY VARCHAR2, --File.Sql.39 bug 4440895
37     x_structure_version_id      OUT NOCOPY NUMBER, --File.Sql.39 bug 4440895
38     x_project_id                OUT NOCOPY NUMBER --File.Sql.39 bug 4440895
39 );
40 
41 FUNCTION latest_published_ver_id(
42     p_project_id             NUMBER,
43     p_structure_type_code    VARCHAR2 := 'WORKPLAN'
44 ) RETURN NUMBER;
45 
46 
47 -- POST K:Added for Shortcut to get the last updated Workplan version
48 -- API name                      : Get_Last_Upd_Working_Wp_Ver
49 -- Type                          : Utils API
50 -- Pre-reqs                      : None
51 -- Parameters
52 --        p_project_id            IN    REQUIRED  NUMBER
53 --        x_element_version_id    OUT             NUMBER
54 --              x_element_version_name  OUT            VARCHAR2
55 --              x_record_version_number OUT            NUMBER
56 --              x_return_status         OUT            VARCHAR2
57 --              x_msg_count             OUT            NUMBER
58 --              x_msg_data              OUT            VARCHAR2
59 --  History
60 --
61 --  17-APRIL-03   MRAJPUT             -Created
62 Procedure Get_Last_Upd_Working_Wp_Ver(
63       p_project_id            IN   pa_proj_elem_ver_structure.project_id%TYPE
64      ,x_pev_structure_id      OUT  NOCOPY pa_proj_elem_ver_structure.pev_structure_id%TYPE --File.Sql.39 bug 4440895
65      ,x_element_version_id    OUT  NOCOPY pa_proj_elem_ver_structure.element_version_id%TYPE --File.Sql.39 bug 4440895
66      ,x_element_version_name  OUT  NOCOPY pa_proj_elem_ver_structure.name%TYPE --File.Sql.39 bug 4440895
67      ,x_record_version_number OUT  NOCOPY pa_proj_elem_ver_structure.record_version_number%TYPE --File.Sql.39 bug 4440895
68      ,x_return_status         OUT  NOCOPY VARCHAR2 --File.Sql.39 bug 4440895
69      ,x_msg_count             OUT  NOCOPY NUMBER --File.Sql.39 bug 4440895
70      ,x_msg_data              OUT  NOCOPY VARCHAR2); --File.Sql.39 bug 4440895
71 
72 
73 FUNCTION element_has_child(
74     p_structure_version_id NUMBER
75 ) RETURN VARCHAR2;
76 
77 function IS_LOWEST_TASK(p_task_version_id NUMBER) RETURN VARCHAR2;
78 
79   function Check_element_number_Unique
80   (
81     p_element_number                    IN  VARCHAR2
82    ,p_element_id                      IN  NUMBER
83    ,p_project_id                      IN  NUMBER
84    ,p_structure_id                    IN  NUMBER
85    ,p_object_type                     IN  VARCHAR2 := 'PA_TASKS'
86   ) return VARCHAR2;
87 
88   function Check_Struc_Published
89   (
90     p_project_id                        IN  NUMBER
91    ,p_structure_id                      IN  NUMBER
92   ) return VARCHAR2;
93 
94   procedure Check_Delete_task_Ver_Ok
95   (
96     p_project_id                        IN  NUMBER
97    ,p_task_version_id                   IN  NUMBER
98    ,p_parent_structure_ver_id           IN  NUMBER
99    ,p_validation_mode                      IN  VARCHAR2     DEFAULT 'U' --bug 2947492
100    ,x_return_status                     OUT NOCOPY VARCHAR2 --File.Sql.39 bug 4440895
101    ,x_error_message_code                OUT NOCOPY VARCHAR2 --File.Sql.39 bug 4440895
102   );
103 
104   function structure_type(
105     p_structure_version_id NUMBER,
106     p_task_version_id      NUMBER,
107     p_structure_type       VARCHAR2 ) RETURN VARCHAR2;
108 
109  FUNCTION is_summary_task_or_structure( p_element_version_id NUMBER ) RETURN VARCHAR2;
110 
111   procedure Check_Date_range
112   (
113     p_scheduled_start_date    IN   DATE      :=null
114    ,p_scheduled_end_date IN   DATE      :=null
115    ,p_obligation_start_date   IN   DATE       :=null
116    ,p_obligation_end_date     IN   DATE       :=null
117    ,p_actual_start_date        IN  DATE       :=null
118    ,p_actual_finish_date IN   DATE       :=null
119    ,p_estimate_start_date     IN   DATE       :=null
120    ,p_estimate_finish_date    IN   DATE       :=null
121    ,p_early_start_date         IN  DATE      :=null
122    ,p_early_end_date           IN  DATE       :=null
123    ,p_late_start_date          IN  DATE       :=null
124    ,p_late_end_date            IN  DATE       :=null
125    ,x_return_status           OUT   NOCOPY VARCHAR2 --File.Sql.39 bug 4440895
126    ,x_error_message_code      OUT   NOCOPY VARCHAR2 --File.Sql.39 bug 4440895
127   );
128 
129 PROCEDURE Project_Name_Or_Id
130   (
131     p_project_name                      IN  VARCHAR2
132    ,p_project_id                        IN  NUMBER
133    ,p_check_id_flag                     IN  VARCHAR2 := 'Y'
134    ,x_project_id                        OUT  NOCOPY NUMBER --File.Sql.39 bug 4440895
135    ,x_return_status                     OUT  NOCOPY VARCHAR2 --File.Sql.39 bug 4440895
136    ,x_error_msg_code                OUT  NOCOPY VARCHAR2 --File.Sql.39 bug 4440895
137   );
138 
139 PROCEDURE task_Ver_Name_Or_Id
140   (
141     p_task_name                         IN  VARCHAR2
142    ,p_task_version_id                        IN  NUMBER
143    ,p_structure_version_id              IN NUMBER
144    ,p_check_id_flag                     IN  VARCHAR2 := 'Y'
145    ,x_task_version_id                       OUT  NOCOPY NUMBER --File.Sql.39 bug 4440895
146    ,x_return_status                     OUT  NOCOPY VARCHAR2 --File.Sql.39 bug 4440895
147    ,x_error_msg_code                OUT  NOCOPY VARCHAR2 --File.Sql.39 bug 4440895
148   );
149 
150 PROCEDURE UPDATE_WBS_NUMBERS ( p_commit                  IN        VARCHAR2
151                               ,p_debug_mode              IN        VARCHAR2
152                               ,p_parent_structure_ver_id IN        NUMBER
153                               ,p_task_id                 IN        NUMBER
154                               ,p_display_seq             IN        NUMBER
155                               ,p_action                  IN        VARCHAR2
156                               ,p_parent_task_id          IN        NUMBER
157                               ,x_return_status          OUT       NOCOPY VARCHAR2); --File.Sql.39 bug 4440895
158 
159 FUNCTION task_exists_in_struc_ver(
160   p_structure_version_id NUMBER,
161   p_task_version_id      NUMBER ) RETURN VARCHAR2;
162 
163 FUNCTION GET_LINKED_TASK_VERSION_ID(
164     p_cur_element_id                     NUMBER ,
165     p_cur_element_version_id             NUMBER
166 ) RETURN NUMBER;
167 
168 FUNCTION LINK_FLAG( p_element_id NUMBER ) RETURN VARCHAR2;
169 
170 -- API name                      : CHECK_TASK_IN_STRUCTURE
171 -- Type                          : Utils API
172 -- Pre-reqs                      : None
173 -- Return Value                  : Y if task is in structure; N for task in
174 --                                 different struture.
175 --
176 -- Parameters
177 --    p_structure_version_id    IN  NUMBER
178 --    p_task_version_id         IN  NUMBER
179 --
180 --  History
181 --
182 --  09-JAN-02   HSIU             -Created
183 --
184 FUNCTION CHECK_TASK_IN_STRUCTURE(p_structure_version_id NUMBER,
185                                  p_task_version_id NUMBER)
186 RETURN VARCHAR2;
187 
188 
189 FUNCTION GET_DISPLAY_PARENT_VERSION_ID(p_element_version_id NUMBER,
190                                        p_parent_element_version_id NUMBER,
191                                        p_relationship_type VARCHAR2,
192                                        p_link_task_flag VARCHAR2)
193 RETURN NUMBER;
194 
195 
196 FUNCTION IS_ACTIVE_TASK(p_element_version_id NUMBER,
197                         p_object_type VARCHAR2)
198 RETURN VARCHAR2;
199 
200 FUNCTION Get_DAYS_TO_START(p_element_version_id NUMBER,
201                            p_object_type VARCHAR2)
202 RETURN NUMBER;
203 
204 FUNCTION Get_DAYS_TO_FINISH(p_element_version_id NUMBER,
205                             p_object_type VARCHAR2)
206 RETURN NUMBER;
207 
208 FUNCTION GET_PREV_SCH_START_DATE(p_element_version_id NUMBER,
209                                  p_parent_structure_version_id NUMBER)
210 RETURN DATE;
211 
212 FUNCTION GET_PREV_SCH_FINISH_DATE(p_element_version_id NUMBER,
213                                   p_parent_structure_version_id NUMBER)
214 RETURN DATE;
215 
216 FUNCTION CHECK_IS_FINANCIAL_TASK(p_proj_element_id NUMBER)
217 RETURN VARCHAR2;
218 
219 FUNCTION CONVERT_HR_TO_DAYS(p_hour NUMBER)
220 RETURN NUMBER;
221 
222 FUNCTION GET_FND_LOOKUP_MEANING(p_lookup_type VARCHAR2,
223                                 p_lookup_code VARCHAR2)
224 RETURN VARCHAR2;
225 
226 FUNCTION GET_PA_LOOKUP_MEANING(p_lookup_type VARCHAR2,
227                                p_lookup_code VARCHAR2)
228 RETURN VARCHAR2;
229 
230 -- API name                      : GET_DEFAULT_TASK_TYPE_ID
231 -- Type                          : Utils API
232 -- Pre-reqs                      : None
233 -- Return Value                  : Default task type_id
234 --
235 -- Parameters
236 --
237 --  History
238 --
239 --  26-JUL-02   HSIU             -Created
240 --
241   FUNCTION GET_DEFAULT_TASK_TYPE_ID
242     return NUMBER;
243 
244 
245   FUNCTION IS_TASK_TYPE_USED(p_task_type_id IN NUMBER)
246     return VARCHAR2;
247 
248 -- API name                      : GET_LATEST_FIN_PUB_TASK_VER_ID
249 -- Type                          : Utils API
250 -- Pre-reqs                      : None
251 -- Return Value                  : Task version id of the latest financial
252 --                                 published task
253 --
254 -- Parameters
255 --   p_project_id                IN NUMBER
256 --   p_task_id                   IN NUMBER
257 --
258 --  History
259 --
260 --  26-JUL-02   HSIU             -Created
261 --
262   FUNCTION GET_LATEST_FIN_PUB_TASK_VER_ID(
263     p_project_id    IN NUMBER
264    ,p_task_id       IN NUMBER
265   ) return NUMBER;
266 
267 -- API name                      : CHECK_MODIFY_OK_FOR_STATUS
268 -- Type                          : Utils API
269 -- Pre-reqs                      : None
270 -- Return Value                  : Check if this task can be modified with its
271 --                                 current status. Y can be modified, N cannot.
272 --
273 -- Parameters
274 --   p_project_id                IN NUMBER
275 --   p_task_id                   IN NUMBER
276 --
277 --  History
278 --
279 --  26-JUL-02   HSIU             -Created
280 --
281   FUNCTION CHECK_MODIFY_OK_FOR_STATUS(
282     p_project_id    IN NUMBER
283    ,p_task_id       IN NUMBER
284   ) return VARCHAR2;
285 
286 
287 -- API name                      : GET_DISPLAY_SEQUENCE
288 -- Type                          : FUNCTION
289 -- Pre-reqs                      : N/A
290 -- Return Value                  : The display sequence for a given task.
291 --
292 -- Parameters
293 --   p_task_id                   IN NUMBER
294 --
295 --  History
296 --
297 --  16-OCT-02   XXLU             -Created
298 --
299 FUNCTION GET_DISPLAY_SEQUENCE (
300    p_task_id       IN  NUMBER
301 ) RETURN NUMBER;
302 
303 
304   procedure Check_Del_all_task_Ver_Ok
305   (
306     p_project_id                        IN  NUMBER
307    ,p_task_version_id                   IN  NUMBER
308    ,p_parent_structure_ver_id           IN  NUMBER
309    ,x_return_status                     OUT NOCOPY VARCHAR2 --File.Sql.39 bug 4440895
310    ,x_error_message_code                OUT NOCOPY VARCHAR2 --File.Sql.39 bug 4440895
311   );
312 
313   procedure Check_create_subtask_ok
314   ( p_parent_task_ver_id                IN  NUMBER
315    ,x_return_status                     OUT NOCOPY VARCHAR2 --File.Sql.39 bug 4440895
316    ,x_error_message_code                OUT NOCOPY VARCHAR2 --File.Sql.39 bug 4440895
317   );
318 
319   FUNCTION Check_task_stus_action_allowed
320                           (p_task_status_code IN VARCHAR2,
321                            p_action_code      IN VARCHAR2 ) return
322   VARCHAR2;
323 
324 
325 -- hyau new apis for lifecycle changes
326 
327 -- API name                      : CHECK_ELEMENT_HAS_PHASE
328 -- Type                          : FUNCTION
329 -- Pre-reqs                      : N/A
330 -- Return Value                  : 'Y' if the element has a phase associated with it, else returns 'N'.
331 --
332 -- Parameters
333 --   p_proj_element_id            IN NUMBER
334 --
335 --  History
336 --
337 --  30-OCT-02   hyau             -Created
338 --
339 FUNCTION CHECK_ELEMENT_HAS_PHASE (
340    p_proj_element_id       IN  NUMBER
341 ) RETURN VARCHAR2;
342 
343 -- API name                      : IS_TOP_TASK_ACROSS_ALL_VER
344 -- Type                          : FUNCTION
345 -- Pre-reqs                      : N/A
346 -- Return Value                  : 'Y' if the task is a top task across all versions, else returns 'N'.
347 --
348 -- Parameters
349 --   p_proj_element_id            IN NUMBER
350 --
351 --  History
352 --
353 --  30-OCT-02   hyau             -Created
354 --
355 FUNCTION IS_TOP_TASK_ACROSS_ALL_VER(
356    p_proj_element_id       IN  NUMBER
357 ) RETURN VARCHAR2;
358 
359 -- API name                      : CHECK_PHASE_IN_USE
360 -- Type                          : FUNCTION
361 -- Pre-reqs                      : N/A
362 -- Return Value                  : 'Y' if the phase is already used by another task in the structure, else returns 'N'.
363 --
364 -- Parameters
365 --   p_task_id           NUMBER
366 --   phase_version_id    NUMBER
367 --
368 --  History
369 --
370 --  30-OCT-02   hyau             -Created
371 --
372 FUNCTION CHECK_PHASE_IN_USE(
373    p_task_id       IN  NUMBER
374   ,p_phase_version_id  IN NUMBER
375 ) RETURN VARCHAR2;
376 
377 -- end hyau new apis for lifecycle changes
378 
382                                      x_error_message_code OUT NOCOPY VARCHAR2); --File.Sql.39 bug 4440895
379   PROCEDURE Check_Fin_Task_Published(p_project_id IN NUMBER,
380                                      p_task_id IN NUMBER,
381                                      x_return_status OUT NOCOPY VARCHAR2, --File.Sql.39 bug 4440895
383 
384   PROCEDURE check_move_task_ok
385   (
386     p_task_ver_id         IN  NUMBER
387    ,x_return_status       OUT NOCOPY VARCHAR2 --File.Sql.39 bug 4440895
388    ,x_error_message_code  OUT NOCOPY VARCHAR2 --File.Sql.39 bug 4440895
389   );
390 
391 
392   PROCEDURE Check_chg_stat_cancel_ok
393   (
394     p_task_id             IN  NUMBER
395    ,p_task_version_id     IN  NUMBER
396    ,p_new_task_status     IN  VARCHAR2
397    ,x_return_status       OUT NOCOPY VARCHAR2 --File.Sql.39 bug 4440895
398    ,x_error_message_code  OUT NOCOPY VARCHAR2 --File.Sql.39 bug 4440895
399   );
400 
401 FUNCTION get_element_name(p_proj_element_id IN NUMBER) RETURN VARCHAR2;
402 FUNCTION get_element_number(p_proj_element_id IN NUMBER) RETURN VARCHAR2;
403 FUNCTION get_element_name_number(p_proj_element_id IN NUMBER) RETURN VARCHAR2;
404 
405 function check_child_element_exist(p_element_version_id NUMBER) RETURN VARCHAR2;
406 
407 FUNCTION get_task_status_sys_code(p_task_status_code VARCHAR2) RETURN VARCHAR2;
408 
409 FUNCTION get_next_prev_task_id(
410     p_project_id              IN  NUMBER
411    ,p_structure_version_id         IN  NUMBER
412    ,p_display_seq_id          IN  NUMBER
413    ,p_previous_or_next        IN VARCHAR2) RETURN NUMBER;
414 
415 -- Included the API for Post FP K one off. Bug 2931183
416 PROCEDURE GET_STRUCTURE_INFO
417    (  p_project_id                IN   pa_projects_all.project_id%TYPE
418      ,p_structure_type            IN   pa_structure_types.structure_type_class_code%TYPE
419      ,p_structure_id              IN   pa_proj_elements.proj_element_id%TYPE
420      ,p_is_wp_separate_from_fn    IN   VARCHAR2
421      ,p_is_wp_versioning_enabled  IN   VARCHAR2
422      ,x_structure_version_id      OUT  NOCOPY pa_proj_element_versions.element_version_id%TYPE --File.Sql.39 bug 4440895
423      -- The following parameter has been added after review obsoleting get_task_unpub_status_ver_code api.
424      ,x_task_unpub_ver_status_code OUT  NOCOPY pa_proj_element_versions.task_unpub_ver_status_code%TYPE --File.Sql.39 bug 4440895
425      ,x_return_status             OUT  NOCOPY VARCHAR2 --File.Sql.39 bug 4440895
426      ,x_msg_count                 OUT  NOCOPY NUMBER --File.Sql.39 bug 4440895
427      ,x_msg_data                  OUT  NOCOPY VARCHAR2); --File.Sql.39 bug 4440895
428 
429 -- Begin add rtarway FP.M development
430 -- API for checking if a financial task has transaction
431 -- For detailed comment check package body
432 PROCEDURE CHECK_TASK_HAS_TRANSACTION
433    (
434        p_api_version           IN   NUMBER    := 1.0
435      , p_calling_module        IN   VARCHAR2  := 'SELF_SERVICE'
436      , p_debug_mode            IN   VARCHAR2  := 'N'
437      , p_task_id               IN   NUMBER
438      , p_project_id            IN   NUMBER  -- Added for Performance fix 4903460
439      , x_return_status         OUT  NOCOPY VARCHAR2 --File.Sql.39 bug 4440895
440      , x_msg_count             OUT  NOCOPY NUMBER --File.Sql.39 bug 4440895
441      , x_msg_data              OUT  NOCOPY VARCHAR2  --File.Sql.39 bug 4440895
442      , x_error_msg_code        OUT  NOCOPY VARCHAR2 --File.Sql.39 bug 4440895
443      , x_error_code            OUT  NOCOPY NUMBER --File.Sql.39 bug 4440895
444 
445    );
446 --End add rtarway FP.M development
447 
448 function GET_TOP_TASK_ID(
449     p_element_version_id  IN NUMBER) return NUMBER;
450 
451 function GET_TOP_TASK_VER_ID(
452     p_element_version_id  IN NUMBER) return NUMBER;
453 
454 -- This API returns Task Level of WP Tasks
455 function GET_TASK_LEVEL(
456     p_element_version_id  IN NUMBER) return VARCHAR2;
457 
458 -- Added by avaithia : INCLUDED FOR BUG 4156732
459 -- This API returns task level of Financial Tasks
460 -- Please see package body for more details reg. this function
461 function GET_TASK_LEVEL(
462     p_project_id          IN PA_PROJECTS_ALL.PROJECT_ID%TYPE,
463     p_proj_element_id     IN PA_PROJ_ELEMENT_VERSIONS.PROJ_ELEMENT_ID%TYPE) return VARCHAR2;
464 
465 --Added by sabansal
466 --Function to check whether the given task is a workplan task or not
467 function CHECK_IS_WORKPLAN_TASK(p_project_id NUMBER,
468                                 p_proj_element_id NUMBER) RETURN VARCHAR2;
469 --End added by sabansal
470 
471 function GET_PARENT_TASK_ID(
472     p_element_version_id  IN NUMBER) return NUMBER;
473 
474 function GET_PARENT_TASK_VERSION_ID(
475     p_element_version_id  IN NUMBER) return NUMBER;
476 
477 function GET_TASK_VERSION_ID(
478     p_structure_version_id  IN NUMBER
479     ,p_task_id          IN NUMBER) return NUMBER;
480 
481 function GET_RELATIONSHIP_ID(
482     p_object_id_from1  IN NUMBER
483     ,p_object_id_to1   IN NUMBER) return NUMBER;
484 
485 FUNCTION check_task_parents_deliv(p_element_version_id IN number)
486 RETURN VARCHAR2;
487 
488 FUNCTION check_deliv_in_hierarchy(p_element_version_id IN number,
489                                   p_target_element_version_id IN number)
490 RETURN VARCHAR2;
491 
492 FUNCTION check_sharedstruct_deliv(p_element_version_id IN number)
493 RETURN VARCHAR2;
494 
495 FUNCTION IS_WF_PROCESS_RUNNING(p_proj_element_id IN number)
496 RETURN VARCHAR2;
497 
498 FUNCTION GET_ELEMENT_WF_ITEMKEY(p_proj_element_id IN number,
499  p_project_id IN number, p_wf_type_code IN VARCHAR2 := 'TASK_EXECUTION')
500 RETURN VARCHAR2;
501 
502 FUNCTION GET_ELEMENT_WF_STATUS(p_proj_element_id IN number,
503  p_project_id IN number, p_wf_type_code IN VARCHAR2 := 'TASK_EXECUTION')
504 RETURN VARCHAR2;
505 
506 --
507 --  FUNCTION           check_fin_or_wp_structure
508 --  PURPOSE            Checks whether the passed proj_element_id is a WP or FIN structure record
509 --  RETURN VALUE       VARCHAR2 - 'Y' if the passed proj_element_id is of the type WORKPLAN OR FINANCIAL STRUCTURE
510 --                                'N' otherwise.
511 --
512 FUNCTION check_fin_or_wp_structure( p_proj_element_id IN NUMBER ) RETURN VARCHAR2;
513 
514 FUNCTION CHECK_USER_VIEW_TASK_PRIVILEGE
515 (
516     p_project_id IN NUMBER
517 )   RETURN VARCHAR2;
518 --
519 --
520 FUNCTION check_deliv_in_hie_upd(p_task_version_id IN number)
521 RETURN NUMBER;
522 --
523 FUNCTION GET_SUB_TASK_VERSION_ID(p_task_version_id IN number)
524 RETURN NUMBER;
525 --
526 --
527 --  FUNCTION           check_pa_lookup_exists
528 --  PURPOSE            Checks whether the passed lookup_code and value are valid
529 --  RETURN VALUE       VARCHAR2 - 'Y' if the valid
530 --                                'N' otherwise.
531 --
532 Function check_pa_lookup_exists(p_lookup_type VARCHAR2,
533                                 p_lookup_code VARCHAR2)
534 RETURN VARCHAR2;
535 --
536 --
537 --bug 4183307
538 function GET_TASK_ID(
539     p_project_id  IN NUMBER
540     ,p_structure_version_id  IN NUMBER
541     ,p_task_version_id          IN NUMBER) return NUMBER;
542 
543 -- Begin fix for Bug # 4237838.
544 
545 function is_lowest_level_fin_task(p_project_id NUMBER
546 				  , p_task_version_id NUMBER
547 				  , p_include_sub_proj_flag VARCHAR2 := 'Y') -- Fix for Bug # 4290042.
548 return VARCHAR2;
549 -- End fix for Bug # 4237838.
550 
551 -- Bug 4667361: Added this Function
552 FUNCTION WP_STR_EXISTS_FOR_UPG
553  (
554   p_project_id                       IN NUMBER
555  ) RETURN VARCHAR2;
556 
557 -- Bug 4667361: Added this Function
558 FUNCTION CHECK_SHARING_ENABLED_FOR_UPG
559  (
560   p_project_id IN NUMBER
561  ) return VARCHAR2;
562 
563 
564 -- Procedure included for perf fix  4903460
565 ---------------------------------------------
566 -- Does the following validations :
567 ---------------------------------------------
568 -- Check if task has expenditure item
569 -- Check if task has purchase order distribution
570 -- Check if task has purchase order requisition
571 -- Check if task has supplier invoices
572 -- check if task has supplier invoice distribution
573 -- Check if task has commitment transaction
574 -- Check if task has compensation rule set
575 -- Check if task has draft invoices
576 -- Check if task has Project_customers
577 
578 PROCEDURE perform_task_validations
579 (
580  p_project_id     IN  NUMBER,
581  p_task_id        IN  NUMBER,
582  x_error_code     OUT NOCOPY NUMBER,
583  x_error_msg_code OUT NOCOPY VARCHAR2
584  );
585 
586 -- This Function has been included for perf fix  4964992
587 ----------------------------------------------------------------------------------------------------------
588 -- This function returns the entire hierarchy for the
589 -- passed task_id.
590 -- Example: if the task hierarchy is like
591 --	1
592 --	  1.1
593 --	      1.1.1
594 
595 -- When we pass 1's task_id the entire strucutre above is retrieved.
596 
597 FUNCTION get_task_hierarchy(
598 				p_project_id		IN		NUMBER,
599 				p_task_id		IN		NUMBER
600 			   )
601 RETURN sub_task;
602 
603 --Function to check if the given task is the lowest task at the project level
604 --ie If there are linked tasks under the child task in a program then the subproject
605 -- will not be included in the check.
606 function IS_LOWEST_PROJ_TASK( p_task_version_id NUMBER,
607                               p_project_id      Number) RETURN VARCHAR2;
608 
609 
610 END PA_PROJ_ELEMENTS_UTILS;
611