[Home] [Help]
PACKAGE BODY: APPS.CAC_VIEW_APPT_PVT
Source
1 PACKAGE BODY CAC_VIEW_APPT_PVT AS
2 /* $Header: cacvwsab.pls 120.1 2005/08/18 05:43:31 amigupta noship $ */
3
4 FUNCTION is_valid_alarm(p_alarm_start IN NUMBER)
5 RETURN BOOLEAN
6 IS
7 BEGIN
8 IF p_alarm_start <> 0 AND p_alarm_start <> 5 AND p_alarm_start <> 10
9 AND p_alarm_start <> 15 AND p_alarm_start <> 30
10 AND p_alarm_start <> 60 AND p_alarm_start <> 120 AND p_alarm_start <> 1440
11 AND p_alarm_start <> 2880 AND p_alarm_start <> 4320 AND p_alarm_start <> 10080
12 THEN
13 RETURN FALSE;
14 END IF;
15 RETURN TRUE;
16 END;
17
18 PROCEDURE get_alarm_start (p_task_id IN NUMBER,
19 x_alarm_start OUT NOCOPY NUMBER,
20 x_planned_start_date OUT NOCOPY DATE)
21 IS
22 CURSOR c_alarm IS
23 select alarm_start, planned_start_date
24 from jtf_tasks_b t
25 where t.task_id = p_task_id;
26
27 l_alarm c_alarm%ROWTYPE;
28 BEGIN
29 OPEN c_alarm;
30 FETCH c_alarm INTO l_alarm;
31 IF c_alarm%NOTFOUND THEN
32 CLOSE c_alarm;
33 fnd_message.set_name ('JTF', 'JTF_INVALID_TASK_ID');
34 fnd_msg_pub.add;
35 RAISE fnd_api.g_exc_unexpected_error;
36 ELSE
37 CLOSE c_alarm;
38 x_alarm_start := l_alarm.alarm_start;
39 x_planned_start_date := l_alarm.planned_start_date;
40
41 END IF;
42 END;
43
44 PROCEDURE create_external_appointment (
45 p_task_name IN VARCHAR2,
46 p_task_type_id IN NUMBER,
47 p_description IN VARCHAR2,
48 p_task_priority_id IN NUMBER,
49 p_owner_type_code IN VARCHAR2,
50 p_owner_id IN NUMBER,
51 p_planned_start_date IN DATE,
52 p_planned_end_date IN DATE,
53 p_timezone_id IN NUMBER,
54 p_private_flag IN VARCHAR2,
55 p_alarm_start IN NUMBER,
56 p_alarm_on IN VARCHAR2,
57 p_category_id IN NUMBER,
58 p_free_busy_type IN VARCHAR2,
59 p_source_object_type_code IN VARCHAR2,
60 x_return_status OUT NOCOPY VARCHAR2,
61 x_task_id OUT NOCOPY NUMBER
62 )IS
63 l_msg_count NUMBER;
64 l_msg_data VARCHAR2(2000);
65 BEGIN
66
67 fnd_msg_pub.initialize;
68 jtf_tasks_pvt.create_task(
69 p_api_version => 1.0,
70 p_task_name => p_task_name,
71 p_task_type_id => p_task_type_id,
72 p_task_status_id => 3, -- Accepted
73 p_description => p_description,
74 p_task_priority_id => p_task_priority_id ,
75 p_owner_type_code => p_owner_type_code,
76 p_owner_id => p_owner_id,
77 p_planned_start_date => p_planned_start_date ,
78 p_planned_end_date => p_planned_end_date,
79 p_timezone_id => p_timezone_id,
80 p_source_object_type_code => p_source_object_type_code,
81 p_private_flag => p_private_flag,
82 p_workflow_process_id => 0,
83 p_alarm_start => p_alarm_start,
84 p_alarm_on => p_alarm_on,
85 p_alarm_interval_uom => 'min',
86 x_return_status => x_return_status,
87 x_msg_count => l_msg_count,
88 x_msg_data => l_msg_data,
89 x_task_id => x_task_id,
90 p_date_selected => 'P',
91 p_category_id => p_category_id,
92 p_show_on_calendar => 'Y',
93 p_owner_status_id => 3,--Accepted
94 p_enable_workflow => 'N',
95 p_abort_workflow => 'N',
96 p_entity => 'APPOINTMENT',
97 p_free_busy_type => p_free_busy_type
98 ) ;
99
100 IF x_return_status = fnd_api.g_ret_sts_success AND p_alarm_start > 0
101 AND is_valid_alarm(p_alarm_start) THEN
102 jtf_cal_wf_pvt.startreminders(
103 p_api_version => 1.0,
104 p_commit => 'T',
105 x_return_status => x_return_status,
106 x_msg_count => l_msg_count,
107 x_msg_data => l_msg_data,
108 p_invitor => p_owner_id,
109 p_taskid => x_task_id,
110 p_reminddate => p_planned_start_date - p_alarm_start/1440
111 );
112 END IF;
113 END;
114 PROCEDURE update_external_appointment (
115 p_object_version_number IN OUT NOCOPY NUMBER ,
116 p_task_id IN NUMBER,
117 p_task_name IN VARCHAR2,
118 p_task_type_id IN NUMBER,
119 p_description IN VARCHAR2,
120 p_task_priority_id IN NUMBER,
121 p_planned_start_date IN DATE,
122 p_planned_end_date IN DATE,
123 p_timezone_id IN NUMBER,
124 p_private_flag IN VARCHAR2,
125 p_alarm_start IN NUMBER,
126 p_alarm_on IN VARCHAR2,
127 p_category_id IN NUMBER,
128 p_free_busy_type IN VARCHAR2,
129 p_change_mode IN VARCHAR2,
130 x_return_status OUT NOCOPY VARCHAR2
131
132 )
133 IS
134 l_msg_count NUMBER;
135 l_msg_data VARCHAR2(2000);
136 l_alarm_start NUMBER;
137 l_planned_start_date DATE;
138 l_remind_date DATE;
139 BEGIN
140 fnd_msg_pub.initialize;
141 get_alarm_start(p_task_id, l_alarm_start, l_planned_start_date);
142 jtf_tasks_pvt.update_task(
143 p_api_version => 1.0,
144 p_object_version_number => p_object_version_number,
145 p_task_id => p_task_id,
146 p_task_name => p_task_name,
147 p_task_type_id => p_task_type_id,
148 p_description => p_description,
149 p_task_priority_id => p_task_priority_id,
150 p_planned_start_date => p_planned_start_date,
151 p_planned_end_date => p_planned_end_date,
152 p_timezone_id => p_timezone_id,
153 p_private_flag => p_private_flag,
154 p_alarm_start => p_alarm_start,
155 p_alarm_on => p_alarm_on,
156 p_source_object_type_code => 'EXTERNAL APPOINTMENT',
157 x_return_status => x_return_status,
158 x_msg_count => l_msg_count,
159 x_msg_data => l_msg_data,
160 p_category_id => p_category_id ,
161 p_enable_workflow => 'N',
162 p_abort_workflow => 'N',
163 p_change_mode => p_change_mode,
164 p_free_busy_type => p_free_busy_type
165 );
166 IF x_return_status = fnd_api.g_ret_sts_success THEN
167 IF (l_alarm_start > 0 and (p_alarm_start = 0 OR p_alarm_start IS NULL)) OR
168 (NOT is_valid_alarm(p_alarm_start)) THEN
169 --kill the old workflow
170 jtf_cal_wf_pvt.updatereminders(
171 p_api_version => 1.0,
172 p_commit => 'T',
173 x_return_status => x_return_status,
174 x_msg_count => l_msg_count,
175 x_msg_data => l_msg_data,
176 p_taskid => p_task_id,
177 p_reminddate => NULL
178 );
179 -- update workflow if start date or remindme option changed
180 ELSIF p_alarm_start > 0 AND is_valid_alarm(p_alarm_start) AND
181 (p_alarm_start <> l_alarm_start
182 OR p_planned_start_date <> l_planned_start_date) THEN
183 jtf_cal_wf_pvt.updatereminders(
184 p_api_version => 1.0,
185 p_commit => 'T',
186 x_return_status => x_return_status,
187 x_msg_count => l_msg_count,
188 x_msg_data => l_msg_data,
189 p_taskid => p_task_id,
190 p_reminddate => p_planned_start_date - p_alarm_start/1440
191 );
192 END IF;
193 END IF;
194 END;
195
196 PROCEDURE delete_external_appointment (
197 p_object_version_number IN NUMBER,
198 p_task_id IN NUMBER,
199 p_delete_future_recurrences IN VARCHAR2,
200 x_return_status OUT NOCOPY VARCHAR2
201 )
202 IS
203 l_msg_count NUMBER;
204 l_msg_data VARCHAR2(2000);
205 BEGIN
206 fnd_msg_pub.initialize;
207 jtf_tasks_pvt.delete_task (
208 p_api_version => 1.0,
209 p_object_version_number => p_object_version_number,
210 p_task_id => p_task_id,
211 p_delete_future_recurrences => p_delete_future_recurrences,
212 x_return_status => x_return_status,
213 x_msg_count => l_msg_count,
214 x_msg_data => l_msg_data,
215 p_enable_workflow => 'N',
216 p_abort_workflow => 'N'
217 );
218 END;
219
220 END; -- End of package