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