DBA Data[Home] [Help]

PACKAGE: APPS.PAY_NL_PAYFILE

Source


1 package PAY_NL_PAYFILE as
2 /* $Header: pynleftp.pkh 120.0.12000000.2 2007/08/02 10:52:35 summohan noship $ */
3 
4 level_cnt NUMBER;
5 --
6 
7 FUNCTION  get_payee_details(p_assignment_id              IN NUMBER
8                            ,p_business_group_id          IN NUMBER
9                            ,p_per_pay_method_id          IN NUMBER
10                            ,p_date_earned                IN DATE
11                            ,p_payee_address              OUT NOCOPY VARCHAR2
12                            ) RETURN VARCHAR2;
13 
14 PROCEDURE cache_formula(p_formula_name           IN VARCHAR2
15                         ,p_business_group_id     IN NUMBER
16                         ,p_effective_date        IN DATE
17                         ,p_formula_id		 IN OUT NOCOPY NUMBER
18                         ,p_formula_exists	 IN OUT NOCOPY BOOLEAN
19                         ,p_formula_cached	 IN OUT NOCOPY BOOLEAN
20                         );
21 
22 PROCEDURE run_formula(p_formula_id      IN NUMBER
23                      ,p_effective_date  IN DATE
24                      ,p_formula_name    IN VARCHAR2
25                      ,p_inputs          IN ff_exec.inputs_t
26                      ,p_outputs         IN OUT NOCOPY ff_exec.outputs_t);
27 
28 FUNCTION get_transaction_desc (p_assignment_id 		IN NUMBER
29 			      ,p_date_earned 		IN DATE
30 			      ,p_business_group_id 	IN NUMBER
31 	                      ,p_transaction_desc	IN VARCHAR2
32 	                      ,p_prepayment_id          IN VARCHAR2
33 			       ) RETURN VARCHAR2;
34 
35 FUNCTION  get_payee_address(p_payee_id   IN NUMBER
36                            ,p_payee_type IN VARCHAR2
37                            ,p_effective_date IN DATE) RETURN VARCHAR2;
38 
39 
40 /********************************************************
41 *       Cursor to fetch header record information       *
42 ********************************************************/
43 
44 CURSOR CSR_NL_PAYFILE_HEADER IS
45 SELECT 'CREATION_DATE=P'
46       ,to_char(ppa.effective_date, 'DDMMYY')
47       ,'PROCESS_DATE=P'
48       ,to_char(fnd_date.canonical_to_date(pay_nl_general.get_parameter(
49                                             ppa.legislative_parameters,
50                                             'PROCESS_DATE')), 'DDMMYY')
51       ,'FILE_ID=P'
52       , pay_nl_general.get_file_id(ppa.effective_date)
53       ,'BATCH_DESCRIPTION=P'
54       ,nvl(pay_nl_general.get_parameter(ppa.legislative_parameters, 'BATCH_DESC'),' ')
55       ,'USER_NAME=P'
56       ,pay_nl_general.get_parameter(ppa.legislative_parameters, 'USER_NAME')
57       ,'DATE_EARNED=C'
58       ,to_char(ppa.effective_date, 'YYYY/MM/DD HH24:MI:SS')
59       ,'ORG_PAY_METHOD_ID=C'
60       ,ppa.org_payment_method_id
61 FROM   pay_payroll_actions ppa
62 WHERE  ppa.payroll_action_id =
63        pay_magtape_generic.get_parameter_value('PAYROLL_ACTION_ID')
64        AND    EXISTS (
65        SELECT 1
66        FROM    pay_assignment_actions pas
67               ,pay_pre_payments       ppp
68        WHERE   pas.payroll_action_id = ppa.payroll_action_id
69        AND     ppp.pre_payment_id    = pas.pre_payment_id
70        AND     ppp.value > 0 );
71 
72 
73 
74 /********************************************************
75 *   Cursor to fetch batch/payment record information    *
76 ********************************************************/
77 
78 CURSOR CSR_NL_PAYFILE_BODY IS
79 SELECT 'AMOUNT=P'
80       ,sum(ppp.value*100)
81       ,'FIRST_NAME=P'
82       , substr(min(pef.first_name),1,35)
83       ,'LAST_NAME=P'
84       , substr(min(pef.last_name),1,35)
85       ,'INITIALS=P'
86       ,substr(min(pef.per_information1),1,35)
87       ,'EMP_NO=P'
88       , nvl(min(pef.employee_number),' ')
89       ,'ASG_NO=P'
90       ,decode(min(pay_nl_general.chk_multiple_assignments(ppa.effective_date,paf.person_id))
91                                       ,'Y',nvl(min(paf.assignment_number),' ')
92                                      ,'N', ' ')
93       ,'SUPPRESS_PAYEE_RECORD=P'
94       ,min(pay_nl_general.get_parameter(ppa.legislative_parameters,'SUPPRESS_PAYEE_RECORD'))
95       ,'ASSIGNMENT_ID=C'
96       , min(paf.assignment_id)
97       ,'BUSINESS_GROUP_ID=C'
98       , min(paf.business_group_id)
99       ,'PER_PAY_METHOD_ID=C'
100       ,min(ppp.personal_payment_method_id)
101       ,'DATE_EARNED=C'
102       ,to_char(min(ppa.effective_date), 'YYYY/MM/DD HH24:MI:SS')
103       ,'PRE_PAYMENT_ID=P'
104       ,min(ppp.pre_payment_id)
105 FROM  per_assignments_f             paf
106       ,per_people_f                 pef
107       ,pay_pre_payments             ppp
108       ,pay_assignment_actions       paa
109       ,pay_payroll_actions          ppa
110       ,pay_personal_payment_methods_f ppmf
111       ,pay_external_accounts        pea
112 WHERE  paa.payroll_action_id          =
113        pay_magtape_generic.get_parameter_value('PAYROLL_ACTION_ID')
114 AND    paa.pre_payment_id             = ppp.pre_payment_id
115 AND    paa.payroll_action_id          = ppa.payroll_action_id
116 AND    PPP.personal_payment_method_id = ppmf.personal_payment_method_id
117 AND    paa.assignment_id              = paf.assignment_id
118 AND    paf.person_id                  = pef.person_id
119 AND    ppp.value                      > 0
120 AND    pea.external_account_id  = ppmf.external_account_id
121 AND    ppa.effective_date BETWEEN paf.effective_start_date
122                               AND paf.effective_end_date
123 AND    ppa.effective_date BETWEEN pef.effective_start_date
124                               AND pef.effective_end_date
125 AND    ppa.effective_date BETWEEN ppmf.effective_start_date
126                               AND ppmf.effective_end_date
127 
128 /* This is for consolidating the third-party payments having same
129     account number for an employee.This will group the payments
130     by account number and person id if the user wishes to consolidate
131     else it will group by assignment id */
132 
133 Group by decode (pay_nl_general.get_parameter (legislative_parameters,
134                        'ACCOUNTNO_CONSOLIDATION'),'Y', (lpad(pef.person_id,10,0) ||lpad(pea.segment2,10,0)),
135 		         (lpad(paf.assignment_id,10,0)||lpad(pea.segment2,10,0)))
136 
137 ORDER BY decode(min(pay_nl_general.get_parameter(legislative_parameters,
138                                   'SORT_ORDER')),
139                                   'NAME', substr(min(pef.last_name) || ' ' || min(pef.first_name),1,30),
140                                   'NUMBER', min(pef.employee_number), null);
141 END PAY_NL_PAYFILE;