[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;