DBA Data[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 -- ----------------------------------------------------------------------
14 procedure create_no_contract
11 -- |------------------------< create_no_contract >----------------------|
12 -- ----------------------------------------------------------------------
13 --
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
141     ,p_type                          => p_type
138     ,p_object_version_number         => p_object_version_number
139     ,p_person_id                     => p_person_id
140     ,p_reference                     => p_reference
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;