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