DBA Data[Home] [Help]

PACKAGE BODY: APPS.HR_CGD_INS

Source


1 Package Body hr_cgd_ins as
2 /* $Header: hrcgdrhi.pkb 115.4 2002/12/03 09:17:25 hjonnala ship $ */
3 --
4 -- ----------------------------------------------------------------------------
5 -- |                     Private Global Definitions                           |
6 -- ----------------------------------------------------------------------------
7 --
8 g_package  varchar2(33)	:= '  hr_cgd_ins.';  -- Global package name
9 --
10 --
11 -- ----------------------------------------------------------------------------
12 -- |-------------------------------< ins_or_sel >-----------------------------|
13 -- ----------------------------------------------------------------------------
14 procedure ins_or_sel
15          (p_segment1               in  varchar2 default null,
16           p_segment2               in  varchar2 default null,
17           p_segment3               in  varchar2 default null,
18           p_segment4               in  varchar2 default null,
19           p_segment5               in  varchar2 default null,
20           p_segment6               in  varchar2 default null,
21           p_segment7               in  varchar2 default null,
22           p_segment8               in  varchar2 default null,
23           p_segment9               in  varchar2 default null,
24           p_segment10              in  varchar2 default null,
25           p_segment11              in  varchar2 default null,
26           p_segment12              in  varchar2 default null,
27           p_segment13              in  varchar2 default null,
28           p_segment14              in  varchar2 default null,
29           p_segment15              in  varchar2 default null,
30           p_segment16              in  varchar2 default null,
31           p_segment17              in  varchar2 default null,
32           p_segment18              in  varchar2 default null,
33           p_segment19              in  varchar2 default null,
34           p_segment20              in  varchar2 default null,
35           p_id_flex_num            in  number   default null,
36           p_business_group_id      in  number,
37           p_cagr_grade_def_id      out nocopy number,
38           p_concatenated_segments  out nocopy varchar2
39           ) is
40 --
41   l_cagr_grade_def_id      per_cagr_grades_def.cagr_grade_def_id%type;
42   l_concatenated_segments  varchar2(2000);
43   l_id_flex_num            per_cagr_grades_def.id_flex_num%type;
44   l_proc                   varchar2(72) := g_package||'ins_or_sel';
45   l_segs_changed           boolean;
46 --
47 begin
48   hr_utility.set_location('Entering:'||l_proc, 5);
49   --
50   -- set the client_info
51   --
52   hr_api.validate_bus_grp_id (p_business_group_id);
53   --
54   -- on insert, if any segments are set, but there is no ID_FLEX_NUM,
55   -- raise an error.
56   --
57   IF
58     (p_segment1 is not null) or
59     (p_segment2 is not null) or
60     (p_segment3 is not null) or
61     (p_segment4 is not null) or
62     (p_segment5 is not null) or
63     (p_segment6 is not null) or
64     (p_segment7 is not null) or
65     (p_segment8 is not null) or
66     (p_segment9 is not null) or
67     (p_segment10 is not null) or
68     (p_segment11 is not null) or
69     (p_segment12 is not null) or
70     (p_segment13 is not null) or
71     (p_segment14 is not null) or
72     (p_segment15 is not null) or
73     (p_segment16 is not null) or
74     (p_segment17 is not null) or
75     (p_segment18 is not null) or
76     (p_segment19 is not null) or
77     (p_segment20 is not null) THEN
78       l_segs_changed := true;
79   Else
80     l_segs_changed := false;
81   End if;
82   --
83   IF l_segs_changed and p_id_flex_num is null THEN
84     hr_utility.set_location(l_proc, 20);
85     -- msg French legislations must supply a grade structure with the segments.
86     hr_utility.set_message(800, 'PER_52819_STRUCT_WITH_SEGS');
87     hr_utility.raise_error;
88   End if;
89   --
90   IF p_id_flex_num is null and l_segs_changed = false  THEN
91     null;
92     hr_utility.set_location(l_proc, 30);
93     -- nothing to do on insert.
94   ELSE
95     -- id_flex_num is true at this point.
96     -- Always call AOL code here, as user may be only changing id_flex_num and
97     -- not any segments, so we must ensure this is still validated.
98     hr_utility.set_location(l_proc, 40);
99      --
100        hr_utility.set_location(l_proc, 100);
101        hr_kflex_utility.ins_or_sel_keyflex_comb
102       (p_appl_short_name        => 'PER',
103        p_flex_code              => 'CAGR',
104        p_flex_num               => p_id_flex_num,
105        p_segment1               => p_segment1,
106        p_segment2               => p_segment2,
107        p_segment3               => p_segment3,
108        p_segment4               => p_segment4,
109        p_segment5               => p_segment5,
110        p_segment6               => p_segment6,
111        p_segment7               => p_segment7,
112        p_segment8               => p_segment8,
113        p_segment9               => p_segment9,
114        p_segment10              => p_segment10,
115        p_segment11              => p_segment11,
116        p_segment12              => p_segment12,
117        p_segment13              => p_segment13,
118        p_segment14              => p_segment14,
119        p_segment15              => p_segment15,
120        p_segment16              => p_segment16,
121        p_segment17              => p_segment17,
122        p_segment18              => p_segment18,
123        p_segment19              => p_segment19,
124        p_segment20              => p_segment20,
125        p_concat_segments_in     => null,
126        p_ccid                   => l_cagr_grade_def_id,
127        p_concat_segments_out    => l_concatenated_segments );
128        --
129        p_cagr_grade_def_id      := l_cagr_grade_def_id;
130        p_concatenated_segments  := l_concatenated_segments;
131     End if;
132   hr_utility.set_location(' Leaving:'||l_proc, 60);
133 end ins_or_sel;
134 end hr_cgd_ins;