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