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