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