DBA Data[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
203    ,p_addr_attribute6               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
204    ,p_addr_attribute7               IN     VARCHAR2 DEFAULT hr_api.g_varchar2
205    ,p_addr_attribute8               IN     VARCHAR2 DEFAULT hr_api.g_varchar2
209    ,p_addr_attribute12              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
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