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