[Home] [Help]
PACKAGE BODY: APPS.BEN_WARNINGS
Source
1 package body ben_warnings as
2 /* $Header: benwarng.pkb 120.2 2006/11/23 13:57:40 gsehgal noship $ */
3 --
4 g_package varchar2(80) := 'ben_warnings';
5 ----------------------------------------------------------------------------
6 -- exist_warning -- bug 4120426
7 -- exist_warning checks for duplicate message for the same person
8 ----------------------------------------------------------------------------
9 Function exist_warning
10 ( p_application_short_name in varchar2,
11 p_message_name in varchar2,
12 p_parm1 in number default null,
13 p_parm2 in number default null,
14 p_parma in varchar2 default null,
15 p_parmb in varchar2 default null,
16 p_parmc in varchar2 default null,
17 p_person_id in number default null) return boolean is
18
19 l_package varchar2(80) :=g_package||'.exist_warning';
20 BEGIN
21 hr_utility.set_location ('Entering '||l_package,10);
22 --
23 if (g_oab_warnings.first) is not null then
24 --
25 for i in g_oab_warnings.first..g_oab_warnings.last loop
26 --
27 if ( g_oab_warnings(i).application_short_name = p_application_short_name) and
28 ( g_oab_warnings(i).message_name = p_message_name) and
29 ( nvl( g_oab_warnings(i).parm1,hr_api.g_number) = nvl(p_parm1,hr_api.g_number) ) and
30 ( nvl( g_oab_warnings(i).parm2,hr_api.g_number) = nvl(p_parm2,hr_api.g_number) ) and
31 ( nvl( g_oab_warnings(i).parma,hr_api.g_varchar2) = nvl( p_parma,hr_api.g_varchar2) ) and
32 ( nvl( g_oab_warnings(i).parmb,hr_api.g_varchar2) = nvl( p_parmb,hr_api.g_varchar2) ) and
33 ( nvl( g_oab_warnings(i).parmc,hr_api.g_varchar2) = nvl( p_parmc,hr_api.g_varchar2) ) and
34 ( nvl( g_oab_warnings(i).person_id,hr_api.g_number) = nvl(p_person_id,hr_api.g_number) )
35 then
36 return true;
37 end if;
38 --
39 end loop;
40 --
41 end if;
42 --
43 hr_utility.set_location ('Leaving '||l_package,20);
44 return false;
45 END exist_warning;
46
47
48 ----------------------------------------------------------------------------
49 -- load_warning
50 ----------------------------------------------------------------------------
51 PROCEDURE load_warning
52 (p_application_short_name in varchar2,
53 p_message_name in varchar2,
54 p_parm1 in number default null,
55 p_parm2 in number default null,
56 p_parma in varchar2 default null,
57 p_parmb in varchar2 default null,
58 p_parmc in varchar2 default null, --bug 4120426
59 p_person_id in number default null) is
60
61 l_package varchar2(80) := g_package||'.load_warning';
62 l_oab_warnings_index number;
63 BEGIN
64 hr_utility.set_location ('Entering '||l_package,10);
65
66 l_oab_warnings_index := nvl(g_oab_warnings.count,0) + 1;
67
68 if not exist_warning
69 ( p_application_short_name => p_application_short_name,
70 p_message_name => p_message_name,
71 p_parm1 => p_parm1,
72 p_parm2 => p_parm2,
73 p_parma => p_parma,
74 p_parmb => p_parmb,
75 p_parmc => p_parmc,
76 p_person_id => p_person_id
77 )then
78 g_oab_warnings(l_oab_warnings_index).application_short_name :=
79 p_application_short_name;
80 g_oab_warnings(l_oab_warnings_index).message_name := p_message_name;
81 g_oab_warnings(l_oab_warnings_index).parm1 := p_parm1;
82 g_oab_warnings(l_oab_warnings_index).parm2 := p_parm2;
83 g_oab_warnings(l_oab_warnings_index).parma := p_parma;
84 g_oab_warnings(l_oab_warnings_index).parmb := p_parmb;
85 g_oab_warnings(l_oab_warnings_index).parmc := p_parmc;
86 g_oab_warnings(l_oab_warnings_index).person_id := p_person_id;
87
88 end if;
89
90 hr_utility.set_location ('Leaving '||l_package,10);
91
92 END load_warning;
93 ----------------------------------------------------------------------------
94 -- trim_warnings
95 ----------------------------------------------------------------------------
96 PROCEDURE trim_warnings(p_trim in number) is
97 l_package varchar2(80) := g_package||'.trim_warnings';
98 l_trim_begin number;
99 l_trim_end number;
100 begin
101 hr_utility.set_location ('Entering '||l_package,10);
102
103 -- 'p_trim' indicates the number of records that we want to delete from
104 -- the end of the table.
105
106 l_trim_begin := p_trim - 1;
107 l_trim_end := g_oab_warnings.count;
108
109 g_oab_warnings.delete(l_trim_begin,l_trim_end);
110
111 hr_utility.set_location ('Leaving '||l_package,10);
112
113 end trim_warnings;
114
115 ----------------------------------------------------------------------------
116 -- empty_warnings
117 ----------------------------------------------------------------------------
118 PROCEDURE empty_warnings is
119
120 l_package varchar2(80) := g_package||'.empty_warnings';
121 BEGIN
122 hr_utility.set_location ('Entering '||l_package,10);
123
124 g_oab_warnings.delete;
125
126 hr_utility.set_location ('Leaving '||l_package,10);
127
128 END empty_warnings;
129 ----------------------------------------------------------------------------
130 -- set_warning
131 ----------------------------------------------------------------------------
132 PROCEDURE set_warning
133 (p_index number) is
134
135 l_package varchar2(80) := g_package||'.set_warning';
136 BEGIN
137 hr_utility.set_location ('Entering '||l_package,10);
138
139 fnd_message.set_name(g_oab_warnings(p_index).application_short_name
140 ,g_oab_warnings(p_index).message_name);
141
142 if g_oab_warnings(p_index).parm1 is not null then
143 fnd_message.set_token('PARM1',g_oab_warnings(p_index).parm1);
144 if g_oab_warnings(p_index).parm2 is not null then
145 fnd_message.set_token('PARM2',g_oab_warnings(p_index).parm2);
146 end if;
147 end if;
148 if g_oab_warnings(p_index).parma is not null then
149 fnd_message.set_token('PARMA',g_oab_warnings(p_index).parma);
150 if g_oab_warnings(p_index).parmb is not null then
151 fnd_message.set_token('PARMB',g_oab_warnings(p_index).parmb);
152 if g_oab_warnings(p_index).parmc is not null then
153 fnd_message.set_token('PARMC',g_oab_warnings(p_index).parmc);
154 end if;
155 end if;
156 end if;
157
158 hr_utility.set_location ('Leaving '||l_package,10);
159
160 END set_warning;
161 ----------------------------------------------------------------------------
162 -- write_warnings_batch
163 ----------------------------------------------------------------------------
164 PROCEDURE write_warnings_batch is
165
166 l_package varchar2(80) := g_package||'.write_warnings_batch';
167
168 BEGIN
169 hr_utility.set_location ('Entering '||l_package,10);
170
171 if (g_oab_warnings.first) is not null then
172 for i in g_oab_warnings.first..g_oab_warnings.last loop
173 if g_oab_warnings(i).message_name <> 'BEN_93964_ENRO_DT_LT_LE_OCD_DT' --Bug#5030958 and Bug#5079314
174 and g_oab_warnings(i).message_name <> 'BEN_94464_ENROL_ED_DT_RANGE'
175 and g_oab_warnings(i).message_name <> 'BEN_94441_ENROL_ST_DT_RANGE' then
176 set_warning(p_index=> i);
177 g_warning_rec.rep_typ_cd := 'WARNING';
178 g_warning_rec.error_message_code := g_oab_warnings(i).message_name;
179 g_warning_rec.text := fnd_message.get;
180 g_warning_rec.person_id := g_oab_warnings(i).person_id;
181 benutils.write(p_rec => g_warning_rec);
182 end if;
183 end loop;
184 end if;
185 empty_warnings;
186 hr_utility.set_location ('Leaving '||l_package,10);
187
188 END write_warnings_batch;
189 ----------------------------------------------------------------------------
190 -- write_warnings_online
191 ----------------------------------------------------------------------------
192 PROCEDURE write_warnings_online (p_session_id in number) is
193
194 l_package varchar2(80) := g_package||'.write_warnings_online';
195 l_button number;
196 BEGIN
197 hr_utility.set_location ('Entering '||l_package,10);
198
199 if (g_oab_warnings.first) is not null then
200 for i in g_oab_warnings.first..g_oab_warnings.last loop
201 set_warning(p_index=> i);
202 Insert into ben_online_warnings(session_id, message_text)
203 values (p_session_id, fnd_message.get);
204 end loop;
205 end if;
206 empty_warnings;
207
208 hr_utility.set_location ('Leaving '||l_package,10);
209
210 END write_warnings_online;
211 ----------------------------------------------------------------------------
212 -- delete_warnings
213 /*
214 This procedure is used to delete the warnings. warnings are deleted
215 based on the paramters passed.
216 */
217 ----------------------------------------------------------------------------
218
219 PROCEDURE delete_warnings (
220 p_application_short_name IN VARCHAR2,
221 p_message_name IN VARCHAR2,
222 p_parm1 IN NUMBER DEFAULT NULL,
223 p_parm2 IN NUMBER DEFAULT NULL,
224 p_parma IN VARCHAR2 DEFAULT NULL,
225 p_parmb IN VARCHAR2 DEFAULT NULL,
226 p_parmc IN VARCHAR2 DEFAULT NULL,
227 p_person_id IN NUMBER DEFAULT NULL
228 )
229 IS
230 curr_index NUMBER;
231 next_index NUMBER;
232 l_package VARCHAR2 (80) := g_package || '.delete_warnings';
233 BEGIN
234 hr_utility.set_location ('Entering: ' || l_package, 10);
235 hr_utility.set_location (p_application_short_name, 10);
236 hr_utility.set_location (p_message_name, 10);
237 hr_utility.set_location (p_parm1, 10);
238 hr_utility.set_location (p_parm2, 10);
239 hr_utility.set_location (p_parma, 10);
240 hr_utility.set_location (p_parmb, 10);
241 hr_utility.set_location (p_parmc, 10);
242 hr_utility.set_location (p_person_id, 10);
243
244 IF g_oab_warnings.COUNT > 0
245 THEN
246 hr_utility.set_location ('warnings exist ' || g_oab_warnings.COUNT, 20);
247 next_index := g_oab_warnings.FIRST;
248
249 LOOP
250 curr_index := next_index;
251 next_index := g_oab_warnings.NEXT (next_index);
252
253 IF g_oab_warnings (curr_index).application_short_name = p_application_short_name
254 AND g_oab_warnings (curr_index).message_name = p_message_name
255 AND NVL (g_oab_warnings (curr_index).person_id, -1) = NVL (p_person_id,-1)
256 AND NVL (g_oab_warnings (curr_index).parma, '-1') = NVL (p_parma, '-1')
257 AND NVL (g_oab_warnings (curr_index).parmb, '-1') = NVL (p_parmb, '-1')
258 AND NVL (g_oab_warnings (curr_index).parmc, '-1') = NVL (p_parmc, '-1')
259 AND NVL (g_oab_warnings (curr_index).parm1, '-1') = NVL (p_parm1, '-1')
260 AND NVL (g_oab_warnings (curr_index).parm2, '-1') = NVL (p_parm2, '-1')
261 THEN
262 hr_utility.set_location ('Deleting warning ' || curr_index, 40);
263 g_oab_warnings.DELETE (curr_index);
264 END IF;
265
266 IF next_index IS NULL
267 THEN
268 EXIT;
269 END IF;
270 END LOOP;
271 END IF;
272
273 hr_utility.set_location (' Leaving: ' || l_package, 10);
274 END delete_warnings;
275 -----
276 end ben_warnings;