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