[Home] [Help]
PACKAGE BODY: APPS.PA_TASK_TYPE_PVT
Source
1 PACKAGE BODY PA_TASK_TYPE_PVT AS
2 /*$Header: PATTPVTB.pls 120.1 2005/08/19 17:06:31 mwasowic noship $*/
3
4 g_module_name VARCHAR2(100) := 'PA_TASK_TYPE_PVT'; --Bug 3279978 FPM Development
5
6 INV_ARG_EXC EXCEPTION;
7
8 PROCEDURE create_task_type
9 (p_task_type IN pa_task_types.task_type%TYPE
10 ,p_start_date_active IN pa_task_types.start_date_active%TYPE
11 ,p_end_date_active IN pa_task_types.end_date_active%TYPE := NULL
12 ,p_description IN pa_task_types.description%TYPE := NULL
13 ,p_task_type_class_code IN pa_task_types.task_type_class_code%TYPE
14 ,p_initial_status_code IN pa_task_types.initial_status_code%TYPE := NULL
15 ,p_prog_entry_enable_flag IN pa_task_types.prog_entry_enable_flag%TYPE := NULL
16 ,p_prog_entry_req_flag IN pa_task_types.prog_entry_req_flag%TYPE := NULL
17 ,p_initial_progress_status_code IN pa_task_types.initial_progress_status_code%TYPE := NULL
18 ,p_task_prog_entry_page_id IN pa_task_types.task_progress_entry_page_id%TYPE := NULL
19 ,p_task_prog_entry_page_name IN pa_page_layouts.page_name%TYPE := NULL
20 ,p_wq_enable_flag IN pa_task_types.wq_enable_flag%TYPE := NULL
21 ,p_work_item_code IN pa_task_types.work_item_code%TYPE := NULL
22 ,p_uom_code IN pa_task_types.uom_code%TYPE := NULL
23 ,p_actual_wq_entry_code IN pa_task_types.actual_wq_entry_code%TYPE := NULL
24 ,p_percent_comp_enable_flag IN pa_task_types.percent_comp_enable_flag%TYPE := NULL
25 ,p_base_percent_comp_deriv_code IN pa_task_types.base_percent_comp_deriv_code%TYPE := NULL
26 ,p_task_weighting_deriv_code IN pa_task_types.task_weighting_deriv_code%TYPE := NULL
27 ,p_remain_effort_enable_flag IN pa_task_types.remain_effort_enable_flag%TYPE := NULL
28 ,p_attribute_category IN pa_task_types.attribute_category%TYPE := NULL
29 ,p_attribute1 IN pa_task_types.attribute1%TYPE := NULL
30 ,p_attribute2 IN pa_task_types.attribute2%TYPE := NULL
31 ,p_attribute3 IN pa_task_types.attribute3%TYPE := NULL
32 ,p_attribute4 IN pa_task_types.attribute4%TYPE := NULL
33 ,p_attribute5 IN pa_task_types.attribute5%TYPE := NULL
34 ,p_attribute6 IN pa_task_types.attribute6%TYPE := NULL
35 ,p_attribute7 IN pa_task_types.attribute7%TYPE := NULL
36 ,p_attribute8 IN pa_task_types.attribute8%TYPE := NULL
37 ,p_attribute9 IN pa_task_types.attribute9%TYPE := NULL
38 ,p_attribute10 IN pa_task_types.attribute10%TYPE := NULL
39 ,p_attribute11 IN pa_task_types.attribute11%TYPE := NULL
40 ,p_attribute12 IN pa_task_types.attribute12%TYPE := NULL
41 ,p_attribute13 IN pa_task_types.attribute13%TYPE := NULL
42 ,p_attribute14 IN pa_task_types.attribute14%TYPE := NULL
43 ,p_attribute15 IN pa_task_types.attribute15%TYPE := NULL
44 ,p_object_type IN pa_task_types.object_type%TYPE := 'PA_TASKS' -- 3279978 : Added Object Type and Progress Rollup Method
45 ,p_wf_item_type IN pa_task_types.wf_item_type%TYPE :=NULL
46 ,p_wf_process IN pa_task_types.wf_process%TYPE :=NULL
47 ,p_wf_lead_days IN pa_task_types.wf_start_lead_days%TYPE :=NULL
48 ,x_task_type_id OUT NOCOPY NUMBER --File.Sql.39 bug 4440895
49 ,x_return_status OUT NOCOPY VARCHAR2 --File.Sql.39 bug 4440895
50 ,x_msg_count OUT NOCOPY NUMBER --File.Sql.39 bug 4440895
51 ,x_msg_data OUT NOCOPY VARCHAR2 --File.Sql.39 bug 4440895
52 )
53 IS
54
55 l_msg_index_out NUMBER;
56
57 BEGIN
58
59 -- Initialize the return status to success
60 x_return_status := FND_API.G_RET_STS_SUCCESS;
61
62 --Log Message
63 PA_DEBUG.write_log (x_module => 'pa.plsql.PA_TASK_TYPE_PVT.Create_Task_Type.begin'
64 ,x_msg => 'Beginning of Create_Task_Type pvt'
65 ,x_log_level => 5);
66
67
68 PA_TASK_TYPE_PKG.insert_row
69 (p_task_type => p_task_type
70 ,p_start_date_active => p_start_date_active
71 ,p_end_date_active => p_end_date_active
72 ,p_description => p_description
73 ,p_task_type_class_code => p_task_type_class_code
74 ,p_initial_status_code => p_initial_status_code
75 ,p_prog_entry_enable_flag => p_prog_entry_enable_flag
76 ,p_prog_entry_req_flag => p_prog_entry_req_flag
77 ,p_initial_progress_status_code => p_initial_progress_status_code
78 ,p_task_prog_entry_page_id => p_task_prog_entry_page_id
79 ,p_task_prog_entry_page_name => p_task_prog_entry_page_name --this parameter was missing ,Hence inserted
80 ,p_wq_enable_flag => p_wq_enable_flag
81 ,p_work_item_code => p_work_item_code
82 ,p_uom_code => p_uom_code
83 ,p_actual_wq_entry_code => p_actual_wq_entry_code
84 ,p_percent_comp_enable_flag => p_percent_comp_enable_flag
85 ,p_base_percent_comp_deriv_code => p_base_percent_comp_deriv_code
86 ,p_task_weighting_deriv_code => p_task_weighting_deriv_code
87 ,p_remain_effort_enable_flag => p_remain_effort_enable_flag
88 ,p_attribute_category => p_attribute_category
89 ,p_attribute1 => p_attribute1
90 ,p_attribute2 => p_attribute2
91 ,p_attribute3 => p_attribute3
92 ,p_attribute4 => p_attribute4
93 ,p_attribute5 => p_attribute5
94 ,p_attribute6 => p_attribute6
95 ,p_attribute7 => p_attribute7
96 ,p_attribute8 => p_attribute8
97 ,p_attribute9 => p_attribute9
98 ,p_attribute10 => p_attribute10
99 ,p_attribute11 => p_attribute11
100 ,p_attribute12 => p_attribute12
101 ,p_attribute13 => p_attribute13
102 ,p_attribute14 => p_attribute14
103 ,p_attribute15 => p_attribute15
104 ,p_object_type => p_object_type -- 3279978 : Added Object Type and Progress Rollup Method
105 ,p_wf_item_type => p_wf_item_type
106 ,p_wf_process => p_wf_process
107 ,p_wf_lead_days => p_wf_lead_days
108 ,x_task_type_id => x_task_type_id
109 ,x_return_status => x_return_status
110 ,x_msg_count => x_msg_count
111 ,x_msg_data => x_msg_data);
112
113 EXCEPTION
114 WHEN OTHERS THEN
115 -- Set the excetption Message and the stack
116 FND_MSG_PUB.add_exc_msg ( p_pkg_name => 'PA_TASK_TYPE_PVT.Create_Task_Type'
117 ,p_procedure_name => PA_DEBUG.G_Err_Stack );
118 --
119 x_return_status := FND_API.G_RET_STS_UNEXP_ERROR ;
120 RAISE;
121
122 END Create_Task_Type;
123
124
125 PROCEDURE Update_Task_Type
126 ( p_task_type_id IN pa_task_types.task_type_id%TYPE
127 ,p_task_type IN pa_task_types.task_type%TYPE
128 ,p_start_date_active IN pa_task_types.start_date_active%TYPE
129 ,p_end_date_active IN pa_task_types.end_date_active%TYPE := NULL
130 ,p_description IN pa_task_types.description%TYPE := NULL
131 ,p_task_type_class_code IN pa_task_types.task_type_class_code%TYPE
132 ,p_initial_status_code IN pa_task_types.initial_status_code%TYPE := NULL
133 ,p_prog_entry_enable_flag IN pa_task_types.prog_entry_enable_flag%TYPE := NULL
134 ,p_prog_entry_req_flag IN pa_task_types.prog_entry_req_flag%TYPE := NULL
135 ,p_initial_progress_status_code IN pa_task_types.initial_progress_status_code%TYPE := NULL
136 ,p_task_prog_entry_page_id IN pa_task_types.task_progress_entry_page_id%TYPE := NULL
137 ,p_task_prog_entry_page_name IN pa_page_layouts.page_name%TYPE := NULL
138 ,p_wq_enable_flag IN pa_task_types.wq_enable_flag%TYPE := NULL
139 ,p_work_item_code IN pa_task_types.work_item_code%TYPE := NULL
140 ,p_uom_code IN pa_task_types.uom_code%TYPE := NULL
141 ,p_actual_wq_entry_code IN pa_task_types.actual_wq_entry_code%TYPE := NULL
142 ,p_percent_comp_enable_flag IN pa_task_types.percent_comp_enable_flag%TYPE := NULL
143 ,p_base_percent_comp_deriv_code IN pa_task_types.base_percent_comp_deriv_code%TYPE := NULL
144 ,p_task_weighting_deriv_code IN pa_task_types.task_weighting_deriv_code%TYPE := NULL
145 ,p_remain_effort_enable_flag IN pa_task_types.remain_effort_enable_flag%TYPE := NULL
146 ,p_attribute_category IN pa_task_types.attribute_category%TYPE := NULL
147 ,p_attribute1 IN pa_task_types.attribute1%TYPE := NULL
148 ,p_attribute2 IN pa_task_types.attribute2%TYPE := NULL
149 ,p_attribute3 IN pa_task_types.attribute3%TYPE := NULL
150 ,p_attribute4 IN pa_task_types.attribute4%TYPE := NULL
151 ,p_attribute5 IN pa_task_types.attribute5%TYPE := NULL
152 ,p_attribute6 IN pa_task_types.attribute6%TYPE := NULL
153 ,p_attribute7 IN pa_task_types.attribute7%TYPE := NULL
154 ,p_attribute8 IN pa_task_types.attribute8%TYPE := NULL
155 ,p_attribute9 IN pa_task_types.attribute9%TYPE := NULL
156 ,p_attribute10 IN pa_task_types.attribute10%TYPE := NULL
157 ,p_attribute11 IN pa_task_types.attribute11%TYPE := NULL
158 ,p_attribute12 IN pa_task_types.attribute12%TYPE := NULL
159 ,p_attribute13 IN pa_task_types.attribute13%TYPE := NULL
160 ,p_attribute14 IN pa_task_types.attribute14%TYPE := NULL
161 ,p_attribute15 IN pa_task_types.attribute15%TYPE := NULL
162 ,p_object_type IN pa_task_types.object_type%TYPE := 'PA_TASKS' -- 3279978 : Added Object Type and Progress Rollup Method
163 ,p_wf_item_type IN pa_task_types.wf_item_type%TYPE :=NULL
164 ,p_wf_process IN pa_task_types.wf_process%TYPE :=NULL
165 ,p_wf_lead_days IN pa_task_types.wf_start_lead_days%TYPE :=NULL
166 ,x_return_status OUT NOCOPY VARCHAR2 --File.Sql.39 bug 4440895
167 ,x_msg_count OUT NOCOPY NUMBER --File.Sql.39 bug 4440895
168 ,x_msg_data OUT NOCOPY VARCHAR2 --File.Sql.39 bug 4440895
169 )
170
171 IS
172
173 l_msg_index_out NUMBER;
174
175 BEGIN
176
177 -- Initialize the return status to success
178 x_return_status := FND_API.G_RET_STS_SUCCESS;
179
180 --Log Message
181 PA_DEBUG.write_log (x_module => 'pa.plsql.PA_TASK_TYPES_PVT.Update_Task_Type.begin'
182 ,x_msg => 'Beginning of Update_Task_Type pvt'
183 ,x_log_level => 5);
184
185
186 PA_TASK_TYPE_PKG.update_row
187 (p_task_type_id => p_task_type_id
188 ,p_task_type => p_task_type
189 ,p_start_date_active => p_start_date_active
190 ,p_end_date_active => p_end_date_active
191 ,p_description => p_description
192 ,p_task_type_class_code => p_task_type_class_code
193 ,p_initial_status_code => p_initial_status_code
194 ,p_prog_entry_enable_flag => p_prog_entry_enable_flag
195 ,p_prog_entry_req_flag => p_prog_entry_req_flag
196 ,p_initial_progress_status_code => p_initial_progress_status_code
197 ,p_task_prog_entry_page_id => p_task_prog_entry_page_id
198 ,p_wq_enable_flag => p_wq_enable_flag
199 ,p_work_item_code => p_work_item_code
200 ,p_uom_code => p_uom_code
201 ,p_actual_wq_entry_code => p_actual_wq_entry_code
202 ,p_percent_comp_enable_flag => p_percent_comp_enable_flag
203 ,p_base_percent_comp_deriv_code => p_base_percent_comp_deriv_code
207 ,p_attribute1 => p_attribute1
204 ,p_task_weighting_deriv_code => p_task_weighting_deriv_code
205 ,p_remain_effort_enable_flag => p_remain_effort_enable_flag
206 ,p_attribute_category => p_attribute_category
208 ,p_attribute2 => p_attribute2
209 ,p_attribute3 => p_attribute3
210 ,p_attribute4 => p_attribute4
211 ,p_attribute5 => p_attribute5
212 ,p_attribute6 => p_attribute6
213 ,p_attribute7 => p_attribute7
214 ,p_attribute8 => p_attribute8
215 ,p_attribute9 => p_attribute9
216 ,p_attribute10 => p_attribute10
217 ,p_attribute11 => p_attribute11
218 ,p_attribute12 => p_attribute12
219 ,p_attribute13 => p_attribute13
220 ,p_attribute14 => p_attribute14
221 ,p_attribute15 => p_attribute15
222 ,p_object_type => p_object_type -- 3279978 : Added Object Type and Progress Rollup Method
223 ,p_wf_item_type => p_wf_item_type
224 ,p_wf_process => p_wf_process
225 ,p_wf_lead_days => p_wf_lead_days
226 ,x_return_status => x_return_status
227 ,x_msg_count => x_msg_count
228 ,x_msg_data => x_msg_data);
229
230
231 EXCEPTION
232 WHEN OTHERS THEN
233 -- Set the excetption Message and the stack
234 FND_MSG_PUB.add_exc_msg ( p_pkg_name => 'PA_TASK_TYPE_PVT.Update_Task_Type'
235 ,p_procedure_name => PA_DEBUG.G_Err_Stack );
236 --
237 x_return_status := FND_API.G_RET_STS_UNEXP_ERROR ;
238 RAISE;
239
240 END Update_Task_Type;
241
242
243 PROCEDURE Delete_Task_Type
244 (p_Task_Type_id IN pa_task_types.Task_Type_id%TYPE := NULL
245 ,x_return_status OUT NOCOPY VARCHAR2 --File.Sql.39 bug 4440895
246 ,x_msg_count OUT NOCOPY NUMBER --File.Sql.39 bug 4440895
247 ,x_msg_data OUT NOCOPY VARCHAR2 --File.Sql.39 bug 4440895
248 )
249 IS
250
251 l_msg_index_out NUMBER;
252
253 BEGIN
254
255 -- Initialize the return status to success
256 x_return_status := FND_API.G_RET_STS_SUCCESS;
257
258 --Log Message
259 PA_DEBUG.write_log (x_module => 'pa.plsql.PA_task_types_PVT.Delete_Task_Type.begin'
260 ,x_msg => 'Beginning of Delete_Task_Type pvt'
261 ,x_log_level => 5);
262
263
264 PA_TASK_TYPE_PKG.delete_row
265 (p_task_type_id => p_task_type_id
266 ,x_return_status => x_return_status
267 ,x_msg_count => x_msg_count
268 ,x_msg_data => x_msg_data);
269
270
271 EXCEPTION
272 WHEN OTHERS THEN
273 -- Set the excetption Message and the stack
274 FND_MSG_PUB.add_exc_msg ( p_pkg_name => 'PA_TASK_TYPE_PVT.Delete_Task_Type'
275 ,p_procedure_name => PA_DEBUG.G_Err_Stack );
276 x_return_status := FND_API.G_RET_STS_UNEXP_ERROR ;
277 RAISE;
278
279 END Delete_Task_Type;
280
281 -- Procedure : CREATE_DELIVERABLE_TYPE
282 -- Type : private Procedure
283 -- Purpose : This is the private API used to create the deliverable type .
284 -- Note : If the deliverable type name is unique and date range is valid then
285 -- this API places call to the table handler insert_row in PA_TASK_TYPES_PKG
286 -- Assumptions : None
287 -- List of parameters other than standard IN and OUT parameters
288 -- Parameters Type Null? Default Value Description and Purpose
289 -- --------------------------- ------------------------------------------ ------ -------------- ----------------------------
290 --P_deliverable_type_name PA_TASK_TYPES.TASK_TYPE%TYPE N Deliverable Type Name
291 --P_prog_entry_enable_flag PA_TASK_TYPES.PROG_ENTRY_ENABLE_FLAG%TYPE Y 'N' Progress Entry Flag
292 --P_initial_deliverable_status_code PA_TASK_TYPES.INITIAL_STATUS_CODE%TYPE N 'DLVR_NOT_STARTED'Initial Deliverable Status
293 --P_deliverable_type_class_code PA_TASK_TYPES.TASK_TYPE_CLASS_CODE%TYPE Y 'ITEM' Deliverable Type Class
294 --P_enable_deliverable_actions PA_TASK_TYPES.ENABLE_DLVR_ACTIONS%TYPE Y 'N' Enable Deliverable Action
295 --P_effective_from PA_TASK_TYPES.START_DATE_ACTIVE%TYPE N Effective from date
296 --p_effective_to PA_TASK_TYPES. END_DATE_ACTIVE %TYPE Y NULL Effective to date
297 --P_description PA_TASK_TYPES.DESCRIPTION%TYPE Y NULL Description
298 --P_deliverable_type_id PA_TASK_TYPES.TASK_TYPE_ID%TPE Y NULL
299
300
301 PROCEDURE CREATE_DELIVERABLE_TYPE
302 (p_api_version IN NUMBER := 1.0
303 ,p_init_msg_list IN VARCHAR2 := FND_API.G_TRUE
304 ,p_commit IN VARCHAR2 := FND_API.G_FALSE
305 ,p_validate_only IN VARCHAR2 := FND_API.G_TRUE
306 ,p_validation_level IN NUMBER := FND_API.G_VALID_LEVEL_FULL
307 ,p_calling_module IN VARCHAR2 := 'SELF_SERVICE'
308 ,p_debug_mode IN VARCHAR2 := 'N'
309 ,p_max_msg_count IN NUMBER := PA_INTERFACE_UTILS_PUB.G_PA_MISS_NUM
310 ,p_deliverable_type_name IN PA_TASK_TYPES.TASK_TYPE%TYPE
311 ,p_prog_entry_enable_flag IN PA_TASK_TYPES.PROG_ENTRY_ENABLE_FLAG%TYPE := 'N'
312 ,p_initial_deliverable_status IN PA_TASK_TYPES.INITIAL_STATUS_CODE%TYPE := 'DLVR_NOT_STARTED'
313 ,p_deliverable_type_class IN PA_TASK_TYPES.TASK_TYPE_CLASS_CODE%TYPE := 'ITEM'
314 ,p_enable_dlvr_actions_flag IN PA_TASK_TYPES.ENABLE_DLVR_ACTIONS_FLAG%TYPE := 'N'
315 ,p_effective_from IN PA_TASK_TYPES.START_DATE_ACTIVE%TYPE
316 ,p_effective_to IN PA_TASK_TYPES. END_DATE_ACTIVE %TYPE := NULL
317 ,p_description IN PA_TASK_TYPES.DESCRIPTION%TYPE := NULL
318 ,p_deliverable_type_id IN PA_TASK_TYPES.TASK_TYPE_ID%TYPE := NULL
319 ,p_record_version_number IN PA_TASK_TYPES.RECORD_VERSION_NUMBER%TYPE := 1
320 ,x_return_status OUT NOCOPY VARCHAR2 --File.Sql.39 bug 4440895
321 ,x_msg_count OUT NOCOPY NUMBER --File.Sql.39 bug 4440895
322 ,x_msg_data OUT NOCOPY VARCHAR2 --File.Sql.39 bug 4440895
323 )
324 IS
325 l_msg_index_out NUMBER;
326 l_debug_mode VARCHAR2(1);
327
328 l_return_status VARCHAR2(1);
329 l_msg_count NUMBER;
330 l_data VARCHAR2(2000);
331 l_msg_data VARCHAR2(2000);
332 l_task_type_id_dummy PA_TASK_TYPES.TASK_TYPE_ID%TYPE ;
333
334 l_debug_level2 CONSTANT NUMBER := 2;
335 l_debug_level3 CONSTANT NUMBER := 3;
336 l_debug_level4 CONSTANT NUMBER := 4;
337 l_debug_level5 CONSTANT NUMBER := 5;
338
339 BEGIN
340 -- Initialize the return status to success
341 x_return_status := FND_API.G_RET_STS_SUCCESS;
342
343 --Define the savepoint
347 END IF;
344 IF (p_commit = FND_API.G_TRUE)
345 THEN
346 SAVEPOINT CREATE_DELIVERABLE_TYPE;
348
349 --Log message
350 l_debug_mode :=p_debug_mode;
351
352 IF l_debug_mode = 'Y'
353 THEN
354 PA_DEBUG.set_curr_function( p_function => 'CREATE_DELIVERABLE_TYPE',
355 p_debug_mode => l_debug_mode );
356 END IF;
357
358 IF l_debug_mode = 'Y'
359 THEN
360 PA_DEBUG.g_err_stage:= 'CREATE_DELIVERABLE_TYPE : Printing Input parameters';
361 PA_DEBUG.WRITE(g_module_name,Pa_Debug.g_err_stage,
362 l_debug_level3);
363 PA_DEBUG.WRITE(g_module_name,'p_deliverable_type_name'||':'||p_deliverable_type_name,
364 l_debug_level3);
365 PA_DEBUG.WRITE(g_module_name,'p_prog_entry_enable_flag'||':'||p_prog_entry_enable_flag,
366 l_debug_level3);
367 PA_DEBUG.WRITE(g_module_name,'p_initial_deliverable_status'||':'||p_initial_deliverable_status,
368 l_debug_level3);
369 PA_DEBUG.WRITE(g_module_name,'p_deliverable_type_class'||':'||p_deliverable_type_class,
370 l_debug_level3);
371 PA_DEBUG.WRITE(g_module_name,'p_enable_dlvr_actions_flag'||':'||p_enable_dlvr_actions_flag,
372 l_debug_level3);
373 PA_DEBUG.WRITE(g_module_name,'p_effective_from'||':'||p_effective_from,
374 l_debug_level3);
375 PA_DEBUG.WRITE(g_module_name,'p_effective_to'||':'||p_effective_to,
376 l_debug_level3);
377 PA_DEBUG.WRITE(g_module_name,'p_description'||':'||p_description,
378 l_debug_level3);
379 PA_DEBUG.WRITE(g_module_name,'p_deliverable_type_id'||':'||p_deliverable_type_id,
380 l_debug_level3);
381 END IF;
382
383 -- Initialize the Message Stack
384 IF FND_API.TO_BOOLEAN(nvl(p_init_msg_list,FND_API.G_TRUE)) THEN
385 FND_MSG_PUB.initialize;
386 END IF;
387
388 --Check whether any of p_deliverable_type_name,start date is null
389 --If it is null,then raise Invalid parameter exception
390 IF (p_deliverable_type_name IS NULL) OR (p_effective_from IS NULL)THEN
391 RAISE INV_ARG_EXC;
392 END IF;
393
394 --Check if Deliverable Type name is unique
395 l_return_status := PA_DELIVERABLE_UTILS.IS_DLV_TYPE_NAME_UNIQUE (p_deliverable_type_name);
396 IF(l_return_status = 'N')
397 THEN
398 PA_UTILS.ADD_MESSAGE
399 (p_app_short_name => 'PA',
400 p_msg_name => 'PA_DLV_TYPE_EXISTS');
401 x_return_status :=FND_API.G_RET_STS_ERROR;
402 END IF;
403
404 PA_DEBUG.WRITE(g_module_name,'After Unique Chk',
405 l_debug_level3);
406 --Check if the date range is valid
407 l_return_status :=PA_DELIVERABLE_UTILS.IS_EFF_FROM_TO_DATE_VALID(p_effective_from,p_effective_to);
408 IF(l_return_status = 'N')
409 THEN
410 PA_UTILS.ADD_MESSAGE
411 (p_app_short_name => 'PA',
412 p_msg_name => 'PA_TT_INVALID_DATES');
413 x_return_status :=FND_API.G_RET_STS_ERROR;
414 END IF;
415
416 IF(x_return_status = FND_API.G_RET_STS_ERROR)
417 THEN
418 RAISE FND_API.G_EXC_ERROR;
419 END IF;
420
421 PA_DEBUG.WRITE(g_module_name,'Before Insert',
422 l_debug_level3);
423 --Call the PA_TASK_TYPE_PKG.insert_row
424 PA_TASK_TYPE_PKG.insert_row
425 (p_task_type_id => p_deliverable_type_id
426 ,p_task_type => p_deliverable_type_name
427 ,p_start_date_active => p_effective_from
428 ,p_end_date_active => p_effective_to
429 ,p_description => p_description
430 ,p_task_type_class_code => p_deliverable_type_class
431 ,p_initial_status_code => p_initial_deliverable_status
432 ,p_prog_entry_enable_flag => p_prog_entry_enable_flag
433 ,p_enable_dlvr_actions_flag => p_enable_dlvr_actions_flag
434 ,p_object_type => 'PA_DLVR_TYPES'
435 ,p_record_version_number => p_record_version_number
436 ,x_task_type_id => l_task_type_id_dummy
437 ,x_return_status => x_return_status
438 ,x_msg_count => x_msg_count
439 ,x_msg_data => x_msg_data
440 );
441
442 PA_DEBUG.WRITE(g_module_name,'After Insert',
443 l_debug_level3);
444 IF (x_return_status <> FND_API.G_RET_STS_SUCCESS)
445 THEN
446 RAISE FND_API.G_EXC_ERROR;
447 END IF;
448
449 EXCEPTION
450 -- Set the exception Message and the stack
451 WHEN FND_API.G_EXC_ERROR THEN
452 x_return_status := FND_API.G_RET_STS_ERROR;
453 l_msg_count := FND_MSG_PUB.count_msg;
454
455 -- Rollback to the savepoint defined
456 IF p_commit = FND_API.G_TRUE
457 THEN
458 ROLLBACK TO CREATE_DELIVERABLE_TYPE;
459 END IF;
460
461 IF l_msg_count = 1 AND x_msg_data IS NULL
462 THEN
463 Pa_Interface_Utils_Pub.get_messages
464 ( p_encoded => Fnd_Api.G_TRUE
465 , p_msg_index => 1
466 , p_msg_count => l_msg_count
467 , p_msg_data => l_msg_data
468 , p_data => l_data
469 , p_msg_index_out => l_msg_index_out);
470 x_msg_data := l_data;
474 END IF;
471 x_msg_count := l_msg_count;
472 ELSE
473 x_msg_count := l_msg_count;
475
476 IF l_debug_mode = 'Y'
477 THEN
478 Pa_Debug.reset_curr_function;
479 END IF;
480 RETURN;
481
482 WHEN INV_ARG_EXC THEN
483 x_return_status := Fnd_Api.G_RET_STS_ERROR;
484 x_msg_count := 1;
485 x_msg_data := 'PA_TASK_TYPE_PVT : CREATE_DELIVERABLE_TYPE : NULL PARAMETERS ARE PASSED OR CURSOR DIDNT RETURN ANY ROWS';
486
487 IF p_commit = FND_API.G_TRUE
488 THEN
489 ROLLBACK TO CREATE_DELIVERABLE_TYPE;
490 END IF;
491
492
493 Fnd_Msg_Pub.add_exc_msg
494 ( p_pkg_name => 'PA_TASK_TYPE_PVT'
495 , p_procedure_name => 'CREATE_DELIVERABLE_TYPE'
496 , p_error_text => x_msg_data);
497
498 IF l_debug_mode = 'Y'
499 THEN
500 Pa_Debug.g_err_stage:= 'Error'||x_msg_data;
501 Pa_Debug.WRITE(g_module_name,Pa_Debug.g_err_stage,
502 l_debug_level5);
503 Pa_Debug.reset_curr_function;
504 END IF;
505 RAISE;
506
507 WHEN OTHERS THEN
508 -- Set the exception Message and the stack
509 x_return_status := Fnd_Api.G_RET_STS_UNEXP_ERROR;
510 x_msg_count := 1;
511 x_msg_data := SQLERRM;
512
513 --Rollback to the savepoint defined
514 IF p_commit = FND_API.G_TRUE
515 THEN
516 ROLLBACK TO CREATE_DELIVERABLE_TYPE;
517 END IF;
518
519 Fnd_Msg_Pub.add_exc_msg
520 ( p_pkg_name => 'PA_TASK_TYPE_PVT'
521 , p_procedure_name => 'CREATE_DELIVERABLE_TYPE'
522 , p_error_text => x_msg_data);
523
524 IF l_debug_mode = 'Y'
525 THEN
526 Pa_Debug.g_err_stage:= 'Unexpected Error'||x_msg_data;
527 Pa_Debug.WRITE(g_module_name,Pa_Debug.g_err_stage,
528 l_debug_level5);
529 Pa_Debug.reset_curr_function;
530 END IF;
531 RAISE;
532
533 END CREATE_DELIVERABLE_TYPE;
534
535 -- Procedure : UPDATE_DELIVERABLE_TYPE
536 -- Type : Private Procedure
537 -- Purpose : This is the private API used to update the deliverable type .
538 -- Note : 1)If there is a change in the deliverable type name,check for uniqueness
539 -- 2)If there is a change in the date range,check for validity
540 -- 3)If the Deliverable Type Class has changed and it is in use,throw error
541 -- 4)If Enable Deliverable actions was previously checked and now unchecked
542 -- check whether there exists any deliverable of this type which has actions
543 -- associated with it.If Yes ,Throw Error.Else delete those actions
544 -- 5)If the Enable Progress Entry changes from Checked to UNCHECKED
545 -- then check whether any deliverable of this type p_deliverable_type_id
546 -- has been associated with a Deliverable-based task.If Yes,Throw error
547 -- Assumptions : None
548 -- List of parameters other than standard IN and OUT parameters
549 -- Parameters Type Null? Default Value Description and Purpose
550 -- --------------------------- -------- ------ --------------- ----------------------------
551 --P_deliverable_type_name PA_TASK_TYPES.TASK_TYPE%TYPE N Deliverable Type Name
552 --P_prog_entry_enable_flag PA_TASK_TYPES.PROG_ENTRY_ENABLE_FLAG%TYPE Y 'N' Progress Entry Flag
553 --P_initial_deliverable_status_code PA_TASK_TYPES.INITIAL_STATUS_CODE%TYPE Y 'DLVR_NOT_STARTED'Initial Deliverable Status
554 --P_enable_deliverable_actions PA_TASK_TYPES.ENABLE_DLVR_ACTIONS%TYPE Y 'N' Enable Deliverable Action
555 --P_effective_from PA_TASK_TYPES.START_DATE_ACTIVE%TYPE N Effective from date
556 --p_effective_to PA_TASK_TYPES. END_DATE_ACTIVE %TYPE Y NULL Effective to date
557 --P_description PA_TASK_TYPES.DESCRIPTION%TYPE Y NULL Description
558 --P_deliverable_type_id PA_TASK_TYPES.TASK_TYPE_ID%TPE N
559
560 PROCEDURE UPDATE_DELIVERABLE_TYPE
561 (p_api_version IN NUMBER := 1.0
562 ,p_init_msg_list IN VARCHAR2 := FND_API.G_TRUE
563 ,p_commit IN VARCHAR2 := FND_API.G_FALSE
564 ,p_validate_only IN VARCHAR2 := FND_API.G_TRUE
565 ,p_validation_level IN NUMBER := FND_API.G_VALID_LEVEL_FULL
566 ,p_calling_module IN VARCHAR2 := 'SELF_SERVICE'
567 ,p_debug_mode IN VARCHAR2 := 'N'
568 ,p_max_msg_count IN NUMBER := PA_INTERFACE_UTILS_PUB.G_PA_MISS_NUM
569 ,p_deliverable_type_name IN PA_TASK_TYPES.TASK_TYPE%TYPE
570 ,p_prog_entry_enable_flag IN PA_TASK_TYPES.PROG_ENTRY_ENABLE_FLAG%TYPE := 'N'
571 ,p_initial_deliverable_status IN PA_TASK_TYPES.INITIAL_STATUS_CODE%TYPE := 'DLVR_NOT_STARTED'
572 ,p_deliverable_type_class IN PA_TASK_TYPES.TASK_TYPE_CLASS_CODE%TYPE := 'ITEM'
573 ,p_enable_dlvr_actions_flag IN PA_TASK_TYPES.ENABLE_DLVR_ACTIONS_FLAG%TYPE := 'N'
574 ,p_effective_from IN PA_TASK_TYPES.START_DATE_ACTIVE%TYPE
578 ,p_record_version_number IN PA_TASK_TYPES.RECORD_VERSION_NUMBER%TYPE
575 ,p_effective_to IN PA_TASK_TYPES. END_DATE_ACTIVE %TYPE := NULL
576 ,p_description IN PA_TASK_TYPES.DESCRIPTION%TYPE := NULL
577 ,p_deliverable_type_id IN PA_TASK_TYPES.TASK_TYPE_ID%TYPE
579 ,x_return_status OUT NOCOPY VARCHAR2 --File.Sql.39 bug 4440895
580 ,x_msg_count OUT NOCOPY NUMBER --File.Sql.39 bug 4440895
581 ,x_msg_data OUT NOCOPY VARCHAR2 --File.Sql.39 bug 4440895
582 )
583 IS
584 l_msg_index_out NUMBER;
585 l_debug_mode VARCHAR2(1);
586
587 l_dummy VARCHAR2(1);
588 l_return_status VARCHAR2(1);
589 l_msg_count NUMBER;
590 l_data VARCHAR2(2000);
591 l_msg_data VARCHAR2(2000);
592
593 l_debug_level2 CONSTANT NUMBER := 2;
594 l_debug_level3 CONSTANT NUMBER := 3;
595 l_debug_level4 CONSTANT NUMBER := 4;
596 l_debug_level5 CONSTANT NUMBER := 5;
597
598 l_allow_prog_entry_disable VARCHAR2(1) := 'N' ; -- Bug 3627161
599 --This cursor is defined to find existence of any progress related records
600 -- for a deliverable of type p_deliverable_type_id
601
602 Cursor c_progress_rec_exists IS
603 SELECT 'X'
604 FROM dual
605 WHERE EXISTS
606 (SELECT proj_element_id
607 FROM pa_proj_elements
608 WHERE TYPE_ID=p_deliverable_type_id
609 AND OBJECT_TYPE='PA_DELIVERABLES'
610 AND 'Y' = (pa_deliverable_utils.IS_DELIVERABLE_HAS_PROGRESS(PROJECT_ID,PROJ_ELEMENT_ID)));
611
612 --The cursor takes the original values from the database
613
614 Cursor c_original_value_rec IS
615 SELECT TASK_TYPE
616 ,START_DATE_ACTIVE
617 ,END_DATE_ACTIVE
618 ,INITIAL_STATUS_CODE
619 ,TASK_TYPE_CLASS_CODE
620 ,ENABLE_DLVR_ACTIONS_FLAG
621 ,PROG_ENTRY_ENABLE_FLAG
622 FROM PA_TASK_TYPES
623 WHERE TASK_TYPE_ID = p_deliverable_type_id
624 AND OBJECT_TYPE = 'PA_DLVR_TYPES';
625
626 l_original_value_rec c_original_value_rec%ROWTYPE ;
627
628 BEGIN
629
630 -- Initialize the return status to success
631 x_return_status := FND_API.G_RET_STS_SUCCESS;
632 --Log message
633 l_debug_mode := p_debug_mode;
634
635 IF l_debug_mode = 'Y'
636 THEN
637 PA_DEBUG.set_curr_function( p_function => 'UPDATE_DELIVERABLE_TYPE',
638 p_debug_mode => l_debug_mode );
639 END IF;
640
641 IF l_debug_mode = 'Y'
642 THEN
643 PA_DEBUG.g_err_stage:= 'PA_TASK_TYPES_PVT.UPDATE_DELIVERABLE_TYPE : Printing Input parameters';
644 PA_DEBUG.WRITE(g_module_name,Pa_Debug.g_err_stage,
645 l_debug_level3);
646 PA_DEBUG.WRITE(g_module_name,'p_deliverable_type_name'||':'||p_deliverable_type_name,
647 l_debug_level3);
648 PA_DEBUG.WRITE(g_module_name,'p_prog_entry_enable_flag'||':'||p_prog_entry_enable_flag,
649 l_debug_level3);
650 PA_DEBUG.WRITE(g_module_name,'p_initial_deliverable_status'||':'||p_initial_deliverable_status,
651 l_debug_level3);
652 PA_DEBUG.WRITE(g_module_name,'p_deliverable_type_class'||':'||p_deliverable_type_class,
653 l_debug_level3);
654 PA_DEBUG.WRITE(g_module_name,'p_enable_dlvr_actions_flag'||':'||p_enable_dlvr_actions_flag,
655 l_debug_level3);
656 PA_DEBUG.WRITE(g_module_name,'p_effective_from'||':'||p_effective_from,
657 l_debug_level3);
658 PA_DEBUG.WRITE(g_module_name,'p_effective_to'||':'||p_effective_to,
659 l_debug_level3);
660 PA_DEBUG.WRITE(g_module_name,'p_description'||':'||p_description,
661 l_debug_level3);
662 PA_DEBUG.WRITE(g_module_name,'p_deliverable_type_id'||':'||p_deliverable_type_id,
663 l_debug_level3);
664 PA_DEBUG.WRITE(g_module_name,'p_record_version_number'||':'||p_record_version_number,
665 l_debug_level3);
666
667 END IF;
668
669 -- Initialize the Message Stack
670 IF FND_API.TO_BOOLEAN(nvl(p_init_msg_list,FND_API.G_TRUE))
671 THEN
672 FND_MSG_PUB.initialize;
673 END IF;
674
675 -- Save point
676 IF (p_commit = FND_API.G_TRUE)
677 THEN
678 savepoint UPDATE_DELIVERABLE_TYPE;
679 END IF;
680
681 PA_DEBUG.WRITE(g_module_name,'After issuing save point in UPDATE_DLV_TYPE :PA_TASK_TYPES_PVT',
682 l_debug_level3);
683
684 --the cursor contents into local variable
685 OPEN c_original_value_rec;
686 FETCH c_original_value_rec into l_original_value_rec ;
687 CLOSE c_original_value_rec;
688
689 PA_DEBUG.WRITE(g_module_name,'After fetching the cursor value in to local variable',
690 l_debug_level3);
691
692 --Check whether Deliverable Type Id or record version number or deliverable type name or start date is null.
693 --If Yes,then due to some internal error it is lost,so throw error
694 IF (p_deliverable_type_id IS NULL) OR (p_record_version_number IS NULL)
695 OR (p_deliverable_type_name IS NULL) OR (p_effective_from IS NULL)
696 THEN
697 IF l_debug_mode = 'Y'
701 l_debug_level3);
698 THEN
699 Pa_Debug.g_err_stage:= 'PA_TASK_TYPES_PVT : UPDATE_DELIVERABLE_TYPE : The DeliverableTypeID/NAME/Startdate/RecVersionNumber is null';
700 Pa_Debug.WRITE(g_module_name,Pa_Debug.g_err_stage,
702 END IF;
703 RAISE INV_ARG_EXC;
704 END IF;
705
706 -- If the Deliverable Type Name has changed
707 -- then check for unique name
708 IF l_original_value_rec.TASK_TYPE <> p_deliverable_type_name
709 THEN
710 l_return_status := PA_DELIVERABLE_UTILS.IS_DLV_TYPE_NAME_UNIQUE (p_deliverable_type_name);
711 IF(l_return_status = 'N')
712 THEN
713 PA_UTILS.ADD_MESSAGE
714 (p_app_short_name => 'PA'
715 ,p_msg_name => 'PA_DLV_TYPE_EXISTS');
716
717 x_return_status :=FND_API.G_RET_STS_ERROR;
718 END IF;
719 END IF;
720 PA_DEBUG.WRITE(g_module_name,'After Checking for unique name',
721 l_debug_level3);
722
723 --If the date values have changed then check for valid dates
724
725 IF TRUNC(p_effective_to) IS NOT NULL
726 THEN
727 IF (TRUNC(l_original_value_rec.START_DATE_ACTIVE) <> TRUNC(p_effective_from)) OR (l_original_value_rec.END_DATE_ACTIVE IS NULL)
728 OR (l_original_value_rec.END_DATE_ACTIVE IS NOT NULL AND TRUNC(l_original_value_rec.END_DATE_ACTIVE) <> TRUNC(p_effective_to))
729 THEN
730 l_return_status :=PA_DELIVERABLE_UTILS.IS_EFF_FROM_TO_DATE_VALID(p_effective_from,p_effective_to);
731 IF(l_return_status = 'N')
732 THEN
733 PA_UTILS.ADD_MESSAGE
734 (p_app_short_name => 'PA'
735 ,p_msg_name => 'PA_TT_INVALID_DATES');
736
737 x_return_status :=FND_API.G_RET_STS_ERROR;
738 END IF;
739 END IF;
740 END IF;
741 PA_DEBUG.WRITE(g_module_name,'After checking for invalid dates',
742 l_debug_level3);
743
744 --If the Deliverable Type Class has changed then check whether it is in use
745 --If Yes,Throw Error
746 If l_original_value_rec.TASK_TYPE_CLASS_CODE <> p_deliverable_type_class
747 THEN
748 l_return_status :=PA_DELIVERABLE_UTILS.IS_DLV_TYPE_IN_USE(p_deliverable_type_id);
749 If (l_return_status='Y' )
750 THEN
751 PA_UTILS.ADD_MESSAGE
752 (p_app_short_name => 'PA'
753 ,p_msg_name => 'PA_DLV_TYPE_CLASS_IN_USE');
754
755 x_return_status :=FND_API.G_RET_STS_ERROR;
756 END IF;
757 END IF;
758
759 --If the Enable Progress Entry changes from Checked to UNCHECKED then
760 --1) check whether any deliverable of this type p_deliverable_type_id
761 --has been associated with a Deliverable-based task
762 --If Yes,Throw error
763
764 --2)check whether any deliverable of this type has progress records
765 --If Yes,throw Error
766 IF p_prog_entry_enable_flag = 'N' AND l_original_value_rec.PROG_ENTRY_ENABLE_FLAG = 'Y'
767 THEN
768 -- Bug#3555460
769 -- Relaxed the check that enable progress entry cannot
770 -- cannot be unchecked if deliverbale type is used by
771 -- deliverables which are associated to deliverable based task.
772
773 -- l_return_status :=PA_DELIVERABLE_UTILS.IS_DLV_BASED_ASSCN_EXISTS(p_deliverable_type_id);
774 -- IF(l_return_status='Y')
775 -- THEN
776 -- PA_UTILS.ADD_MESSAGE
777 -- (p_app_short_name => 'PA'
778 -- ,p_msg_name => 'PA_DLV_BASED_ASSN_EXISTS');
779
780 -- x_return_status :=FND_API.G_RET_STS_ERROR;
781 -- END IF;
782
783 OPEN c_progress_rec_exists;
784 FETCH c_progress_rec_exists INTO l_dummy;
785
786 IF c_progress_rec_exists%found
787 THEN
788 PA_UTILS.Add_Message( p_app_short_name => 'PA'
789 ,p_msg_name => 'PA_DLV_TYPE_PROG_ERR');
790 x_return_status := FND_API.G_RET_STS_ERROR;
791
792 IF l_debug_mode = 'Y'
793 THEN
794 Pa_Debug.g_err_stage:= ' Error:PA_DLV_TYPE_PROG_ERR';
795 Pa_Debug.WRITE(g_module_name,Pa_Debug.g_err_stage,
796 l_debug_level5);
797 END IF;
798 ELSE -- Bug 3627161
799 l_allow_prog_entry_disable := 'Y' ;
800 END IF;
801
802 CLOSE c_progress_rec_exists;
803
804 -- Bug 3627161 If Unchecking the Enable Progress Entry Flag is allowed ,
805 -- (i.e) If no progress records exist for any of the deliverables of this type,then
806 -- Null Out the Progress weight for all deliverables of this type
807
808 IF l_allow_prog_entry_disable = 'Y' THEN
809 UPDATE PA_PROJ_ELEMENTS SET PROGRESS_WEIGHT = NULL
810 WHERE type_id = p_deliverable_type_id
811 AND OBJECT_TYPE = 'PA_DELIVERABLES'
812 AND PROGRESS_WEIGHT IS NOT NULL ;
813 END IF ;
814
815 END IF;
816
817 --If the Enable Deliverable Actions changes from CHECKED to UNCHECKED
818 --then check whether there exists any deliverable of this type which has actions associated with it
819 --If Yes ,Throw Error
820 --Else delete those actions
821 IF p_enable_dlvr_actions_flag = 'N' AND l_original_value_rec.ENABLE_DLVR_ACTIONS_FLAG = 'Y'
822 THEN
826 PA_UTILS.ADD_MESSAGE
823 l_return_status :=PA_DELIVERABLE_UTILS.IS_DLV_ACTIONS_EXISTS(p_deliverable_type_id);
824 IF (l_return_status='Y')
825 THEN
827 (p_app_short_name => 'PA'
828 ,p_msg_name => 'PA_DLV_ACTION_EXISTS');
829
830 x_return_status:=FND_API.G_RET_STS_ERROR;
831 ELSE
832
833 --before placing call to API check for any errors
834 IF (x_return_status <> FND_API.G_RET_STS_SUCCESS)
835 THEN
836 RAISE FND_API.G_EXC_ERROR;
837 END IF;
838
839 --Place a Call to Delete Deliverable Actions
840 PA_ACTIONS_PUB.DELETE_DLV_ACTIONS_IN_BULK
841 (p_api_version => p_api_version
842 ,p_init_msg_list => FND_API.G_FALSE
843 ,p_commit => p_commit
844 ,p_validate_only => p_validate_only
845 ,p_validation_level => p_validation_level
846 ,p_calling_module => p_calling_module
847 ,p_debug_mode => l_debug_mode
848 ,p_max_msg_count => p_max_msg_count
849 ,p_object_id => p_deliverable_type_id
850 ,p_object_type => 'PA_DLVR_TYPES'
851 ,x_return_status => x_return_status
852 ,x_msg_data => x_msg_data
853 ,x_msg_count => x_msg_count);
854
855 --After API execution check for errors
856 IF (x_return_status <> FND_API.G_RET_STS_SUCCESS)
857 THEN
858 RAISE FND_API.G_EXC_ERROR;
859 END IF;
860 END IF;
861 END IF;
862
863 IF(x_return_status=FND_API.G_RET_STS_ERROR)
864 THEN
865 RAISE FND_API.G_EXC_ERROR;
866 END IF;
867
868 --Call PA_TASK_TYPE_PKG.update_row
869 PA_TASK_TYPE_PKG.update_row
870 (p_task_type_id => p_deliverable_type_id
871 ,p_task_type => p_deliverable_type_name
872 ,p_start_date_active => p_effective_from
873 ,p_end_date_active => p_effective_to
874 ,p_description => p_description
875 ,p_task_type_class_code => p_deliverable_type_class
876 ,p_initial_status_code => p_initial_deliverable_status
877 ,p_prog_entry_enable_flag => p_prog_entry_enable_flag
878 ,p_enable_dlvr_actions_flag => p_enable_dlvr_actions_flag
879 ,p_object_type => 'PA_DLVR_TYPES'
880 ,p_record_version_number => p_record_version_number
881 ,x_return_status => x_return_status
882 ,x_msg_count => x_msg_count
883 ,x_msg_data => x_msg_data
884 );
885 IF (x_return_status <> FND_API.G_RET_STS_SUCCESS)
886 THEN
887 RAISE FND_API.G_EXC_ERROR;
888 END IF;
889
890 EXCEPTION
891
892 WHEN FND_API.G_EXC_ERROR THEN
893 x_return_status := FND_API.G_RET_STS_ERROR;
894 l_msg_count := FND_MSG_PUB.count_msg;
895
896 IF p_commit = FND_API.G_TRUE
897 THEN
898 ROLLBACK TO UPDATE_DELIVERABLE_TYPE;
899 END IF;
900
901 IF c_original_value_rec%ISOPEN
902 THEN
903 CLOSE c_original_value_rec;
904 END IF;
905
906 IF c_progress_rec_exists%ISOPEN
907 THEN
908 CLOSE c_progress_rec_exists;
909 END IF;
910
911 IF l_msg_count = 1 AND x_msg_data IS NULL
912 THEN
913 Pa_Interface_Utils_Pub.get_messages
914 ( p_encoded => Fnd_Api.G_TRUE
915 , p_msg_index => 1
916 , p_msg_count => l_msg_count
917 , p_msg_data => l_msg_data
918 , p_data => l_data
919 , p_msg_index_out => l_msg_index_out);
920 x_msg_data := l_data;
921 x_msg_count := l_msg_count;
922 ELSE
923 x_msg_count := l_msg_count;
924 END IF;
925
926 IF l_debug_mode = 'Y'
927 THEN
928 Pa_Debug.reset_curr_function;
929 END IF;
930
931 WHEN INV_ARG_EXC THEN
932 x_return_status := Fnd_Api.G_RET_STS_ERROR;
933 x_msg_count := 1;
934 x_msg_data := 'PA_TASK_TYPE_PVT : UPDATE_DELIVERABLE_TYPE : NULL PARAMETERS ARE PASSED OR CURSOR DIDNT RETURN ANY ROWS';
935
936 IF p_commit = FND_API.G_TRUE
937 THEN
938 ROLLBACK TO UPDATE_DELIVERABLE_TYPE;
939 END IF;
940
941 IF c_original_value_rec%ISOPEN
942 THEN
943 CLOSE c_original_value_rec;
944 END IF;
945
946 IF c_progress_rec_exists%ISOPEN
947 THEN
948 CLOSE c_progress_rec_exists;
949 END IF;
950
951 Fnd_Msg_Pub.add_exc_msg
952 ( p_pkg_name => 'PA_TASK_TYPE_PVT'
953 , p_procedure_name => 'UPDATE_DELIVERABLE_TYPE'
954 , p_error_text => x_msg_data);
955
956 IF l_debug_mode = 'Y'
957 THEN
958 Pa_Debug.g_err_stage:= 'Error'||x_msg_data;
959 Pa_Debug.WRITE(g_module_name,Pa_Debug.g_err_stage,
960 l_debug_level5);
961 Pa_Debug.reset_curr_function;
962 END IF;
963 RAISE;
964
965 WHEN OTHERS THEN
966 -- Set the exception Message and the stack
970
967 x_return_status := Fnd_Api.G_RET_STS_UNEXP_ERROR;
968 x_msg_count := 1;
969 x_msg_data := SQLERRM;
971 IF p_commit = FND_API.G_TRUE
972 THEN
973 ROLLBACK TO UPDATE_DELIVERABLE_TYPE;
974 END IF;
975
976 IF c_original_value_rec%ISOPEN
977 THEN
978 CLOSE c_original_value_rec;
979 END IF;
980
981 IF c_progress_rec_exists%ISOPEN
982 THEN
983 CLOSE c_progress_rec_exists;
984 END IF;
985
986 Fnd_Msg_Pub.add_exc_msg
987 (p_pkg_name => 'PA_TASK_TYPE_PVT'
988 , p_procedure_name => 'UPDATE_DELIVERABLE_TYPE'
989 , p_error_text => x_msg_data);
990
991 IF l_debug_mode = 'Y'
992 THEN
993 Pa_Debug.g_err_stage:= 'Unexpected Error'||x_msg_data;
994 Pa_Debug.WRITE(g_module_name,Pa_Debug.g_err_stage,
995 l_debug_level5);
996 Pa_Debug.reset_curr_function;
997 END IF;
998 RAISE;
999
1000 END UPDATE_DELIVERABLE_TYPE;
1001
1002 -- Procedure : DELETE_DELIVERABLE_TYPE
1003 -- Type : Private Procedure
1004 -- Purpose : This is the private API used to delete the deliverable type .
1005 -- Note : This procedure places call to delete deliverable actions API
1006 -- to delete the actions which are associated with the deliverable Type
1007 -- and then deletes the deliverable type by placing call to PA_TASK_TYPE_PKG.delete_row
1008 -- Assumptions : None
1009 -- List of parameters other than standard IN and OUT parameters
1010 -- Parameters Type Null? Description and Purpose
1011 -- --------------------------- ------------------------------- -------- -----------------------------------
1012 --P_deliverable_type_id PA_TASK_TYPES.TASK_TYPE_ID%TYPE N Deliverable Type Id
1013 --p_record_version_number PA_TASK_TYPES.RECORD_VERSION_NUMBER%TYPE N Record Version Number
1014
1015 PROCEDURE DELETE_DELIVERABLE_TYPE
1016 (p_api_version IN NUMBER := 1.0
1017 ,p_init_msg_list IN VARCHAR2 := FND_API.G_TRUE
1018 ,p_commit IN VARCHAR2 := FND_API.G_FALSE
1019 ,p_validate_only IN VARCHAR2 := FND_API.G_TRUE
1020 ,p_validation_level IN NUMBER := FND_API.G_VALID_LEVEL_FULL
1021 ,p_calling_module IN VARCHAR2 := 'SELF_SERVICE'
1022 ,p_debug_mode IN VARCHAR2 := 'N'
1023 ,p_max_msg_count IN NUMBER := PA_INTERFACE_UTILS_PUB.G_PA_MISS_NUM
1024 ,p_deliverable_type_id IN pa_task_types.Task_Type_id%TYPE
1025 ,p_record_version_number IN PA_TASK_TYPES.RECORD_VERSION_NUMBER%TYPE
1026 ,x_return_status OUT NOCOPY VARCHAR2 --File.Sql.39 bug 4440895
1027 ,x_msg_count OUT NOCOPY NUMBER --File.Sql.39 bug 4440895
1028 ,x_msg_data OUT NOCOPY VARCHAR2 --File.Sql.39 bug 4440895
1029 )
1030 IS
1031 l_msg_index_out NUMBER;
1032 l_debug_mode VARCHAR2(1);
1033
1034 l_msg_count NUMBER;
1035 l_data VARCHAR2(2000);
1036 l_msg_data VARCHAR2(2000);
1037 l_return_status VARCHAR2(1);
1038
1039 l_debug_level2 CONSTANT NUMBER := 2;
1040 l_debug_level3 CONSTANT NUMBER := 3;
1041 l_debug_level4 CONSTANT NUMBER := 4;
1042 l_debug_level5 CONSTANT NUMBER := 5;
1043 BEGIN
1044 -- Initialize the return status to success
1045 x_return_status := FND_API.G_RET_STS_SUCCESS;
1046
1047 --Log message
1048 l_debug_mode :=p_debug_mode;
1049
1050 IF l_debug_mode = 'Y'
1051 THEN
1052 PA_DEBUG.set_curr_function( p_function => 'DELETE_DELIVERABLE_TYPE',
1053 p_debug_mode => l_debug_mode );
1054 END IF;
1055 --savepoint
1056 IF (p_commit = FND_API.G_TRUE)
1057 THEN
1058 savepoint DELETE_DELIVERABLE_TYPE;
1059 END IF;
1060
1061 IF l_debug_mode = 'Y'
1062 THEN
1063 PA_DEBUG.g_err_stage:= 'PA_TASK_TYPE_PVT.DELETE_DELIVERABLE_TYPE : Printing Input parameters';
1064 PA_DEBUG.WRITE(g_module_name,Pa_Debug.g_err_stage,
1065 l_debug_level3);
1066 PA_DEBUG.WRITE(g_module_name,'p_deliverable_type_id'||':'||p_deliverable_type_id,
1067 l_debug_level3);
1068 PA_DEBUG.WRITE(g_module_name,'p_record_version_number'||':'||p_record_version_number,
1069 l_debug_level3);
1070 END IF;
1071
1072 --Initialize the Message Stack
1073 IF FND_API.TO_BOOLEAN(nvl(p_init_msg_list,FND_API.G_TRUE))
1074 THEN
1075 FND_MSG_PUB.initialize;
1076 END IF;
1077
1078 IF l_debug_mode = 'Y'
1079 THEN
1080 PA_DEBUG.g_err_stage:= 'BEFORE CALLING PA_ACTIONS_PUB.DELETE_DLV_ACTIONS';
1081 PA_DEBUG.WRITE(g_module_name,Pa_Debug.g_err_stage,
1082 l_debug_level3);
1083 END IF;
1084 --Call Delete Deliverable Actions API
1085 PA_ACTIONS_PUB.DELETE_DLV_ACTIONS_IN_BULK
1089 ,p_validate_only => p_validate_only
1086 (p_api_version => p_api_version
1087 ,p_init_msg_list => FND_API.G_FALSE
1088 ,p_commit => p_commit
1090 ,p_validation_level => p_validation_level
1091 ,p_calling_module => p_calling_module
1092 ,p_debug_mode => l_debug_mode
1093 ,p_max_msg_count => p_max_msg_count
1094 ,p_object_id => p_deliverable_type_id
1095 ,p_object_type => 'PA_DLVR_TYPES'
1096 ,x_return_status => x_return_status
1097 ,x_msg_data => x_msg_data
1098 ,x_msg_count => x_msg_count);
1099
1100 IF l_debug_mode = 'Y'
1101 THEN
1102 PA_DEBUG.g_err_stage:= 'AFTER RETURNING FROM PA_ACTIONS_PUB.DELETE_DLV_ACTIONS';
1103 PA_DEBUG.WRITE(g_module_name,Pa_Debug.g_err_stage,
1104 l_debug_level3);
1105 END IF;
1106
1107 IF (x_return_status <> FND_API.G_RET_STS_SUCCESS)
1108 THEN
1109 RAISE FND_API.G_EXC_ERROR;
1110 END IF;
1111
1112 --Call PA_TASK_TYPE_PKG.DELETE_ROW(p_deliverable_type_id)
1113 PA_TASK_TYPE_PKG.delete_row
1114 (p_task_type_id => p_deliverable_type_id
1115 ,p_record_version_number => p_record_version_number
1116 ,x_return_status => x_return_status
1117 ,x_msg_data => x_msg_data
1118 ,x_msg_count => x_msg_count);
1119
1120 IF (x_return_status <> FND_API.G_RET_STS_SUCCESS)
1121 THEN
1122 RAISE FND_API.G_EXC_ERROR;
1123 END IF;
1124 EXCEPTION
1125
1126 WHEN FND_API.G_EXC_ERROR THEN
1127 x_return_status := FND_API.G_RET_STS_ERROR;
1128 l_msg_count := FND_MSG_PUB.count_msg;
1129
1130 IF p_commit = FND_API.G_TRUE
1131 THEN
1132 ROLLBACK TO DELETE_DELIVERABLE_TYPE;
1133 END IF;
1134
1135 IF l_msg_count = 1 AND x_msg_data IS NULL
1136 THEN
1137 Pa_Interface_Utils_Pub.get_messages
1138 ( p_encoded => Fnd_Api.G_TRUE
1139 , p_msg_index => 1
1140 , p_msg_count => l_msg_count
1141 , p_msg_data => l_msg_data
1142 , p_data => l_data
1143 , p_msg_index_out => l_msg_index_out);
1144 x_msg_data := l_data;
1145 x_msg_count := l_msg_count;
1146 ELSE
1147 x_msg_count := l_msg_count;
1148 END IF;
1149
1150 IF l_debug_mode = 'Y'
1151 THEN
1152 Pa_Debug.reset_curr_function;
1153 END IF;
1154
1155 WHEN OTHERS THEN
1156 -- Set the exception Message and the stack
1157 x_return_status := Fnd_Api.G_RET_STS_UNEXP_ERROR;
1158 x_msg_count := 1;
1159 x_msg_data := SQLERRM;
1160
1161 IF p_commit = FND_API.G_TRUE
1162 THEN
1163 ROLLBACK TO DELETE_DELIVERABLE_TYPE;
1164 END IF;
1165
1166 Fnd_Msg_Pub.add_exc_msg
1167 ( p_pkg_name => 'PA_TASK_TYPE_PVT'
1168 , p_procedure_name => 'DELETE_DELIVERABLE_TYPE'
1169 , p_error_text => x_msg_data);
1170
1171 IF l_debug_mode = 'Y'
1172 THEN
1173 Pa_Debug.g_err_stage:= 'Unexpected Error'||x_msg_data;
1174 Pa_Debug.WRITE(g_module_name,Pa_Debug.g_err_stage,
1175 l_debug_level5);
1176 Pa_Debug.reset_curr_function;
1177 END IF;
1178 RAISE;
1179 END DELETE_DELIVERABLE_TYPE;
1180 END PA_TASK_TYPE_PVT;