[Home] [Help]
PACKAGE BODY: APPS.JTA_CAL_ATTENDEES_PVT
Source
1 PACKAGE BODY JTA_CAL_ATTENDEES_PVT AS
2 /* $Header: jtavcatb.pls 120.2 2005/10/05 09:29:45 cijang ship $ */
3 /*=======================================================================+
4 | Copyright (c) 2002 Oracle Corporation Redwood Shores, California, USA|
5 | All rights reserved. |
6 +=======================================================================+
7 | FILENAME |
8 | jtavcatb.pls |
9 | |
10 | DESCRIPTION |
11 | - This package is for Calendar Assignment. |
12 | |
13 | NOTES |
14 | |
15 | Date Developer Change |
16 | ------ --------------- -------------------------------------- |
17 | 12-Apr-2002 arpatel Created. |
18 | 23-May-2001 rdespoto default sendEmail preference to YES |
19 | 09-DEC-2003 cjang Added p_free_busy_type on create/update|
20 +======================================================================*/
21
22 PROCEDURE create_cal_assignment (
23 p_task_id IN NUMBER,
24 p_resources IN Resource_tbl,
25 p_add_option IN VARCHAR2,
26 p_invitor_res_id IN NUMBER,
27 x_return_status OUT NOCOPY VARCHAR2,
28 x_task_assignment_ids OUT NOCOPY Task_Assign_tbl
29 ) IS
30 l_return_status VARCHAR2(1);
31 l_msg_count NUMBER;
32 l_msg_data VARCHAR2(1000);
33 l_issue_invitation VARCHAR2(30);
34 l_Preferences JTF_CAL_PVT.Preference;
35 l_WeekTimePrefTbl JTF_CAL_PVT.WeekTimePrefTblType;
36 BEGIN
37 x_return_status := fnd_api.g_ret_sts_success;
38 fnd_msg_pub.initialize;
39
40 for i in p_resources.first .. p_resources.last
41 loop
42 --Rada, add this initialize to avoid NOCOPY no data found issue
43 x_task_assignment_ids(i).task_assignment_id := NULL;
44 --call to task assignments api
45 JTF_TASK_ASSIGNMENTS_PVT.create_task_assignment (
46 p_api_version => 1.0,
47 p_init_msg_list => 'F', --needed??
48 p_task_id => p_task_id,
49 p_resource_type_code => p_resources(i).resource_type,
50 p_resource_id => p_resources(i).resource_id,
51 p_assignment_status_id => 18,
52 p_assignee_role => 'ASSIGNEE',
53 p_show_on_calendar => 'Y',
54 p_enable_workflow => 'N',
55 p_abort_workflow => 'N',
56 p_add_option => p_add_option,
57 p_free_busy_type => 'TENTATIVE',
58 x_return_status => l_return_status,
59 x_msg_count => l_msg_count,
60 x_msg_data => l_msg_data,
61 x_task_assignment_id => x_task_assignment_ids(i).task_assignment_id
62 ) ;
63
64 IF l_return_status <> fnd_api.g_ret_sts_success THEN
65 x_return_status := l_return_status;
66 fnd_message.set_name ('JTA', 'JTA_CAL_CREATE_TASK_ASSIGN_ERROR');
67 fnd_message.set_token ('Task Assignment failed for:',
68 JTF_CAL_UTILITY_PVT.GetResourceName(p_resources(i).resource_id, p_resources(i).resource_type));
69 fnd_msg_pub.add;
70 END IF;
71
72 end loop;
73
74 JTF_CAL_UTILITY_PVT.GetPreferences
75 ( p_ResourceID => p_invitor_res_id
76 , p_ResourceType => 'RS_EMPLOYEE'
77 , x_Preferences => l_Preferences
78 , x_WeekTimePrefTbl => l_WeekTimePrefTbl
79 );
80
81 --call workflow with task_id
82 IF NVL(l_Preferences.SendEmail, 'YES') = 'YES' THEN
83 JTF_CAL_WF_PVT.StartInvite
84 ( p_api_version => 1.0
85 , p_commit => 'F' --FALSE?
86 , x_return_status => l_return_status
87 , x_msg_count => l_msg_count
88 , x_msg_data => l_msg_data
89 , p_INVITOR => p_invitor_res_id -- Resource ID of Invitor
90 , p_TaskID => p_task_id -- Task ID of the appointment
91 );
92
93 IF l_return_status <> fnd_api.g_ret_sts_success THEN
94 x_return_status := l_return_status;
95 fnd_message.set_name ('JTA', 'JTA_CAL_START_INVITE_ERROR');
96 fnd_message.set_token ('Workflow startInvite failed for :',
97 JTF_CAL_UTILITY_PVT.GetResourceName(p_invitor_res_id, 'RS_EMPLOYEE'));
98 fnd_msg_pub.add;
99 END IF;
100
101 END IF;
102
103 END;
104
105 PROCEDURE delete_cal_assignment
106 (p_object_version_number IN NUMBER,
107 p_task_assignments IN Task_Assign_tbl,
108 p_delete_option IN VARCHAR2,
109 p_no_of_attendies IN NUMBER,
110 x_return_status OUT NOCOPY VARCHAR2
111 )
112 IS
113 l_return_status VARCHAR2(1);
114 l_msg_count NUMBER;
115 l_msg_data VARCHAR2(1000);
116 BEGIN
117 x_return_status := fnd_api.g_ret_sts_success;
118 fnd_msg_pub.initialize;
119 for i in p_task_assignments.first .. p_task_assignments.last
120 loop
121
122 IF p_task_assignments(i).task_assignment_id IS NOT NULL THEN
123 JTF_TASK_ASSIGNMENTS_PVT.Delete_Task_Assignment
124 ( p_api_version => 1.0,
125 p_object_version_number => p_object_version_number,
126 p_task_assignment_id => p_task_assignments(i).task_assignment_id,
127 p_enable_workflow => 'N',
128 p_abort_workflow => 'N',
129 p_delete_option => p_delete_option,
130 x_return_status => l_return_status,
131 x_msg_count => l_msg_count,
132 x_msg_data => l_msg_data );
133 END IF;
134
135 IF l_return_status <> fnd_api.g_ret_sts_success THEN
136 x_return_status := l_return_status;
137 fnd_message.set_name ('JTA', 'JTA_CAL_DELETE_TASK_ASSIGN_ERROR');
138 fnd_message.set_token ('Delete Task Assignment failed for task_assignment_id:',
139 p_task_assignments(i).task_assignment_id);
140 fnd_msg_pub.add;
141 END IF;
142
143 end loop;
144 END;
145
146 PROCEDURE update_cal_assignment (
147 p_object_version_number IN OUT NOCOPY NUMBER,
148 p_task_assignment_id IN NUMBER,
149 p_resource_id IN NUMBER,
150 p_resource_type IN VARCHAR2,
151 p_assignment_status_id IN NUMBER,
152 x_return_status OUT NOCOPY VARCHAR2
153 ) IS
154 l_return_status VARCHAR2(1);
155 l_msg_count NUMBER;
156 l_msg_data VARCHAR2(1000);
157 l_free_busy_type VARCHAR2(4);
158 BEGIN
159 x_return_status := fnd_api.g_ret_sts_success;
160 fnd_msg_pub.initialize;
161
162 IF p_assignment_status_id = 3 THEN
163 -- If accepted
164 l_free_busy_type := 'BUSY';
165 ELSIF p_assignment_status_id = 4 THEN
166 -- If rejected
167 l_free_busy_type := 'FREE';
168 END IF;
169
170 JTF_TASK_ASSIGNMENTS_PVT.update_task_assignment (
171 p_api_version => 1.0,
172 p_object_version_number => p_object_version_number,
173 p_init_msg_list => 'T', --?
174 p_task_assignment_id => p_task_assignment_id,
175 p_resource_type_code => p_resource_type,
176 p_resource_id => p_resource_id,
177 p_schedule_flag => fnd_api.g_miss_char, --Y Or N??
178 p_actual_start_date => null, --?
179 p_actual_end_date => null, --?
180 p_assignment_status_id => p_assignment_status_id,
181 p_show_on_calendar => 'Y',
182 p_enable_workflow => 'N',
183 p_abort_workflow => 'N',
184 p_free_busy_type => l_free_busy_type,
185 x_return_status => l_return_status,
186 x_msg_count => l_msg_count,
187 x_msg_data => l_msg_data
188 ) ;
189
190 IF l_return_status = fnd_api.g_ret_sts_success THEN
191 jtf_cal_wf_pvt.processinvitation(p_api_version => 1.0
192 ,p_init_msg_list => 'T'
193 ,p_commit => 'F'
194 ,x_return_status => l_return_status
195 ,x_msg_count => l_msg_count
196 ,x_msg_data => l_msg_data
197 ,p_task_assignment_id => p_task_assignment_id
198 ,p_resource_type => p_resource_type
199 ,p_resource_id => p_resource_id
200 ,p_assignment_status_id => p_assignment_status_id);
201 END IF;
202 x_return_status := l_return_status;
203 END;
204
205 End ;