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