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