DBA Data[Home] [Help]

PACKAGE BODY: APPS.OTA_EVENT_API

Source


1 PACKAGE BODY OTA_EVENT_API as
2 /* $Header: otevtapi.pkb 120.5.12020000.2 2012/06/29 12:44:48 rpahune ship $ */
3 --
4 -- Package Variables
5 --
6 g_package  varchar2(33) := '  OTA_EVENT_API.';
7 --
8 --
9 --
10    FUNCTION istimezonechanged (p_event_id NUMBER, p_timezone VARCHAR2)
11       RETURN BOOLEAN
12    IS
13       l_timezone   VARCHAR2 (30);
14 
15       CURSOR csr_evt_tz (p_event_id NUMBER)
16       IS
17          SELECT TIMEZONE
18            FROM ota_events
19           WHERE event_id = p_event_id
20            AND event_type IN ('SCHEDULED', 'SELFPACED');
21    BEGIN
22 
23       OPEN csr_evt_tz (p_event_id);
24 
25       FETCH csr_evt_tz
26        INTO l_timezone;
27       CLOSE csr_evt_tz;
28 
29       IF l_timezone IS NOT NULL AND p_timezone <> l_timezone
30       THEN
31          RETURN TRUE;
32       ELSE
33          RETURN FALSE;
34       END IF;
35    END;
36 
37 --
38 --
39 --
40    PROCEDURE proc_upd_evt_chat_sess (
41       p_event_id                IN              NUMBER,
42       p_timezone                IN              VARCHAR2,
43       p_effective_date          IN              DATE
44    )
45    IS
46 
47       CURSOR csr_chats (
48          p_event_id                IN   NUMBER
49       )
50       IS
51          SELECT cht.chat_id, cht.NAME, cht.description,chb.business_group_id,chb.object_version_number
52            FROM ota_chats_tl cht, ota_chat_obj_inclusions coi, ota_chats_b chb
53           WHERE coi.chat_id = cht.chat_id
54             AND coi.object_id = p_event_id
55             and cht.language = userenv('LANG')
56             AND chb.chat_id = coi.chat_id;
57 
58 
59       CURSOR csr_sess (
60          p_event_id                IN   NUMBER
61       )
62       IS
63          SELECT event_id,business_group_id,object_version_number
64            FROM ota_events
65           WHERE parent_event_id = p_event_id;
66    BEGIN
67 
68         for csr_chats_row in csr_chats(p_event_id)
69         loop
70 
71         ota_chat_api.update_chat
72                            (p_effective_date             => p_effective_date,
73                             p_name                       => csr_chats_row.name,
74                             p_description                => csr_chats_row.description,
75                             p_business_group_id          => csr_chats_row.business_group_id,
76                             p_timezone_code              => p_timezone,
77                             p_chat_id                    => csr_chats_row.chat_id,
78                             p_object_version_number      => csr_chats_row.object_version_number
79                            );
80 
81         end loop;
82 
83       for csr_sess_row in csr_sess(p_event_id)
84       loop
85 
86 
87       ota_event_api.update_class
88                            (p_event_id                  => csr_sess_row.event_id,
89                             p_effective_date            => p_effective_date,
90                             p_business_group_id         => csr_sess_row.business_group_id,
91                             p_object_version_number     => csr_sess_row.object_version_number,
92                             p_timezone                  => p_timezone
93                            );
94       end loop;
95 
96 
97 
98    END;
99 
100 
101 -- ----------------------------------------------------------------------------
102 -- |-----------------------------< CREATE_CLASS >-----------------------------|
103 -- ----------------------------------------------------------------------------
104 --
105 procedure create_class(
106   p_effective_date                in     date,
107   p_event_id                     out nocopy number,
108   p_vendor_id                    in number           default null,
109   p_activity_version_id          in number           default null,
110   p_business_group_id            in number,
111   p_organization_id              in number           default null,
112   p_event_type                   in varchar2,
113   p_object_version_number        out nocopy number,
114   p_title                        in varchar2,
115   p_budget_cost                  in number           default null,
116   p_actual_cost                  in number           default null,
117   p_budget_currency_code         in varchar2         default null,
118   p_centre                       in varchar2         default null,
119   p_comments                     in varchar2         default null,
120   p_course_end_date              in date             default null,
121   p_course_end_time              in varchar2         default null,
122   p_course_start_date            in date             default null,
123   p_course_start_time            in varchar2         default null,
124   p_duration                     in number           default null,
125   p_duration_units               in varchar2         default null,
126   p_enrolment_end_date           in date             default null,
127   p_enrolment_start_date         in date             default null,
128   p_language_id                  in number           default null,
129   p_user_status                  in varchar2         default null,
130   p_development_event_type       in varchar2         default null,
131   p_event_status                 in varchar2         default null,
132   p_price_basis                  in varchar2         default null,
133   p_currency_code                in varchar2         default null,
134   p_maximum_attendees            in number           default null,
135   p_maximum_internal_attendees   in number           default null,
136   p_minimum_attendees            in number           default null,
137   p_standard_price               in number           default null,
138   p_category_code                in varchar2         default null,
139   p_parent_event_id              in number           default null,
140   p_book_independent_flag        in varchar2         default null,
141   p_public_event_flag            in varchar2         default null,
142   p_secure_event_flag            in varchar2         default null,
143   p_evt_information_category     in varchar2         default null,
144   p_evt_information1             in varchar2         default null,
145   p_evt_information2             in varchar2         default null,
146   p_evt_information3             in varchar2         default null,
147   p_evt_information4             in varchar2         default null,
148   p_evt_information5             in varchar2         default null,
149   p_evt_information6             in varchar2         default null,
150   p_evt_information7             in varchar2         default null,
151   p_evt_information8             in varchar2         default null,
152   p_evt_information9             in varchar2         default null,
153   p_evt_information10            in varchar2         default null,
154   p_evt_information11            in varchar2         default null,
155   p_evt_information12            in varchar2         default null,
156   p_evt_information13            in varchar2         default null,
157   p_evt_information14            in varchar2         default null,
158   p_evt_information15            in varchar2         default null,
159   p_evt_information16            in varchar2         default null,
160   p_evt_information17            in varchar2         default null,
161   p_evt_information18            in varchar2         default null,
162   p_evt_information19            in varchar2         default null,
163   p_evt_information20            in varchar2         default null,
164   p_project_id                   in number           default null,
165   p_owner_id			         in number	         default null,
166   p_line_id				         in number	         default null,
167   p_org_id				         in number	         default null,
168   p_training_center_id           in number           default null,
169   p_location_id                  in number           default null,
170   p_offering_id         	     in number           default null,
171   p_timezone	                 in varchar2         default null,
172   p_parent_offering_id			 in number	         default null,
173   p_data_source	                 in varchar2         default null,
174   p_validate                     in boolean          default false,
175   p_event_availability           in varchar2         default null
176   ) is
177   --
178   -- Declare cursors and local variables
179   --
180   l_proc                    varchar2(72) := g_package||' Create Class';
181   l_event_id number;
182   l_object_version_number   number;
183   l_effective_date          date;
184 begin
185   hr_utility.set_location('Entering:'|| l_proc, 10);
186   --
187   -- Issue a savepoint
188   --
189   savepoint CREATE_CLASS;
190   --
191   -- Truncate the time portion from all IN date parameters
192   --
193   l_effective_date := trunc(p_effective_date);
194   --
195   -- Call Before Process User Hook
196   --
197 
198   begin
199     ota_event_bk1.create_class_b
200   (p_effective_date              => l_effective_date,
201   p_vendor_id                    => p_vendor_id,
202   p_activity_version_id          => p_activity_version_id,
203   p_business_group_id            => p_business_group_id,
204   p_organization_id              => p_organization_id,
205   p_event_type                   => p_event_type,
206   p_object_version_number        => l_object_version_number,
207   p_title                        => p_title,
208   p_budget_cost                  => p_budget_cost,
209   p_actual_cost                  => p_actual_cost,
210   p_budget_currency_code         => p_budget_currency_code,
211   p_centre                       => p_centre,
212   p_comments                     => p_comments,
213   p_course_end_date              => p_course_end_date,
214   p_course_end_time              => p_course_end_time,
215   p_course_start_date            => p_course_start_date,
216   p_course_start_time            => p_course_start_time,
217   p_duration                     => p_duration,
218   p_duration_units               => p_duration_units,
219   p_enrolment_end_date           => p_enrolment_end_date,
220   p_enrolment_start_date         => p_enrolment_start_date,
221   p_language_id                  => p_language_id,
222   p_user_status                  => p_user_status,
223   p_development_event_type       => p_development_event_type,
224   p_event_status                 => p_event_status,
225   p_price_basis                  => p_price_basis,
226   p_currency_code                => p_currency_code,
227   p_maximum_attendees            => p_maximum_attendees,
228   p_maximum_internal_attendees   => p_maximum_internal_attendees,
229   p_minimum_attendees            => p_minimum_attendees,
230   p_standard_price               => p_standard_price,
231   p_category_code                => p_category_code,
232   p_parent_event_id              => p_parent_event_id,
233   p_book_independent_flag        => p_book_independent_flag,
234   p_public_event_flag            => p_public_event_flag,
235   p_secure_event_flag            => p_secure_event_flag,
236   p_evt_information_category     => p_evt_information_category,
237   p_evt_information1             => p_evt_information1,
238   p_evt_information2             => p_evt_information2,
239   p_evt_information3             => p_evt_information3,
240   p_evt_information4             => p_evt_information4,
241   p_evt_information5             => p_evt_information5,
242   p_evt_information6             => p_evt_information6,
243   p_evt_information7             => p_evt_information7,
244   p_evt_information8             => p_evt_information8,
245   p_evt_information9             => p_evt_information9,
246   p_evt_information10            => p_evt_information10,
247   p_evt_information11            => p_evt_information11,
248   p_evt_information12            => p_evt_information12,
249   p_evt_information13            => p_evt_information13,
250   p_evt_information14            => p_evt_information14,
251   p_evt_information15            => p_evt_information15,
252   p_evt_information16            => p_evt_information16,
253   p_evt_information17            => p_evt_information17,
254   p_evt_information18            => p_evt_information18,
255   p_evt_information19            => p_evt_information19,
256   p_evt_information20            => p_evt_information20,
257   p_project_id                   => p_project_id,
258   p_owner_id			         => p_owner_id,
259   p_line_id				         => p_line_id,
260   p_org_id				         => p_org_id,
261   p_training_center_id           => p_training_center_id,
262   p_location_id 			     => p_location_id,
263   p_offering_id			         => p_offering_id,
264   p_timezone			         => p_timezone,
265   p_parent_offering_id			 => p_parent_offering_id,
266   p_data_source			         => p_data_source,
267   p_event_availability           => p_event_availability);
268 
269   exception
270     when hr_api.cannot_find_prog_unit then
271       hr_api.cannot_find_prog_unit_error
272         (p_module_name => 'CREATE_CLASS'
273         ,p_hook_type   => 'BP'
274         );
275   end;
276   --
277 
278   -- Validation in addition to Row Handlers
279   --
280   --
281   -- Process Logic
282   --
283   ota_evt_ins.ins(
284   p_vendor_id                    => p_vendor_id,
285   p_activity_version_id          => p_activity_version_id,
286   p_business_group_id            => p_business_group_id,
287   p_organization_id              => p_organization_id,
288   p_event_type                   => p_event_type,
289   p_title                        => p_title,
290   p_budget_cost                  => p_budget_cost,
291   p_actual_cost                  => p_actual_cost,
292   p_budget_currency_code         => p_budget_currency_code,
293   p_centre                       => p_centre,
294   p_comments                     => p_comments,
295   p_course_end_date              => p_course_end_date,
296   p_course_end_time              => p_course_end_time,
297   p_course_start_date            => p_course_start_date,
298   p_course_start_time            => p_course_start_time,
299   p_duration                     => p_duration,
300   p_duration_units               => p_duration_units,
301   p_enrolment_end_date           => p_enrolment_end_date,
302   p_enrolment_start_date         => p_enrolment_start_date,
303   p_language_id                  => p_language_id,
304   p_user_status                  => p_user_status,
305   p_development_event_type       => p_development_event_type,
306   p_event_status                 => p_event_status,
307   p_price_basis                  => p_price_basis,
308   p_currency_code                => p_currency_code,
309   p_maximum_attendees            => p_maximum_attendees,
310   p_maximum_internal_attendees   => p_maximum_internal_attendees,
311   p_minimum_attendees            => p_minimum_attendees,
312   p_standard_price               => p_standard_price,
313   p_category_code                => p_category_code,
314   p_parent_event_id              => p_parent_event_id,
315   p_book_independent_flag        => p_book_independent_flag,
316   p_public_event_flag            => p_public_event_flag,
317   p_secure_event_flag            => p_secure_event_flag,
318   p_evt_information_category     => p_evt_information_category,
319   p_evt_information1             => p_evt_information1,
320   p_evt_information2             => p_evt_information2,
321   p_evt_information3             => p_evt_information3,
322   p_evt_information4             => p_evt_information4,
323   p_evt_information5             => p_evt_information5,
324   p_evt_information6             => p_evt_information6,
325   p_evt_information7             => p_evt_information7,
326   p_evt_information8             => p_evt_information8,
327   p_evt_information9             => p_evt_information9,
328   p_evt_information10            => p_evt_information10,
329   p_evt_information11            => p_evt_information11,
330   p_evt_information12            => p_evt_information12,
331   p_evt_information13            => p_evt_information13,
332   p_evt_information14            => p_evt_information14,
333   p_evt_information15            => p_evt_information15,
334   p_evt_information16            => p_evt_information16,
335   p_evt_information17            => p_evt_information17,
336   p_evt_information18            => p_evt_information18,
337   p_evt_information19            => p_evt_information19,
338   p_evt_information20            => p_evt_information20,
339   p_project_id                   => p_project_id,
340   p_owner_id			         => p_owner_id,
341   p_line_id	                     => p_line_id,
342   p_org_id				         => p_org_id,
343   p_training_center_id           => p_training_center_id,
344   p_location_id                  => p_location_id,
345   p_offering_id         	     => p_offering_id,
346   p_timezone	                 => p_timezone,
347   p_parent_offering_id           => p_parent_offering_id,
348   p_data_source                  => p_data_source,
349   p_validate                     => p_validate,
350   p_event_id                     => l_event_id,
351   p_object_version_number        => l_object_version_number,
352   p_event_availability           => p_event_availability
353   );
354     -- Set all output arguments
355   --
356   p_event_id                     := l_event_id;
357   p_object_version_number        := l_object_version_number;
358 
359 -- Modified for the Bug 7238412
360   if not p_validate then
361    ota_ent_ins.ins_tl(
362    p_effective_date	             => p_effective_date,
363    p_language_code	             => USERENV('LANG'),
364    p_event_id                     => p_event_id,
365    p_title                        => p_title
366    );
367   end if;
368 --
369     --Adding evaluation at class level from the default
370     --class evaluation at the course level.
371     add_evaluation(p_event_id,p_activity_version_id);
372 
373   --
374   -- Call After Process User Hook
375   --
376   begin
377   ota_event_bk1.create_class_a
378  (p_effective_date               => l_effective_date,
379   p_event_id                     => l_event_id,
380   p_vendor_id                    => p_vendor_id,
381   p_activity_version_id          => p_activity_version_id,
382   p_business_group_id            => p_business_group_id,
383   p_organization_id              => p_organization_id,
384   p_event_type                   => p_event_type,
385   p_object_version_number        => l_object_version_number,
386   p_title                        => p_title,
387   p_budget_cost                  => p_budget_cost,
388   p_actual_cost                  => p_actual_cost,
389   p_budget_currency_code         => p_budget_currency_code,
390   p_centre                       => p_centre,
391   p_comments                     => p_comments,
392   p_course_end_date              => p_course_end_date,
393   p_course_end_time              => p_course_end_time,
394   p_course_start_date            => p_course_start_date,
395   p_course_start_time            => p_course_start_time,
396   p_duration                     => p_duration,
397   p_duration_units               => p_duration_units,
398   p_enrolment_end_date           => p_enrolment_end_date,
399   p_enrolment_start_date         => p_enrolment_start_date,
400   p_language_id                  => p_language_id,
401   p_user_status                  => p_user_status,
402   p_development_event_type       => p_development_event_type,
403   p_event_status                 => p_event_status,
404   p_price_basis                  => p_price_basis,
405   p_currency_code                => p_currency_code,
406   p_maximum_attendees            => p_maximum_attendees,
407   p_maximum_internal_attendees   => p_maximum_internal_attendees,
408   p_minimum_attendees            => p_minimum_attendees,
409   p_standard_price               => p_standard_price,
410   p_category_code                => p_category_code,
411   p_parent_event_id              => p_parent_event_id,
412   p_book_independent_flag        => p_book_independent_flag,
413   p_public_event_flag            => p_public_event_flag,
414   p_secure_event_flag            => p_secure_event_flag,
415   p_evt_information_category     => p_evt_information_category,
416   p_evt_information1             => p_evt_information1,
417   p_evt_information2             => p_evt_information2,
418   p_evt_information3             => p_evt_information3,
419   p_evt_information4             => p_evt_information4,
420   p_evt_information5             => p_evt_information5,
421   p_evt_information6             => p_evt_information6,
422   p_evt_information7             => p_evt_information7,
423   p_evt_information8             => p_evt_information8,
424   p_evt_information9             => p_evt_information9,
425   p_evt_information10            => p_evt_information10,
426   p_evt_information11            => p_evt_information11,
427   p_evt_information12            => p_evt_information12,
428   p_evt_information13            => p_evt_information13,
429   p_evt_information14            => p_evt_information14,
430   p_evt_information15            => p_evt_information15,
431   p_evt_information16            => p_evt_information16,
432   p_evt_information17            => p_evt_information17,
433   p_evt_information18            => p_evt_information18,
434   p_evt_information19            => p_evt_information19,
435   p_evt_information20            => p_evt_information20,
436   p_project_id                   => p_project_id,
437   p_owner_id			         => p_owner_id,
438   p_line_id				         => p_line_id,
439   p_org_id				         => p_org_id,
440   p_training_center_id           => p_training_center_id,
441   p_location_id 			     => p_location_id,
442   p_offering_id			         => p_offering_id,
443   p_timezone			         => p_timezone,
444   p_parent_offering_id			 => p_parent_offering_id,
445   p_data_source			         => p_data_source,
446   p_event_availability           => p_event_availability);
447   exception
448     when hr_api.cannot_find_prog_unit then
449       hr_api.cannot_find_prog_unit_error
450         (p_module_name => 'CREATE_CLASS'
451         ,p_hook_type   => 'AP'
452         );
453   end;
454 
455   --
456   -- When in validation only mode raise the Validate_Enabled exception
457   --
458   if p_validate then
459     raise hr_api.validate_enabled;
460   end if;
461   --
462   -- Set all output arguments
463   --
464   p_event_id        := l_event_id;
465   p_object_version_number   := l_object_version_number;
466   --
467   hr_utility.set_location(' Leaving:'||l_proc, 70);
468 exception
469   when hr_api.validate_enabled then
470     --
471     -- As the Validate_Enabled exception has been raised
472     -- we must rollback to the savepoint
473     --
474     rollback to CREATE_CLASS;
475     --
476     -- Only set output warning arguments
477     -- (Any key or derived arguments must be set to null
478     -- when validation only mode is being used.)
479     --
480     p_event_id := null;
481     p_object_version_number   := null;
482     hr_utility.set_location(' Leaving:'||l_proc, 80);
483   when others then
484     --
485     -- A validation or unexpected error has occured
486     --
487     rollback to CREATE_CLASS;
488     p_event_id        := null;
489     p_object_version_number   := null;
490     hr_utility.set_location(' Leaving:'||l_proc, 90);
491     raise;
492 end create_class;
493 -- ----------------------------------------------------------------------------
494 -- |-------------------------< UPDATE_CLASS >---------------------------------|
495 -- ----------------------------------------------------------------------------
496 --
497 procedure update_class
498   (p_event_id                     in number,
499   p_effective_date               in date,
500   p_vendor_id                    in number           default hr_api.g_number,
501   p_activity_version_id          in number           default hr_api.g_number,
502   p_business_group_id            in number           default hr_api.g_number,
503   p_organization_id              in number           default hr_api.g_number,
504   p_event_type                   in varchar2         default hr_api.g_varchar2,
505   p_object_version_number        in out nocopy number,
506   p_title                        in varchar2         default hr_api.g_varchar2,
507   p_budget_cost                  in number           default hr_api.g_number,
508   p_actual_cost                  in number           default hr_api.g_number,
509   p_budget_currency_code         in varchar2         default hr_api.g_varchar2,
510   p_centre                       in varchar2         default hr_api.g_varchar2,
511   p_comments                     in varchar2         default hr_api.g_varchar2,
512   p_course_end_date              in date             default hr_api.g_date,
513   p_course_end_time              in varchar2         default hr_api.g_varchar2,
514   p_course_start_date            in date             default hr_api.g_date,
515   p_course_start_time            in varchar2         default hr_api.g_varchar2,
516   p_duration                     in number           default hr_api.g_number,
517   p_duration_units               in varchar2         default hr_api.g_varchar2,
518   p_enrolment_end_date           in date             default hr_api.g_date,
519   p_enrolment_start_date         in date             default hr_api.g_date,
520   p_language_id                  in number           default hr_api.g_number,
521   p_user_status                  in varchar2         default hr_api.g_varchar2,
522   p_development_event_type       in varchar2         default hr_api.g_varchar2,
523   p_event_status                 in varchar2         default hr_api.g_varchar2,
524   p_price_basis                  in varchar2         default hr_api.g_varchar2,
525   p_currency_code                in varchar2         default hr_api.g_varchar2,
526   p_maximum_attendees            in number           default hr_api.g_number,
527   p_maximum_internal_attendees   in number           default hr_api.g_number,
528   p_minimum_attendees            in number           default hr_api.g_number,
529   p_standard_price               in number           default hr_api.g_number,
530   p_category_code                in varchar2         default hr_api.g_varchar2,
531   p_parent_event_id              in number           default hr_api.g_number,
532   p_book_independent_flag        in varchar2         default hr_api.g_varchar2,
533   p_public_event_flag            in varchar2         default hr_api.g_varchar2,
534   p_secure_event_flag            in varchar2         default hr_api.g_varchar2,
535   p_evt_information_category     in varchar2         default hr_api.g_varchar2,
536   p_evt_information1             in varchar2         default hr_api.g_varchar2,
537   p_evt_information2             in varchar2         default hr_api.g_varchar2,
538   p_evt_information3             in varchar2         default hr_api.g_varchar2,
539   p_evt_information4             in varchar2         default hr_api.g_varchar2,
540   p_evt_information5             in varchar2         default hr_api.g_varchar2,
541   p_evt_information6             in varchar2         default hr_api.g_varchar2,
542   p_evt_information7             in varchar2         default hr_api.g_varchar2,
543   p_evt_information8             in varchar2         default hr_api.g_varchar2,
544   p_evt_information9             in varchar2         default hr_api.g_varchar2,
545   p_evt_information10            in varchar2         default hr_api.g_varchar2,
546   p_evt_information11            in varchar2         default hr_api.g_varchar2,
547   p_evt_information12            in varchar2         default hr_api.g_varchar2,
548   p_evt_information13            in varchar2         default hr_api.g_varchar2,
549   p_evt_information14            in varchar2         default hr_api.g_varchar2,
550   p_evt_information15            in varchar2         default hr_api.g_varchar2,
551   p_evt_information16            in varchar2         default hr_api.g_varchar2,
552   p_evt_information17            in varchar2         default hr_api.g_varchar2,
553   p_evt_information18            in varchar2         default hr_api.g_varchar2,
554   p_evt_information19            in varchar2         default hr_api.g_varchar2,
555   p_evt_information20            in varchar2         default hr_api.g_varchar2,
556   p_project_id                   in number           default hr_api.g_number,
557   p_owner_id                     in number           default hr_api.g_number,
558   p_line_id	                     in number           default hr_api.g_number,
559   p_org_id	                     in number           default hr_api.g_number,
560   p_training_center_id           in number           default hr_api.g_number,
561   p_location_id	               in number             default hr_api.g_number,
562   p_offering_id		         in number               default hr_api.g_number,
563   p_timezone	               in varchar2           default hr_api.g_varchar2,
564 -- Bug#2200078 Corrected default value for offering_id and timezone
565 --  p_offering_id		         in number           default null,
566 --  p_timezone	               in varchar2         default null,
567   p_parent_offering_id 	         in number	         default hr_api.g_number,
568   p_data_source                  in varchar2         default hr_api.g_varchar2,
569   p_validate                     in boolean          default false,
570   p_event_availability           in varchar2         default hr_api.g_varchar2
571   ) is
572   --
573   -- Declare cursors and local variables
574   --
575   l_proc                    varchar2(72) := g_package||' Update Class';
576   l_effective_date          date;
577   l_object_version_number   number := p_object_version_number;
578    l_timezonechanged BOOLEAN := false;
579 begin
580   hr_utility.set_location('Entering:'|| l_proc, 10);
581   --
582   -- Issue a savepoint
583   --
584   savepoint UPDATE_CLASS;
585   --
586   -- Truncate the time portion from all IN date parameters
587   --
588   IF p_timezone <> hr_api.g_varchar2 THEN
589         l_timezonechanged := istimezonechanged(p_event_id, p_timezone);
590       END IF;
591   --
592   l_effective_date := trunc(p_effective_date);
593   --
594   -- Call Before Process User Hook
595   --
596 
597   begin
598   ota_event_bk2.update_class_b
599  (p_effective_date               => l_effective_date,
600   p_event_id                     => p_event_id,
601   p_vendor_id                    => p_vendor_id,
602   p_activity_version_id          => p_activity_version_id,
603   p_business_group_id            => p_business_group_id,
604   p_organization_id              => p_organization_id,
605   p_event_type                   => p_event_type,
606   p_object_version_number        => l_object_version_number,
607   p_title                        => p_title,
608   p_budget_cost                  => p_budget_cost,
609   p_actual_cost                  => p_actual_cost,
610   p_budget_currency_code         => p_budget_currency_code,
611   p_centre                       => p_centre,
612   p_comments                     => p_comments,
613   p_course_end_date              => p_course_end_date,
614   p_course_end_time              => p_course_end_time,
615   p_course_start_date            => p_course_start_date,
616   p_course_start_time            => p_course_start_time,
617   p_duration                     => p_duration,
618   p_duration_units               => p_duration_units,
619   p_enrolment_end_date           => p_enrolment_end_date,
620   p_enrolment_start_date         => p_enrolment_start_date,
621   p_language_id                  => p_language_id,
622   p_user_status                  => p_user_status,
623   p_development_event_type       => p_development_event_type,
624   p_event_status                 => p_event_status,
625   p_price_basis                  => p_price_basis,
626   p_currency_code                => p_currency_code,
627   p_maximum_attendees            => p_maximum_attendees,
628   p_maximum_internal_attendees   => p_maximum_internal_attendees,
629   p_minimum_attendees            => p_minimum_attendees,
630   p_standard_price               => p_standard_price,
631   p_category_code                => p_category_code,
632   p_parent_event_id              => p_parent_event_id,
633   p_book_independent_flag        => p_book_independent_flag,
634   p_public_event_flag            => p_public_event_flag,
635   p_secure_event_flag            => p_secure_event_flag,
636   p_evt_information_category     => p_evt_information_category,
637   p_evt_information1             => p_evt_information1,
638   p_evt_information2             => p_evt_information2,
639   p_evt_information3             => p_evt_information3,
640   p_evt_information4             => p_evt_information4,
641   p_evt_information5             => p_evt_information5,
642   p_evt_information6             => p_evt_information6,
643   p_evt_information7             => p_evt_information7,
644   p_evt_information8             => p_evt_information8,
645   p_evt_information9             => p_evt_information9,
646   p_evt_information10            => p_evt_information10,
647   p_evt_information11            => p_evt_information11,
648   p_evt_information12            => p_evt_information12,
649   p_evt_information13            => p_evt_information13,
650   p_evt_information14            => p_evt_information14,
651   p_evt_information15            => p_evt_information15,
652   p_evt_information16            => p_evt_information16,
653   p_evt_information17            => p_evt_information17,
654   p_evt_information18            => p_evt_information18,
655   p_evt_information19            => p_evt_information19,
656   p_evt_information20            => p_evt_information20,
657   p_project_id                   => p_project_id,
658   p_owner_id			         => p_owner_id,
659   p_line_id				         => p_line_id,
660   p_org_id				         => p_org_id,
661   p_training_center_id           => p_training_center_id,
662   p_location_id 			     => p_location_id,
663   p_offering_id			         => p_offering_id,
664   p_timezone			         => p_timezone,
665   p_parent_offering_id			 => p_parent_offering_id,
666   p_data_source			         => p_data_source,
667   p_event_availability           => p_event_availability);
668 
669   exception
670     when hr_api.cannot_find_prog_unit then
671       hr_api.cannot_find_prog_unit_error
672         (p_module_name => 'UPDATE_CLASS'
673         ,p_hook_type   => 'BP'
674         );
675   end;
676   --
677 
678   -- Validation in addition to Row Handlers
679   --
680   --
681   -- Process Logic
682   --
683     ota_evt_upd.upd(
684   p_vendor_id                    => p_vendor_id,
685   p_activity_version_id          => p_activity_version_id,
686   p_business_group_id            => p_business_group_id,
687   p_organization_id              => p_organization_id,
688   p_event_type                   => p_event_type,
689   p_title                        => p_title,
690   p_budget_cost                  => p_budget_cost,
691   p_actual_cost                  => p_actual_cost,
692   p_budget_currency_code         => p_budget_currency_code,
693   p_centre                       => p_centre,
694   p_comments                     => p_comments,
695   p_course_end_date              => p_course_end_date,
696   p_course_end_time              => p_course_end_time,
697   p_course_start_date            => p_course_start_date,
698   p_course_start_time            => p_course_start_time,
699   p_duration                     => p_duration,
700   p_duration_units               => p_duration_units,
701   p_enrolment_end_date           => p_enrolment_end_date,
702   p_enrolment_start_date         => p_enrolment_start_date,
703   p_language_id                  => p_language_id,
704   p_user_status                  => p_user_status,
705   p_development_event_type       => p_development_event_type,
706   p_event_status                 => p_event_status,
707   p_price_basis                  => p_price_basis,
708   p_currency_code                => p_currency_code,
709   p_maximum_attendees            => p_maximum_attendees,
710   p_maximum_internal_attendees   => p_maximum_internal_attendees,
711   p_minimum_attendees            => p_minimum_attendees,
712   p_standard_price               => p_standard_price,
713   p_category_code                => p_category_code,
714   p_parent_event_id              => p_parent_event_id,
715   p_book_independent_flag        => p_book_independent_flag,
716   p_public_event_flag            => p_public_event_flag,
717   p_secure_event_flag            => p_secure_event_flag,
718   p_evt_information_category     => p_evt_information_category,
719   p_evt_information1             => p_evt_information1,
720   p_evt_information2             => p_evt_information2,
721   p_evt_information3             => p_evt_information3,
722   p_evt_information4             => p_evt_information4,
723   p_evt_information5             => p_evt_information5,
724   p_evt_information6             => p_evt_information6,
725   p_evt_information7             => p_evt_information7,
726   p_evt_information8             => p_evt_information8,
727   p_evt_information9             => p_evt_information9,
728   p_evt_information10            => p_evt_information10,
729   p_evt_information11            => p_evt_information11,
730   p_evt_information12            => p_evt_information12,
731   p_evt_information13            => p_evt_information13,
732   p_evt_information14            => p_evt_information14,
733   p_evt_information15            => p_evt_information15,
734   p_evt_information16            => p_evt_information16,
735   p_evt_information17            => p_evt_information17,
736   p_evt_information18            => p_evt_information18,
737   p_evt_information19            => p_evt_information19,
738   p_evt_information20            => p_evt_information20,
739   p_project_id                   => p_project_id,
740   p_owner_id			         => p_owner_id,
741   p_line_id	                     => p_line_id,
742   p_org_id				         => p_org_id,
743   p_training_center_id           => p_training_center_id,
744   p_location_id                  => p_location_id,
745   p_offering_id         	     => p_offering_id,
746   p_timezone	                 => p_timezone,
747   p_parent_offering_id           => p_parent_offering_id,
748   p_data_source                  => p_data_source,
749   p_validate                     => p_validate,
750   p_event_id                     => p_event_id,
751   p_object_version_number        => l_object_version_number,
752   p_event_availability           => p_event_availability
753   );
754 
755   ota_ent_upd.upd_tl(
756   p_effective_date	             => p_effective_date,
757   p_language_code	             => USERENV('LANG'),
758   p_event_id                     => p_event_id,
759   p_title                        => p_title
760   );
761 
762 
763 
764   --
765   -- Call After Process User Hook
766   --
767   begin
768   ota_event_bk2.update_class_a
769  (p_effective_date               => l_effective_date,
770   p_event_id                     => p_event_id,
771   p_vendor_id                    => p_vendor_id,
772   p_activity_version_id          => p_activity_version_id,
773   p_business_group_id            => p_business_group_id,
774   p_organization_id              => p_organization_id,
775   p_event_type                   => p_event_type,
776   p_object_version_number        => l_object_version_number,
777   p_title                        => p_title,
778   p_budget_cost                  => p_budget_cost,
779   p_actual_cost                  => p_actual_cost,
780   p_budget_currency_code         => p_budget_currency_code,
781   p_centre                       => p_centre,
782   p_comments                     => p_comments,
783   p_course_end_date              => p_course_end_date,
784   p_course_end_time              => p_course_end_time,
785   p_course_start_date            => p_course_start_date,
786   p_course_start_time            => p_course_start_time,
787   p_duration                     => p_duration,
788   p_duration_units               => p_duration_units,
789   p_enrolment_end_date           => p_enrolment_end_date,
790   p_enrolment_start_date         => p_enrolment_start_date,
791   p_language_id                  => p_language_id,
792   p_user_status                  => p_user_status,
793   p_development_event_type       => p_development_event_type,
794   p_event_status                 => p_event_status,
795   p_price_basis                  => p_price_basis,
796   p_currency_code                => p_currency_code,
797   p_maximum_attendees            => p_maximum_attendees,
798   p_maximum_internal_attendees   => p_maximum_internal_attendees,
799   p_minimum_attendees            => p_minimum_attendees,
800   p_standard_price               => p_standard_price,
801   p_category_code                => p_category_code,
802   p_parent_event_id              => p_parent_event_id,
803   p_book_independent_flag        => p_book_independent_flag,
804   p_public_event_flag            => p_public_event_flag,
805   p_secure_event_flag            => p_secure_event_flag,
806   p_evt_information_category     => p_evt_information_category,
807   p_evt_information1             => p_evt_information1,
808   p_evt_information2             => p_evt_information2,
809   p_evt_information3             => p_evt_information3,
810   p_evt_information4             => p_evt_information4,
811   p_evt_information5             => p_evt_information5,
812   p_evt_information6             => p_evt_information6,
813   p_evt_information7             => p_evt_information7,
814   p_evt_information8             => p_evt_information8,
815   p_evt_information9             => p_evt_information9,
816   p_evt_information10            => p_evt_information10,
817   p_evt_information11            => p_evt_information11,
818   p_evt_information12            => p_evt_information12,
819   p_evt_information13            => p_evt_information13,
820   p_evt_information14            => p_evt_information14,
821   p_evt_information15            => p_evt_information15,
822   p_evt_information16            => p_evt_information16,
823   p_evt_information17            => p_evt_information17,
824   p_evt_information18            => p_evt_information18,
825   p_evt_information19            => p_evt_information19,
826   p_evt_information20            => p_evt_information20,
827   p_project_id                   => p_project_id,
828   p_owner_id			         => p_owner_id,
829   p_line_id				         => p_line_id,
830   p_org_id				         => p_org_id,
831   p_training_center_id           => p_training_center_id,
832   p_location_id 			     => p_location_id,
833   p_offering_id			         => p_offering_id,
834   p_timezone			         => p_timezone,
835   p_parent_offering_id			 => p_parent_offering_id,
836   p_data_source			         => p_data_source,
837   p_event_availability           => p_event_availability);
838 
839   exception
840     when hr_api.cannot_find_prog_unit then
841       hr_api.cannot_find_prog_unit_error
842         (p_module_name => 'UPDATE_CLASS'
843         ,p_hook_type   => 'AP'
844         );
845   end;
846 
847   --
848 
849   IF l_timezonechanged
850       THEN
851          proc_upd_evt_chat_sess (p_event_id,
852                                  p_timezone,
853                                  p_effective_date
854                                 );
855       END IF;
856   --
857   -- When in validation only mode raise the Validate_Enabled exception
858   --
859   if p_validate then
860     raise hr_api.validate_enabled;
861   end if;
862   --
863   -- Set all output arguments
864   --
865   hr_utility.set_location(' Leaving:'||l_proc, 70);
866 exception
867   when hr_api.validate_enabled then
868     --
869     -- As the Validate_Enabled exception has been raised
870     -- we must rollback to the savepoint
871     --
872     rollback to UPDATE_CLASS;
873     --
874     -- Only set output warning arguments
875     -- (Any key or derived arguments must be set to null
876     -- when validation only mode is being used.)
877     --
878     p_object_version_number  := null;
879     hr_utility.set_location(' Leaving:'||l_proc, 80);
880   when others then
881     --
882     -- A validation or unexpected error has occured
883     --
884     rollback to UPDATE_CLASS;
885     p_object_version_number  := l_object_version_number;
886     hr_utility.set_location(' Leaving:'||l_proc, 90);
887     raise;
888 end update_class;
889 --
890 -- ----------------------------------------------------------------------------
891 -- |-------------------------< DELETE_CLASS >---------------------------------|
892 -- ----------------------------------------------------------------------------
893 --
894 procedure delete_class
895   (p_validate                      in     boolean  default false
896   ,p_event_id                   in     number
897   ,p_object_version_number         in     number
898   ) is
899   --
900   -- Declare cursors and local variables
901   --
902   l_proc                    varchar2(72) := g_package||' Delete Class';
903   l_object_version_id       number;
904   --
905   --
906 begin
907   hr_utility.set_location('Entering:'|| l_proc, 10);
908   --
909   -- Issue a savepoint
910   --
911   savepoint DELETE_CLASS;
912   --
913   -- Truncate the time portion from all IN date parameters
914   --
915   --
916 
917   -- Call Before Process User Hook
918   --
919   begin
920     ota_event_bk3.delete_class_b
921   (p_event_id                    => p_event_id,
922    p_object_version_number       => p_object_version_number
923   );
924   exception
925     when hr_api.cannot_find_prog_unit then
926       hr_api.cannot_find_prog_unit_error
927         (p_module_name => 'DELETE_CLASS'
928         ,p_hook_type   => 'BP'
929         );
930   end;
931   --
932 
933   -- Validation in addition to Row Handlers
934   --
935   --
936   -- Process Logic
937   --
938  --
939   ota_ent_del.del_tl
940   (p_event_id                => p_event_id
941   );
942   --
943 
944   ota_evt_del.del
945   (p_event_id                => p_event_id
946   ,p_object_version_number   => p_object_version_number
947   );
948   --
949 
950   -- Call After Process User Hook
951   --
952   begin
953   ota_event_bk3.delete_class_a
954   (p_event_id                    => p_event_id,
955    p_object_version_number       => p_object_version_number
956   );
957   exception
958     when hr_api.cannot_find_prog_unit then
959       hr_api.cannot_find_prog_unit_error
960         (p_module_name => 'DELETE_CLASS'
961         ,p_hook_type   => 'AP'
962         );
963   end;
964 
965   --
966   -- When in validation only mode raise the Validate_Enabled exception
967   --
968   if p_validate then
969     raise hr_api.validate_enabled;
970   end if;
971   --
972   -- Set all output arguments
973   --
974   --
975   hr_utility.set_location(' Leaving:'||l_proc, 170);
976 exception
977   when hr_api.validate_enabled then
978     --
979     -- As the Validate_Enabled exception has been raised
980     -- we must rollback to the savepoint
981     --
982     rollback to DELETE_CLASS;
983     --
984     -- Only set output warning arguments
985     -- (Any key or derived arguments must be set to null
986     -- when validation only mode is being used.)
987     --
988     hr_utility.set_location(' Leaving:'||l_proc, 180);
989   when others then
990     --
991     -- A validation or unexpected error has occured
992     --
993     rollback to DELETE_CLASS;
994     hr_utility.set_location(' Leaving:'||l_proc, 190);
995     raise;
996 end delete_class;
997 --
998 -- ----------------------------------------------------------------------------
999 -- |-----------------------------< add_evaluation >----------------------------|
1000 -- ----------------------------------------------------------------------------
1001 procedure add_evaluation(p_event_id in number,
1002                          p_activity_version_id in number
1003                          ) is
1004 
1005 l_eval_id ota_tests.test_id%type :=null;
1006 l_mand_flag ota_evaluations.eval_mandatory_flag%type;
1007 
1008 Cursor c_dflt_eval is
1009 select dflt_class_eval_id,eval_mandatory_flag
1010 into l_eval_id,l_mand_flag
1011 from ota_evaluations
1012 where object_id = p_activity_version_id
1013 and object_type = 'A';
1014 
1015 l_proc    varchar2(72) := g_package ||'add_evaluation';
1016 Begin
1017     hr_utility.set_location(' Entering:' || l_proc,10);
1018     open c_dflt_eval;
1019     fetch c_dflt_eval into l_eval_id, l_mand_flag;
1020     close c_dflt_eval;
1021     if l_eval_id is not null then
1022         insert into ota_evaluations (evaluation_id,
1023                                     eval_mandatory_flag,
1024                                     object_id,
1025                                     object_type,
1026                                     object_version_number) values
1027                                     (l_eval_id,
1028                                      l_mand_flag,
1029                                      p_event_id,
1030                                      'E',
1031                                      1);
1032     end if;
1033     hr_utility.set_location(' Exiting:' || l_proc,15);
1034 end add_evaluation;
1035 
1036 end OTA_EVENT_API;