DBA Data[Home] [Help]

PACKAGE BODY: APPS.JTF_TASK_TEMPLATES_UTL

Source


1 PACKAGE BODY jtf_task_templates_utl AS
2 /* $Header: jtfptutb.pls 120.8.12000000.2 2007/06/29 09:40:42 tduggara ship $ */
3 
4    PROCEDURE validate_task_template_group (
5       p_task_template_group_id IN NUMBER
6    )
7    IS
8       -- Bug 3374694: modified cursor query for truncating time portion of dates.
9       CURSOR c_task_template_group_id
10       IS
11       SELECT task_template_group_id
12 	FROM jtf_task_temp_groups_b
13        WHERE task_template_group_id = p_task_template_group_id
14 	 AND trunc(NVL (end_date_active, SYSDATE)) >= trunc(SYSDATE)
15 	 AND trunc(NVL (start_date_active, SYSDATE)) <= trunc(SYSDATE);
16 
17       x_task_template_group_id	 NUMBER;
18    BEGIN
19       IF p_task_template_group_id IS NOT NULL
20       THEN
21 	 OPEN c_task_template_group_id;
22 	 FETCH c_task_template_group_id INTO x_task_template_group_id;
23 	 IF c_task_template_group_id%NOTFOUND
24 	 THEN
25 	    CLOSE c_task_template_group_id;
26 	    fnd_message.set_name ('JTF', 'JTF_TASK_MISSING_TEMP_GRP');
27 	    fnd_msg_pub.add;
28 	    RAISE fnd_api.g_exc_unexpected_error;
29 	 END IF;
30 	 CLOSE c_task_template_group_id;
31       ELSE
32 	  fnd_message.set_name ('JTF', 'JTF_TASK_MISSING_TEMP_GRP');
33 	  fnd_msg_pub.add;
34 	  RAISE fnd_api.g_exc_unexpected_error;
35       END IF;
36 
37    END;  -- Procedure End
38 
39    PROCEDURE validate_create_template (
40       p_task_template_info IN jtf_task_inst_templates_pub.task_template_info,
41       p_source_object_type_code IN jtf_objects_b.object_code%TYPE,
42       p_task_template_group_info IN jtf_task_inst_templates_pub.task_template_group_info,
43       x_task_id OUT NOCOPY NUMBER,
44       x_msg_count OUT NOCOPY NUMBER,
45       x_msg_data OUT NOCOPY VARCHAR2,
46       x_return_status OUT NOCOPY VARCHAR2
47    )
48    IS
49       CURSOR c_task_template (
50 	 p_task_template_group_id IN NUMBER,
51 	 task_template_record IN jtf_task_inst_templates_pub.task_template_info
52       )
53       IS
54 	 SELECT task_template_id,
55 		task_number,
56 		DECODE (
57 		   task_template_record.task_name,
58 		   NULL, task_name,
59 		   FND_API.G_MISS_CHAR, NULL,
60 		   task_template_record.task_name
61 		) task_name,
62 		DECODE (
63 		   task_template_record.description,
64 		   NULL, description,
65 		   FND_API.G_MISS_CHAR, NULL,
66 		   task_template_record.description
67 		) description,
68 		DECODE (
69 		   task_template_record.task_type_id,
70 		   NULL, task_type_id,
71 		   FND_API.G_MISS_CHAR, NULL,
72 		   task_template_record.task_type_id
73 		) task_type_id,
74 		DECODE (
75 		   task_template_record.task_status_id,
76 		   NULL, task_status_id,
77 		   FND_API.G_MISS_CHAR, NULL,
78 		   task_template_record.task_status_id
79 		) task_status_id,
80 		DECODE (
81 		   task_template_record.task_priority_id,
82 		   NULL, task_priority_id,
83 		   FND_API.G_MISS_CHAR, NULL,
84 		   task_template_record.task_priority_id
85 		) task_priority_id,
86 		DECODE (
87 		   task_template_record.duration,
88 		   NULL, duration,
89 		   FND_API.G_MISS_CHAR, NULL,
90 		   task_template_record.duration
91 		) duration,
92 		DECODE (
93 		   task_template_record.duration_uom,
94 		   NULL, duration_uom,
95 		   FND_API.G_MISS_CHAR, NULL,
96 		   task_template_record.duration_uom
97 		) duration_uom,
98 		DECODE (
99 		   task_template_record.planned_effort,
100 		   NULL, planned_effort,
101 		   FND_API.G_MISS_CHAR, NULL,
102 		   task_template_record.planned_effort
103 		) planned_effort,
104 		DECODE (
105 		   task_template_record.planned_effort_uom,
106 		   NULL, planned_effort_uom,
107 		   FND_API.G_MISS_CHAR, NULL,
108 		   task_template_record.planned_effort_uom
109 		) planned_effort_uom,
110 		DECODE (
111 		   task_template_record.private_flag,
112 		   NULL, private_flag,
113 		   FND_API.G_MISS_CHAR, NULL,
114 		   task_template_record.private_flag
115 		) private_flag,
116 		publish_flag,
117 		DECODE (
118 		   task_template_record.restrict_closure_flag,
119 		   NULL, restrict_closure_flag,
120 		   FND_API.G_MISS_CHAR, NULL,
121 		   task_template_record.restrict_closure_flag
122 		) restrict_closure_flag,
123 		multi_booked_flag,
124 		milestone_flag,
125 		holiday_flag,
126 		billable_flag,
127 		notification_flag,
128 		notification_period,
129 		notification_period_uom,
130 		recurrence_rule_id,
131 		alarm_start,
132 		alarm_start_uom,
133 		alarm_on,
134 		alarm_count,
135 		alarm_interval,
136 		alarm_interval_uom,
137 		task_template_record.palm_flag palm_flag,
138 		task_template_record.wince_flag wince_flag,
139 		task_template_record.laptop_flag laptop_flag,
140 		task_template_record.device1_flag device1_flag,
141 		task_template_record.device2_flag device2_flag,
142 		task_template_record.device3_flag device3_flag,
143 		task_template_record.timezone_id timezone_id,
144 		DECODE (
145 		   task_template_record.attribute1,
146 		   NULL, attribute1,
147 		   FND_API.G_MISS_CHAR, NULL,
148 		   task_template_record.attribute1
149 		) attribute1,
150 		DECODE (
151 		   task_template_record.attribute2,
152 		   NULL, attribute2,
153 		   FND_API.G_MISS_CHAR, NULL,
154 		   task_template_record.attribute2
155 		) attribute2,
156 		DECODE (
157 		   task_template_record.attribute3,
158 		   NULL, attribute3,
159 		   FND_API.G_MISS_CHAR, NULL,
160 		   task_template_record.attribute3
161 		) attribute3,
162 		DECODE (
163 		   task_template_record.attribute4,
164 		   NULL, attribute4,
165 		   FND_API.G_MISS_CHAR, NULL,
166 		   task_template_record.attribute4
167 		) attribute4,
168 		DECODE (
169 		   task_template_record.attribute5,
170 		   NULL, attribute5,
171 		   FND_API.G_MISS_CHAR, NULL,
172 		   task_template_record.attribute5
173 		) attribute5,
174 		DECODE (
175 		   task_template_record.attribute6,
176 		   NULL, attribute6,
177 		   task_template_record.attribute6
178 		) attribute6,
179 		DECODE (
180 		   task_template_record.attribute7,
181 		   NULL, attribute7,
182 		   FND_API.G_MISS_CHAR, NULL,
183 		   task_template_record.attribute7
184 		) attribute7,
185 		DECODE (
186 		   task_template_record.attribute8,
187 		   NULL, attribute8,
188 		   FND_API.G_MISS_CHAR, NULL,
189 		   task_template_record.attribute8
190 		) attribute8,
191 		DECODE (
192 		   task_template_record.attribute9,
193 		   NULL, attribute9,
194 		   FND_API.G_MISS_CHAR, NULL,
195 		   task_template_record.attribute9
196 		) attribute9,
197 		DECODE (
198 		   task_template_record.attribute10,
199 		   NULL, attribute10,
200 		   FND_API.G_MISS_CHAR, NULL,
201 		   task_template_record.attribute10
202 		) attribute10,
203 		DECODE (
204 		   task_template_record.attribute11,
205 		   NULL, attribute11,
206 		   FND_API.G_MISS_CHAR, NULL,
207 		   task_template_record.attribute11
208 		) attribute11,
209 		DECODE (
210 		   task_template_record.attribute12,
211 		   NULL, attribute12,
212 		   FND_API.G_MISS_CHAR, NULL,
213 		   task_template_record.attribute12
214 		) attribute12,
215 		DECODE (
216 		   task_template_record.attribute13,
217 		   NULL, attribute13,
218 		   FND_API.G_MISS_CHAR, NULL,
219 		   task_template_record.attribute13
220 		) attribute13,
221 		DECODE (
222 		   task_template_record.attribute14,
223 		   NULL, attribute14,
224 		   FND_API.G_MISS_CHAR, NULL,
225 		   task_template_record.attribute14
226 		) attribute14,
227 		DECODE (
228 		   task_template_record.attribute15,
229 		   NULL, attribute15,
230 		   FND_API.G_MISS_CHAR, NULL,
231 		   task_template_record.attribute15
232 		) attribute15,
233 		DECODE (
234 		   task_template_record.attribute_category,
235 		   NULL, attribute_category,
236 		   FND_API.G_MISS_CHAR, NULL,
237 		   task_template_record.attribute_category
238 		) attribute_category,
239         DECODE (
240 		   task_template_record.task_confirmation_status,
241 		   NULL,task_confirmation_status,
242 		   jtf_task_utl.G_MISS_CHAR, NULL,
243 		   task_template_record.task_confirmation_status
244 		) task_confirmation_status
245 	   FROM jtf_task_templates_vl
246 	  WHERE task_group_id = p_task_template_group_id
247 	    AND task_template_id = task_template_record.task_template_id;
248 
249        l_task_template_rec   c_task_template%ROWTYPE;
250 
251        -- Added by SBARAT on 06/01/2005 for bug# 4898434
252        Cursor C_Object_Version_Num(p_task_id  NUMBER) Is
253              Select object_version_number From JTF_TASKS_VL
254                     Where task_id=p_task_id;
255 
256         l_object_version_number   NUMBER;
257 
258    BEGIN
259       x_return_status := fnd_api.g_ret_sts_success;
260       OPEN c_task_template (p_task_template_group_info.task_template_group_id, p_task_template_info);
261       FETCH c_task_template INTO l_task_template_rec;
262 
263       IF c_task_template%NOTFOUND
264       THEN
265 	 CLOSE c_task_template;
266 	 fnd_message.set_name ('JTF', 'JTF_TASK_NO_TEMP_FOUND');
267 	 fnd_message.set_token ('task_template_id', p_task_template_info.task_template_id);
268 	 fnd_msg_pub.add;
269 	 RAISE fnd_api.g_exc_unexpected_error;
270       END IF;
271 
272       jtf_tasks_pub.create_task (
273 	 p_api_version => 1.0,
274 	 p_init_msg_list => fnd_api.g_false,
275 	 p_commit => fnd_api.g_false,
276 	 p_task_name => l_task_template_rec.task_name,
277 	 p_task_type_id => l_task_template_rec.task_type_id,
278 	 p_description => l_task_template_rec.description,
279 	 p_task_status_id => l_task_template_rec.task_status_id,
280 	 p_task_priority_id => l_task_template_rec.task_priority_id,
281 	 p_owner_type_code => p_task_template_info.owner_type_code,
282 	 p_owner_id => p_task_template_info.owner_id,
283        p_owner_territory_id => p_task_template_group_info.owner_territory_id,     -- Added by SBARAT on 28/10/2005 for bug# 4597321
284 	 p_duration => l_task_template_rec.duration,
285 	 p_duration_uom => l_task_template_rec.duration_uom,
286 	 p_planned_effort => l_task_template_rec.planned_effort,
287 	 p_planned_effort_uom => l_task_template_rec.planned_effort_uom,
288 	 p_private_flag => l_task_template_rec.private_flag,
289 	 p_publish_flag => l_task_template_rec.publish_flag,
290 	 p_restrict_closure_flag => l_task_template_rec.restrict_closure_flag,
291 	 p_multi_booked_flag => l_task_template_rec.multi_booked_flag,
292 	 p_milestone_flag => l_task_template_rec.milestone_flag,
293 	 p_holiday_flag => l_task_template_rec.holiday_flag,
294 	 p_billable_flag => l_task_template_rec.billable_flag,
295 	 p_notification_flag => l_task_template_rec.notification_flag,
296 	 p_notification_period => l_task_template_rec.notification_period,
297 	 p_notification_period_uom => l_task_template_rec.notification_period_uom,
298 	 p_source_object_type_code => p_source_object_type_code,
299 	 p_source_object_id => p_task_template_group_info.source_object_id,
300 	 p_source_object_name => p_task_template_group_info.source_object_name,
301 	 p_alarm_start => l_task_template_rec.alarm_start,
302 	 p_alarm_start_uom => l_task_template_rec.alarm_start_uom,
303 	 p_alarm_on => l_task_template_rec.alarm_on,
304 	 p_alarm_count => l_task_template_rec.alarm_count,
305 	 p_alarm_interval => l_task_template_rec.alarm_interval,
306 	 p_alarm_interval_uom => l_task_template_rec.alarm_interval_uom,
307 	 x_return_status => x_return_status,
308 	 x_msg_count => x_msg_count,
309 	 x_msg_data => x_msg_data,
310 	 x_task_id => x_task_id,
311 	 p_cust_account_id => p_task_template_group_info.cust_account_id,
312 	 p_customer_id => p_task_template_group_info.customer_id,
313 	 p_address_id => p_task_template_group_info.address_id,
314 	 p_planned_start_date => p_task_template_info.planned_start_date,
315 	 p_planned_end_date => p_task_template_info.planned_end_date,
316 	 p_scheduled_start_date => p_task_template_info.scheduled_start_date,
317 	 p_scheduled_end_date => p_task_template_info.scheduled_end_date,
318 	 p_actual_start_date => p_task_template_info.actual_start_date,
319 	 p_actual_end_date => p_task_template_info.actual_end_date,
320 	 p_palm_flag => l_task_template_rec.palm_flag,
321 	 p_wince_flag => l_task_template_rec.wince_flag,
322 	 p_laptop_flag => l_task_template_rec.laptop_flag,
323 	 p_device1_flag => l_task_template_rec.device1_flag,
324 	 p_device2_flag => l_task_template_rec.device2_flag,
325 	 p_device3_flag => l_task_template_rec.device3_flag,
326 	 p_timezone_id => l_task_template_rec.timezone_id,
327 	 p_attribute1 => l_task_template_rec.attribute1,
328 	 p_attribute2 => l_task_template_rec.attribute2,
329 	 p_attribute3 => l_task_template_rec.attribute3,
330 	 p_attribute4 => l_task_template_rec.attribute4,
331 	 p_attribute5 => l_task_template_rec.attribute5,
332 	 p_attribute6 => l_task_template_rec.attribute6,
333 	 p_attribute7 => l_task_template_rec.attribute7,
334 	 p_attribute8 => l_task_template_rec.attribute8,
335 	 p_attribute9 => l_task_template_rec.attribute9,
336 	 p_attribute10 => l_task_template_rec.attribute10,
337 	 p_attribute11 => l_task_template_rec.attribute11,
338 	 p_attribute12 => l_task_template_rec.attribute12,
339 	 p_attribute13 => l_task_template_rec.attribute13,
340 	 p_attribute14 => l_task_template_rec.attribute14,
341 	 p_attribute15 => l_task_template_rec.attribute15,
342 	 p_attribute_category => l_task_template_rec.attribute_category,
343 	 p_date_selected => p_task_template_info.p_date_selected,
344 	 p_show_on_calendar => p_task_template_info.show_on_calendar,
345 	 p_template_id => l_task_template_rec.task_template_id,
346 	 p_template_group_id => p_task_template_group_info.task_template_group_id,
347 	 p_enable_workflow	=> fnd_profile.value('JTF_TASK_ENABLE_WORKFLOW'),
348 	 p_abort_workflow	      => fnd_profile.value('JTF_TASK_ABORT_PREV_WF'),
349        p_task_split_flag      => NULL,
350        p_reference_flag       => NULL,
351        p_child_position       => NULL,
352        p_child_sequence_num   => NULL,
353        p_location_id          => p_task_template_group_info.location_id
354       );
355       CLOSE c_task_template;
356 
357       /******* Start of modification by SBARAT on 06/01/2005 for bug# 4898434 *******/
358 
359       Open C_Object_Version_Num(x_task_id);
360       Fetch C_Object_Version_Num Into l_object_version_number;
361       Close C_Object_Version_Num;
362 
363       IF l_object_version_number IS NULL
364       THEN
365           l_object_version_number := 1 ;
366       END IF;
367 
368       /******* End of modification by SBARAT on 06/01/2005 for bug# 4898434 *******/
369 
370    -- Commented out the call of reset_confirmation_status. Instead, we are now calling
371    -- set_counter_status to set the confirmation_status. Changes done due to bug# 4352360
372    /* jtf_task_confirmation_pub.reset_confirmation_status
373     (
374        p_api_version => 1.0,
375 	   p_init_msg_list => fnd_api.g_false,
376 	   p_commit => fnd_api.g_false,
377        p_object_version_number => l_object_version_number,
378        p_task_id	     => x_task_id,
379        x_return_status => x_return_status,
380 	   x_msg_count => x_msg_count,
381 	   x_msg_data => x_msg_data
382     ); */
383 
384       jtf_task_confirmation_pub.set_counter_status(
385          p_api_version => 1.0,
386          p_init_msg_list => fnd_api.g_false,
387          p_commit => fnd_api.g_false,
388          x_return_status => x_return_status,
389          x_msg_count => x_msg_count,
390          x_msg_data => x_msg_data,
391          p_object_version_number => l_object_version_number,
392          p_task_id => x_task_id,
393          p_task_confirmation_status => l_task_template_rec.task_confirmation_status,
394          p_task_confirmation_counter => 0);
395 
396    END;
397 
398     PROCEDURE create_template_group_tasks (
399       p_source_object_type_code IN jtf_objects_b.object_code%TYPE,
400       p_task_template_group_info IN jtf_task_inst_templates_pub.task_template_group_info,
401       x_task_details_tbl OUT NOCOPY jtf_task_inst_templates_pub.task_details_tbl,
402       x_msg_count OUT NOCOPY NUMBER,
403       x_msg_data OUT NOCOPY VARCHAR2,
404       x_return_status OUT NOCOPY VARCHAR2
405    )
406    IS
407       CURSOR c_task_template
408       IS
409 	 SELECT task_template_id,
410 		task_number,
411 		task_name,
412 		description,
413 		task_type_id,
414 		task_status_id,
415 		task_priority_id,
416 		duration,
417 		duration_uom,
418 		planned_effort,
419 		planned_effort_uom,
420 		private_flag,
421 		publish_flag,
422 		restrict_closure_flag,
423 		multi_booked_flag,
424 		milestone_flag,
425 		holiday_flag,
426 		billable_flag,
427 		notification_flag,
428 		notification_period,
429 		notification_period_uom,
430 		recurrence_rule_id,
431 		alarm_start,
432 		alarm_start_uom,
433 		alarm_on,
434 		alarm_count,
435 		alarm_interval,
436 		alarm_interval_uom,
437 		p_task_template_group_info.owner_type_code,
438 		p_task_template_group_info.owner_id,
439             p_task_template_group_info.owner_territory_id,    -- Added by SBARAT on 28/10/2005 for bug# 4597321
440 		p_task_template_group_info.source_object_id,
441 		p_task_template_group_info.source_object_name,
442 		p_task_template_group_info.cust_account_id,
443 		p_task_template_group_info.customer_id,
444 		p_task_template_group_info.address_id,
445 		p_task_template_group_info.assigned_by_id,
446 		p_task_template_group_info.actual_start_date,
447 		p_task_template_group_info.actual_end_date,
448 		p_task_template_group_info.planned_start_date,
449 		p_task_template_group_info.planned_end_date,
450 		p_task_template_group_info.scheduled_start_date,
451 		p_task_template_group_info.scheduled_end_date,
452 		p_task_template_group_info.palm_flag palm_flag,
453 		p_task_template_group_info.wince_flag wince_flag,
454 		p_task_template_group_info.laptop_flag laptop_flag,
455 		p_task_template_group_info.device1_flag device1_flag,
456 		p_task_template_group_info.device2_flag device2_flag,
457 		p_task_template_group_info.device3_flag device3_flag,
458 		p_task_template_group_info.parent_task_id,  -- Added by SBARAT on 11/07/2005 for bug# 4376274
459 		p_task_template_group_info.timezone_id timezone_id,
460 		p_task_template_group_info.percentage_complete,
461 		p_task_template_group_info.actual_effort,
462 		p_task_template_group_info.actual_effort_uom,
463 		p_task_template_group_info.reason_code,
464 		p_task_template_group_info.bound_mode_code,
465 		p_task_template_group_info.soft_bound_flag,
466 		p_task_template_group_info.workflow_process_id,
467 		p_task_template_group_info.costs,
468 		p_task_template_group_info.currency_code,
469 		p_task_template_group_info.date_selected,
470 		p_task_template_group_info.show_on_calendar,
471 		DECODE (
472 		   p_task_template_group_info.attribute1,
473 		   NULL, attribute1,
474 		   FND_API.G_MISS_CHAR, NULL,
475 		   p_task_template_group_info.attribute1
476 		) attribute1,
477 		DECODE (
478 		   p_task_template_group_info.attribute2,
479 		   NULL, attribute2,
480 		   FND_API.G_MISS_CHAR, NULL,
481 		   p_task_template_group_info.attribute2
482 		) attribute2,
483 		DECODE (
484 		   p_task_template_group_info.attribute3,
485 		   NULL, attribute3,
486 		   FND_API.G_MISS_CHAR, NULL,
487 		   p_task_template_group_info.attribute3
488 		) attribute3,
489 		DECODE (
490 		   p_task_template_group_info.attribute4,
491 		   NULL, attribute4,
492 		   FND_API.G_MISS_CHAR, NULL,
493 		   p_task_template_group_info.attribute4
494 		) attribute4,
495 		DECODE (
496 		   p_task_template_group_info.attribute5,
497 		   NULL, attribute5,
498 		   FND_API.G_MISS_CHAR, NULL,
499 		   p_task_template_group_info.attribute5
500 		) attribute5,
501 		DECODE (
502 		   p_task_template_group_info.attribute6,
503 		   NULL, attribute6,
504 		   p_task_template_group_info.attribute6
505 		) attribute6,
506 		DECODE (
507 		   p_task_template_group_info.attribute7,
508 		   NULL, attribute7,
509 		   FND_API.G_MISS_CHAR, NULL,
510 		   p_task_template_group_info.attribute7
511 		) attribute7,
512 		DECODE (
513 		   p_task_template_group_info.attribute8,
514 		   NULL, attribute8,
515 		   FND_API.G_MISS_CHAR, NULL,
516 		   p_task_template_group_info.attribute8
517 		) attribute8,
518 		DECODE (
519 		   p_task_template_group_info.attribute9,
520 		   NULL, attribute9,
521 		   FND_API.G_MISS_CHAR, NULL,
522 		   p_task_template_group_info.attribute9
523 		) attribute9,
524 		DECODE (
525 		   p_task_template_group_info.attribute10,
526 		   NULL, attribute10,
527 		   FND_API.G_MISS_CHAR, NULL,
528 		   p_task_template_group_info.attribute10
529 		) attribute10,
530 		DECODE (
531 		   p_task_template_group_info.attribute11,
532 		   NULL, attribute11,
533 		   FND_API.G_MISS_CHAR, NULL,
534 		   p_task_template_group_info.attribute11
535 		) attribute11,
536 		DECODE (
537 		   p_task_template_group_info.attribute12,
538 		   NULL, attribute12,
539 		   FND_API.G_MISS_CHAR, NULL,
540 		   p_task_template_group_info.attribute12
541 		) attribute12,
542 		DECODE (
543 		   p_task_template_group_info.attribute13,
544 		   NULL, attribute13,
545 		   FND_API.G_MISS_CHAR, NULL,
546 		   p_task_template_group_info.attribute13
547 		) attribute13,
548 		DECODE (
549 		   p_task_template_group_info.attribute14,
550 		   NULL, attribute14,
551 		   FND_API.G_MISS_CHAR, NULL,
552 		   p_task_template_group_info.attribute14
553 		) attribute14,
554 		DECODE (
555 		   p_task_template_group_info.attribute15,
556 		   NULL, attribute15,
557 		   FND_API.G_MISS_CHAR, NULL,
558 		   p_task_template_group_info.attribute15
559 		) attribute15,
560 		DECODE (
561 		   p_task_template_group_info.attribute_category,
562 		   NULL, attribute_category,
563 		   FND_API.G_MISS_CHAR, NULL,
564 		   p_task_template_group_info.attribute_category
565 		) attribute_category,
566                 decode (
567                   task_confirmation_status,
568                   null, 'N',
569                   task_confirmation_status
570                 ) task_confirmation_status
571 	  FROM jtf_task_templates_vl
572 	     WHERE task_group_id = p_task_template_group_info.task_template_group_id
573              AND   nvl(deleted_flag,'N') <> 'Y'
574              ORDER BY task_template_id;
575 
576       task_template_rec   c_task_template%ROWTYPE;
577       l_task_id  NUMBER;
578 
579        -- Added by SBARAT on 06/01/2005 for bug# 4898434
580        Cursor C_Object_Version_Num(p_task_id  NUMBER) Is
581              Select object_version_number From JTF_TASKS_VL
582                     Where task_id=p_task_id;
583 
584       l_object_version_number NUMBER;
585       i NUMBER := 1 ;
586    BEGIN
587       x_return_status := fnd_api.g_ret_sts_success;
588       FOR task_template_rec IN c_task_template
589       LOOP
590       jtf_tasks_pub.create_task (
591 	 p_api_version => 1.0,
592 	 p_init_msg_list => fnd_api.g_false,
593 	 p_commit => fnd_api.g_false,
594 	 p_task_name => task_template_rec.task_name,
595 	 p_task_type_id => task_template_rec.task_type_id,
596 	 p_description => task_template_rec.description,
597 	 p_task_status_id => task_template_rec.task_status_id,
598 	 p_task_priority_id => task_template_rec.task_priority_id,
599 	 p_owner_type_code => task_template_rec.owner_type_code,
600 	 p_owner_id => task_template_rec.owner_id,
601        p_owner_territory_id => task_template_rec.owner_territory_id,  -- Added by SBARAT on 28/10/2005 for bug# 4597321
602 	 p_duration => task_template_rec.duration,
603 	 p_duration_uom => task_template_rec.duration_uom,
604 	 p_planned_effort => task_template_rec.planned_effort,
605 	 p_planned_effort_uom => task_template_rec.planned_effort_uom,
606 	 p_private_flag => task_template_rec.private_flag,
607 	 p_publish_flag => task_template_rec.publish_flag,
608 	 p_restrict_closure_flag => task_template_rec.restrict_closure_flag,
609 	 p_multi_booked_flag => task_template_rec.multi_booked_flag,
610 	 p_milestone_flag => task_template_rec.milestone_flag,
611 	 p_holiday_flag => task_template_rec.holiday_flag,
612 	 p_billable_flag => task_template_rec.billable_flag,
613 	 p_notification_flag => task_template_rec.notification_flag,
614 	 p_notification_period => task_template_rec.notification_period,
615 	 p_notification_period_uom => task_template_rec.notification_period_uom,
616 	 p_source_object_type_code => p_source_object_type_code,
617 	 p_source_object_id => task_template_rec.source_object_id,
618 	 p_source_object_name => task_template_rec.source_object_name,
619 	 p_alarm_start => task_template_rec.alarm_start,
620 	 p_alarm_start_uom => task_template_rec.alarm_start_uom,
621 	 p_alarm_on => task_template_rec.alarm_on,
622 	 p_alarm_count => task_template_rec.alarm_count,
623 	 p_alarm_interval => task_template_rec.alarm_interval,
624 	 p_alarm_interval_uom => task_template_rec.alarm_interval_uom,
625 	 x_return_status => x_return_status,
626 	 x_msg_count => x_msg_count,
627 	 x_msg_data => x_msg_data,
628 	 x_task_id => l_task_id,
629 	 p_cust_account_id => task_template_rec.cust_account_id,
630 	 p_customer_id => task_template_rec.customer_id,
631 	 p_address_id => task_template_rec.address_id,
632 	 p_planned_start_date => task_template_rec.planned_start_date,
633 	 p_planned_end_date => task_template_rec.planned_end_date,
634 	 p_scheduled_start_date => task_template_rec.scheduled_start_date,
635 	 p_scheduled_end_date => task_template_rec.scheduled_end_date,
636 	 p_actual_start_date => task_template_rec.actual_start_date,
637 	 p_actual_end_date => task_template_rec.actual_end_date,
638 	 p_parent_task_id=> task_template_rec.parent_task_id,  -- Added by SBARAT on 11/07/2005 for bug# 4376274
639 	 p_palm_flag => task_template_rec.palm_flag,
640 	 p_wince_flag => task_template_rec.wince_flag,
641 	 p_laptop_flag => task_template_rec.laptop_flag,
642 	 p_device1_flag => task_template_rec.device1_flag,
643 	 p_device2_flag => task_template_rec.device2_flag,
644 	 p_device3_flag => task_template_rec.device3_flag,
645 	 p_timezone_id => task_template_rec.timezone_id,
646 	 p_attribute1 => task_template_rec.attribute1,
647 	 p_attribute2 => task_template_rec.attribute2,
648 	 p_attribute3 => task_template_rec.attribute3,
649 	 p_attribute4 => task_template_rec.attribute4,
650 	 p_attribute5 => task_template_rec.attribute5,
651 	 p_attribute6 => task_template_rec.attribute6,
652 	 p_attribute7 => task_template_rec.attribute7,
653 	 p_attribute8 => task_template_rec.attribute8,
654 	 p_attribute9 => task_template_rec.attribute9,
655 	 p_attribute10 => task_template_rec.attribute10,
656 	 p_attribute11 => task_template_rec.attribute11,
657 	 p_attribute12 => task_template_rec.attribute12,
658 	 p_attribute13 => task_template_rec.attribute13,
659 	 p_attribute14 => task_template_rec.attribute14,
660 	 p_attribute15 => task_template_rec.attribute15,
661 	 p_attribute_category => task_template_rec.attribute_category,
662 	 p_date_selected => task_template_rec.date_selected,
663 	 p_show_on_calendar => task_template_rec.show_on_calendar,
664 	 p_template_id => task_template_rec.task_template_id,
665 	 p_template_group_id =>  p_task_template_group_info.task_template_group_id,
666 	 p_enable_workflow	=> fnd_profile.value('JTF_TASK_ENABLE_WORKFLOW'),
667 	 p_abort_workflow	      => fnd_profile.value('JTF_TASK_ABORT_PREV_WF'),
668        p_task_split_flag      => NULL,
669        p_reference_flag       => NULL,
670        p_child_position       => NULL,
671        p_child_sequence_num   => NULL,
672        p_location_id          => p_task_template_group_info.location_id
673       );
674 
675       /******* Start of modification by SBARAT on 06/01/2005 for bug# 4898434 *******/
676 
677       l_object_version_number := NULL;
678 
679       Open C_Object_Version_Num(l_task_id);
680       Fetch C_Object_Version_Num Into l_object_version_number;
681       Close C_Object_Version_Num;
682 
683       IF l_object_version_number IS NULL
684       THEN
685           l_object_version_number := 1 ;
686       END IF;
687 
688       /******* End of modification by SBARAT on 06/01/2005 for bug# 4898434 *******/
689 
690       jtf_task_confirmation_pub.set_counter_status(
691          p_api_version => 1.0,
692          p_init_msg_list => fnd_api.g_false,
693          p_commit => fnd_api.g_false,
694          x_return_status => x_return_status,
695          x_msg_count => x_msg_count,
696          x_msg_data => x_msg_data,
697          p_object_version_number => l_object_version_number,
698          p_task_id => l_task_id,
699          p_task_confirmation_status => task_template_rec.task_confirmation_status,
700          p_task_confirmation_counter => 0);
701 
702       x_task_details_tbl (i).task_id := l_task_id;
703       x_task_details_tbl (i).task_template_id :=  task_template_rec.task_template_id;
704       i := i + 1;
705       END LOOP;
706     END;
707 
708    PROCEDURE validate_create_task_resource (
709       p_task_template_id IN NUMBER,
710       p_task_id IN NUMBER,
711       x_resource_req_id OUT NOCOPY jtf_task_rsc_reqs.resource_req_id%TYPE,
712       x_msg_count OUT NOCOPY NUMBER,
713       x_msg_data OUT NOCOPY VARCHAR2,
714       x_return_status OUT NOCOPY VARCHAR2
715    )
716    IS
717       --- Resource for a template
718       CURSOR c_task_resource (
719 	 p_task_template_id IN NUMBER
720       )
721       IS
722       SELECT resource_type_code,
723 	     required_units,
724 	     task_type_id,
725 	     task_id,
726 	     enabled_flag,
727 	     attribute1,
728 	     attribute2,
729 	     attribute3,
730 	     attribute4,
731 	     attribute5,
732 	     attribute6,
733 	     attribute7,
734 	     attribute8,
735 	     attribute9,
736 	     attribute10,
737 	     attribute11,
738 	     attribute12,
739 	     attribute13,
740 	     attribute14,
741 	     attribute15,
742 	     attribute_category
743 	FROM jtf_task_rsc_reqs
744        WHERE task_id = p_task_template_id;
745 
746       l_task_resource_rec   c_task_resource%ROWTYPE;
747    BEGIN
748       x_return_status := fnd_api.g_ret_sts_success;
749 
750 --    Bug 3342422 : there might be more than one resource in
751 --                  template task needs to be created.
752 --                  Comment out the following lines, add a for
753 --                  loop instead of.
754 --
755 --      OPEN c_task_resource (p_task_template_id);
756 --      FETCH c_task_resource INTO l_task_resource_rec;
757 
758 --      IF c_task_resource%FOUND
759 --      THEN
760 
761 --    Add for loop for fixing bug 3342422
762 
763       FOR l_task_resource_rec in c_task_resource(p_task_template_id)
764       LOOP
765         jtf_task_resources_pvt.create_task_rsrc_req (
766 	    p_api_version => 1.0,
767 	    p_init_msg_list => fnd_api.g_false,
768 	    p_commit => fnd_api.g_false,
769 	    p_task_id => p_task_id,
770 	    p_task_number => NULL,
771 	    p_task_type_id => l_task_resource_rec.task_type_id,
772 	    p_task_template_id => l_task_resource_rec.task_id,
773 	    p_resource_type_code => l_task_resource_rec.resource_type_code,
774 	    p_required_units => l_task_resource_rec.required_units,
775 	    p_enabled_flag => l_task_resource_rec.enabled_flag,
776 	    x_return_status => x_return_status,
777 	    x_msg_count => x_msg_count,
778 	    x_msg_data => x_msg_data,
779 	    x_resource_req_id => x_resource_req_id,
780 	    p_attribute1 => l_task_resource_rec.attribute1,
781 	    p_attribute2 => l_task_resource_rec.attribute2,
782 	    p_attribute3 => l_task_resource_rec.attribute3,
783 	    p_attribute4 => l_task_resource_rec.attribute4,
784 	    p_attribute5 => l_task_resource_rec.attribute5,
785 	    p_attribute6 => l_task_resource_rec.attribute6,
786 	    p_attribute7 => l_task_resource_rec.attribute7,
787 	    p_attribute8 => l_task_resource_rec.attribute8,
788 	    p_attribute9 => l_task_resource_rec.attribute9,
789 	    p_attribute10 => l_task_resource_rec.attribute10,
790 	    p_attribute11 => l_task_resource_rec.attribute11,
791 	    p_attribute12 => l_task_resource_rec.attribute12,
792 	    p_attribute13 => l_task_resource_rec.attribute13,
793 	    p_attribute14 => l_task_resource_rec.attribute14,
794 	    p_attribute15 => l_task_resource_rec.attribute15,
795 	    p_attribute_category => l_task_resource_rec.attribute_category
796 	 );
797 
798 --      END IF;
799 --      CLOSE c_task_resource;
800 
801       END LOOP;
802    END;
803 
804    PROCEDURE validate_create_recur (
805       p_recurrence_rule_id IN NUMBER,
806       p_task_id IN NUMBER,
807       x_reccurence_generated OUT NOCOPY NUMBER,
808       x_msg_count OUT NOCOPY NUMBER,
809       x_msg_data OUT NOCOPY VARCHAR2,
810       x_return_status OUT NOCOPY VARCHAR2
811    )
812    IS
813       CURSOR c_task_recurs (
814 	 p_recurrence_rule_id IN NUMBER
815       )
816       IS
817 	 SELECT occurs_which,
818 		day_of_week,
819 		date_of_month,
820 		occurs_month,
821 		occurs_uom,
822 		occurs_every,
823 		occurs_number,
824 		start_date_active,
825 		end_date_active
826 	   FROM jtf_task_recur_rules
827 	  WHERE recurrence_rule_id = p_recurrence_rule_id;
828 
829       l_task_recur_rec	     c_task_recurs%ROWTYPE;
830       l_task_rec	     jtf_task_recurrences_pub.task_details_rec;
831       l_recurrence_rule_id   NUMBER;
832    BEGIN
833       x_return_status := fnd_api.g_ret_sts_success;
834       IF p_recurrence_rule_id IS NOT NULL
835       THEN
836 	 OPEN c_task_recurs (p_recurrence_rule_id);
837 	 FETCH c_task_recurs INTO l_task_recur_rec;
838 
839 	 IF c_task_recurs%NOTFOUND
840 	 THEN
841 	    fnd_message.set_name ('JTF', 'JTF_TASK_INVALID_RECUR_RULE');
842 	    fnd_message.set_token ('P_TASK_RECURRENCE_RULE_ID', p_recurrence_rule_id);
843 	    fnd_msg_pub.add;
844 	    RAISE fnd_api.g_exc_unexpected_error;
845 	 END IF;
846 
847 	 jtf_task_recurrences_pub.create_task_recurrence (
848 	    p_api_version => 1.0,
849 	    p_init_msg_list => fnd_api.g_false,
850 	    p_commit => fnd_api.g_false,
851 	    p_task_id => p_task_id,
852 	    p_occurs_which => l_task_recur_rec.occurs_which,
853 	    p_template_flag => jtf_task_utl.g_no,
854 	    p_day_of_week => l_task_recur_rec.day_of_week,
855 	    p_date_of_month => l_task_recur_rec.date_of_month,
856 	    p_occurs_month => l_task_recur_rec.occurs_month,
857 	    p_occurs_uom => l_task_recur_rec.occurs_uom,
858 	    p_occurs_every => l_task_recur_rec.occurs_every,
859 	    p_occurs_number => l_task_recur_rec.occurs_number,
860 	    p_start_date_active => l_task_recur_rec.start_date_active,
861 	    p_end_date_active => l_task_recur_rec.end_date_active,
862 	    x_return_status => x_return_status,
863 	    x_msg_count => x_msg_count,
864 	    x_msg_data => x_msg_data,
865 	    x_recurrence_rule_id => l_recurrence_rule_id,
866 	    x_task_rec => l_task_rec,
867 	    x_reccurences_generated => x_reccurence_generated
868 	 );
869 	 CLOSE c_task_recurs;
870       ELSE
871 	 fnd_message.set_name ('JTF', 'JTF_TASK_INVALID_RECUR_RULE');
872 	 fnd_message.set_token ('P_TASK_RECURRENCE_RULE_ID', p_recurrence_rule_id);
873 	 fnd_msg_pub.add;
874 	 RAISE fnd_api.g_exc_unexpected_error;
875       END IF;
876    END;
877 
878    PROCEDURE create_task_phones (
879       p_task_contact_points_tbl IN jtf_task_inst_templates_pub.task_contact_points_tbl,
880       p_task_template_id IN NUMBER,
881       p_task_contact_id IN NUMBER,
882       x_msg_count OUT NOCOPY NUMBER,
883       x_msg_data OUT NOCOPY VARCHAR2,
884       x_return_status OUT NOCOPY VARCHAR2
885    )
886    IS
887        l_task_phone_id NUMBER;
888    BEGIN
889       x_return_status := fnd_api.g_ret_sts_success;
890 
891       FOR i IN 1 .. p_task_contact_points_tbl.COUNT
892       LOOP
893 	 IF (	p_task_contact_points_tbl (i).task_template_id = p_task_template_id
894 	    AND x_return_status = fnd_api.g_ret_sts_success)
895 	 THEN
896 	    jtf_task_phones_pub.create_task_phones (
897 	       p_api_version => 1.0,
898 	       p_init_msg_list => fnd_api.g_false,
899 	       p_commit => fnd_api.g_false,
900 	       p_task_contact_id => p_task_contact_id,
901 	       p_phone_id => p_task_contact_points_tbl (i).phone_id,
902 	       p_primary_flag => p_task_contact_points_tbl (i).primary_key,
903 	       p_owner_table_name => 'JTF_TASKS_B',
904 	       x_return_status => x_return_status,
905 	       x_msg_count => x_msg_count,
906 	       x_msg_data => x_msg_data,
907 	       x_task_phone_id => l_task_phone_id
908 	    );
909 	 END IF;
910       END LOOP;
911    END;
912 END;