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