1 PACKAGE BODY PNP_OTH_PROD AS
2 -- $Header: PNOTPRDB.pls 115.2 2002/04/22 18:44:56 pkm ship $
3
4 FUNCTION delete_project (p_project_id IN NUMBER)
5 -------------------------------------------------------------------------------
6 -- FUNCTION
7 -- delete_project
8 --
9 -- PURPOSE
10 -- Function to check project id is being used in Property Manager.
11 --
12 -- DESCRIPTION
13 -- This function checks to see whether passed project id exists in
14 -- PN_PAYMENT_TERMS table or not. If exists then it returns FALSE
15 -- else it returns TRUE.
16 -- This function will be used in Projects Purge program to see if
17 -- a project id is used in Property Manager before purging projects.
18 -- As per their design if a project is being used it should not be purged.
19 --
20 -- ARGUMENTS
21 -- IN : p_project_id
22 -- OUT : None
23 --
24 -- RETURNS
25 -- Boolean (TRUE/FALSE)
26 --
27 -- SCOPE - PUBLIC
28 --
29 -- HISTORY
30 --
31 -- 22-APR-2002 Mrinal Misra o Created.
32 --
33 --------------------------------------------------------------------------------
34 RETURN BOOLEAN IS
35
36 l_flag VARCHAR2(1);
37 l_project_name pa_projects_expend_v.project_name%TYPE;
38
39 CURSOR get_proj_name(p_project_id IN NUMBER) IS
40 SELECT project_name
41 FROM pa_projects_all_basic_v
42 WHERE project_id = p_project_id;
43
44 BEGIN
45
46 OPEN get_proj_name(p_project_id);
47 FETCH get_proj_name INTO l_project_name;
48 CLOSE get_proj_name;
49
50 l_flag := 'N';
51
52 SELECT 'Y'
53 INTO l_flag
54 FROM DUAL
55 WHERE EXISTS(SELECT NULL
56 FROM PN_PAYMENT_TERMS_ALL
57 WHERE (project_id IS NOT NULL AND -- For Payables.
58 project_id = p_project_id)
59 OR (project_attribute3 IS NOT NULL AND -- For Receivables.
60 project_attribute3 = l_project_name));
61
62 IF l_flag = 'Y' THEN
63 RETURN FALSE;
64 ELSE
65 RETURN TRUE;
66 END IF;
67
68 EXCEPTION
69 WHEN NO_DATA_FOUND THEN
70 RETURN TRUE;
71
72 END delete_project;
73
74 END PNP_OTH_PROD;