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