DBA Data[Home] [Help]

PACKAGE BODY: APPS.PAY_PGP_SHD

Source


1 Package Body pay_pgp_shd as
2 /* $Header: pypgprhi.pkb 115.0 99/07/17 06:22:02 porting ship $ */
3 --
4 -- ----------------------------------------------------------------------------
5 -- |                     Private Global Definitions                           |
6 -- ----------------------------------------------------------------------------
7 --
8 g_package  varchar2(33)	:= '  pay_pgp_shd.';  -- Global package name
9 -- ----------------------------------------------------------------------------
10 -- |------------------------< segment_combination_check >---------------------|
11 -- ----------------------------------------------------------------------------
12 procedure segment_combination_check
13          (p_segment1              in  varchar2 default null,
14           p_segment2              in  varchar2 default null,
15           p_segment3              in  varchar2 default null,
16           p_segment4              in  varchar2 default null,
17           p_segment5              in  varchar2 default null,
18           p_segment6              in  varchar2 default null,
19           p_segment7              in  varchar2 default null,
20           p_segment8              in  varchar2 default null,
21           p_segment9              in  varchar2 default null,
22           p_segment10             in  varchar2 default null,
23           p_segment11             in  varchar2 default null,
24           p_segment12             in  varchar2 default null,
25           p_segment13             in  varchar2 default null,
26           p_segment14             in  varchar2 default null,
27           p_segment15             in  varchar2 default null,
28           p_segment16             in  varchar2 default null,
29           p_segment17             in  varchar2 default null,
30           p_segment18             in  varchar2 default null,
31           p_segment19             in  varchar2 default null,
32           p_segment20             in  varchar2 default null,
33           p_segment21             in  varchar2 default null,
34           p_segment22             in  varchar2 default null,
35           p_segment23             in  varchar2 default null,
36           p_segment24             in  varchar2 default null,
37           p_segment25             in  varchar2 default null,
38           p_segment26             in  varchar2 default null,
39           p_segment27             in  varchar2 default null,
40           p_segment28             in  varchar2 default null,
41           p_segment29             in  varchar2 default null,
42           p_segment30             in  varchar2 default null,
43           p_business_group_id     in  number,
44           p_people_group_id       out number,
45           p_group_name            out varchar2,
46           p_id_flex_num           out number) is
47   --
48   l_id_flex_num   pay_people_groups.id_flex_num%type;
49   l_proc          varchar2(72) := g_package||'segment_combination_check';
50   --
51   -- the cursor orgsel selects the valid id_flex_num (people group kf)
52   -- for the specified business group
53   --
54   cursor idsel is
55     select  pbg.people_group_structure
56     from    per_business_groups pbg
57     where   pbg.business_group_id = p_business_group_id;
58   --
59   -- the cursor pgsel selects the people_group_id
60   --
61   cursor pgsel is
62     select pgp.people_group_id,
63            pgp.group_name
64     from   pay_people_groups pgp
65     where  pgp.id_flex_num   = l_id_flex_num
66     and    pgp.enabled_flag  = 'Y'
67     and   (pgp.segment1      = p_segment1
68     or    (pgp.segment1      is null
69     and    p_segment1        is null))
70     and   (pgp.segment2      = p_segment2
71     or    (pgp.segment2      is null
72     and    p_segment2        is null))
73     and   (pgp.segment3      = p_segment3
74     or    (pgp.segment3      is null
75     and    p_segment3        is null))
76     and   (pgp.segment4      = p_segment4
77     or    (pgp.segment4      is null
78     and    p_segment4        is null))
79     and   (pgp.segment5      = p_segment5
80     or    (pgp.segment5      is null
81     and    p_segment5        is null))
82     and   (pgp.segment6      = p_segment6
83     or    (pgp.segment6      is null
84     and    p_segment6        is null))
85     and   (pgp.segment7      = p_segment7
86     or    (pgp.segment7      is null
87     and    p_segment7        is null))
88     and   (pgp.segment8      = p_segment8
89     or    (pgp.segment8      is null
90     and    p_segment8        is null))
91     and   (pgp.segment9      = p_segment9
92     or    (pgp.segment9      is null
93     and    p_segment9        is null))
94     and   (pgp.segment10     = p_segment10
95     or    (pgp.segment10     is null
96     and    p_segment10       is null))
97     and   (pgp.segment11     = p_segment11
98     or    (pgp.segment11     is null
99     and    p_segment11       is null))
100     and   (pgp.segment12     = p_segment12
101     or    (pgp.segment12     is null
102     and    p_segment12       is null))
103     and   (pgp.segment13     = p_segment13
104     or    (pgp.segment13     is null
105     and    p_segment13       is null))
106     and   (pgp.segment14     = p_segment14
107     or    (pgp.segment14      is null
108     and    p_segment14       is null))
109     and   (pgp.segment15      = p_segment15
110     or    (pgp.segment15     is null
111     and    p_segment15       is null))
112     and   (pgp.segment16     = p_segment16
113     or    (pgp.segment16     is null
114     and    p_segment16       is null))
115     and   (pgp.segment17     = p_segment17
116     or    (pgp.segment17     is null
117     and    p_segment17       is null))
118     and   (pgp.segment18     = p_segment18
119     or    (pgp.segment18     is null
120     and    p_segment18       is null))
121     and   (pgp.segment19     = p_segment19
122     or    (pgp.segment19     is null
123     and    p_segment19       is null))
124     and   (pgp.segment20     = p_segment20
125     or    (pgp.segment20     is null
126     and    p_segment20       is null))
127     and   (pgp.segment21     = p_segment21
128     or    (pgp.segment21     is null
129     and    p_segment21       is null))
130     and   (pgp.segment22     = p_segment22
131     or    (pgp.segment22     is null
132     and    p_segment22       is null))
133     and   (pgp.segment23     = p_segment23
134     or    (pgp.segment23     is null
135     and    p_segment23       is null))
136     and   (pgp.segment24     = p_segment24
137     or    (pgp.segment24     is null
138     and    p_segment24       is null))
139     and   (pgp.segment25     = p_segment25
140     or    (pgp.segment25     is null
141     and    p_segment25       is null))
142     and   (pgp.segment26     = p_segment26
143     or    (pgp.segment26     is null
144     and    p_segment26       is null))
145     and   (pgp.segment27     = p_segment27
146     or    (pgp.segment27     is null
147     and    p_segment27       is null))
148     and   (pgp.segment28     = p_segment28
149     or    (pgp.segment28     is null
150     and    p_segment28       is null))
151     and   (pgp.segment29     = p_segment29
152     or    (pgp.segment29     is null
153     and    p_segment29       is null))
154     and   (pgp.segment30     = p_segment30
155     or    (pgp.segment30     is null
156     and    p_segment30       is null));
157 --
158 begin
159   hr_utility.set_location('Entering:'||l_proc, 5);
160   hr_api.validate_bus_grp_id(p_business_group_id);
161   --
162   -- Determine if all the segments are null
163   --
164   if (p_segment1  is null  and
165       p_segment2  is null  and
166       p_segment3  is null  and
167       p_segment4  is null  and
168       p_segment5  is null  and
169       p_segment6  is null  and
170       p_segment7  is null  and
171       p_segment8  is null  and
172       p_segment9  is null  and
173       p_segment10 is null  and
174       p_segment11 is null  and
175       p_segment12 is null  and
176       p_segment13 is null  and
177       p_segment14 is null  and
178       p_segment15 is null  and
179       p_segment16 is null  and
180       p_segment17 is null  and
181       p_segment18 is null  and
182       p_segment19 is null  and
183       p_segment20 is null  and
184       p_segment21 is null  and
185       p_segment22 is null  and
186       p_segment23 is null  and
187       p_segment24 is null  and
188       p_segment25 is null  and
189       p_segment26 is null  and
190       p_segment27 is null  and
191       p_segment28 is null  and
192       p_segment29 is null  and
193       p_segment30 is null) then
194      --
195      -- as the segments are null set the p_id_flex_num
196      -- explicitly to null.
197      --
198      hr_utility.set_location(l_proc, 10);
199      p_id_flex_num           := null;
200   else
201     --
202     -- segments exists therefore select the id_flex_num
203     --
204     hr_utility.set_location(l_proc, 15);
205     open idsel;
206     fetch idsel into l_id_flex_num;
207     if idsel%notfound then
208       close idsel;
209       --
210       -- the flex structure has not been found therefore we must error
211       --
212       hr_utility.set_message(801, 'HR_7471_FLEX_PEA_INVALID_ID');
213       hr_utility.raise_error;
214     end if;
215     close idsel;
216     hr_utility.set_location(l_proc, 10);
217     p_id_flex_num := l_id_flex_num;
218     --
219     -- open and execute the partial segment cursor. if no rows are returned
220     -- then p_people_group_id must be set to -1 (indicating a
221     -- new combination needs to be inserted.
222     --
223     hr_utility.set_location(l_proc, 20);
224     open  pgsel;
225     fetch pgsel into  p_people_group_id, p_group_name;
226     if pgsel%notfound then
227       hr_utility.set_location(l_proc, 25);
228       p_people_group_id   := -1;
229       p_group_name        := null;
230     end if;
231     close pgsel;
232   end if;
233   --
234   --
235   hr_utility.set_location(' Leaving:'||l_proc, 30);
236 end segment_combination_check;
237 --
238 -- ----------------------------------------------------------------------------
239 -- |------------------------< return_api_dml_status >-------------------------|
240 -- ----------------------------------------------------------------------------
241 Function return_api_dml_status Return Boolean Is
242 --
243   l_proc 	varchar2(72) := g_package||'return_api_dml_status';
244 --
245 Begin
246   hr_utility.set_location('Entering:'||l_proc, 5);
247   --
248   Return (nvl(g_api_dml, false));
249   --
250   hr_utility.set_location(' Leaving:'||l_proc, 10);
251 End return_api_dml_status;
252 --
253 -- ----------------------------------------------------------------------------
254 -- |---------------------------< constraint_error >---------------------------|
255 -- ----------------------------------------------------------------------------
256 Procedure constraint_error
257             (p_constraint_name in all_constraints.constraint_name%TYPE) Is
258 --
259   l_proc 	varchar2(72) := g_package||'constraint_error';
260 --
261 Begin
262   hr_utility.set_location('Entering:'||l_proc, 5);
263   --
264   If (p_constraint_name = 'PAY_PEOPLE_GROUPS_PK') Then
265     hr_utility.set_message(801, 'HR_6153_ALL_PROCEDURE_FAIL');
266     hr_utility.set_message_token('PROCEDURE', l_proc);
267     hr_utility.set_message_token('STEP','5');
268     hr_utility.raise_error;
269   Else
270     hr_utility.set_message(801, 'HR_6153_ALL_PROCEDURE_FAIL');
271     hr_utility.set_message_token('PROCEDURE', l_proc);
272     hr_utility.set_message_token('STEP','10');
276   hr_utility.set_location(' Leaving:'||l_proc, 10);
273     hr_utility.raise_error;
274   End If;
275   --
277 End constraint_error;
278 --
279 -- ----------------------------------------------------------------------------
280 -- |-----------------------------< api_updating >-----------------------------|
281 -- ----------------------------------------------------------------------------
282 Function api_updating(p_people_group_id in number) Return Boolean Is
283 --
284   --
285   -- Cursor selects the 'current' row from the HR Schema
286   --
287   Cursor C_Sel1 is
288     select
289 	people_group_id,
290 	group_name,
291 	id_flex_num,
292 	summary_flag,
293 	enabled_flag,
294 	start_date_active,
295 	end_date_active,
296 	segment1,
297 	segment2,
298 	segment3,
299 	segment4,
300 	segment5,
301 	segment6,
302 	segment7,
303 	segment8,
304 	segment9,
305 	segment10,
306 	segment11,
307 	segment12,
308 	segment13,
309 	segment14,
310 	segment15,
311 	segment16,
312 	segment17,
313 	segment18,
314 	segment19,
315 	segment20,
316 	segment21,
317 	segment22,
318 	segment23,
319 	segment24,
320 	segment25,
321 	segment26,
322 	segment27,
323 	segment28,
324 	segment29,
325 	segment30
326     from	pay_people_groups
327     where	people_group_id = p_people_group_id;
328 --
329   l_proc	varchar2(72)	:= g_package||'api_updating';
330   l_fct_ret	boolean;
331 --
332 Begin
333   hr_utility.set_location('Entering:'||l_proc, 5);
334   --
335   If (p_people_group_id is null) Then
336     --
337     -- One of the primary key arguments is null therefore we must
338     -- set the returning function value to false
339     --
340     l_fct_ret := false;
341   Else
342     If (p_people_group_id = g_old_rec.people_group_id) Then
343       hr_utility.set_location(l_proc, 10);
344       --
345       -- The g_old_rec is current therefore we must
346       -- set the returning function to true
347       --
348       l_fct_ret := true;
349     Else
350       --
351       -- Select the current row into g_old_rec
352       --
353       Open C_Sel1;
354       Fetch C_Sel1 Into g_old_rec;
355       If C_Sel1%notfound Then
356         Close C_Sel1;
357         --
358         -- The primary key is invalid therefore we must error
359         --
360         hr_utility.set_message(801, 'HR_7220_INVALID_PRIMARY_KEY');
361         hr_utility.raise_error;
362       End If;
363       Close C_Sel1;
364       hr_utility.set_location(l_proc, 15);
365       l_fct_ret := true;
366     End If;
367   End If;
368   hr_utility.set_location(' Leaving:'||l_proc, 20);
369   Return (l_fct_ret);
370 --
371 End api_updating;
372 --
373 -- ----------------------------------------------------------------------------
374 -- |-----------------------------< convert_args >-----------------------------|
375 -- ----------------------------------------------------------------------------
376 Function convert_args
377 	(
378 	p_people_group_id               in number,
379 	p_group_name                    in varchar2,
380 	p_id_flex_num                   in number,
381 	p_summary_flag                  in varchar2,
382 	p_enabled_flag                  in varchar2,
383 	p_start_date_active             in date,
384 	p_end_date_active               in date,
385 	p_segment1                      in varchar2,
386 	p_segment2                      in varchar2,
387 	p_segment3                      in varchar2,
388 	p_segment4                      in varchar2,
389 	p_segment5                      in varchar2,
390 	p_segment6                      in varchar2,
391 	p_segment7                      in varchar2,
392 	p_segment8                      in varchar2,
393 	p_segment9                      in varchar2,
394 	p_segment10                     in varchar2,
395 	p_segment11                     in varchar2,
396 	p_segment12                     in varchar2,
397 	p_segment13                     in varchar2,
398 	p_segment14                     in varchar2,
399 	p_segment15                     in varchar2,
400 	p_segment16                     in varchar2,
401 	p_segment17                     in varchar2,
402 	p_segment18                     in varchar2,
403 	p_segment19                     in varchar2,
404 	p_segment20                     in varchar2,
405 	p_segment21                     in varchar2,
406 	p_segment22                     in varchar2,
407 	p_segment23                     in varchar2,
408 	p_segment24                     in varchar2,
409 	p_segment25                     in varchar2,
410 	p_segment26                     in varchar2,
411 	p_segment27                     in varchar2,
412 	p_segment28                     in varchar2,
413 	p_segment29                     in varchar2,
414 	p_segment30                     in varchar2
415 	)
416 	Return g_rec_type is
417 --
418   l_rec	  g_rec_type;
419   l_proc  varchar2(72) := g_package||'convert_args';
420 --
421 Begin
422   --
423   hr_utility.set_location('Entering:'||l_proc, 5);
424   --
425   -- Convert arguments into local l_rec structure.
426   --
427   l_rec.people_group_id                  := p_people_group_id;
428   l_rec.group_name                       := p_group_name;
429   l_rec.id_flex_num                      := p_id_flex_num;
430   l_rec.summary_flag                     := p_summary_flag;
431   l_rec.enabled_flag                     := p_enabled_flag;
432   l_rec.start_date_active                := p_start_date_active;
433   l_rec.end_date_active                  := p_end_date_active;
434   l_rec.segment1                         := p_segment1;
435   l_rec.segment2                         := p_segment2;
436   l_rec.segment3                         := p_segment3;
437   l_rec.segment4                         := p_segment4;
438   l_rec.segment5                         := p_segment5;
439   l_rec.segment6                         := p_segment6;
440   l_rec.segment7                         := p_segment7;
441   l_rec.segment8                         := p_segment8;
442   l_rec.segment9                         := p_segment9;
443   l_rec.segment10                        := p_segment10;
444   l_rec.segment11                        := p_segment11;
445   l_rec.segment12                        := p_segment12;
446   l_rec.segment13                        := p_segment13;
447   l_rec.segment14                        := p_segment14;
448   l_rec.segment15                        := p_segment15;
449   l_rec.segment16                        := p_segment16;
450   l_rec.segment17                        := p_segment17;
451   l_rec.segment18                        := p_segment18;
452   l_rec.segment19                        := p_segment19;
453   l_rec.segment20                        := p_segment20;
454   l_rec.segment21                        := p_segment21;
455   l_rec.segment22                        := p_segment22;
456   l_rec.segment23                        := p_segment23;
457   l_rec.segment24                        := p_segment24;
458   l_rec.segment25                        := p_segment25;
459   l_rec.segment26                        := p_segment26;
460   l_rec.segment27                        := p_segment27;
461   l_rec.segment28                        := p_segment28;
462   l_rec.segment29                        := p_segment29;
463   l_rec.segment30                        := p_segment30;
464   --
465   -- Return the plsql record structure.
466   --
467   hr_utility.set_location(' Leaving:'||l_proc, 10);
468   Return(l_rec);
469 --
470 End convert_args;
471 --
472 end pay_pgp_shd;