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