[Home] [Help]
PACKAGE BODY: APPS.PA_TASK_TYPE_UTILS
Source
1 PACKAGE BODY pa_task_type_utils AS
2 /*$Header: PATTUTLB.pls 120.2 2005/08/25 03:28:25 sunkalya noship $*/
3
4 FUNCTION is_task_type_unique(p_task_type IN VARCHAR2,
5 p_task_type_id IN NUMBER := NULL) RETURN VARCHAR2
6 IS
7 l_task_type_unique VARCHAR2(1);
8
9 CURSOR c1 IS
10 SELECT 'X'
11 FROM pa_task_types
12 WHERE task_type = p_task_type
13 AND object_type = 'PA_TASKS' /* bug 3279978 FP M Enhancement */
14 AND ((task_type_id <> p_task_type_id AND p_task_type_id IS NOT NULL)
15 OR p_task_type_id IS NULL);
16
17 BEGIN
18 OPEN c1;
19 FETCH c1 INTO l_task_type_unique;
20 IF c1%FOUND THEN
21 RETURN 'N';
22 ELSE
23 RETURN 'Y';
24 END IF;
25
26 CLOSE c1;
27
28 EXCEPTION
29 WHEN OTHERS THEN
30 FND_MSG_PUB.add_exc_msg
31 (p_pkg_name => 'PA_TASK_TYPE_UTILS.is_task_type_unique',
32 p_procedure_name => PA_DEBUG.G_Err_Stack );
33 RAISE;
34 END is_task_type_unique;
35
36
37 PROCEDURE change_task_type_allowed(p_task_id IN NUMBER,
38 p_from_task_type_id IN NUMBER,
39 p_to_task_type_id IN NUMBER,
40 x_change_allowed OUT NOCOPY VARCHAR2, --File.Sql.39 bug 4440895
41 x_return_status OUT NOCOPY VARCHAR2, --File.Sql.39 bug 4440895
42 x_msg_count OUT NOCOPY NUMBER, --File.Sql.39 bug 4440895
43 x_msg_data OUT NOCOPY VARCHAR2) --File.Sql.39 bug 4440895
44
45 IS
46 CURSOR c1(p_task_type_id IN NUMBER) IS
47 SELECT prog_entry_enable_flag, wq_enable_flag, percent_comp_enable_flag, remain_effort_enable_flag
48 FROM pa_task_types
49 WHERE task_type_id = p_task_type_id;
50
51 CURSOR c2(p_task_type_id IN NUMBER) IS
52 SELECT prog_entry_enable_flag, wq_enable_flag, percent_comp_enable_flag, remain_effort_enable_flag
53 FROM pa_task_types
54 WHERE task_type_id = p_task_type_id;
55
56 v_c1 c1%ROWTYPE;
57 v_c2 c2%ROWTYPE;
58
59 --hsiu: bug 2663532
60 CURSOR c3(p_task_id NUMBER) IS
61 select a.project_id, a.proj_element_id
62 from pa_proj_element_versions a,
63 pa_proj_element_versions b
64 where b.proj_element_id = p_task_id
65 and b.parent_structure_version_id = a.element_version_id
66 and b.project_id = a.project_id;
67 v_c3 c3%ROWTYPE;
68 --end bug 2663532
69
70 BEGIN
71
72 x_return_status := FND_API.G_RET_STS_SUCCESS;
73 x_change_allowed := 'N';
74
75 OPEN c1(p_from_task_type_id);
76 FETCH c1 INTO v_c1;
77 CLOSE c1;
78
79 OPEN c2(p_to_task_type_id);
80 FETCH c2 INTO v_c2;
81 CLOSE c2;
82
83 OPEN c3(p_task_id);
84 FETCH c3 INTO v_c3;
85 CLOSE c3;
86
87 IF (PA_PROGRESS_UTILS.check_task_has_progress(p_task_id) = 'N') THEN
88 IF (v_c1.prog_entry_enable_flag = 'Y' AND v_c2.prog_entry_enable_flag = 'N') AND
89 ('Y' = PA_PROJECT_STRUCTURE_UTILS.CHECK_PUBLISHED_VER_EXISTS(v_c3.project_id, v_c3.proj_element_id)
90 AND 'Y' = PA_WORKPLAN_ATTR_UTILS.CHECK_WP_VERSIONING_ENABLED(v_c3.project_id)) THEN
91 x_change_allowed := 'N';
92 ELSE
93 x_change_allowed := 'Y';
94 END IF;
95 ELSE
96 -- If the change is Y -> N, then it is NOT allowed.
97 IF ((v_c1.prog_entry_enable_flag = 'Y' AND v_c2.prog_entry_enable_flag = 'N')
98 AND ('Y' = PA_PROJECT_STRUCTURE_UTILS.CHECK_PUBLISHED_VER_EXISTS(v_c3.project_id, v_c3.proj_element_id)
99 AND 'Y' = PA_WORKPLAN_ATTR_UTILS.CHECK_WP_VERSIONING_ENABLED(v_c3.project_id)))
100 OR
101 (v_c1.wq_enable_flag = 'Y' AND v_c2.wq_enable_flag = 'N')
102 OR
103 (v_c1.percent_comp_enable_flag = 'Y' AND v_c2.percent_comp_enable_flag = 'N')
104 OR
105 (v_c1.remain_effort_enable_flag = 'Y' AND v_c2.remain_effort_enable_flag = 'N')
106 THEN
107 x_change_allowed := 'N';
108 --added by hsiu
109 ELSE
110 x_change_allowed := 'Y';
111 --end changes
112 END IF;
113
114 END IF;
115
116 EXCEPTION
117 WHEN OTHERS THEN
118 FND_MSG_PUB.add_exc_msg
119 (p_pkg_name => 'PA_TASK_TYPE_UTILS.change_task_type_allowed',
120 p_procedure_name => PA_DEBUG.G_Err_Stack );
121 x_return_status := FND_API.G_RET_STS_UNEXP_ERROR ;
122 RAISE;
123 END change_task_type_allowed;
124
125
126 PROCEDURE change_wi_allowed(p_task_id IN NUMBER,
127 x_return_status OUT NOCOPY VARCHAR2, --File.Sql.39 bug 4440895
128 x_msg_count OUT NOCOPY NUMBER, --File.Sql.39 bug 4440895
129 x_msg_data OUT NOCOPY VARCHAR2) --File.Sql.39 bug 4440895
130
131 IS
132 l_msg_index_out NUMBER;
133 --Bug: 4537865
134 l_new_msg_data VARCHAR2(2000);
135 --Bug: 4537865
136 l_change_wi_not_allowed EXCEPTION;
137
138 BEGIN
139 x_return_status := FND_API.G_RET_STS_SUCCESS;
140
141 IF PA_PROGRESS_UTILS.check_task_has_progress(p_task_id) = 'Y' THEN
142 RAISE l_change_wi_not_allowed;
143 END IF;
144
145 EXCEPTION
146 WHEN l_change_wi_not_allowed THEN
147 PA_UTILS.add_message('PA','PA_CHANGE_WI_NOT_ALLOWED');
148 x_return_status := FND_API.G_RET_STS_ERROR;
149 x_msg_data := 'PA_CHANGE_WI_NOT_ALLOWED';
150 x_msg_count := FND_MSG_PUB.Count_Msg;
151 If x_msg_count = 1 THEN
152 pa_interface_utils_pub.get_messages
153 (p_encoded => FND_API.G_TRUE,
154 p_msg_index => 1,
155 p_msg_count => x_msg_count,
156 p_msg_data => x_msg_data,
157 --p_data => x_msg_data, --Bug: 4537865
158 p_data => l_new_msg_data, --Bug: 4537865
159 p_msg_index_out => l_msg_index_out );
160 --Bug: 4537865
161 x_msg_data := l_new_msg_data;
162 --Bug: 4537865
163 End if;
164 WHEN OTHERS THEN
165 x_return_status := FND_API.G_RET_STS_UNEXP_ERROR ; -- 4537865
166 FND_MSG_PUB.add_exc_msg
167 (p_pkg_name => 'PA_TASK_TYPE_UTILS.change_work_item_allowed',
168 p_procedure_name => PA_DEBUG.G_Err_Stack );
169 RAISE;
170
171 END change_wi_allowed;
172
173
174 PROCEDURE change_uom_allowed(p_task_id IN NUMBER,
175 x_return_status OUT NOCOPY VARCHAR2, --File.Sql.39 bug 4440895
176 x_msg_count OUT NOCOPY NUMBER, --File.Sql.39 bug 4440895
177 x_msg_data OUT NOCOPY VARCHAR2) --File.Sql.39 bug 4440895
178
179 IS
180 l_msg_index_out NUMBER;
181 --Bug: 4537865
182 l_new_msg_data VARCHAR2(2000);
183 l_change_uom_not_allowed EXCEPTION;
184
185 BEGIN
186 x_return_status := FND_API.G_RET_STS_SUCCESS;
187
188 IF PA_PROGRESS_UTILS.check_task_has_progress(p_task_id) = 'Y' THEN
189 RAISE l_change_uom_not_allowed;
190 END IF;
191
192 EXCEPTION
193 WHEN l_change_uom_not_allowed THEN
194 PA_UTILS.add_message('PA','PA_CHANGE_UOM_NOT_ALLOWED');
195 x_return_status := FND_API.G_RET_STS_ERROR;
196 x_msg_data := 'PA_CHANGE_UOM_NOT_ALLOWED';
197 x_msg_count := FND_MSG_PUB.Count_Msg;
198 If x_msg_count = 1 THEN
199 pa_interface_utils_pub.get_messages
200 (p_encoded => FND_API.G_TRUE,
201 p_msg_index => 1,
202 p_msg_count => x_msg_count,
203 p_msg_data => x_msg_data,
204 --p_data => x_msg_data, --Bug: 4537865
205 p_data => l_new_msg_data, --Bug: 4537865
206 p_msg_index_out => l_msg_index_out );
207 --Bug: 4537865
208 x_msg_data := l_new_msg_data;
209 --Bug: 4537865
210 End if;
211 WHEN OTHERS THEN
212 x_return_status := FND_API.G_RET_STS_UNEXP_ERROR ; -- 4537865
213 FND_MSG_PUB.add_exc_msg
214 (p_pkg_name => 'PA_TASK_TYPE_UTILS.change_uom_allowed',
215 p_procedure_name => PA_DEBUG.G_Err_Stack );
216 RAISE;
217
218 END change_uom_allowed;
219
220
221 PROCEDURE check_planned_quantity(p_planned_quantity IN NUMBER,
222 p_actual_work_quantity IN NUMBER,
223 x_return_status OUT NOCOPY VARCHAR2, --File.Sql.39 bug 4440895
224 x_msg_count OUT NOCOPY NUMBER, --File.Sql.39 bug 4440895
225 x_msg_data OUT NOCOPY VARCHAR2) --File.Sql.39 bug 4440895
226
227 IS
228 l_msg_index_out NUMBER;
229 --bug: 4537865
230 l_new_msg_data VARCHAR2(2000);
231 --bug: 4537865
232 l_planned_quantity_error EXCEPTION;
233
234 BEGIN
235 x_return_status := FND_API.G_RET_STS_SUCCESS;
236 IF p_planned_quantity < p_actual_work_quantity THEN
237 RAISE l_planned_quantity_error;
238 END IF;
239
240 EXCEPTION
241 WHEN l_planned_quantity_error THEN
242 PA_UTILS.add_message('PA','PA_PLANNED_QUANTITY_ERROR');
243 x_return_status := FND_API.G_RET_STS_ERROR;
244 x_msg_data := 'PA_PLANNED_QUANTITY_ERROR';
245 x_msg_count := FND_MSG_PUB.Count_Msg;
246 If x_msg_count = 1 THEN
247 pa_interface_utils_pub.get_messages
248 (p_encoded => FND_API.G_TRUE,
249 p_msg_index => 1,
250 p_msg_count => x_msg_count,
251 p_msg_data => x_msg_data,
252 --p_data => x_msg_data, --Bug: 4537865
253 p_data => l_new_msg_data, --Bug: 4537865
254 p_msg_index_out => l_msg_index_out );
255 --Bug: 4537865
256 x_msg_data := l_new_msg_data;
257 --Bug: 4537865
258 End if;
259 WHEN OTHERS THEN
260 FND_MSG_PUB.add_exc_msg
261 (p_pkg_name => 'PA_TASK_TYPE_UTILS.change_task_type_allowed',
262 p_procedure_name => PA_DEBUG.G_Err_Stack );
263 x_return_status := FND_API.G_RET_STS_UNEXP_ERROR ;
264 RAISE;
265
266 END check_planned_quantity;
267
268 FUNCTION check_page_layout_referenced(
269 p_page_id NUMBER ) RETURN BOOLEAN
270 is
271 Cursor c_task_type_ref
272 is
273 Select 'X' from pa_task_types
274 where task_progress_entry_page_id = p_page_id
275 AND object_type = 'PA_TASKS'; /* bug 3279978 FP M Enhancement */
276
277 l_dummy varchar2(1);
278 l_return_value boolean := FALSE;
279
280 Begin
281 open c_task_type_ref;
282 fetch c_task_type_ref into l_dummy;
283 if (c_task_type_ref%FOUND) then
284 l_return_value := TRUE;
285 end if;
286 close c_task_type_ref;
287
288 return l_return_value;
289
290 End check_page_layout_referenced;
291
292
293 PROCEDURE validate_progress_attributes(
294 p_prog_entry_enable_flag IN VARCHAR2
295 ,p_prog_entry_req_flag IN VARCHAR2
296 ,p_initial_progress_status_code IN VARCHAR2
297 ,p_task_prog_entry_page_id IN NUMBER
298 ,p_wq_enable_flag IN VARCHAR2
299 ,p_work_item_code IN VARCHAR2
300 ,p_uom_code IN VARCHAR2
301 ,p_actual_wq_entry_code IN VARCHAR2
302 ,p_percent_comp_enable_flag IN VARCHAR2
303 ,p_base_percent_comp_deriv_code IN VARCHAR2
304 ,p_task_weighting_deriv_code IN VARCHAR2
305 ,p_remain_effort_enable_flag IN VARCHAR2
306 ,x_return_status OUT NOCOPY VARCHAR2 --File.Sql.39 bug 4440895
307 ,x_msg_count OUT NOCOPY NUMBER --File.Sql.39 bug 4440895
308 ,x_msg_data OUT NOCOPY VARCHAR2) --File.Sql.39 bug 4440895
309
310 IS
311 l_prog_entry_enable_invalid EXCEPTION;
312 l_wq_enable_invalid EXCEPTION;
313 l_percent_comp_enable_invalid EXCEPTION;
314 l_prog_entry_attr_missing EXCEPTION;
315 l_wq_attr_missing EXCEPTION;
316 l_percent_comp_attr_missing EXCEPTION;
317 l_base_deriv_method_invalid EXCEPTION;
318
319 l_msg_index_out NUMBER;
320 -- Bug: 4537865
321 l_new_msg_data VARCHAR2(2000);
322 -- Bug: 4537865
323
324 BEGIN
325
326 x_return_status := FND_API.G_RET_STS_SUCCESS;
327
328 IF p_prog_entry_enable_flag = 'N' THEN
329 IF ( p_prog_entry_req_flag = 'Y'
330 OR p_initial_progress_status_code IS NOT NULL
331 OR p_task_prog_entry_page_id IS NOT NULL
332 OR p_wq_enable_flag = 'Y'
333 OR p_work_item_code IS NOT NULL
334 OR p_uom_code IS NOT NULL
335 OR p_actual_wq_entry_code IS NOT NULL
336 OR p_percent_comp_enable_flag = 'Y'
337 OR p_base_percent_comp_deriv_code IS NOT NULL
338 OR p_task_weighting_deriv_code IS NOT NULL
339 OR p_remain_effort_enable_flag = 'Y' ) THEN
340
341 RAISE l_prog_entry_enable_invalid;
342
343 END IF;
344
345 ELSE
346
347 IF p_prog_entry_enable_flag = 'Y' AND p_initial_progress_status_code IS NULL THEN
348
349 RAISE l_prog_entry_attr_missing;
350
351 END IF;
352
353 IF p_wq_enable_flag = 'Y' AND (p_work_item_code IS NULL OR p_uom_code IS NULL
354 OR p_actual_wq_entry_code IS NULL) THEN
355
356 RAISE l_wq_attr_missing;
357
358 END IF;
359
360 IF p_percent_comp_enable_flag = 'Y' AND p_base_percent_comp_deriv_code IS NULL THEN
361
362 RAISE l_percent_comp_attr_missing;
363
364 END IF;
365
366 -- 2621629: Added validation for base % complete derivation method.
367 IF p_percent_comp_enable_flag = 'Y' AND p_wq_enable_flag = 'N' AND p_base_percent_comp_deriv_code = 'WQ_DERIVED' THEN
368
369 RAISE l_base_deriv_method_invalid;
370
371 END IF;
372
373 IF p_wq_enable_flag = 'N' AND (p_work_item_code IS NOT NULL OR p_uom_code IS NOT NULL
374 OR p_actual_wq_entry_code IS NOT NULL) THEN
375
376 RAISE l_wq_enable_invalid;
377
378 END IF;
379
380 IF p_percent_comp_enable_flag = 'N' AND p_base_percent_comp_deriv_code IS NOT NULL THEN
381
382 RAISE l_percent_comp_enable_invalid;
383
384 END IF;
385
386 END IF;
387
388 EXCEPTION
389 WHEN l_prog_entry_enable_invalid THEN
390 PA_UTILS.add_message('PA','PA_PROG_ENTRY_ENABLE_INVALID');
391 x_return_status := FND_API.G_RET_STS_ERROR;
392 x_msg_data := 'PA_PROG_ENTRY_ENABLE_INVALID';
393 x_msg_count := FND_MSG_PUB.Count_Msg;
394 If x_msg_count = 1 THEN
395 pa_interface_utils_pub.get_messages
396 (p_encoded => FND_API.G_TRUE,
397 p_msg_index => 1,
398 p_msg_count => x_msg_count,
399 p_msg_data => x_msg_data,
400 --p_data => x_msg_data, --Bug: 4537865
401 p_data => l_new_msg_data, --Bug: 4537865
402 p_msg_index_out => l_msg_index_out );
403 --Bug: 4537865
404 x_msg_data := l_new_msg_data;
405 --Bug: 4537865
406 End if;
407
408 WHEN l_prog_entry_attr_missing THEN
409 PA_UTILS.add_message('PA','PA_PROG_ENTRY_ATTR_MISSING');
410 x_return_status := FND_API.G_RET_STS_ERROR;
411 x_msg_data := 'PA_PROG_ENTRY_ATTR_MISSING';
412 x_msg_count := FND_MSG_PUB.Count_Msg;
413 If x_msg_count = 1 THEN
414 pa_interface_utils_pub.get_messages
415 (p_encoded => FND_API.G_TRUE,
416 p_msg_index => 1,
417 p_msg_count => x_msg_count,
418 p_msg_data => x_msg_data,
419 --p_data => x_msg_data, --Bug: 4537865
420 p_data => l_new_msg_data, --Bug: 4537865
421 p_msg_index_out => l_msg_index_out );
422 --Bug: 4537865
423 x_msg_data := l_new_msg_data;
424 --Bug: 4537865
425 End if;
426
427 WHEN l_wq_enable_invalid THEN
428 PA_UTILS.add_message('PA','PA_WQ_ENABLE_INVALID');
429 x_return_status := FND_API.G_RET_STS_ERROR;
430 x_msg_data := 'PA_WQ_ENABLE_INVALID';
431 x_msg_count := FND_MSG_PUB.Count_Msg;
432 If x_msg_count = 1 THEN
433 pa_interface_utils_pub.get_messages
434 (p_encoded => FND_API.G_TRUE,
435 p_msg_index => 1,
436 p_msg_count => x_msg_count,
437 p_msg_data => x_msg_data,
438 --p_data => x_msg_data, --Bug: 4537865
439 p_data => l_new_msg_data, --Bug: 4537865
440 p_msg_index_out => l_msg_index_out );
441 --Bug: 4537865
442 x_msg_data := l_new_msg_data;
443 --Bug: 4537865
444 End if;
445
446 WHEN l_wq_attr_missing THEN
447 PA_UTILS.add_message('PA','PA_WQ_ATTR_MISSING');
448 x_return_status := FND_API.G_RET_STS_ERROR;
449 x_msg_data := 'PA_WQ_ATTR_MISSING';
450 x_msg_count := FND_MSG_PUB.Count_Msg;
451 If x_msg_count = 1 THEN
452 pa_interface_utils_pub.get_messages
453 (p_encoded => FND_API.G_TRUE,
454 p_msg_index => 1,
455 p_msg_count => x_msg_count,
456 p_msg_data => x_msg_data,
457 --p_data => x_msg_data, --Bug: 4537865
458 p_data => l_new_msg_data, --Bug: 4537865
459 p_msg_index_out => l_msg_index_out );
460 --Bug: 4537865
461 x_msg_data := l_new_msg_data;
462 --Bug: 4537865
463 End if;
464
465 WHEN l_percent_comp_enable_invalid THEN
466 PA_UTILS.add_message('PA','PA_PERCENT_COMP_ENABLE_INVALID');
467 x_return_status := FND_API.G_RET_STS_ERROR;
468 x_msg_data := 'PA_PERCENT_COMP_ENABLE_INVALID';
469 x_msg_count := FND_MSG_PUB.Count_Msg;
470 If x_msg_count = 1 THEN
471 pa_interface_utils_pub.get_messages
472 (p_encoded => FND_API.G_TRUE,
473 p_msg_index => 1,
474 p_msg_count => x_msg_count,
475 p_msg_data => x_msg_data,
476 --p_data => x_msg_data, --Bug: 4537865
477 p_data => l_new_msg_data, --Bug: 4537865
478 p_msg_index_out => l_msg_index_out );
479 --Bug: 4537865
480 x_msg_data := l_new_msg_data;
481 --Bug: 4537865
482 End if;
483
484 WHEN l_percent_comp_attr_missing THEN
485 PA_UTILS.add_message('PA','PA_PERCENT_COMP_ATTR_MISSING');
486 x_return_status := FND_API.G_RET_STS_ERROR;
487 x_msg_data := 'PA_PERCENT_COMP_ATTR_MISSING';
488 x_msg_count := FND_MSG_PUB.Count_Msg;
489 If x_msg_count = 1 THEN
490 pa_interface_utils_pub.get_messages
491 (p_encoded => FND_API.G_TRUE,
492 p_msg_index => 1,
493 p_msg_count => x_msg_count,
494 p_msg_data => x_msg_data,
495 --p_data => x_msg_data, --Bug: 4537865
496 p_data => l_new_msg_data, --Bug: 4537865
497 p_msg_index_out => l_msg_index_out );
498 --Bug: 4537865
499 x_msg_data := l_new_msg_data;
500 --Bug: 4537865
501 End if;
502
503 WHEN l_base_deriv_method_invalid THEN
504 PA_UTILS.add_message('PA','PA_BASE_DERIV_METHOD_INVALID');
505 x_return_status := FND_API.G_RET_STS_ERROR;
506 x_msg_data := 'PA_BASE_DERIV_METHOD_INVALID';
507 x_msg_count := FND_MSG_PUB.Count_Msg;
508 If x_msg_count = 1 THEN
509 pa_interface_utils_pub.get_messages
510 (p_encoded => FND_API.G_TRUE,
511 p_msg_index => 1,
512 p_msg_count => x_msg_count,
513 p_msg_data => x_msg_data,
514 --p_data => x_msg_data, --Bug: 4537865
515 p_data => l_new_msg_data, --Bug: 4537865
516 p_msg_index_out => l_msg_index_out );
517 --Bug: 4537865
518 x_msg_data := l_new_msg_data;
519 --Bug: 4537865
520 End if;
521
522 WHEN OTHERS THEN
523 FND_MSG_PUB.add_exc_msg
524 (p_pkg_name => 'PA_TASK_TYPE_UTILS.validate_progress_attributes',
525 p_procedure_name => PA_DEBUG.G_Err_Stack );
526 RAISE;
527
528 END validate_progress_attributes;
529
530 FUNCTION check_tk_type_effective(p_task_type_id IN NUMBER)
531 RETURN VARCHAR2
532 IS
533 CURSOR c1 IS
534 select 'Y'
535 from pa_task_types
536 where task_type_id = p_task_type_id
537 and sysdate > start_date_active
538 and (end_date_active IS NULL or end_date_active > sysdate);
539 l_dummy VARCHAR2(1);
540 BEGIN
541 OPEN c1;
542 FETCH c1 into l_dummy;
543 IF c1%NOTFOUND THEN
544 l_dummy := 'N';
545 END IF;
546 CLOSE c1;
547 return l_dummy;
548 END check_tk_type_effective;
549
550 FUNCTION check_tk_type_progressable(p_task_type_id IN NUMBER)
551 RETURN VARCHAR2
552 IS
553 CURSOR c1 IS
554 select 'Y'
555 from pa_task_types
556 where task_type_id = p_task_type_id
557 and PROG_ENTRY_ENABLE_FLAG = 'Y';
558 l_dummy VARCHAR2(1);
559
560 BEGIN
561 OPEN c1;
562 FETCH c1 into l_dummy;
563 IF c1%NOTFOUND THEN
564 l_dummy := 'N';
565 END IF;
566 CLOSE c1;
567 return l_dummy;
568 END check_tk_type_progressable;
569
570
571 FUNCTION check_tk_type_wq_enabled(p_task_type_id IN NUMBER)
572 RETURN VARCHAR2
573 IS
574 CURSOR c1 IS
575 select 'Y'
576 from pa_task_types
577 where task_type_id = p_task_type_id
578 and WQ_ENABLE_FLAG = 'Y';
579 l_dummy VARCHAR2(1);
580 BEGIN
581 OPEN c1;
582 FETCH c1 into l_dummy;
583 IF c1%NOTFOUND THEN
584 l_dummy := 'N';
585 END IF;
586 CLOSE c1;
587 return l_dummy;
588 END check_tk_type_wq_enabled;
589
590 END pa_task_type_utils;