DBA Data[Home] [Help]

PACKAGE BODY: APPS.JTF_TASK_ASSIGNMENT_AUDIT_PKG

Source


1 PACKAGE BODY JTF_TASK_ASSIGNMENT_AUDIT_PKG AS
2   /*$Header: jtftkaub.pls 120.0.12010000.5 2010/03/31 12:02:19 anangupt noship $*/
3 
4   /**
5    * Procedure to accept call for creation of audit record for change in
6    * task assignment. This procedure validates if the update IS actual
7    * update or a dummy update by comparing values passed with the values
8    * stored for the given assignment.This procedure inturn calls
9    * INSERT_ROW() procedure to create row in database.
10    */
11 
12   PROCEDURE create_task_assignment_audit (
13     p_api_version                 IN       NUMBER,
14     p_init_msg_list               IN       VARCHAR2 DEFAULT fnd_api.g_false,
18     p_task_assignment_id          IN       NUMBER,
15     p_commit                      IN       VARCHAR2 DEFAULT fnd_api.g_false,
16     p_object_version_number       IN       NUMBER,
17     p_task_id                     IN       NUMBER,
19     p_new_resource_type_code      IN       VARCHAR2 DEFAULT NULL,
20     p_new_resource_id             IN       NUMBER DEFAULT NULL,
21     p_new_assignment_status       IN       NUMBER DEFAULT NULL,
22     p_new_actual_effort           IN       NUMBER DEFAULT NULL,
23     p_new_actual_effort_uom       IN       VARCHAR2 DEFAULT NULL,
24     p_new_res_territory_id        IN       NUMBER DEFAULT NULL,
25     p_new_assignee_role           IN       VARCHAR2 DEFAULT NULL,
26     p_new_schedule_flag           IN       VARCHAR2 DEFAULT NULL,
27     p_new_alarm_type              IN       VARCHAR2 DEFAULT NULL,
28     p_new_alarm_contact           IN       VARCHAR2 DEFAULT NULL,
29     p_new_update_status_flag      IN       VARCHAR2 DEFAULT NULL,
30     p_new_show_on_cal_flag        IN       VARCHAR2 DEFAULT NULL,
31     p_new_category_id             IN       NUMBER DEFAULT NULL,
32     p_new_free_busy_type          IN       VARCHAR2 DEFAULT NULL,
33     p_new_booking_start_date      IN       DATE DEFAULT NULL,
34     p_new_booking_end_date        IN       DATE DEFAULT NULL,
35     p_new_actual_travel_distance  IN       NUMBER DEFAULT NULL,
36     p_new_actual_travel_duration  IN       NUMBER DEFAULT NULL,
37     p_new_actual_travel_dur_uom   IN       VARCHAR2 DEFAULT NULL,
38     p_new_sched_travel_distance   IN       NUMBER DEFAULT NULL,
39     p_new_sched_travel_duration   IN       NUMBER DEFAULT NULL,
40     p_new_sched_travel_dur_uom    IN       VARCHAR2 DEFAULT NULL,
41     p_new_actual_start_date       IN       DATE DEFAULT NULL,
42     p_new_actual_end_date         IN       DATE DEFAULT NULL,
43     x_return_status               OUT NOCOPY     VARCHAR2,
44     x_msg_count                   OUT NOCOPY     NUMBER,
45     x_msg_data                    OUT NOCOPY     VARCHAR2
46   )
47   IS
48     l_api_name           CONSTANT VARCHAR2(30)    := 'JTF_TASK_ASSIGNMENT_AUDIT_PKG';
49     l_api_version        CONSTANT NUMBER          := 1.0;
50     l_init_msg_list               VARCHAR2(10)    := fnd_api.g_false;
51     l_commit                      VARCHAR2(10)    := fnd_api.g_false;
52     l_old_resource_type_code      VARCHAR2(30);
53     l_old_resource_id             NUMBER;
54     l_old_assignment_status       NUMBER;
55     l_old_actual_effort           NUMBER;
56     l_old_actual_effort_uom       VARCHAR2(3);
57     l_old_res_territory_id        NUMBER;
58     l_old_assignee_role           VARCHAR2(30);
59     l_old_schedule_flag           VARCHAR2(1);
60     l_old_alarm_type              VARCHAR2(30);
61     l_old_alarm_contact           VARCHAR2(200);
62     l_old_update_status_flag      VARCHAR2(1);
63     l_old_show_on_cal_flag        VARCHAR2(1);
64     l_old_category_id             NUMBER;
65     l_old_free_busy_type          VARCHAR2(100);
66     l_old_booking_start_date      DATE;
67     l_old_booking_end_date        DATE;
68     l_old_actual_travel_distance  NUMBER;
69     l_old_actual_travel_duration  NUMBER;
70     l_old_actual_travel_dur_uom   VARCHAR2(3);
71     l_old_sched_travel_distance   NUMBER;
72     l_old_sched_travel_duration   NUMBER;
73     l_old_sched_travel_dur_uom    VARCHAR2(3);
74     l_old_actual_start_date       DATE;
75     l_old_actual_end_date         DATE;
76     l_resource_type_code_changed     VARCHAR2(1) :='N';
77     l_resource_id_changed 	     VARCHAR2(1) :='N';
78     l_assignment_status_changed      VARCHAR2(1) :='N';
79     l_actual_effort_changed 	     VARCHAR2(1) :='N';
80     l_actual_effort_uom_changed      VARCHAR2(1) :='N';
81     l_res_territory_id_changed 	     VARCHAR2(1) :='N';
82     l_assignee_role_changed 	     VARCHAR2(1) :='N';
83     l_schedule_flag_changed 	     VARCHAR2(1) :='N';
84     l_alarm_type_changed 	     VARCHAR2(1) :='N';
85     l_alarm_contact_changed 	     VARCHAR2(1) :='N';
86     l_update_status_flag_changed     VARCHAR2(1) :='N';
87     l_show_on_cal_flag_changed 	     VARCHAR2(1) :='N';
88     l_category_id_changed 	     VARCHAR2(1) :='N';
89     l_free_busy_type_changed 	     VARCHAR2(1) :='N';
90     l_booking_start_date_changed     VARCHAR2(1) :='N';
91     l_booking_end_date_changed 	     VARCHAR2(1) :='N';
92     l_actual_travel_dist_changed     VARCHAR2(1) :='N';
93     l_actual_travel_dur_changed      VARCHAR2(1) :='N';
94     l_actual_travel_uom_changed      VARCHAR2(1) :='N';
95     l_sched_travel_dist_changed      VARCHAR2(1) :='N';
96     l_sched_travel_dur_changed       VARCHAR2(1) :='N';
97     l_sched_travel_uom_changed       VARCHAR2(1) :='N';
98     l_actual_start_date_changed      VARCHAR2(1) :='N';
99     l_actual_end_date_changed 	     VARCHAR2(1) :='N';
100     x                             NUMBER ;
101     l_asg_create                  NUMBER;
102 
103     CURSOR cur_asg_audit (p_task_assignment_id IN NUMBER)
104     IS
105        SELECT task_id
106             , resource_type_code
107             , resource_id
108             , assignment_status_id
109             , actual_effort
110             , actual_effort_uom
111             , resource_territory_id
112             , assignee_role
113             , schedule_flag
114             , alarm_type_code
115             , alarm_contact
116             , update_status_flag
117             , show_on_calendar
118             , category_id
119             , free_busy_type
120             , booking_start_date
121             , booking_end_date
122             , actual_travel_distance
123             , actual_travel_duration
124             , actual_travel_duration_uom
125             , sched_travel_distance
126             , sched_travel_duration
127             , sched_travel_duration_uom
128             , actual_start_date
129             , actual_end_date
130             , trim(object_version_number) as object_version_number
131          FROM jtf_task_all_assignments
132         WHERE task_assignment_id = p_task_assignment_id;
133 
134     CURSOR c1 (l_asg_audit_id IN NUMBER)
135     IS
136       SELECT 1
137         FROM jtf_task_assignments_audit_b
138        WHERE Assignment_audit_id = l_asg_audit_id;
139 
140     audit_rec      cur_asg_audit%ROWTYPE;
144     SAVEPOINT create_asg_audit_pvt;
141     l_new_category_id NUMBER := p_new_category_id ;
142     l_curr            NUMBER;
143   BEGIN
145 
146     IF NOT fnd_api.compatible_api_call (l_api_version, p_api_version, l_api_name, g_pkg_name)
147     THEN
148       RAISE fnd_api.g_exc_unexpected_error;
149     END IF;
150 
151     IF fnd_api.to_boolean (p_init_msg_list)
152     THEN
153       fnd_msg_pub.initialize;
154     END IF;
155 
156     x_return_status := fnd_api.g_ret_sts_success;
157 
158     OPEN cur_asg_audit (p_task_assignment_id);
159 
160     FETCH cur_asg_audit INTO audit_rec;
161     IF(cur_asg_audit%notfound) then
162       l_old_resource_type_code              := NULL;
163       l_old_resource_id                     := NULL;
164       l_old_assignment_status               := NULL;
165       l_old_actual_effort                   := NULL;
166       l_old_actual_effort_uom               := NULL;
167       l_old_res_territory_id                := NULL;
168       l_old_assignee_role                   := NULL;
169       l_old_schedule_flag                   := NULL;
170       l_old_alarm_type                      := NULL;
171       l_old_alarm_contact                   := NULL;
172       l_old_update_status_flag              := NULL;
173       l_old_show_on_cal_flag                := NULL;
174       l_old_category_id                     := NULL;
175       l_old_free_busy_type                  := NULL;
176       l_old_booking_start_date              := NULL;
177       l_old_booking_end_date                := NULL;
178       l_old_actual_travel_distance          := NULL;
179       l_old_actual_travel_duration          := NULL;
180       l_old_actual_travel_dur_uom           := NULL;
181       l_old_sched_travel_distance           := NULL;
182       l_old_sched_travel_duration           := NULL;
183       l_old_sched_travel_dur_uom            := NULL;
184       l_old_actual_start_date               := NULL;
185       l_old_actual_end_date                 := NULL;
186       l_asg_create                          := 0;
187     ELSE
188       l_old_resource_type_code              := audit_rec.resource_type_code;
189       l_old_resource_id                     := audit_rec.resource_id;
190       l_old_assignment_status               := audit_rec.assignment_status_id;
191       l_old_actual_effort                   := audit_rec.actual_effort;
192       l_old_actual_effort_uom               := audit_rec.actual_effort_uom;
193       l_old_res_territory_id                := audit_rec.resource_territory_id;
194       l_old_assignee_role                   := audit_rec.assignee_role;
195       l_old_schedule_flag                   := audit_rec.schedule_flag;
196       l_old_alarm_type                      := audit_rec.alarm_type_code;
197       l_old_alarm_contact                   := audit_rec.alarm_contact;
198       l_old_update_status_flag              := audit_rec.update_status_flag;
199       l_old_show_on_cal_flag                := audit_rec.show_on_calendar;
200       l_old_category_id                     := audit_rec.category_id;
201       l_old_free_busy_type                  := audit_rec.free_busy_type;
202       l_old_booking_start_date              := audit_rec.booking_start_date;
203       l_old_booking_end_date                := audit_rec.booking_end_date;
204       l_old_actual_travel_distance          := audit_rec.actual_travel_distance;
205       l_old_actual_travel_duration          := audit_rec.actual_travel_duration;
206       l_old_actual_travel_dur_uom           := audit_rec.actual_travel_duration_UOM;
207       l_old_sched_travel_distance           := audit_rec.sched_travel_distance;
208       l_old_sched_travel_duration           := audit_rec.sched_travel_duration;
209       l_old_sched_travel_dur_uom            := audit_rec.sched_travel_duration_UOM;
210       l_old_actual_start_date               := audit_rec.actual_start_date;
211       l_old_actual_end_date                 := audit_rec.actual_end_date;
212       l_asg_create                          := 1;
213     END IF;
214     CLOSE cur_asg_audit;
215 
216     IF (p_new_category_id = fnd_api.g_miss_num)
217     THEN
218       l_new_category_id:=NULL;
219     END IF;
220 
221     IF ( (p_new_resource_type_code IS NULL AND l_old_resource_type_code IS NOT NULL)
222           OR (p_new_resource_type_code IS NOT NULL AND l_old_resource_type_code IS NULL)
223           OR (p_new_resource_type_code IS NOT NULL AND l_old_resource_type_code IS NOT NULL
224               AND p_new_resource_type_code <> l_old_resource_type_code))
225     THEN
226       l_resource_type_code_changed:='Y';
227     END IF;
228 
229     IF ( (p_new_resource_id IS NULL AND l_old_resource_id IS NOT NULL)
230           OR (p_new_resource_id IS NOT NULL AND l_old_resource_id IS NULL)
231           OR (p_new_resource_id IS NOT NULL AND l_old_resource_id IS NOT NULL
232               AND p_new_resource_id <> l_old_resource_id))
233     THEN
234       l_resource_id_changed:='Y';
235     END IF;
236 
237     IF ( (p_new_assignment_status IS NULL AND l_old_assignment_status IS NOT NULL)
238           OR (p_new_assignment_status IS NOT NULL AND l_old_assignment_status IS NULL)
239           OR (p_new_assignment_status IS NOT NULL AND l_old_assignment_status IS NOT NULL
240               AND p_new_assignment_status <> l_old_assignment_status))
241     THEN
242       l_assignment_status_changed:='Y';
243     END IF;
244 
245     IF ( (p_new_actual_effort IS NULL AND l_old_actual_effort IS NOT NULL)
246           OR (p_new_actual_effort IS NOT NULL AND l_old_actual_effort IS NULL)
247           OR (p_new_actual_effort IS NOT NULL AND l_old_actual_effort IS NOT NULL
248               AND p_new_actual_effort <> l_old_actual_effort))
249     THEN
253     IF ( (p_new_actual_effort_uom IS NULL AND l_old_actual_effort_uom IS NOT NULL)
250       l_actual_effort_changed:='Y';
251     END IF;
252 
254           OR (p_new_actual_effort_uom IS NOT NULL AND l_old_actual_effort_uom IS NULL)
255           OR (p_new_actual_effort_uom IS NOT NULL AND l_old_actual_effort_uom IS NOT NULL
256               AND p_new_actual_effort_uom <> l_old_actual_effort_uom))
257     THEN
258       l_actual_effort_uom_changed:='Y';
259     END IF;
260 
261     IF ( (p_new_res_territory_id IS NULL AND l_old_res_territory_id IS NOT NULL)
262           OR (p_new_res_territory_id IS NOT NULL AND l_old_res_territory_id IS NULL)
263           OR (p_new_res_territory_id IS NOT NULL AND l_old_res_territory_id IS NOT NULL
264               AND p_new_res_territory_id <> l_old_res_territory_id))
265     THEN
266       l_res_territory_id_changed:='Y';
267     END IF;
268 
269     IF ( (p_new_assignee_role IS NULL AND l_old_assignee_role IS NOT NULL)
270           OR (p_new_assignee_role IS NOT NULL AND l_old_assignee_role IS NULL)
271           OR (p_new_assignee_role IS NOT NULL AND l_old_assignee_role IS NOT NULL
272               AND p_new_assignee_role <> l_old_assignee_role))
273     THEN
274       l_assignee_role_changed:='Y';
275     END IF;
276 
277     IF ( (p_new_schedule_flag IS NULL AND l_old_schedule_flag IS NOT NULL)
278           OR (p_new_schedule_flag IS NOT NULL AND l_old_schedule_flag IS NULL)
279           OR (p_new_schedule_flag IS NOT NULL AND l_old_schedule_flag IS NOT NULL
280               AND p_new_schedule_flag <> l_old_schedule_flag))
281     THEN
282       l_schedule_flag_changed:='Y';
283     END IF;
284 
285     IF ( (p_new_alarm_type IS NULL AND l_old_alarm_type IS NOT NULL)
286           OR (p_new_alarm_type IS NOT NULL AND l_old_alarm_type IS NULL)
287           OR (p_new_alarm_type IS NOT NULL AND l_old_alarm_type IS NOT NULL
288               AND p_new_alarm_type <> l_old_alarm_type))
289     THEN
290       l_alarm_type_changed:='Y';
291     END IF;
292 
293     IF ( (p_new_alarm_contact IS NULL AND l_old_alarm_contact IS NOT NULL)
294           OR (p_new_alarm_contact IS NOT NULL AND l_old_alarm_contact IS NULL)
295           OR (p_new_alarm_contact IS NOT NULL AND l_old_alarm_contact IS NOT NULL
296               AND p_new_alarm_contact <> l_old_alarm_contact))
297     THEN
298       l_alarm_contact_changed:='Y';
299     END IF;
300 
301     IF ( (p_new_update_status_flag IS NULL AND l_old_update_status_flag IS NOT NULL)
302           OR (p_new_update_status_flag IS NOT NULL AND l_old_update_status_flag IS NULL)
303           OR (p_new_update_status_flag IS NOT NULL AND l_old_update_status_flag IS NOT NULL
304               AND p_new_update_status_flag <> l_old_update_status_flag) )
305     THEN
306       l_update_status_flag_changed:='Y';
307     END IF;
308 
309     IF ( (p_new_show_on_cal_flag IS NULL AND l_old_show_on_cal_flag IS NOT NULL)
310           OR (p_new_show_on_cal_flag IS NOT NULL AND l_old_show_on_cal_flag IS NULL)
311           OR (p_new_show_on_cal_flag IS NOT NULL AND l_old_show_on_cal_flag IS NOT NULL
312               AND p_new_show_on_cal_flag <> l_old_show_on_cal_flag) )
313     THEN
314       l_show_on_cal_flag_changed:='Y';
315     END IF;
316 
317     IF ( (l_new_category_id IS NULL AND l_old_category_id IS NOT NULL)
318           OR (l_new_category_id IS NOT NULL AND l_old_category_id IS NULL)
319           OR (l_new_category_id IS NOT NULL AND l_old_category_id IS NOT NULL
320               AND l_new_category_id <> l_old_category_id) )
321     THEN
322       l_category_id_changed:='Y';
323     END IF;
324 
325     IF ( (p_new_free_busy_type IS NULL AND l_old_free_busy_type IS NOT NULL)
326           OR (p_new_free_busy_type IS NOT NULL AND l_old_free_busy_type IS NULL)
327           OR (p_new_free_busy_type IS NOT NULL AND l_old_free_busy_type IS NOT NULL
328               AND p_new_free_busy_type <> l_old_free_busy_type) )
329     THEN
330       l_free_busy_type_changed:='Y';
331     END IF;
332 
333     IF ( (p_new_booking_start_date IS NULL AND l_old_booking_start_date IS NOT NULL)
334           OR (p_new_booking_start_date IS NOT NULL AND l_old_booking_start_date IS NULL)
335           OR (p_new_booking_start_date IS NOT NULL AND l_old_booking_start_date IS NOT NULL
336               AND p_new_booking_start_date <> l_old_booking_start_date) )
337     THEN
338       l_booking_start_date_changed:='Y';
339     END IF;
340 
341     IF ( (p_new_booking_end_date IS NULL AND l_old_booking_end_date IS NOT NULL)
342           OR (p_new_booking_end_date IS NOT NULL AND l_old_booking_end_date IS NULL)
343           OR (p_new_booking_end_date IS NOT NULL AND l_old_booking_end_date IS NOT NULL
344               AND p_new_booking_end_date <> l_old_booking_end_date) )
345     THEN
346       l_booking_end_date_changed:='Y';
347     END IF;
348 
349     IF ( (p_new_actual_travel_distance IS NULL AND l_old_actual_travel_distance IS NOT NULL)
350           OR (p_new_actual_travel_distance IS NOT NULL AND l_old_actual_travel_distance IS NULL)
351           OR (p_new_actual_travel_distance IS NOT NULL AND l_old_actual_travel_distance IS NOT NULL
352               AND p_new_actual_travel_distance <> l_old_actual_travel_distance))
353     THEN
354       l_actual_travel_dist_changed:='Y';
355     END IF;
356 
357     IF ( (p_new_actual_travel_duration IS NULL AND l_old_actual_travel_duration IS NOT NULL)
358           OR (p_new_actual_travel_duration IS NOT NULL AND l_old_actual_travel_duration IS NULL)
359           OR (p_new_actual_travel_duration IS NOT NULL AND l_old_actual_travel_duration IS NOT NULL
360               AND p_new_actual_travel_duration <> l_old_actual_travel_duration) )
361     THEN
362       l_actual_travel_dur_changed:='Y';
363     END IF;
364 
365     IF ( (p_new_actual_travel_dur_uom IS NULL AND l_old_actual_travel_dur_uom IS NOT NULL)
366           OR (p_new_actual_travel_dur_uom IS NOT NULL AND l_old_actual_travel_dur_uom IS NULL)
367           OR (p_new_actual_travel_dur_uom IS NOT NULL AND l_old_actual_travel_dur_uom IS NOT NULL
368               AND p_new_actual_travel_dur_uom <> l_old_actual_travel_dur_uom) )
369     THEN
370       l_actual_travel_uom_changed:='Y';
371     END IF;
372 
373     IF ( (p_new_sched_travel_distance IS NULL AND l_old_sched_travel_distance IS NOT NULL)
374           OR (p_new_sched_travel_distance IS NOT NULL AND l_old_sched_travel_distance IS NULL)
375           OR (p_new_sched_travel_distance IS NOT NULL AND l_old_sched_travel_distance IS NOT NULL
376               AND p_new_sched_travel_distance <> l_old_sched_travel_distance) )
377     THEN
378       l_sched_travel_dist_changed:='Y';
379     END IF;
380 
381     IF ( (p_new_sched_travel_duration IS NULL AND l_old_sched_travel_duration IS NOT NULL)
382           OR (p_new_sched_travel_duration IS NOT NULL AND l_old_sched_travel_duration IS NULL)
383           OR (p_new_sched_travel_duration IS NOT NULL AND l_old_sched_travel_duration IS NOT NULL
384               AND p_new_sched_travel_duration <> l_old_sched_travel_duration) )
385     THEN
386       l_sched_travel_dur_changed:='Y';
387     END IF;
388 
389     IF ( (p_new_sched_travel_dur_uom IS NULL AND l_old_sched_travel_DUR_UOM IS NOT NULL)
390           OR (p_new_sched_travel_dur_uom IS NOT NULL AND l_old_sched_travel_DUR_UOM IS NULL)
391           OR (p_new_sched_travel_dur_uom IS NOT NULL AND l_old_sched_travel_DUR_UOM IS NOT NULL
392               AND p_new_sched_travel_dur_uom <> l_old_sched_travel_DUR_UOM) )
393     THEN
394       l_sched_travel_uom_changed:='Y';
395     END IF;
396 
397     IF ( (p_new_actual_start_date IS NULL AND l_old_actual_start_date IS NOT NULL)
398           OR (p_new_actual_start_date IS NOT NULL AND l_old_actual_start_date IS NULL)
399           OR (p_new_actual_start_date IS NOT NULL AND l_old_actual_start_date IS NOT NULL
400               AND p_new_actual_start_date <> l_old_actual_start_date) )
401     THEN
402       l_actual_start_date_changed:='Y';
403     END IF;
404 
405     IF ( (p_new_actual_end_date IS NULL AND l_old_actual_end_date IS NOT NULL)
406           OR (p_new_actual_end_date IS NOT NULL AND l_old_actual_end_date IS NULL)
407           OR (p_new_actual_end_date IS NOT NULL AND l_old_actual_end_date IS NOT NULL
408               AND p_new_actual_end_date <> l_old_actual_end_date) )
409     THEN
410       l_actual_end_date_changed:='Y';
411     END IF;
412 
413     IF(l_asg_create='0' OR l_resource_type_code_changed='Y' OR
414       l_resource_id_changed='Y' OR
415       l_assignment_status_changed='Y' OR
416       l_actual_effort_changed='Y' OR
417       l_actual_effort_uom_changed='Y' OR
418       l_res_territory_id_changed='Y' OR
419       l_assignee_role_changed='Y' OR
420       l_schedule_flag_changed='Y' OR
421       l_alarm_type_changed='Y' OR
422       l_alarm_contact_changed='Y' OR
423       l_update_status_flag_changed='Y' OR
424       l_show_on_cal_flag_changed='Y' OR
425       l_category_id_changed='Y' OR
426       l_free_busy_type_changed='Y' OR
427       l_booking_start_date_changed='Y' OR
428       l_booking_end_date_changed='Y' OR
429       l_actual_travel_dist_changed='Y' OR
430       l_actual_travel_dur_changed='Y' OR
431       l_actual_travel_uom_changed='Y' OR
432       l_sched_travel_dist_changed='Y' OR
433       l_sched_travel_dur_changed='Y' OR
434       l_sched_travel_uom_changed='Y' OR
435       l_actual_start_date_changed='Y' OR
436       l_actual_end_date_changed='Y' )
437     THEN
438 
439       SELECT jtf_task_assignments_audit_s.NEXTVAL INTO l_curr FROM dual;
440       INSERT_ROW(
441         X_ASSIGNMENT_AUDIT_ID          =>   l_curr,
442         X_ASSIGNMENT_ID                =>   p_task_assignment_id,
443         X_TASK_ID                      =>   p_task_id,
444         X_CREATION_DATE                =>   SYSDATE,
445         X_CREATED_BY                   =>   jtf_task_utl.created_by,
446         X_LAST_UPDATE_DATE             =>   SYSDATE,
447         X_LAST_UPDATED_BY              =>   jtf_task_utl.updated_by,
448         X_LAST_UPDATE_LOGIN            =>   jtf_task_utl.login_id,
449         X_OLD_RESOURCE_TYPE_CODE       =>   l_old_resource_type_code,
450         X_NEW_RESOURCE_TYPE_CODE       =>   p_new_resource_type_code,
451         X_OLD_RESOURCE_ID              =>   l_old_resource_id,
452         X_NEW_RESOURCE_ID              =>   p_new_resource_id,
453         X_OLD_ASSIGNMENT_STATUS_ID     =>   l_old_assignment_status,
454         X_NEW_ASSIGNMENT_STATUS_ID     =>   p_new_assignment_status,
455         X_OLD_ACTUAL_EFFORT            =>   l_old_actual_effort,
456         X_NEW_ACTUAL_EFFORT            =>   p_new_actual_effort,
457         X_OLD_ACTUAL_EFFORT_UOM        =>   l_old_actual_effort_uom,
458         X_NEW_ACTUAL_EFFORT_UOM        =>   p_new_actual_effort_uom,
459         X_OLD_RES_TERRITORY_ID         =>   l_old_res_territory_id,
460         X_NEW_RES_TERRITORY_ID         =>   p_new_res_territory_id,
461         X_OLD_ASSIGNEE_ROLE            =>   l_old_assignee_role,
462         X_NEW_ASSIGNEE_ROLE            =>   p_new_assignee_role,
463         X_OLD_ALARM_TYPE               =>   l_old_alarm_type,
464         X_NEW_ALARM_TYPE               =>   p_new_alarm_type,
465         X_OLD_ALARM_CONTACT            =>   l_old_alarm_contact,
466         X_NEW_ALARM_CONTACT            =>   p_new_alarm_contact,
467         X_OLD_CATEGORY_ID              =>   l_old_category_id,
468         X_NEW_CATEGORY_ID              =>   l_new_category_id,
469         X_OLD_BOOKING_START_DATE       =>   l_old_booking_start_date,
470         X_NEW_BOOKING_START_DATE       =>   p_new_booking_start_date,
471         X_OLD_BOOKING_END_DATE         =>   l_old_booking_end_date,
472         X_NEW_BOOKING_END_DATE         =>   p_new_booking_end_date,
473         X_OLD_ACTUAL_TRAVEL_DISTANCE   =>   l_old_actual_travel_distance,
474         X_NEW_ACTUAL_TRAVEL_DISTANCE   =>   p_new_actual_travel_distance,
475         X_OLD_ACTUAL_TRAVEL_DURATION   =>   l_old_actual_travel_duration,
476         X_NEW_ACTUAL_TRAVEL_DURATION   =>   p_new_actual_travel_duration,
477         X_OLD_ACTUAL_TRAVEL_DUR_UOM    =>   l_old_actual_travel_dur_uom,
478         X_NEW_ACTUAL_TRAVEL_DUR_UOM    =>   p_new_actual_travel_dur_uom,
479         X_OLD_SCHED_TRAVEL_DISTANCE    =>   l_old_sched_travel_distance,
480         X_NEW_SCHED_TRAVEL_DISTANCE    =>   p_new_sched_travel_distance,
481         X_OLD_SCHED_TRAVEL_DURATION    =>   l_old_sched_travel_duration,
482         X_NEW_SCHED_TRAVEL_DURATION    =>   p_new_sched_travel_duration,
483         X_OLD_SCHED_TRAVEL_DUR_UOM     =>   l_old_sched_travel_dur_uom,
484         X_NEW_SCHED_TRAVEL_DUR_UOM     =>   p_new_sched_travel_dur_uom,
485         X_OLD_ACTUAL_START_DATE        =>   l_old_actual_start_date,
486         X_NEW_ACTUAL_START_DATE        =>   p_new_actual_start_date,
487         X_OLD_ACTUAL_END_DATE          =>   l_old_actual_end_date,
488         X_NEW_ACTUAL_END_DATE          =>   p_new_actual_end_date,
489         X_FREE_BUSY_TYPE_CHANGED       =>   l_free_busy_type_changed,
490         X_UPDATE_STATUS_FLAG_CHANGED   =>   l_update_status_flag_changed,
491         X_SHOW_ON_CALENDAR_CHANGED     =>   l_show_on_cal_flag_changed,
492         X_SCHEDULED_FLAG_CHANGED       =>   l_schedule_flag_changed
493         );
494 
495     END IF;
496     SELECT jtf_task_assignments_audit_s.CURRVAL INTO l_curr FROM dual;
497     OPEN c1 (l_curr);
498     FETCH c1 INTO x;
499 
500     IF c1%NOTFOUND
501     THEN
502       x_return_status := fnd_api.g_ret_sts_unexp_error;
503       RAISE fnd_api.g_exc_unexpected_error;
504     ELSE
505         NULL;
506     END IF;
507 
508 
509     IF fnd_api.to_boolean (p_commit)
510     THEN
511         COMMIT WORK;
512     END IF;
513 
514     EXCEPTION
515       WHEN OTHERS THEN
516         x_return_status := FND_API.G_RET_STS_UNEXP_ERROR;
517   END create_task_assignment_audit;
518 
519 
520 
521   PROCEDURE INSERT_ROW (
522     X_ASSIGNMENT_AUDIT_ID IN NUMBER,
523     X_ASSIGNMENT_ID IN NUMBER,
524     X_TASK_ID IN NUMBER,
525     X_CREATION_DATE in DATE,
526     X_CREATED_BY in NUMBER,
527     X_LAST_UPDATE_DATE in DATE,
528     X_LAST_UPDATED_BY in NUMBER,
529     X_LAST_UPDATE_LOGIN in NUMBER,
530     X_OLD_RESOURCE_TYPE_CODE IN VARCHAR2,
531     X_NEW_RESOURCE_TYPE_CODE IN VARCHAR2,
532     X_OLD_RESOURCE_ID IN NUMBER,
533     X_NEW_RESOURCE_ID IN NUMBER,
534     X_OLD_ASSIGNMENT_STATUS_ID IN NUMBER,
535     X_NEW_ASSIGNMENT_STATUS_ID IN NUMBER,
536     X_OLD_ACTUAL_EFFORT IN NUMBER,
537     X_NEW_ACTUAL_EFFORT IN NUMBER,
538     X_OLD_ACTUAL_EFFORT_UOM IN VARCHAR2,
539     X_NEW_ACTUAL_EFFORT_UOM IN VARCHAR2,
540     X_OLD_RES_TERRITORY_ID IN NUMBER,
541     X_NEW_RES_TERRITORY_ID IN NUMBER,
542     X_OLD_ASSIGNEE_ROLE IN VARCHAR2,
543     X_NEW_ASSIGNEE_ROLE IN VARCHAR2,
544     X_OLD_ALARM_TYPE IN VARCHAR2,
545     X_NEW_ALARM_TYPE IN VARCHAR2,
546     X_OLD_ALARM_CONTACT IN VARCHAR2,
547     X_NEW_ALARM_CONTACT IN VARCHAR2,
548     X_OLD_CATEGORY_ID IN NUMBER,
549     X_NEW_CATEGORY_ID IN NUMBER,
550     X_OLD_BOOKING_START_DATE IN DATE,
551     X_NEW_BOOKING_START_DATE IN DATE,
552     X_OLD_BOOKING_END_DATE IN DATE,
553     X_NEW_BOOKING_END_DATE IN DATE,
554     X_OLD_ACTUAL_TRAVEL_DISTANCE IN NUMBER,
555     X_NEW_ACTUAL_TRAVEL_DISTANCE IN NUMBER,
556     X_OLD_ACTUAL_TRAVEL_DURATION IN NUMBER,
557     X_NEW_ACTUAL_TRAVEL_DURATION IN NUMBER,
558     X_OLD_ACTUAL_TRAVEL_DUR_UOM IN VARCHAR2,
559     X_NEW_ACTUAL_TRAVEL_DUR_UOM IN VARCHAR2,
560     X_OLD_SCHED_TRAVEL_DISTANCE IN NUMBER,
561     X_NEW_SCHED_TRAVEL_DISTANCE IN NUMBER,
562     X_OLD_SCHED_TRAVEL_DURATION IN NUMBER,
563     X_NEW_SCHED_TRAVEL_DURATION IN NUMBER,
564     X_OLD_SCHED_TRAVEL_DUR_UOM IN VARCHAR2,
565     X_NEW_SCHED_TRAVEL_DUR_UOM IN VARCHAR2,
566     X_OLD_ACTUAL_START_DATE IN DATE,
567     X_NEW_ACTUAL_START_DATE IN DATE,
568     X_OLD_ACTUAL_END_DATE IN DATE,
569     X_NEW_ACTUAL_END_DATE IN DATE,
570     X_FREE_BUSY_TYPE_CHANGED IN VARCHAR2,
571     X_UPDATE_STATUS_FLAG_CHANGED IN VARCHAR2,
572     X_SHOW_ON_CALENDAR_CHANGED IN VARCHAR2,
573     X_SCHEDULED_FLAG_CHANGED IN VARCHAR2
574     ) IS
575       l_rowid ROWID;
576       l_enable_audit    varchar2(5);
577 
578       cursor C IS select ROWID from JTF_TASK_ASSIGNMENTS_AUDIT_B
579         where ASSIGNMENT_AUDIT_ID = X_ASSIGNMENT_AUDIT_ID;
580   BEGIN
581     l_enable_audit := Upper(nvl(fnd_profile.Value('JTF_TASK_ENABLE_AUDIT'),'Y'));
582     IF(l_enable_audit = 'N') THEN
583       RETURN;
584     END IF;
585 
586     INSERT INTO JTF_TASK_ASSIGNMENTS_AUDIT_B (
587       ASSIGNMENT_AUDIT_ID  ,
588       ASSIGNMENT_ID  ,
589       OBJECT_VERSION_NUMBER,
590       TASK_ID  ,
591       CREATION_DATE  ,
592       CREATED_BY  ,
593       LAST_UPDATE_DATE  ,
594       LAST_UPDATED_BY  ,
595       LAST_UPDATE_LOGIN  ,
596       OLD_RESOURCE_TYPE_CODE  ,
597       NEW_RESOURCE_TYPE_CODE  ,
598       OLD_RESOURCE_ID  ,
599       NEW_RESOURCE_ID  ,
600       OLD_ASSIGNMENT_STATUS_ID  ,
601       NEW_ASSIGNMENT_STATUS_ID  ,
602       OLD_ACTUAL_EFFORT  ,
603       NEW_ACTUAL_EFFORT  ,
604       OLD_ACTUAL_EFFORT_UOM  ,
605       NEW_ACTUAL_EFFORT_UOM  ,
606       OLD_RES_TERRITORY_ID  ,
607       NEW_RES_TERRITORY_ID  ,
608       OLD_ASSIGNEE_ROLE  ,
609       NEW_ASSIGNEE_ROLE  ,
610       OLD_ALARM_TYPE  ,
611       NEW_ALARM_TYPE  ,
612       OLD_ALARM_CONTACT  ,
613       NEW_ALARM_CONTACT  ,
614       OLD_CATEGORY_ID  ,
615       NEW_CATEGORY_ID  ,
616       OLD_BOOKING_START_DATE  ,
617       NEW_BOOKING_START_DATE  ,
618       OLD_BOOKING_END_DATE  ,
619       NEW_BOOKING_END_DATE  ,
620       OLD_ACTUAL_TRAVEL_DISTANCE  ,
621       NEW_ACTUAL_TRAVEL_DISTANCE  ,
622       OLD_ACTUAL_TRAVEL_DURATION  ,
623       NEW_ACTUAL_TRAVEL_DURATION  ,
624       OLD_ACTUAL_TRAVEL_DURATION_UOM  ,
625       NEW_ACTUAL_TRAVEL_DURATION_UOM  ,
626       OLD_SCHED_TRAVEL_DISTANCE  ,
627       NEW_SCHED_TRAVEL_DISTANCE  ,
628       OLD_SCHED_TRAVEL_DURATION  ,
629       NEW_SCHED_TRAVEL_DURATION  ,
630       OLD_SCHED_TRAVEL_DURATION_UOM  ,
631       NEW_SCHED_TRAVEL_DURATION_UOM  ,
632       OLD_ACTUAL_START_DATE,
633       NEW_ACTUAL_START_DATE,
634       OLD_ACTUAL_END_DATE,
635       NEW_ACTUAL_END_DATE,
636       FREE_BUSY_TYPE_CHANGED  ,
637       UPDATE_STATUS_FLAG_CHANGED  ,
638       SHOW_ON_CALENDAR_CHANGED  ,
639       SCHEDULE_FLAG_CHANGED ) VALUES (
640       X_ASSIGNMENT_AUDIT_ID  ,
641       X_ASSIGNMENT_ID  ,
642       1.0,
643       X_TASK_ID  ,
644       X_CREATION_DATE  ,
645       X_CREATED_BY  ,
646       X_LAST_UPDATE_DATE  ,
647       X_LAST_UPDATED_BY  ,
648       X_LAST_UPDATE_LOGIN  ,
649       X_OLD_RESOURCE_TYPE_CODE  ,
650       X_NEW_RESOURCE_TYPE_CODE  ,
651       X_OLD_RESOURCE_ID  ,
652       X_NEW_RESOURCE_ID  ,
653       X_OLD_ASSIGNMENT_STATUS_ID  ,
654       X_NEW_ASSIGNMENT_STATUS_ID  ,
655       X_OLD_ACTUAL_EFFORT  ,
656       X_NEW_ACTUAL_EFFORT  ,
657       X_OLD_ACTUAL_EFFORT_UOM  ,
658       X_NEW_ACTUAL_EFFORT_UOM  ,
659       X_OLD_RES_TERRITORY_ID  ,
660       X_NEW_RES_TERRITORY_ID  ,
661       X_OLD_ASSIGNEE_ROLE  ,
662       X_NEW_ASSIGNEE_ROLE  ,
663       X_OLD_ALARM_TYPE  ,
664       X_NEW_ALARM_TYPE  ,
665       X_OLD_ALARM_CONTACT  ,
666       X_NEW_ALARM_CONTACT  ,
667       X_OLD_CATEGORY_ID  ,
668       X_NEW_CATEGORY_ID  ,
669       X_OLD_BOOKING_START_DATE  ,
670       X_NEW_BOOKING_START_DATE  ,
671       X_OLD_BOOKING_END_DATE  ,
672       X_NEW_BOOKING_END_DATE  ,
673       X_OLD_ACTUAL_TRAVEL_DISTANCE  ,
674       X_NEW_ACTUAL_TRAVEL_DISTANCE  ,
675       X_OLD_ACTUAL_TRAVEL_DURATION  ,
676       X_NEW_ACTUAL_TRAVEL_DURATION  ,
677       X_OLD_ACTUAL_TRAVEL_DUR_UOM  ,
678       X_NEW_ACTUAL_TRAVEL_DUR_UOM  ,
679       X_OLD_SCHED_TRAVEL_DISTANCE  ,
680       X_NEW_SCHED_TRAVEL_DISTANCE  ,
681       X_OLD_SCHED_TRAVEL_DURATION  ,
682       X_NEW_SCHED_TRAVEL_DURATION  ,
683       X_OLD_SCHED_TRAVEL_DUR_UOM  ,
684       X_NEW_SCHED_TRAVEL_DUR_UOM  ,
685       X_OLD_ACTUAL_START_DATE,
686       X_NEW_ACTUAL_START_DATE,
687       X_OLD_ACTUAL_END_DATE,
688       X_NEW_ACTUAL_END_DATE,
689       X_FREE_BUSY_TYPE_CHANGED  ,
690       X_UPDATE_STATUS_FLAG_CHANGED  ,
691       X_SHOW_ON_CALENDAR_CHANGED  ,
692       X_SCHEDULED_FLAG_CHANGED );
693 
694 
695     OPEN c;
696     FETCH c into l_rowid;
697     IF (c%notfound) THEN
698       close c;
699       raise no_data_found;
700     END IF;
701     CLOSE c;
702   END INSERT_ROW;
703 
704   PROCEDURE DELETE_ROW(X_ASSIGNMENT_ID IN NUMBER)
705   IS
706     CURSOR C IS select ROWID from JTF_TASK_ALL_ASSIGNMENTS
707       where task_ASSIGNMENT_ID = X_ASSIGNMENT_ID;
708 
709     l_rowid ROWID;
710     l_enable_audit    varchar2(5);
711   BEGIN
712     l_enable_audit := Upper(nvl(fnd_profile.Value('JTF_TASK_ENABLE_AUDIT'),'Y'));
713     IF(l_enable_audit = 'N') THEN
714       RETURN;
715     END IF;
716     OPEN c;
717     FETCH c into l_rowid;
718     IF(c%notfound) THEN
719       DELETE FROM jtf_task_assignments_audit_b WHERE assignment_id = x_assignment_id;
720     ELSE
721       RAISE fnd_api.g_exc_unexpected_error;
722     END IF;
723     CLOSE c;
724   END DELETE_ROW;
725 
726 
727 END jtf_task_assignment_audit_pkg;