DBA Data[Home] [Help]

PACKAGE BODY: APPS.PAY_IE_ADVANCE_PAY

Source


1 Package body pay_ie_advance_pay as
2 /* $Header: pyieadvpay.pkb 115.2 2003/11/18 11:06:20 vmkhande noship $ */
3    g_package  CONSTANT VARCHAR2(33) := 'pay_ie_advance_pay.';
4 
5    FUNCTION adv_payment_skip_rule(
6       p_element_entry_id NUMBER,
7       p_date_earned DATE,
8       p_payroll_action_id NUMBER)
9       RETURN VARCHAR2
10    IS
11       CURSOR csr_pact_effective_date
12       IS
13          SELECT effective_date
14            FROM pay_payroll_actions
15           WHERE payroll_action_id = p_payroll_action_id;
16 
17       CURSOR csr_creator_type(p_effective_date DATE)
18       IS
19          SELECT creator_type
20            FROM pay_element_entries_f peef
21           WHERE peef.element_entry_id = p_element_entry_id AND
22                 p_effective_date BETWEEN peef.effective_start_date
23                                      AND peef.effective_end_date;
24 
25       l_skip              VARCHAR2(10);
26       l_creator_type      VARCHAR2(10);
27       l_effective_date    DATE;
28    BEGIN
29       l_skip := 'N';
30 
31       IF p_date_earned IS NULL
32       THEN
33          OPEN csr_pact_effective_date;
34          FETCH csr_pact_effective_date INTO l_effective_date;
35          CLOSE csr_pact_effective_date;
36       ELSE
37          l_effective_date := p_date_earned;
38       END IF;
39 
40       OPEN csr_creator_type(l_effective_date);
41       FETCH csr_creator_type INTO l_creator_type;
42       CLOSE csr_creator_type;
43 
44       IF ( (pay_advance_pay_ele_pkg.g_adv_pay_process = 'W' AND
45             l_creator_type = 'AD') OR
46            ( (pay_advance_pay_ele_pkg.g_adv_pay_process <> 'W' OR
47               pay_advance_pay_ele_pkg.g_adv_pay_process IS NULL) AND
48              (l_creator_type NOT IN ('AD', 'AE') )
49            )
50          )
51       THEN
52          l_skip := 'Y';
53       END IF;
54 
55       RETURN l_skip;
56    END adv_payment_skip_rule;
57 END pay_ie_advance_pay;