DBA Data[Home] [Help]

PACKAGE BODY: APPS.HR_FR_CONTRACT_API

Source


1 Package Body hr_fr_contract_api as
2 /* $Header: hrctcfri.pkb 120.3 2006/07/19 06:36:11 nmuthusa noship $ */
3 --
4 -- Package Variables
5 --
6 g_package  varchar2(33) := '  hr_fr_contract_api.';
7 --
8 -- ----------------------------------------------------------------------------
9 -- |------------------------< create_fr_contract >----------------------|
10 -- ----------------------------------------------------------------------------
11 --
12 procedure create_fr_contract
13   (p_validate                       in  boolean
14   ,p_contract_id                    out nocopy number
15   ,p_effective_start_date           out nocopy date
16   ,p_effective_end_date             out nocopy date
17   ,p_object_version_number          out nocopy number
18   ,p_person_id                      in  number
19   ,p_reference                      in  varchar2
20   ,p_type                           in  varchar2
21   ,p_status                         in  varchar2
22   ,p_status_reason                  in  varchar2
23   ,p_doc_status                     in  varchar2
24   ,p_doc_status_change_date         in  date
25   ,p_description                    in  varchar2
26   ,p_duration                       in  number
27   ,p_duration_units                 in  varchar2
28   ,p_contractual_job_title          in  varchar2
29   ,p_parties                        in  varchar2
30   ,p_start_reason                   in  varchar2
31   ,p_end_reason                     in  varchar2
32   ,p_number_of_extensions           in  number
33   ,p_extension_reason               in  varchar2
34   ,p_extension_period               in  number
35   ,p_extension_period_units         in  varchar2
36   ,p_employee_type	            in  varchar2
37   ,p_contract_category              in  varchar2
38   ,p_proposed_end_date              in  varchar2
39   ,p_end_event		            in  varchar2
40   ,p_person_replaced                in  varchar2
41   ,p_probation_period               in  varchar2
42   ,p_probation_period_units         in  varchar2
43   ,p_probation_end_date             in  varchar2
44   ,p_smic_adjusted_duration_days    in  number
45   ,p_fixed_working_time		    in  varchar2
46   ,p_amount			    in	number
47   ,p_units			    in  varchar2
48   ,p_frequency			    in  varchar2
49   ,p_attribute_category             in  varchar2
50   ,p_attribute1                     in  varchar2
51   ,p_attribute2                     in  varchar2
52   ,p_attribute3                     in  varchar2
53   ,p_attribute4                     in  varchar2
54   ,p_attribute5                     in  varchar2
55   ,p_attribute6                     in  varchar2
56   ,p_attribute7                     in  varchar2
57   ,p_attribute8                     in  varchar2
58   ,p_attribute9                     in  varchar2
59   ,p_attribute10                    in  varchar2
60   ,p_attribute11                    in  varchar2
61   ,p_attribute12                    in  varchar2
62   ,p_attribute13                    in  varchar2
63   ,p_attribute14                    in  varchar2
64   ,p_attribute15                    in  varchar2
65   ,p_attribute16                    in  varchar2
66   ,p_attribute17                    in  varchar2
67   ,p_attribute18                    in  varchar2
68   ,p_attribute19                    in  varchar2
69   ,p_attribute20                    in  varchar2
70   ,p_effective_date                 in  date
71   ) is
72 
73   --
74   -- Declare cursors and local variables
75   --
76   l_business_group_id per_contracts_f.business_group_id%TYPE;
77   l_proc                 varchar2(72) := g_package||'create_fr_contract';
78   l_legislation_code     varchar2(2);
79   l_amount		 varchar2(30);
80   --
81   cursor csr_get_business_group_id is
82     select per.business_group_id
83     from per_all_people_f per
84     where per.person_id = p_person_id
85     and   p_effective_date between per.effective_start_date
86                                and per.effective_end_date;
87   --
88   cursor csr_bg is
89     select legislation_code
90     from per_business_groups pbg
91     where pbg.business_group_id = l_business_group_id;
92   --
93 begin
94 
95   hr_utility.set_location('Entering:'|| l_proc, 10);
96   --
97   -- Issue a savepoint if operating in validation only mode
98   --
99   savepoint create_fr_contract;
100   --
101   hr_utility.set_location(l_proc, 20);
102   --
103   -- Process Logic
104   --
105   -- Get person details.
106   --
107   open  csr_get_business_group_id;
108   fetch csr_get_business_group_id
109    into l_business_group_id;
110   --
111   if csr_get_business_group_id%NOTFOUND then
112     --
113     close csr_get_business_group_id;
114     --
115     hr_utility.set_location(l_proc, 30);
116     --
117     hr_utility.set_message(801,'HR_7432_ASG_INVALID_PERSON');
118     hr_utility.raise_error;
119   end if;
120   --
121   close csr_get_business_group_id;
122   --
123   hr_utility.set_location(l_proc, 40);
124   --
125   -- Check that the specified business group is valid.
126   --
127   open csr_bg;
128   fetch csr_bg
129   into l_legislation_code;
130   if csr_bg%notfound then
131     close csr_bg;
132     hr_utility.set_message(801, 'HR_7208_API_BUS_GRP_INVALID');
133     hr_utility.raise_error;
134   end if;
135   close csr_bg;
136   hr_utility.set_location(l_proc, 50);
137   --
138   -- Check that the legislation of the specified business group is 'FR'.
139   --
140   if l_legislation_code <> 'FR' then
141     hr_utility.set_message(801, 'HR_7961_PER_BUS_GRP_INVALID');
142     hr_utility.set_message_token('LEG_CODE','FR');
143     hr_utility.raise_error;
144   end if;
145   hr_utility.set_location(l_proc, 60);
146   --
147   -- Number to canonical conversion
148   --
149   l_amount := fnd_number.number_to_canonical(p_amount);
150   --
151   -- Call the contract business process
152   --
153   hr_contract_api.create_contract
154      (
155      p_validate			     => p_validate
156     ,p_contract_id                   => p_contract_id
157     ,p_effective_start_date          => p_effective_start_date
158     ,p_effective_end_date            => p_effective_end_date
159     ,p_object_version_number         => p_object_version_number
160     ,p_person_id                     => p_person_id
161     ,p_reference                     => p_reference
162     ,p_type                          => p_type
163     ,p_status                        => p_status
164     ,p_status_reason                 => p_status_reason
165     ,p_doc_status                    => p_doc_status
166     ,p_doc_status_change_date        => p_doc_status_change_date
167     ,p_description                   => p_description
168     ,p_duration                      => p_duration
169     ,p_duration_units                => p_duration_units
170     ,p_contractual_job_title         => p_contractual_job_title
171     ,p_parties                       => p_parties
172     ,p_start_reason                  => p_start_reason
173     ,p_end_reason                    => p_end_reason
174     ,p_number_of_extensions          => p_number_of_extensions
175     ,p_extension_reason              => p_extension_reason
176     ,p_extension_period              => p_extension_period
177     ,p_extension_period_units        => p_extension_period_units
178     ,p_ctr_information_category      => 'FR'
179     ,p_ctr_information1	             => p_employee_type
180     ,p_ctr_information2              => p_contract_category
181     ,p_ctr_information3              => p_proposed_end_date
182     ,p_ctr_information4		     => p_end_event
183     ,p_ctr_information5              => p_person_replaced
184     ,p_ctr_information6              => p_probation_period
185     ,p_ctr_information7              => p_probation_period_units
186     ,p_ctr_information8              => p_probation_end_date
187     ,p_ctr_information9              => p_smic_adjusted_duration_days
188     ,p_ctr_information10             => p_fixed_working_time
189     ,p_ctr_information11             => l_amount
190     ,p_ctr_information12             => p_units
191     ,p_ctr_information13             => p_frequency
192     ,p_attribute_category            => p_attribute_category
193     ,p_attribute1                    => p_attribute1
194     ,p_attribute2                    => p_attribute2
195     ,p_attribute3                    => p_attribute3
196     ,p_attribute4                    => p_attribute4
197     ,p_attribute5                    => p_attribute5
198     ,p_attribute6                    => p_attribute6
199     ,p_attribute7                    => p_attribute7
200     ,p_attribute8                    => p_attribute8
201     ,p_attribute9                    => p_attribute9
202     ,p_attribute10                   => p_attribute10
203     ,p_attribute11                   => p_attribute11
204     ,p_attribute12                   => p_attribute12
205     ,p_attribute13                   => p_attribute13
206     ,p_attribute14                   => p_attribute14
207     ,p_attribute15                   => p_attribute15
208     ,p_attribute16                   => p_attribute16
209     ,p_attribute17                   => p_attribute17
210     ,p_attribute18                   => p_attribute18
211     ,p_attribute19                   => p_attribute19
212     ,p_attribute20                   => p_attribute20
213     ,p_effective_date                => p_effective_date
214     );
215   --
216 hr_utility.set_location(' Leaving:'||l_proc, 70);
217 end create_fr_contract;
218 --
219 -- ----------------------------------------------------------------------------
220 -- |------------------------< update_fr_contract >----------------------|
221 -- ----------------------------------------------------------------------------
222 --
223 procedure update_fr_contract
224   (p_validate                       in  boolean
225   ,p_contract_id                    in  number
226   ,p_effective_start_date           out nocopy date
227   ,p_effective_end_date             out nocopy date
228   ,p_object_version_number          in out nocopy number
229   ,p_person_id                      in  number
230   ,p_reference                      in  varchar2
231   ,p_type                           in  varchar2
232   ,p_status                         in  varchar2
233   ,p_status_reason                  in  varchar2
234   ,p_doc_status                     in  varchar2
235   ,p_doc_status_change_date         in  date
236   ,p_description                    in  varchar2
237   ,p_duration                       in  number
238   ,p_duration_units                 in  varchar2
239   ,p_contractual_job_title          in  varchar2
240   ,p_parties                        in  varchar2
241   ,p_start_reason                   in  varchar2
242   ,p_end_reason                     in  varchar2
243   ,p_number_of_extensions           in  number
244   ,p_extension_reason               in  varchar2
245   ,p_extension_period               in  number
246   ,p_extension_period_units         in  varchar2
247   ,p_employee_type	            in  varchar2
248   ,p_contract_category              in  varchar2
249   ,p_proposed_end_date              in  varchar2
250   ,p_end_event		            in  varchar2
251   ,p_person_replaced                in  varchar2
252   ,p_probation_period               in  varchar2
253   ,p_probation_period_units         in  varchar2
254   ,p_probation_end_date             in  varchar2
255   ,p_smic_adjusted_duration_days    in  number
256   ,p_fixed_working_time		    in  varchar2
257   ,p_amount			    in	number
258   ,p_units			    in  varchar2
259   ,p_frequency			    in  varchar2
260   ,p_attribute_category             in  varchar2
261   ,p_attribute1                     in  varchar2
262   ,p_attribute2                     in  varchar2
263   ,p_attribute3                     in  varchar2
264   ,p_attribute4                     in  varchar2
265   ,p_attribute5                     in  varchar2
266   ,p_attribute6                     in  varchar2
267   ,p_attribute7                     in  varchar2
268   ,p_attribute8                     in  varchar2
269   ,p_attribute9                     in  varchar2
270   ,p_attribute10                    in  varchar2
271   ,p_attribute11                    in  varchar2
272   ,p_attribute12                    in  varchar2
273   ,p_attribute13                    in  varchar2
274   ,p_attribute14                    in  varchar2
275   ,p_attribute15                    in  varchar2
276   ,p_attribute16                    in  varchar2
277   ,p_attribute17                    in  varchar2
278   ,p_attribute18                    in  varchar2
279   ,p_attribute19                    in  varchar2
280   ,p_attribute20                    in  varchar2
281   ,p_effective_date                 in  date
282   ,p_datetrack_mode                 in  varchar2
283   ) is
284 
285   --
286   -- Declare cursors and local variables
287   --
288   l_business_group_id per_contracts_f.business_group_id%TYPE;
289   l_proc                 varchar2(72) := g_package||'create_fr_contract';
290   l_legislation_code     varchar2(2);
291   l_amount		 varchar2(30);
292   --
293   cursor csr_get_business_group_id is
294     select per.business_group_id
295     from per_all_people_f per
296     where per.person_id = p_person_id
297     and   p_effective_date between per.effective_start_date
298                                and per.effective_end_date;
299   --
300   cursor csr_bg is
301     select legislation_code
302     from per_business_groups pbg
303     where pbg.business_group_id = l_business_group_id;
304   --
305 begin
306 
307   hr_utility.set_location('Entering:'|| l_proc, 10);
308   --
309   -- Issue a savepoint if operating in validation only mode
310   --
311   savepoint update_fr_contract;
312   --
313   hr_utility.set_location(l_proc, 20);
314   --
315   -- Process Logic
316   --
317   -- Get person details.
318   --
319   open  csr_get_business_group_id;
320   fetch csr_get_business_group_id
321    into l_business_group_id;
322   --
323   if csr_get_business_group_id%NOTFOUND then
324     --
325     close csr_get_business_group_id;
326     --
327     hr_utility.set_location(l_proc, 30);
328     --
329     hr_utility.set_message(801,'HR_7432_ASG_INVALID_PERSON');
330     hr_utility.raise_error;
331   end if;
332   --
333   close csr_get_business_group_id;
334   --
335   hr_utility.set_location(l_proc, 40);
336   --
337   -- Check that the specified business group is valid.
338   --
339   open csr_bg;
340   fetch csr_bg
341   into l_legislation_code;
342   if csr_bg%notfound then
343     close csr_bg;
344     hr_utility.set_message(801, 'HR_7208_API_BUS_GRP_INVALID');
345     hr_utility.raise_error;
346   end if;
347   close csr_bg;
348   hr_utility.set_location(l_proc, 50);
349   --
350   -- Check that the legislation of the specified business group is 'FR'.
351   --
352   if l_legislation_code  <>  'FR' then
353     hr_utility.set_message(801, 'HR_7961_PER_BUS_GRP_INVALID');
354     hr_utility.set_message_token('LEG_CODE','FR');
355     hr_utility.raise_error;
356   end if;
357   hr_utility.set_location(l_proc, 60);
358   --
359   -- Check that valid value for l_amount.
360   --
361   if p_amount = hr_api.g_number then
362     l_amount := hr_api.g_varchar2;
363   else
364     l_amount := fnd_number.number_to_canonical(p_amount);
365   end if;
366   --
367   -- Call the contract business process
368   --
369   hr_contract_api.update_contract
370      (
371      p_validate			     => p_validate
372     ,p_contract_id                   => p_contract_id
373     ,p_effective_start_date          => p_effective_start_date
374     ,p_effective_end_date            => p_effective_end_date
375     ,p_object_version_number         => p_object_version_number
376     ,p_person_id                     => p_person_id
377     ,p_reference                     => p_reference
378     ,p_type                          => p_type
379     ,p_status                        => p_status
380     ,p_status_reason                 => p_status_reason
381     ,p_doc_status                    => p_doc_status
382     ,p_doc_status_change_date        => p_doc_status_change_date
383     ,p_description                   => p_description
384     ,p_duration                      => p_duration
385     ,p_duration_units                => p_duration_units
386     ,p_contractual_job_title         => p_contractual_job_title
387     ,p_parties                       => p_parties
388     ,p_start_reason                  => p_start_reason
389     ,p_end_reason                    => p_end_reason
390     ,p_number_of_extensions          => p_number_of_extensions
391     ,p_extension_reason              => p_extension_reason
392     ,p_extension_period              => p_extension_period
393     ,p_extension_period_units        => p_extension_period_units
394     ,p_ctr_information_category      => 'FR'
395     ,p_ctr_information1	             => p_employee_type
396     ,p_ctr_information2              => p_contract_category
397     ,p_ctr_information3              => p_proposed_end_date
398     ,p_ctr_information4		     => p_end_event
399     ,p_ctr_information5              => p_person_replaced
400     ,p_ctr_information6              => p_probation_period
401     ,p_ctr_information7              => p_probation_period_units
402     ,p_ctr_information8              => p_probation_end_date
403     ,p_ctr_information9              => p_smic_adjusted_duration_days
404     ,p_ctr_information10             => p_fixed_working_time
405     ,p_ctr_information11             => l_amount
406     ,p_ctr_information12             => p_units
407     ,p_ctr_information13             => p_frequency
408     ,p_attribute_category            => p_attribute_category
409     ,p_attribute1                    => p_attribute1
410     ,p_attribute2                    => p_attribute2
411     ,p_attribute3                    => p_attribute3
412     ,p_attribute4                    => p_attribute4
413     ,p_attribute5                    => p_attribute5
414     ,p_attribute6                    => p_attribute6
415     ,p_attribute7                    => p_attribute7
416     ,p_attribute8                    => p_attribute8
417     ,p_attribute9                    => p_attribute9
418     ,p_attribute10                   => p_attribute10
419     ,p_attribute11                   => p_attribute11
420     ,p_attribute12                   => p_attribute12
421     ,p_attribute13                   => p_attribute13
422     ,p_attribute14                   => p_attribute14
423     ,p_attribute15                   => p_attribute15
424     ,p_attribute16                   => p_attribute16
425     ,p_attribute17                   => p_attribute17
426     ,p_attribute18                   => p_attribute18
427     ,p_attribute19                   => p_attribute19
428     ,p_attribute20                   => p_attribute20
429     ,p_effective_date                => p_effective_date
430     ,p_datetrack_mode                => p_datetrack_mode
431     );
432   --
433 hr_utility.set_location(' Leaving:'||l_proc, 70);
434 --
435 end update_fr_contract;
436 end hr_fr_contract_api;