DBA Data[Home] [Help]

PACKAGE BODY: APPS.PER_IN_PREV_EMPLOYER_LEG_HOOK

Source


1 PACKAGE BODY per_in_prev_employer_leg_hook AS
2 /* $Header: peinlhpr.pkb 120.3 2007/11/22 10:48:19 sivanara ship $ */
3 
4    g_package      VARCHAR2(30);
5    g_debug        BOOLEAN;
6    g_token_name   pay_in_utils.char_tab_type;
7    g_token_value  pay_in_utils.char_tab_type;
8    g_message_name VARCHAR2(30);
9 
10 --
11 
12 --------------------------------------------------------------------------
13 -- Name           : validate_ltc_availed                                --
14 -- Type           : Procedure                                           --
15 -- Access         : Public                                              --
16 -- Description    : Dummy procedure.This has been nulled out            --
17 --                                                                      --
18 -- Bug 4065990 .The seed data script peinpped.sql had a call to this    --
19 -- procedure and it was already shipped.This procedure is needed        --
20 -- for compatibility.This procedure does nothing and has been replaced  --
21 --  check_prev_emp_create and check_prev_emp_update                     --
22 
23 --------------------------------------------------------------------------
24 PROCEDURE validate_ltc_availed(
25          p_pem_information_category IN VARCHAR2
26         ,p_end_date                 IN DATE
27         ) IS
28 BEGIN
29 
30    NULL;
31 
32 END validate_ltc_availed;
33 
34 --------------------------------------------------------------------------
35 -- Name           : check_prev_emp_int                                 --
36 -- Type           : Procedure                                           --
37 -- Access         : Public                                              --
38 -- Description    : Main Procedure to be called from the PEM Info Hook  --
39 -- Parameters     :                                                     --
40 --             IN : p_effective_date            IN DATE                 --
41 --                  p_previous_employer_id      IN NUMBER               --
42 --                  p_business_group_id         IN NUMBER               --
43 --                  p_person_id                 IN NUMBER               --
44 --                  p_start_date                IN DATE                 --
45 --                  p_end_date                  IN DATE                 --
46 --                  p_pem_information_category  IN VARCHAR2             --
47 --                  p_pem_information1..30      IN VARCHAR2             --
48 --                  p_calling_procedure         IN VARCHAR2             --
49 --            OUT : p_message_name             OUT VARCHAR2             --
50 --                  p_token_name               OUT pay_in_utils.char_tab_type
51 --                  p_token_value              OUT pay_in_utils.char_tab_type
52 --------------------------------------------------------------------------
53 PROCEDURE check_prev_emp_int(
54           p_effective_date       IN DATE
55          ,p_previous_employer_id IN NUMBER
56 	 ,p_business_group_id    IN NUMBER
57 	 ,p_person_id            IN NUMBER
58          ,p_start_date           IN DATE
59          ,p_end_date             IN DATE
60          ,p_pem_information_category IN VARCHAR2
61          ,p_pem_information1     IN VARCHAR2
62          ,p_pem_information2     IN VARCHAR2
63          ,p_pem_information3     IN VARCHAR2
64          ,p_pem_information4     IN VARCHAR2
65          ,p_pem_information5     IN VARCHAR2
66          ,p_pem_information6     IN VARCHAR2
67          ,p_pem_information7     IN VARCHAR2
68          ,p_pem_information8     IN VARCHAR2
69          ,p_pem_information9     IN VARCHAR2
70          ,p_pem_information10    IN VARCHAR2
71          ,p_pem_information11    IN VARCHAR2
72          ,p_pem_information12    IN VARCHAR2
73          ,p_pem_information13    IN VARCHAR2
74          ,p_pem_information14    IN VARCHAR2
75          ,p_pem_information15    IN VARCHAR2
76          ,p_pem_information16    IN VARCHAR2
77          ,p_pem_information17    IN VARCHAR2
78          ,p_pem_information18    IN VARCHAR2
79          ,p_pem_information19    IN VARCHAR2
80          ,p_pem_information20    IN VARCHAR2
81          ,p_pem_information21    IN VARCHAR2
82          ,p_pem_information22    IN VARCHAR2
83          ,p_pem_information23    IN VARCHAR2
84          ,p_pem_information24    IN VARCHAR2
85          ,p_pem_information25    IN VARCHAR2
86          ,p_pem_information26    IN VARCHAR2
87          ,p_pem_information27    IN VARCHAR2
88          ,p_pem_information28    IN VARCHAR2
89          ,p_pem_information29    IN VARCHAR2
90          ,p_pem_information30    IN VARCHAR2
91  	 ,p_calling_procedure    IN VARCHAR2
92 	 ,p_message_name        OUT NOCOPY VARCHAR2
93 	 ,p_token_name          OUT NOCOPY pay_in_utils.char_tab_type
94 	 ,p_token_value         OUT NOCOPY pay_in_utils.char_tab_type)
95 IS
96 ---------------------------------------------------------------------------
97 --APPLICATION_COLUMN_NAME        FORM_LEFT_PROMPT
98 ------------------------------ --------------------------------------------
99 --PEM_INFORMATION1             Designation
100 --PEM_INFORMATION2             Annual Salary (Rs.)
101 --PEM_INFORMATION3             PF Number
102 --PEM_INFORMATION4             PF Establishment Code
103 --PEM_INFORMATION5             EPF Number
104 --PEM_INFORMATION6             Employer Classification
105 --PEM_INFORMATION7             Number of LTC Availed in Previous Block
106 --PEM_INFORMATION8             Number of LTC Availed in Current Block
107 --PEM_INFORMATION9             Leave Encashment Amount
108 --PEM_INFORMATION10            Gratuity Amount
109 --PEM_INFORMATION11            Retrenchment Amount
110 --PEM_INFORMATION12            VRS Amount
111 --PEM_INFORMATION13            Gross Earnings for Current Tax Year
112 --PEM_INFORMATION14            Recognized PF Deduction for Current Tax Year
113 --PEM_INFORMATION15            Entertainment Allowance for Current Tax Year
114 --PEM_INFORMATION16            Professional Tax Paid in Current Tax Year
115 --PEM_INFORMATION17            TDS Deducted in Current Tax Year
116 --PEM_INFORMATION18            Superannuation for Current Tax Year
117 ---------------------------------------------------------------------------
118 
119    l_procedure  VARCHAR2(100);
120    l_message    VARCHAR2(250);
121 
122    CURSOR c_pt_ceil IS
123       SELECT global_value
124       FROM   ff_globals_f
125       WHERE  global_name = 'IN_PTAX_CEILING'
126       AND    p_effective_date between effective_start_date and effective_end_date;
127 
128  /*Cursor to get the person type of the given person id*/
129    CURSOR c_person_type IS
130      SELECT 'X'
131      FROM   per_person_types ppt,
132             per_person_type_usages_f pptu
133      WHERE ppt.person_type_id = pptu.person_type_id
134      AND ppt.business_group_id = p_business_group_id
135      AND pptu.person_id = p_person_id
136      AND p_effective_date BETWEEN pptu.effective_start_date
137      AND pptu.effective_end_date AND ppt.system_person_type = 'EMP';
138 
139    l_pt_ceil    ff_globals_f.global_value%TYPE;
140    l_person_type VARCHAR2(1);
141 
142 BEGIN
143 
144   l_procedure := g_package||'check_prev_emp_int';
145   g_debug := hr_utility.debug_enabled;
146   pay_in_utils.set_location(g_debug, 'Entering: ' || l_procedure, 10);
147 
148   p_message_name := 'SUCCESS';
149   pay_in_utils.null_message(p_token_name, p_token_value);
150 
151   IF NOT hr_utility.chk_product_install('Oracle Human Resources', 'IN') THEN
152        hr_utility.trace ('IN Legislation not installed. Not performing the validations');
153        pay_in_utils.set_location(g_debug,'Leaving: '||l_procedure,20);
154        RETURN;
155   END IF;
156 
157   IF g_debug THEN
158      pay_in_utils.trace('**************************************************','********************');
159      pay_in_utils.trace('p_effective_date      ',p_effective_date      );
160      pay_in_utils.trace('p_previous_employer_id',p_previous_employer_id);
161      pay_in_utils.trace('p_business_group_id'   ,p_business_group_id);
162      pay_in_utils.trace('p_preson_id'           ,p_person_id);
163      pay_in_utils.trace('p_start_date          ',p_start_date          );
164      pay_in_utils.trace('p_end_date            ',p_end_date            );
165      pay_in_utils.trace('p_pem_information_category',p_pem_information_category);
166      pay_in_utils.trace('p_pem_information1    ',p_pem_information1    );
167      pay_in_utils.trace('p_pem_information2    ',p_pem_information2    );
168      pay_in_utils.trace('p_pem_information3    ',p_pem_information3    );
169      pay_in_utils.trace('p_pem_information4    ',p_pem_information4    );
170      pay_in_utils.trace('p_pem_information5    ',p_pem_information5    );
171      pay_in_utils.trace('p_pem_information6    ',p_pem_information6    );
172      pay_in_utils.trace('p_pem_information7    ',p_pem_information7    );
173      pay_in_utils.trace('p_pem_information8    ',p_pem_information8    );
174      pay_in_utils.trace('p_pem_information9    ',p_pem_information9    );
175      pay_in_utils.trace('p_pem_information10   ',p_pem_information10   );
176      pay_in_utils.trace('p_pem_information11   ',p_pem_information11   );
177      pay_in_utils.trace('p_pem_information12   ',p_pem_information12   );
178      pay_in_utils.trace('p_pem_information13   ',p_pem_information13   );
179      pay_in_utils.trace('p_pem_information14   ',p_pem_information14   );
180      pay_in_utils.trace('p_pem_information15   ',p_pem_information15   );
181      pay_in_utils.trace('p_pem_information16   ',p_pem_information16   );
182      pay_in_utils.trace('p_pem_information17   ',p_pem_information17   );
183      pay_in_utils.trace('p_pem_information18   ',p_pem_information18   );
184      pay_in_utils.trace('p_pem_information19   ',p_pem_information19   );
185      pay_in_utils.trace('p_pem_information20   ',p_pem_information20   );
186      pay_in_utils.trace('p_pem_information21   ',p_pem_information21   );
187      pay_in_utils.trace('p_pem_information22   ',p_pem_information22   );
188      pay_in_utils.trace('p_pem_information23   ',p_pem_information23   );
189      pay_in_utils.trace('p_pem_information24   ',p_pem_information24   );
190      pay_in_utils.trace('p_pem_information25   ',p_pem_information25   );
191      pay_in_utils.trace('p_pem_information26   ',p_pem_information26   );
192      pay_in_utils.trace('p_pem_information27   ',p_pem_information27   );
193      pay_in_utils.trace('p_pem_information28   ',p_pem_information28   );
194      pay_in_utils.trace('p_pem_information29   ',p_pem_information29   );
195      pay_in_utils.trace('p_pem_information30   ',p_pem_information30   );
196      pay_in_utils.trace('p_calling_procedure   ',p_calling_procedure   );
197      pay_in_utils.trace('p_message_name        ',p_message_name        );
198      pay_in_utils.trace('**************************************************','********************');
199   END IF;
200 
201   IF p_pem_information_category <> 'IN' THEN
202      pay_in_utils.set_location(g_debug,'Leaving : '||l_procedure, 30);
203      RETURN;
204   END IF;
205 
206 --
207 -- Validations to be built in
208 --
209 -- 1. End date should not be null
210 -- 2. Ensure that Gross Earnings are entered before any other
211 --    current tax year information
212 -- 3. Prof Tax value should not be greater than IN_PTAX_CEILING
213 --
214   pay_in_utils.set_location(g_debug,l_procedure,20);
215 --
216 -- 1. End date should not be null for employee
217 --
218 
219     OPEN c_person_type;
220     FETCH c_person_type INTO l_person_type;
221     CLOSE c_person_type;
222 
223    pay_in_utils.trace('l_person_type        ',l_person_type);
224 
225 
226    IF p_end_date IS NULL AND l_person_type = 'X' THEN
227      p_message_name := 'PER_IN_END_DATE_NOT_ENTERED';
228 
229      IF g_debug THEN
230         pay_in_utils.trace('**************************************************','********************');
231         pay_in_utils.trace('p_message_name        ',p_message_name);
232         pay_in_utils.trace('**************************************************','********************');
233      END IF;
234 
235      pay_in_utils.set_location(g_debug,'Leaving: '||l_procedure,30);
236      RETURN;
237    END IF;
238 
239   IF p_pem_information6 IS NULL AND
240     (p_pem_information9 IS NOT NULL OR
241      p_pem_information10 IS NOT NULL OR
242      p_pem_information15 IS NOT NULL)
243   THEN
244      p_message_name := 'PER_IN_MISSING_ER';
245 
246      IF g_debug THEN
247         pay_in_utils.trace('**************************************************','********************');
248         pay_in_utils.trace('p_message_name        ',p_message_name);
249         pay_in_utils.trace('**************************************************','********************');
250      END IF;
251 
252      pay_in_utils.set_location(g_debug,'Leaving: '||l_procedure,40);
253      RETURN;
254   END IF;
255 
256   pay_in_utils.set_location(g_debug,l_procedure,40);
257 
258   IF g_debug THEN
259      pay_in_utils.trace ('Gross Earnings for Current Tax Year          :',p_pem_information13);
260      pay_in_utils.trace ('Recognized PF Deduction for Current Tax Year :',p_pem_information14);
261      pay_in_utils.trace ('Entertainment Allowance for Current Tax Year :',p_pem_information15);
262      pay_in_utils.trace ('Professional Tax Paid in Current Tax Year    :',p_pem_information16);
263      pay_in_utils.trace ('TDS Deducted in Current Tax Year             :',p_pem_information17);
264      pay_in_utils.trace ('Superannuation for Current Tax Year          :',p_pem_information18);
265   END IF;
266 --
267 -- 2. Ensure that Gross Earnings are entered before any other
268 --    current tax year information
269 --
270   IF (p_pem_information13 IS NULL OR to_number(p_pem_information13) = 0) AND
271      (p_pem_information14 IS NOT NULL OR
272       p_pem_information15 IS NOT NULL OR
273       p_pem_information16 IS NOT NULL OR
274       p_pem_information17 IS NOT NULL OR
275       p_pem_information18 IS NOT NULL )
276   THEN
277      p_message_name := 'PER_IN_MISSING_EARNINGS';
278 
279      IF g_debug THEN
280         pay_in_utils.trace('**************************************************','********************');
281         pay_in_utils.trace('p_message_name        ',p_message_name);
282         pay_in_utils.trace('**************************************************','********************');
283      END IF;
284 
285      pay_in_utils.set_location(g_debug,'Leaving: '||l_procedure,40);
286      RETURN;
287   END IF;
288 
289 --
290 -- 3. Prof Tax value should not be greater than IN_PTAX_CEILING
291 --
292   OPEN c_pt_ceil;
293   FETCH c_pt_ceil
294   INTO  l_pt_ceil;
295   IF c_pt_ceil%NOTFOUND OR l_pt_ceil IS NULL THEN
296      NULL;
297   ELSE
298      pay_in_utils.set_location(g_debug,'P PT CEILING : '||l_pt_ceil,50);
299      IF p_pem_information16 IS NOT NULL AND
300         TO_NUMBER(p_pem_information16) > TO_NUMBER(l_pt_ceil)
301      THEN
302 	p_message_name  := 'PER_IN_PT_MORE_THAN_LIMIT';
303 	p_token_name(1) := 'VALUE';
304 	p_token_value(1):= l_pt_ceil;
305 
306         IF g_debug THEN
307            pay_in_utils.trace('**************************************************','********************');
308            pay_in_utils.trace('p_message_name        ',p_message_name);
309            pay_in_utils.trace('**************************************************','********************');
310         END IF;
311 
312 	pay_in_utils.set_location(g_debug,'Leaving: '||l_procedure,60);
313 	RETURN;
314      END IF;
315   END IF;
316 
317   pay_in_utils.set_location(g_debug,'Leaving: '||l_procedure,70);
318 
319 END check_prev_emp_int;
320 
321 --------------------------------------------------------------------------
322 -- Name           : check_prev_emp_create                               --
323 -- Type           : Procedure                                           --
324 -- Access         : Public                                              --
325 -- Description    : Main Procedure to be called from the PEM Info Hook  --
326 -- Parameters     :                                                     --
327 --             IN : p_effective_date            IN DATE                 --
328 --                  p_previous_employer_id      IN NUMBER               --
329 --                  p_business_group_id         IN NUMBER               --
330 --                  p_person_id                 IN NUMBER               --
334 --                  p_pem_information1..30      IN VARCHAR2             --
331 --                  p_start_date                IN DATE                 --
332 --                  p_end_date                  IN DATE                 --
333 --                  p_pem_information_category  IN VARCHAR2             --
335 --------------------------------------------------------------------------
336 PROCEDURE check_prev_emp_create(
337           p_effective_date       IN DATE
338          ,p_previous_employer_id IN NUMBER
339 	 ,p_business_group_id    IN NUMBER
340 	 ,p_person_id            IN NUMBER
341          ,p_start_date           IN DATE
342          ,p_end_date             IN DATE
343          ,p_pem_information_category IN VARCHAR2
344          ,p_pem_information1     IN VARCHAR2
345          ,p_pem_information2     IN VARCHAR2
346          ,p_pem_information3     IN VARCHAR2
347          ,p_pem_information4     IN VARCHAR2
348          ,p_pem_information5     IN VARCHAR2
349          ,p_pem_information6     IN VARCHAR2
350          ,p_pem_information7     IN VARCHAR2
351          ,p_pem_information8     IN VARCHAR2
352          ,p_pem_information9     IN VARCHAR2
353          ,p_pem_information10    IN VARCHAR2
354          ,p_pem_information11    IN VARCHAR2
355          ,p_pem_information12    IN VARCHAR2
356          ,p_pem_information13    IN VARCHAR2
357          ,p_pem_information14    IN VARCHAR2
358          ,p_pem_information15    IN VARCHAR2
359          ,p_pem_information16    IN VARCHAR2
360          ,p_pem_information17    IN VARCHAR2
361          ,p_pem_information18    IN VARCHAR2
362          ,p_pem_information19    IN VARCHAR2
363          ,p_pem_information20    IN VARCHAR2
364          ,p_pem_information21    IN VARCHAR2
365          ,p_pem_information22    IN VARCHAR2
366          ,p_pem_information23    IN VARCHAR2
367          ,p_pem_information24    IN VARCHAR2
368          ,p_pem_information25    IN VARCHAR2
369          ,p_pem_information26    IN VARCHAR2
370          ,p_pem_information27    IN VARCHAR2
371          ,p_pem_information28    IN VARCHAR2
372          ,p_pem_information29    IN VARCHAR2
373          ,p_pem_information30    IN VARCHAR2)
374 IS
375 
376    l_procedure  VARCHAR2(100);
377    l_message    VARCHAR2(250);
378 
379 BEGIN
380 
381   l_procedure := g_package||'check_prev_emp_create';
382   g_debug := hr_utility.debug_enabled;
383   pay_in_utils.set_location(g_debug, 'Entering: ' || l_procedure, 10);
384 
385   g_message_name := 'SUCCESS';
386   pay_in_utils.null_message(g_token_name, g_token_value);
387 
388   IF g_debug THEN
389      pay_in_utils.trace('**************************************************','********************');
390      pay_in_utils.trace('p_effective_date       ',p_effective_date       );
391      pay_in_utils.trace('p_previous_employer_id ',p_previous_employer_id );
392      pay_in_utils.trace('p_start_date           ',p_start_date           );
393      pay_in_utils.trace('p_end_date             ',p_end_date             );
394      pay_in_utils.trace('p_pem_information_category',p_pem_information_category);
395      pay_in_utils.trace('p_pem_information1     ',p_pem_information1     );
396      pay_in_utils.trace('p_pem_information2     ',p_pem_information2     );
397      pay_in_utils.trace('p_pem_information3     ',p_pem_information3     );
398      pay_in_utils.trace('p_pem_information4     ',p_pem_information4     );
399      pay_in_utils.trace('p_pem_information5     ',p_pem_information5     );
400      pay_in_utils.trace('p_pem_information6     ',p_pem_information6     );
401      pay_in_utils.trace('p_pem_information7     ',p_pem_information7     );
402      pay_in_utils.trace('p_pem_information8     ',p_pem_information8     );
403      pay_in_utils.trace('p_pem_information9     ',p_pem_information9     );
404      pay_in_utils.trace('p_pem_information10    ',p_pem_information10    );
405      pay_in_utils.trace('p_pem_information11    ',p_pem_information11    );
406      pay_in_utils.trace('p_pem_information12    ',p_pem_information12    );
407      pay_in_utils.trace('p_pem_information13    ',p_pem_information13    );
408      pay_in_utils.trace('p_pem_information14    ',p_pem_information14    );
409      pay_in_utils.trace('p_pem_information15    ',p_pem_information15    );
410      pay_in_utils.trace('p_pem_information16    ',p_pem_information16    );
411      pay_in_utils.trace('p_pem_information17    ',p_pem_information17    );
412      pay_in_utils.trace('p_pem_information18    ',p_pem_information18    );
413      pay_in_utils.trace('p_pem_information19    ',p_pem_information19    );
414      pay_in_utils.trace('p_pem_information20    ',p_pem_information20    );
415      pay_in_utils.trace('p_pem_information21    ',p_pem_information21    );
416      pay_in_utils.trace('p_pem_information22    ',p_pem_information22    );
417      pay_in_utils.trace('p_pem_information23    ',p_pem_information23    );
418      pay_in_utils.trace('p_pem_information24    ',p_pem_information24    );
419      pay_in_utils.trace('p_pem_information25    ',p_pem_information25    );
420      pay_in_utils.trace('p_pem_information26    ',p_pem_information26    );
421      pay_in_utils.trace('p_pem_information27    ',p_pem_information27    );
422      pay_in_utils.trace('p_pem_information28    ',p_pem_information28    );
423      pay_in_utils.trace('p_pem_information29    ',p_pem_information29    );
424      pay_in_utils.trace('p_pem_information30    ',p_pem_information30    );
425      pay_in_utils.trace('**************************************************','********************');
426   END IF;
427 
428   check_prev_emp_int(
429           p_effective_date       => p_effective_date
433          ,p_start_date           => p_start_date
430          ,p_previous_employer_id => p_previous_employer_id
431 	 ,p_business_group_id    => p_business_group_id
432 	 ,p_person_id            => p_person_id
434          ,p_end_date             => p_end_date
435          ,p_pem_information_category => p_pem_information_category
436          ,p_pem_information1     => p_pem_information1
437          ,p_pem_information2     => p_pem_information2
438          ,p_pem_information3     => p_pem_information3
439          ,p_pem_information4     => p_pem_information4
440          ,p_pem_information5     => p_pem_information5
441          ,p_pem_information6     => p_pem_information6
442          ,p_pem_information7     => p_pem_information7
443          ,p_pem_information8     => p_pem_information8
444          ,p_pem_information9     => p_pem_information9
445          ,p_pem_information10    => p_pem_information10
446          ,p_pem_information11    => p_pem_information11
447          ,p_pem_information12    => p_pem_information12
448          ,p_pem_information13    => p_pem_information13
449          ,p_pem_information14    => p_pem_information14
450          ,p_pem_information15    => p_pem_information15
451          ,p_pem_information16    => p_pem_information16
452          ,p_pem_information17    => p_pem_information17
453          ,p_pem_information18    => p_pem_information18
454          ,p_pem_information19    => p_pem_information19
455          ,p_pem_information20    => p_pem_information20
456          ,p_pem_information21    => p_pem_information21
457          ,p_pem_information22    => p_pem_information22
458          ,p_pem_information23    => p_pem_information23
459          ,p_pem_information24    => p_pem_information24
460          ,p_pem_information25    => p_pem_information25
461          ,p_pem_information26    => p_pem_information26
462          ,p_pem_information27    => p_pem_information27
463          ,p_pem_information28    => p_pem_information28
464          ,p_pem_information29    => p_pem_information29
465          ,p_pem_information30    => p_pem_information30
466          ,p_calling_procedure    => l_procedure
467 	 ,p_message_name         => g_message_name
468 	 ,p_token_name           => g_token_name
469 	 ,p_token_value          => g_token_value);
470 
471 
472   pay_in_utils.set_location(g_debug,'Leaving: '||l_procedure,20);
473   pay_in_utils.raise_message(800, g_message_name, g_token_name, g_token_value);
474 
475 END check_prev_emp_create;
476 
477 
478 --------------------------------------------------------------------------
479 -- Name           : check_prev_emp_update                               --
480 -- Type           : Procedure                                           --
481 -- Access         : Public                                              --
482 -- Description    : Main Procedure to be called from the PEM Info Hook  --
483 -- Parameters     :                                                     --
484 --             IN : p_effective_date            IN DATE                 --
485 --                  p_previous_employer_id      IN NUMBER               --
486 --                  p_business_group_id         IN NUMBER               --
487 --                  p_person_id                 IN NUMBER               --
488 --                  p_start_date                IN DATE                 --
489 --                  p_end_date                  IN DATE                 --
490 --                  p_pem_information_category  IN VARCHAR2             --
491 --                  p_pem_information1..30      IN VARCHAR2             --
492 --------------------------------------------------------------------------
493 PROCEDURE check_prev_emp_update(
494           p_effective_date       IN DATE
495          ,p_previous_employer_id IN NUMBER
496          ,p_start_date           IN DATE
497          ,p_end_date             IN DATE
498          ,p_pem_information_category IN VARCHAR2
499          ,p_pem_information1     IN VARCHAR2
500          ,p_pem_information2     IN VARCHAR2
501          ,p_pem_information3     IN VARCHAR2
502          ,p_pem_information4     IN VARCHAR2
503          ,p_pem_information5     IN VARCHAR2
504          ,p_pem_information6     IN VARCHAR2
505          ,p_pem_information7     IN VARCHAR2
506          ,p_pem_information8     IN VARCHAR2
507          ,p_pem_information9     IN VARCHAR2
508          ,p_pem_information10    IN VARCHAR2
509          ,p_pem_information11    IN VARCHAR2
510          ,p_pem_information12    IN VARCHAR2
511          ,p_pem_information13    IN VARCHAR2
512          ,p_pem_information14    IN VARCHAR2
513          ,p_pem_information15    IN VARCHAR2
514          ,p_pem_information16    IN VARCHAR2
515          ,p_pem_information17    IN VARCHAR2
516          ,p_pem_information18    IN VARCHAR2
517          ,p_pem_information19    IN VARCHAR2
518          ,p_pem_information20    IN VARCHAR2
519          ,p_pem_information21    IN VARCHAR2
520          ,p_pem_information22    IN VARCHAR2
521          ,p_pem_information23    IN VARCHAR2
522          ,p_pem_information24    IN VARCHAR2
523          ,p_pem_information25    IN VARCHAR2
524          ,p_pem_information26    IN VARCHAR2
525          ,p_pem_information27    IN VARCHAR2
526          ,p_pem_information28    IN VARCHAR2
527          ,p_pem_information29    IN VARCHAR2
528          ,p_pem_information30    IN VARCHAR2)
529 IS
530 
531    CURSOR c_pem_id IS
532       SELECT business_group_id
533             ,person_id
534             ,start_date
535 	    ,end_date
539             ,pem_information3
536 	    ,pem_information_category
537 	    ,pem_information1
538             ,pem_information2
540             ,pem_information4
541             ,pem_information5
542             ,pem_information6
543             ,pem_information7
544             ,pem_information8
545             ,pem_information9
546             ,pem_information10
547             ,pem_information11
548             ,pem_information12
549             ,pem_information13
550             ,pem_information14
551             ,pem_information15
552             ,pem_information16
553             ,pem_information17
554             ,pem_information18
555             ,pem_information19
556             ,pem_information20
557             ,pem_information21
558             ,pem_information22
559             ,pem_information23
560             ,pem_information24
561 	    ,pem_information25
562 	    ,pem_information26
563 	    ,pem_information27
564 	    ,pem_information28
565 	    ,pem_information29
566 	    ,pem_information30
567       FROM   per_previous_employers
568       WHERE  previous_employer_id = p_previous_employer_id;
569 
570    l_person_id           per_previous_employers.person_id%TYPE;
571    l_business_group_id   per_previous_employers.business_group_id%TYPE;
572    l_start_date          per_previous_employers.start_date%TYPE;
573    l_end_date            per_previous_employers.end_date%TYPE;
574    l_pem_information_category per_previous_employers.pem_information_category%TYPE;
575    l_pem_information1    per_previous_employers.pem_information1%TYPE;
576    l_pem_information2    per_previous_employers.pem_information2%TYPE;
577    l_pem_information3    per_previous_employers.pem_information3%TYPE;
578    l_pem_information4    per_previous_employers.pem_information4%TYPE;
579    l_pem_information5    per_previous_employers.pem_information5%TYPE;
580    l_pem_information6    per_previous_employers.pem_information6%TYPE;
581    l_pem_information7    per_previous_employers.pem_information7%TYPE;
582    l_pem_information8    per_previous_employers.pem_information8%TYPE;
583    l_pem_information9    per_previous_employers.pem_information9%TYPE;
584    l_pem_information10   per_previous_employers.pem_information10%TYPE;
585    l_pem_information11   per_previous_employers.pem_information11%TYPE;
586    l_pem_information12   per_previous_employers.pem_information12%TYPE;
587    l_pem_information13   per_previous_employers.pem_information13%TYPE;
588    l_pem_information14   per_previous_employers.pem_information14%TYPE;
589    l_pem_information15   per_previous_employers.pem_information15%TYPE;
590    l_pem_information16   per_previous_employers.pem_information16%TYPE;
591    l_pem_information17   per_previous_employers.pem_information17%TYPE;
592    l_pem_information18   per_previous_employers.pem_information18%TYPE;
593    l_pem_information19   per_previous_employers.pem_information19%TYPE;
594    l_pem_information20   per_previous_employers.pem_information20%TYPE;
595    l_pem_information21   per_previous_employers.pem_information21%TYPE;
596    l_pem_information22   per_previous_employers.pem_information22%TYPE;
597    l_pem_information23   per_previous_employers.pem_information23%TYPE;
598    l_pem_information24   per_previous_employers.pem_information24%TYPE;
599    l_pem_information25   per_previous_employers.pem_information25%TYPE;
600    l_pem_information26   per_previous_employers.pem_information26%TYPE;
601    l_pem_information27   per_previous_employers.pem_information27%TYPE;
602    l_pem_information28   per_previous_employers.pem_information28%TYPE;
603    l_pem_information29   per_previous_employers.pem_information29%TYPE;
604    l_pem_information30   per_previous_employers.pem_information30%TYPE;
605 
606    l_procedure  VARCHAR2(100);
607    l_message    VARCHAR2(250);
608 
609 BEGIN
610   l_procedure := g_package||'check_prev_emp_update';
611   g_debug := hr_utility.debug_enabled;
612   pay_in_utils.set_location(g_debug, 'Entering: ' || l_procedure, 10);
613   g_message_name := 'SUCCESS';
614 
615   IF g_debug THEN
616      pay_in_utils.trace('**************************************************','********************');
617      pay_in_utils.trace('p_effective_date       ',p_effective_date       );
618      pay_in_utils.trace('p_previous_employer_id ',p_previous_employer_id );
619      pay_in_utils.trace('p_start_date           ',p_start_date           );
620      pay_in_utils.trace('p_end_date             ',p_end_date             );
621      pay_in_utils.trace('p_pem_information_category',p_pem_information_category);
622      pay_in_utils.trace('p_pem_information1     ',p_pem_information1     );
623      pay_in_utils.trace('p_pem_information2     ',p_pem_information2     );
624      pay_in_utils.trace('p_pem_information3     ',p_pem_information3     );
625      pay_in_utils.trace('p_pem_information4     ',p_pem_information4     );
626      pay_in_utils.trace('p_pem_information5     ',p_pem_information5     );
627      pay_in_utils.trace('p_pem_information6     ',p_pem_information6     );
628      pay_in_utils.trace('p_pem_information7     ',p_pem_information7     );
629      pay_in_utils.trace('p_pem_information8     ',p_pem_information8     );
630      pay_in_utils.trace('p_pem_information9     ',p_pem_information9     );
631      pay_in_utils.trace('p_pem_information10    ',p_pem_information10    );
632      pay_in_utils.trace('p_pem_information11    ',p_pem_information11    );
633      pay_in_utils.trace('p_pem_information12    ',p_pem_information12    );
634      pay_in_utils.trace('p_pem_information13    ',p_pem_information13    );
635      pay_in_utils.trace('p_pem_information14    ',p_pem_information14    );
636      pay_in_utils.trace('p_pem_information15    ',p_pem_information15    );
637      pay_in_utils.trace('p_pem_information16    ',p_pem_information16    );
638      pay_in_utils.trace('p_pem_information17    ',p_pem_information17    );
639      pay_in_utils.trace('p_pem_information18    ',p_pem_information18    );
640      pay_in_utils.trace('p_pem_information19    ',p_pem_information19    );
641      pay_in_utils.trace('p_pem_information20    ',p_pem_information20    );
642      pay_in_utils.trace('p_pem_information21    ',p_pem_information21    );
643      pay_in_utils.trace('p_pem_information22    ',p_pem_information22    );
644      pay_in_utils.trace('p_pem_information23    ',p_pem_information23    );
645      pay_in_utils.trace('p_pem_information24    ',p_pem_information24    );
646      pay_in_utils.trace('p_pem_information25    ',p_pem_information25    );
647      pay_in_utils.trace('p_pem_information26    ',p_pem_information26    );
648      pay_in_utils.trace('p_pem_information27    ',p_pem_information27    );
649      pay_in_utils.trace('p_pem_information28    ',p_pem_information28    );
650      pay_in_utils.trace('p_pem_information29    ',p_pem_information29    );
651      pay_in_utils.trace('p_pem_information30    ',p_pem_information30    );
652      pay_in_utils.trace('**************************************************','********************');
653   END IF;
654 
655   /*IF p_end_date IS NULL THEN
656      g_message_name := 'PER_IN_END_DATE_NOT_ENTERED';
657      pay_in_utils.raise_message(800, g_message_name, g_token_name, g_token_value);
658   END IF;*/
659 
660   OPEN c_pem_id;
661   FETCH c_pem_id
662   INTO l_business_group_id
663        ,l_person_id
664        ,l_start_date
665        ,l_end_date
666        ,l_pem_information_category
667        ,l_pem_information1
668        ,l_pem_information2
669        ,l_pem_information3
670        ,l_pem_information4
671        ,l_pem_information5
672        ,l_pem_information6
673        ,l_pem_information7
674        ,l_pem_information8
675        ,l_pem_information9
676        ,l_pem_information10
677        ,l_pem_information11
678        ,l_pem_information12
679        ,l_pem_information13
680        ,l_pem_information14
681        ,l_pem_information15
682        ,l_pem_information16
683        ,l_pem_information17
684        ,l_pem_information18
685        ,l_pem_information19
686        ,l_pem_information20
687        ,l_pem_information21
688        ,l_pem_information22
689        ,l_pem_information23
690        ,l_pem_information24
691        ,l_pem_information25
692        ,l_pem_information26
693        ,l_pem_information27
694        ,l_pem_information28
695        ,l_pem_information29
696        ,l_pem_information30;
697   CLOSE c_pem_id;
698 
699   pay_in_utils.set_location(g_debug,l_procedure,20);
700 
701    IF p_start_date <> hr_api.g_date THEN
702        l_start_date := p_start_date;
703    END IF;
704 
705    IF  p_end_date <> hr_api.g_date THEN
706        l_end_date := p_end_date;
707    END IF;
708 
709    IF p_pem_information_category <> hr_api.g_varchar2 THEN
710        l_pem_information_category := p_pem_information_category;
711    END IF;
712 
713    IF p_pem_information1 <> hr_api.g_varchar2 THEN
714        l_pem_information1 := p_pem_information1;
715    END IF;
716 
717    IF p_pem_information2 <> hr_api.g_varchar2 THEN
718        l_pem_information2 := p_pem_information2;
719    END IF;
720 
721    IF p_pem_information3 <> hr_api.g_varchar2 THEN
722        l_pem_information3 := p_pem_information3;
723    END IF;
724 
725    IF p_pem_information4 <> hr_api.g_varchar2 THEN
726        l_pem_information4 := p_pem_information4;
727    END IF;
728 
729    IF p_pem_information5 <> hr_api.g_varchar2 THEN
730        l_pem_information5 := p_pem_information5;
731    END IF;
732 
733    IF p_pem_information6 <> hr_api.g_varchar2 THEN
734        l_pem_information6 := p_pem_information6;
735    END IF;
736 
737    IF p_pem_information7 <> hr_api.g_varchar2 THEN
738        l_pem_information7 := p_pem_information7;
739    END IF;
740 
741    IF p_pem_information8 <> hr_api.g_varchar2 THEN
742        l_pem_information8 := p_pem_information8;
743    END IF;
744 
745    IF p_pem_information9 <> hr_api.g_varchar2 THEN
746        l_pem_information9 := p_pem_information9;
747    END IF;
751    END IF;
748 
749    IF p_pem_information10 <> hr_api.g_varchar2 THEN
750        l_pem_information10 := p_pem_information10;
752 
753    IF p_pem_information11 <> hr_api.g_varchar2 THEN
754        l_pem_information11 := p_pem_information11;
755    END IF;
756 
757    IF p_pem_information12 <> hr_api.g_varchar2 THEN
758        l_pem_information12 := p_pem_information12;
759    END IF;
760 
761    IF p_pem_information13 <> hr_api.g_varchar2 THEN
762        l_pem_information13 := p_pem_information13;
763    END IF;
764 
765    IF p_pem_information14 <> hr_api.g_varchar2 THEN
766        l_pem_information14 := p_pem_information14;
767    END IF;
768 
769    IF p_pem_information15 <> hr_api.g_varchar2 THEN
770        l_pem_information15 := p_pem_information15;
771    END IF;
772 
773    IF p_pem_information16 <> hr_api.g_varchar2 THEN
774        l_pem_information16 := p_pem_information16;
775    END IF;
776 
777    IF p_pem_information17 <> hr_api.g_varchar2 THEN
778        l_pem_information17 := p_pem_information17;
779    END IF;
780 
781    IF p_pem_information18 <> hr_api.g_varchar2 THEN
782        l_pem_information18 := p_pem_information18;
783    END IF;
784 
785    IF p_pem_information19 <> hr_api.g_varchar2 THEN
786        l_pem_information19 := p_pem_information19;
787    END IF;
788 
789    IF p_pem_information20 <> hr_api.g_varchar2 THEN
790        l_pem_information20 := p_pem_information20;
791    END IF;
792 
793    IF p_pem_information21 <> hr_api.g_varchar2 THEN
794        l_pem_information21 := p_pem_information21;
795    END IF;
796 
797    IF p_pem_information22 <> hr_api.g_varchar2 THEN
798        l_pem_information22 := p_pem_information22;
799    END IF;
800 
801    IF p_pem_information23 <> hr_api.g_varchar2 THEN
802        l_pem_information23 := p_pem_information23;
803    END IF;
804 
805    IF p_pem_information24 <> hr_api.g_varchar2 THEN
806        l_pem_information24 := p_pem_information24;
807    END IF;
808 
809    IF p_pem_information25 <> hr_api.g_varchar2 THEN
810        l_pem_information25 := p_pem_information25;
811    END IF;
812 
813    IF p_pem_information26 <> hr_api.g_varchar2 THEN
814        l_pem_information26 := p_pem_information26;
815    END IF;
816 
817    IF p_pem_information27 <> hr_api.g_varchar2 THEN
818        l_pem_information27 := p_pem_information27;
819    END IF;
820 
821    IF p_pem_information28 <> hr_api.g_varchar2 THEN
822        l_pem_information28 := p_pem_information28;
823    END IF;
824 
825    IF p_pem_information29 <> hr_api.g_varchar2 THEN
826        l_pem_information29 := p_pem_information29;
827    END IF;
828 
829    IF p_pem_information30 <> hr_api.g_varchar2 THEN
830        l_pem_information30 := p_pem_information30;
831    END IF;
832    IF p_end_date IS NULL THEN
833    l_end_date := p_end_date;
834    END if;
835      pay_in_utils.set_location(g_debug,'Before call to internal proc',15);
836      pay_in_utils.trace('Before call to internal proc p_person_id ',l_person_id );
837      pay_in_utils.trace('Before call to internal proc p_business_group_id ',l_business_group_id );
838   check_prev_emp_int(
839           p_effective_date       => p_effective_date
840          ,p_previous_employer_id => p_previous_employer_id
841 	 ,p_business_group_id    => l_business_group_id
842          ,p_person_id            => l_person_id
843          ,p_start_date           => l_start_date
844          ,p_end_date             => l_end_date
845          ,p_pem_information_category => l_pem_information_category
846          ,p_pem_information1     => l_pem_information1
847          ,p_pem_information2     => l_pem_information2
848          ,p_pem_information3     => l_pem_information3
849          ,p_pem_information4     => l_pem_information4
850          ,p_pem_information5     => l_pem_information5
851          ,p_pem_information6     => l_pem_information6
852          ,p_pem_information7     => l_pem_information7
853          ,p_pem_information8     => l_pem_information8
854          ,p_pem_information9     => l_pem_information9
855          ,p_pem_information10    => l_pem_information10
856          ,p_pem_information11    => l_pem_information11
857          ,p_pem_information12    => l_pem_information12
858          ,p_pem_information13    => l_pem_information13
859          ,p_pem_information14    => l_pem_information14
860          ,p_pem_information15    => l_pem_information15
861          ,p_pem_information16    => l_pem_information16
862          ,p_pem_information17    => l_pem_information17
863          ,p_pem_information18    => l_pem_information18
864          ,p_pem_information19    => l_pem_information19
865          ,p_pem_information20    => l_pem_information20
866          ,p_pem_information21    => l_pem_information21
867          ,p_pem_information22    => l_pem_information22
868          ,p_pem_information23    => l_pem_information23
869          ,p_pem_information24    => l_pem_information24
870          ,p_pem_information25    => l_pem_information25
871          ,p_pem_information26    => l_pem_information26
872          ,p_pem_information27    => l_pem_information27
873          ,p_pem_information28    => l_pem_information28
874          ,p_pem_information29    => l_pem_information29
875          ,p_pem_information30    => l_pem_information30
876          ,p_calling_procedure    => l_procedure
877 	 ,p_message_name         => g_message_name
878 	 ,p_token_name           => g_token_name
879 	 ,p_token_value          => g_token_value);
880 
881   pay_in_utils.set_location(g_debug,'Leaving: '||l_procedure,20);
882   pay_in_utils.raise_message(800, g_message_name, g_token_name, g_token_value);
883 
884 END check_prev_emp_update;
885 
886 BEGIN
887 
888   g_package := 'per_in_prev_employer_leg_hook.';
889 
890 END  per_in_prev_employer_leg_hook;