DBA Data[Home] [Help]

PACKAGE BODY: APPS.PAY_ES_ADVANCE_PAY

Source


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