DBA Data[Home] [Help]

PACKAGE BODY: APPS.PQH_PEI_DDF

Source


1 Package Body pqh_pei_ddf as
2 /* $Header: pqpeiddf.pkb 115.5 2003/12/17 15:15:15 hsajja noship $ */
3 --
4 -- ----------------------------------------------------------------------------
5 -- |                     Private Global Definitions                           |
6 -- ----------------------------------------------------------------------------
7 --
8 g_package  varchar2(33) := '   pqh_pei_ddf.';  -- Global package name
9 --
10 --
11 --
12 -- -----------------------------------------------------------------------------
13 -- |-------------------------------< ddf >--------------------------------------|
14 -- -----------------------------------------------------------------------------
15 -- {Start of Comments}
16 --
17 --  Description:
18 --    This procedure controls the validation processing required for
19 --    developer descriptive flexfields by calling the relevant validation
20 --    procedures. These are called dependant on the value of the relevant
21 --    entity reference field value.
22 --
23 --  Pre Conditions:
24 --    A fully validated entity record structure.
25 --
26 --  In Arguments:
27 --    p_rec (Record structure for relevant entity).
28 --
29 --  Post Success:
30 --    Processing of the calling api continues.
31 --
32 --  Post Failure:
33 --    A failure can only occur under two circumstances:
34 --    1) The value of reference field is not supported.
35 --    2) If when the reference field value is null and not all
36 --       the information arguments are not null(i.e. information
37 --       arguments cannot be set without a corresponding reference
38 --       field value).
39 --
40 --  Developer Implementation Notes:
41 --    Developer defined.
42 --
43 --  Access Status:
44 --    Internal Development Use Only.
45 --
46 --  {End of Comments}
47 -- -----------------------------------------------------------------------------
48 procedure ddf
49 (
50                 p_person_extra_info_id          in      number  ,
51                 p_person_id                             in      number  ,
52                 p_information_type              in      varchar2        ,
53                 p_request_id                    in      number  ,
54                 p_program_application_id        in      number  ,
55                 p_program_id                    in      number  ,
56                 p_program_update_date           in      date            ,
57                 p_pei_attribute_category        in      varchar2        ,
58                 p_pei_attribute1                        in      varchar2        ,
59                 p_pei_attribute2                        in      varchar2        ,
60                 p_pei_attribute3                        in      varchar2        ,
61                 p_pei_attribute4                        in      varchar2        ,
62                 p_pei_attribute5                        in      varchar2        ,
63                 p_pei_attribute6                        in      varchar2        ,
64                 p_pei_attribute7                        in      varchar2        ,
65                 p_pei_attribute8                        in      varchar2        ,
66                 p_pei_attribute9                        in      varchar2        ,
67                 p_pei_attribute10                       in      varchar2        ,
68                 p_pei_attribute11                       in      varchar2        ,
69                 p_pei_attribute12                       in      varchar2        ,
70                 p_pei_attribute13                       in      varchar2        ,
71                 p_pei_attribute14                       in      varchar2        ,
72                 p_pei_attribute15                       in      varchar2        ,
73                 p_pei_attribute16                       in      varchar2        ,
74                 p_pei_attribute17                       in      varchar2        ,
75                 p_pei_attribute18                       in      varchar2        ,
76                 p_pei_attribute19                       in      varchar2        ,
77                 p_pei_attribute20                       in      varchar2        ,
78                 p_pei_information_category      in      varchar2        ,
79                 p_pei_information1              in      varchar2        ,
80                 p_pei_information2              in      varchar2        ,
81                 p_pei_information3              in      varchar2        ,
82                 p_pei_information4              in      varchar2        ,
83                 p_pei_information5              in      varchar2        ,
84                 p_pei_information6              in      varchar2        ,
85                 p_pei_information7              in      varchar2        ,
86                 p_pei_information8              in      varchar2        ,
87                 p_pei_information9              in      varchar2        ,
88                 p_pei_information10             in      varchar2        ,
89                 p_pei_information11             in      varchar2        ,
90                 p_pei_information12             in      varchar2        ,
91                 p_pei_information13             in      varchar2        ,
92                 p_pei_information14             in      varchar2        ,
93                 p_pei_information15             in      varchar2        ,
94                 p_pei_information16             in      varchar2        ,
95                 p_pei_information17             in      varchar2        ,
96                 p_pei_information18             in      varchar2        ,
97                 p_pei_information19             in      varchar2        ,
98                 p_pei_information20             in      varchar2        ,
99                 p_pei_information21             in      varchar2        ,
100                 p_pei_information22             in      varchar2        ,
101                 p_pei_information23             in      varchar2        ,
102                 p_pei_information24             in      varchar2        ,
103                 p_pei_information25             in      varchar2        ,
104                 p_pei_information26             in      varchar2        ,
105                 p_pei_information27             in      varchar2        ,
106                 p_pei_information28             in      varchar2        ,
107                 p_pei_information29             in      varchar2        ,
108                 p_pei_information30             in      varchar2
109         ) is
110 
111 --
112   l_proc       varchar2(72) := g_package||'ddf';
113 --
114 Cursor get_eit_name(p_information_type varchar2) is
115      select descriptive_flex_context_name from FND_DESCR_FLEX_CONTEXTS_VL FLV
116  WHERE FLV.DESCRIPTIVE_FLEX_CONTEXT_CODE = p_information_type
117  AND FLV.DESCRIPTIVE_FLEXFIELD_NAME = 'Extra Person Info DDF'
118  AND FLV.APPLICATION_ID = 800;
119  --
120  l_eit_name varchar2(240);
121 --
122 Begin
123   hr_utility.set_location('Entering:'||l_proc, 5);
124 
125     if NVL(p_information_type,'X') = 'PQH_ROLE_USERS' then
126      --
127         chk_default_role
128         (p_person_extra_info_id => p_person_extra_info_id
129         ,p_information_type     => p_information_type
130         ,p_person_id            => p_person_id
131         ,p_pei_information3     => p_pei_information3
132         ,p_pei_information4     => p_pei_information4
133         );
134      --
135      elsif NVL(p_information_type, 'X') in ('PQH_TENURE_STATUS', 'PQH_ACADEMIC_RANK') then
136      --
137      if hr_general2.is_person_type(p_person_id, 'CWK', hr_general.effective_date) then
138      for each_rec in get_eit_name(p_information_type) loop
139         l_eit_name := each_rec.descriptive_flex_context_name;
140      end loop;
141      hr_utility.set_message(8302, 'PQH_CWK_EXTRA_INFO_NOT_ALLOWED');
142      hr_utility.set_message_token('EIT', l_eit_name);
143      hr_utility.raise_error;
144      end if;
145     end if;
146 
147   hr_utility.set_location(' Leaving:'||l_proc, 10);
148 
149 Exception
150   WHEN others THEN
151     raise;
152 End ddf;
153 
154 
155 Procedure chk_default_role
156 (
157   p_person_extra_info_id in per_people_extra_info.person_extra_info_id%TYPE
158  ,p_information_type in  per_people_extra_info.information_type%TYPE
159  ,p_person_id        in  per_people_extra_info.person_id%TYPE
160  ,p_pei_information3 in per_people_extra_info.pei_information3%TYPE
161  ,p_pei_information4 in per_people_extra_info.pei_information4%TYPE
162 ) is
163 
164 --
165   l_proc       varchar2(72) := g_package||'chk_default_role';
166   l_role_id    pqh_roles.role_id%TYPE;
167   l_role_name  pqh_roles.role_name%TYPE;
168 --
169 CURSOR csr_duplicate_role IS
170 SELECT pei_information3
171 FROM per_people_extra_info
172 WHERE person_extra_info_id <> p_person_extra_info_id
173   AND NVL(information_type,'X') = 'PQH_ROLE_USERS'
174   AND person_id  = p_person_id
175   AND pei_information3 = p_pei_information3;
176 
177 --
178 CURSOR csr_duplicate_default_role IS
179 SELECT pei_information3
180 FROM per_people_extra_info
181 WHERE person_extra_info_id <> p_person_extra_info_id
182   AND NVL(information_type,'X') = 'PQH_ROLE_USERS'
183   AND person_id  = p_person_id
184   AND NVL(pei_information4,'N') = 'Y';
185 --
186 Begin
187   hr_utility.set_location('Entering:'||l_proc, 5);
188   --
189   -- check if the same role is being assigned more then once to the same person
190   --
191     OPEN csr_duplicate_role;
192       FETCH csr_duplicate_role INTO l_role_id;
193     CLOSE csr_duplicate_role;
194 
195      IF l_role_id IS NOT NULL THEN
196       --
197       -- raise error
198       --
199         hr_utility.set_message(8302,'PQH_DUPLICATE_ROLE');
200         hr_utility.raise_error;
201 
202      END IF; -- role id is not null
203   --
204   -- check if the person already has a default role
205   --
206      IF NVL(p_pei_information4,'N') = 'Y' THEN
207        --
208        OPEN csr_duplicate_default_role;
209          FETCH csr_duplicate_default_role INTO l_role_id;
210        CLOSE csr_duplicate_default_role;
211 
212          IF l_role_id IS NOT NULL THEN
213            --
214            -- raise error
215            --
216              hr_utility.set_message(8302,'PQH_MANY_DEFAULT_ROLES');
217              hr_utility.raise_error;
218 
219          END IF; -- role id is not null
220 
221      END IF; -- current role is default
222 
223   hr_utility.set_location(' Leaving:'||l_proc, 10);
224 
225 Exception
226   WHEN others THEN
227     raise;
228 End chk_default_role;
229 
230 
231 --
232 --
233 end pqh_pei_ddf;