DBA Data[Home] [Help]

PACKAGE BODY: APPS.BEN_PRMRY_CARE_PRVDR_API

Source


1 Package Body ben_PRMRY_CARE_PRVDR_api as
2 /* $Header: bepprapi.pkb 120.3 2008/02/22 16:25:28 rtagarra noship $ */
3 --
4 -- Package Variables
5 --
6 g_package  varchar2(33) := '  ben_PRMRY_CARE_PRVDR_api.';
7 -- ----------------------------------------------------------------------------
8 -- |--------------------< determine_datetrack_mode >---------------------------|
9 -- ----------------------------------------------------------------------------
10 
11 procedure determine_datetrack_mode
12                   (p_effective_date         in     date
13                   ,p_base_key_value         in     number
14                   ,p_desired_datetrack_mode in     varchar2
15                   ,p_mini_mode              in     varchar2
16                   ,p_datetrack_allow        in out nocopy varchar2
17                   )is
18   l_correction           boolean;
19   l_update               boolean;
20   l_update_override      boolean;
21   l_update_change_insert boolean;
22   l_zap                  boolean;
23   l_delete               boolean;
24   l_future_change        boolean;
25   l_delete_next_change   boolean;
26   l_step                 number(9);
27   l_proc                 varchar2(80) := g_package||'determine_datetrack_mode';
28 begin
29    hr_utility.set_location ('Entering '||l_proc,10);
30 
31    if p_mini_mode = 'U' then  -- update
32 
33       ben_ppr_shd.find_dt_upd_modes
34        (p_effective_date   => p_effective_date
35    ,p_base_key_value   => p_base_key_value
36    ,p_correction         => l_correction
37    ,p_update               => l_update
38    ,p_update_override  => l_update_override
39    ,p_update_change_insert => l_update_change_insert
40        );
41 
42       if (p_desired_datetrack_mode = hr_api.g_update and l_update) then
43           p_datetrack_allow := hr_api.g_update;
44       elsif(p_desired_datetrack_mode = hr_api.g_correction and l_correction)then
45           p_datetrack_allow := hr_api.g_correction;
46       elsif(p_desired_datetrack_mode = hr_api.g_update_override
47             and l_update_override) then
48           p_datetrack_allow := hr_api.g_update_override;
49       elsif(p_desired_datetrack_mode = hr_api.g_update_change_insert
50             and l_update_change_insert) then
51           p_datetrack_allow := hr_api.g_update_change_insert;
52       elsif(l_update) then
53           p_datetrack_allow := hr_api.g_update;
54       elsif(l_correction) then
55           p_datetrack_allow := hr_api.g_correction;
56       else
57           fnd_message.set_name('BEN', 'BEN_91700_DATETRACK_NOT_ALWD');
58           fnd_message.set_token('MODE',p_desired_datetrack_mode);
59           fnd_message.raise_error;
60       end if;
61    else  -- mini-mode = 'D' for delete
62       ben_ppr_shd.find_dt_del_modes
63        (p_effective_date   => p_effective_date
64    ,p_base_key_value   => p_base_key_value
65        ,p_zap                  => l_zap
66        ,p_delete               => l_delete
67        ,p_future_change        => l_future_change
68        ,p_delete_next_change   => l_delete_next_change);
69 
70       if (p_desired_datetrack_mode = hr_api.g_delete and l_delete) then
71           p_datetrack_allow := hr_api.g_delete;
72       elsif(p_desired_datetrack_mode = hr_api.g_zap and l_zap)then
73           p_datetrack_allow := hr_api.g_zap;
74       elsif(p_desired_datetrack_mode = hr_api.g_future_change and l_future_change) then
75           p_datetrack_allow := hr_api.g_future_change;
76       elsif(p_desired_datetrack_mode = hr_api.g_delete_next_change
77             and l_delete_next_change) then
78           p_datetrack_allow := hr_api.g_delete_next_change;
79       elsif (l_delete) then
80           p_datetrack_allow := hr_api.g_delete;
81       elsif (l_zap) then
82           p_datetrack_allow := hr_api.g_zap;
83       else
84           fnd_message.set_name('BEN', 'BEN_91700_DATETRACK_NOT_ALWD');
85           fnd_message.set_token('MODE',p_desired_datetrack_mode);
86           fnd_message.raise_error;
87       end if;
88 
89    end if;
90 
91    hr_utility.set_location ('Leaving '||l_proc,99);
92 Exception
93    when others then
94        raise;
95 end determine_datetrack_mode;
96 --
97 -- ----------------------------------------------------------------------------
98 -- |------------------------< create_PRMRY_CARE_PRVDR >----------------------|
99 -- ----------------------------------------------------------------------------
100 --
101 procedure create_PRMRY_CARE_PRVDR
102   (p_validate                       in  boolean   default false
103   ,p_prmry_care_prvdr_id            out nocopy number
104   ,p_effective_start_date           out nocopy date
105   ,p_effective_end_date             out nocopy date
106   ,p_prmry_care_prvdr_typ_cd        in  varchar2  default null
107   ,p_name                           in  varchar2  default null
108   ,p_ext_ident                      in  varchar2  default null
109   ,p_prtt_enrt_rslt_id              in  number    default null
110   ,p_elig_cvrd_dpnt_id              in  number    default null
111   ,p_business_group_id              in  number    default null
112   ,p_ppr_attribute_category         in  varchar2  default null
113   ,p_ppr_attribute1                 in  varchar2  default null
114   ,p_ppr_attribute2                 in  varchar2  default null
115   ,p_ppr_attribute3                 in  varchar2  default null
116   ,p_ppr_attribute4                 in  varchar2  default null
117   ,p_ppr_attribute5                 in  varchar2  default null
118   ,p_ppr_attribute6                 in  varchar2  default null
119   ,p_ppr_attribute7                 in  varchar2  default null
120   ,p_ppr_attribute8                 in  varchar2  default null
121   ,p_ppr_attribute9                 in  varchar2  default null
122   ,p_ppr_attribute10                in  varchar2  default null
123   ,p_ppr_attribute11                in  varchar2  default null
124   ,p_ppr_attribute12                in  varchar2  default null
125   ,p_ppr_attribute13                in  varchar2  default null
126   ,p_ppr_attribute14                in  varchar2  default null
127   ,p_ppr_attribute15                in  varchar2  default null
128   ,p_ppr_attribute16                in  varchar2  default null
129   ,p_ppr_attribute17                in  varchar2  default null
130   ,p_ppr_attribute18                in  varchar2  default null
131   ,p_ppr_attribute19                in  varchar2  default null
132   ,p_ppr_attribute20                in  varchar2  default null
133   ,p_ppr_attribute21                in  varchar2  default null
134   ,p_ppr_attribute22                in  varchar2  default null
135   ,p_ppr_attribute23                in  varchar2  default null
136   ,p_ppr_attribute24                in  varchar2  default null
137   ,p_ppr_attribute25                in  varchar2  default null
138   ,p_ppr_attribute26                in  varchar2  default null
139   ,p_ppr_attribute27                in  varchar2  default null
140   ,p_ppr_attribute28                in  varchar2  default null
141   ,p_ppr_attribute29                in  varchar2  default null
142   ,p_ppr_attribute30                in  varchar2  default null
143   ,p_request_id                     in  number    default null
144   ,p_program_application_id         in  number    default null
145   ,p_program_id                     in  number    default null
146   ,p_program_update_date            in  date      default null
147   ,p_object_version_number          out nocopy number
148   ,p_effective_date                 in  date
149   ) is
150   --
151   -- Declare cursors and local variables
152   --
153   l_prmry_care_prvdr_id ben_prmry_care_prvdr_f.prmry_care_prvdr_id%TYPE;
154   l_effective_start_date ben_prmry_care_prvdr_f.effective_start_date%TYPE;
155   l_effective_end_date ben_prmry_care_prvdr_f.effective_end_date%TYPE;
156   l_proc varchar2(72) := g_package||'create_PRMRY_CARE_PRVDR';
157   l_object_version_number ben_prmry_care_prvdr_f.object_version_number%TYPE;
158   --
159 begin
160   --
161   hr_utility.set_location('Entering:'|| l_proc, 10);
162   --
163   -- Issue a savepoint if operating in validation only mode
164   --
165   savepoint create_PRMRY_CARE_PRVDR;
166   --
167   hr_utility.set_location(l_proc, 20);
168   --
169   -- Process Logic
170   --
171   begin
172     --
173     -- Start of API User Hook for the before hook of create_PRMRY_CARE_PRVDR
174     --
175     ben_PRMRY_CARE_PRVDR_bk1.create_PRMRY_CARE_PRVDR_b
176       (
177        p_prmry_care_prvdr_typ_cd        =>  p_prmry_care_prvdr_typ_cd
178       ,p_name                           =>  p_name
179       ,p_ext_ident                      =>  p_ext_ident
180       ,p_prtt_enrt_rslt_id              =>  p_prtt_enrt_rslt_id
181       ,p_elig_cvrd_dpnt_id              =>  p_elig_cvrd_dpnt_id
182       ,p_business_group_id              =>  p_business_group_id
183       ,p_ppr_attribute_category         =>  p_ppr_attribute_category
184       ,p_ppr_attribute1                 =>  p_ppr_attribute1
185       ,p_ppr_attribute2                 =>  p_ppr_attribute2
186       ,p_ppr_attribute3                 =>  p_ppr_attribute3
187       ,p_ppr_attribute4                 =>  p_ppr_attribute4
188       ,p_ppr_attribute5                 =>  p_ppr_attribute5
189       ,p_ppr_attribute6                 =>  p_ppr_attribute6
190       ,p_ppr_attribute7                 =>  p_ppr_attribute7
191       ,p_ppr_attribute8                 =>  p_ppr_attribute8
192       ,p_ppr_attribute9                 =>  p_ppr_attribute9
193       ,p_ppr_attribute10                =>  p_ppr_attribute10
194       ,p_ppr_attribute11                =>  p_ppr_attribute11
195       ,p_ppr_attribute12                =>  p_ppr_attribute12
196       ,p_ppr_attribute13                =>  p_ppr_attribute13
197       ,p_ppr_attribute14                =>  p_ppr_attribute14
198       ,p_ppr_attribute15                =>  p_ppr_attribute15
199       ,p_ppr_attribute16                =>  p_ppr_attribute16
200       ,p_ppr_attribute17                =>  p_ppr_attribute17
201       ,p_ppr_attribute18                =>  p_ppr_attribute18
202       ,p_ppr_attribute19                =>  p_ppr_attribute19
203       ,p_ppr_attribute20                =>  p_ppr_attribute20
204       ,p_ppr_attribute21                =>  p_ppr_attribute21
205       ,p_ppr_attribute22                =>  p_ppr_attribute22
206       ,p_ppr_attribute23                =>  p_ppr_attribute23
207       ,p_ppr_attribute24                =>  p_ppr_attribute24
208       ,p_ppr_attribute25                =>  p_ppr_attribute25
209       ,p_ppr_attribute26                =>  p_ppr_attribute26
210       ,p_ppr_attribute27                =>  p_ppr_attribute27
211       ,p_ppr_attribute28                =>  p_ppr_attribute28
212       ,p_ppr_attribute29                =>  p_ppr_attribute29
213       ,p_ppr_attribute30                =>  p_ppr_attribute30
214       ,p_request_id                     =>  p_request_id
215       ,p_program_application_id         =>  p_program_application_id
216       ,p_program_id                     =>  p_program_id
217       ,p_program_update_date            =>  p_program_update_date
218       ,p_effective_date                 => trunc(p_effective_date)
219       );
220   exception
221     when hr_api.cannot_find_prog_unit then
222       hr_api.cannot_find_prog_unit_error
223         (
224          p_module_name => 'CREATE_PRMRY_CARE_PRVDR'
225         ,p_hook_type   => 'BP'
226         );
227     --
228     -- End of API User Hook for the before hook of create_PRMRY_CARE_PRVDR
229     --
230   end;
231   --
232   ben_ppr_ins.ins
233     (
234      p_prmry_care_prvdr_id           => l_prmry_care_prvdr_id
235     ,p_effective_start_date          => l_effective_start_date
236     ,p_effective_end_date            => l_effective_end_date
237     ,p_prmry_care_prvdr_typ_cd       => p_prmry_care_prvdr_typ_cd
238     ,p_name                          => p_name
239     ,p_ext_ident                     => p_ext_ident
240     ,p_prtt_enrt_rslt_id             => p_prtt_enrt_rslt_id
241     ,p_elig_cvrd_dpnt_id             => p_elig_cvrd_dpnt_id
242     ,p_business_group_id             => p_business_group_id
243     ,p_ppr_attribute_category        => p_ppr_attribute_category
244     ,p_ppr_attribute1                => p_ppr_attribute1
245     ,p_ppr_attribute2                => p_ppr_attribute2
246     ,p_ppr_attribute3                => p_ppr_attribute3
247     ,p_ppr_attribute4                => p_ppr_attribute4
248     ,p_ppr_attribute5                => p_ppr_attribute5
249     ,p_ppr_attribute6                => p_ppr_attribute6
250     ,p_ppr_attribute7                => p_ppr_attribute7
251     ,p_ppr_attribute8                => p_ppr_attribute8
252     ,p_ppr_attribute9                => p_ppr_attribute9
253     ,p_ppr_attribute10               => p_ppr_attribute10
254     ,p_ppr_attribute11               => p_ppr_attribute11
255     ,p_ppr_attribute12               => p_ppr_attribute12
256     ,p_ppr_attribute13               => p_ppr_attribute13
257     ,p_ppr_attribute14               => p_ppr_attribute14
258     ,p_ppr_attribute15               => p_ppr_attribute15
259     ,p_ppr_attribute16               => p_ppr_attribute16
260     ,p_ppr_attribute17               => p_ppr_attribute17
261     ,p_ppr_attribute18               => p_ppr_attribute18
262     ,p_ppr_attribute19               => p_ppr_attribute19
263     ,p_ppr_attribute20               => p_ppr_attribute20
264     ,p_ppr_attribute21               => p_ppr_attribute21
265     ,p_ppr_attribute22               => p_ppr_attribute22
266     ,p_ppr_attribute23               => p_ppr_attribute23
267     ,p_ppr_attribute24               => p_ppr_attribute24
268     ,p_ppr_attribute25               => p_ppr_attribute25
269     ,p_ppr_attribute26               => p_ppr_attribute26
270     ,p_ppr_attribute27               => p_ppr_attribute27
271     ,p_ppr_attribute28               => p_ppr_attribute28
272     ,p_ppr_attribute29               => p_ppr_attribute29
273     ,p_ppr_attribute30               => p_ppr_attribute30
274     ,p_request_id                    => p_request_id
275     ,p_program_application_id        => p_program_application_id
276     ,p_program_id                    => p_program_id
277     ,p_program_update_date           => p_program_update_date
278     ,p_object_version_number         => l_object_version_number
279     ,p_effective_date                => trunc(p_effective_date)
280     );
281   --
282   -- record an extract change event
283   --
284   ben_ext_chlg.log_pcp_chg
285        (p_action               => 'CREATE',
286         p_ext_ident            => p_ext_ident,
287         p_name                 => p_name,
288         p_prmry_care_prvdr_typ_cd => p_prmry_care_prvdr_typ_cd,
289         p_prmry_care_prvdr_id  => l_prmry_care_prvdr_id,
290         p_elig_cvrd_dpnt_id    => p_elig_cvrd_dpnt_id,
291         p_prtt_enrt_rslt_id    => p_prtt_enrt_rslt_id,
292         p_business_group_id    => p_business_group_id,
293         p_effective_date       => p_effective_date);
294 
295   --  check for action items
296       pcp_actn_items(
297            p_prtt_enrt_rslt_id  => p_prtt_enrt_rslt_id
298           ,p_elig_cvrd_dpnt_id  => p_elig_cvrd_dpnt_id
299           ,p_effective_date     => p_effective_date
300           ,p_business_group_id  => p_business_group_id
301           ,p_validate           => p_validate
302           ,p_datetrack_mode     => null
303           );
304   begin
305     --
306     -- Start of API User Hook for the after hook of create_PRMRY_CARE_PRVDR
307     --
308     ben_PRMRY_CARE_PRVDR_bk1.create_PRMRY_CARE_PRVDR_a
309       (
310        p_prmry_care_prvdr_id            =>  l_prmry_care_prvdr_id
311       ,p_effective_start_date           =>  l_effective_start_date
312       ,p_effective_end_date             =>  l_effective_end_date
313       ,p_prmry_care_prvdr_typ_cd        =>  p_prmry_care_prvdr_typ_cd
314       ,p_name                           =>  p_name
315       ,p_ext_ident                      =>  p_ext_ident
316       ,p_prtt_enrt_rslt_id              =>  p_prtt_enrt_rslt_id
317       ,p_elig_cvrd_dpnt_id              =>  p_elig_cvrd_dpnt_id
318       ,p_business_group_id              =>  p_business_group_id
319       ,p_ppr_attribute_category         =>  p_ppr_attribute_category
320       ,p_ppr_attribute1                 =>  p_ppr_attribute1
321       ,p_ppr_attribute2                 =>  p_ppr_attribute2
322       ,p_ppr_attribute3                 =>  p_ppr_attribute3
323       ,p_ppr_attribute4                 =>  p_ppr_attribute4
324       ,p_ppr_attribute5                 =>  p_ppr_attribute5
325       ,p_ppr_attribute6                 =>  p_ppr_attribute6
326       ,p_ppr_attribute7                 =>  p_ppr_attribute7
327       ,p_ppr_attribute8                 =>  p_ppr_attribute8
328       ,p_ppr_attribute9                 =>  p_ppr_attribute9
329       ,p_ppr_attribute10                =>  p_ppr_attribute10
330       ,p_ppr_attribute11                =>  p_ppr_attribute11
331       ,p_ppr_attribute12                =>  p_ppr_attribute12
332       ,p_ppr_attribute13                =>  p_ppr_attribute13
333       ,p_ppr_attribute14                =>  p_ppr_attribute14
334       ,p_ppr_attribute15                =>  p_ppr_attribute15
335       ,p_ppr_attribute16                =>  p_ppr_attribute16
336       ,p_ppr_attribute17                =>  p_ppr_attribute17
337       ,p_ppr_attribute18                =>  p_ppr_attribute18
338       ,p_ppr_attribute19                =>  p_ppr_attribute19
339       ,p_ppr_attribute20                =>  p_ppr_attribute20
340       ,p_ppr_attribute21                =>  p_ppr_attribute21
341       ,p_ppr_attribute22                =>  p_ppr_attribute22
342       ,p_ppr_attribute23                =>  p_ppr_attribute23
343       ,p_ppr_attribute24                =>  p_ppr_attribute24
344       ,p_ppr_attribute25                =>  p_ppr_attribute25
345       ,p_ppr_attribute26                =>  p_ppr_attribute26
346       ,p_ppr_attribute27                =>  p_ppr_attribute27
347       ,p_ppr_attribute28                =>  p_ppr_attribute28
348       ,p_ppr_attribute29                =>  p_ppr_attribute29
349       ,p_ppr_attribute30                =>  p_ppr_attribute30
350       ,p_request_id                     =>  p_request_id
351       ,p_program_application_id         =>  p_program_application_id
352       ,p_program_id                     =>  p_program_id
353       ,p_program_update_date            =>  p_program_update_date
354       ,p_object_version_number          =>  l_object_version_number
355       ,p_effective_date                      => trunc(p_effective_date)
356       );
357   exception
358     when hr_api.cannot_find_prog_unit then
359       hr_api.cannot_find_prog_unit_error
360         (p_module_name => 'CREATE_PRMRY_CARE_PRVDR'
361         ,p_hook_type   => 'AP'
362         );
363     --
364     -- End of API User Hook for the after hook of create_PRMRY_CARE_PRVDR
365     --
366   end;
367   --
368   hr_utility.set_location(l_proc, 60);
369   --
370   -- When in validation only mode raise the Validate_Enabled exception
371   --
372   if p_validate then
373     raise hr_api.validate_enabled;
374   end if;
375   --
376   -- Set all output arguments
377   --
378   p_prmry_care_prvdr_id := l_prmry_care_prvdr_id;
379   p_effective_start_date := l_effective_start_date;
380   p_effective_end_date := l_effective_end_date;
381   p_object_version_number := l_object_version_number;
382   --
383   hr_utility.set_location(' Leaving:'||l_proc, 70);
384   --
385 exception
386   --
387   when hr_api.validate_enabled then
388     --
389     -- As the Validate_Enabled exception has been raised
390     -- we must rollback to the savepoint
391     --
392     ROLLBACK TO create_PRMRY_CARE_PRVDR;
393     --
394     -- Only set output warning arguments
395     -- (Any key or derived arguments must be set to null
396     -- when validation only mode is being used.)
397     --
398     p_prmry_care_prvdr_id := null;
399     p_effective_start_date := null;
400     p_effective_end_date := null;
401     p_object_version_number  := null;
402     hr_utility.set_location(' Leaving:'||l_proc, 80);
403     --
404   when others then
405     --
406     -- A validation or unexpected error has occured
407     --
408     ROLLBACK TO create_PRMRY_CARE_PRVDR;
409     raise;
410     --
411 end create_PRMRY_CARE_PRVDR;
412 --
413 -- ----------------------------------------------------------------------------
414 -- |----------------------< create_prmry_care_prvdr_w >-----------------------|
415 -- ----------------------------------------------------------------------------
416 --
417 procedure create_prmry_care_prvdr_w
418 (
419    p_prmry_care_prvdr_id            out nocopy number
420   ,p_effective_start_date           out nocopy date
421   ,p_effective_end_date             out nocopy date
422   ,p_prmry_care_prvdr_typ_cd        in  varchar2  default null
423   ,p_name                           in  varchar2  default null
424   ,p_ext_ident                      in  varchar2  default null
425   ,p_prtt_enrt_rslt_id              in  number    default null
426   ,p_elig_cvrd_dpnt_id              in  number    default null
427   ,p_business_group_id              in  number    default null
428   ,p_object_version_number          out nocopy number
429   ,p_effective_date                 in  date
430   ,p_return_status                  out nocopy    varchar2
431 )
432 is
433 
434 --
435   l_proc varchar2(72) := g_package||'create_prmry_care_prvdr_w';
436 
437   l_prmry_care_prvdr_id ben_prmry_care_prvdr_f.prmry_care_prvdr_id%TYPE;
438   l_effective_start_date ben_prmry_care_prvdr_f.effective_start_date%TYPE;
439   l_effective_end_date ben_prmry_care_prvdr_f.effective_end_date%TYPE;
440   l_object_version_number ben_prmry_care_prvdr_f.object_version_number%TYPE;
441 --
442 begin
443   --
444   hr_utility.set_location('Entering:'|| l_proc, 10);
445   fnd_msg_pub.initialize;
446 
447   create_prmry_care_prvdr
448   (
449      p_prmry_care_prvdr_id      => l_prmry_care_prvdr_id
450     ,p_effective_start_date     => l_effective_start_date
451     ,p_effective_end_date       => l_effective_end_date
452     ,p_prmry_care_prvdr_typ_cd  => p_prmry_care_prvdr_typ_cd
453     ,p_name                     => p_name
454     ,p_ext_ident                => p_ext_ident
455     ,p_prtt_enrt_rslt_id        => p_prtt_enrt_rslt_id
456     ,p_elig_cvrd_dpnt_id        => p_elig_cvrd_dpnt_id
457     ,p_business_group_id        => p_business_group_id
458     ,p_object_version_number    => l_object_version_number
459     ,p_effective_date           => p_effective_date
460   );
461   --
462   --
463   -- Set all output arguments
464   --
465   p_prmry_care_prvdr_id   := l_prmry_care_prvdr_id;
466   p_effective_start_date  := l_effective_start_date;
467   p_effective_end_date    := l_effective_end_date;
468   p_object_version_number := l_object_version_number;
469   p_return_status	  := 'S';
470 
471   hr_utility.set_location(' Leaving:'||l_proc, 40);
472   --
473   exception
474   --
475   when others then
476     --
477     -- A validation or unexpected error has occured
478     --
479     hr_utility.set_location('Exception:'|| l_proc, 100);
480     p_prmry_care_prvdr_id    := null;
481     p_effective_start_date   := null;
482     p_effective_end_date     := null;
483     p_object_version_number  := null;
484     p_return_status	     := 'E';
485     fnd_msg_pub.add;
486     --
487 End create_prmry_care_prvdr_w;
488 --
489 -- ----------------------------------------------------------------------------
490 -- |------------------------< update_PRMRY_CARE_PRVDR >--- ------------------|
491 -- ----------------------------------------------------------------------------
492 --
493 procedure update_PRMRY_CARE_PRVDR
494   (p_validate                       in  boolean   default false
495   ,p_prmry_care_prvdr_id            in  number
496   ,p_effective_start_date           out nocopy date
497   ,p_effective_end_date             out nocopy date
498   ,p_prmry_care_prvdr_typ_cd        in  varchar2  default hr_api.g_varchar2
499   ,p_name                           in  varchar2  default hr_api.g_varchar2
500   ,p_ext_ident                      in  varchar2  default hr_api.g_varchar2
501   ,p_prtt_enrt_rslt_id              in  number    default hr_api.g_number
502   ,p_elig_cvrd_dpnt_id              in  number    default hr_api.g_number
503   ,p_business_group_id              in  number    default hr_api.g_number
504   ,p_ppr_attribute_category         in  varchar2  default hr_api.g_varchar2
505   ,p_ppr_attribute1                 in  varchar2  default hr_api.g_varchar2
506   ,p_ppr_attribute2                 in  varchar2  default hr_api.g_varchar2
507   ,p_ppr_attribute3                 in  varchar2  default hr_api.g_varchar2
508   ,p_ppr_attribute4                 in  varchar2  default hr_api.g_varchar2
509   ,p_ppr_attribute5                 in  varchar2  default hr_api.g_varchar2
510   ,p_ppr_attribute6                 in  varchar2  default hr_api.g_varchar2
511   ,p_ppr_attribute7                 in  varchar2  default hr_api.g_varchar2
512   ,p_ppr_attribute8                 in  varchar2  default hr_api.g_varchar2
513   ,p_ppr_attribute9                 in  varchar2  default hr_api.g_varchar2
514   ,p_ppr_attribute10                in  varchar2  default hr_api.g_varchar2
515   ,p_ppr_attribute11                in  varchar2  default hr_api.g_varchar2
516   ,p_ppr_attribute12                in  varchar2  default hr_api.g_varchar2
517   ,p_ppr_attribute13                in  varchar2  default hr_api.g_varchar2
518   ,p_ppr_attribute14                in  varchar2  default hr_api.g_varchar2
519   ,p_ppr_attribute15                in  varchar2  default hr_api.g_varchar2
520   ,p_ppr_attribute16                in  varchar2  default hr_api.g_varchar2
521   ,p_ppr_attribute17                in  varchar2  default hr_api.g_varchar2
522   ,p_ppr_attribute18                in  varchar2  default hr_api.g_varchar2
523   ,p_ppr_attribute19                in  varchar2  default hr_api.g_varchar2
524   ,p_ppr_attribute20                in  varchar2  default hr_api.g_varchar2
525   ,p_ppr_attribute21                in  varchar2  default hr_api.g_varchar2
526   ,p_ppr_attribute22                in  varchar2  default hr_api.g_varchar2
527   ,p_ppr_attribute23                in  varchar2  default hr_api.g_varchar2
528   ,p_ppr_attribute24                in  varchar2  default hr_api.g_varchar2
529   ,p_ppr_attribute25                in  varchar2  default hr_api.g_varchar2
530   ,p_ppr_attribute26                in  varchar2  default hr_api.g_varchar2
531   ,p_ppr_attribute27                in  varchar2  default hr_api.g_varchar2
532   ,p_ppr_attribute28                in  varchar2  default hr_api.g_varchar2
533   ,p_ppr_attribute29                in  varchar2  default hr_api.g_varchar2
534   ,p_ppr_attribute30                in  varchar2  default hr_api.g_varchar2
535   ,p_request_id                     in  number    default hr_api.g_number
536   ,p_program_application_id         in  number    default hr_api.g_number
537   ,p_program_id                     in  number    default hr_api.g_number
538   ,p_program_update_date            in  date      default hr_api.g_date
539   ,p_object_version_number          in out nocopy number
540   ,p_effective_date                 in  date
541   ,p_datetrack_mode                 in  varchar2
542   ) is
543   --
544   -- Declare cursors and local variables
545   --
546   l_proc varchar2(72) := g_package||'update_PRMRY_CARE_PRVDR';
547   l_object_version_number ben_prmry_care_prvdr_f.object_version_number%TYPE;
548   l_effective_start_date  ben_prmry_care_prvdr_f.effective_start_date%TYPE;
549   l_effective_end_date    ben_prmry_care_prvdr_f.effective_end_date%TYPE;
550   --
551   cursor c_old_pcp_values
552   is
553   select pcp.prmry_care_prvdr_typ_cd,
554          pcp.name,
555          pcp.ext_ident,
556          pcp.prtt_enrt_rslt_id,
557          pcp.elig_cvrd_dpnt_id
558   from ben_prmry_care_prvdr_f pcp
559   where pcp.prmry_care_prvdr_id = p_prmry_care_prvdr_id
560   and p_effective_date between pcp.effective_start_date and pcp.effective_end_date;
561 
562   l_old_pcp_values     c_old_pcp_values%rowtype;
563   l_datetrack_mode     varchar2(80);
564 
565 begin
566   hr_utility.set_location('Entering:'|| l_proc, 10);
567   --
568   -- Issue a savepoint if operating in validation only mode
569   --
570   savepoint update_PRMRY_CARE_PRVDR;
571   hr_utility.set_location(l_proc, 20);
572 
573   -- added for logging change events for extract
574   open c_old_pcp_values;
575   fetch c_old_pcp_values into l_old_pcp_values;
576   close c_old_pcp_values;
577   --
578   -- Process Logic
579   --
580   l_object_version_number := p_object_version_number;
581 
582   determine_datetrack_mode
583                   (p_effective_date         => p_effective_date
584                   ,p_base_key_value         => p_prmry_care_prvdr_id
585                   ,p_desired_datetrack_mode => p_datetrack_mode
586                   ,p_mini_mode              => 'U'
587                   ,p_datetrack_allow        => l_datetrack_mode);
588 
589 
590   begin
591     --
592     -- Start of API User Hook for the before hook of update_PRMRY_CARE_PRVDR
593     --
594     ben_PRMRY_CARE_PRVDR_bk2.update_PRMRY_CARE_PRVDR_b
595       (
596        p_prmry_care_prvdr_id            =>  p_prmry_care_prvdr_id
597       ,p_prmry_care_prvdr_typ_cd        =>  p_prmry_care_prvdr_typ_cd
598       ,p_name                           =>  p_name
599       ,p_ext_ident                      =>  p_ext_ident
600       ,p_prtt_enrt_rslt_id              =>  p_prtt_enrt_rslt_id
601       ,p_elig_cvrd_dpnt_id              =>  p_elig_cvrd_dpnt_id
602       ,p_business_group_id              =>  p_business_group_id
603       ,p_ppr_attribute_category         =>  p_ppr_attribute_category
604       ,p_ppr_attribute1                 =>  p_ppr_attribute1
605       ,p_ppr_attribute2                 =>  p_ppr_attribute2
606       ,p_ppr_attribute3                 =>  p_ppr_attribute3
607       ,p_ppr_attribute4                 =>  p_ppr_attribute4
608       ,p_ppr_attribute5                 =>  p_ppr_attribute5
609       ,p_ppr_attribute6                 =>  p_ppr_attribute6
610       ,p_ppr_attribute7                 =>  p_ppr_attribute7
611       ,p_ppr_attribute8                 =>  p_ppr_attribute8
612       ,p_ppr_attribute9                 =>  p_ppr_attribute9
613       ,p_ppr_attribute10                =>  p_ppr_attribute10
614       ,p_ppr_attribute11                =>  p_ppr_attribute11
615       ,p_ppr_attribute12                =>  p_ppr_attribute12
616       ,p_ppr_attribute13                =>  p_ppr_attribute13
617       ,p_ppr_attribute14                =>  p_ppr_attribute14
618       ,p_ppr_attribute15                =>  p_ppr_attribute15
619       ,p_ppr_attribute16                =>  p_ppr_attribute16
620       ,p_ppr_attribute17                =>  p_ppr_attribute17
621       ,p_ppr_attribute18                =>  p_ppr_attribute18
622       ,p_ppr_attribute19                =>  p_ppr_attribute19
623       ,p_ppr_attribute20                =>  p_ppr_attribute20
624       ,p_ppr_attribute21                =>  p_ppr_attribute21
625       ,p_ppr_attribute22                =>  p_ppr_attribute22
626       ,p_ppr_attribute23                =>  p_ppr_attribute23
627       ,p_ppr_attribute24                =>  p_ppr_attribute24
628       ,p_ppr_attribute25                =>  p_ppr_attribute25
629       ,p_ppr_attribute26                =>  p_ppr_attribute26
630       ,p_ppr_attribute27                =>  p_ppr_attribute27
631       ,p_ppr_attribute28                =>  p_ppr_attribute28
632       ,p_ppr_attribute29                =>  p_ppr_attribute29
633       ,p_ppr_attribute30                =>  p_ppr_attribute30
634       ,p_request_id                     =>  p_request_id
635       ,p_program_application_id         =>  p_program_application_id
636       ,p_program_id                     =>  p_program_id
637       ,p_program_update_date            =>  p_program_update_date
638       ,p_object_version_number          =>  p_object_version_number
639       ,p_effective_date                 => trunc(p_effective_date)
640       ,p_datetrack_mode                 => l_datetrack_mode
641       );
642   exception
643     when hr_api.cannot_find_prog_unit then
644       hr_api.cannot_find_prog_unit_error
645         (p_module_name => 'UPDATE_PRMRY_CARE_PRVDR'
646         ,p_hook_type   => 'BP'
647         );
648     --
649     -- End of API User Hook for the before hook of update_PRMRY_CARE_PRVDR
650     --
651   end;
652   --
653   ben_ppr_upd.upd
654     (
655      p_prmry_care_prvdr_id           => p_prmry_care_prvdr_id
656     ,p_effective_start_date          => l_effective_start_date
657     ,p_effective_end_date            => l_effective_end_date
658     ,p_prmry_care_prvdr_typ_cd       => p_prmry_care_prvdr_typ_cd
659     ,p_name                          => p_name
660     ,p_ext_ident                     => p_ext_ident
661     ,p_prtt_enrt_rslt_id             => p_prtt_enrt_rslt_id
662     ,p_elig_cvrd_dpnt_id             => p_elig_cvrd_dpnt_id
663     ,p_business_group_id             => p_business_group_id
664     ,p_ppr_attribute_category        => p_ppr_attribute_category
665     ,p_ppr_attribute1                => p_ppr_attribute1
666     ,p_ppr_attribute2                => p_ppr_attribute2
667     ,p_ppr_attribute3                => p_ppr_attribute3
668     ,p_ppr_attribute4                => p_ppr_attribute4
669     ,p_ppr_attribute5                => p_ppr_attribute5
670     ,p_ppr_attribute6                => p_ppr_attribute6
671     ,p_ppr_attribute7                => p_ppr_attribute7
672     ,p_ppr_attribute8                => p_ppr_attribute8
673     ,p_ppr_attribute9                => p_ppr_attribute9
674     ,p_ppr_attribute10               => p_ppr_attribute10
675     ,p_ppr_attribute11               => p_ppr_attribute11
676     ,p_ppr_attribute12               => p_ppr_attribute12
677     ,p_ppr_attribute13               => p_ppr_attribute13
678     ,p_ppr_attribute14               => p_ppr_attribute14
679     ,p_ppr_attribute15               => p_ppr_attribute15
680     ,p_ppr_attribute16               => p_ppr_attribute16
681     ,p_ppr_attribute17               => p_ppr_attribute17
682     ,p_ppr_attribute18               => p_ppr_attribute18
683     ,p_ppr_attribute19               => p_ppr_attribute19
684     ,p_ppr_attribute20               => p_ppr_attribute20
685     ,p_ppr_attribute21               => p_ppr_attribute21
686     ,p_ppr_attribute22               => p_ppr_attribute22
687     ,p_ppr_attribute23               => p_ppr_attribute23
688     ,p_ppr_attribute24               => p_ppr_attribute24
689     ,p_ppr_attribute25               => p_ppr_attribute25
690     ,p_ppr_attribute26               => p_ppr_attribute26
691     ,p_ppr_attribute27               => p_ppr_attribute27
692     ,p_ppr_attribute28               => p_ppr_attribute28
693     ,p_ppr_attribute29               => p_ppr_attribute29
694     ,p_ppr_attribute30               => p_ppr_attribute30
695     ,p_request_id                    => p_request_id
696     ,p_program_application_id        => p_program_application_id
697     ,p_program_id                    => p_program_id
698     ,p_program_update_date           => p_program_update_date
699     ,p_object_version_number         => l_object_version_number
700     ,p_effective_date                => trunc(p_effective_date)
701     ,p_datetrack_mode                => l_datetrack_mode
702     );
703     --
704     ben_ext_chlg.log_pcp_chg
705        (p_action               => 'UPDATE',
706         p_ext_ident            => p_ext_ident,
707         p_old_ext_ident        => l_old_pcp_values.ext_ident,
708         p_name                 => p_name,
709         p_old_name             => l_old_pcp_values.name,
710         p_prmry_care_prvdr_typ_cd => p_prmry_care_prvdr_typ_cd,
711         p_old_prmry_care_prvdr_typ_cd => l_old_pcp_values.prmry_care_prvdr_typ_cd,
712         p_prmry_care_prvdr_id  => p_prmry_care_prvdr_id,
713         p_elig_cvrd_dpnt_id    => l_old_pcp_values.elig_cvrd_dpnt_id,
714         p_prtt_enrt_rslt_id    => l_old_pcp_values.prtt_enrt_rslt_id,
715         p_business_group_id    => p_business_group_id,
716         p_effective_date       => p_effective_date);
717   --
718   begin
719     --
720     -- Start of API User Hook for the after hook of update_PRMRY_CARE_PRVDR
721     --
722     ben_PRMRY_CARE_PRVDR_bk2.update_PRMRY_CARE_PRVDR_a
723       (
724        p_prmry_care_prvdr_id            =>  p_prmry_care_prvdr_id
725       ,p_effective_start_date           =>  l_effective_start_date
726       ,p_effective_end_date             =>  l_effective_end_date
727       ,p_prmry_care_prvdr_typ_cd        =>  p_prmry_care_prvdr_typ_cd
728       ,p_name                           =>  p_name
729       ,p_ext_ident                      =>  p_ext_ident
730       ,p_prtt_enrt_rslt_id              =>  p_prtt_enrt_rslt_id
731       ,p_elig_cvrd_dpnt_id              =>  p_elig_cvrd_dpnt_id
732       ,p_business_group_id              =>  p_business_group_id
733       ,p_ppr_attribute_category         =>  p_ppr_attribute_category
734       ,p_ppr_attribute1                 =>  p_ppr_attribute1
735       ,p_ppr_attribute2                 =>  p_ppr_attribute2
736       ,p_ppr_attribute3                 =>  p_ppr_attribute3
737       ,p_ppr_attribute4                 =>  p_ppr_attribute4
738       ,p_ppr_attribute5                 =>  p_ppr_attribute5
739       ,p_ppr_attribute6                 =>  p_ppr_attribute6
740       ,p_ppr_attribute7                 =>  p_ppr_attribute7
741       ,p_ppr_attribute8                 =>  p_ppr_attribute8
742       ,p_ppr_attribute9                 =>  p_ppr_attribute9
743       ,p_ppr_attribute10                =>  p_ppr_attribute10
744       ,p_ppr_attribute11                =>  p_ppr_attribute11
745       ,p_ppr_attribute12                =>  p_ppr_attribute12
746       ,p_ppr_attribute13                =>  p_ppr_attribute13
747       ,p_ppr_attribute14                =>  p_ppr_attribute14
748       ,p_ppr_attribute15                =>  p_ppr_attribute15
749       ,p_ppr_attribute16                =>  p_ppr_attribute16
750       ,p_ppr_attribute17                =>  p_ppr_attribute17
751       ,p_ppr_attribute18                =>  p_ppr_attribute18
752       ,p_ppr_attribute19                =>  p_ppr_attribute19
753       ,p_ppr_attribute20                =>  p_ppr_attribute20
754       ,p_ppr_attribute21                =>  p_ppr_attribute21
755       ,p_ppr_attribute22                =>  p_ppr_attribute22
756       ,p_ppr_attribute23                =>  p_ppr_attribute23
757       ,p_ppr_attribute24                =>  p_ppr_attribute24
758       ,p_ppr_attribute25                =>  p_ppr_attribute25
759       ,p_ppr_attribute26                =>  p_ppr_attribute26
760       ,p_ppr_attribute27                =>  p_ppr_attribute27
761       ,p_ppr_attribute28                =>  p_ppr_attribute28
762       ,p_ppr_attribute29                =>  p_ppr_attribute29
763       ,p_ppr_attribute30                =>  p_ppr_attribute30
764       ,p_request_id                     =>  p_request_id
765       ,p_program_application_id         =>  p_program_application_id
766       ,p_program_id                     =>  p_program_id
767       ,p_program_update_date            =>  p_program_update_date
768       ,p_object_version_number          =>  l_object_version_number
769       ,p_effective_date                 => trunc(p_effective_date)
770       ,p_datetrack_mode                 => l_datetrack_mode
771       );
772   exception
773     when hr_api.cannot_find_prog_unit then
774       hr_api.cannot_find_prog_unit_error
775         (p_module_name => 'UPDATE_PRMRY_CARE_PRVDR'
776         ,p_hook_type   => 'AP' );
777     --
778     -- End of API User Hook for the after hook of update_PRMRY_CARE_PRVDR
779     --
780   end;
781   --
782   hr_utility.set_location(l_proc, 60);
783   --
784   -- When in validation only mode raise the Validate_Enabled exception
785   --
786   if p_validate then
787     raise hr_api.validate_enabled;
788   end if;
789   --
790   -- Set all output arguments
791   --
792   p_object_version_number := l_object_version_number;
793   p_effective_start_date := l_effective_start_date;
794   p_effective_end_date := l_effective_end_date;
795   --
796   hr_utility.set_location(' Leaving:'||l_proc, 70);
797   --
798 exception
799   --
800   when hr_api.validate_enabled then
801     --
802     -- As the Validate_Enabled exception has been raised
803     -- we must rollback to the savepoint
804     --
805     ROLLBACK TO update_PRMRY_CARE_PRVDR;
806     --
807     -- Only set output warning arguments
808     -- (Any key or derived arguments must be set to null
809     -- when validation only mode is being used.)
810     --
811     hr_utility.set_location(' Leaving:'||l_proc, 80);
812     --
813   when others then
814     --
815     -- A validation or unexpected error has occured
816     --
817     ROLLBACK TO update_PRMRY_CARE_PRVDR;
818     raise;
819     --
820 end update_PRMRY_CARE_PRVDR;
821 --
822 -- ----------------------------------------------------------------------------
823 -- |----------------------< update_prmry_care_prvdr_w >-----------------------|
824 -- ----------------------------------------------------------------------------
825 --
826 procedure update_prmry_care_prvdr_w
827 (
828     p_prmry_care_prvdr_id            in  number
829    ,p_effective_start_date           out nocopy date
830    ,p_effective_end_date             out nocopy date
831    ,p_prmry_care_prvdr_typ_cd        in  varchar2  default hr_api.g_varchar2
832    ,p_name                           in  varchar2  default hr_api.g_varchar2
833    ,p_ext_ident                      in  varchar2  default hr_api.g_varchar2
834    ,p_prtt_enrt_rslt_id              in  number    default hr_api.g_number
835    ,p_elig_cvrd_dpnt_id              in  number    default hr_api.g_number
836    ,p_business_group_id              in  number    default hr_api.g_number
837    ,p_object_version_number          in out nocopy number
838    ,p_effective_date                 in  date
839    ,p_datetrack_mode                 in  varchar2
840    ,p_return_status                  out nocopy    varchar2
841 )
842 is
843   --
844   l_proc varchar2(72) := g_package||'update_prmry_care_prvdr_w';
845   l_object_version_number ben_prmry_care_prvdr_f.object_version_number%TYPE;
846   l_effective_start_date  ben_prmry_care_prvdr_f.effective_start_date%TYPE;
847   l_effective_end_date    ben_prmry_care_prvdr_f.effective_end_date%TYPE;
848   --
849 begin
850   --
851   hr_utility.set_location('Entering:'|| l_proc, 10);
852   fnd_msg_pub.initialize;
853 
854   l_object_version_number := p_object_version_number;
855   update_prmry_care_prvdr
856   (
857      p_prmry_care_prvdr_id      => p_prmry_care_prvdr_id
858     ,p_effective_start_date     => l_effective_start_date
859     ,p_effective_end_date       => l_effective_end_date
860     ,p_prmry_care_prvdr_typ_cd  => p_prmry_care_prvdr_typ_cd
861     ,p_name                     => p_name
862     ,p_ext_ident                => p_ext_ident
863     ,p_business_group_id        => p_business_group_id
864     ,p_object_version_number    => l_object_version_number
865     ,p_effective_date           => p_effective_date
866     ,p_datetrack_mode           => p_datetrack_mode
867   );
868   --
869   -- Set all output arguments
870   --
871   p_object_version_number := l_object_version_number;
872   p_effective_start_date  := l_effective_start_date;
873   p_effective_end_date    := l_effective_end_date;
874   p_return_status	  := 'S';
875   --
876   hr_utility.set_location('Leaving:'||l_proc, 40);
877   --
878   exception
879   --
880   when others then
881     --
882     -- A validation or unexpected error has occured
883     --
884     hr_utility.set_location('Exception:'||l_proc, 100);
885     p_effective_start_date := null;
886     p_effective_end_date   := null;
887     p_return_status	   := 'E';
888     fnd_msg_pub.add;
889     --
890 end update_prmry_care_prvdr_w;
891 --
892 -- ----------------------------------------------------------------------------
893 -- |------------------------< delete_PRMRY_CARE_PRVDR >----------------------|
894 -- ----------------------------------------------------------------------------
895 --
896 procedure delete_PRMRY_CARE_PRVDR
897   (p_validate                       in  boolean  default false
898   ,p_prmry_care_prvdr_id            in  number
899   ,p_effective_start_date           out nocopy date
900   ,p_effective_end_date             out nocopy date
901   ,p_object_version_number          in out nocopy number
902   ,p_effective_date                 in  date
903   ,p_datetrack_mode                 in  varchar2
904   ,p_called_from                    in varchar2
905   ) is
906   --
907   -- Declare cursors and local variables
908   --
909   l_proc varchar2(72) := g_package||'delete_PRMRY_CARE_PRVDR';
910   l_object_version_number ben_prmry_care_prvdr_f.object_version_number%TYPE;
911   l_effective_start_date  ben_prmry_care_prvdr_f.effective_start_date%TYPE;
912   l_effective_end_date    ben_prmry_care_prvdr_f.effective_end_date%TYPE;
913   l_effective_date        date;
914 
915   cursor c_old_pcp_values
916   is
917   select pcp.prmry_care_prvdr_typ_cd,
918          pcp.name,
919          pcp.ext_ident,
920          pcp.prtt_enrt_rslt_id,
921          pcp.elig_cvrd_dpnt_id,
922          pcp.business_group_id,
923          pcp.effective_start_date
924   from ben_prmry_care_prvdr_f pcp
925   where pcp.prmry_care_prvdr_id = p_prmry_care_prvdr_id
926   and p_effective_date between pcp.effective_start_date and pcp.effective_end_date;
927 
928   l_old_pcp_values     c_old_pcp_values%rowtype;
929   l_datetrack_mode     varchar2(80);
930   l_desired_dt_mode    varchar2(80);
931 begin
932   hr_utility.set_location('Entering:'|| l_proc, 10);
933   --
934   -- Issue a savepoint if operating in validation only mode
935   --
936   savepoint delete_PRMRY_CARE_PRVDR;
937   hr_utility.set_location(l_proc, 20);
938 
939   -- added for logging change events for extract
940   open c_old_pcp_values;
941   fetch c_old_pcp_values into l_old_pcp_values;
942   close c_old_pcp_values;
943 
944   -- we want to delete as of yesterday so the pcp doesn't show up on the web page
945   -- after it's deleted.  But can only change the date if the record didn't
946   -- start on the eff-date passed in.
947   if l_old_pcp_values.effective_start_date <> p_effective_date then
948      l_effective_date := p_effective_date -1;
949      l_desired_dt_mode := p_datetrack_mode;
950   else
951      -- to make the functionality similar when the dates are the same,
952      -- zap the record.  This is needed for web functionality. Felt that
953      -- functionality should be same from web and back-office form.
954      l_effective_date := p_effective_date ;
955      l_desired_dt_mode := 'ZAP';
956   end if;
957 
958   -- Process Logic
959   l_object_version_number := p_object_version_number;
960 
961   determine_datetrack_mode
962                   (p_effective_date         => l_effective_date
963                   ,p_base_key_value         => p_prmry_care_prvdr_id
964                   ,p_desired_datetrack_mode => l_desired_dt_mode
965                   ,p_mini_mode              => 'D'
966                   ,p_datetrack_allow        => l_datetrack_mode);
967 
968 
969   begin
970     --
971     -- Start of API User Hook for the before hook of delete_PRMRY_CARE_PRVDR
972     --
973     ben_PRMRY_CARE_PRVDR_bk3.delete_PRMRY_CARE_PRVDR_b
974       (
975        p_prmry_care_prvdr_id            => p_prmry_care_prvdr_id
976       ,p_object_version_number          => p_object_version_number
977       ,p_effective_date                 => trunc(l_effective_date)
978       ,p_datetrack_mode                 => l_datetrack_mode
979       );
980   exception
981     when hr_api.cannot_find_prog_unit then
982       hr_api.cannot_find_prog_unit_error
983         (p_module_name => 'DELETE_PRMRY_CARE_PRVDR'
984         ,p_hook_type   => 'BP' );
985     --
986     -- End of API User Hook for the before hook of delete_PRMRY_CARE_PRVDR
987     --
988   end;
989   --
990   ben_ppr_del.del
991     (
992      p_prmry_care_prvdr_id           => p_prmry_care_prvdr_id
993     ,p_effective_start_date          => l_effective_start_date
994     ,p_effective_end_date            => l_effective_end_date
995     ,p_object_version_number         => l_object_version_number
996     ,p_effective_date                => l_effective_date
997     ,p_datetrack_mode                => l_datetrack_mode
998     );
999   --
1000     -- write to the extract change log
1001     --
1002      ben_ext_chlg.log_pcp_chg
1003        (p_action               => 'DELETE',
1004         p_old_ext_ident        => l_old_pcp_values.ext_ident,
1005         p_old_name             => l_old_pcp_values.name,
1006         p_old_prmry_care_prvdr_typ_cd => l_old_pcp_values.prmry_care_prvdr_typ_cd,
1007         p_prmry_care_prvdr_id  => p_prmry_care_prvdr_id,
1008         p_elig_cvrd_dpnt_id    => l_old_pcp_values.elig_cvrd_dpnt_id,
1009         p_prtt_enrt_rslt_id    => l_old_pcp_values.prtt_enrt_rslt_id,
1010         p_business_group_id    => l_old_pcp_values.business_group_id,
1011         p_effective_date       => l_effective_date);
1012 -- 4879576
1013 /*hr_utility.set_location('SSARKAR l_old_pcp_values.prtt_enrt_rslt_id '|| l_old_pcp_values.prtt_enrt_rslt_id,99099);
1014 hr_utility.set_location('SSARKAR l_old_pcp_values.elig_cvrd_dpnt_id '|| l_old_pcp_values.elig_cvrd_dpnt_id,99099);
1015 hr_utility.set_location('SSARKAR l_effective_date '|| l_effective_date,99099);
1016 hr_utility.set_location('SSARKAR l_old_pcp_values.business_group_id '|| l_old_pcp_values.business_group_id,99099);
1017 hr_utility.set_location('SSARKAR l_datetrack_mode '|| l_datetrack_mode,99099);
1018 */
1019  if p_called_from is null then
1020    pcp_actn_items(
1021            p_prtt_enrt_rslt_id  => l_old_pcp_values.prtt_enrt_rslt_id
1022           ,p_elig_cvrd_dpnt_id  => l_old_pcp_values.elig_cvrd_dpnt_id
1023           ,p_effective_date     => l_effective_date
1024           ,p_business_group_id  => l_old_pcp_values.business_group_id
1025           ,p_validate           => p_validate
1026           ,p_datetrack_mode     => l_datetrack_mode
1027           );
1028   end if;
1029 -- END 4879576
1030   begin
1031     --
1032     -- Start of API User Hook for the after hook of delete_PRMRY_CARE_PRVDR
1033     --
1034     ben_PRMRY_CARE_PRVDR_bk3.delete_PRMRY_CARE_PRVDR_a
1035       (
1036        p_prmry_care_prvdr_id            => p_prmry_care_prvdr_id
1037       ,p_effective_start_date           => l_effective_start_date
1038       ,p_effective_end_date             => l_effective_end_date
1039       ,p_object_version_number          => l_object_version_number
1040       ,p_effective_date                 => trunc(l_effective_date)
1041       ,p_datetrack_mode                 => l_datetrack_mode
1042       );
1043   exception
1044     when hr_api.cannot_find_prog_unit then
1045       hr_api.cannot_find_prog_unit_error
1046         (p_module_name => 'DELETE_PRMRY_CARE_PRVDR'
1047         ,p_hook_type   => 'AP'
1048         );
1049     --
1050     -- End of API User Hook for the after hook of delete_PRMRY_CARE_PRVDR
1051     --
1052   end;
1053   --
1054   hr_utility.set_location(l_proc, 60);
1055   --
1056   -- When in validation only mode raise the Validate_Enabled exception
1057   --
1058   if p_validate then
1059     raise hr_api.validate_enabled;
1060   end if;
1061   --
1062   hr_utility.set_location(' Leaving:'||l_proc, 70);
1063   --
1064 exception
1065   --
1066   when hr_api.validate_enabled then
1067     --
1068     -- As the Validate_Enabled exception has been raised
1069     -- we must rollback to the savepoint
1070     --
1071     ROLLBACK TO delete_PRMRY_CARE_PRVDR;
1072     --
1073     -- Only set output warning arguments
1074     -- (Any key or derived arguments must be set to null
1075     -- when validation only mode is being used.)
1076     --
1077     p_effective_start_date := null;
1078     p_effective_end_date := null;
1079     --
1080   when others then
1081     --
1082     -- A validation or unexpected error has occured
1083     --
1084     ROLLBACK TO delete_PRMRY_CARE_PRVDR;
1085     raise;
1086     --
1087 end delete_PRMRY_CARE_PRVDR;
1088 --
1089 -- ----------------------------------------------------------------------------
1090 -- |----------------------< delete_prmry_care_prvdr_w >-----------------------|
1091 -- ----------------------------------------------------------------------------
1092 procedure delete_prmry_care_prvdr_w
1093 (
1094      p_prmry_care_prvdr_id            in  number
1095     ,p_effective_start_date           out nocopy date
1096     ,p_effective_end_date             out nocopy date
1097     ,p_object_version_number          in out nocopy number
1098     ,p_effective_date                 in date
1099     ,p_datetrack_mode                 in varchar2
1100     ,p_return_status                  out nocopy    varchar2
1101 )
1102 is
1103 
1104   l_proc varchar2(72) := g_package||'delete_prmry_care_prvdr_w';
1105   l_object_version_number ben_prmry_care_prvdr_f.object_version_number%TYPE;
1106   l_effective_start_date  ben_prmry_care_prvdr_f.effective_start_date%TYPE;
1107   l_effective_end_date    ben_prmry_care_prvdr_f.effective_end_date%TYPE;
1108   --
1109 begin
1110   --
1111   hr_utility.set_location('Entering:'|| l_proc, 10);
1112   fnd_msg_pub.initialize;
1113   --
1114   l_object_version_number := p_object_version_number;
1115 
1116   delete_prmry_care_prvdr
1117   (
1118      p_prmry_care_prvdr_id      => p_prmry_care_prvdr_id
1119     ,p_effective_start_date     => l_effective_start_date
1120     ,p_effective_end_date       => l_effective_end_date
1121     ,p_object_version_number    => l_object_version_number
1122     ,p_effective_date           => p_effective_date
1123     ,p_datetrack_mode           => p_datetrack_mode
1124   );
1125   --
1126   p_effective_start_date  := l_effective_start_date;
1127   p_effective_end_date    := l_effective_end_date;
1128   p_object_version_number := l_object_version_number;
1129   p_return_status	  := 'S';
1130   --
1131   hr_utility.set_location(' Leaving:'||l_proc, 40);
1132   --
1133   exception
1134   --
1135   when others then
1136     --
1137     -- A validation or unexpected error has occured
1138     --
1139     hr_utility.set_location('Exception:'||l_proc, 100);
1140     p_effective_start_date  := null;
1141     p_effective_end_date    := null;
1142     p_return_status	    := 'E';
1143     fnd_msg_pub.add;
1144     --
1145 end delete_prmry_care_prvdr_w;
1146 --
1147 -- ----------------------------------------------------------------------------
1148 -- |-------------------------------< lck >------------------------------------|
1149 -- ----------------------------------------------------------------------------
1150 --
1151 procedure lck
1152   (
1153    p_prmry_care_prvdr_id                   in     number
1154   ,p_object_version_number          in     number
1155   ,p_effective_date                 in     date
1156   ,p_datetrack_mode                 in     varchar2
1157   ,p_validation_start_date          out nocopy    date
1158   ,p_validation_end_date            out nocopy    date
1159   ) is
1160   --
1161   --
1162   -- Declare cursors and local variables
1163   --
1164   l_proc varchar2(72) := g_package||'lck';
1165   l_validation_start_date date;
1166   l_validation_end_date date;
1167   --
1168 begin
1169   --
1170   hr_utility.set_location('Entering:'|| l_proc, 10);
1171   --
1172   ben_ppr_shd.lck
1173     (
1174       p_prmry_care_prvdr_id                 => p_prmry_care_prvdr_id
1175      ,p_validation_start_date      => l_validation_start_date
1176      ,p_validation_end_date        => l_validation_end_date
1177      ,p_object_version_number      => p_object_version_number
1178      ,p_effective_date             => p_effective_date
1179      ,p_datetrack_mode             => p_datetrack_mode
1180     );
1181   --
1182   hr_utility.set_location(' Leaving:'||l_proc, 70);
1183   --
1184 end lck;
1185 --
1186 -- ----------------------------------------------------------------------------
1187 -- |-------------------------------< pcp_actn_items >--------------------------
1188 -- ----------------------------------------------------------------------------
1189 --
1190 procedure pcp_actn_items
1191   (
1192    p_prtt_enrt_rslt_id              in     number
1193   ,p_elig_cvrd_dpnt_id              in     number
1194   ,p_effective_date                 in     date
1195   ,p_business_group_id              in     number
1196   ,p_validate                       in     boolean default false
1197   ,p_datetrack_mode                 in     varchar2
1198   ) is
1199 --
1200 l_proc varchar2(72) := g_package||'dpnt_actn_items';
1201 l_prtt_enrt_rslt_id   number(15);
1202 l_business_group_id   number(15);
1203 l_rslt_object_version_number number(9);
1204 l_suspend_flag        varchar2(30);
1205 l_pcp_actn_warning   boolean;
1206 l_pcp_dpnt_actn_warning   boolean;
1207 --
1208 cursor get_rslt_id_c is
1209    select ecd.prtt_enrt_rslt_id,
1210           ecd.business_group_id
1211     from ben_elig_cvrd_dpnt_f ecd
1212     where ecd.elig_cvrd_dpnt_id = p_elig_cvrd_dpnt_id
1213       and p_effective_date between ecd.effective_start_date
1214                                and ecd.effective_end_date;
1215 --
1216 cursor get_rslt_ovn_c is
1217    select pen.object_version_number,
1218           pen.sspndd_flag
1219    from   ben_prtt_enrt_rslt_f pen
1220    where  pen.prtt_enrt_rslt_id = l_prtt_enrt_rslt_id
1221    and    pen.prtt_enrt_rslt_stat_cd is null
1222    and    pen.business_group_id = l_business_group_id
1223    and    p_effective_date
1224           between pen.effective_start_date and pen.effective_end_date;
1225 --
1226 begin
1227    --
1228    hr_utility.set_location('Entering:'|| l_proc, 10);
1229    --
1230    if p_prtt_enrt_rslt_id is null or
1231       p_business_group_id is null then
1232       open get_rslt_id_c;
1233       fetch get_rslt_id_c into l_prtt_enrt_rslt_id,
1234                                l_business_group_id;
1235       close get_rslt_id_c;
1236       if l_prtt_enrt_rslt_id is not null then
1237          open get_rslt_ovn_c;
1238          fetch get_rslt_ovn_c into l_rslt_object_version_number,
1239                                l_suspend_flag;
1240          close get_rslt_ovn_c;
1241       end if;
1242      ben_enrollment_action_items.process_pcp_dpnt_actn_items(
1243                     p_prtt_enrt_rslt_id => l_prtt_enrt_rslt_id
1244                    ,p_rslt_object_version_number => l_rslt_object_version_number
1245                    ,p_effective_date    => trunc(p_effective_date)
1246                    ,p_business_group_id => l_business_group_id
1247                    ,p_validate          => FALSE
1248                    ,p_datetrack_mode    => p_datetrack_mode
1249                    ,p_suspend_flag      => l_suspend_flag
1250                    ,p_pcp_dpnt_actn_warning => l_pcp_dpnt_actn_warning
1251                    );
1252    else
1253       l_prtt_enrt_rslt_id := p_prtt_enrt_rslt_id;
1254       l_business_group_id := p_business_group_id;
1255       if l_prtt_enrt_rslt_id is not null then
1256          open get_rslt_ovn_c;
1257          fetch get_rslt_ovn_c into l_rslt_object_version_number,
1258                                l_suspend_flag;
1259          close get_rslt_ovn_c;
1260       end if;
1261      ben_enrollment_action_items.process_pcp_actn_items(
1262                     p_prtt_enrt_rslt_id => l_prtt_enrt_rslt_id
1263                    ,p_rslt_object_version_number => l_rslt_object_version_number
1264                    ,p_effective_date    => trunc(p_effective_date)
1265                    ,p_business_group_id => l_business_group_id
1266                    ,p_validate          => FALSE
1267                    ,p_datetrack_mode    => p_datetrack_mode
1268                    ,p_suspend_flag      => l_suspend_flag
1269                    ,p_pcp_actn_warning => l_pcp_actn_warning
1270                    );
1271    end if;
1272    --
1273    --
1274    hr_utility.set_location('Exiting:'|| l_proc, 40);
1275    --
1276   --
1277 end pcp_actn_items;
1278 --
1279 end ben_PRMRY_CARE_PRVDR_api;