DBA Data[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  ;