[Home] [Help]
PACKAGE BODY: APPS.BEN_SEEDDATA_OBJECT
Source
1 package body ben_seeddata_object as
2 /* $Header: benseedc.pkb 115.5 2002/12/19 09:53:14 hmani ship $ */
3 --
4 /*
5 +==============================================================================+
6 | Copyright (c) 1997 Oracle Corporation |
7 | Redwood Shores, California, USA |
8 | All rights reserved. |
9 +==============================================================================+
10 --
11 Name
12 Lookup Object Caching Routine
13 Purpose
14 This package is used to return lookup object information.
15 History
16 Version Date Who What?
17 --------- --------- ---------- --------------------------------------------
18 115.0 11-JUN-99 gperry Created.
19 115.1 23-AUG-99 gperry Added nocopy compiler directive.
20 Removed trace messages.
21 115.2 04-OCT-99 stee Added DRVDNLP,DRVDPOEELG, DRVDPOERT,
22 DRVDLSELG.
23 115.3 07-OCT-99 stee Uncomment out nocopy cache check for ler_id.
24 115.4 09-NOV-99 stee Add DRVDVEC.
25 115.5 11-dec-2002 hmani NoCopy changes
26 -----------------------------------------------------------------------------
27 */
28 --
29 g_package varchar2(30) := 'ben_seeddata_object.';
30 --
31 -- Set object routines
32 --
33 procedure set_object(p_rec in g_derived_factor_info_rec) is
34 --
35 l_proc varchar2(80) := g_package||'set_object';
36 --
37 begin
38 --
39 -- hr_utility.set_location('Entering '||l_proc,10);
40 --
41 g_cache_derived_factor_rec := p_rec;
42 --
43 -- hr_utility.set_location('Leaving '||l_proc,10);
44 --
45 end set_object;
46 --
47 -- Set object alternate route routines
48 --
49 procedure set_object
50 (p_effective_date in date,
51 p_business_group_id in number,
52 p_rec out nocopy g_derived_factor_info_rec) is
53 --
54 l_proc varchar2(80) := g_package||'set_object';
55 --
56 cursor c1 is
57 select ler.ler_id,
58 ler.typ_cd
59 from ben_ler_f ler
60 where ler.business_group_id+0 = p_business_group_id
61 and ler.typ_cd in ('DRVDAGE','DRVDLOS','DRVDCAL',
62 'DRVDHRW','DRVDTPF','DRVDCMP',
63 'DRVDLSELG','DRVDNLP','DRVDPOEELG',
64 'DRVDPOERT','DRVDVEC')
65 and p_effective_date
66 between ler.effective_start_date
67 and ler.effective_end_date;
68 --
69 l_rec c1%rowtype;
70 --
71 begin
72 --
73 -- hr_utility.set_location('Entering '||l_proc,10);
74 --
75 -- 1) Get record from database.
76 -- 2) If record not found then raise error.
77 -- 3) Pass record to set_object routine.
78 --
79 open c1;
80 --
81 loop
82 --
83 fetch c1 into l_rec;
84 exit when c1%notfound;
85 --
86 if l_rec.typ_cd = 'DRVDHRW' then
87 --
88 g_cache_derived_factor_rec.drvdhrw_id := l_rec.ler_id;
89 --
90 elsif l_rec.typ_cd = 'DRVDAGE' then
91 --
92 g_cache_derived_factor_rec.drvdage_id := l_rec.ler_id;
93 --
94 elsif l_rec.typ_cd = 'DRVDLOS' then
95 --
96 g_cache_derived_factor_rec.drvdlos_id := l_rec.ler_id;
97 --
98 elsif l_rec.typ_cd = 'DRVDCAL' then
99 --
100 g_cache_derived_factor_rec.drvdcal_id := l_rec.ler_id;
101 --
102 elsif l_rec.typ_cd = 'DRVDTPF' then
103 --
104 g_cache_derived_factor_rec.drvdtpf_id := l_rec.ler_id;
105 --
106 elsif l_rec.typ_cd = 'DRVDCMP' then
107 --
108 g_cache_derived_factor_rec.drvdcmp_id := l_rec.ler_id;
109 --
110 elsif l_rec.typ_cd = 'DRVDLSELG' then
111 --
112 g_cache_derived_factor_rec.drvdlselg_id := l_rec.ler_id;
113 --
114 elsif l_rec.typ_cd = 'DRVDNLP' then
115 --
116 g_cache_derived_factor_rec.drvdnlp_id := l_rec.ler_id;
117 --
118 elsif l_rec.typ_cd = 'DRVDPOEELG' then
119 --
120 g_cache_derived_factor_rec.drvdpoeelg_id := l_rec.ler_id;
121 --
122 elsif l_rec.typ_cd = 'DRVDPOERT' then
123 --
124 g_cache_derived_factor_rec.drvdpoert_id := l_rec.ler_id;
125 --
126 elsif l_rec.typ_cd = 'DRVDVEC' then
127 --
128 g_cache_derived_factor_rec.drvdvec_id := l_rec.ler_id;
129 --
130 end if;
131 --
132 end loop;
133 --
134 close c1;
135 --
136 -- Sanity check that are the derived factor life events are there
137 --
138 if g_cache_derived_factor_rec.drvdhrw_id is null or
139 g_cache_derived_factor_rec.drvdtpf_id is null or
140 g_cache_derived_factor_rec.drvdcal_id is null or
141 g_cache_derived_factor_rec.drvdcmp_id is null or
142 g_cache_derived_factor_rec.drvdlos_id is null or
143 g_cache_derived_factor_rec.drvdage_id is null or
144 g_cache_derived_factor_rec.drvdlselg_id is null or
145 g_cache_derived_factor_rec.drvdnlp_id is null or
146 g_cache_derived_factor_rec.drvdpoeelg_id is null or
147 g_cache_derived_factor_rec.drvdpoert_id is null then
148 --
149 fnd_message.set_name('BEN','BEN_91411_SEEDED_LERS_NO_EXIST');
150 fnd_message.raise_error;
151 --
152 end if;
153 --
154 p_rec := g_cache_derived_factor_rec;
155 --
156 -- hr_utility.set_location('Leaving '||l_proc,10);
157 --
158 end set_object;
159 --
160 -- Get object routines
161 --
162 procedure get_object(p_rec out nocopy g_derived_factor_info_rec) is
163 --
164 l_proc varchar2(80) := g_package||'get_object';
165 l_env_rec ben_env_object.g_global_env_rec_type;
166 --
167 begin
168 --
169 -- hr_utility.set_location('Entering '||l_proc,10);
170 --
171 if g_cache_derived_factor_rec.drvdage_id is null then
172 --
173 -- We need to setup the derived factor life events
174 --
175 ben_env_object.get(p_rec => l_env_rec);
176 --
177 set_object(p_effective_date => nvl(l_env_rec.lf_evt_ocrd_dt,
178 l_env_rec.effective_date),
179 p_business_group_id => l_env_rec.business_group_id,
180 p_rec => p_rec);
181 --
182 else
183 --
184 p_rec := g_cache_derived_factor_rec;
185 --
186 end if;
187 --
188 -- hr_utility.set_location('Leaving '||l_proc,10);
189 --
190 end get_object;
191 --
192 procedure clear_down_cache is
193 --
194 l_derived_rec g_derived_factor_info_rec;
195 --
196 begin
197 --
198 g_cache_derived_factor_rec := l_derived_rec;
199 --
200 end clear_down_cache;
201 --
202 end ben_seeddata_object;