DBA Data[Home] [Help]

PACKAGE BODY: APPS.PAY_NO_ADVANCE_PAY

Source


1 PACKAGE BODY PAY_NO_ADVANCE_PAY as
2 /* $Header: pynoapay.pkb 120.0.12000000.1 2007/07/13 11:35:33 nmuthusa noship $ */
3 
4    g_package  CONSTANT VARCHAR2(33) := 'pay_no_advance_pay.';
5    --
6 
7    FUNCTION adv_payment_skip_rule(p_element_entry_id NUMBER,
8                                   p_date_earned DATE,
9                                   p_payroll_action_id NUMBER
10                                   ) RETURN VARCHAR2
11    IS
12       --
13       CURSOR csr_pact_effective_date IS
14       SELECT effective_date
15       FROM pay_payroll_actions
16       WHERE payroll_action_id = p_payroll_action_id;
17       --
18       CURSOR csr_creator_type(p_effective_date DATE) IS
19       SELECT creator_type
20       FROM pay_element_entries_f peef
21       WHERE peef.element_entry_id = p_element_entry_id
22       AND   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       --
29    BEGIN
30       l_skip := 'N';
31       IF p_date_earned IS NULL THEN
32          OPEN csr_pact_effective_date;
33            FETCH csr_pact_effective_date INTO l_effective_date;
34          CLOSE csr_pact_effective_date;
35       ELSE
36          l_effective_date := p_date_earned;
37       END IF;
38       OPEN csr_creator_type(l_effective_date);
39          FETCH csr_creator_type INTO l_creator_type;
40       CLOSE csr_creator_type;
41       IF ( (pay_advance_pay_ele_pkg.g_adv_pay_process = 'W' AND
42             l_creator_type = 'AD') OR
43            ( (pay_advance_pay_ele_pkg.g_adv_pay_process <> 'W' OR
44               pay_advance_pay_ele_pkg.g_adv_pay_process IS NULL) AND
45              (l_creator_type NOT IN ('AD', 'AE') )
46            )
47          )
48       THEN
49          l_skip := 'Y';
50       END IF;
51 
52       RETURN l_skip;
53 
54    END adv_payment_skip_rule;
55 
56 END PAY_NO_ADVANCE_PAY;