DBA Data[Home] [Help]

PACKAGE BODY: APPS.PA_TEAM_TEMPLATES_PKG

Source


1 PACKAGE BODY pa_team_templates_pkg AS
2 /*$Header: PARTPKGB.pls 120.1 2005/08/19 17:01:03 mwasowic noship $*/
3 --
4 P_DEBUG_MODE varchar2(1) := NVL(FND_PROFILE.value('PA_DEBUG_MODE'), 'N');
5 PROCEDURE Insert_Row
6  (p_team_template_name          IN   pa_team_templates.team_template_name%TYPE
7  ,p_description                 IN   pa_team_templates.description%TYPE                  := FND_API.G_MISS_CHAR
8  ,p_start_date_active           IN   pa_team_templates.start_date_active%TYPE
9  ,p_end_date_active             IN   pa_team_templates.end_date_active%TYPE              := FND_API.G_MISS_DATE
10  ,p_calendar_id                 IN   pa_team_templates.calendar_id%TYPE                  := FND_API.G_MISS_NUM
11  ,p_work_type_id                IN   pa_team_templates.work_type_id%TYPE                 := FND_API.G_MISS_NUM
12  ,p_role_list_id                IN   pa_team_templates.role_list_id%TYPE                := FND_API.G_MISS_NUM
13  ,p_team_start_date             IN   pa_team_templates.team_start_date%TYPE
14  ,p_attribute_category          IN   pa_team_templates.attribute_category%TYPE          := FND_API.G_MISS_CHAR
15  ,p_attribute1                  IN   pa_team_templates.attribute1%TYPE                  := FND_API.G_MISS_CHAR
16  ,p_attribute2                  IN   pa_team_templates.attribute2%TYPE                  := FND_API.G_MISS_CHAR
17  ,p_attribute3                  IN   pa_team_templates.attribute3%TYPE                  := FND_API.G_MISS_CHAR
18  ,p_attribute4                  IN   pa_team_templates.attribute4%TYPE                  := FND_API.G_MISS_CHAR
19  ,p_attribute5                  IN   pa_team_templates.attribute5%TYPE                  := FND_API.G_MISS_CHAR
20  ,p_attribute6                  IN   pa_team_templates.attribute6%TYPE                  := FND_API.G_MISS_CHAR
21  ,p_attribute7                  IN   pa_team_templates.attribute7%TYPE                  := FND_API.G_MISS_CHAR
22  ,p_attribute8                  IN   pa_team_templates.attribute8%TYPE                  := FND_API.G_MISS_CHAR
23  ,p_attribute9                  IN   pa_team_templates.attribute9%TYPE                  := FND_API.G_MISS_CHAR
24  ,p_attribute10                 IN   pa_team_templates.attribute10%TYPE                 := FND_API.G_MISS_CHAR
25  ,p_attribute11                 IN   pa_team_templates.attribute11%TYPE                 := FND_API.G_MISS_CHAR
26  ,p_attribute12                 IN   pa_team_templates.attribute12%TYPE                 := FND_API.G_MISS_CHAR
27  ,p_attribute13                 IN   pa_team_templates.attribute13%TYPE                 := FND_API.G_MISS_CHAR
28  ,p_attribute14                 IN   pa_team_templates.attribute14%TYPE                 := FND_API.G_MISS_CHAR
29  ,p_attribute15                 IN   pa_team_templates.attribute15%TYPE                 := FND_API.G_MISS_CHAR
30  ,x_team_template_id            OUT        NOCOPY NUMBER --File.Sql.39 bug 4440895
31  ,x_return_status               OUT        NOCOPY VARCHAR2) --File.Sql.39 bug 4440895
32 IS
33 
34 l_team_template_id    PA_TEAM_TEMPLATES.team_template_id%TYPE;
35 
36 BEGIN
37 
38   -- Initialize the Error Stack
39   PA_DEBUG.set_err_stack('PA_TEAM_TEMPLATE_PKG.Insert_Row');
40 
41   --Log Message
42   IF (P_DEBUG_MODE = 'Y') THEN
43   PA_DEBUG.write_log (x_module      => 'pa.plsql.PA_TEAM_TEMPLATES_PKG.insert_row'
44                      ,x_msg         => 'Beginning of the Team Template insert row'
45                      ,x_log_level   => 5);
46   END IF;
47 
48   x_return_status := FND_API.G_RET_STS_SUCCESS;
49 
50   --Fetch the next sequence number for team template
51   SELECT pa_team_templates_s.NEXTVAL
52   INTO   x_team_template_id
53   FROM   dual;
54 
55   INSERT INTO pa_team_templates
56      (team_template_id
57      ,record_version_number
58      ,team_template_name
59      ,start_date_active
60      ,end_date_active
61      ,description
62      ,role_list_id
63      ,calendar_id
64      ,work_type_id
65      ,team_start_date
66      ,workflow_in_progress_flag
67      ,attribute_category
68      ,attribute1
69      ,attribute2
70      ,attribute3
71      ,attribute4
72      ,attribute5
73      ,attribute6
74      ,attribute7
75      ,attribute8
76      ,attribute9
77      ,attribute10
78      ,attribute11
79      ,attribute12
80      ,attribute13
81      ,attribute14
82      ,attribute15
83      ,creation_date
84      ,created_by
85      ,last_update_date
86      ,last_updated_by
87      ,last_update_login )
88   VALUES(
89       x_team_template_id
90      ,1
91      ,p_team_template_name
92      ,p_start_date_active
93      ,DECODE(p_end_date_active, FND_API.G_MISS_DATE, NULL, p_end_date_active)
94      ,DECODE(p_description, FND_API.G_MISS_CHAR, NULL, p_description)
95      ,DECODE(p_role_list_id, FND_API.G_MISS_NUM, NULL, p_role_list_id)
96      ,DECODE(p_calendar_id, FND_API.G_MISS_NUM, NULL, p_calendar_id)
97      ,DECODE(p_work_type_id, FND_API.G_MISS_NUM, NULL, p_work_type_id)
98      ,p_team_start_date
99      ,'N'
100      ,DECODE(p_attribute_category, FND_API.G_MISS_CHAR, NULL, p_attribute_category)
101      ,DECODE(p_attribute1, FND_API.G_MISS_CHAR, NULL, p_attribute1)
102      ,DECODE(p_attribute2, FND_API.G_MISS_CHAR, NULL, p_attribute2)
103      ,DECODE(p_attribute3, FND_API.G_MISS_CHAR, NULL, p_attribute3)
104      ,DECODE(p_attribute4, FND_API.G_MISS_CHAR, NULL, p_attribute4)
105      ,DECODE(p_attribute5, FND_API.G_MISS_CHAR, NULL, p_attribute5)
106      ,DECODE(p_attribute6, FND_API.G_MISS_CHAR, NULL, p_attribute6)
107      ,DECODE(p_attribute7, FND_API.G_MISS_CHAR, NULL, p_attribute7)
108      ,DECODE(p_attribute8, FND_API.G_MISS_CHAR, NULL, p_attribute8)
109      ,DECODE(p_attribute9, FND_API.G_MISS_CHAR, NULL, p_attribute9)
110      ,DECODE(p_attribute10, FND_API.G_MISS_CHAR, NULL, p_attribute10)
111      ,DECODE(p_attribute11, FND_API.G_MISS_CHAR, NULL, p_attribute11)
112      ,DECODE(p_attribute12, FND_API.G_MISS_CHAR, NULL, p_attribute12)
113      ,DECODE(p_attribute13, FND_API.G_MISS_CHAR, NULL, p_attribute13)
114      ,DECODE(p_attribute14, FND_API.G_MISS_CHAR, NULL, p_attribute14)
115      ,DECODE(p_attribute15, FND_API.G_MISS_CHAR, NULL, p_attribute15)
116      ,sysdate
117      ,fnd_global.user_id
118      ,sysdate
119      ,fnd_global.user_id
120      ,fnd_global.login_id
121      );
122 
123   EXCEPTION
124     WHEN OTHERS THEN -- catch the exceptions here
125         -- Set the exception Message and the stack
126         FND_MSG_PUB.add_exc_msg( p_pkg_name       => 'PA_TEAM_TEMPLATES_PKG.Insert_Row'
127                                  ,p_procedure_name => PA_DEBUG.G_Err_Stack );
128         x_return_status := FND_API.G_RET_STS_UNEXP_ERROR ;
129         RAISE;
130 
131 END Insert_Row;
132 
133 
134 
135 PROCEDURE Update_Row
136  (p_team_template_id            IN   pa_team_templates.team_template_id%TYPE
137  ,p_record_version_number       IN   pa_team_templates.record_version_number%TYPE
138  ,p_team_template_name          IN   pa_team_templates.team_template_name%TYPE           := FND_API.G_MISS_CHAR
139  ,p_description                 IN   pa_team_templates.description%TYPE                  := FND_API.G_MISS_CHAR
140  ,p_start_date_active           IN   pa_team_templates.start_date_active%TYPE            := FND_API.G_MISS_DATE
141  ,p_end_date_active             IN   pa_team_templates.end_date_active%TYPE              := FND_API.G_MISS_DATE
142  ,p_calendar_id                 IN   pa_team_templates.calendar_id%TYPE                  := FND_API.G_MISS_NUM
143  ,p_work_type_id                IN   pa_team_templates.work_type_id%TYPE                 := FND_API.G_MISS_NUM
144  ,p_role_list_id                IN   pa_team_templates.role_list_id%TYPE                 := FND_API.G_MISS_NUM
145  ,p_team_start_date             IN   pa_team_templates.team_start_date%TYPE              := FND_API.G_MISS_DATE
146  ,p_workflow_in_progress_flag   IN   pa_team_templates.workflow_in_progress_flag%TYPE    := FND_API.G_MISS_CHAR
147  ,p_attribute_category          IN   pa_team_templates.attribute_category%TYPE          := FND_API.G_MISS_CHAR
148  ,p_attribute1                  IN   pa_team_templates.attribute1%TYPE                   := FND_API.G_MISS_CHAR
149  ,p_attribute2                  IN   pa_team_templates.attribute2%TYPE                   := FND_API.G_MISS_CHAR
150  ,p_attribute3                  IN   pa_team_templates.attribute3%TYPE                   := FND_API.G_MISS_CHAR
151  ,p_attribute4                  IN   pa_team_templates.attribute4%TYPE                   := FND_API.G_MISS_CHAR
152  ,p_attribute5                  IN   pa_team_templates.attribute5%TYPE                   := FND_API.G_MISS_CHAR
153  ,p_attribute6                  IN   pa_team_templates.attribute6%TYPE                   := FND_API.G_MISS_CHAR
154  ,p_attribute7                  IN   pa_team_templates.attribute7%TYPE                   := FND_API.G_MISS_CHAR
155  ,p_attribute8                  IN   pa_team_templates.attribute8%TYPE                   := FND_API.G_MISS_CHAR
156  ,p_attribute9                  IN   pa_team_templates.attribute9%TYPE                   := FND_API.G_MISS_CHAR
157  ,p_attribute10                 IN   pa_team_templates.attribute10%TYPE                  := FND_API.G_MISS_CHAR
158  ,p_attribute11                 IN   pa_team_templates.attribute11%TYPE                  := FND_API.G_MISS_CHAR
159  ,p_attribute12                 IN   pa_team_templates.attribute12%TYPE                  := FND_API.G_MISS_CHAR
160  ,p_attribute13                 IN   pa_team_templates.attribute13%TYPE                  := FND_API.G_MISS_CHAR
161  ,p_attribute14                 IN   pa_team_templates.attribute14%TYPE                  := FND_API.G_MISS_CHAR
162  ,p_attribute15                 IN   pa_team_templates.attribute15%TYPE                  := FND_API.G_MISS_CHAR
163  ,x_return_status               OUT  NOCOPY VARCHAR2 --File.Sql.39 bug 4440895
164 )
165 IS
166 
167 l_record_version_number         pa_team_templates.record_version_number%TYPE;
168 
169 BEGIN
170 
171   -- Initialize the Error Stack
172   PA_DEBUG.set_err_stack('PA_TEAM_TEMPLATE_PKG.Update_Row');
173 
174   --Log Message
175   IF (P_DEBUG_MODE = 'Y') THEN
176   PA_DEBUG.write_log (x_module      => 'pa.plsql.PA_TEAM_TEMPLATES_PKG.Update_Row'
177                      ,x_msg         => 'Beginning of the Team Template update row'
178                      ,x_log_level   => 5);
179   END IF;
180 
181   x_return_status := FND_API.G_RET_STS_SUCCESS;
182 
183   l_record_version_number := p_record_version_number +1;
184 
185   UPDATE pa_team_templates
186   SET team_template_name      = DECODE(p_team_template_name, FND_API.G_MISS_CHAR, team_template_name, p_team_template_name)
187      ,record_version_number   = l_record_version_number
188      ,start_date_active       = DECODE(p_start_date_active, FND_API.G_MISS_DATE, start_date_active, p_start_date_active)
189      ,end_date_active         = DECODE(p_end_date_active, FND_API.G_MISS_DATE, end_date_active, p_end_date_active)
190      ,description             = DECODE(p_description, FND_API.G_MISS_CHAR, description, p_description)
191      ,role_list_id            = DECODE(p_role_list_id, FND_API.G_MISS_NUM, role_list_id, p_role_list_id)
192      ,calendar_id             = DECODE(p_calendar_id, FND_API.G_MISS_NUM, calendar_id, p_calendar_id)
193      ,work_type_id            = DECODE(p_work_type_id, FND_API.G_MISS_NUM, work_type_id, p_work_type_id)
194      ,team_start_date         = DECODE(p_team_start_date, FND_API.G_MISS_DATE, team_start_date, p_team_start_date)
195      ,workflow_in_progress_flag = DECODE(p_workflow_in_progress_flag, FND_API.G_MISS_CHAR, workflow_in_progress_flag, p_workflow_in_progress_flag)
196      ,attribute_category          = DECODE(p_attribute_category, FND_API.G_MISS_CHAR, attribute_category, p_attribute_category)
197      ,attribute1                  = DECODE(p_attribute1, FND_API.G_MISS_CHAR, attribute1, p_attribute1)
198      ,attribute2                  = DECODE(p_attribute2, FND_API.G_MISS_CHAR, attribute2, p_attribute2)
199      ,attribute3                  = DECODE(p_attribute3, FND_API.G_MISS_CHAR, attribute3, p_attribute3)
200      ,attribute4                  = DECODE(p_attribute4, FND_API.G_MISS_CHAR, attribute4, p_attribute4)
201      ,attribute5                  = DECODE(p_attribute5, FND_API.G_MISS_CHAR, attribute5, p_attribute5)
202      ,attribute6                  = DECODE(p_attribute6, FND_API.G_MISS_CHAR, attribute6, p_attribute6)
203      ,attribute7                  = DECODE(p_attribute7, FND_API.G_MISS_CHAR, attribute7, p_attribute7)
204      ,attribute8                  = DECODE(p_attribute8, FND_API.G_MISS_CHAR, attribute8, p_attribute8)
205      ,attribute9                  = DECODE(p_attribute9, FND_API.G_MISS_CHAR, attribute9, p_attribute9)
206      ,attribute10                 = DECODE(p_attribute10, FND_API.G_MISS_CHAR, attribute10, p_attribute10)
207      ,attribute11                 = DECODE(p_attribute11, FND_API.G_MISS_CHAR, attribute11, p_attribute11)
208      ,attribute12                 = DECODE(p_attribute12, FND_API.G_MISS_CHAR, attribute12, p_attribute12)
209      ,attribute13                 = DECODE(p_attribute13, FND_API.G_MISS_CHAR, attribute13, p_attribute13)
210      ,attribute14                 = DECODE(p_attribute14, FND_API.G_MISS_CHAR, attribute14, p_attribute14)
211      ,attribute15                 = DECODE(p_attribute15, FND_API.G_MISS_CHAR, attribute15, p_attribute15)
212      ,last_update_date            = sysdate
213      ,last_updated_by             = fnd_global.user_id
214      ,last_update_login           = fnd_global.login_id
215  WHERE team_template_id = p_team_template_id
216    AND record_version_number = p_record_version_number
217    AND nvl(workflow_in_progress_flag, 'N') <> 'Y';
218 
219   IF (SQL%NOTFOUND) THEN
220        --give generic message b/c don't know exactly which reason
221        --is preventing the update.  We need to do the check AGAIN in the actual update
222        --statement or we can't be completely sure that one of the conditions
223        --doesn't exist - due to timing issue.
224        --The user will get the specific message from the public API the next time they try to delete
225        --the team template.
226        PA_UTILS.Add_Message ( p_app_short_name => 'PA'
227                              ,p_msg_name => 'PA_COULD_NOT_DEL_TEAM_TEM');
228        x_return_status := FND_API.G_RET_STS_ERROR;
229   END IF;
230 
231 
232   EXCEPTION
233     WHEN OTHERS THEN -- catch the exceptions here
234         -- Set the exception Message and the stack
235         FND_MSG_PUB.add_exc_msg( p_pkg_name       => 'PA_TEAM_TEMPLATES_PKG.Update_Row'
236                                  ,p_procedure_name => PA_DEBUG.G_Err_Stack );
237         x_return_status := FND_API.G_RET_STS_UNEXP_ERROR ;
238         RAISE;
239 
240 END Update_Row;
241 
242 
243 PROCEDURE Delete_Row
244 ( p_team_template_id               IN    pa_team_templates.team_template_id%TYPE
245  ,p_record_version_number          IN    NUMBER
246  ,x_return_status                  OUT   NOCOPY VARCHAR2 --File.Sql.39 bug 4440895
247 )
248 IS
249 
250 BEGIN
251 
252   IF (P_DEBUG_MODE = 'Y') THEN
253   PA_DEBUG.write_log (x_module      => 'pa.plsql.PA_TEAM_TEMPLATES_PKG.delete_row'
254                      ,x_msg         => 'Beginning of the Team Template delete row'
255                      ,x_log_level   => 5);
256   END IF;
257 
258   x_return_status := FND_API.G_RET_STS_SUCCESS;
259 
260   --check the record version number, workflow in progress, and template in use
261   --AGAIN before allowing delete.
262 
263   DELETE FROM pa_team_templates
264   WHERE  team_template_id = p_team_template_id
265     AND  record_version_number = p_record_version_number
266     AND  nvl(workflow_in_progress_flag, 'N') <> 'Y'
267     AND  NOT EXISTS
268          (SELECT 'X'
269             FROM pa_project_assignments
270            WHERE assignment_template_id = p_team_template_id
271              AND template_flag <> 'Y');
272 
273   IF (SQL%NOTFOUND) THEN
274        --give generic message b/c don't know exactly which reason out of 3
275        --is preventing the delete.  We need to do the check AGAIN in the actual delete
276        --statement or we can't be completely sure that one of the 3 conditions
277        --doesn't exist - due to timing issue.
278        --The user will get the specific message from the public API the next time they try to delete
279        --the team template.
280        PA_UTILS.Add_Message ( p_app_short_name => 'PA'
281                              ,p_msg_name => 'PA_COULD_NOT_DEL_TEAM_TEM');
282        x_return_status := FND_API.G_RET_STS_ERROR;
283 
284   END IF;
285   --
286   --
287 
288   EXCEPTION
289     WHEN OTHERS THEN
290         -- Set the exception Message and the stack
291         FND_MSG_PUB.add_exc_msg( p_pkg_name       => 'PA_TEAM_TEMPLATE_PKG.Delete_Row'
292                                  ,p_procedure_name => PA_DEBUG.G_Err_Stack );
293         x_return_status := FND_API.G_RET_STS_UNEXP_ERROR ;
294         RAISE;
295 END Delete_Row;
296 
297 END pa_team_templates_pkg;