[Home] [Help]
PACKAGE BODY: APPS.ENG_LIFECYCLE_USER_PUB
Source
1 PACKAGE BODY ENG_LIFECYCLE_USER_PUB AS
2 /* $Header: ENGPLCUB.pls 115.0 2003/02/06 00:22:51 hshou noship $ */
3
4 g_pkg_name CONSTANT VARCHAR2(30) := 'ENG_LIFECYCLE_USER_PUB';
5 g_app_name CONSTANT VARCHAR2(3) := 'ENG';
6 g_current_user_id NUMBER := FND_GLOBAL.User_Id;
7 g_current_login_id NUMBER := FND_GLOBAL.Login_Id;
8 g_validation_error EXCEPTION;
9 g_same_sequence_error EXCEPTION;
10 g_project_assoc_type CONSTANT VARCHAR2(24) := 'ENG_ITEM_PROJ_ASSOC_TYPE';
11 g_lifecycle_tracking_code CONSTANT VARCHAR2(18) := 'LIFECYCLE_TRACKING';
12 g_promote CONSTANT VARCHAR2(7) := 'PROMOTE';
13 g_demote CONSTANT VARCHAR2(6) := 'DEMOTE';
14 g_plsql_err VARCHAR2(17) := 'ENG_PLSQL_ERR';
15 g_pkg_name_token VARCHAR2(8) := 'PKG_NAME';
16 g_api_name_token VARCHAR2(8) := 'API_NAME';
17 g_sql_err_msg_token VARCHAR2(11) := 'SQL_ERR_MSG';
18 g_not_allowed CONSTANT VARCHAR2(11) := 'NOT_ALLOWED';
19
20
21
22 -- Public Procedures
23 ----------------------------------------------------------------------
24 PROCEDURE Check_Delete_Project_OK
25 (
26 p_api_version IN NUMBER
27 , p_project_id IN PA_PROJECTS.PROJECT_ID%TYPE
28 , p_init_msg_list IN VARCHAR2 := fnd_api.g_FALSE
29 , x_delete_ok OUT NOCOPY VARCHAR2
30 , x_return_status OUT NOCOPY VARCHAR2
31 , x_errorcode OUT NOCOPY NUMBER
32 , x_msg_count OUT NOCOPY NUMBER
33 , x_msg_data OUT NOCOPY VARCHAR2
34 )
35 IS
36
37 l_api_version CONSTANT NUMBER := 1.0;
38 l_exist VARCHAR2(1);
39 l_api_name CONSTANT VARCHAR2(30) := 'Check_Delete_Project_OK';
40 l_message VARCHAR2(4000);
41
42 Cursor check_project_used(X_project_id number
43 ) is
44 select 'y'
45 from dual
46 where exists(
47 select null
48 from ENG_ENGINEERING_CHANGES
49 where PROJECT_ID = X_project_id);
50
51 BEGIN
52
53 --Standard checks
54 IF NOT FND_API.Compatible_API_Call (l_api_version
55 ,p_api_version
56 ,l_api_name
57 ,g_pkg_name)
58 THEN
59 RAISE FND_API.G_EXC_UNEXPECTED_ERROR;
60 END IF;
61
62 -- Initialize message list if p_init_msg_list is set to TRUE
63 IF FND_API.To_Boolean(p_init_msg_list) THEN
64 FND_MSG_PUB.Initialize;
65 END IF;
66
67 --Check if there are any projects referred by changes
68 open check_project_used(p_project_id);
69 fetch check_project_used into l_exist;
70 IF check_project_used%found
71 THEN
72 x_delete_ok := FND_API.G_FALSE;
73 l_message := 'ENG_CHNAGE_ASSOCIATED_PROJ';
74 END IF;
75
76 IF (l_message IS NOT NULL)
77 THEN
78 FND_MESSAGE.Set_Name(g_app_name, l_message);
79 FND_MSG_PUB.Add;
80 FND_MSG_PUB.Count_And_Get(
81 p_encoded => FND_API.G_FALSE,
82 p_count => x_msg_count,
83 p_data => x_msg_data
84 );
85 x_return_status := FND_API.G_RET_STS_ERROR;
86 ELSE
87 x_return_status := FND_API.G_RET_STS_SUCCESS;
88 END IF;
89
90 EXCEPTION
91 WHEN OTHERS THEN
92 x_delete_ok := FND_API.G_FALSE;
93 x_return_status := FND_API.G_RET_STS_UNEXP_ERROR;
94 FND_MESSAGE.Set_Name(g_app_name, g_plsql_err);
95 FND_MESSAGE.Set_Token(g_pkg_name_token, g_pkg_name);
96 FND_MESSAGE.Set_Token(g_api_name_token, l_api_name);
97 FND_MESSAGE.Set_Token(g_sql_err_msg_token, SQLERRM);
98 FND_MSG_PUB.Add;
99 FND_MSG_PUB.Count_And_Get(
100 p_encoded => FND_API.G_FALSE,
101 p_count => x_msg_count,
102 p_data => x_msg_data
103 );
104
105 END Check_Delete_Project_OK;
106
107 ----------------------------------------------------------------------
108
109 PROCEDURE Check_Delete_Task_OK
110 (
111 p_api_version IN NUMBER
112 , p_task_id IN PA_TASKS.TASK_ID%TYPE
113 , p_init_msg_list IN VARCHAR2 := fnd_api.g_FALSE
114 , x_delete_ok OUT NOCOPY VARCHAR2
115 , x_return_status OUT NOCOPY VARCHAR2
116 , x_errorcode OUT NOCOPY NUMBER
117 , x_msg_count OUT NOCOPY NUMBER
118 , x_msg_data OUT NOCOPY VARCHAR2
119 )
120 IS
121
122 l_api_version CONSTANT NUMBER := 1.0;
123 l_exist VARCHAR2(1);
124 l_api_name CONSTANT VARCHAR2(30) := 'Check_Delete_Project_OK';
125 l_message VARCHAR2(4000);
126
127 Cursor check_task_used(X_task_id number
128 ) is
129 select 'y'
130 from dual
131 where exists(
132 select null
133 from ENG_ENGINEERING_CHANGES
134 where TASK_ID = X_task_id );
135
136
137 BEGIN
138
139 --Standard checks
140 IF NOT FND_API.Compatible_API_Call (l_api_version
141 ,p_api_version
142 ,l_api_name
143 ,g_pkg_name)
144 THEN
145 RAISE FND_API.G_EXC_UNEXPECTED_ERROR;
146 END IF;
147
148 -- Initialize message list if p_init_msg_list is set to TRUE
149 IF FND_API.To_Boolean(p_init_msg_list) THEN
150 FND_MSG_PUB.Initialize;
151 END IF;
152
153 --Check if there are any projects referred by changes
154 open check_task_used(p_task_id);
155 fetch check_task_used into l_exist;
156 IF check_task_used%found
157 THEN
158 x_delete_ok := FND_API.G_FALSE;
159 l_message := 'ENG_CHNAGE_ASSOCIATED_TASK';
160 END IF;
161
162 IF (l_message IS NOT NULL)
163 THEN
164 FND_MESSAGE.Set_Name(g_app_name, l_message);
165 FND_MSG_PUB.Add;
166 FND_MSG_PUB.Count_And_Get(
167 p_encoded => FND_API.G_FALSE,
168 p_count => x_msg_count,
169 p_data => x_msg_data
170 );
171 x_return_status := FND_API.G_RET_STS_ERROR;
172 ELSE
173 x_return_status := FND_API.G_RET_STS_SUCCESS;
174 END IF;
175
176 EXCEPTION
177 WHEN OTHERS THEN
178 x_delete_ok := FND_API.G_FALSE;
179 x_return_status := FND_API.G_RET_STS_UNEXP_ERROR;
180 FND_MESSAGE.Set_Name(g_app_name, g_plsql_err);
181 FND_MESSAGE.Set_Token(g_pkg_name_token, g_pkg_name);
182 FND_MESSAGE.Set_Token(g_api_name_token, l_api_name);
183 FND_MESSAGE.Set_Token(g_sql_err_msg_token, SQLERRM);
184 FND_MSG_PUB.Add;
185 FND_MSG_PUB.Count_And_Get(
186 p_encoded => FND_API.G_FALSE,
187 p_count => x_msg_count,
188 p_data => x_msg_data
189 );
190
191 END Check_Delete_Task_OK;
192
193
194
195
196 END ENG_LIFECYCLE_USER_PUB;
197