1 Package Body per_anc_upd as
2 /* $Header: peancrhi.pkb 120.2 2005/10/05 06:19:33 asahay noship $ */
3 --
4 -- ----------------------------------------------------------------------------
5 -- | Private Global Definitions |
6 -- ----------------------------------------------------------------------------
7 --
8 g_package varchar2(33) := ' per_anc_upd.'; -- Global package name
9 --
10 -- ----------------------------------------------------------------------------
11 -- |-----------------------------< convert_defs >-----------------------------|
12 -- ----------------------------------------------------------------------------
13 Procedure convert_defs(p_rec in out NOCOPY per_anc_shd.g_rec_type) is
14 --
15 l_proc varchar2(72) := g_package||'convert_defs';
16 --
17 Begin
18 --
19 hr_utility.set_location('Entering:'||l_proc, 5);
20 --
21 -- We must now examine each argument value in the
22 -- p_rec plsql record structure
23 -- to see if a system default is being used. If a system default
24 -- is being used then we must set to the 'current' argument value.
25 --
26 If (p_rec.request_id = hr_api.g_number) then
27 p_rec.request_id :=
28 per_anc_shd.g_old_rec.request_id;
29 End If;
30 If (p_rec.program_application_id = hr_api.g_number) then
31 p_rec.program_application_id :=
32 per_anc_shd.g_old_rec.program_application_id;
33 End If;
34 If (p_rec.program_id = hr_api.g_number) then
35 p_rec.program_id :=
36 per_anc_shd.g_old_rec.program_id;
37 End If;
38 If (p_rec.program_update_date = hr_api.g_date) then
39 p_rec.program_update_date :=
40 per_anc_shd.g_old_rec.program_update_date;
41 End If;
42 If (p_rec.id_flex_num = hr_api.g_number) then
43 p_rec.id_flex_num :=
44 per_anc_shd.g_old_rec.id_flex_num;
45 End If;
46 If (p_rec.summary_flag = hr_api.g_varchar2) then
47 p_rec.summary_flag :=
48 per_anc_shd.g_old_rec.summary_flag;
49 End If;
50 If (p_rec.enabled_flag = hr_api.g_varchar2) then
51 p_rec.enabled_flag :=
52 per_anc_shd.g_old_rec.enabled_flag;
53 End If;
54 If (p_rec.start_date_active = hr_api.g_date) then
55 p_rec.start_date_active :=
56 per_anc_shd.g_old_rec.start_date_active;
57 End If;
58 If (p_rec.end_date_active = hr_api.g_date) then
59 p_rec.end_date_active :=
60 per_anc_shd.g_old_rec.end_date_active;
61 End If;
62 If (p_rec.segment1 = hr_api.g_varchar2) then
63 p_rec.segment1 :=
64 per_anc_shd.g_old_rec.segment1;
65 End If;
66 If (p_rec.segment2 = hr_api.g_varchar2) then
67 p_rec.segment2 :=
68 per_anc_shd.g_old_rec.segment2;
69 End If;
70 If (p_rec.segment3 = hr_api.g_varchar2) then
71 p_rec.segment3 :=
72 per_anc_shd.g_old_rec.segment3;
73 End If;
74 If (p_rec.segment4 = hr_api.g_varchar2) then
75 p_rec.segment4 :=
76 per_anc_shd.g_old_rec.segment4;
77 End If;
78 If (p_rec.segment5 = hr_api.g_varchar2) then
79 p_rec.segment5 :=
80 per_anc_shd.g_old_rec.segment5;
81 End If;
82 If (p_rec.segment6 = hr_api.g_varchar2) then
83 p_rec.segment6 :=
84 per_anc_shd.g_old_rec.segment6;
85 End If;
86 If (p_rec.segment7 = hr_api.g_varchar2) then
87 p_rec.segment7 :=
88 per_anc_shd.g_old_rec.segment7;
89 End If;
90 If (p_rec.segment8 = hr_api.g_varchar2) then
91 p_rec.segment8 :=
92 per_anc_shd.g_old_rec.segment8;
93 End If;
94 If (p_rec.segment9 = hr_api.g_varchar2) then
95 p_rec.segment9 :=
96 per_anc_shd.g_old_rec.segment9;
97 End If;
98 If (p_rec.segment10 = hr_api.g_varchar2) then
99 p_rec.segment10 :=
100 per_anc_shd.g_old_rec.segment10;
101 End If;
102 If (p_rec.segment11 = hr_api.g_varchar2) then
103 p_rec.segment11 :=
104 per_anc_shd.g_old_rec.segment11;
105 End If;
106 If (p_rec.segment12 = hr_api.g_varchar2) then
107 p_rec.segment12 :=
108 per_anc_shd.g_old_rec.segment12;
109 End If;
110 If (p_rec.segment13 = hr_api.g_varchar2) then
111 p_rec.segment13 :=
112 per_anc_shd.g_old_rec.segment13;
113 End If;
114 If (p_rec.segment14 = hr_api.g_varchar2) then
115 p_rec.segment14 :=
116 per_anc_shd.g_old_rec.segment14;
117 End If;
118 If (p_rec.segment15 = hr_api.g_varchar2) then
119 p_rec.segment15 :=
120 per_anc_shd.g_old_rec.segment15;
121 End If;
122 If (p_rec.segment16 = hr_api.g_varchar2) then
123 p_rec.segment16 :=
124 per_anc_shd.g_old_rec.segment16;
125 End If;
126 If (p_rec.segment17 = hr_api.g_varchar2) then
127 p_rec.segment17 :=
128 per_anc_shd.g_old_rec.segment17;
129 End If;
130 If (p_rec.segment18 = hr_api.g_varchar2) then
131 p_rec.segment18 :=
132 per_anc_shd.g_old_rec.segment18;
133 End If;
134 If (p_rec.segment19 = hr_api.g_varchar2) then
135 p_rec.segment19 :=
136 per_anc_shd.g_old_rec.segment19;
137 End If;
138 If (p_rec.segment20 = hr_api.g_varchar2) then
139 p_rec.segment20 :=
140 per_anc_shd.g_old_rec.segment20;
141 End If;
142 If (p_rec.segment21 = hr_api.g_varchar2) then
143 p_rec.segment21 :=
144 per_anc_shd.g_old_rec.segment21;
145 End If;
146 If (p_rec.segment22 = hr_api.g_varchar2) then
147 p_rec.segment22 :=
148 per_anc_shd.g_old_rec.segment22;
149 End If;
150 If (p_rec.segment23 = hr_api.g_varchar2) then
151 p_rec.segment23 :=
152 per_anc_shd.g_old_rec.segment23;
153 End If;
154 If (p_rec.segment24 = hr_api.g_varchar2) then
155 p_rec.segment24 :=
156 per_anc_shd.g_old_rec.segment24;
157 End If;
158 If (p_rec.segment25 = hr_api.g_varchar2) then
159 p_rec.segment25 :=
160 per_anc_shd.g_old_rec.segment25;
161 End If;
162 If (p_rec.segment26 = hr_api.g_varchar2) then
163 p_rec.segment26 :=
164 per_anc_shd.g_old_rec.segment26;
165 End If;
166 If (p_rec.segment27 = hr_api.g_varchar2) then
167 p_rec.segment27 :=
168 per_anc_shd.g_old_rec.segment27;
169 End If;
170 If (p_rec.segment28 = hr_api.g_varchar2) then
171 p_rec.segment28 :=
172 per_anc_shd.g_old_rec.segment28;
173 End If;
174 If (p_rec.segment29 = hr_api.g_varchar2) then
175 p_rec.segment29 :=
176 per_anc_shd.g_old_rec.segment29;
177 End If;
178 If (p_rec.segment30 = hr_api.g_varchar2) then
179 p_rec.segment30 :=
180 per_anc_shd.g_old_rec.segment30;
181 End If;
182 --
183 hr_utility.set_location(' Leaving:'||l_proc, 10);
184 --
185 End convert_defs;
186 --
187 -- ----------------------------------------------------------------------------
188 -- |-------------------------------< upd_or_sel >-----------------------------|
189 -- ----------------------------------------------------------------------------
190 --
191 procedure upd_or_sel
192 (p_segment1 in varchar2 default hr_api.g_varchar2,
193 p_segment2 in varchar2 default hr_api.g_varchar2,
194 p_segment3 in varchar2 default hr_api.g_varchar2,
195 p_segment4 in varchar2 default hr_api.g_varchar2,
196 p_segment5 in varchar2 default hr_api.g_varchar2,
197 p_segment6 in varchar2 default hr_api.g_varchar2,
198 p_segment7 in varchar2 default hr_api.g_varchar2,
199 p_segment8 in varchar2 default hr_api.g_varchar2,
200 p_segment9 in varchar2 default hr_api.g_varchar2,
201 p_segment10 in varchar2 default hr_api.g_varchar2,
202 p_segment11 in varchar2 default hr_api.g_varchar2,
203 p_segment12 in varchar2 default hr_api.g_varchar2,
204 p_segment13 in varchar2 default hr_api.g_varchar2,
205 p_segment14 in varchar2 default hr_api.g_varchar2,
206 p_segment15 in varchar2 default hr_api.g_varchar2,
207 p_segment16 in varchar2 default hr_api.g_varchar2,
208 p_segment17 in varchar2 default hr_api.g_varchar2,
209 p_segment18 in varchar2 default hr_api.g_varchar2,
210 p_segment19 in varchar2 default hr_api.g_varchar2,
211 p_segment20 in varchar2 default hr_api.g_varchar2,
212 p_segment21 in varchar2 default hr_api.g_varchar2,
213 p_segment22 in varchar2 default hr_api.g_varchar2,
214 p_segment23 in varchar2 default hr_api.g_varchar2,
215 p_segment24 in varchar2 default hr_api.g_varchar2,
216 p_segment25 in varchar2 default hr_api.g_varchar2,
217 p_segment26 in varchar2 default hr_api.g_varchar2,
218 p_segment27 in varchar2 default hr_api.g_varchar2,
219 p_segment28 in varchar2 default hr_api.g_varchar2,
220 p_segment29 in varchar2 default hr_api.g_varchar2,
221 p_segment30 in varchar2 default hr_api.g_varchar2,
222 p_business_group_id in number,
223 p_id_flex_num in number default hr_api.g_number,
224 p_analysis_criteria_id in out NOCOPY number,
225 p_validate in boolean default false) is
226 --
227 l_proc varchar2(72) := g_package||'upd_or_sel';
228 l_rec per_anc_shd.g_rec_type;
229 --
230 begin
231 hr_utility.set_location('Entering:'||l_proc, 5);
232 --
233 -- convert args into record format
234 --
235 l_rec :=
236 per_anc_shd.convert_args
237 (p_analysis_criteria_id,
238 hr_api.g_number,
239 hr_api.g_number,
240 hr_api.g_number,
241 hr_api.g_date,
242 p_id_flex_num,
243 hr_api.g_varchar2,
244 hr_api.g_varchar2,
245 hr_api.g_date,
246 hr_api.g_date,
247 p_segment1,
248 p_segment2,
249 p_segment3,
250 p_segment4,
251 p_segment5,
252 p_segment6,
253 p_segment7,
254 p_segment8,
255 p_segment9,
256 p_segment10,
257 p_segment11,
258 p_segment12,
259 p_segment13,
260 p_segment14,
261 p_segment15,
262 p_segment16,
263 p_segment17,
264 p_segment18,
265 p_segment19,
266 p_segment20,
267 p_segment21,
268 p_segment22,
269 p_segment23,
270 p_segment24,
271 p_segment25,
272 p_segment26,
273 p_segment27,
274 p_segment28,
275 p_segment29,
276 p_segment30);
277 --
278 -- check to see if we are updating a row
279 --
280 if per_anc_shd.api_updating
281 (p_analysis_criteria_id => l_rec.analysis_criteria_id) then
282 --
283 hr_utility.set_location(l_proc, 10);
284 --
285 -- the current row exists and we have populated the g_old_rec
286 -- we must now build up the new record by converting the
287 -- arguments into a record structure and converting any of the
288 -- system default values
289 --
290 per_anc_upd.convert_defs(p_rec => l_rec);
291 else
292 --
293 -- as we are actually doing an insert we need to reset the
294 -- arguments if they are using a system default value
295 -- to null otherwise the segments will have the system default
296 -- values when being inserted
297 --
298 if (l_rec.segment1 = hr_api.g_varchar2) then
299 l_rec.segment1 := null;
300 end if;
301 if (l_rec.segment2 = hr_api.g_varchar2) then
302 l_rec.segment2 := null;
303 end if;
304 if (l_rec.segment3 = hr_api.g_varchar2) then
305 l_rec.segment3 := null;
306 end if;
307 if (l_rec.segment4 = hr_api.g_varchar2) then
308 l_rec.segment4 := null;
309 end if;
310 if (l_rec.segment5 = hr_api.g_varchar2) then
311 l_rec.segment5 := null;
312 end if;
313 if (l_rec.segment6 = hr_api.g_varchar2) then
314 l_rec.segment6 := null;
315 end if;
316 if (l_rec.segment7 = hr_api.g_varchar2) then
317 l_rec.segment7 := null;
318 end if;
319 if (l_rec.segment8 = hr_api.g_varchar2) then
320 l_rec.segment8 := null;
321 end if;
322 if (l_rec.segment9 = hr_api.g_varchar2) then
323 l_rec.segment9 := null;
324 end if;
325 if (l_rec.segment10 = hr_api.g_varchar2) then
326 l_rec.segment10 := null;
327 end if;
328 if (l_rec.segment11 = hr_api.g_varchar2) then
329 l_rec.segment11 := null;
330 end if;
331 if (l_rec.segment12 = hr_api.g_varchar2) then
332 l_rec.segment12 := null;
333 end if;
334 if (l_rec.segment13 = hr_api.g_varchar2) then
335 l_rec.segment13 := null;
336 end if;
337 if (l_rec.segment14 = hr_api.g_varchar2) then
338 l_rec.segment14 := null;
339 end if;
340 if (l_rec.segment15 = hr_api.g_varchar2) then
341 l_rec.segment15 := null;
342 end if;
343 if (l_rec.segment16 = hr_api.g_varchar2) then
344 l_rec.segment16 := null;
345 end if;
346 if (l_rec.segment17 = hr_api.g_varchar2) then
347 l_rec.segment17 := null;
348 end if;
349 if (l_rec.segment18 = hr_api.g_varchar2) then
350 l_rec.segment18 := null;
351 end if;
352 if (l_rec.segment19 = hr_api.g_varchar2) then
353 l_rec.segment19 := null;
354 end if;
355 if (l_rec.segment20 = hr_api.g_varchar2) then
356 l_rec.segment20 := null;
357 end if;
358 if (l_rec.segment21 = hr_api.g_varchar2) then
359 l_rec.segment21 := null;
360 end if;
361 if (l_rec.segment22 = hr_api.g_varchar2) then
362 l_rec.segment22 := null;
363 end if;
364 if (l_rec.segment23 = hr_api.g_varchar2) then
365 l_rec.segment23 := null;
366 end if;
367 if (l_rec.segment24 = hr_api.g_varchar2) then
368 l_rec.segment24 := null;
369 end if;
370 if (l_rec.segment25 = hr_api.g_varchar2) then
371 l_rec.segment25 := null;
372 end if;
373 if (l_rec.segment26 = hr_api.g_varchar2) then
374 l_rec.segment26 := null;
375 end if;
376 if (l_rec.segment27 = hr_api.g_varchar2) then
377 l_rec.segment27 := null;
378 end if;
379 if (l_rec.segment28 = hr_api.g_varchar2) then
380 l_rec.segment28 := null;
381 end if;
382 if (l_rec.segment29 = hr_api.g_varchar2) then
383 l_rec.segment29 := null;
384 end if;
385 if (l_rec.segment30 = hr_api.g_varchar2) then
386 l_rec.segment30 := null;
387 end if;
388 if (l_rec.id_flex_num = hr_api.g_number) then
389 l_rec.id_flex_num := null;
390 end if;
391 end if;
392 hr_utility.set_location(l_proc, 15);
393 --
394 -- call the ins_or_sel process
395 --
396 per_anc_ins.ins_or_sel
397 (p_segment1 => l_rec.segment1,
398 p_segment2 => l_rec.segment2,
399 p_segment3 => l_rec.segment3,
400 p_segment4 => l_rec.segment4,
401 p_segment5 => l_rec.segment5,
402 p_segment6 => l_rec.segment6,
403 p_segment7 => l_rec.segment7,
404 p_segment8 => l_rec.segment8,
405 p_segment9 => l_rec.segment9,
406 p_segment10 => l_rec.segment10,
407 p_segment11 => l_rec.segment11,
408 p_segment12 => l_rec.segment12,
409 p_segment13 => l_rec.segment13,
410 p_segment14 => l_rec.segment14,
411 p_segment15 => l_rec.segment15,
412 p_segment16 => l_rec.segment16,
413 p_segment17 => l_rec.segment17,
414 p_segment18 => l_rec.segment18,
415 p_segment19 => l_rec.segment19,
416 p_segment20 => l_rec.segment20,
417 p_segment21 => l_rec.segment21,
418 p_segment22 => l_rec.segment22,
419 p_segment23 => l_rec.segment23,
420 p_segment24 => l_rec.segment24,
421 p_segment25 => l_rec.segment25,
422 p_segment26 => l_rec.segment26,
423 p_segment27 => l_rec.segment27,
424 p_segment28 => l_rec.segment28,
425 p_segment29 => l_rec.segment29,
426 p_segment30 => l_rec.segment30,
427 p_business_group_id => p_business_group_id,
428 p_id_flex_num => l_rec.id_flex_num,
429 p_analysis_criteria_id => l_rec.analysis_criteria_id,
430 p_validate => p_validate);
431 --
432 -- set the out arguments
433 --
434 p_analysis_criteria_id := l_rec.analysis_criteria_id;
435 hr_utility.set_location(' Leaving:'||l_proc, 20);
436 --
437 end upd_or_sel;
438 --
439 end per_anc_upd;