[Home] [Help]
PACKAGE BODY: APPS.HR_IN_PERSON_ADDRESS_API
Source
1 PACKAGE Body hr_in_person_address_api AS
2 /* $Header: peaddini.pkb 115.0 2004/05/25 04:11 gaugupta noship $ */
3 g_package VARCHAR2(33) := 'hr_in_person_address_api.';
4 g_trace BOOLEAN ;
5
6 -- ----------------------------------------------------------------------------
7 -- |-----------------------------< check_person >------------------------------|
8 -- ----------------------------------------------------------------------------
9
10 PROCEDURE check_person (p_person_id IN NUMBER
11 ,p_legislation_code IN VARCHAR2
12 ,p_effective_date IN DATE
13 )
14 IS
15 l_legislation_code per_business_groups.legislation_code%type;
16 --
17 CURSOR csr_emp_leg
18 (c_person_id per_people_f.person_id%TYPE,
19 c_effective_date DATE
20 )
21 IS
22 select bgp.legislation_code
23 from per_people_f per,
24 per_business_groups bgp
25 where per.business_group_id = bgp.business_group_id
26 and per.person_id = c_person_id
27 and c_effective_date between per.effective_start_date and per.effective_END_date;
28
29 BEGIN
30
31 OPEN csr_emp_leg(p_person_id, trunc(p_effective_date));
32 FETCH csr_emp_leg into l_legislation_code;
33
34 IF csr_emp_leg%notfound THEN
35 CLOSE csr_emp_leg;
36 hr_utility.set_message(801,'HR_7220_INVALID_PRIMARY_KEY');
37 hr_utility.raise_error;
38 END IF;
39
40 CLOSE csr_emp_leg;
41
42 --
43 -- Check that the legislation of the specIFied business group is 'IN'.
44 --
45 IF l_legislation_code <> p_legislation_code THEN
46 hr_utility.set_message(801, 'HR_7961_PER_BUS_GRP_INVALID');
47 hr_utility.set_message_token('LEG_CODE','IN');
48 hr_utility.raise_error;
49 END IF;
50
51 EXCEPTION
52 WHEN OTHERS THEN
53 IF csr_emp_leg%ISOPEN THEN
54 CLOSE csr_emp_leg;
55 END IF;
56 RAISE;
57
58 END check_person;
59
60 -- ----------------------------------------------------------------------------
61 -- |------------------------< create_in_person_address >-------------------------|
62 -- ----------------------------------------------------------------------------
63
64 PROCEDURE create_in_person_address
65 (p_validate IN BOOLEAN default false
66 ,p_effective_date IN DATE
67 ,p_pradd_ovlapval_override IN BOOLEAN default FALSE
68 ,p_person_id IN NUMBER default null
69 ,p_primary_flag IN VARCHAR2
70 ,p_date_from IN DATE
71 ,p_date_to IN DATE default null
72 ,p_address_type IN VARCHAR2 default null
73 ,p_country IN VARCHAR2 default null
74 ,p_comments IN LONG default null
75 ,p_flat_door_block IN VARCHAR2
76 ,p_building_village IN VARCHAR2 default null
77 ,p_road_street IN VARCHAR2 default null
78 ,p_area_locality IN VARCHAR2 default null
79 ,p_town_or_city IN VARCHAR2
80 ,p_state_ut IN VARCHAR2 default null
81 ,p_pin_code IN VARCHAR2 default null
82 ,p_addr_attribute_category IN VARCHAR2 default null
83 ,p_addr_attribute1 IN VARCHAR2 default null
84 ,p_addr_attribute2 IN VARCHAR2 default null
85 ,p_addr_attribute3 IN VARCHAR2 default null
86 ,p_addr_attribute4 IN VARCHAR2 default null
87 ,p_addr_attribute5 IN VARCHAR2 default null
88 ,p_addr_attribute6 IN VARCHAR2 default null
89 ,p_addr_attribute7 IN VARCHAR2 default null
90 ,p_addr_attribute8 IN VARCHAR2 default null
91 ,p_addr_attribute9 IN VARCHAR2 default null
92 ,p_addr_attribute10 IN VARCHAR2 default null
93 ,p_addr_attribute11 IN VARCHAR2 default null
94 ,p_addr_attribute12 IN VARCHAR2 default null
95 ,p_addr_attribute13 IN VARCHAR2 default null
96 ,p_addr_attribute14 IN VARCHAR2 default null
97 ,p_addr_attribute15 IN VARCHAR2 default null
98 ,p_addr_attribute16 IN VARCHAR2 default null
99 ,p_addr_attribute17 IN VARCHAR2 default null
100 ,p_addr_attribute18 IN VARCHAR2 default null
101 ,p_addr_attribute19 IN VARCHAR2 default null
102 ,p_addr_attribute20 IN VARCHAR2 default null
103 ,p_address_id OUT NOCOPY NUMBER
104 ,p_object_version_number OUT NOCOPY NUMBER
105 ) AS
106 --
107 -- Declare cursors and local variables
108 --
109 l_proc varchar2(72) ;
110 --
111 BEGIN
112 l_proc := g_package||'create_IN_person_address';
113 g_trace := hr_utility.debug_enabled ;
114
115 IF g_trace THEN
116 hr_utility.set_location('Leaving: '||l_proc, 10);
117 END IF ;
118
119 check_person (p_person_id, 'IN', trunc(p_effective_date));
120
121 IF g_trace THEN
122 hr_utility.set_location(l_proc, 20);
123 END IF ;
124 --
125 -- Create Person Address details.
126 --
127 hr_person_address_api.create_person_address
128 (p_validate => p_validate
129 ,p_effective_date => p_effective_date
130 ,p_pradd_ovlapval_override => p_pradd_ovlapval_override
131 ,p_person_id => p_person_id
132 ,p_primary_flag => p_primary_flag
133 ,p_style => 'IN'
134 ,p_date_from => p_date_from
135 ,p_date_to => p_date_to
136 ,p_address_type => p_address_type
137 ,p_comments => p_comments
138 ,p_address_line1 => p_flat_door_block
139 ,p_address_line2 => p_building_village
140 ,p_address_line3 => p_road_street
141 ,p_postal_code => p_pin_code
142 ,p_country => 'IN'
143 ,p_addr_attribute_category => p_addr_attribute_category
144 ,p_addr_attribute1 => p_addr_attribute1
145 ,p_addr_attribute2 => p_addr_attribute2
146 ,p_addr_attribute3 => p_addr_attribute3
147 ,p_addr_attribute4 => p_addr_attribute4
148 ,p_addr_attribute5 => p_addr_attribute5
149 ,p_addr_attribute6 => p_addr_attribute6
150 ,p_addr_attribute7 => p_addr_attribute7
151 ,p_addr_attribute8 => p_addr_attribute8
152 ,p_addr_attribute9 => p_addr_attribute9
153 ,p_addr_attribute10 => p_addr_attribute10
154 ,p_addr_attribute11 => p_addr_attribute11
155 ,p_addr_attribute12 => p_addr_attribute12
156 ,p_addr_attribute13 => p_addr_attribute13
157 ,p_addr_attribute14 => p_addr_attribute14
158 ,p_addr_attribute15 => p_addr_attribute15
159 ,p_addr_attribute16 => p_addr_attribute16
160 ,p_addr_attribute17 => p_addr_attribute17
161 ,p_addr_attribute18 => p_addr_attribute18
162 ,p_addr_attribute19 => p_addr_attribute19
163 ,p_addr_attribute20 => p_addr_attribute20
164 ,p_add_information13 => p_area_locality
165 ,p_add_information14 => p_town_or_city
166 ,p_add_information15 => p_state_ut
167 ,p_address_id => p_address_id
168 ,p_object_version_number => p_object_version_number
169 );
170 --
171 IF g_trace THEN
172 hr_utility.set_location('Leaving: '||l_proc, 30);
173 END IF;
174
175 END create_in_person_address;
176
177 -- ----------------------------------------------------------------------------
178 -- |------------------------< update_in_person_address >-------------------------|
179 -- ----------------------------------------------------------------------------
180 PROCEDURE update_in_person_address
181 (p_validate IN BOOLEAN DEFAULT FALSE
182 ,p_effective_date IN DATE
183 ,p_address_id IN NUMBER
184 ,p_object_version_number IN OUT NOCOPY NUMBER
185 ,p_date_from IN DATE DEFAULT hr_api.g_date
186 ,p_date_to IN DATE DEFAULT hr_api.g_date
187 ,p_address_type IN VARCHAR2 DEFAULT hr_api.g_varchar2
188 ,p_comments IN LONG DEFAULT hr_api.g_varchar2
189 ,p_flat_door_block IN VARCHAR2 DEFAULT hr_api.g_varchar2
190 ,p_building_village IN VARCHAR2 DEFAULT hr_api.g_varchar2
191 ,p_road_street IN VARCHAR2 DEFAULT hr_api.g_varchar2
192 ,p_area_locality IN VARCHAR2 DEFAULT hr_api.g_varchar2
193 ,p_town_or_city IN VARCHAR2 DEFAULT hr_api.g_varchar2
194 ,p_state_ut IN VARCHAR2 DEFAULT hr_api.g_varchar2
195 ,p_pin_code IN VARCHAR2 DEFAULT hr_api.g_varchar2
196 ,p_country IN VARCHAR2 DEFAULT hr_api.g_varchar2
197 ,p_addr_attribute_category IN VARCHAR2 DEFAULT hr_api.g_varchar2
198 ,p_addr_attribute1 IN VARCHAR2 DEFAULT hr_api.g_varchar2
199 ,p_addr_attribute2 IN VARCHAR2 DEFAULT hr_api.g_varchar2
200 ,p_addr_attribute3 IN VARCHAR2 DEFAULT hr_api.g_varchar2
201 ,p_addr_attribute4 IN VARCHAR2 DEFAULT hr_api.g_varchar2
202 ,p_addr_attribute5 IN VARCHAR2 DEFAULT hr_api.g_varchar2
203 ,p_addr_attribute6 IN VARCHAR2 DEFAULT hr_api.g_varchar2
204 ,p_addr_attribute7 IN VARCHAR2 DEFAULT hr_api.g_varchar2
205 ,p_addr_attribute8 IN VARCHAR2 DEFAULT hr_api.g_varchar2
206 ,p_addr_attribute9 IN VARCHAR2 DEFAULT hr_api.g_varchar2
207 ,p_addr_attribute10 IN VARCHAR2 DEFAULT hr_api.g_varchar2
208 ,p_addr_attribute11 IN VARCHAR2 DEFAULT hr_api.g_varchar2
209 ,p_addr_attribute12 IN VARCHAR2 DEFAULT hr_api.g_varchar2
210 ,p_addr_attribute13 IN VARCHAR2 DEFAULT hr_api.g_varchar2
211 ,p_addr_attribute14 IN VARCHAR2 DEFAULT hr_api.g_varchar2
212 ,p_addr_attribute15 IN VARCHAR2 DEFAULT hr_api.g_varchar2
213 ,p_addr_attribute16 IN VARCHAR2 DEFAULT hr_api.g_varchar2
214 ,p_addr_attribute17 IN VARCHAR2 DEFAULT hr_api.g_varchar2
215 ,p_addr_attribute18 IN VARCHAR2 DEFAULT hr_api.g_varchar2
216 ,p_addr_attribute19 IN VARCHAR2 DEFAULT hr_api.g_varchar2
217 ,p_addr_attribute20 IN VARCHAR2 DEFAULT hr_api.g_varchar2
218 ) AS
219 --
220 -- Declare cursors and local variables
221 --
222 g_package VARCHAR2(10);
223 l_proc VARCHAR2(72);
224 l_style per_addresses.style%TYPE;
225
226 CURSOR c_add_style IS
227 SELECT addr.style
228 FROM per_addresses addr
229 WHERE addr.address_id = p_address_id;
230
231 BEGIN
232 l_proc := g_package||'update_IN_person_address';
233
234 IF g_trace THEN
235 hr_utility.set_location('Entering:'|| l_proc, 5);
236 END IF;
237 --
238 -- Check that the Address identified is of specified style.
239 --
240 OPEN c_add_style;
241 FETCH c_add_style
242 INTO l_style;
243 IF c_add_style%NOTFOUND THEN
244 CLOSE c_add_style;
245
246 IF g_trace THEN
247 hr_utility.set_location(l_proc, 7);
248 END IF;
249 hr_utility.set_message(801, 'HR_7220_INVALID_PRIMARY_KEY');
250 hr_utility.raise_error;
251 ELSE
252 CLOSE c_add_style;
253
254 IF l_style NOT IN( 'IN','IN_GLB')
255 THEN
256
257 IF g_trace THEN
258 hr_utility.set_location(l_proc, 8);
259 END IF;
260
261 hr_utility.set_message(801, 'HR_7220_INVALID_PRIMARY_KEY');
262 hr_utility.raise_error;
263 END IF;
264 END IF;
265
266 IF g_trace THEN
267 hr_utility.set_location(l_proc, 9);
268 END IF;
269 --
270 -- Update Person Address details.
271 --
272 hr_person_address_api.update_person_address
273 (p_validate => p_validate
274 ,p_effective_date => p_effective_date
275 ,p_address_id => p_address_id
276 ,p_object_version_number => p_object_version_number
277 ,p_date_from => p_date_from
278 ,p_date_to => p_date_to
279 ,p_address_type => p_address_type
280 ,p_comments => p_comments
281 ,p_address_line1 => p_flat_door_block
282 ,p_address_line2 => p_building_village
283 ,p_address_line3 => p_road_street
284 ,p_postal_code => p_pin_code
285 ,p_country => 'IN'
286 ,p_addr_attribute_category => p_addr_attribute_category
287 ,p_addr_attribute1 => p_addr_attribute1
288 ,p_addr_attribute2 => p_addr_attribute2
289 ,p_addr_attribute3 => p_addr_attribute3
290 ,p_addr_attribute4 => p_addr_attribute4
291 ,p_addr_attribute5 => p_addr_attribute5
292 ,p_addr_attribute6 => p_addr_attribute6
293 ,p_addr_attribute7 => p_addr_attribute7
294 ,p_addr_attribute8 => p_addr_attribute8
295 ,p_addr_attribute9 => p_addr_attribute9
296 ,p_addr_attribute10 => p_addr_attribute10
297 ,p_addr_attribute11 => p_addr_attribute11
298 ,p_addr_attribute12 => p_addr_attribute12
299 ,p_addr_attribute13 => p_addr_attribute13
300 ,p_addr_attribute14 => p_addr_attribute14
301 ,p_addr_attribute15 => p_addr_attribute15
302 ,p_addr_attribute16 => p_addr_attribute16
303 ,p_addr_attribute17 => p_addr_attribute17
304 ,p_addr_attribute18 => p_addr_attribute18
305 ,p_addr_attribute19 => p_addr_attribute19
306 ,p_addr_attribute20 => p_addr_attribute20
307 ,p_add_information13 => p_area_locality
308 ,p_add_information14 => p_town_or_city
309 ,p_add_information15 => p_state_ut
310 );
311
312 IF g_trace THEN
313 hr_utility.set_location(' Leaving:'||l_proc, 11);
314 END IF;
315
316 END update_IN_person_address;
317 END hr_in_person_address_api;
318