[Home] [Help]
PACKAGE BODY: APPS.JTF_TASK_ASSIGNMENTS_PVT
Source
1 PACKAGE BODY jtf_task_assignments_pvt AS
2 /* $Header: jtfvtkab.pls 120.3.12000000.2 2007/07/19 08:45:38 lokumar ship $ */
3
4 g_free_busy_type CONSTANT jtf_task_all_assignments.free_busy_type%TYPE := 'FREE';
5
6 -- Internal procedures used for implicit booking
7 -- It populates booking date by using task calendar date
8 --
9 -- !!! NOTE: any change in this procedure must be in sync with !!!
10 -- !!! migration script cacbkgmg.sql !!!
11 --
12 PROCEDURE populate_owner_booking_dates
13 (
14 p_calendar_start_date IN DATE,
15 p_calendar_end_date IN DATE,
16 p_actual_travel_duration IN NUMBER,
17 p_actual_travel_duration_uom IN VARCHAR2,
18 p_planned_effort IN NUMBER,
19 p_planned_effort_uom IN VARCHAR2,
20 x_booking_start_date OUT NOCOPY DATE,
21 x_booking_end_date OUT NOCOPY DATE
22 )
23 IS
24 BEGIN
25 x_booking_start_date := NULL;
26 x_booking_end_date := NULL;
27
28 IF (p_calendar_start_date IS NULL) OR
29 (p_calendar_start_date > p_calendar_end_date) OR
30 (p_calendar_end_date IS NULL AND NVL(p_planned_effort, -1) < 0)
31 THEN
32 RETURN;
33 END IF;
34
35 x_booking_start_date := jtf_task_utl_ext.adjust_date
36 (
37 p_calendar_start_date,
38 p_actual_travel_duration * (-1),
39 p_actual_travel_duration_uom
40 );
41
42
43 IF (p_calendar_start_date <= p_calendar_end_date)
44 THEN
45 x_booking_end_date := p_calendar_end_date;
46 ELSE
47 x_booking_end_date := jtf_task_utl_ext.adjust_date
48 (
49 p_calendar_start_date,
50 p_planned_effort,
51 p_planned_effort_uom
52 );
53 END IF;
54 END populate_owner_booking_dates;
55
56 -- Internal procedures used for implicit booking
57 -- It populates booking date by using actual assignment date or
58 -- task calendar date
59 --
60 -- !!! NOTE: any change in this procedure must be in sync with !!!
61 -- !!! migration script cacbkgmg.sql !!!
62 --
63 PROCEDURE populate_booking_dates
64 (
65 p_calendar_start_date IN DATE,
66 p_calendar_end_date IN DATE,
67 p_actual_start_date IN DATE,
68 p_actual_end_date IN DATE,
69 p_actual_travel_duration IN NUMBER,
70 p_actual_travel_duration_uom IN VARCHAR2,
71 p_planned_effort IN NUMBER,
72 p_planned_effort_uom IN VARCHAR2,
73 p_actual_effort IN NUMBER,
74 p_actual_effort_uom IN VARCHAR2,
75 x_booking_start_date OUT NOCOPY DATE,
76 x_booking_end_date OUT NOCOPY DATE
77 )
78 IS
79 BEGIN
80 x_booking_start_date := NULL;
81 x_booking_end_date := NULL;
82
83 IF (p_actual_start_date IS NULL) OR
84 (p_actual_start_date > p_actual_end_date) OR
85 (p_actual_end_date IS NULL AND
86 NVL(p_actual_effort, NVL(p_planned_effort, -1)) < 0)
87
88 THEN
89 -- Populate the booking dates as for owner .
90 populate_owner_booking_dates
91 (
92 p_calendar_start_date => p_calendar_start_date,
93 p_calendar_end_date => p_calendar_end_date,
94 p_actual_travel_duration => p_actual_travel_duration,
95 p_actual_travel_duration_uom => p_actual_travel_duration_uom,
96 p_planned_effort => p_planned_effort,
97 p_planned_effort_uom => p_planned_effort_uom,
98 x_booking_start_date => x_booking_start_date,
99 x_booking_end_date => x_booking_end_date
100 );
101 RETURN;
102 END IF;
103
104 x_booking_start_date := jtf_task_utl_ext.adjust_date
105 (
106 p_actual_start_date,
107 p_actual_travel_duration * (-1),
108 p_actual_travel_duration_uom
109 );
110
111
112 IF p_actual_start_date <= p_actual_end_date
113 THEN
114 x_booking_end_date := p_actual_end_date;
115 ELSIF p_actual_effort >= 0
116 THEN
117 x_booking_end_date := jtf_task_utl_ext.adjust_date
118 (
119 p_actual_start_date,
120 p_actual_effort,
121 p_actual_effort_uom
122 );
123 ELSE
124 x_booking_end_date := jtf_task_utl_ext.adjust_date
125 (
126 p_actual_start_date,
127 p_planned_effort,
128 p_planned_effort_uom
129 );
130 END IF;
131 END populate_booking_dates;
132
133 -- This procedure updates the free-busy type for an assignee
134 -- Should be call only for tasks for a new assignemnt and
135 -- whenever the assignemnt status is changed
136 --
137 -- !!! NOTE: any change in this procedure must be in sync with !!!
138 -- !!! migration script cacbkgmg.sql !!!
139 --
140 PROCEDURE update_free_busy_type
141 (
142 p_assignment_status_id IN NUMBER,
143 x_free_busy_type IN OUT NOCOPY VARCHAR2
144 )
145 IS
146 BEGIN
147 select decode(cancelled_flag, 'Y', 'FREE',
148 decode(rejected_flag, 'Y', 'FREE',
149 decode(working_flag, 'Y', 'BUSY',
150 decode(accepted_flag, 'Y', 'BUSY',
151 decode(assigned_flag, 'Y', 'BUSY', x_free_busy_type )))))
152 into x_free_busy_type
153 from jtf_task_statuses_b
154 where task_status_id = p_assignment_status_id;
155 END update_free_busy_type;
156
157 PROCEDURE create_task_assignment (
158 p_api_version IN NUMBER,
159 p_init_msg_list IN VARCHAR2 DEFAULT fnd_api.g_false,
160 p_commit IN VARCHAR2 DEFAULT fnd_api.g_false,
161 p_task_assignment_id IN NUMBER DEFAULT NULL,
162 p_task_id IN NUMBER DEFAULT NULL,
163 p_resource_type_code IN VARCHAR2,
164 p_resource_id IN NUMBER,
165 p_actual_effort IN NUMBER DEFAULT NULL,
166 p_actual_effort_uom IN VARCHAR2 DEFAULT NULL,
167 p_schedule_flag IN VARCHAR2 DEFAULT NULL,
168 p_alarm_type_code IN VARCHAR2 DEFAULT NULL,
169 p_alarm_contact IN VARCHAR2 DEFAULT NULL,
170 p_sched_travel_distance IN NUMBER DEFAULT NULL,
171 p_sched_travel_duration IN NUMBER DEFAULT NULL,
172 p_sched_travel_duration_uom IN VARCHAR2 DEFAULT NULL,
173 p_actual_travel_distance IN NUMBER DEFAULT NULL,
174 p_actual_travel_duration IN NUMBER DEFAULT NULL,
175 p_actual_travel_duration_uom IN VARCHAR2 DEFAULT NULL,
176 p_actual_start_date IN DATE DEFAULT NULL,
177 p_actual_end_date IN DATE DEFAULT NULL,
178 p_palm_flag IN VARCHAR2 DEFAULT NULL,
179 p_wince_flag IN VARCHAR2 DEFAULT NULL,
180 p_laptop_flag IN VARCHAR2 DEFAULT NULL,
181 p_device1_flag IN VARCHAR2 DEFAULT NULL,
182 p_device2_flag IN VARCHAR2 DEFAULT NULL,
183 p_device3_flag IN VARCHAR2 DEFAULT NULL,
184 p_resource_territory_id IN NUMBER DEFAULT NULL,
185 p_assignment_status_id IN NUMBER,
186 p_shift_construct_id IN NUMBER DEFAULT NULL,
187 x_return_status OUT NOCOPY VARCHAR2,
188 x_msg_count OUT NOCOPY NUMBER,
189 x_msg_data OUT NOCOPY VARCHAR2,
190 x_task_assignment_id OUT NOCOPY NUMBER,
191 p_attribute1 IN VARCHAR2 DEFAULT NULL,
192 p_attribute2 IN VARCHAR2 DEFAULT NULL,
193 p_attribute3 IN VARCHAR2 DEFAULT NULL,
194 p_attribute4 IN VARCHAR2 DEFAULT NULL,
195 p_attribute5 IN VARCHAR2 DEFAULT NULL,
196 p_attribute6 IN VARCHAR2 DEFAULT NULL,
197 p_attribute7 IN VARCHAR2 DEFAULT NULL,
198 p_attribute8 IN VARCHAR2 DEFAULT NULL,
199 p_attribute9 IN VARCHAR2 DEFAULT NULL,
200 p_attribute10 IN VARCHAR2 DEFAULT NULL,
201 p_attribute11 IN VARCHAR2 DEFAULT NULL,
202 p_attribute12 IN VARCHAR2 DEFAULT NULL,
203 p_attribute13 IN VARCHAR2 DEFAULT NULL,
204 p_attribute14 IN VARCHAR2 DEFAULT NULL,
205 p_attribute15 IN VARCHAR2 DEFAULT NULL,
206 p_attribute_category IN VARCHAR2 DEFAULT NULL,
207 p_assignee_role IN VARCHAR2 DEFAULT 'ASSIGNEE',
208 p_show_on_calendar IN VARCHAR2 DEFAULT jtf_task_utl.g_yes_char,
209 p_category_id IN NUMBER DEFAULT NULL,
210 p_enable_workflow IN VARCHAR2,
211 p_abort_workflow IN VARCHAR2,
212 p_add_option IN VARCHAR2,
213 p_free_busy_type IN VARCHAR2,
214 p_object_capacity_id IN NUMBER
215 )
216 IS
217 l_api_version CONSTANT NUMBER
218 := 1.0;
219 l_api_name CONSTANT VARCHAR(30)
220 := 'CREATE_TASK_ASSIGNMENTS';
221 l_return_status VARCHAR2(1)
222 := fnd_api.g_ret_sts_success;
223 l_task_assignment_id jtf_task_all_assignments.task_assignment_id%TYPE;
224 l_task_id jtf_tasks_b.task_id%TYPE
225 := p_task_id;
226 l_resource_type_code jtf_task_all_assignments.resource_type_code%TYPE
227 := p_resource_type_code;
228 l_resource_id NUMBER
229 := p_resource_id;
230 l_act_eff NUMBER
231 := p_actual_effort;
232 l_act_eff_uom VARCHAR2(3)
233 := p_actual_effort_uom;
234 l_schedule_flag VARCHAR2(1)
235 := p_schedule_flag;
236 l_alarm_type_code jtf_task_all_assignments.alarm_type_code%TYPE
237 := p_alarm_type_code;
238 l_alarm_contact jtf_task_all_assignments.alarm_contact%TYPE
239 := p_alarm_contact;
240 l_sched_travel_distance jtf_task_all_assignments.sched_travel_distance%TYPE
241 := p_sched_travel_distance;
242 l_sched_travel_duration jtf_task_all_assignments.sched_travel_duration%TYPE
243 := p_sched_travel_duration;
244 l_sched_travel_dur_uom jtf_task_all_assignments.sched_travel_duration_uom%TYPE
245 := p_sched_travel_duration_uom;
246 l_actual_travel_distance jtf_task_all_assignments.actual_travel_distance%TYPE
247 := p_actual_travel_distance;
248 l_actual_travel_duration jtf_task_all_assignments.actual_travel_duration%TYPE
249 := p_actual_travel_duration;
250 l_actual_travel_dur_uom jtf_task_all_assignments.actual_travel_duration_uom%TYPE
251 := p_actual_travel_duration_uom;
252 l_actual_start_date jtf_task_all_assignments.actual_start_date%TYPE
253 := p_actual_start_date;
254 l_actual_end_date jtf_task_all_assignments.actual_end_date%TYPE
255 := p_actual_end_date;
256 l_palm_flag jtf_task_all_assignments.palm_flag%TYPE
257 := p_palm_flag;
258 l_wince_flag jtf_task_all_assignments.wince_flag%TYPE
259 := p_wince_flag;
260 l_laptop_flag jtf_task_all_assignments.laptop_flag%TYPE
261 := p_laptop_flag;
262 l_device1_flag jtf_task_all_assignments.device1_flag%TYPE
263 := p_device1_flag;
264 l_device2_flag jtf_task_all_assignments.device2_flag%TYPE
265 := p_device2_flag;
266 l_device3_flag jtf_task_all_assignments.device3_flag%TYPE
267 := p_device3_flag;
268 l_msg_data VARCHAR2(2000);
269 l_msg_count NUMBER;
270 x CHAR;
271 l_rowid ROWID;
272 l_resource_territory_id jtf_task_all_assignments.resource_territory_id%TYPE
273 := p_resource_territory_id;
274 l_assignment_status_id jtf_task_all_assignments.assignment_status_id%TYPE
275 := p_assignment_status_id;
276 l_shift_construct_id jtf_task_all_assignments.shift_construct_id%TYPE
277 := p_shift_construct_id;
278 l_assignee_role jtf_task_all_assignments.assignee_role%TYPE
279 := p_assignee_role;
280 l_show_on_calendar jtf_task_all_assignments.show_on_calendar%TYPE
281 := p_show_on_calendar;
282 l_category_id jtf_task_all_assignments.category_id%TYPE
283 := p_category_id;
284 l_enable_workflow VARCHAR2(1) := p_enable_workflow;
285 l_abort_workflow VARCHAR2(1) := p_abort_workflow;
286
287 -- Simplex Changes ..
288 l_booking_start_date jtf_task_all_assignments.booking_start_date%TYPE;
289 l_booking_end_date jtf_task_all_assignments.booking_end_date%TYPE;
290 l_free_busy_type jtf_task_all_assignments.free_busy_type%TYPE
291 := p_free_busy_type;
292
293 CURSOR ra_cur1 (l_rowid IN ROWID)
294 IS
295 SELECT 1
296 FROM jtf_task_all_assignments
297 WHERE ROWID = l_rowid;
298
299 ------------------------------------------
300 -- For XP
301 ------------------------------------------
302 CURSOR c_task (b_task_id NUMBER)IS
303 SELECT source_object_type_code
304 , recurrence_rule_id
305 , calendar_start_date
306 , calendar_end_date
307 , planned_effort
308 , planned_effort_uom
309 , entity
313
310 , open_flag
311 FROM jtf_tasks_b
312 WHERE task_id = b_task_id;
314 rec_task c_task%ROWTYPE;
315
316 l_add_assignee_rec jtf_task_repeat_assignment_pvt.add_assignee_rec;
317
318 -- Business Event System Enhancement # 2391065
319 l_assignment_rec jtf_task_assignments_pvt.task_assignments_rec ;
320 x_event_return_status varchar2(100);
321 ------------------------------------------
322 BEGIN
323 SAVEPOINT create_task_assign_pvt;
324 x_return_status := fnd_api.g_ret_sts_success;
325
326 ------------------------------------------
327 -- For XP
328 ------------------------------------------
329 OPEN c_task (l_task_id);
330 FETCH c_task INTO rec_task;
331 IF c_task%NOTFOUND
332 THEN
333 CLOSE c_task;
334 fnd_message.set_name ('JTF', 'JTF_TASK_INVALID_TASK_ID');
335 fnd_message.set_token ('P_TASK_ID', l_task_id);
336 fnd_msg_pub.add;
337 x_return_status := fnd_api.g_ret_sts_unexp_error;
338 RAISE fnd_api.g_exc_unexpected_error;
339 END IF;
340 CLOSE c_task;
341
342 IF rec_task.source_object_type_code = 'APPOINTMENT' AND
343 rec_task.recurrence_rule_id IS NOT NULL
344 THEN
345 IF p_add_option = JTF_TASK_REPEAT_APPT_PVT.G_FUTURE OR
346 p_add_option = JTF_TASK_REPEAT_APPT_PVT.G_ALL OR
347 p_add_option = JTF_TASK_REPEAT_APPT_PVT.G_ONE
348 THEN
349 l_add_assignee_rec.recurrence_rule_id := rec_task.recurrence_rule_id;
350 l_add_assignee_rec.task_id := l_task_id;
351 l_add_assignee_rec.calendar_start_date := rec_task.calendar_start_date;
352 l_add_assignee_rec.resource_type_code := p_resource_type_code;
353 l_add_assignee_rec.resource_id := p_resource_id;
354 l_add_assignee_rec.free_busy_type := p_free_busy_type;
355 l_add_assignee_rec.assignment_status_id := p_assignment_status_id;
356 l_add_assignee_rec.add_option := p_add_option;
357 l_add_assignee_rec.enable_workflow := p_enable_workflow;
358 l_add_assignee_rec.abort_workflow := p_abort_workflow;
359
360 jtf_task_repeat_assignment_pvt.add_assignee(
361 p_api_version => 1.0,
362 p_init_msg_list => fnd_api.g_false,
363 p_commit => fnd_api.g_false,
364 p_add_assignee_rec => l_add_assignee_rec,
365 x_return_status => x_return_status,
366 x_msg_count => x_msg_count,
367 x_msg_data => x_msg_data,
368 x_task_assignment_id => x_task_assignment_id
369 );
370
371 RETURN;
372 ELSIF p_add_option IS NOT NULL AND
373 p_add_option <> JTF_TASK_REPEAT_APPT_PVT.G_SKIP
374 THEN
375 fnd_message.set_name ('JTF', 'JTF_TASK_INVALID_FLAG');
376 fnd_message.set_token ('P_FLAG_NAME', 'The parameter p_add_option ');
377 fnd_msg_pub.add;
378
379 x_return_status := fnd_api.g_ret_sts_unexp_error;
380 RAISE fnd_api.g_exc_unexpected_error;
381 END IF;
382 END IF;
383 ------------------------------------------
384
385 IF p_task_assignment_id IS NOT NULL
386 THEN
387 IF p_task_assignment_id > jtf_task_utl_ext.get_last_number('JTF_TASK_ASSIGNMENTS_S') and -- Enh# 2734020
388 p_task_assignment_id < 1e+12
389 THEN
390 fnd_message.set_name ('JTF', 'JTF_TASK_OUT_OF_RANGE');
391 fnd_msg_pub.add;
392 x_return_status := fnd_api.g_ret_sts_unexp_error;
393 RAISE fnd_api.g_exc_unexpected_error;
394 ELSE
395 l_task_assignment_id := p_task_assignment_id;
396 END IF;
397 ELSE
398 SELECT jtf_task_assignments_s.nextval
399 INTO l_task_assignment_id
400 FROM dual;
401 END IF;
402
403 -- Validate the value in L_RESOURCE_TYPE_CODE
404 IF l_resource_type_code = 'RS_TEAM'
405 OR l_resource_type_code = 'RS_GROUP'
406 THEN
407 l_category_id := NULL;
408 END IF;
409
410 -- Validate the value in ASSIGNEE_ROLE
411 IF NOT jtf_task_utl.validate_lookup(
412 'JTF_TASK_ASSIGNEE_ROLES',
413 NVL (l_assignee_role, 'ASSIGNEE'),
414 'assignment assignee role ( JTF_TK_ASSOGNEE_ROLE )')
415 THEN
416 x_return_status := fnd_api.g_ret_sts_unexp_error;
417 RAISE fnd_api.g_exc_unexpected_error;
418 END IF;
419
420
421 -- Implicit booking for tasks
422 populate_booking_dates
423 (
424 p_calendar_start_date => rec_task.calendar_start_date,
425 p_calendar_end_date => rec_task.calendar_end_date,
426 p_actual_start_date => l_actual_start_date,
427 p_actual_end_date => l_actual_end_date,
428 p_actual_travel_duration => l_actual_travel_duration,
429 p_actual_travel_duration_uom => l_actual_travel_dur_uom,
430 p_planned_effort => rec_task.planned_effort,
431 p_planned_effort_uom => rec_task.planned_effort_uom,
432 p_actual_effort => l_act_eff,
433 p_actual_effort_uom => l_act_eff_uom,
434 x_booking_start_date => l_booking_start_date,
435 x_booking_end_date => l_booking_end_date
436 );
437
438
439 IF l_free_busy_type IS NULL
440 THEN
441 l_free_busy_type := g_free_busy_type;
442 IF rec_task.entity = 'TASK' AND
446 IF p_assignee_role = 'OWNER' AND p_show_on_calendar = 'Y'
443 l_booking_start_date IS NOT NULL AND
444 l_booking_end_date IS NOT NULL
445 THEN
447 THEN
448 l_free_busy_type := 'BUSY';
449 ELSIF p_assignee_role = 'ASSIGNEE'
450 THEN
451 update_free_busy_type
452 (
453 p_assignment_status_id => l_assignment_status_id,
454 x_free_busy_type => l_free_busy_type
455 );
456 END IF;
457 END IF;
458 END IF;
459
460 jtf_task_assignments_pkg.insert_row (
461 x_rowid => l_rowid,
462 x_task_assignment_id => l_task_assignment_id,
463 x_sched_travel_duration_uom => l_sched_travel_dur_uom,
464 x_actual_travel_distance => l_actual_travel_distance,
465 x_actual_travel_duration => l_actual_travel_duration,
466 x_actual_travel_duration_uom => l_actual_travel_dur_uom,
467 x_actual_start_date => l_actual_start_date,
468 x_actual_end_date => l_actual_end_date,
469 x_palm_flag => l_palm_flag,
470 x_wince_flag => l_wince_flag,
471 x_laptop_flag => l_laptop_flag,
472 x_device1_flag => l_device1_flag,
473 x_device2_flag => l_device2_flag,
474 x_device3_flag => l_device3_flag,
475 x_attribute1 => p_attribute1,
476 x_attribute2 => p_attribute2,
477 x_attribute3 => p_attribute3,
478 x_attribute4 => p_attribute4,
479 x_attribute5 => p_attribute5,
480 x_attribute6 => p_attribute6,
481 x_attribute7 => p_attribute7,
482 x_attribute8 => p_attribute8,
483 x_attribute9 => p_attribute9,
484 x_attribute10 => p_attribute10,
485 x_attribute11 => p_attribute11,
486 x_attribute12 => p_attribute12,
487 x_attribute13 => p_attribute13,
488 x_attribute14 => p_attribute14,
489 x_attribute15 => p_attribute15,
490 x_attribute_category => p_attribute_category,
491 x_task_id => l_task_id,
492 x_resource_id => l_resource_id,
493 x_actual_effort => l_act_eff,
494 x_actual_effort_uom => l_act_eff_uom,
495 x_schedule_flag => l_schedule_flag,
496 x_alarm_type_code => l_alarm_type_code,
497 x_alarm_contact => l_alarm_contact,
498 x_sched_travel_distance => l_sched_travel_distance,
499 x_sched_travel_duration => l_sched_travel_duration,
500 x_resource_type_code => l_resource_type_code,
501 x_creation_date => SYSDATE,
502 x_created_by => jtf_task_utl.created_by,
503 x_last_update_date => SYSDATE,
504 x_last_updated_by => jtf_task_utl.updated_by,
505 x_last_update_login => jtf_task_utl.login_id,
506 x_resource_territory_id => l_resource_territory_id,
507 x_assignment_status_id => l_assignment_status_id,
508 x_shift_construct_id => l_shift_construct_id,
509 x_assignee_role => l_assignee_role,
510 x_show_on_calendar => l_show_on_calendar,
511 x_category_id => l_category_id,
512 x_free_busy_type => NVL(l_free_busy_type, g_free_busy_type),
513 x_booking_start_date => l_booking_start_date,
514 x_booking_end_date => l_booking_end_date,
515 x_object_capacity_id => p_object_capacity_id
516 );
517
518 OPEN ra_cur1 (l_rowid);
519 FETCH ra_cur1 INTO x;
520
521 IF ra_cur1%NOTFOUND
522 THEN
523 CLOSE ra_cur1; -- Fix a missing CLOSE on 4/18/2002
524 x_return_status := fnd_api.g_ret_sts_unexp_error;
525 fnd_message.set_name ('JTF', 'JTF_TASK_INV_TK_ASS');
526 fnd_msg_pub.add;
527 RAISE fnd_api.g_exc_unexpected_error;
528 ELSE
529 x_task_assignment_id := l_task_assignment_id;
530 END IF;
531 CLOSE ra_cur1; -- Fix a missing CLOSE on 4/18/2002
532
533 ---
534 --- decide the launch of workflow
535 ---
536
537 -- Business Event System Enhancement # 2391065 and 2797666
538 IF (rec_task.entity = 'TASK')
539 THEN
540 l_assignment_rec.task_assignment_id := l_task_assignment_id;
541 l_assignment_rec.task_id := l_task_id;
542 l_assignment_rec.resource_type_code := l_resource_type_code;
543 l_assignment_rec.resource_id := l_resource_id;
544 l_assignment_rec.assignment_status_id := l_assignment_status_id;
545 l_assignment_rec.actual_start_date := l_actual_start_date;
546 l_assignment_rec.actual_end_date := l_actual_end_date;
547 l_assignment_rec.assignee_role := l_assignee_role;
548 l_assignment_rec.show_on_calendar := l_show_on_calendar;
549 l_assignment_rec.category_id := l_category_id;
550 l_assignment_rec.enable_workflow := p_enable_workflow;
551 l_assignment_rec.abort_workflow := l_abort_workflow;
552
553 jtf_task_wf_events_pvt.publish_create_assignment(l_assignment_rec, x_event_return_status);
554
555 IF (x_event_return_status = 'WARNING')
556 THEN
557 fnd_message.set_name ('JTF', 'JTF_TASK_ASS_EVENT_WARNING');
558 fnd_message.set_token ('P_ASSIGNMENT_ID', l_task_assignment_id);
559 fnd_msg_pub.add;
560 ELSIF(x_event_return_status = 'ERROR')
561 THEN
562 fnd_message.set_name ('JTF', 'JTF_TASK_ASS_EVENT_ERROR');
563 fnd_message.set_token ('P_ASSIGNMENT_ID', l_task_assignment_id);
564 fnd_msg_pub.add;
565 x_return_status := fnd_api.g_ret_sts_unexp_error;
566 RAISE fnd_api.g_exc_unexpected_error;
567 END IF ;
568
569 END IF;
570
574 IF (rec_task.source_object_type_code <> 'APPOINTMENT') THEN
571 -- ------------------------------------------------------------------------
572 -- Create reference to resource, fix for enh #1845501
573 -- ------------------------------------------------------------------------
575 --Do not create automatic references for party assignment created for an APPOINTMENT
576 --Check bug 3968128
577 jtf_task_utl.create_party_reference (
578 p_reference_from => 'ASSIGNMENT',
579 p_task_id => l_task_id,
580 p_party_type_code => l_resource_type_code,
581 p_party_id => l_resource_id,
582 x_msg_count => x_msg_count,
583 x_msg_data => x_msg_data,
584 x_return_status => x_return_status);
585
586 IF NOT (x_return_status = fnd_api.g_ret_sts_success)
587 THEN
588 x_return_status := fnd_api.g_ret_sts_unexp_error;
589 RAISE fnd_api.g_exc_unexpected_error;
590 END IF;
591
592 END IF; -- for the if statement for (rec_task.source_object_type_code <> 'APPOINTMENT')
593
594 fnd_msg_pub.count_and_get (p_count => x_msg_count, p_data => x_msg_data);
595 EXCEPTION
596 WHEN fnd_api.g_exc_unexpected_error
597 THEN
598 ROLLBACK TO create_task_assign_pvt;
599 x_return_status := fnd_api.g_ret_sts_unexp_error;
600 fnd_msg_pub.count_and_get (
601 p_count => x_msg_count,
602 p_data => x_msg_data
603 );
604 WHEN OTHERS
605 THEN
606 ROLLBACK TO create_task_assign_pvt;
607 fnd_message.set_name ('JTF', 'JTF_TASK_UNKNOWN_ERROR');
608 fnd_message.set_token ('P_TEXT', SQLCODE || SQLERRM);
609 fnd_msg_pub.add;
610 x_return_status := fnd_api.g_ret_sts_unexp_error;
611 fnd_msg_pub.count_and_get (
612 p_count => x_msg_count,
613 p_data => x_msg_data
614 );
615 END;
616
617 PROCEDURE create_task_assignment (
618 p_api_version IN NUMBER,
619 p_init_msg_list IN VARCHAR2 DEFAULT fnd_api.g_false,
620 p_commit IN VARCHAR2 DEFAULT fnd_api.g_false,
621 p_task_assignment_id IN NUMBER DEFAULT NULL,
622 p_task_id IN NUMBER DEFAULT NULL,
623 p_resource_type_code IN VARCHAR2,
624 p_resource_id IN NUMBER,
625 p_actual_effort IN NUMBER DEFAULT NULL,
626 p_actual_effort_uom IN VARCHAR2 DEFAULT NULL,
627 p_schedule_flag IN VARCHAR2 DEFAULT NULL,
628 p_alarm_type_code IN VARCHAR2 DEFAULT NULL,
629 p_alarm_contact IN VARCHAR2 DEFAULT NULL,
630 p_sched_travel_distance IN NUMBER DEFAULT NULL,
631 p_sched_travel_duration IN NUMBER DEFAULT NULL,
632 p_sched_travel_duration_uom IN VARCHAR2 DEFAULT NULL,
633 p_actual_travel_distance IN NUMBER DEFAULT NULL,
634 p_actual_travel_duration IN NUMBER DEFAULT NULL,
635 p_actual_travel_duration_uom IN VARCHAR2 DEFAULT NULL,
636 p_actual_start_date IN DATE DEFAULT NULL,
637 p_actual_end_date IN DATE DEFAULT NULL,
638 p_palm_flag IN VARCHAR2 DEFAULT NULL,
639 p_wince_flag IN VARCHAR2 DEFAULT NULL,
640 p_laptop_flag IN VARCHAR2 DEFAULT NULL,
641 p_device1_flag IN VARCHAR2 DEFAULT NULL,
642 p_device2_flag IN VARCHAR2 DEFAULT NULL,
643 p_device3_flag IN VARCHAR2 DEFAULT NULL,
644 p_resource_territory_id IN NUMBER DEFAULT NULL,
645 p_assignment_status_id IN NUMBER,
646 p_shift_construct_id IN NUMBER DEFAULT NULL,
647 x_return_status OUT NOCOPY VARCHAR2,
648 x_msg_count OUT NOCOPY NUMBER,
649 x_msg_data OUT NOCOPY VARCHAR2,
650 x_task_assignment_id OUT NOCOPY NUMBER,
651 p_attribute1 IN VARCHAR2 DEFAULT NULL,
652 p_attribute2 IN VARCHAR2 DEFAULT NULL,
653 p_attribute3 IN VARCHAR2 DEFAULT NULL,
654 p_attribute4 IN VARCHAR2 DEFAULT NULL,
655 p_attribute5 IN VARCHAR2 DEFAULT NULL,
656 p_attribute6 IN VARCHAR2 DEFAULT NULL,
657 p_attribute7 IN VARCHAR2 DEFAULT NULL,
658 p_attribute8 IN VARCHAR2 DEFAULT NULL,
659 p_attribute9 IN VARCHAR2 DEFAULT NULL,
660 p_attribute10 IN VARCHAR2 DEFAULT NULL,
661 p_attribute11 IN VARCHAR2 DEFAULT NULL,
662 p_attribute12 IN VARCHAR2 DEFAULT NULL,
663 p_attribute13 IN VARCHAR2 DEFAULT NULL,
664 p_attribute14 IN VARCHAR2 DEFAULT NULL,
665 p_attribute15 IN VARCHAR2 DEFAULT NULL,
666 p_attribute_category IN VARCHAR2 DEFAULT NULL,
667 p_assignee_role IN VARCHAR2 DEFAULT 'ASSIGNEE',
668 p_show_on_calendar IN VARCHAR2 DEFAULT jtf_task_utl.g_yes_char,
669 p_category_id IN NUMBER DEFAULT NULL,
670 p_enable_workflow IN VARCHAR2,
671 p_abort_workflow IN VARCHAR2,
672 p_add_option IN VARCHAR2,
673 p_free_busy_type IN VARCHAR2
674 )
675 IS
676 BEGIN
677
678 create_task_assignment (
679 p_api_version => p_api_version,
680 p_init_msg_list => p_init_msg_list,
681 p_commit => p_commit,
682 p_task_assignment_id => p_task_assignment_id,
686 p_actual_effort => p_actual_effort,
683 p_task_id => p_task_id,
684 p_resource_type_code => p_resource_type_code,
685 p_resource_id => p_resource_id,
687 p_actual_effort_uom => p_actual_effort_uom,
688 p_schedule_flag => p_schedule_flag,
689 p_alarm_type_code => p_alarm_type_code,
690 p_alarm_contact => p_alarm_contact,
691 p_sched_travel_distance => p_sched_travel_distance,
692 p_sched_travel_duration => p_sched_travel_duration,
693 p_sched_travel_duration_uom => p_sched_travel_duration_uom,
694 p_actual_travel_distance => p_actual_travel_distance,
695 p_actual_travel_duration => p_actual_travel_duration,
696 p_actual_travel_duration_uom => p_actual_travel_duration_uom,
697 p_actual_start_date => p_actual_start_date,
698 p_actual_end_date => p_actual_end_date,
699 p_palm_flag => p_palm_flag,
700 p_wince_flag => p_wince_flag,
701 p_laptop_flag => p_laptop_flag,
702 p_device1_flag => p_device1_flag,
703 p_device2_flag => p_device2_flag,
704 p_device3_flag => p_device3_flag,
705 p_resource_territory_id => p_resource_territory_id,
706 p_assignment_status_id => p_assignment_status_id,
707 p_shift_construct_id => p_shift_construct_id,
708 x_return_status => x_return_status,
709 x_msg_count => x_msg_count,
710 x_msg_data => x_msg_data,
711 x_task_assignment_id => x_task_assignment_id,
712 p_attribute1 => p_attribute1,
713 p_attribute2 => p_attribute2,
714 p_attribute3 => p_attribute3,
715 p_attribute4 => p_attribute4,
716 p_attribute5 => p_attribute5,
717 p_attribute6 => p_attribute6,
718 p_attribute7 => p_attribute7,
719 p_attribute8 => p_attribute8,
720 p_attribute9 => p_attribute9,
721 p_attribute10 => p_attribute10,
722 p_attribute11 => p_attribute11,
723 p_attribute12 => p_attribute12,
724 p_attribute13 => p_attribute13,
725 p_attribute14 => p_attribute14,
726 p_attribute15 => p_attribute15,
727 p_attribute_category => p_attribute_category,
728 p_assignee_role => p_assignee_role,
729 p_show_on_calendar => p_show_on_calendar,
730 p_category_id => p_category_id,
731 p_enable_workflow => p_enable_workflow,
732 p_abort_workflow => p_abort_workflow,
733 p_add_option => p_add_option,
734 p_free_busy_type => p_free_busy_type,
735 p_object_capacity_id => NULL
736 );
737 END;
738
739 PROCEDURE create_task_assignment (
740 p_api_version IN NUMBER,
741 p_init_msg_list IN VARCHAR2 DEFAULT fnd_api.g_false,
742 p_commit IN VARCHAR2 DEFAULT fnd_api.g_false,
743 p_task_assignment_id IN NUMBER DEFAULT NULL,
744 p_task_id IN NUMBER DEFAULT NULL,
745 p_resource_type_code IN VARCHAR2,
746 p_resource_id IN NUMBER,
747 p_actual_effort IN NUMBER DEFAULT NULL,
748 p_actual_effort_uom IN VARCHAR2 DEFAULT NULL,
749 p_schedule_flag IN VARCHAR2 DEFAULT NULL,
750 p_alarm_type_code IN VARCHAR2 DEFAULT NULL,
751 p_alarm_contact IN VARCHAR2 DEFAULT NULL,
752 p_sched_travel_distance IN NUMBER DEFAULT NULL,
753 p_sched_travel_duration IN NUMBER DEFAULT NULL,
754 p_sched_travel_duration_uom IN VARCHAR2 DEFAULT NULL,
755 p_actual_travel_distance IN NUMBER DEFAULT NULL,
756 p_actual_travel_duration IN NUMBER DEFAULT NULL,
757 p_actual_travel_duration_uom IN VARCHAR2 DEFAULT NULL,
758 p_actual_start_date IN DATE DEFAULT NULL,
759 p_actual_end_date IN DATE DEFAULT NULL,
760 p_palm_flag IN VARCHAR2 DEFAULT NULL,
761 p_wince_flag IN VARCHAR2 DEFAULT NULL,
762 p_laptop_flag IN VARCHAR2 DEFAULT NULL,
763 p_device1_flag IN VARCHAR2 DEFAULT NULL,
764 p_device2_flag IN VARCHAR2 DEFAULT NULL,
765 p_device3_flag IN VARCHAR2 DEFAULT NULL,
766 p_resource_territory_id IN NUMBER DEFAULT NULL,
767 p_assignment_status_id IN NUMBER,
768 p_shift_construct_id IN NUMBER DEFAULT NULL,
769 x_return_status OUT NOCOPY VARCHAR2,
770 x_msg_count OUT NOCOPY NUMBER,
771 x_msg_data OUT NOCOPY VARCHAR2,
772 x_task_assignment_id OUT NOCOPY NUMBER,
773 p_attribute1 IN VARCHAR2 DEFAULT NULL,
774 p_attribute2 IN VARCHAR2 DEFAULT NULL,
775 p_attribute3 IN VARCHAR2 DEFAULT NULL,
776 p_attribute4 IN VARCHAR2 DEFAULT NULL,
777 p_attribute5 IN VARCHAR2 DEFAULT NULL,
778 p_attribute6 IN VARCHAR2 DEFAULT NULL,
779 p_attribute7 IN VARCHAR2 DEFAULT NULL,
783 p_attribute11 IN VARCHAR2 DEFAULT NULL,
780 p_attribute8 IN VARCHAR2 DEFAULT NULL,
781 p_attribute9 IN VARCHAR2 DEFAULT NULL,
782 p_attribute10 IN VARCHAR2 DEFAULT NULL,
784 p_attribute12 IN VARCHAR2 DEFAULT NULL,
785 p_attribute13 IN VARCHAR2 DEFAULT NULL,
786 p_attribute14 IN VARCHAR2 DEFAULT NULL,
787 p_attribute15 IN VARCHAR2 DEFAULT NULL,
788 p_attribute_category IN VARCHAR2 DEFAULT NULL,
789 p_assignee_role IN VARCHAR2 DEFAULT 'ASSIGNEE',
790 p_show_on_calendar IN VARCHAR2 DEFAULT jtf_task_utl.g_yes_char,
791 p_category_id IN NUMBER DEFAULT NULL,
792 p_enable_workflow IN VARCHAR2,
793 p_abort_workflow IN VARCHAR2,
794 p_add_option IN VARCHAR2
795 )
796 IS
797 BEGIN
798 jtf_task_assignments_pvt.create_task_assignment (
799 p_api_version => p_api_version,
800 p_init_msg_list => p_init_msg_list,
801 p_commit => p_commit,
802 p_task_assignment_id => p_task_assignment_id,
803 p_task_id => p_task_id,
804 p_resource_type_code => p_resource_type_code,
805 p_resource_id => p_resource_id,
806 p_actual_effort => p_actual_effort,
807 p_actual_effort_uom => p_actual_effort_uom,
808 p_schedule_flag => p_schedule_flag,
809 p_alarm_type_code => p_alarm_type_code,
810 p_alarm_contact => p_alarm_contact,
811 p_sched_travel_distance => p_sched_travel_distance,
812 p_sched_travel_duration => p_sched_travel_duration,
813 p_sched_travel_duration_uom => p_sched_travel_duration_uom,
814 p_actual_travel_distance => p_actual_travel_distance,
815 p_actual_travel_duration => p_actual_travel_duration,
816 p_actual_travel_duration_uom => p_actual_travel_duration_uom,
817 p_actual_start_date => p_actual_start_date,
818 p_actual_end_date => p_actual_end_date,
819 p_palm_flag => p_palm_flag,
820 p_wince_flag => p_wince_flag,
821 p_laptop_flag => p_laptop_flag,
822 p_device1_flag => p_device1_flag,
823 p_device2_flag => p_device2_flag,
824 p_device3_flag => p_device3_flag,
825 p_resource_territory_id => p_resource_territory_id,
826 p_assignment_status_id => p_assignment_status_id,
827 p_shift_construct_id => p_shift_construct_id,
828 x_return_status => x_return_status,
829 x_msg_count => x_msg_count,
830 x_msg_data => x_msg_data,
831 x_task_assignment_id => x_task_assignment_id,
832 p_attribute1 => p_attribute1,
833 p_attribute2 => p_attribute2,
834 p_attribute3 => p_attribute3,
835 p_attribute4 => p_attribute4,
836 p_attribute5 => p_attribute5,
837 p_attribute6 => p_attribute6,
838 p_attribute7 => p_attribute7,
839 p_attribute8 => p_attribute8,
840 p_attribute9 => p_attribute9,
841 p_attribute10 => p_attribute10,
842 p_attribute11 => p_attribute11,
843 p_attribute12 => p_attribute12,
844 p_attribute13 => p_attribute13,
845 p_attribute14 => p_attribute14,
846 p_attribute15 => p_attribute15,
847 p_attribute_category => p_attribute_category,
848 p_assignee_role => p_assignee_role,
849 p_show_on_calendar => p_show_on_calendar,
850 p_category_id => p_category_id,
851 p_enable_workflow => p_enable_workflow,
852 p_abort_workflow => p_abort_workflow,
853 p_add_option => p_add_option,
854 p_free_busy_type => NULL
855 );
856 END;
857
858
859 PROCEDURE create_task_assignment (
860 p_api_version IN NUMBER,
861 p_init_msg_list IN VARCHAR2 DEFAULT fnd_api.g_false,
862 p_commit IN VARCHAR2 DEFAULT fnd_api.g_false,
863 p_task_assignment_id IN NUMBER DEFAULT NULL,
864 p_task_id IN NUMBER DEFAULT NULL,
865 p_resource_type_code IN VARCHAR2,
866 p_resource_id IN NUMBER,
867 p_actual_effort IN NUMBER DEFAULT NULL,
868 p_actual_effort_uom IN VARCHAR2 DEFAULT NULL,
869 p_schedule_flag IN VARCHAR2 DEFAULT NULL,
870 p_alarm_type_code IN VARCHAR2 DEFAULT NULL,
871 p_alarm_contact IN VARCHAR2 DEFAULT NULL,
872 p_sched_travel_distance IN NUMBER DEFAULT NULL,
873 p_sched_travel_duration IN NUMBER DEFAULT NULL,
874 p_sched_travel_duration_uom IN VARCHAR2 DEFAULT NULL,
875 p_actual_travel_distance IN NUMBER DEFAULT NULL,
876 p_actual_travel_duration IN NUMBER DEFAULT NULL,
877 p_actual_travel_duration_uom IN VARCHAR2 DEFAULT NULL,
878 p_actual_start_date IN DATE DEFAULT NULL,
879 p_actual_end_date IN DATE DEFAULT NULL,
880 p_palm_flag IN VARCHAR2 DEFAULT NULL,
881 p_wince_flag IN VARCHAR2 DEFAULT NULL,
882 p_laptop_flag IN VARCHAR2 DEFAULT NULL,
886 p_resource_territory_id IN NUMBER DEFAULT NULL,
883 p_device1_flag IN VARCHAR2 DEFAULT NULL,
884 p_device2_flag IN VARCHAR2 DEFAULT NULL,
885 p_device3_flag IN VARCHAR2 DEFAULT NULL,
887 p_assignment_status_id IN NUMBER,
888 p_shift_construct_id IN NUMBER DEFAULT NULL,
889 x_return_status OUT NOCOPY VARCHAR2,
890 x_msg_count OUT NOCOPY NUMBER,
891 x_msg_data OUT NOCOPY VARCHAR2,
892 x_task_assignment_id OUT NOCOPY NUMBER,
893 p_attribute1 IN VARCHAR2 DEFAULT NULL,
894 p_attribute2 IN VARCHAR2 DEFAULT NULL,
895 p_attribute3 IN VARCHAR2 DEFAULT NULL,
896 p_attribute4 IN VARCHAR2 DEFAULT NULL,
897 p_attribute5 IN VARCHAR2 DEFAULT NULL,
898 p_attribute6 IN VARCHAR2 DEFAULT NULL,
899 p_attribute7 IN VARCHAR2 DEFAULT NULL,
900 p_attribute8 IN VARCHAR2 DEFAULT NULL,
901 p_attribute9 IN VARCHAR2 DEFAULT NULL,
902 p_attribute10 IN VARCHAR2 DEFAULT NULL,
903 p_attribute11 IN VARCHAR2 DEFAULT NULL,
904 p_attribute12 IN VARCHAR2 DEFAULT NULL,
905 p_attribute13 IN VARCHAR2 DEFAULT NULL,
906 p_attribute14 IN VARCHAR2 DEFAULT NULL,
907 p_attribute15 IN VARCHAR2 DEFAULT NULL,
908 p_attribute_category IN VARCHAR2 DEFAULT NULL,
909 p_assignee_role IN VARCHAR2 DEFAULT 'ASSIGNEE',
910 p_show_on_calendar IN VARCHAR2
911 DEFAULT jtf_task_utl.g_yes_char,
912 p_category_id IN NUMBER DEFAULT NULL,
913 p_enable_workflow IN VARCHAR2,
914 p_abort_workflow IN VARCHAR2
915 )
916 IS
917 BEGIN
918 jtf_task_assignments_pvt.create_task_assignment (
919 p_api_version => p_api_version,
920 p_init_msg_list => p_init_msg_list,
921 p_commit => p_commit,
922 p_task_assignment_id => p_task_assignment_id,
923 p_task_id => p_task_id,
924 p_resource_type_code => p_resource_type_code,
925 p_resource_id => p_resource_id,
926 p_actual_effort => p_actual_effort,
927 p_actual_effort_uom => p_actual_effort_uom,
928 p_schedule_flag => p_schedule_flag,
929 p_alarm_type_code => p_alarm_type_code,
930 p_alarm_contact => p_alarm_contact,
931 p_sched_travel_distance => p_sched_travel_distance,
932 p_sched_travel_duration => p_sched_travel_duration,
933 p_sched_travel_duration_uom => p_sched_travel_duration_uom,
934 p_actual_travel_distance => p_actual_travel_distance,
935 p_actual_travel_duration => p_actual_travel_duration,
936 p_actual_travel_duration_uom => p_actual_travel_duration_uom,
937 p_actual_start_date => p_actual_start_date,
938 p_actual_end_date => p_actual_end_date,
939 p_palm_flag => p_palm_flag,
940 p_wince_flag => p_wince_flag,
941 p_laptop_flag => p_laptop_flag,
942 p_device1_flag => p_device1_flag,
943 p_device2_flag => p_device2_flag,
944 p_device3_flag => p_device3_flag,
945 p_resource_territory_id => p_resource_territory_id,
946 p_assignment_status_id => p_assignment_status_id,
947 p_shift_construct_id => p_shift_construct_id,
948 x_return_status => x_return_status,
949 x_msg_count => x_msg_count,
950 x_msg_data => x_msg_data,
951 x_task_assignment_id => x_task_assignment_id,
952 p_attribute1 => p_attribute1,
953 p_attribute2 => p_attribute2,
954 p_attribute3 => p_attribute3,
955 p_attribute4 => p_attribute4,
956 p_attribute5 => p_attribute5,
957 p_attribute6 => p_attribute6,
958 p_attribute7 => p_attribute7,
959 p_attribute8 => p_attribute8,
960 p_attribute9 => p_attribute9,
961 p_attribute10 => p_attribute10,
962 p_attribute11 => p_attribute11,
963 p_attribute12 => p_attribute12,
964 p_attribute13 => p_attribute13,
965 p_attribute14 => p_attribute14,
966 p_attribute15 => p_attribute15,
967 p_attribute_category => p_attribute_category,
968 p_assignee_role => p_assignee_role,
969 p_show_on_calendar => p_show_on_calendar,
970 p_category_id => p_category_id,
971 p_enable_workflow => p_enable_workflow,
972 p_abort_workflow => p_abort_workflow,
973 p_add_option => JTF_TASK_REPEAT_APPT_PVT.G_ONE,
974 p_free_busy_type => NULL
975 );
976 END;
977
978 PROCEDURE create_task_assignment (
979 p_api_version IN NUMBER,
980 p_init_msg_list IN VARCHAR2 DEFAULT fnd_api.g_false,
981 p_commit IN VARCHAR2 DEFAULT fnd_api.g_false,
982 p_task_assignment_id IN NUMBER DEFAULT NULL,
983 p_task_id IN NUMBER DEFAULT NULL,
984 p_resource_type_code IN VARCHAR2,
985 p_resource_id IN NUMBER,
986 p_actual_effort IN NUMBER DEFAULT NULL,
987 p_actual_effort_uom IN VARCHAR2 DEFAULT NULL,
991 p_sched_travel_distance IN NUMBER DEFAULT NULL,
988 p_schedule_flag IN VARCHAR2 DEFAULT NULL,
989 p_alarm_type_code IN VARCHAR2 DEFAULT NULL,
990 p_alarm_contact IN VARCHAR2 DEFAULT NULL,
992 p_sched_travel_duration IN NUMBER DEFAULT NULL,
993 p_sched_travel_duration_uom IN VARCHAR2 DEFAULT NULL,
994 p_actual_travel_distance IN NUMBER DEFAULT NULL,
995 p_actual_travel_duration IN NUMBER DEFAULT NULL,
996 p_actual_travel_duration_uom IN VARCHAR2 DEFAULT NULL,
997 p_actual_start_date IN DATE DEFAULT NULL,
998 p_actual_end_date IN DATE DEFAULT NULL,
999 p_palm_flag IN VARCHAR2 DEFAULT NULL,
1000 p_wince_flag IN VARCHAR2 DEFAULT NULL,
1001 p_laptop_flag IN VARCHAR2 DEFAULT NULL,
1002 p_device1_flag IN VARCHAR2 DEFAULT NULL,
1003 p_device2_flag IN VARCHAR2 DEFAULT NULL,
1004 p_device3_flag IN VARCHAR2 DEFAULT NULL,
1005 p_resource_territory_id IN NUMBER DEFAULT NULL,
1006 p_assignment_status_id IN NUMBER,
1007 p_shift_construct_id IN NUMBER DEFAULT NULL,
1008 x_return_status OUT NOCOPY VARCHAR2,
1009 x_msg_count OUT NOCOPY NUMBER,
1010 x_msg_data OUT NOCOPY VARCHAR2,
1011 x_task_assignment_id OUT NOCOPY NUMBER,
1012 p_attribute1 IN VARCHAR2 DEFAULT NULL,
1013 p_attribute2 IN VARCHAR2 DEFAULT NULL,
1014 p_attribute3 IN VARCHAR2 DEFAULT NULL,
1015 p_attribute4 IN VARCHAR2 DEFAULT NULL,
1016 p_attribute5 IN VARCHAR2 DEFAULT NULL,
1017 p_attribute6 IN VARCHAR2 DEFAULT NULL,
1018 p_attribute7 IN VARCHAR2 DEFAULT NULL,
1019 p_attribute8 IN VARCHAR2 DEFAULT NULL,
1020 p_attribute9 IN VARCHAR2 DEFAULT NULL,
1021 p_attribute10 IN VARCHAR2 DEFAULT NULL,
1022 p_attribute11 IN VARCHAR2 DEFAULT NULL,
1023 p_attribute12 IN VARCHAR2 DEFAULT NULL,
1024 p_attribute13 IN VARCHAR2 DEFAULT NULL,
1025 p_attribute14 IN VARCHAR2 DEFAULT NULL,
1026 p_attribute15 IN VARCHAR2 DEFAULT NULL,
1027 p_attribute_category IN VARCHAR2 DEFAULT NULL,
1028 p_assignee_role IN VARCHAR2 DEFAULT 'ASSIGNEE',
1029 p_show_on_calendar IN VARCHAR2
1030 DEFAULT jtf_task_utl.g_yes_char,
1031 p_category_id IN NUMBER DEFAULT NULL
1032 )
1033 IS
1034 BEGIN
1035 jtf_task_assignments_pvt.create_task_assignment (
1036 p_api_version => p_api_version,
1037 p_init_msg_list => p_init_msg_list,
1038 p_commit => p_commit,
1039 p_task_assignment_id => p_task_assignment_id,
1040 p_task_id => p_task_id,
1041 p_resource_type_code => p_resource_type_code,
1042 p_resource_id => p_resource_id,
1043 p_actual_effort => p_actual_effort,
1044 p_actual_effort_uom => p_actual_effort_uom,
1045 p_schedule_flag => p_schedule_flag,
1046 p_alarm_type_code => p_alarm_type_code,
1047 p_alarm_contact => p_alarm_contact,
1048 p_sched_travel_distance => p_sched_travel_distance,
1049 p_sched_travel_duration => p_sched_travel_duration,
1050 p_sched_travel_duration_uom => p_sched_travel_duration_uom,
1051 p_actual_travel_distance => p_actual_travel_distance,
1052 p_actual_travel_duration => p_actual_travel_duration,
1053 p_actual_travel_duration_uom => p_actual_travel_duration_uom,
1054 p_actual_start_date => p_actual_start_date,
1055 p_actual_end_date => p_actual_end_date,
1056 p_palm_flag => p_palm_flag,
1057 p_wince_flag => p_wince_flag,
1058 p_laptop_flag => p_laptop_flag,
1059 p_device1_flag => p_device1_flag,
1060 p_device2_flag => p_device2_flag,
1061 p_device3_flag => p_device3_flag,
1062 p_resource_territory_id => p_resource_territory_id,
1063 p_assignment_status_id => p_assignment_status_id,
1064 p_shift_construct_id => p_shift_construct_id,
1065 x_return_status => x_return_status,
1066 x_msg_count => x_msg_count,
1067 x_msg_data => x_msg_data,
1068 x_task_assignment_id => x_task_assignment_id,
1069 p_attribute1 => p_attribute1,
1070 p_attribute2 => p_attribute2,
1071 p_attribute3 => p_attribute3,
1072 p_attribute4 => p_attribute4,
1073 p_attribute5 => p_attribute5,
1074 p_attribute6 => p_attribute6,
1075 p_attribute7 => p_attribute7,
1076 p_attribute8 => p_attribute8,
1077 p_attribute9 => p_attribute9,
1078 p_attribute10 => p_attribute10,
1079 p_attribute11 => p_attribute11,
1080 p_attribute12 => p_attribute12,
1081 p_attribute13 => p_attribute13,
1082 p_attribute14 => p_attribute14,
1083 p_attribute15 => p_attribute15,
1084 p_attribute_category => p_attribute_category,
1085 p_assignee_role => p_assignee_role,
1086 p_show_on_calendar => p_show_on_calendar,
1090 p_add_option => JTF_TASK_REPEAT_APPT_PVT.G_ONE,
1087 p_category_id => p_category_id,
1088 p_enable_workflow => fnd_profile.value('JTF_TASK_ENABLE_WORKFLOW'),
1089 p_abort_workflow => fnd_profile.value('JTF_TASK_ABORT_PREV_WF'),
1091 p_free_busy_type => NULL
1092 );
1093 END;
1094
1095 --Procedure to Update the Task Assignment
1096 PROCEDURE update_task_assignment (
1097 p_api_version IN NUMBER,
1098 p_object_version_number IN OUT NOCOPY NUMBER,
1099 p_init_msg_list IN VARCHAR2 DEFAULT fnd_api.g_false,
1100 p_commit IN VARCHAR2 DEFAULT fnd_api.g_false,
1101 p_task_assignment_id IN NUMBER DEFAULT fnd_api.g_miss_num,
1102 p_resource_type_code IN VARCHAR2 DEFAULT fnd_api.g_miss_char,
1103 p_resource_id IN NUMBER DEFAULT fnd_api.g_miss_num,
1104 p_actual_effort IN NUMBER DEFAULT fnd_api.g_miss_num,
1105 p_actual_effort_uom IN VARCHAR2 DEFAULT fnd_api.g_miss_char,
1106 p_schedule_flag IN VARCHAR2 DEFAULT fnd_api.g_miss_char,
1107 p_alarm_type_code IN VARCHAR2 DEFAULT fnd_api.g_miss_char,
1108 p_alarm_contact IN VARCHAR2 DEFAULT fnd_api.g_miss_char,
1109 p_sched_travel_distance IN NUMBER DEFAULT fnd_api.g_miss_num,
1110 p_sched_travel_duration IN NUMBER DEFAULT fnd_api.g_miss_num,
1111 p_sched_travel_duration_uom IN VARCHAR2 DEFAULT fnd_api.g_miss_char,
1112 p_actual_travel_distance IN NUMBER DEFAULT fnd_api.g_miss_num,
1113 p_actual_travel_duration IN NUMBER DEFAULT fnd_api.g_miss_num,
1114 p_actual_travel_duration_uom IN VARCHAR2 DEFAULT fnd_api.g_miss_char,
1115 p_actual_start_date IN DATE DEFAULT fnd_api.g_miss_date,
1116 p_actual_end_date IN DATE DEFAULT fnd_api.g_miss_date,
1117 p_palm_flag IN VARCHAR2 DEFAULT fnd_api.g_miss_char,
1118 p_wince_flag IN VARCHAR2 DEFAULT fnd_api.g_miss_char,
1119 p_laptop_flag IN VARCHAR2 DEFAULT fnd_api.g_miss_char,
1120 p_device1_flag IN VARCHAR2 DEFAULT fnd_api.g_miss_char,
1121 p_device2_flag IN VARCHAR2 DEFAULT fnd_api.g_miss_char,
1122 p_device3_flag IN VARCHAR2 DEFAULT fnd_api.g_miss_char,
1123 p_resource_territory_id IN NUMBER DEFAULT fnd_api.g_miss_num,
1124 p_assignment_status_id IN NUMBER DEFAULT fnd_api.g_miss_num,
1125 p_shift_construct_id IN NUMBER DEFAULT fnd_api.g_miss_num,
1126 x_return_status OUT NOCOPY VARCHAR2,
1127 x_msg_count OUT NOCOPY NUMBER,
1128 x_msg_data OUT NOCOPY VARCHAR2,
1129 p_attribute1 IN VARCHAR2 DEFAULT jtf_task_utl.g_miss_char,
1130 p_attribute2 IN VARCHAR2 DEFAULT jtf_task_utl.g_miss_char,
1131 p_attribute3 IN VARCHAR2 DEFAULT jtf_task_utl.g_miss_char,
1132 p_attribute4 IN VARCHAR2 DEFAULT jtf_task_utl.g_miss_char,
1133 p_attribute5 IN VARCHAR2 DEFAULT jtf_task_utl.g_miss_char,
1134 p_attribute6 IN VARCHAR2 DEFAULT jtf_task_utl.g_miss_char,
1135 p_attribute7 IN VARCHAR2 DEFAULT jtf_task_utl.g_miss_char,
1136 p_attribute8 IN VARCHAR2 DEFAULT jtf_task_utl.g_miss_char,
1137 p_attribute9 IN VARCHAR2 DEFAULT jtf_task_utl.g_miss_char,
1138 p_attribute10 IN VARCHAR2 DEFAULT jtf_task_utl.g_miss_char,
1139 p_attribute11 IN VARCHAR2 DEFAULT jtf_task_utl.g_miss_char,
1140 p_attribute12 IN VARCHAR2 DEFAULT jtf_task_utl.g_miss_char,
1141 p_attribute13 IN VARCHAR2 DEFAULT jtf_task_utl.g_miss_char,
1142 p_attribute14 IN VARCHAR2 DEFAULT jtf_task_utl.g_miss_char,
1143 p_attribute15 IN VARCHAR2 DEFAULT jtf_task_utl.g_miss_char,
1144 p_attribute_category IN VARCHAR2 DEFAULT jtf_task_utl.g_miss_char,
1145 p_assignee_role IN VARCHAR2 DEFAULT jtf_task_utl.g_miss_char,
1146 p_show_on_calendar IN VARCHAR2 DEFAULT jtf_task_utl.g_miss_char,
1147 p_category_id IN NUMBER DEFAULT jtf_task_utl.g_miss_number,
1148 p_enable_workflow IN VARCHAR2,
1149 p_abort_workflow IN VARCHAR2,
1150 p_free_busy_type IN VARCHAR2
1151 )
1152 IS
1153 BEGIN
1154 jtf_task_assignments_pvt.update_task_assignment (
1155 p_api_version => p_api_version,
1156 p_object_version_number => p_object_version_number,
1157 p_init_msg_list => p_init_msg_list,
1158 p_commit => p_commit,
1159 p_task_assignment_id => p_task_assignment_id,
1160 p_resource_type_code => p_resource_type_code,
1161 p_resource_id => p_resource_id,
1162 p_actual_effort => p_actual_effort,
1163 p_actual_effort_uom => p_actual_effort_uom,
1164 p_schedule_flag => p_schedule_flag,
1165 p_alarm_type_code => p_alarm_type_code,
1166 p_alarm_contact => p_alarm_contact,
1167 p_sched_travel_distance => p_sched_travel_distance,
1168 p_sched_travel_duration => p_sched_travel_duration,
1169 p_sched_travel_duration_uom => p_sched_travel_duration_uom,
1170 p_actual_travel_distance => p_actual_travel_distance,
1171 p_actual_travel_duration => p_actual_travel_duration,
1175 p_palm_flag => p_palm_flag,
1172 p_actual_travel_duration_uom => p_actual_travel_duration_uom,
1173 p_actual_start_date => p_actual_start_date,
1174 p_actual_end_date => p_actual_end_date,
1176 p_wince_flag => p_wince_flag,
1177 p_laptop_flag => p_laptop_flag,
1178 p_device1_flag => p_device1_flag,
1179 p_device2_flag => p_device2_flag,
1180 p_device3_flag => p_device3_flag,
1181 p_resource_territory_id => p_resource_territory_id,
1182 p_assignment_status_id => p_assignment_status_id,
1183 p_shift_construct_id => p_shift_construct_id,
1184 x_return_status => x_return_status,
1185 x_msg_count => x_msg_count,
1186 x_msg_data => x_msg_data,
1187 p_attribute1 => p_attribute1,
1188 p_attribute2 => p_attribute2,
1189 p_attribute3 => p_attribute3,
1190 p_attribute4 => p_attribute4,
1191 p_attribute5 => p_attribute5,
1192 p_attribute6 => p_attribute6,
1193 p_attribute7 => p_attribute7,
1194 p_attribute8 => p_attribute8,
1195 p_attribute9 => p_attribute9,
1196 p_attribute10 => p_attribute10,
1197 p_attribute11 => p_attribute11,
1198 p_attribute12 => p_attribute12,
1199 p_attribute13 => p_attribute13,
1200 p_attribute14 => p_attribute14,
1201 p_attribute15 => p_attribute15,
1202 p_attribute_category => p_attribute_category,
1203 p_assignee_role => p_assignee_role,
1204 p_show_on_calendar => p_show_on_calendar,
1205 p_category_id => p_category_id,
1206 p_enable_workflow => p_enable_workflow,
1207 p_abort_workflow => p_abort_workflow,
1208 p_free_busy_type => p_free_busy_type,
1209 p_object_capacity_id => fnd_api.g_miss_num
1210 );
1211 END;
1212
1213 --Procedure to Update the Task Assignment
1214 PROCEDURE update_task_assignment (
1215 p_api_version IN NUMBER,
1216 p_object_version_number IN OUT NOCOPY NUMBER,
1217 p_init_msg_list IN VARCHAR2 DEFAULT fnd_api.g_false,
1218 p_commit IN VARCHAR2 DEFAULT fnd_api.g_false,
1219 p_task_assignment_id IN NUMBER
1220 DEFAULT fnd_api.g_miss_num,
1221 p_resource_type_code IN VARCHAR2
1222 DEFAULT fnd_api.g_miss_char,
1223 p_resource_id IN NUMBER
1224 DEFAULT fnd_api.g_miss_num,
1225 p_actual_effort IN NUMBER
1226 DEFAULT fnd_api.g_miss_num,
1227 p_actual_effort_uom IN VARCHAR2
1228 DEFAULT fnd_api.g_miss_char,
1229 p_schedule_flag IN VARCHAR2
1230 DEFAULT fnd_api.g_miss_char,
1231 p_alarm_type_code IN VARCHAR2
1232 DEFAULT fnd_api.g_miss_char,
1233 p_alarm_contact IN VARCHAR2
1234 DEFAULT fnd_api.g_miss_char,
1235 p_sched_travel_distance IN NUMBER
1236 DEFAULT fnd_api.g_miss_num,
1237 p_sched_travel_duration IN NUMBER
1238 DEFAULT fnd_api.g_miss_num,
1239 p_sched_travel_duration_uom IN VARCHAR2
1240 DEFAULT fnd_api.g_miss_char,
1241 p_actual_travel_distance IN NUMBER
1242 DEFAULT fnd_api.g_miss_num,
1243 p_actual_travel_duration IN NUMBER
1244 DEFAULT fnd_api.g_miss_num,
1245 p_actual_travel_duration_uom IN VARCHAR2
1246 DEFAULT fnd_api.g_miss_char,
1247 p_actual_start_date IN DATE DEFAULT fnd_api.g_miss_date,
1248 p_actual_end_date IN DATE DEFAULT fnd_api.g_miss_date,
1249 p_palm_flag IN VARCHAR2
1250 DEFAULT fnd_api.g_miss_char,
1251 p_wince_flag IN VARCHAR2
1252 DEFAULT fnd_api.g_miss_char,
1253 p_laptop_flag IN VARCHAR2
1254 DEFAULT fnd_api.g_miss_char,
1255 p_device1_flag IN VARCHAR2
1256 DEFAULT fnd_api.g_miss_char,
1257 p_device2_flag IN VARCHAR2
1258 DEFAULT fnd_api.g_miss_char,
1259 p_device3_flag IN VARCHAR2
1260 DEFAULT fnd_api.g_miss_char,
1261 p_resource_territory_id IN NUMBER
1262 DEFAULT fnd_api.g_miss_num,
1263 p_assignment_status_id IN NUMBER
1264 DEFAULT fnd_api.g_miss_num,
1265 p_shift_construct_id IN NUMBER
1266 DEFAULT fnd_api.g_miss_num,
1267 x_return_status OUT NOCOPY VARCHAR2,
1268 x_msg_count OUT NOCOPY NUMBER,
1269 x_msg_data OUT NOCOPY VARCHAR2,
1270 p_attribute1 IN VARCHAR2
1271 DEFAULT jtf_task_utl.g_miss_char,
1272 p_attribute2 IN VARCHAR2
1273 DEFAULT jtf_task_utl.g_miss_char,
1274 p_attribute3 IN VARCHAR2
1275 DEFAULT jtf_task_utl.g_miss_char,
1276 p_attribute4 IN VARCHAR2
1277 DEFAULT jtf_task_utl.g_miss_char,
1278 p_attribute5 IN VARCHAR2
1279 DEFAULT jtf_task_utl.g_miss_char,
1280 p_attribute6 IN VARCHAR2
1281 DEFAULT jtf_task_utl.g_miss_char,
1282 p_attribute7 IN VARCHAR2
1283 DEFAULT jtf_task_utl.g_miss_char,
1284 p_attribute8 IN VARCHAR2
1285 DEFAULT jtf_task_utl.g_miss_char,
1286 p_attribute9 IN VARCHAR2
1287 DEFAULT jtf_task_utl.g_miss_char,
1291 DEFAULT jtf_task_utl.g_miss_char,
1288 p_attribute10 IN VARCHAR2
1289 DEFAULT jtf_task_utl.g_miss_char,
1290 p_attribute11 IN VARCHAR2
1292 p_attribute12 IN VARCHAR2
1293 DEFAULT jtf_task_utl.g_miss_char,
1294 p_attribute13 IN VARCHAR2
1295 DEFAULT jtf_task_utl.g_miss_char,
1296 p_attribute14 IN VARCHAR2
1297 DEFAULT jtf_task_utl.g_miss_char,
1298 p_attribute15 IN VARCHAR2
1299 DEFAULT jtf_task_utl.g_miss_char,
1300 p_attribute_category IN VARCHAR2
1301 DEFAULT jtf_task_utl.g_miss_char,
1302 p_assignee_role IN VARCHAR2
1303 DEFAULT jtf_task_utl.g_miss_char,
1304 p_show_on_calendar IN VARCHAR2
1305 DEFAULT jtf_task_utl.g_miss_char,
1306 p_category_id IN NUMBER
1307 DEFAULT jtf_task_utl.g_miss_number,
1308 p_enable_workflow IN VARCHAR2,
1309 p_abort_workflow IN VARCHAR2,
1310 p_free_busy_type IN VARCHAR2,
1311 p_object_capacity_id IN NUMBER
1312 )
1313 IS
1314 l_api_version CONSTANT NUMBER
1315 := 1.0;
1316 l_api_name CONSTANT VARCHAR(30)
1317 := 'Update_Task_Assignment';
1318 l_return_status VARCHAR2(1)
1319 := fnd_api.g_ret_sts_success;
1320 l_task_assignment_id jtf_task_all_assignments.task_assignment_id%TYPE
1321 := p_task_assignment_id;
1322 l_task_id jtf_task_all_assignments.task_id%TYPE;
1323 l_resource_type_code jtf_task_all_assignments.resource_type_code%TYPE
1324 := p_resource_type_code;
1325 l_resource_id jtf_task_all_assignments.resource_id%TYPE
1326 := p_resource_id;
1327 l_act_eff jtf_task_all_assignments.actual_effort%TYPE
1328 := p_actual_effort;
1329 l_act_eff_uom jtf_task_all_assignments.actual_effort_uom%TYPE
1330 := p_actual_effort_uom;
1331 l_schedule_flag jtf_task_all_assignments.schedule_flag%TYPE
1332 := p_schedule_flag;
1333 l_alarm_type_code jtf_task_all_assignments.alarm_type_code%TYPE
1334 := p_alarm_type_code;
1335 l_alarm_contact jtf_task_all_assignments.alarm_contact%TYPE
1336 := p_alarm_contact;
1337 l_sched_travel_distance jtf_task_all_assignments.sched_travel_distance%TYPE
1338 := p_sched_travel_distance;
1339 l_sched_travel_duration jtf_task_all_assignments.sched_travel_duration%TYPE
1340 := p_sched_travel_duration;
1341 l_sched_travel_dur_uom jtf_task_all_assignments.sched_travel_duration_uom%TYPE
1342 := p_sched_travel_duration_uom;
1343 l_actual_travel_distance jtf_task_all_assignments.actual_travel_distance%TYPE
1344 := p_actual_travel_distance;
1345 l_actual_travel_duration jtf_task_all_assignments.actual_travel_duration%TYPE
1346 := p_actual_travel_duration;
1347 l_actual_travel_dur_uom jtf_task_all_assignments.actual_travel_duration_uom%TYPE
1348 := p_actual_travel_duration_uom;
1349 l_actual_start_date jtf_task_all_assignments.actual_start_date%TYPE
1350 := p_actual_start_date;
1351 l_actual_end_date jtf_task_all_assignments.actual_end_date%TYPE
1352 := p_actual_end_date;
1353 l_palm_flag jtf_task_all_assignments.palm_flag%TYPE
1354 := p_palm_flag;
1355 l_wince_flag jtf_task_all_assignments.wince_flag%TYPE
1356 := p_wince_flag;
1357 l_laptop_flag jtf_task_all_assignments.laptop_flag%TYPE
1358 := p_laptop_flag;
1359 l_device1_flag jtf_task_all_assignments.device1_flag%TYPE
1360 := p_device1_flag;
1361 l_device2_flag jtf_task_all_assignments.device2_flag%TYPE
1362 := p_device2_flag;
1363 l_device3_flag jtf_task_all_assignments.device3_flag%TYPE
1364 := p_device3_flag;
1365 l_msg_data VARCHAR2(2000);
1366 l_msg_count NUMBER;
1367 x CHAR;
1368 l_rowid ROWID;
1369 l_assignment_status_id jtf_task_all_assignments.assignment_status_id%TYPE
1370 := p_assignment_status_id;
1371 l_resource_territory_id jtf_task_all_assignments.resource_territory_id%TYPE
1372 := p_resource_territory_id;
1373 l_shift_construct_id jtf_task_all_assignments.shift_construct_id%TYPE
1374 := p_shift_construct_id;
1375 l_assignee_role jtf_task_all_assignments.assignee_role%TYPE
1376 := p_assignee_role;
1377 l_show_on_calendar jtf_task_all_assignments.show_on_calendar%TYPE
1378 := p_show_on_calendar;
1379 l_category_id jtf_task_all_assignments.category_id%TYPE
1380 := p_category_id;
1381 l_assignee_role_db jtf_task_all_assignments.assignee_role%TYPE;
1382 l_session VARCHAR2(10) := 'UPDATE';
1383 l_enable_workflow VARCHAR2(1) := p_enable_workflow;
1384 l_abort_workflow VARCHAR2(1) := p_abort_workflow;
1385 l_free_busy_type jtf_task_all_assignments.free_busy_type%TYPE
1386 := p_free_busy_type;
1387 l_object_capacity_id jtf_task_all_assignments.object_capacity_id%TYPE
1388 := p_object_capacity_id;
1389 l_booking_start_date jtf_task_all_assignments.booking_start_date%TYPE;
1390 l_booking_end_date jtf_task_all_assignments.booking_end_date%TYPE;
1391
1392 -- Added for bug# 5514013 on 11/09/2006
1393 l_old_assignment_status_id jtf_task_all_assignments.assignment_status_id%TYPE;
1394
1395 CURSOR task_ass_u
1396 IS
1397 SELECT task_id,
1398 assignment_status_id old_assignment_status_id,
1399 DECODE (
1403 ) resource_id,
1400 p_resource_id,
1401 fnd_api.g_miss_num, resource_id,
1402 p_resource_id
1404 DECODE (
1405 p_resource_type_code,
1406 fnd_api.g_miss_char, resource_type_code,
1407 p_resource_type_code
1408 ) resource_type_code,
1409 DECODE (
1410 p_assignment_status_id,
1411 fnd_api.g_miss_num, assignment_status_id,
1412 p_assignment_status_id
1413 ) assignment_status_id,
1414 DECODE (
1415 p_actual_effort,
1416 fnd_api.g_miss_num, actual_effort,
1417 p_actual_effort
1418 ) actual_effort,
1419 DECODE (
1420 p_actual_effort_uom,
1421 fnd_api.g_miss_char, actual_effort_uom,
1422 p_actual_effort_uom
1423 ) actual_effort_uom,
1424 DECODE (
1425 p_alarm_type_code,
1426 fnd_api.g_miss_char, alarm_type_code,
1427 p_alarm_type_code
1428 ) alarm_type_code,
1429 DECODE (
1430 p_alarm_contact,
1431 fnd_api.g_miss_char, alarm_contact,
1432 p_alarm_contact
1433 ) alarm_contact,
1434 DECODE (
1435 p_sched_travel_distance,
1436 fnd_api.g_miss_num, sched_travel_distance,
1437 p_sched_travel_distance
1438 ) sched_travel_distance,
1439 DECODE (
1440 p_sched_travel_duration,
1441 fnd_api.g_miss_num, sched_travel_duration,
1442 p_sched_travel_duration
1443 ) sched_travel_duration,
1444 DECODE (
1445 p_sched_travel_duration_uom,
1446 fnd_api.g_miss_char, sched_travel_duration_uom,
1447 p_sched_travel_duration_uom
1448 ) sched_travel_dur_uom,
1449 DECODE (
1450 p_actual_travel_distance,
1451 fnd_api.g_miss_num, actual_travel_distance,
1452 p_actual_travel_distance
1453 ) actual_travel_distance,
1454 DECODE (
1455 p_actual_travel_duration,
1456 fnd_api.g_miss_num, actual_travel_duration,
1457 p_actual_travel_duration
1458 ) actual_travel_duration,
1459 DECODE (
1460 p_resource_territory_id,
1461 fnd_api.g_miss_num, resource_territory_id,
1462 p_resource_territory_id
1463 ) resource_territory_id,
1464 DECODE (
1465 p_shift_construct_id,
1466 fnd_api.g_miss_num, shift_construct_id,
1467 p_shift_construct_id
1468 ) shift_construct_id,
1469 DECODE (
1470 p_actual_travel_duration_uom,
1471 fnd_api.g_miss_char, actual_travel_duration_uom,
1472 p_actual_travel_duration_uom
1473 ) actual_travel_dur_uom,
1474 DECODE (
1475 p_schedule_flag,
1476 fnd_api.g_miss_char, schedule_flag,
1477 p_schedule_flag
1478 ) schedule_flag,
1479 DECODE (
1480 p_actual_start_date,
1481 fnd_api.g_miss_date, actual_start_date,
1482 p_actual_start_date
1483 ) actual_start_date,
1484 DECODE (
1485 p_actual_end_date,
1486 fnd_api.g_miss_date, actual_end_date,
1487 p_actual_end_date
1488 ) actual_end_date,
1489 DECODE (
1490 p_palm_flag,
1491 fnd_api.g_miss_char, palm_flag,
1492 p_palm_flag
1493 ) palm_flag,
1494 DECODE (
1495 p_wince_flag,
1496 fnd_api.g_miss_char, wince_flag,
1497 p_wince_flag
1498 ) wince_flag,
1499 DECODE (
1500 p_laptop_flag,
1501 fnd_api.g_miss_char, laptop_flag,
1502 p_laptop_flag
1503 ) laptop_flag,
1504 DECODE (
1505 p_device1_flag,
1506 fnd_api.g_miss_char, device1_flag,
1507 p_device1_flag
1508 ) device1_flag,
1509 DECODE (
1510 p_device2_flag,
1511 fnd_api.g_miss_char, device2_flag,
1512 p_device2_flag
1513 ) device2_flag,
1514 DECODE (
1515 p_device3_flag,
1516 fnd_api.g_miss_char, device3_flag,
1517 p_device3_flag
1518 ) device3_flag,
1519 DECODE (
1520 p_assignee_role,
1521 fnd_api.g_miss_char, assignee_role,
1522 p_assignee_role
1523 ) assignee_role,
1524 DECODE (
1525 p_show_on_calendar,
1526 fnd_api.g_miss_char, show_on_calendar,
1527 p_show_on_calendar
1528 ) show_on_calendar,
1529 DECODE (
1530 p_category_id,
1531 jtf_task_utl.g_miss_number, category_id,
1532 p_category_id
1533 ) category_id,
1534 DECODE (
1535 p_attribute1,
1536 fnd_api.g_miss_char, attribute1,
1537 p_attribute1
1538 ) attribute1,
1539 DECODE (
1540 p_attribute2,
1541 fnd_api.g_miss_char, attribute2,
1542 p_attribute2
1543 ) attribute2,
1544 DECODE (
1545 p_attribute3,
1546 fnd_api.g_miss_char, attribute3,
1547 p_attribute3
1548 ) attribute3,
1549 DECODE (
1550 p_attribute4,
1551 fnd_api.g_miss_char, attribute4,
1552 p_attribute4
1553 ) attribute4,
1554 DECODE (
1555 p_attribute5,
1556 fnd_api.g_miss_char, attribute5,
1557 p_attribute5
1558 ) attribute5,
1559 DECODE (
1560 p_attribute6,
1561 fnd_api.g_miss_char, attribute6,
1562 p_attribute6
1563 ) attribute6,
1564 DECODE (
1565 p_attribute7,
1566 fnd_api.g_miss_char, attribute7,
1567 p_attribute7
1568 ) attribute7,
1569 DECODE (
1570 p_attribute8,
1571 fnd_api.g_miss_char, attribute8,
1572 p_attribute8
1573 ) attribute8,
1574 DECODE (
1575 p_attribute9,
1576 fnd_api.g_miss_char, attribute9,
1580 p_attribute10,
1577 p_attribute9
1578 ) attribute9,
1579 DECODE (
1581 fnd_api.g_miss_char, attribute10,
1582 p_attribute10
1583 ) attribute10,
1584 DECODE (
1585 p_attribute11,
1586 fnd_api.g_miss_char, attribute11,
1587 p_attribute11
1588 ) attribute11,
1589 DECODE (
1590 p_attribute12,
1591 fnd_api.g_miss_char, attribute12,
1592 p_attribute12
1593 ) attribute12,
1594 DECODE (
1595 p_attribute13,
1596 fnd_api.g_miss_char, attribute13,
1597 p_attribute13
1598 ) attribute13,
1599 DECODE (
1600 p_attribute14,
1601 fnd_api.g_miss_char, attribute14,
1602 p_attribute14
1603 ) attribute14,
1604 DECODE (
1605 p_attribute15,
1606 fnd_api.g_miss_char, attribute15,
1607 p_attribute15
1608 ) attribute15,
1609 DECODE (
1610 p_attribute_category,
1611 fnd_api.g_miss_char, attribute_category,
1612 p_attribute_category
1613 ) attribute_category,
1614 DECODE (
1615 p_free_busy_type,
1616 jtf_task_utl.g_miss_char, free_busy_type,
1617 p_free_busy_type
1618 ) free_busy_type,
1619 DECODE (
1620 p_object_capacity_id,
1621 fnd_api.g_miss_num, object_capacity_id,
1622 p_object_capacity_id
1623 ) object_capacity_id
1624 FROM jtf_task_all_assignments
1625 WHERE task_assignment_id = l_task_assignment_id;
1626
1627 x CHAR;
1628 task_ass task_ass_u%ROWTYPE;
1629
1630 -- CURSOR ass_res_orig (b_task_assignment_id IN NUMBER)
1631 -- IS
1632 -- SELECT resource_id, resource_type_code, free_busy_type,assignment_status_id, object_capacity_id
1633 -- FROM jtf_task_all_assignments
1634 -- WHERE task_assignment_id = b_task_assignment_id;
1635
1636 l_orig_res_id jtf_task_all_assignments.resource_id%type;
1637 l_orig_res_type_code jtf_task_all_assignments.resource_type_code%type;
1638 l_orig_object_capacity_id jtf_task_all_assignments.object_capacity_id%type;
1639
1640 -- Business Event System Enhancement # 2391065
1641 l_assignment_rec_old jtf_task_assignments_pvt.task_assignments_rec ;
1642 l_assignment_rec_new jtf_task_assignments_pvt.task_assignments_rec ;
1643 ass_orig jtf_task_utl.c_ass_orig%ROWTYPE;
1644 x_event_return_status varchar2(100);
1645
1646 CURSOR c_task (b_task_id NUMBER) IS
1647 SELECT source_object_type_code
1648 , recurrence_rule_id
1649 , calendar_start_date
1650 , calendar_end_date
1651 , planned_effort
1652 , planned_effort_uom
1653 , open_flag
1654 , entity
1655 FROM jtf_tasks_b
1656 WHERE task_id = b_task_id;
1657
1658 l_source_object_type_code jtf_tasks_b.source_object_type_code%TYPE;
1659 l_recurrence_rule_id NUMBER;
1660 l_calendar_start_date DATE;
1661 l_calendar_end_date DATE;
1662 l_planned_effort NUMBER;
1663 l_planned_effort_uom jtf_tasks_b.planned_effort_uom%TYPE;
1664 l_entity jtf_tasks_b.entity%TYPE;
1665 l_open_flag jtf_tasks_b.open_flag%TYPE;
1666 l_response_invitation_rec jtf_task_repeat_assignment_pvt.response_invitation_rec;
1667 BEGIN
1668 SAVEPOINT update_task_assign_pvt;
1669 x_return_status := fnd_api.g_ret_sts_success;
1670
1671 OPEN task_ass_u;
1672 FETCH task_ass_u INTO task_ass;
1673
1674 IF task_ass_u%NOTFOUND
1675 THEN
1676 CLOSE task_ass_u;
1677 fnd_message.set_name ('JTF', 'JTF_TASK_INS_TK_ASS');
1678 fnd_message.set_token ('TASK_ASSIGNMENT', p_task_assignment_id);
1679 fnd_msg_pub.add;
1680 x_return_status := fnd_api.g_ret_sts_unexp_error;
1681 RAISE fnd_api.g_exc_unexpected_error;
1682 END IF;
1683 CLOSE task_ass_u;
1684
1685 -- Business Event System Enhancement # 2391065
1686 OPEN jtf_task_utl.c_ass_orig(p_task_assignment_id);
1687 FETCH jtf_task_utl.c_ass_orig INTO ass_orig;
1688
1689 IF jtf_task_utl.c_ass_orig%NOTFOUND
1690 THEN
1691 CLOSE jtf_task_utl.c_ass_orig;
1692 fnd_message.set_name ('JTF', 'JTF_TASK_INS_TK_ASS');
1693 fnd_message.set_token ('TASK_ASSIGNMENT', p_task_assignment_id);
1694 fnd_msg_pub.add;
1695 x_return_status := fnd_api.g_ret_sts_unexp_error;
1696 RAISE fnd_api.g_exc_unexpected_error;
1697 END IF;
1698 CLOSE jtf_task_utl.c_ass_orig;
1699
1700 l_task_assignment_id := p_task_assignment_id;
1701 l_task_id := task_ass.task_id;
1702 l_resource_id := task_ass.resource_id;
1703 l_resource_type_code := task_ass.resource_type_code;
1704 l_old_assignment_status_id := task_ass.old_assignment_status_id; -- Added for bug#5514013 on 11/09/2006
1705 l_assignment_status_id := task_ass.assignment_status_id;
1706 l_act_eff := task_ass.actual_effort;
1707 l_act_eff_uom := task_ass.actual_effort_uom;
1708 l_alarm_type_code := task_ass.alarm_type_code;
1709 l_alarm_contact := task_ass.alarm_contact;
1710 l_sched_travel_distance := task_ass.sched_travel_distance;
1711 l_sched_travel_duration := task_ass.sched_travel_duration;
1712 l_sched_travel_dur_uom := task_ass.sched_travel_dur_uom;
1713 -- Bug 3467524
1714 -- l_actual_travel_distance := task_ass.actual_travel_duration;
1715 l_actual_travel_distance := task_ass.actual_travel_distance;
1719 l_actual_end_date := task_ass.actual_end_date;
1716 l_actual_travel_duration := task_ass.actual_travel_duration;
1717 l_actual_travel_dur_uom := task_ass.actual_travel_dur_uom;
1718 l_actual_start_date := task_ass.actual_start_date;
1720 l_palm_flag := task_ass.palm_flag;
1721 l_wince_flag := task_ass.wince_flag;
1722 l_laptop_flag := task_ass.laptop_flag;
1723 l_device1_flag := task_ass.device1_flag;
1724 l_device2_flag := task_ass.device2_flag;
1725 l_device3_flag := task_ass.device3_flag;
1726 l_resource_territory_id := task_ass.resource_territory_id;
1727 l_shift_construct_id := task_ass.shift_construct_id;
1728 l_assignee_role := task_ass.assignee_role;
1729 l_show_on_calendar := task_ass.show_on_calendar;
1730 l_category_id := task_ass.category_id;
1731 --add schedule_flag
1732 l_schedule_flag := task_ass.schedule_flag;
1733 l_free_busy_type := task_ass.free_busy_type;
1734 l_object_capacity_id := task_ass.object_capacity_id;
1735
1736 --------------------------------------------------
1737 -- For XP Sync: Story# 140
1738 --------------------------------------------------
1739 OPEN c_task (l_task_id);
1740 FETCH c_task
1741 INTO l_source_object_type_code
1742 , l_recurrence_rule_id
1743 , l_calendar_start_date
1744 , l_calendar_end_date
1745 , l_planned_effort
1746 , l_planned_effort_uom
1747 , l_open_flag
1748 , l_entity;
1749 IF c_task%NOTFOUND
1750 THEN
1751 CLOSE c_task;
1752 fnd_message.set_name ('JTF', 'JTF_TASK_INVALID_TASK_ID');
1753 fnd_message.set_token ('P_TASK_ID', l_task_id);
1754 fnd_msg_pub.add;
1755 x_return_status := fnd_api.g_ret_sts_unexp_error;
1756 RAISE fnd_api.g_exc_unexpected_error;
1757 END IF;
1758 CLOSE c_task;
1759
1760 IF l_recurrence_rule_id IS NOT NULL AND
1761 l_source_object_type_code = 'APPOINTMENT' AND
1762 task_ass.old_assignment_status_id in ( 18 , 3 ) -- Invited
1763 THEN
1764 IF g_response_flag = jtf_task_utl.g_no_char
1765 THEN
1766 l_response_invitation_rec.task_assignment_id := p_task_assignment_id;
1767 l_response_invitation_rec.assignment_status_id := l_assignment_status_id;
1768 l_response_invitation_rec.task_id := l_task_id;
1769 l_response_invitation_rec.recurrence_rule_id := l_recurrence_rule_id;
1770
1771 jtf_task_repeat_assignment_pvt.response_invitation(
1772 p_api_version => 1.0,
1773 p_init_msg_list => fnd_api.g_false,
1774 p_commit => fnd_api.g_false,
1775 p_object_version_number => p_object_version_number,
1776 p_response_invitation_rec => l_response_invitation_rec,
1777 x_return_status => x_return_status,
1778 x_msg_count => x_msg_count,
1779 x_msg_data => x_msg_data
1780 );
1781
1782 g_response_flag := jtf_task_utl.g_no_char;
1783
1784 ----------------------------------------------------------------
1785 -- response_invitation() will call this procedure again
1786 -- to update the assignment status with accepted or rejected.
1787 -- So this procedure must return right after the call because
1788 -- the remaining process has already been processed
1789 -- by response_invitation().
1790 ----------------------------------------------------------------
1791 RETURN;
1792 END IF;
1793 END IF;
1794 ------------------------------------------------------------------------
1795
1796 jtf_task_assignments_pub.lock_task_assignment (
1797 p_api_version => 1.0,
1798 p_init_msg_list => fnd_api.g_false,
1799 p_commit => fnd_api.g_false,
1800 p_task_assignment_id => l_task_assignment_id,
1801 p_object_version_number => p_object_version_number,
1802 x_return_status => x_return_status,
1803 x_msg_data => x_msg_data,
1804 x_msg_count => x_msg_count
1805 );
1806
1807 IF NOT (x_return_status = fnd_api.g_ret_sts_success)
1808 THEN
1809 x_return_status := fnd_api.g_ret_sts_unexp_error;
1810 RAISE fnd_api.g_exc_unexpected_error;
1811 END IF;
1812
1813
1814 -- Validate the user_id
1815 jtf_task_utl.check_security_privilege(
1816 p_task_id => l_task_id,
1817 p_session => l_session,
1818 x_return_status => x_return_status
1819 );
1820
1821 IF NOT (x_return_status = fnd_api.g_ret_sts_success)
1822 THEN
1823 x_return_status := fnd_api.g_ret_sts_unexp_error;
1824 RAISE fnd_api.g_exc_unexpected_error;
1825 END IF;
1826
1827 --Bug 2467222 for assignee category update
1828 IF (p_category_id <> jtf_task_utl.g_miss_number) OR (p_category_id IS NULL)
1829 THEN
1830 UPDATE jtf_task_all_assignments
1831 SET category_id = p_category_id
1832 WHERE task_id = l_task_id
1833 AND resource_id = (SELECT resource_id
1834 FROM jtf_rs_resource_extns
1835 WHERE user_id = fnd_global.user_id)
1836 AND resource_type_code not in ('RS_GROUP','RS_TEAM');
1837 END IF;
1838
1839 -- Validate the value in L_RESOURCE_TYPE_CODE
1840 IF l_resource_type_code = 'RS_TEAM'
1841 OR l_resource_type_code = 'RS_GROUP'
1842 THEN
1843 l_category_id := NULL;
1844 END IF;
1845
1846 -- bug# 1947303
1847 IF l_assignee_role IS NULL
1848 THEN
1849 l_assignee_role := 'ASSIGNEE';
1850 END IF;
1851
1855 l_assignee_role,
1852 -- Validate the value in ASSIGNEE_ROLE
1853 IF NOT jtf_task_utl.validate_lookup (
1854 'JTF_TASK_ASSIGNEE_ROLES',
1856 'assignment assignee role ( JTF_TK_ASSOGNEE_ROLE )'
1857 )
1858 THEN
1859 x_return_status := fnd_api.g_ret_sts_unexp_error;
1860 RAISE fnd_api.g_exc_unexpected_error;
1861 END IF;
1862
1863 -- Update the values based on ASSIGNEE_ROLE
1864 select assignee_role
1865 into l_assignee_role_db
1866 from jtf_task_all_assignments
1867 where task_assignment_id = l_task_assignment_id;
1868 IF l_assignee_role_db = 'OWNER'
1869 THEN
1870 UPDATE jtf_tasks_b
1871 SET owner_id = l_resource_id,
1872 owner_type_code = l_resource_type_code
1873 WHERE task_id = l_task_id;
1874 END IF;
1875
1876 l_assignee_role := l_assignee_role_db;
1877
1878 -- ------------------------------------------------------------------------
1879 -- Get the original resource_id so we can update the reference details if
1880 -- necessary
1881 -- ------------------------------------------------------------------------
1882
1883 -- OPEN ass_res_orig (l_task_assignment_id);
1884 -- FETCH ass_res_orig INTO l_orig_res_id, l_orig_res_type_code, l_orig_free_busy_type, l_orig_assig_status_id, l_object_capacity_id;
1885
1886 -- IF (p_object_capacity_id <> fnd_api.g_miss_num and p_object_capacity_id is not null)
1887 -- then
1888 -- l_object_capacity_id := p_object_capacity_id;
1889 -- end if;
1890
1891 -- IF ass_res_orig%NOTFOUND
1892 -- THEN
1893 -- CLOSE ass_res_orig; -- Fix a missing CLOSE on 4/18/2002
1894 -- RAISE fnd_api.g_exc_unexpected_error;
1895 -- END IF;
1896 -- CLOSE ass_res_orig; -- Fix a missing CLOSE on 4/18/2002
1897
1898 -- Booking Changes for Simplex ..
1899 populate_booking_dates
1900 (
1901 p_calendar_start_date => l_calendar_start_date,
1902 p_calendar_end_date => l_calendar_end_date,
1903 p_actual_start_date => l_actual_start_date,
1904 p_actual_end_date => l_actual_end_date,
1905 p_actual_travel_duration => l_actual_travel_duration,
1906 p_actual_travel_duration_uom => l_actual_travel_dur_uom,
1907 p_planned_effort => l_planned_effort,
1908 p_planned_effort_uom => l_planned_effort_uom,
1909 p_actual_effort => l_act_eff,
1910 p_actual_effort_uom => l_act_eff_uom,
1911 x_booking_start_date => l_booking_start_date,
1912 x_booking_end_date => l_booking_end_date
1913 );
1914
1915 IF l_entity = 'TASK' AND
1916 p_free_busy_type = jtf_task_utl.g_miss_char AND -- no explicit value
1917 nvl(p_assignment_status_id, 0) <> fnd_api.g_miss_num AND
1918 nvl(l_old_assignment_status_id, 0) <> nvl(l_assignment_status_id, 0) -- Modified for bug# 5514013 on 11/09/2006
1919 THEN
1920 update_free_busy_type(
1921 p_assignment_status_id => l_assignment_status_id,
1922 x_free_busy_type => l_free_busy_type
1923 );
1924 END IF;
1925
1926 p_object_version_number := p_object_version_number + 1;
1927 jtf_task_assignments_pkg.update_row (
1928 x_task_assignment_id => l_task_assignment_id,
1929 x_object_version_number => p_object_version_number,
1930 x_sched_travel_duration_uom => l_sched_travel_dur_uom,
1931 x_actual_travel_distance => l_actual_travel_distance,
1932 x_actual_travel_duration => l_actual_travel_duration,
1933 x_actual_travel_duration_uom => l_actual_travel_dur_uom,
1934 x_actual_start_date => l_actual_start_date,
1935 x_actual_end_date => l_actual_end_date,
1936 x_palm_flag => l_palm_flag,
1937 x_wince_flag => l_wince_flag,
1938 x_laptop_flag => l_laptop_flag,
1939 x_device1_flag => l_device1_flag,
1940 x_device2_flag => l_device2_flag,
1941 x_device3_flag => l_device3_flag,
1942 x_attribute1 => task_ass.attribute1,
1943 x_attribute2 => task_ass.attribute2,
1944 x_attribute3 => task_ass.attribute3,
1945 x_attribute4 => task_ass.attribute4,
1946 x_attribute5 => task_ass.attribute5,
1947 x_attribute6 => task_ass.attribute6,
1948 x_attribute7 => task_ass.attribute7,
1949 x_attribute8 => task_ass.attribute8,
1950 x_attribute9 => task_ass.attribute9,
1951 x_attribute10 => task_ass.attribute10,
1952 x_attribute11 => task_ass.attribute11,
1953 x_attribute12 => task_ass.attribute12,
1954 x_attribute13 => task_ass.attribute13,
1955 x_attribute14 => task_ass.attribute14,
1956 x_attribute15 => task_ass.attribute15,
1957 x_attribute_category => task_ass.attribute_category,
1958 x_task_id => l_task_id,
1959 x_resource_id => l_resource_id,
1960 x_actual_effort => l_act_eff,
1961 x_actual_effort_uom => l_act_eff_uom,
1962 x_schedule_flag => l_schedule_flag,
1963 x_alarm_type_code => l_alarm_type_code,
1964 x_alarm_contact => l_alarm_contact,
1965 x_sched_travel_distance => l_sched_travel_distance,
1966 x_sched_travel_duration => l_sched_travel_duration,
1967 x_resource_type_code => l_resource_type_code,
1968 x_last_update_date => SYSDATE,
1969 x_last_updated_by => jtf_task_utl.updated_by,
1970 x_last_update_login => jtf_task_utl.login_id,
1971 x_resource_territory_id => l_resource_territory_id,
1972 x_assignment_status_id => l_assignment_status_id,
1973 x_shift_construct_id => l_shift_construct_id,
1974 x_assignee_role => l_assignee_role,
1978 x_booking_start_date => l_booking_start_date,
1975 x_show_on_calendar => l_show_on_calendar,
1976 --x_category_id => l_category_id
1977 x_free_busy_type => NVL(l_free_busy_type, g_free_busy_type),
1979 x_booking_end_date => l_booking_end_date,
1980 x_object_capacity_id => l_object_capacity_id
1981 );
1982
1983 IF task_ass_u%ISOPEN
1984 THEN
1985 CLOSE task_ass_u;
1986 END IF;
1987
1988 -- ------------------------------------------------------------------------
1989 -- Update reference to resource if changed, fix enh #1845501
1990 -- ------------------------------------------------------------------------
1991 if (nvl(l_resource_id, 0) <> fnd_api.g_miss_num and
1992 nvl(l_resource_id, 0) <> nvl(l_orig_res_id, 0))
1993 or (nvl(l_resource_type_code, fnd_api.g_miss_char) <> nvl(l_orig_res_type_code, fnd_api.g_miss_char)) then
1994 -- delete the old one
1995 jtf_task_utl.delete_party_reference(
1996 p_reference_from => 'ASSIGNMENT',
1997 p_task_id => l_task_id,
1998 p_party_type_code => l_orig_res_type_code,
1999 p_party_id => l_orig_res_id,
2000 x_msg_count => x_msg_count,
2001 x_msg_data => x_msg_data,
2002 x_return_status => x_return_status);
2003
2004 IF NOT (x_return_status = fnd_api.g_ret_sts_success)
2005 THEN
2006 x_return_status := fnd_api.g_ret_sts_unexp_error;
2007 RAISE fnd_api.g_exc_unexpected_error;
2008 END IF;
2009 -- create a new one
2010 jtf_task_utl.create_party_reference(
2011 p_reference_from => 'ASSIGNMENT',
2012 p_task_id => l_task_id,
2013 p_party_type_code => l_resource_type_code,
2014 p_party_id => l_resource_id,
2015 x_msg_count => x_msg_count,
2016 x_msg_data => x_msg_data,
2017 x_return_status => x_return_status);
2018
2019 IF NOT (x_return_status = fnd_api.g_ret_sts_success)
2020 THEN
2021 x_return_status := fnd_api.g_ret_sts_unexp_error;
2022 RAISE fnd_api.g_exc_unexpected_error;
2023 END IF;
2024 end if;
2025
2026 ---
2027 --- decide to lunch workflow
2028 ---
2029 -- Business Event System Enhancement # 2391065 and 2797666
2030 IF (l_entity = 'TASK')
2031 THEN
2032 l_assignment_rec_old.task_assignment_id := l_task_assignment_id;
2033 l_assignment_rec_old.task_id := l_task_id;
2034 l_assignment_rec_old.resource_type_code := ass_orig.resource_type_code;
2035 l_assignment_rec_old.resource_id := ass_orig.resource_id;
2036 l_assignment_rec_old.assignment_status_id := ass_orig.assignment_status_id;
2037 l_assignment_rec_old.actual_start_date := ass_orig.actual_start_date;
2038 l_assignment_rec_old.actual_end_date := ass_orig.actual_end_date;
2039 l_assignment_rec_old.assignee_role := ass_orig.assignee_role;
2040 l_assignment_rec_old.show_on_calendar := ass_orig.show_on_calendar;
2041 l_assignment_rec_old.category_id := ass_orig.category_id;
2042 l_assignment_rec_old.object_version_number := ass_orig.object_version_number;
2043 l_assignment_rec_old.enable_workflow := p_enable_workflow;
2044 l_assignment_rec_old.abort_workflow := l_abort_workflow;
2045
2046 l_assignment_rec_new.task_assignment_id := l_task_assignment_id;
2047 l_assignment_rec_new.task_id := l_task_id;
2048 l_assignment_rec_new.resource_type_code := l_resource_type_code;
2049 l_assignment_rec_new.resource_id := l_resource_id;
2050 l_assignment_rec_new.assignment_status_id := l_assignment_status_id;
2051 l_assignment_rec_new.actual_start_date := l_actual_start_date;
2052 l_assignment_rec_new.actual_end_date := l_actual_end_date;
2053 l_assignment_rec_new.assignee_role := l_assignee_role;
2054 l_assignment_rec_new.show_on_calendar := l_show_on_calendar;
2055 l_assignment_rec_new.category_id := l_category_id;
2056 l_assignment_rec_new.object_version_number := p_object_version_number;
2057 l_assignment_rec_new.enable_workflow := p_enable_workflow;
2058 l_assignment_rec_new.abort_workflow := l_abort_workflow;
2059
2060 jtf_task_wf_events_pvt.publish_update_assignment(l_assignment_rec_new,l_assignment_rec_old,x_event_return_status);
2061
2062 IF (x_event_return_status = 'WARNING')
2063 THEN
2064 fnd_message.set_name ('JTF', 'JTF_TASK_ASS_EVENT_WARNING');
2065 fnd_message.set_token ('P_ASSIGNMENT_ID', l_task_assignment_id);
2066 fnd_msg_pub.add;
2067 ELSIF(x_event_return_status = 'ERROR')
2068 THEN
2069 fnd_message.set_name ('JTF', 'JTF_TASK_ASS_EVENT_ERROR');
2070 fnd_message.set_token ('P_ASSIGNMENT_ID', l_task_assignment_id);
2071 fnd_msg_pub.add;
2072 x_return_status := fnd_api.g_ret_sts_unexp_error;
2073 RAISE fnd_api.g_exc_unexpected_error;
2074 END IF ;
2075
2076 END IF;
2077
2078 -- IF ass_res_orig%ISOPEN
2079 -- THEN
2080 -- CLOSE ass_res_orig;
2081 -- END IF;
2082
2083 IF fnd_api.to_boolean (p_commit)
2084 THEN
2085 COMMIT WORK;
2086 END IF;
2087
2088 fnd_msg_pub.count_and_get (p_count => x_msg_count, p_data => x_msg_data);
2089 EXCEPTION
2090 WHEN fnd_api.g_exc_unexpected_error
2091 THEN
2092 IF task_ass_u%ISOPEN
2093 THEN
2094 CLOSE task_ass_u;
2095 END IF;
2096
2097 ROLLBACK TO update_task_assign_pvt;
2098 x_return_status := fnd_api.g_ret_sts_unexp_error;
2099 fnd_msg_pub.count_and_get (
2100 p_count => x_msg_count,
2104 THEN
2101 p_data => x_msg_data
2102 );
2103 WHEN OTHERS
2105 IF task_ass_u%ISOPEN
2106 THEN
2107 CLOSE task_ass_u;
2108 END IF;
2109
2110 ROLLBACK TO update_task_assign_pvt;
2111
2112 -- Added by SBARAT on 23/05/2006 for bug# 5176073
2113 fnd_message.set_name ('JTF', 'JTF_TASK_UNKNOWN_ERROR');
2114 fnd_message.set_token ('P_TEXT', SQLCODE || SQLERRM);
2115 fnd_msg_pub.add;
2116
2117 x_return_status := fnd_api.g_ret_sts_unexp_error;
2118 fnd_msg_pub.count_and_get (
2119 p_count => x_msg_count,
2120 p_data => x_msg_data
2121 );
2122 END;
2123
2124 PROCEDURE update_task_assignment (
2125 p_api_version IN NUMBER,
2126 p_object_version_number IN OUT NOCOPY NUMBER,
2127 p_init_msg_list IN VARCHAR2 DEFAULT fnd_api.g_false,
2128 p_commit IN VARCHAR2 DEFAULT fnd_api.g_false,
2129 p_task_assignment_id IN NUMBER
2130 DEFAULT fnd_api.g_miss_num,
2131 p_resource_type_code IN VARCHAR2
2132 DEFAULT fnd_api.g_miss_char,
2133 p_resource_id IN NUMBER
2134 DEFAULT fnd_api.g_miss_num,
2135 p_actual_effort IN NUMBER
2136 DEFAULT fnd_api.g_miss_num,
2137 p_actual_effort_uom IN VARCHAR2
2138 DEFAULT fnd_api.g_miss_char,
2139 p_schedule_flag IN VARCHAR2
2140 DEFAULT fnd_api.g_miss_char,
2141 p_alarm_type_code IN VARCHAR2
2142 DEFAULT fnd_api.g_miss_char,
2143 p_alarm_contact IN VARCHAR2
2144 DEFAULT fnd_api.g_miss_char,
2145 p_sched_travel_distance IN NUMBER
2146 DEFAULT fnd_api.g_miss_num,
2147 p_sched_travel_duration IN NUMBER
2148 DEFAULT fnd_api.g_miss_num,
2149 p_sched_travel_duration_uom IN VARCHAR2
2150 DEFAULT fnd_api.g_miss_char,
2151 p_actual_travel_distance IN NUMBER
2152 DEFAULT fnd_api.g_miss_num,
2153 p_actual_travel_duration IN NUMBER
2154 DEFAULT fnd_api.g_miss_num,
2155 p_actual_travel_duration_uom IN VARCHAR2
2156 DEFAULT fnd_api.g_miss_char,
2157 p_actual_start_date IN DATE DEFAULT fnd_api.g_miss_date,
2158 p_actual_end_date IN DATE DEFAULT fnd_api.g_miss_date,
2159 p_palm_flag IN VARCHAR2
2160 DEFAULT fnd_api.g_miss_char,
2161 p_wince_flag IN VARCHAR2
2162 DEFAULT fnd_api.g_miss_char,
2163 p_laptop_flag IN VARCHAR2
2164 DEFAULT fnd_api.g_miss_char,
2165 p_device1_flag IN VARCHAR2
2166 DEFAULT fnd_api.g_miss_char,
2167 p_device2_flag IN VARCHAR2
2168 DEFAULT fnd_api.g_miss_char,
2169 p_device3_flag IN VARCHAR2
2170 DEFAULT fnd_api.g_miss_char,
2171 p_resource_territory_id IN NUMBER
2172 DEFAULT fnd_api.g_miss_num,
2173 p_assignment_status_id IN NUMBER
2174 DEFAULT fnd_api.g_miss_num,
2175 p_shift_construct_id IN NUMBER
2176 DEFAULT fnd_api.g_miss_num,
2177 x_return_status OUT NOCOPY VARCHAR2,
2178 x_msg_count OUT NOCOPY NUMBER,
2179 x_msg_data OUT NOCOPY VARCHAR2,
2180 p_attribute1 IN VARCHAR2
2181 DEFAULT jtf_task_utl.g_miss_char,
2182 p_attribute2 IN VARCHAR2
2183 DEFAULT jtf_task_utl.g_miss_char,
2184 p_attribute3 IN VARCHAR2
2185 DEFAULT jtf_task_utl.g_miss_char,
2186 p_attribute4 IN VARCHAR2
2187 DEFAULT jtf_task_utl.g_miss_char,
2188 p_attribute5 IN VARCHAR2
2189 DEFAULT jtf_task_utl.g_miss_char,
2190 p_attribute6 IN VARCHAR2
2191 DEFAULT jtf_task_utl.g_miss_char,
2192 p_attribute7 IN VARCHAR2
2193 DEFAULT jtf_task_utl.g_miss_char,
2194 p_attribute8 IN VARCHAR2
2195 DEFAULT jtf_task_utl.g_miss_char,
2196 p_attribute9 IN VARCHAR2
2197 DEFAULT jtf_task_utl.g_miss_char,
2198 p_attribute10 IN VARCHAR2
2199 DEFAULT jtf_task_utl.g_miss_char,
2200 p_attribute11 IN VARCHAR2
2201 DEFAULT jtf_task_utl.g_miss_char,
2202 p_attribute12 IN VARCHAR2
2203 DEFAULT jtf_task_utl.g_miss_char,
2204 p_attribute13 IN VARCHAR2
2205 DEFAULT jtf_task_utl.g_miss_char,
2206 p_attribute14 IN VARCHAR2
2207 DEFAULT jtf_task_utl.g_miss_char,
2208 p_attribute15 IN VARCHAR2
2209 DEFAULT jtf_task_utl.g_miss_char,
2210 p_attribute_category IN VARCHAR2
2211 DEFAULT jtf_task_utl.g_miss_char,
2212 p_assignee_role IN VARCHAR2
2213 DEFAULT jtf_task_utl.g_miss_char,
2214 p_show_on_calendar IN VARCHAR2
2215 DEFAULT jtf_task_utl.g_miss_char,
2216 p_category_id IN NUMBER
2217 DEFAULT jtf_task_utl.g_miss_number
2218 )
2219 IS
2220 BEGIN
2221 jtf_task_assignments_pvt.update_task_assignment (
2222 p_api_version => p_api_version,
2223 p_object_version_number => p_object_version_number,
2224 p_init_msg_list => p_init_msg_list,
2225 p_commit => p_commit,
2226 p_task_assignment_id => p_task_assignment_id,
2227 p_resource_type_code => p_resource_type_code,
2231 p_schedule_flag => p_schedule_flag,
2228 p_resource_id => p_resource_id,
2229 p_actual_effort => p_actual_effort,
2230 p_actual_effort_uom => p_actual_effort_uom,
2232 p_alarm_type_code => p_alarm_type_code,
2233 p_alarm_contact => p_alarm_contact,
2234 p_sched_travel_distance => p_sched_travel_distance,
2235 p_sched_travel_duration => p_sched_travel_duration,
2236 p_sched_travel_duration_uom => p_sched_travel_duration_uom,
2237 p_actual_travel_distance => p_actual_travel_distance,
2238 p_actual_travel_duration => p_actual_travel_duration,
2239 p_actual_travel_duration_uom => p_actual_travel_duration_uom,
2240 p_actual_start_date => p_actual_start_date,
2241 p_actual_end_date => p_actual_end_date,
2242 p_palm_flag => p_palm_flag,
2243 p_wince_flag => p_wince_flag,
2244 p_laptop_flag => p_laptop_flag,
2245 p_device1_flag => p_device1_flag,
2246 p_device2_flag => p_device2_flag,
2247 p_device3_flag => p_device3_flag,
2248 p_resource_territory_id => p_resource_territory_id,
2249 p_assignment_status_id => p_assignment_status_id,
2250 p_shift_construct_id => p_shift_construct_id,
2251 x_return_status => x_return_status,
2252 x_msg_count => x_msg_count,
2253 x_msg_data => x_msg_data,
2254 p_attribute1 => p_attribute1,
2255 p_attribute2 => p_attribute2,
2256 p_attribute3 => p_attribute3,
2257 p_attribute4 => p_attribute4,
2258 p_attribute5 => p_attribute5,
2259 p_attribute6 => p_attribute6,
2260 p_attribute7 => p_attribute7,
2261 p_attribute8 => p_attribute8,
2262 p_attribute9 => p_attribute9,
2263 p_attribute10 => p_attribute10,
2264 p_attribute11 => p_attribute11,
2265 p_attribute12 => p_attribute12,
2266 p_attribute13 => p_attribute13,
2267 p_attribute14 => p_attribute14,
2268 p_attribute15 => p_attribute15,
2269 p_attribute_category => p_attribute_category,
2270 p_assignee_role => p_assignee_role,
2271 p_show_on_calendar => p_show_on_calendar,
2272 p_category_id => p_category_id,
2273 p_enable_workflow => fnd_profile.value('JTF_TASK_ENABLE_WORKFLOW'),
2274 p_abort_workflow => fnd_profile.value('JTF_TASK_ABORT_PREV_WF'),
2275 p_free_busy_type => fnd_api.g_miss_char
2276 );
2277 END;
2278
2279 PROCEDURE update_task_assignment (
2280 p_api_version IN NUMBER,
2281 p_object_version_number IN OUT NOCOPY NUMBER,
2282 p_init_msg_list IN VARCHAR2 DEFAULT fnd_api.g_false,
2283 p_commit IN VARCHAR2 DEFAULT fnd_api.g_false,
2284 p_task_assignment_id IN NUMBER
2285 DEFAULT fnd_api.g_miss_num,
2286 p_resource_type_code IN VARCHAR2
2287 DEFAULT fnd_api.g_miss_char,
2288 p_resource_id IN NUMBER
2289 DEFAULT fnd_api.g_miss_num,
2290 p_actual_effort IN NUMBER
2291 DEFAULT fnd_api.g_miss_num,
2292 p_actual_effort_uom IN VARCHAR2
2293 DEFAULT fnd_api.g_miss_char,
2294 p_schedule_flag IN VARCHAR2
2295 DEFAULT fnd_api.g_miss_char,
2296 p_alarm_type_code IN VARCHAR2
2297 DEFAULT fnd_api.g_miss_char,
2298 p_alarm_contact IN VARCHAR2
2299 DEFAULT fnd_api.g_miss_char,
2300 p_sched_travel_distance IN NUMBER
2301 DEFAULT fnd_api.g_miss_num,
2302 p_sched_travel_duration IN NUMBER
2303 DEFAULT fnd_api.g_miss_num,
2304 p_sched_travel_duration_uom IN VARCHAR2
2305 DEFAULT fnd_api.g_miss_char,
2306 p_actual_travel_distance IN NUMBER
2307 DEFAULT fnd_api.g_miss_num,
2308 p_actual_travel_duration IN NUMBER
2309 DEFAULT fnd_api.g_miss_num,
2310 p_actual_travel_duration_uom IN VARCHAR2
2311 DEFAULT fnd_api.g_miss_char,
2312 p_actual_start_date IN DATE DEFAULT fnd_api.g_miss_date,
2313 p_actual_end_date IN DATE DEFAULT fnd_api.g_miss_date,
2314 p_palm_flag IN VARCHAR2
2315 DEFAULT fnd_api.g_miss_char,
2316 p_wince_flag IN VARCHAR2
2317 DEFAULT fnd_api.g_miss_char,
2318 p_laptop_flag IN VARCHAR2
2319 DEFAULT fnd_api.g_miss_char,
2320 p_device1_flag IN VARCHAR2
2321 DEFAULT fnd_api.g_miss_char,
2322 p_device2_flag IN VARCHAR2
2323 DEFAULT fnd_api.g_miss_char,
2324 p_device3_flag IN VARCHAR2
2325 DEFAULT fnd_api.g_miss_char,
2326 p_resource_territory_id IN NUMBER
2327 DEFAULT fnd_api.g_miss_num,
2328 p_assignment_status_id IN NUMBER
2329 DEFAULT fnd_api.g_miss_num,
2330 p_shift_construct_id IN NUMBER
2331 DEFAULT fnd_api.g_miss_num,
2332 x_return_status OUT NOCOPY VARCHAR2,
2333 x_msg_count OUT NOCOPY NUMBER,
2334 x_msg_data OUT NOCOPY VARCHAR2,
2335 p_attribute1 IN VARCHAR2
2336 DEFAULT jtf_task_utl.g_miss_char,
2337 p_attribute2 IN VARCHAR2
2338 DEFAULT jtf_task_utl.g_miss_char,
2342 DEFAULT jtf_task_utl.g_miss_char,
2339 p_attribute3 IN VARCHAR2
2340 DEFAULT jtf_task_utl.g_miss_char,
2341 p_attribute4 IN VARCHAR2
2343 p_attribute5 IN VARCHAR2
2344 DEFAULT jtf_task_utl.g_miss_char,
2345 p_attribute6 IN VARCHAR2
2346 DEFAULT jtf_task_utl.g_miss_char,
2347 p_attribute7 IN VARCHAR2
2348 DEFAULT jtf_task_utl.g_miss_char,
2349 p_attribute8 IN VARCHAR2
2350 DEFAULT jtf_task_utl.g_miss_char,
2351 p_attribute9 IN VARCHAR2
2352 DEFAULT jtf_task_utl.g_miss_char,
2353 p_attribute10 IN VARCHAR2
2354 DEFAULT jtf_task_utl.g_miss_char,
2355 p_attribute11 IN VARCHAR2
2356 DEFAULT jtf_task_utl.g_miss_char,
2357 p_attribute12 IN VARCHAR2
2358 DEFAULT jtf_task_utl.g_miss_char,
2359 p_attribute13 IN VARCHAR2
2360 DEFAULT jtf_task_utl.g_miss_char,
2361 p_attribute14 IN VARCHAR2
2362 DEFAULT jtf_task_utl.g_miss_char,
2363 p_attribute15 IN VARCHAR2
2364 DEFAULT jtf_task_utl.g_miss_char,
2365 p_attribute_category IN VARCHAR2
2366 DEFAULT jtf_task_utl.g_miss_char,
2367 p_assignee_role IN VARCHAR2
2368 DEFAULT jtf_task_utl.g_miss_char,
2369 p_show_on_calendar IN VARCHAR2
2370 DEFAULT jtf_task_utl.g_miss_char,
2371 p_category_id IN NUMBER
2372 DEFAULT jtf_task_utl.g_miss_number,
2373 p_enable_workflow IN VARCHAR2,
2374 p_abort_workflow IN VARCHAR2
2375 )
2376 IS
2377 BEGIN
2378 jtf_task_assignments_pvt.update_task_assignment (
2379 p_api_version => p_api_version,
2380 p_object_version_number => p_object_version_number,
2381 p_init_msg_list => p_init_msg_list,
2382 p_commit => p_commit,
2383 p_task_assignment_id => p_task_assignment_id,
2384 p_resource_type_code => p_resource_type_code,
2385 p_resource_id => p_resource_id,
2386 p_actual_effort => p_actual_effort,
2387 p_actual_effort_uom => p_actual_effort_uom,
2388 p_schedule_flag => p_schedule_flag,
2389 p_alarm_type_code => p_alarm_type_code,
2390 p_alarm_contact => p_alarm_contact,
2391 p_sched_travel_distance => p_sched_travel_distance,
2392 p_sched_travel_duration => p_sched_travel_duration,
2393 p_sched_travel_duration_uom => p_sched_travel_duration_uom,
2394 p_actual_travel_distance => p_actual_travel_distance,
2395 p_actual_travel_duration => p_actual_travel_duration,
2396 p_actual_travel_duration_uom => p_actual_travel_duration_uom,
2397 p_actual_start_date => p_actual_start_date,
2398 p_actual_end_date => p_actual_end_date,
2399 p_palm_flag => p_palm_flag,
2400 p_wince_flag => p_wince_flag,
2401 p_laptop_flag => p_laptop_flag,
2402 p_device1_flag => p_device1_flag,
2403 p_device2_flag => p_device2_flag,
2404 p_device3_flag => p_device3_flag,
2405 p_resource_territory_id => p_resource_territory_id,
2406 p_assignment_status_id => p_assignment_status_id,
2407 p_shift_construct_id => p_shift_construct_id,
2408 x_return_status => x_return_status,
2409 x_msg_count => x_msg_count,
2410 x_msg_data => x_msg_data,
2411 p_attribute1 => p_attribute1,
2412 p_attribute2 => p_attribute2,
2413 p_attribute3 => p_attribute3,
2414 p_attribute4 => p_attribute4,
2415 p_attribute5 => p_attribute5,
2416 p_attribute6 => p_attribute6,
2417 p_attribute7 => p_attribute7,
2418 p_attribute8 => p_attribute8,
2419 p_attribute9 => p_attribute9,
2420 p_attribute10 => p_attribute10,
2421 p_attribute11 => p_attribute11,
2422 p_attribute12 => p_attribute12,
2423 p_attribute13 => p_attribute13,
2424 p_attribute14 => p_attribute14,
2425 p_attribute15 => p_attribute15,
2426 p_attribute_category => p_attribute_category,
2427 p_assignee_role => p_assignee_role,
2428 p_show_on_calendar => p_show_on_calendar,
2429 p_category_id => p_category_id,
2430 p_enable_workflow => fnd_profile.value('JTF_TASK_ENABLE_WORKFLOW'),
2431 p_abort_workflow => fnd_profile.value('JTF_TASK_ABORT_PREV_WF'),
2432 p_free_busy_type => fnd_api.g_miss_char
2433 );
2434 END;
2435
2436 PROCEDURE delete_task_assignment (
2437 p_api_version IN NUMBER,
2438 p_object_version_number IN NUMBER,
2439 p_init_msg_list IN VARCHAR2 DEFAULT fnd_api.g_false,
2440 p_commit IN VARCHAR2 DEFAULT fnd_api.g_false,
2441 p_task_assignment_id IN NUMBER,
2442 x_return_status OUT NOCOPY VARCHAR2,
2443 x_msg_count OUT NOCOPY NUMBER,
2444 x_msg_data OUT NOCOPY VARCHAR2,
2445 p_enable_workflow IN VARCHAR2,
2446 p_abort_workflow IN VARCHAR2,
2447 p_delete_option IN VARCHAR2
2448 )
2449 IS
2450 --Declare the variables
2451 l_task_assignment_id jtf_task_all_assignments.task_assignment_id%TYPE
2452 := p_task_assignment_id;
2453 x CHAR;
2454
2458 FROM jtf_task_all_assignments
2455 CURSOR c_res_ass
2456 IS
2457 SELECT 1
2459 WHERE task_assignment_id = l_task_assignment_id;
2460
2461 l_session VARCHAR2(10) := 'DELETE';
2462 l_task_id jtf_task_all_assignments.task_id%TYPE;
2463 l_resource_id jtf_task_all_assignments.resource_id%TYPE;
2464 l_resource_type_code jtf_task_all_assignments.resource_type_code%TYPE;
2465 l_assignee_role jtf_task_all_assignments.assignee_role%TYPE;
2466
2467 -- Business Event System Enhancement # 2391065
2468 l_assignment_status_id jtf_task_all_assignments.assignment_status_id%TYPE;
2469 CURSOR ass_res_orig (b_task_assignment_id IN NUMBER)
2470 IS
2471 SELECT task_id, resource_id, resource_type_code, assignee_role, assignment_status_id
2472 FROM jtf_task_all_assignments
2473 WHERE task_assignment_id = b_task_assignment_id;
2474
2475 l_enable_workflow VARCHAR2(1) := p_enable_workflow;
2476 l_abort_workflow VARCHAR2(1) := p_abort_workflow;
2477
2478 ------------------------------------------
2479 -- For XP
2480 ------------------------------------------
2481 CURSOR c_task (b_task_assignment_id NUMBER)IS
2482 SELECT jtb.source_object_type_code
2483 , jtb.recurrence_rule_id
2484 , jtb.calendar_start_date
2485 , jtb.task_id
2486 , jtaa.resource_id
2487 , jtb.entity
2488 FROM jtf_tasks_b jtb
2489 , jtf_task_all_assignments jtaa
2490 WHERE jtaa.task_assignment_id = b_task_assignment_id
2491 AND jtb.task_id = jtaa.task_id;
2492
2493 rec_task c_task%ROWTYPE;
2494
2495 l_delete_assignee_rec jtf_task_repeat_assignment_pvt.delete_assignee_rec;
2496
2497 -- Business Event System Enhancement # 2391065
2498 l_assignment_rec jtf_task_assignments_pvt.task_assignments_rec ;
2499 x_event_return_status varchar2(100);
2500 ------------------------------------------
2501 BEGIN
2502 SAVEPOINT delete_task_ass_pvt;
2503 x_return_status := fnd_api.g_ret_sts_success;
2504
2505 ------------------------------------------
2506 -- For XP
2507 ------------------------------------------
2508 OPEN c_task (p_task_assignment_id);
2509 FETCH c_task INTO rec_task;
2510 IF c_task%NOTFOUND
2511 THEN
2512 CLOSE c_task;
2513 fnd_message.set_name ('JTF', 'JTF_TASK_INV_TK_ASS');
2514 fnd_message.set_token ('P_TASK_ASSIGNMENT_ID', p_task_assignment_id);
2515 fnd_msg_pub.add;
2516 x_return_status := fnd_api.g_ret_sts_unexp_error;
2517 RAISE fnd_api.g_exc_unexpected_error;
2518 END IF;
2519 CLOSE c_task;
2520
2521 l_task_id := rec_task.task_id;
2522
2523 IF rec_task.source_object_type_code = 'APPOINTMENT' AND
2524 rec_task.recurrence_rule_id IS NOT NULL
2525 THEN
2526 IF p_delete_option = JTF_TASK_REPEAT_APPT_PVT.G_ONE OR
2527 p_delete_option = JTF_TASK_REPEAT_APPT_PVT.G_FUTURE OR
2528 p_delete_option = JTF_TASK_REPEAT_APPT_PVT.G_ALL
2529 THEN
2530 l_delete_assignee_rec.recurrence_rule_id := rec_task.recurrence_rule_id;
2531 l_delete_assignee_rec.task_id := l_task_id;
2532 l_delete_assignee_rec.calendar_start_date := rec_task.calendar_start_date;
2533 l_delete_assignee_rec.resource_id := rec_task.resource_id;
2534 l_delete_assignee_rec.delete_option := p_delete_option;
2535 l_delete_assignee_rec.enable_workflow := p_enable_workflow;
2536 l_delete_assignee_rec.abort_workflow := p_abort_workflow;
2537
2538 jtf_task_repeat_assignment_pvt.delete_assignee(
2539 p_api_version => 1.0,
2540 p_init_msg_list => fnd_api.g_false,
2541 p_commit => fnd_api.g_false,
2542 p_delete_assignee_rec => l_delete_assignee_rec,
2543 x_return_status => x_return_status,
2544 x_msg_count => x_msg_count,
2545 x_msg_data => x_msg_data
2546 );
2547
2548 RETURN;
2549 ELSIF p_delete_option IS NOT NULL AND
2550 p_delete_option <> JTF_TASK_REPEAT_APPT_PVT.G_SKIP
2551 THEN
2552 fnd_message.set_name ('JTF', 'JTF_TASK_INVALID_FLAG');
2553 fnd_message.set_token ('P_FLAG_NAME', 'The parameter p_delete_option ');
2554 fnd_msg_pub.add;
2555
2556 x_return_status := fnd_api.g_ret_sts_unexp_error;
2557 RAISE fnd_api.g_exc_unexpected_error;
2558 END IF;
2559 END IF;
2560 ------------------------------------------
2561
2562 ---call the table handler to delete the resource req
2563 jtf_task_assignments_pub.lock_task_assignment (
2564 p_api_version => 1.0,
2565 p_init_msg_list => fnd_api.g_false,
2566 p_commit => fnd_api.g_false,
2567 p_task_assignment_id => l_task_assignment_id,
2568 p_object_version_number => p_object_version_number,
2569 x_return_status => x_return_status,
2570 x_msg_data => x_msg_data,
2571 x_msg_count => x_msg_count
2572 );
2573
2574 IF NOT (x_return_status = fnd_api.g_ret_sts_success)
2575 THEN
2576 x_return_status := fnd_api.g_ret_sts_unexp_error;
2577 RAISE fnd_api.g_exc_unexpected_error;
2578 END IF;
2579
2580 -- ------------------------------------------------------------------------
2581 -- Get the original resource_id so we can delete the reference details
2582 -- ------------------------------------------------------------------------
2583
2584 -- Validate the user_id
2585 OPEN ass_res_orig (p_task_assignment_id);
2589 IF ass_res_orig%NOTFOUND
2586 FETCH ass_res_orig INTO l_task_id, l_resource_id, l_resource_type_code, l_assignee_role, l_assignment_status_id;
2587
2588
2590 THEN
2591 CLOSE ass_res_orig; -- Fix a missing CLOSE on 4/18/2002
2592 fnd_message.set_name ('JTF', 'JTF_TASK_INV_TK_ASS');
2593 fnd_message.set_token ('P_TASK_ASSIGNMENT_ID', p_task_assignment_id);
2594 fnd_msg_pub.add;
2595 x_return_status := fnd_api.g_ret_sts_unexp_error;
2596 RAISE fnd_api.g_exc_unexpected_error;
2597 END IF;
2598 CLOSE ass_res_orig; -- Fix a missing CLOSE on 4/18/2002
2599
2600 jtf_task_utl.check_security_privilege(
2601 p_task_id => l_task_id,
2602 p_session => l_session,
2603 x_return_status => x_return_status
2604 );
2605
2606 IF NOT (x_return_status = fnd_api.g_ret_sts_success)
2607 THEN
2608 x_return_status := fnd_api.g_ret_sts_unexp_error;
2609 RAISE fnd_api.g_exc_unexpected_error;
2610 END IF;
2611
2612
2613 jtf_task_assignments_pkg.delete_row (
2614 x_task_assignment_id => l_task_assignment_id
2615 );
2616 OPEN c_res_ass;
2617 FETCH c_res_ass INTO x;
2618
2619 IF c_res_ass%FOUND
2620 THEN
2621 CLOSE c_res_ass; -- Fix a missing CLOSE on 4/18/2002
2622 fnd_message.set_name ('JTF', 'JTF_TASK_DELETING_TK_ASS');
2623 fnd_msg_pub.add;
2624 x_return_status := fnd_api.g_ret_sts_unexp_error;
2625 RAISE fnd_api.g_exc_unexpected_error;
2626 --CLOSE c_res_ass; -- Incorrect position for CLOSE
2627 ELSE
2628 CLOSE c_res_ass;
2629 END IF;
2630
2631 IF c_res_ass%ISOPEN
2632 THEN
2633 CLOSE c_res_ass;
2634 END IF;
2635
2636 -- ------------------------------------------------------------------------
2637 -- Delete reference to resource, fix enh #1845501
2638 -- ------------------------------------------------------------------------
2639 jtf_task_utl.delete_party_reference(
2640 p_reference_from => 'ASSIGNMENT',
2641 p_task_id => l_task_id,
2642 p_party_type_code => l_resource_type_code,
2643 p_party_id => l_resource_id,
2644 x_msg_count => x_msg_count,
2645 x_msg_data => x_msg_data,
2646 x_return_status => x_return_status);
2647
2648 IF NOT (x_return_status = fnd_api.g_ret_sts_success)
2649 THEN
2650 x_return_status := fnd_api.g_ret_sts_unexp_error;
2651 RAISE fnd_api.g_exc_unexpected_error;
2652 END IF;
2653
2654 ---
2655 --- decide the launch of workflow
2656 ---
2657
2658 -- Business Event System Enhancement # 2391065 and 2797666
2659 IF (rec_task.entity = 'TASK')
2660 THEN
2661 l_assignment_rec.task_assignment_id := l_task_assignment_id;
2662 l_assignment_rec.task_id := l_task_id;
2663 l_assignment_rec.resource_type_code := l_resource_type_code;
2664 l_assignment_rec.resource_id := l_resource_id;
2665 l_assignment_rec.assignment_status_id := l_assignment_status_id;
2666 l_assignment_rec.assignee_role := l_assignee_role;
2667 l_assignment_rec.enable_workflow := p_enable_workflow;
2668 l_assignment_rec.abort_workflow := l_abort_workflow;
2669
2670 jtf_task_wf_events_pvt.publish_delete_assignment(l_assignment_rec, x_event_return_status);
2671
2672 IF (x_event_return_status = 'WARNING')
2673 THEN
2674 fnd_message.set_name ('JTF', 'JTF_TASK_ASS_EVENT_WARNING');
2675 fnd_message.set_token ('P_ASSIGNMENT_ID', l_task_assignment_id);
2676 fnd_msg_pub.add;
2677 ELSIF(x_event_return_status = 'ERROR')
2678 THEN
2679 fnd_message.set_name ('JTF', 'JTF_TASK_ASS_EVENT_ERROR');
2680 fnd_message.set_token ('P_ASSIGNMENT_ID', l_task_assignment_id);
2681 fnd_msg_pub.add;
2682 x_return_status := fnd_api.g_ret_sts_unexp_error;
2683 RAISE fnd_api.g_exc_unexpected_error;
2684 END IF ;
2685
2686 END IF;
2687
2688 IF ass_res_orig%ISOPEN
2689 THEN
2690 CLOSE ass_res_orig;
2691 END IF;
2692
2693 IF fnd_api.to_boolean (p_commit)
2694 THEN
2695 COMMIT WORK;
2696 END IF;
2697
2698 fnd_msg_pub.count_and_get (p_count => x_msg_count, p_data => x_msg_data);
2699 EXCEPTION
2700 WHEN fnd_api.g_exc_unexpected_error
2701 THEN
2702 ROLLBACK TO delete_task_ass_pvt;
2703 x_return_status := fnd_api.g_ret_sts_unexp_error;
2704 fnd_msg_pub.count_and_get (
2705 p_count => x_msg_count,
2706 p_data => x_msg_data
2707 );
2708 WHEN OTHERS
2709 THEN
2710 ROLLBACK TO delete_task_ass_pvt;
2711
2712 -- Added by SBARAT on 23/05/2006 for bug# 5176073
2713 fnd_message.set_name ('JTF', 'JTF_TASK_UNKNOWN_ERROR');
2714 fnd_message.set_token ('P_TEXT', SQLCODE || SQLERRM);
2715 fnd_msg_pub.add;
2716
2717 x_return_status := fnd_api.g_ret_sts_unexp_error;
2718 fnd_msg_pub.count_and_get (
2719 p_count => x_msg_count,
2720 p_data => x_msg_data
2721 );
2722 END;
2723
2724 PROCEDURE delete_task_assignment (
2725 p_api_version IN NUMBER,
2726 p_object_version_number IN NUMBER,
2727 p_init_msg_list IN VARCHAR2 DEFAULT fnd_api.g_false,
2728 p_commit IN VARCHAR2 DEFAULT fnd_api.g_false,
2729 p_task_assignment_id IN NUMBER,
2730 x_return_status OUT NOCOPY VARCHAR2,
2731 x_msg_count OUT NOCOPY NUMBER,
2732 x_msg_data OUT NOCOPY VARCHAR2,
2736 IS
2733 p_enable_workflow IN VARCHAR2,
2734 p_abort_workflow IN VARCHAR2
2735 )
2737 BEGIN
2738 jtf_task_assignments_pvt.delete_task_assignment (
2739 p_api_version => p_api_version,
2740 p_object_version_number => p_object_version_number,
2741 p_init_msg_list => p_init_msg_list,
2742 p_commit => p_commit,
2743 p_task_assignment_id => p_task_assignment_id,
2744 x_return_status => x_return_status,
2745 x_msg_count => x_msg_count,
2746 x_msg_data => x_msg_data,
2747 p_enable_workflow => p_enable_workflow,
2748 p_abort_workflow => p_abort_workflow,
2749 p_delete_option => JTF_TASK_REPEAT_APPT_PVT.G_ONE
2750 );
2751 END;
2752
2753 PROCEDURE delete_task_assignment (
2754 p_api_version IN NUMBER,
2755 p_object_version_number IN NUMBER,
2756 p_init_msg_list IN VARCHAR2 DEFAULT fnd_api.g_false,
2757 p_commit IN VARCHAR2 DEFAULT fnd_api.g_false,
2758 p_task_assignment_id IN NUMBER,
2759 x_return_status OUT NOCOPY VARCHAR2,
2760 x_msg_count OUT NOCOPY NUMBER,
2761 x_msg_data OUT NOCOPY VARCHAR2
2762 )
2763 IS
2764 BEGIN
2765 jtf_task_assignments_pvt.delete_task_assignment (
2766 p_api_version => p_api_version,
2767 p_object_version_number => p_object_version_number,
2768 p_init_msg_list => p_init_msg_list,
2769 p_commit => p_commit,
2770 p_task_assignment_id => p_task_assignment_id,
2771 x_return_status => x_return_status,
2772 x_msg_count => x_msg_count,
2773 x_msg_data => x_msg_data,
2774 p_enable_workflow => fnd_profile.value('JTF_TASK_ENABLE_WORKFLOW'),
2775 p_abort_workflow => fnd_profile.value('JTF_TASK_ABORT_PREV_WF')
2776 );
2777 END;
2778 END;