DBA Data[Home] [Help]

PACKAGE BODY: APPS.HR_RATE_API

Source


1 PACKAGE BODY hr_rate_api AS
2 /* $Header: pypyrapi.pkb 120.3 2010/03/17 07:37:41 sidsaxen ship $ */
3 --
4 -- Package Variables
5 --
6 g_package  varchar2(33) := '  hr_rate_api.';
7 --
8 -- ----------------------------------------------------------------------------
9 -- |------------------------------< create_rate >-----------------------------|
10 -- ----------------------------------------------------------------------------
11 --
12 PROCEDURE create_rate
13   (p_validate                      IN            BOOLEAN   DEFAULT FALSE
14   ,p_effective_date                IN            DATE
15   ,p_business_group_id             IN            NUMBER
16   ,p_name                          IN            VARCHAR2
17   ,p_rate_type                     IN            VARCHAR2
18   ,p_rate_uom                      IN            VARCHAR2
19   ,p_parent_spine_id               IN            NUMBER   DEFAULT NULL
20   ,p_comments                      IN            VARCHAR2 DEFAULT NULL
21   ,p_rate_basis                    IN            VARCHAR2 DEFAULT NULL
22   ,p_asg_rate_type                 IN            VARCHAR2 DEFAULT NULL
23   ,p_attribute_category            IN            VARCHAR2 DEFAULT NULL
24   ,p_attribute1                    IN            VARCHAR2 DEFAULT NULL
25   ,p_attribute2                    IN            VARCHAR2 DEFAULT NULL
26   ,p_attribute3                    IN            VARCHAR2 DEFAULT NULL
27   ,p_attribute4                    IN            VARCHAR2 DEFAULT NULL
28   ,p_attribute5                    IN            VARCHAR2 DEFAULT NULL
29   ,p_attribute6                    IN            VARCHAR2 DEFAULT NULL
30   ,p_attribute7                    IN            VARCHAR2 DEFAULT NULL
31   ,p_attribute8                    IN            VARCHAR2 DEFAULT NULL
32   ,p_attribute9                    IN            VARCHAR2 DEFAULT NULL
33   ,p_attribute10                   IN            VARCHAR2 DEFAULT NULL
34   ,p_attribute11                   IN            VARCHAR2 DEFAULT NULL
35   ,p_attribute12                   IN            VARCHAR2 DEFAULT NULL
36   ,p_attribute13                   IN            VARCHAR2 DEFAULT NULL
37   ,p_attribute14                   IN            VARCHAR2 DEFAULT NULL
38   ,p_attribute15                   IN            VARCHAR2 DEFAULT NULL
39   ,p_attribute16                   IN            VARCHAR2 DEFAULT NULL
40   ,p_attribute17                   IN            VARCHAR2 DEFAULT NULL
41   ,p_attribute18                   IN            VARCHAR2 DEFAULT NULL
42   ,p_attribute19                   IN            VARCHAR2 DEFAULT NULL
43   ,p_attribute20                   IN            VARCHAR2 DEFAULT NULL
44   ,p_object_version_number            OUT NOCOPY NUMBER
45   ,p_rate_id                          OUT NOCOPY NUMBER) IS
46   --
47   -- Declare cursors and local variables
48   --
49   l_proc                  VARCHAR2(72) := g_package||'create_rate';
50   l_effective_date        DATE;
51   l_object_version_number NUMBER;
52   l_rate_id               pay_rates.rate_id%TYPE;
53 -- Bug 3795968 Starts Here
54   CURSOR csr_full_hr_installed IS
55   SELECT null
56   FROM   fnd_product_installations i
57   WHERE  i.status = 'I'
58   AND    i.application_id = 800;
59 --
60   l_dummy varchar2(1);
61 -- Bug 3795968 Ends Here
62   --
63 BEGIN
64   --
65   hr_utility.set_location('Entering:'|| l_proc, 10);
66   --
67   -- Issue a savepoint if operating in validation only mode
68   --
69   SAVEPOINT create_rate;
70   --
71   hr_utility.set_location(l_proc, 20);
72   --
73   l_effective_date := TRUNC(p_effective_date);
74   --
75   -- Process Logic
76   --
77   BEGIN
78     --
79     -- Start of API User Hook for the before hook of create_rate
80     --
81     hr_rate_api_bk1.create_rate_b
82      (p_effective_date                => l_effective_date
83      ,p_business_group_id             => p_business_group_id
84      ,p_name                          => p_name
85      ,p_rate_type                     => p_rate_type
86      ,p_rate_uom                      => p_rate_uom
87      ,p_parent_spine_id               => p_parent_spine_id
88      ,p_comments                      => p_comments
89      ,p_rate_basis                    => p_rate_basis
90      ,p_asg_rate_type                 => p_asg_rate_type
91      ,p_attribute_category            => p_attribute_category
92      ,p_attribute1                    => p_attribute1
93      ,p_attribute2                    => p_attribute2
94      ,p_attribute3                    => p_attribute3
95      ,p_attribute4                    => p_attribute4
96      ,p_attribute5                    => p_attribute5
97      ,p_attribute6                    => p_attribute6
98      ,p_attribute7                    => p_attribute7
99      ,p_attribute8                    => p_attribute8
100      ,p_attribute9                    => p_attribute9
101      ,p_attribute10                   => p_attribute11
102      ,p_attribute11                   => p_attribute12
103      ,p_attribute12                   => p_attribute13
104      ,p_attribute13                   => p_attribute14
105      ,p_attribute14                   => p_attribute15
106      ,p_attribute15                   => p_attribute16
107      ,p_attribute16                   => p_attribute17
108      ,p_attribute17                   => p_attribute18
109      ,p_attribute18                   => p_attribute19
110      ,p_attribute19                   => p_attribute19
111      ,p_attribute20                   => p_attribute20);
112     --
113   EXCEPTION
114     WHEN hr_api.cannot_find_prog_unit THEN
115       hr_api.cannot_find_prog_unit_error
116         (p_module_name => 'create_rate'
117         ,p_hook_type   => 'BP');
118     --
119     -- End of API User Hook for the before hook of create_rate
120     --
121   END;
122   --
123   hr_utility.set_location(l_proc, 30);
124   --
125   pay_pyr_ins.ins
126     (p_effective_date                 => l_effective_date
127     ,p_business_group_id              => p_business_group_id
128     ,p_name                           => p_name
129     ,p_rate_type                      => p_rate_type
130     ,p_rate_uom                       => p_rate_uom
131     ,p_parent_spine_id                => p_parent_spine_id
132     ,p_comments                       => p_comments
133     ,p_attribute_category             => p_attribute_category
134     ,p_attribute1                     => p_attribute1
135     ,p_attribute2                     => p_attribute2
136     ,p_attribute3                     => p_attribute3
137     ,p_attribute4                     => p_attribute4
138     ,p_attribute5                     => p_attribute5
139     ,p_attribute6                     => p_attribute6
140     ,p_attribute7                     => p_attribute7
141     ,p_attribute8                     => p_attribute8
142     ,p_attribute9                     => p_attribute9
143     ,p_attribute10                    => p_attribute10
144     ,p_attribute11                    => p_attribute11
145     ,p_attribute12                    => p_attribute12
146     ,p_attribute13                    => p_attribute13
147     ,p_attribute14                    => p_attribute14
148     ,p_attribute15                    => p_attribute15
149     ,p_attribute16                    => p_attribute16
150     ,p_attribute17                    => p_attribute17
151     ,p_attribute18                    => p_attribute18
152     ,p_attribute19                    => p_attribute19
153     ,p_attribute20                    => p_attribute20
154     ,p_rate_basis                     => p_rate_basis
155     ,p_asg_rate_type                  => p_asg_rate_type
156     ,p_rate_id                        => l_rate_id
157     ,p_object_version_number          => l_object_version_number);
158   --
159   hr_utility.set_location(l_proc, 40);
160   --
161   --
162   -- Start of fix 3273216
163   -- calling database package to insert database item
164 -- Bug 3795968 Starts Here
165   OPEN  csr_full_hr_installed;
166   FETCH csr_full_hr_installed INTO l_dummy;
167   IF csr_full_hr_installed%FOUND THEN
168      hrdyndbi.create_grade_spine_dict(p_rate_id => l_rate_id);
169   END IF;
170   CLOSE csr_full_hr_installed;
171 -- Bug 3795968 Ends Here
172   --
173   hr_utility.set_location(l_proc, 45);
174   --
175   -- End of 3273216
176   BEGIN
177     --
178     -- Start of API User Hook for the after hook of create_rate
179     --
180     hr_rate_api_bk1.create_rate_a
181      (p_effective_date                => l_effective_date
182 	 ,p_rate_id                       => l_rate_id
183 	 ,p_object_version_number         => l_object_version_number
184      ,p_business_group_id             => p_business_group_id
185      ,p_name                          => p_name
186      ,p_rate_type                     => p_rate_type
187      ,p_rate_uom                      => p_rate_uom
188      ,p_parent_spine_id               => p_parent_spine_id
189      ,p_comments                      => p_comments
190      ,p_rate_basis                    => p_rate_basis
191      ,p_asg_rate_type                 => p_asg_rate_type
192      ,p_attribute_category            => p_attribute_category
193      ,p_attribute1                    => p_attribute1
194      ,p_attribute2                    => p_attribute2
195      ,p_attribute3                    => p_attribute3
196      ,p_attribute4                    => p_attribute4
197      ,p_attribute5                    => p_attribute5
198      ,p_attribute6                    => p_attribute6
199      ,p_attribute7                    => p_attribute7
200      ,p_attribute8                    => p_attribute8
201      ,p_attribute9                    => p_attribute9
202      ,p_attribute10                   => p_attribute11
203      ,p_attribute11                   => p_attribute12
204      ,p_attribute12                   => p_attribute13
205      ,p_attribute13                   => p_attribute14
206      ,p_attribute14                   => p_attribute15
207      ,p_attribute15                   => p_attribute16
208      ,p_attribute16                   => p_attribute17
209      ,p_attribute17                   => p_attribute18
210      ,p_attribute18                   => p_attribute19
211      ,p_attribute19                   => p_attribute19
212      ,p_attribute20                   => p_attribute20);
213     --
214   EXCEPTION
215     WHEN hr_api.cannot_find_prog_unit THEN
216       hr_api.cannot_find_prog_unit_error
217         (p_module_name => 'create_rate'
218         ,p_hook_type   => 'AP');
219     --
220     -- End of API User Hook for the after hook of create_rate
221     --
222   END;
223   --
224   hr_utility.set_location(l_proc, 50);
225   --
226   -- When in validation only mode raise the Validate_Enabled exception
227   --
228   IF p_validate THEN
229     --
230     RAISE hr_api.validate_enabled;
231 	--
232   END IF;
233   --
234   -- Set all output arguments
235   --
236   p_object_version_number := l_object_version_number;
237   p_rate_id               := l_rate_id;
238   --
239   hr_utility.set_location(' Leaving:'||l_proc, 999);
240   --
241 EXCEPTION
242   --
243   WHEN hr_api.validate_enabled THEN
244     --
245     -- As the Validate_Enabled exception has been raised
246     -- we must rollback to the savepoint
247     --
248     ROLLBACK TO create_rate;
249     --
250     -- Only set output warning arguments
251     -- (Any key or derived arguments must be set to null
252     -- when validation only mode is being used.)
253     --
254     p_object_version_number  := NULL;
255     --
256     hr_utility.set_location(' Leaving:'||l_proc, 998);
257     --
258   WHEN others THEN
259     --
260     -- A validation or unexpected error has occured
261     --
262     ROLLBACK TO create_rate;
263     --
264     -- Bugfix 2692195
265     -- Reset all OUT/IN OUT parameters
266     --
267     p_object_version_number := null;
268     p_rate_id := null;
269     --
270     RAISE;
271     --
272 END create_rate;
273 
274 -- Start changes for bug 9328526
275 --
276 -- ----------------------------------------------------------------------------
277 -- |--------------------------------< update_rate >---------------------------|
278 -- ----------------------------------------------------------------------------
279 --
280 PROCEDURE update_rate
281   (p_validate                      IN     BOOLEAN   DEFAULT FALSE
282   ,p_rate_id                       IN     NUMBER
283   ,p_object_version_number         IN OUT NOCOPY NUMBER
284   ,p_effective_date                IN     DATE
285   ,p_name                          IN     VARCHAR2 DEFAULT hr_api.g_varchar2
286   ,p_rate_uom                      IN     VARCHAR2 DEFAULT hr_api.g_varchar2
287   ,p_parent_spine_id               IN     NUMBER   DEFAULT hr_api.g_number
288   ,p_comments                      IN     VARCHAR2 DEFAULT hr_api.g_varchar2
289   ,p_rate_basis                    IN     VARCHAR2 DEFAULT hr_api.g_varchar2
290   ,p_asg_rate_type                 IN     VARCHAR2 DEFAULT hr_api.g_varchar2
291   ,p_attribute_category            IN     VARCHAR2 DEFAULT hr_api.g_varchar2
292   ,p_attribute1                    IN     VARCHAR2 DEFAULT hr_api.g_varchar2
293   ,p_attribute2                    IN     VARCHAR2 DEFAULT hr_api.g_varchar2
294   ,p_attribute3                    IN     VARCHAR2 DEFAULT hr_api.g_varchar2
295   ,p_attribute4                    IN     VARCHAR2 DEFAULT hr_api.g_varchar2
296   ,p_attribute5                    IN     VARCHAR2 DEFAULT hr_api.g_varchar2
297   ,p_attribute6                    IN     VARCHAR2 DEFAULT hr_api.g_varchar2
298   ,p_attribute7                    IN     VARCHAR2 DEFAULT hr_api.g_varchar2
299   ,p_attribute8                    IN     VARCHAR2 DEFAULT hr_api.g_varchar2
300   ,p_attribute9                    IN     VARCHAR2 DEFAULT hr_api.g_varchar2
301   ,p_attribute10                   IN     VARCHAR2 DEFAULT hr_api.g_varchar2
302   ,p_attribute11                   IN     VARCHAR2 DEFAULT hr_api.g_varchar2
303   ,p_attribute12                   IN     VARCHAR2 DEFAULT hr_api.g_varchar2
304   ,p_attribute13                   IN     VARCHAR2 DEFAULT hr_api.g_varchar2
305   ,p_attribute14                   IN     VARCHAR2 DEFAULT hr_api.g_varchar2
306   ,p_attribute15                   IN     VARCHAR2 DEFAULT hr_api.g_varchar2
307   ,p_attribute16                   IN     VARCHAR2 DEFAULT hr_api.g_varchar2
308   ,p_attribute17                   IN     VARCHAR2 DEFAULT hr_api.g_varchar2
309   ,p_attribute18                   IN     VARCHAR2 DEFAULT hr_api.g_varchar2
310   ,p_attribute19                   IN     VARCHAR2 DEFAULT hr_api.g_varchar2
311   ,p_attribute20                   IN     VARCHAR2 DEFAULT hr_api.g_varchar2
312   ) IS
313 begin
314  update_rate(
315   p_validate                   =>   p_validate
316   ,p_rate_id                   =>   p_rate_id
317   ,p_object_version_number     =>   p_object_version_number
318   ,p_effective_date            =>   p_effective_date
319   ,p_name                      =>   p_name
320   ,p_rate_uom                  =>   p_rate_uom
321   ,p_parent_spine_id           =>   p_parent_spine_id
322   ,p_comments                  =>   p_comments
323   ,p_rate_basis                =>   p_rate_basis
324   ,p_asg_rate_type             =>   p_asg_rate_type
325   ,p_attribute_category        =>   p_attribute_category
326   ,p_attribute1                =>   p_attribute1
327   ,p_attribute2                =>   p_attribute2
328   ,p_attribute3                =>   p_attribute3
329   ,p_attribute4                =>   p_attribute4
330   ,p_attribute5                =>   p_attribute5
331   ,p_attribute6                =>   p_attribute6
332   ,p_attribute7                =>   p_attribute7
333   ,p_attribute8                =>   p_attribute8
334   ,p_attribute9                =>   p_attribute9
335   ,p_attribute10               =>   p_attribute10
336   ,p_attribute11               =>   p_attribute11
337   ,p_attribute12               =>   p_attribute12
338   ,p_attribute13               =>   p_attribute13
339   ,p_attribute14               =>   p_attribute14
340   ,p_attribute15               =>   p_attribute15
341   ,p_attribute16               =>   p_attribute16
342   ,p_attribute17               =>   p_attribute17
343   ,p_attribute18               =>   p_attribute18
344   ,p_attribute19               =>   p_attribute19
345   ,p_attribute20               =>   p_attribute20
346   ,p_called_from               =>   'API'
347   );
348 end;
349 -- End changes for bug 9328526
350 
351 --
352 -- ----------------------------------------------------------------------------
353 -- |--------------------------------< update_rate >---------------------------|
354 -- ----------------------------------------------------------------------------
355 --
356 PROCEDURE update_rate
357   (p_validate                      IN     BOOLEAN   DEFAULT FALSE
358   ,p_rate_id                       IN     NUMBER
359   ,p_object_version_number         IN OUT NOCOPY NUMBER
360   ,p_effective_date                IN     DATE
361   ,p_name                          IN     VARCHAR2 DEFAULT hr_api.g_varchar2
362   ,p_rate_uom                      IN     VARCHAR2 DEFAULT hr_api.g_varchar2
363   ,p_parent_spine_id               IN     NUMBER   DEFAULT hr_api.g_number
364   ,p_comments                      IN     VARCHAR2 DEFAULT hr_api.g_varchar2
365   ,p_rate_basis                    IN     VARCHAR2 DEFAULT hr_api.g_varchar2
366   ,p_asg_rate_type                 IN     VARCHAR2 DEFAULT hr_api.g_varchar2
367   ,p_attribute_category            IN     VARCHAR2 DEFAULT hr_api.g_varchar2
368   ,p_attribute1                    IN     VARCHAR2 DEFAULT hr_api.g_varchar2
369   ,p_attribute2                    IN     VARCHAR2 DEFAULT hr_api.g_varchar2
370   ,p_attribute3                    IN     VARCHAR2 DEFAULT hr_api.g_varchar2
371   ,p_attribute4                    IN     VARCHAR2 DEFAULT hr_api.g_varchar2
372   ,p_attribute5                    IN     VARCHAR2 DEFAULT hr_api.g_varchar2
373   ,p_attribute6                    IN     VARCHAR2 DEFAULT hr_api.g_varchar2
374   ,p_attribute7                    IN     VARCHAR2 DEFAULT hr_api.g_varchar2
375   ,p_attribute8                    IN     VARCHAR2 DEFAULT hr_api.g_varchar2
376   ,p_attribute9                    IN     VARCHAR2 DEFAULT hr_api.g_varchar2
377   ,p_attribute10                   IN     VARCHAR2 DEFAULT hr_api.g_varchar2
378   ,p_attribute11                   IN     VARCHAR2 DEFAULT hr_api.g_varchar2
379   ,p_attribute12                   IN     VARCHAR2 DEFAULT hr_api.g_varchar2
380   ,p_attribute13                   IN     VARCHAR2 DEFAULT hr_api.g_varchar2
381   ,p_attribute14                   IN     VARCHAR2 DEFAULT hr_api.g_varchar2
382   ,p_attribute15                   IN     VARCHAR2 DEFAULT hr_api.g_varchar2
383   ,p_attribute16                   IN     VARCHAR2 DEFAULT hr_api.g_varchar2
384   ,p_attribute17                   IN     VARCHAR2 DEFAULT hr_api.g_varchar2
385   ,p_attribute18                   IN     VARCHAR2 DEFAULT hr_api.g_varchar2
386   ,p_attribute19                   IN     VARCHAR2 DEFAULT hr_api.g_varchar2
387   ,p_attribute20                   IN     VARCHAR2 DEFAULT hr_api.g_varchar2
388   ,p_called_from                   IN     VARCHAR2 --added for bug 9328526
389   ) IS
390   --
391   -- Declare cursors and local variables
392   --
393   l_proc                  VARCHAR2(72) := g_package||'update_rate';
394   l_object_version_number NUMBER;
395   l_effective_date        DATE;
396 -- Bug 3795968 Starts Here
397   CURSOR csr_full_hr_installed IS
398   SELECT null
399   FROM   fnd_product_installations i
400   WHERE  i.status = 'I'
401   AND    i.application_id = 800;
402 --
403   l_dummy varchar2(1);
404   l_upd_del_warning       boolean;
405 -- Bug 3795968 Ends Here
406   --
407 BEGIN
408   --
409   hr_utility.set_location('Entering:'|| l_proc, 10);
410   --
411   -- Issue a savepoint if operating in validation only mode
412   --
413   SAVEPOINT update_rate;
414   --
415   l_effective_date := TRUNC(p_effective_date);
416   --
417   -- Process Logic
418   --
419   l_object_version_number := p_object_version_number;
420   --
421   hr_utility.set_location(l_proc, 20);
422   --
423   BEGIN
424     --
425     -- Start of API User Hook for the before hook of update_rate
426     --
427     hr_rate_api_bk2.update_rate_b -- changed for bug 9328526
428      (p_effective_date                => l_effective_date
429 	 ,p_rate_id                       => p_rate_id
430 	 ,p_object_version_number         => l_object_version_number
431      ,p_name                          => p_name
432      ,p_rate_uom                      => p_rate_uom
433      ,p_parent_spine_id               => p_parent_spine_id
434      ,p_comments                      => p_comments
435      ,p_rate_basis                    => p_rate_basis
436      ,p_asg_rate_type                 => p_asg_rate_type
437      ,p_attribute_category            => p_attribute_category
438      ,p_attribute1                    => p_attribute1
439      ,p_attribute2                    => p_attribute2
440      ,p_attribute3                    => p_attribute3
441      ,p_attribute4                    => p_attribute4
442      ,p_attribute5                    => p_attribute5
443      ,p_attribute6                    => p_attribute6
444      ,p_attribute7                    => p_attribute7
445      ,p_attribute8                    => p_attribute8
446      ,p_attribute9                    => p_attribute9
447      ,p_attribute10                   => p_attribute11
448      ,p_attribute11                   => p_attribute12
449      ,p_attribute12                   => p_attribute13
450      ,p_attribute13                   => p_attribute14
451      ,p_attribute14                   => p_attribute15
452      ,p_attribute15                   => p_attribute16
453      ,p_attribute16                   => p_attribute17
454      ,p_attribute17                   => p_attribute18
455      ,p_attribute18                   => p_attribute19
456      ,p_attribute19                   => p_attribute19
457      ,p_attribute20                   => p_attribute20);
458     --
459   EXCEPTION
460     WHEN hr_api.cannot_find_prog_unit THEN
461       hr_api.cannot_find_prog_unit_error
462         (p_module_name => 'update_rate'
463         ,p_hook_type   => 'BP');
464     --
465     -- End of API User Hook for the before hook of update_rate
466     --
467   END;
468   --
469   hr_utility.set_location(l_proc, 30);
470 
471   -- Start changes for bug 9328526
472 
473   if nvl(p_called_from,'API') <> 'GSPW' then
474   pqh_gsp_utility.chk_rate_for_upd_del(
475    p_rate_id => p_rate_id
476    ,p_entity => 'RATE');
477   end if;
478 
479   hr_utility.set_location(l_proc, 35);
480 
481   -- End changes for bug 9328526
482   --
483   pay_pyr_upd.upd
484     (p_effective_date                 => l_effective_date
485     ,p_rate_id                        => p_rate_id
486     ,p_object_version_number          => l_object_version_number
487     ,p_name                           => p_name
488     ,p_rate_uom                       => p_rate_uom
489     ,p_parent_spine_id                => p_parent_spine_id
490     ,p_comments                       => p_comments
491     ,p_rate_basis                     => p_rate_basis
492     ,p_asg_rate_type                  => p_asg_rate_type
493     ,p_attribute_category             => p_attribute_category
494     ,p_attribute1                     => p_attribute1
495     ,p_attribute2                     => p_attribute2
496     ,p_attribute3                     => p_attribute3
497     ,p_attribute4                     => p_attribute4
498     ,p_attribute5                     => p_attribute5
499     ,p_attribute6                     => p_attribute6
500     ,p_attribute7                     => p_attribute7
501     ,p_attribute8                     => p_attribute8
502     ,p_attribute9                     => p_attribute9
503     ,p_attribute10                    => p_attribute10
504     ,p_attribute11                    => p_attribute11
505     ,p_attribute12                    => p_attribute12
506     ,p_attribute13                    => p_attribute13
507     ,p_attribute14                    => p_attribute14
508     ,p_attribute15                    => p_attribute15
509     ,p_attribute16                    => p_attribute16
510     ,p_attribute17                    => p_attribute17
511     ,p_attribute18                    => p_attribute18
512     ,p_attribute19                    => p_attribute19
513     ,p_attribute20                    => p_attribute20);
514   --
515   hr_utility.set_location(l_proc, 40);
516   --
517   -- Start of fix 3273216
518   -- calling database package to first delete the existing database item
519   -- and then call the database package to insert the updated database item
520 -- Bug 3795968 Starts Here
521   OPEN  csr_full_hr_installed;
522   FETCH csr_full_hr_installed INTO l_dummy;
523   IF csr_full_hr_installed%FOUND THEN
524      hrdyndbi.delete_grade_spine_dict(p_rate_id => p_rate_id);
525      hrdyndbi.create_grade_spine_dict(p_rate_id => p_rate_id);
526   END IF;
527   CLOSE csr_full_hr_installed;
528 -- Bug 3795968 Ends Here
529   --
530   hr_utility.set_location(l_proc, 45);
531   --
532   -- End of 3273216
533   BEGIN
534     --
535     -- Start of API User Hook for the after hook of update_rate
536     --
537 	hr_rate_api_bk2.update_rate_a
538      (p_effective_date                => l_effective_date
539 	 ,p_rate_id                       => p_rate_id
540 	 ,p_object_version_number         => l_object_version_number
541      ,p_name                          => p_name
542      ,p_rate_uom                      => p_rate_uom
543      ,p_parent_spine_id               => p_parent_spine_id
544      ,p_comments                      => p_comments
545      ,p_rate_basis                    => p_rate_basis
546      ,p_asg_rate_type                 => p_asg_rate_type
547      ,p_attribute_category            => p_attribute_category
548      ,p_attribute1                    => p_attribute1
549      ,p_attribute2                    => p_attribute2
550      ,p_attribute3                    => p_attribute3
551      ,p_attribute4                    => p_attribute4
552      ,p_attribute5                    => p_attribute5
553      ,p_attribute6                    => p_attribute6
554      ,p_attribute7                    => p_attribute7
555      ,p_attribute8                    => p_attribute8
556      ,p_attribute9                    => p_attribute9
557      ,p_attribute10                   => p_attribute11
558      ,p_attribute11                   => p_attribute12
559      ,p_attribute12                   => p_attribute13
560      ,p_attribute13                   => p_attribute14
561      ,p_attribute14                   => p_attribute15
562      ,p_attribute15                   => p_attribute16
563      ,p_attribute16                   => p_attribute17
564      ,p_attribute17                   => p_attribute18
565      ,p_attribute18                   => p_attribute19
566      ,p_attribute19                   => p_attribute19
567      ,p_attribute20                   => p_attribute20);
568     --
569   EXCEPTION
570     WHEN hr_api.cannot_find_prog_unit THEN
571       hr_api.cannot_find_prog_unit_error
572         (p_module_name => 'update_rate'
573         ,p_hook_type   => 'AP');
574     --
575     -- End of API User Hook for the after hook of update_rate
576     --
577   END;
578   --
579   hr_utility.set_location(l_proc, 50);
580   --
581   -- When in validation only mode raise the Validate_Enabled exception
582   --
583   IF p_validate THEN
584     --
585     RAISE hr_api.validate_enabled;
586     --
587   END IF;
588   --
589   -- Set all output arguments
590   --
591   p_object_version_number := l_object_version_number;
592   --
593   hr_utility.set_location(' Leaving:'||l_proc, 999);
594   --
595 EXCEPTION
596   --
597   WHEN hr_api.validate_enabled THEN
598     --
599     -- As the Validate_Enabled exception has been raised
600     -- we must rollback to the savepoint
601     --
602     ROLLBACK TO update_rate;
603     --
604     -- Only set output warning arguments
605     -- (Any key or derived arguments must be set to null
606     -- when validation only mode is being used.)
607     --
608     hr_utility.set_location(' Leaving:'||l_proc, 998);
609     --
610   WHEN others THEN
611     --
612     -- A validation or unexpected error has occured
613     --
614     ROLLBACK TO update_rate;
615     --
616     -- Bugfix 2692195
617     -- Reset all OUT/IN OUT parameters
618     --
619     p_object_version_number := l_object_version_number;
620     --
621     RAISE;
622     --
623 END update_rate;
624 
625 -- Start changes for bug 9328526
626 --
627 -- ----------------------------------------------------------------------------
628 -- |------------------------------< delete_rate >-----------------------------|
629 -- ----------------------------------------------------------------------------
630 --
631 PROCEDURE delete_rate
632   (p_validate                       IN     BOOLEAN  DEFAULT FALSE
633   ,p_effective_date                 IN     DATE
634   ,p_rate_id                        IN     NUMBER
635   ,p_rate_type                      IN     VARCHAR2
636   ,p_object_version_number          IN OUT NOCOPY NUMBER) IS
637 begin
638  delete_rate
639   (p_validate                    =>     p_validate
640   ,p_effective_date              =>     p_effective_date
641   ,p_rate_id                     =>     p_rate_id
642   ,p_rate_type                   =>     p_rate_type
643   ,p_object_version_number       =>     p_object_version_number
644   ,p_called_from                 =>     'API'
645  );
646 end;
647 -- End changes for bug 9328526
648 
649 --
650 -- ----------------------------------------------------------------------------
651 -- |------------------------------< delete_rate >-----------------------------|
652 -- ----------------------------------------------------------------------------
653 --
654 PROCEDURE delete_rate
655   (p_validate                       IN     BOOLEAN  DEFAULT FALSE
656   ,p_effective_date                 IN     DATE
657   ,p_rate_id                        IN     NUMBER
658   ,p_rate_type                      IN     VARCHAR2
659   ,p_object_version_number          IN OUT NOCOPY NUMBER
660   ,p_called_from                    IN     VARCHAR2 --added for bug 9328526
661   ) IS
662   --
663   -- Declare cursors and local variables
664   --
665   l_proc                  VARCHAR2(72) := g_package||'delete_rate';
666   l_object_version_number NUMBER;
667   l_effective_date        DATE;
668 -- Bug 3795968 Starts Here
669   CURSOR csr_full_hr_installed IS
670   SELECT null
671   FROM   fnd_product_installations i
672   WHERE  i.status = 'I'
673   AND    i.application_id = 800;
674 --
675   l_dummy varchar2(1);
676 -- Bug 3795968 Ends Here
677   --
678 BEGIN
679   --
680   hr_utility.set_location('Entering:'|| l_proc, 10);
681   --
682   -- Issue a savepoint if operating in validation only mode
683   --
684   SAVEPOINT delete_rate;
685   --
686   hr_utility.set_location(l_proc, 20);
687   --
688   l_effective_date := TRUNC(p_effective_date);
689   --
690   -- Process Logic
691   --
692   l_object_version_number := p_object_version_number;
693   --
694   --
695   BEGIN
696     --
697     -- Start of API User Hook for the before hook of delete_rate
698     --
699     hr_rate_api_bk3.delete_rate_b
700       (p_rate_id               =>  p_rate_id
701 	  ,p_rate_type             =>  p_rate_type
702       ,p_object_version_number =>  l_object_version_number
703       ,p_effective_date        =>  l_effective_date);
704     --
705   EXCEPTION
706     WHEN hr_api.cannot_find_prog_unit THEN
707 	  --
708       hr_api.cannot_find_prog_unit_error
709         (p_module_name => 'delete_rate'
710         ,p_hook_type   => 'BP');
711     --
712     -- End of API User Hook for the before hook of delete_rate
713     --
714   END;
715   --
716   hr_utility.set_location( l_proc, 30);
717   --
718   --
719   -- Process Logic
720   -- =============
721   --
722   --  Need to lock main table to maintain the locking ladder order
723   --
724   -- Start changes for bug 9328526
725   if nvl(p_called_from,'API') <> 'GSPW' then
726   pqh_gsp_utility.chk_rate_for_upd_del(
727    p_rate_id => p_rate_id
728    ,p_entity => 'RATE');
729   End if;
730 
731   hr_utility.set_location(l_proc, 35);
732 
733   -- End changes for bug 9328526
734 
735   pay_pyr_shd.lck(p_rate_id               => p_rate_id
736                  ,p_object_version_number => p_object_version_number);
737   --
738   hr_utility.set_location( l_proc, 40);
739   --
740   pay_pyr_del.del(p_rate_id               => p_rate_id
741                  ,p_rate_type             => p_rate_type
742                  ,p_object_version_number => p_object_version_number);
743   --
744   hr_utility.set_location( l_proc, 50);
745   --
746   -- Start of fix 3273216
747   -- calling database package to delete database item
748 -- Bug 3795968 Starts Here
749   OPEN  csr_full_hr_installed;
750   FETCH csr_full_hr_installed INTO l_dummy;
751   IF csr_full_hr_installed%FOUND THEN
752      hrdyndbi.delete_grade_spine_dict(p_rate_id => p_rate_id);
753   END IF;
754   CLOSE csr_full_hr_installed;
755 -- Bug 3795968 Ends Here
756   --
757   hr_utility.set_location( l_proc, 55);
758   --
759   -- End of 3273216
760   --
761   BEGIN
762     --
763     -- Start of API User Hook for the after hook of delete_rate
764     --
765     hr_rate_api_bk3.delete_rate_a
766       (p_rate_id                =>  p_rate_id
767 	  ,p_rate_type              =>  p_rate_type
768       ,p_effective_date         =>  l_effective_date
769       ,p_object_version_number  =>  l_object_version_number);
770     --
771   EXCEPTION
772     --
773     WHEN hr_api.cannot_find_prog_unit THEN
774       --
775       hr_api.cannot_find_prog_unit_error
776         (p_module_name => 'delete_rate'
777         ,p_hook_type   => 'AP');
778     --
779     -- End of API User Hook for the after hook of delete_rate
780     --
781   END;
782   --
783   hr_utility.set_location(l_proc, 60);
784   --
785   -- When in validation only mode raise the Validate_Enabled exception
786   --
787   IF p_validate THEN
788     --
789     RAISE hr_api.validate_enabled;
790     --
791   END IF;
792   --
793   hr_utility.set_location(' Leaving:'||l_proc, 999);
794   --
795 EXCEPTION
796   --
797   WHEN hr_api.validate_enabled THEN
798     --
799     -- As the Validate_Enabled exception has been raised
800     -- we must rollback to the savepoint
801     --
802     ROLLBACK TO delete_rate;
803     --
804     -- Only set output warning arguments
805     -- (Any key or derived arguments must be set to null
806     -- when validation only mode is being used.)
807     --
808     --
809   WHEN others THEN
810     --
811     -- A validation or unexpected error has occured
812     --
813     ROLLBACK TO delete_rate;
814     --
815     -- Bugfix 2692195
816     -- Reset all OUT/IN OUT parameters
817     --
818     p_object_version_number := l_object_version_number;
819     --
820     RAISE;
821     --
822 END delete_rate;
823 --
824 PROCEDURE create_assignment_rate
825   (p_validate                      IN            BOOLEAN   DEFAULT FALSE
826   ,p_effective_date                IN            DATE
827   ,p_business_group_id             IN            NUMBER
828   ,p_name                          IN            VARCHAR2
829   ,p_rate_basis                    IN            VARCHAR2
830   ,p_asg_rate_type                 IN            VARCHAR2 DEFAULT NULL
831   ,p_attribute_category            IN            VARCHAR2 DEFAULT NULL
832   ,p_attribute1                    IN            VARCHAR2 DEFAULT NULL
833   ,p_attribute2                    IN            VARCHAR2 DEFAULT NULL
834   ,p_attribute3                    IN            VARCHAR2 DEFAULT NULL
835   ,p_attribute4                    IN            VARCHAR2 DEFAULT NULL
836   ,p_attribute5                    IN            VARCHAR2 DEFAULT NULL
837   ,p_attribute6                    IN            VARCHAR2 DEFAULT NULL
838   ,p_attribute7                    IN            VARCHAR2 DEFAULT NULL
839   ,p_attribute8                    IN            VARCHAR2 DEFAULT NULL
840   ,p_attribute9                    IN            VARCHAR2 DEFAULT NULL
841   ,p_attribute10                   IN            VARCHAR2 DEFAULT NULL
842   ,p_attribute11                   IN            VARCHAR2 DEFAULT NULL
843   ,p_attribute12                   IN            VARCHAR2 DEFAULT NULL
844   ,p_attribute13                   IN            VARCHAR2 DEFAULT NULL
845   ,p_attribute14                   IN            VARCHAR2 DEFAULT NULL
846   ,p_attribute15                   IN            VARCHAR2 DEFAULT NULL
847   ,p_attribute16                   IN            VARCHAR2 DEFAULT NULL
848   ,p_attribute17                   IN            VARCHAR2 DEFAULT NULL
849   ,p_attribute18                   IN            VARCHAR2 DEFAULT NULL
850   ,p_attribute19                   IN            VARCHAR2 DEFAULT NULL
851   ,p_attribute20                   IN            VARCHAR2 DEFAULT NULL
852   ,p_object_version_number            OUT NOCOPY NUMBER
853   ,p_rate_id                          OUT NOCOPY NUMBER) IS
854   --
855   -- Declare cursors and local variables
856   --
857   l_proc                  VARCHAR2(72) := g_package||'create_assignment_rate';
858   l_effective_date        DATE;
859   l_object_version_number NUMBER;
860   l_rate_id               pay_rates.rate_id%TYPE;
861   l_default_rate_type     pay_rates.rate_type%TYPE;
862   l_default_rate_uom      pay_rates.rate_uom%TYPE;
863   --
864 BEGIN
865   --
866   hr_utility.set_location('Entering:'|| l_proc, 10);
867   --
868   -- Issue a savepoint if operating in validation only mode
869   --
870   SAVEPOINT create_assignment_rate;
871   --
872   hr_utility.set_location(l_proc, 20);
873   --
874   l_effective_date := TRUNC(p_effective_date);
875   --
876   -- Set the rate type to be Assignment
877   --
878   l_default_rate_type := 'A';
879   --
880   -- Set the rate unit of measure to be Money
881   --
882   l_default_rate_uom  := 'M';
883   --
884   -- Process Logic
885   --
886   BEGIN
887     --
888     -- Start of API User Hook for the before hook of create_assignment_rate
889     --
890     hr_rate_api_bk4.create_assignment_rate_b
891      (p_effective_date                => l_effective_date
892      ,p_business_group_id             => p_business_group_id
893      ,p_name                          => p_name
894      ,p_rate_type                     => l_default_rate_type
895      ,p_rate_uom                      => l_default_rate_uom
896      ,p_rate_basis                    => p_rate_basis
897      ,p_asg_rate_type                 => p_asg_rate_type
898      ,p_attribute_category            => p_attribute_category
899      ,p_attribute1                    => p_attribute1
900      ,p_attribute2                    => p_attribute2
901      ,p_attribute3                    => p_attribute3
902      ,p_attribute4                    => p_attribute4
903      ,p_attribute5                    => p_attribute5
904      ,p_attribute6                    => p_attribute6
905      ,p_attribute7                    => p_attribute7
906      ,p_attribute8                    => p_attribute8
907      ,p_attribute9                    => p_attribute9
908      ,p_attribute10                   => p_attribute11
909      ,p_attribute11                   => p_attribute12
910      ,p_attribute12                   => p_attribute13
911      ,p_attribute13                   => p_attribute14
912      ,p_attribute14                   => p_attribute15
913      ,p_attribute15                   => p_attribute16
914      ,p_attribute16                   => p_attribute17
915      ,p_attribute17                   => p_attribute18
916      ,p_attribute18                   => p_attribute19
917      ,p_attribute19                   => p_attribute19
918      ,p_attribute20                   => p_attribute20);
919     --
920   EXCEPTION
921     WHEN hr_api.cannot_find_prog_unit THEN
922       hr_api.cannot_find_prog_unit_error
923         (p_module_name => 'create_assignment_rate'
924         ,p_hook_type   => 'BP');
925     --
926     -- End of API User Hook for the before hook of create_assignment_rate
927     --
928   END;
929   --
930   hr_utility.set_location(l_proc, 30);
931   --
932   hr_rate_api.create_rate
933     (p_effective_date                 => l_effective_date
934     ,p_business_group_id              => p_business_group_id
935     ,p_name                           => p_name
936     ,p_rate_type                      => l_default_rate_type
937     ,p_rate_uom                       => l_default_rate_uom
938     ,p_attribute_category             => p_attribute_category
939     ,p_attribute1                     => p_attribute1
940     ,p_attribute2                     => p_attribute2
941     ,p_attribute3                     => p_attribute3
942     ,p_attribute4                     => p_attribute4
943     ,p_attribute5                     => p_attribute5
944     ,p_attribute6                     => p_attribute6
945     ,p_attribute7                     => p_attribute7
946     ,p_attribute8                     => p_attribute8
947     ,p_attribute9                     => p_attribute9
948     ,p_attribute10                    => p_attribute10
949     ,p_attribute11                    => p_attribute11
950     ,p_attribute12                    => p_attribute12
951     ,p_attribute13                    => p_attribute13
952     ,p_attribute14                    => p_attribute14
953     ,p_attribute15                    => p_attribute15
954     ,p_attribute16                    => p_attribute16
955     ,p_attribute17                    => p_attribute17
956     ,p_attribute18                    => p_attribute18
957     ,p_attribute19                    => p_attribute19
958     ,p_attribute20                    => p_attribute20
959     ,p_rate_basis                     => p_rate_basis
960     ,p_asg_rate_type                  => p_asg_rate_type
961     ,p_rate_id                        => l_rate_id
962     ,p_object_version_number          => l_object_version_number);
963   --
964   hr_utility.set_location(l_proc, 40);
965   --
966   BEGIN
967     --
968     -- Start of API User Hook for the after hook of create_assignment_rate
969     --
970     hr_rate_api_bk4.create_assignment_rate_a
971      (p_effective_date                => l_effective_date
972 	 ,p_rate_id                       => l_rate_id
973 	 ,p_object_version_number         => l_object_version_number
974      ,p_business_group_id             => p_business_group_id
975      ,p_name                          => p_name
976      ,p_rate_type                     => l_default_rate_type
977      ,p_rate_uom                      => l_default_rate_uom
978      ,p_rate_basis                    => p_rate_basis
979      ,p_asg_rate_type                 => p_asg_rate_type
980      ,p_attribute_category            => p_attribute_category
981      ,p_attribute1                    => p_attribute1
982      ,p_attribute2                    => p_attribute2
983      ,p_attribute3                    => p_attribute3
984      ,p_attribute4                    => p_attribute4
985      ,p_attribute5                    => p_attribute5
986      ,p_attribute6                    => p_attribute6
987      ,p_attribute7                    => p_attribute7
988      ,p_attribute8                    => p_attribute8
989      ,p_attribute9                    => p_attribute9
990      ,p_attribute10                   => p_attribute11
991      ,p_attribute11                   => p_attribute12
992      ,p_attribute12                   => p_attribute13
993      ,p_attribute13                   => p_attribute14
994      ,p_attribute14                   => p_attribute15
995      ,p_attribute15                   => p_attribute16
996      ,p_attribute16                   => p_attribute17
997      ,p_attribute17                   => p_attribute18
998      ,p_attribute18                   => p_attribute19
999      ,p_attribute19                   => p_attribute19
1000      ,p_attribute20                   => p_attribute20);
1001     --
1002   EXCEPTION
1003     WHEN hr_api.cannot_find_prog_unit THEN
1004       hr_api.cannot_find_prog_unit_error
1005         (p_module_name => 'create_assignment_rate'
1006         ,p_hook_type   => 'AP');
1007     --
1008     -- End of API User Hook for the after hook of create_assignment_rate
1009     --
1010   END;
1011   --
1012   hr_utility.set_location(l_proc, 50);
1013   --
1014   -- When in validation only mode raise the Validate_Enabled exception
1015   --
1016   IF p_validate THEN
1017     --
1018     RAISE hr_api.validate_enabled;
1019 	--
1020   END IF;
1021   --
1022   -- Set all output arguments
1023   --
1024   p_object_version_number := l_object_version_number;
1025   p_rate_id               := l_rate_id;
1026   --
1027   hr_utility.set_location(' Leaving:'||l_proc, 999);
1028   --
1029 EXCEPTION
1030   --
1031   WHEN hr_api.validate_enabled THEN
1032     --
1033     -- As the Validate_Enabled exception has been raised
1034     -- we must rollback to the savepoint
1035     --
1036     ROLLBACK TO create_assignment_rate;
1037     --
1038     -- Only set output warning arguments
1039     -- (Any key or derived arguments must be set to null
1040     -- when validation only mode is being used.)
1041     --
1042     p_object_version_number  := NULL;
1043     --
1044     hr_utility.set_location(' Leaving:'||l_proc, 998);
1045     --
1046   WHEN others THEN
1047     --
1048     -- A validation or unexpected error has occured
1049     --
1050     ROLLBACK TO create_assignment_rate;
1051     --
1052     -- Bugfix 2692195
1053     -- Reset all OUT/IN OUT parameters
1054     --
1055     p_object_version_number := null;
1056     p_rate_id := null;
1057     --
1058     RAISE;
1059     --
1060 END create_assignment_rate;
1061 --
1062 -- ----------------------------------------------------------------------------
1063 -- |-------------------------< update_assignment_rate >-----------------------|
1064 -- ----------------------------------------------------------------------------
1065 --
1066 PROCEDURE update_assignment_rate
1067   (p_validate                      IN     BOOLEAN   DEFAULT FALSE
1068   ,p_rate_id                       IN     NUMBER
1069   ,p_object_version_number         IN OUT NOCOPY NUMBER
1070   ,p_effective_date                IN     DATE
1071   ,p_name                          IN     VARCHAR2 DEFAULT hr_api.g_varchar2
1072   ,p_rate_basis                    IN     VARCHAR2 DEFAULT hr_api.g_varchar2
1073   ,p_asg_rate_type                 IN     VARCHAR2 DEFAULT hr_api.g_varchar2
1074   ,p_attribute_category            IN     VARCHAR2 DEFAULT hr_api.g_varchar2
1075   ,p_attribute1                    IN     VARCHAR2 DEFAULT hr_api.g_varchar2
1076   ,p_attribute2                    IN     VARCHAR2 DEFAULT hr_api.g_varchar2
1077   ,p_attribute3                    IN     VARCHAR2 DEFAULT hr_api.g_varchar2
1078   ,p_attribute4                    IN     VARCHAR2 DEFAULT hr_api.g_varchar2
1079   ,p_attribute5                    IN     VARCHAR2 DEFAULT hr_api.g_varchar2
1080   ,p_attribute6                    IN     VARCHAR2 DEFAULT hr_api.g_varchar2
1081   ,p_attribute7                    IN     VARCHAR2 DEFAULT hr_api.g_varchar2
1082   ,p_attribute8                    IN     VARCHAR2 DEFAULT hr_api.g_varchar2
1083   ,p_attribute9                    IN     VARCHAR2 DEFAULT hr_api.g_varchar2
1084   ,p_attribute10                   IN     VARCHAR2 DEFAULT hr_api.g_varchar2
1085   ,p_attribute11                   IN     VARCHAR2 DEFAULT hr_api.g_varchar2
1086   ,p_attribute12                   IN     VARCHAR2 DEFAULT hr_api.g_varchar2
1087   ,p_attribute13                   IN     VARCHAR2 DEFAULT hr_api.g_varchar2
1088   ,p_attribute14                   IN     VARCHAR2 DEFAULT hr_api.g_varchar2
1089   ,p_attribute15                   IN     VARCHAR2 DEFAULT hr_api.g_varchar2
1090   ,p_attribute16                   IN     VARCHAR2 DEFAULT hr_api.g_varchar2
1091   ,p_attribute17                   IN     VARCHAR2 DEFAULT hr_api.g_varchar2
1092   ,p_attribute18                   IN     VARCHAR2 DEFAULT hr_api.g_varchar2
1093   ,p_attribute19                   IN     VARCHAR2 DEFAULT hr_api.g_varchar2
1094   ,p_attribute20                   IN     VARCHAR2 DEFAULT hr_api.g_varchar2) IS
1095   --
1096   -- Declare cursors and local variables
1097   --
1098   l_proc                  VARCHAR2(72) := g_package||'update_assignment_rate';
1099   l_object_version_number NUMBER;
1100   l_effective_date        DATE;
1101   --
1102 BEGIN
1103   --
1104   hr_utility.set_location('Entering:'|| l_proc, 10);
1105   --
1106   -- Issue a savepoint if operating in validation only mode
1107   --
1108   SAVEPOINT update_assignment_rate;
1109   --
1110   l_effective_date := TRUNC(p_effective_date);
1111   --
1112   -- Process Logic
1113   --
1114   l_object_version_number := p_object_version_number;
1115   --
1116   hr_utility.set_location(l_proc, 20);
1117   --
1118   BEGIN
1119     --
1120     -- Start of API User Hook for the before hook of update_assignment_rate
1121     --
1122     hr_rate_api_bk5.update_assignment_rate_a
1123      (p_effective_date                => l_effective_date
1124 	 ,p_rate_id                       => p_rate_id
1125 	 ,p_object_version_number         => l_object_version_number
1126      ,p_name                          => p_name
1127      ,p_rate_basis                    => p_rate_basis
1128      ,p_asg_rate_type                 => p_asg_rate_type
1129      ,p_attribute_category            => p_attribute_category
1130      ,p_attribute1                    => p_attribute1
1131      ,p_attribute2                    => p_attribute2
1132      ,p_attribute3                    => p_attribute3
1133      ,p_attribute4                    => p_attribute4
1134      ,p_attribute5                    => p_attribute5
1135      ,p_attribute6                    => p_attribute6
1136      ,p_attribute7                    => p_attribute7
1137      ,p_attribute8                    => p_attribute8
1138      ,p_attribute9                    => p_attribute9
1139      ,p_attribute10                   => p_attribute11
1140      ,p_attribute11                   => p_attribute12
1141      ,p_attribute12                   => p_attribute13
1142      ,p_attribute13                   => p_attribute14
1143      ,p_attribute14                   => p_attribute15
1144      ,p_attribute15                   => p_attribute16
1145      ,p_attribute16                   => p_attribute17
1146      ,p_attribute17                   => p_attribute18
1147      ,p_attribute18                   => p_attribute19
1148      ,p_attribute19                   => p_attribute19
1149      ,p_attribute20                   => p_attribute20);
1150     --
1151   EXCEPTION
1152     WHEN hr_api.cannot_find_prog_unit THEN
1153       hr_api.cannot_find_prog_unit_error
1154         (p_module_name => 'update_assignment_rate'
1155         ,p_hook_type   => 'BP');
1156     --
1157     -- End of API User Hook for the before hook of update_assignment_rate
1158     --
1159   END;
1160   --
1161   hr_utility.set_location(l_proc, 30);
1162   --
1163   hr_rate_api.update_rate
1164     (p_effective_date                 => l_effective_date
1165     ,p_rate_id                        => p_rate_id
1166     ,p_object_version_number          => l_object_version_number
1167     ,p_name                           => p_name
1168     ,p_rate_basis                     => p_rate_basis
1169     ,p_asg_rate_type                  => p_asg_rate_type
1170     ,p_attribute_category             => p_attribute_category
1171     ,p_attribute1                     => p_attribute1
1172     ,p_attribute2                     => p_attribute2
1173     ,p_attribute3                     => p_attribute3
1174     ,p_attribute4                     => p_attribute4
1175     ,p_attribute5                     => p_attribute5
1176     ,p_attribute6                     => p_attribute6
1177     ,p_attribute7                     => p_attribute7
1178     ,p_attribute8                     => p_attribute8
1179     ,p_attribute9                     => p_attribute9
1180     ,p_attribute10                    => p_attribute10
1181     ,p_attribute11                    => p_attribute11
1182     ,p_attribute12                    => p_attribute12
1183     ,p_attribute13                    => p_attribute13
1184     ,p_attribute14                    => p_attribute14
1185     ,p_attribute15                    => p_attribute15
1186     ,p_attribute16                    => p_attribute16
1187     ,p_attribute17                    => p_attribute17
1188     ,p_attribute18                    => p_attribute18
1189     ,p_attribute19                    => p_attribute19
1190     ,p_attribute20                    => p_attribute20);
1191   --
1192   hr_utility.set_location(l_proc, 40);
1193   --
1194   BEGIN
1195     --
1196     -- Start of API User Hook for the after hook of update_assignment_rate
1197     --
1198 	hr_rate_api_bk5.update_assignment_rate_a
1199      (p_effective_date                => l_effective_date
1200 	 ,p_rate_id                       => p_rate_id
1201 	 ,p_object_version_number         => l_object_version_number
1202      ,p_name                          => p_name
1203      ,p_rate_basis                    => p_rate_basis
1204      ,p_asg_rate_type                 => p_asg_rate_type
1205      ,p_attribute_category            => p_attribute_category
1206      ,p_attribute1                    => p_attribute1
1207      ,p_attribute2                    => p_attribute2
1208      ,p_attribute3                    => p_attribute3
1209      ,p_attribute4                    => p_attribute4
1210      ,p_attribute5                    => p_attribute5
1211      ,p_attribute6                    => p_attribute6
1212      ,p_attribute7                    => p_attribute7
1213      ,p_attribute8                    => p_attribute8
1214      ,p_attribute9                    => p_attribute9
1215      ,p_attribute10                   => p_attribute11
1216      ,p_attribute11                   => p_attribute12
1217      ,p_attribute12                   => p_attribute13
1218      ,p_attribute13                   => p_attribute14
1219      ,p_attribute14                   => p_attribute15
1220      ,p_attribute15                   => p_attribute16
1221      ,p_attribute16                   => p_attribute17
1222      ,p_attribute17                   => p_attribute18
1223      ,p_attribute18                   => p_attribute19
1224      ,p_attribute19                   => p_attribute19
1225      ,p_attribute20                   => p_attribute20);
1226     --
1227   EXCEPTION
1228     WHEN hr_api.cannot_find_prog_unit THEN
1229       hr_api.cannot_find_prog_unit_error
1230         (p_module_name => 'update_assignment_rate'
1231         ,p_hook_type   => 'AP');
1232     --
1233     -- End of API User Hook for the after hook of update_assignment_rate
1234     --
1235   END;
1236   --
1237   hr_utility.set_location(l_proc, 50);
1238   --
1239   -- When in validation only mode raise the Validate_Enabled exception
1240   --
1241   IF p_validate THEN
1242     --
1243     RAISE hr_api.validate_enabled;
1244     --
1245   END IF;
1246   --
1247   -- Set all output arguments
1248   --
1249   p_object_version_number := l_object_version_number;
1250   --
1251   hr_utility.set_location(' Leaving:'||l_proc, 999);
1252   --
1253 EXCEPTION
1254   --
1255   WHEN hr_api.validate_enabled THEN
1256     --
1257     -- As the Validate_Enabled exception has been raised
1258     -- we must rollback to the savepoint
1259     --
1260     ROLLBACK TO update_assignment_rate;
1261     --
1262     -- Only set output warning arguments
1263     -- (Any key or derived arguments must be set to null
1264     -- when validation only mode is being used.)
1265     --
1266     hr_utility.set_location(' Leaving:'||l_proc, 998);
1267     --
1268   WHEN others THEN
1269     --
1270     -- A validation or unexpected error has occured
1271     --
1272     ROLLBACK TO update_assignment_rate;
1273     --
1274     -- Bugfix 2692195
1275     -- Reset all OUT/IN OUT parameters
1276     --
1277     p_object_version_number := l_object_version_number;
1278     --
1279     RAISE;
1280     --
1281 END update_assignment_rate;
1282 --
1283 END hr_rate_api;