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