DBA Data[Home] [Help]

PACKAGE BODY: APPS.PAY_AE_EFT

Source


1 package body PAY_AE_EFT as
2  /* $Header: pyaeeftp.pkb 120.2 2012/01/19 08:28:51 rpahune ship $ */
3 
4  g_package                  varchar2(33) := 'PAY_AE_EFT.';
5  -- Global Variables
6  hr_formula_error  EXCEPTION;
7  g_formula_exists  BOOLEAN := TRUE;
8  g_formula_cached  BOOLEAN := FALSE;
9  g_formula_id      ff_formulas_f.formula_id%TYPE;
10  g_formula_name    ff_formulas_f.formula_name%TYPE;
11  --
12  FUNCTION get_customer_formula_header    (
13                                  p_Date_Earned  IN DATE
14                                 ,p_payment_method_id IN number
15                                 ,p_business_group_id IN number
16                                 ,p_payroll_id IN number
17                                 ,p_payroll_action_id IN number
18                                 ,p_creation_date  IN VARCHAR2
19                                 ,p_process_date   IN VARCHAR2
20                                 ,p_count          IN VARCHAR2
21                                 ,p_sumt            IN VARCHAR2
22                                 ,p_sumc IN VARCHAR2
23 				,p_sumd IN VARCHAR2
24                                 ,p_write_text1  OUT NOCOPY VARCHAR2
25                                 ,p_write_text2  OUT NOCOPY VARCHAR2
26                                 ,p_write_text3  OUT NOCOPY VARCHAR2
27                                 ,p_write_text4  OUT NOCOPY VARCHAR2
28                                 ,p_write_text5  OUT NOCOPY VARCHAR2
29                                 ,p_report_text1 OUT NOCOPY VARCHAR2
30                                 ,p_report_text2 OUT NOCOPY VARCHAR2
31                                 ,p_report_text3 OUT NOCOPY VARCHAR2
32                                 ,p_report_text4 OUT NOCOPY VARCHAR2
33                                 ,p_report_text5 OUT NOCOPY VARCHAR2
34                                 ,p_report_text6 OUT NOCOPY VARCHAR2
35                                 ,p_report_text7 OUT NOCOPY VARCHAR2
36                                 ,p_report_text8 OUT NOCOPY VARCHAR2
37                                 ,p_report_text9 OUT NOCOPY VARCHAR2
38                                 ,p_report_text10 OUT NOCOPY VARCHAR2
39 				,p_bank_code IN VARCHAR2
40 				,p_employer_code IN VARCHAR2
41 				,p_tape_type     IN VARCHAR2) return varchar2 IS
42  l_header varchar2(100);
43  l_body varchar2(100);
44  l_footer varchar2(100);
45  l_bank_code varchar2(100);
46  l_employer_code varchar2(100);
47  l_inputs ff_exec.inputs_t;
48  l_outputs ff_exec.outputs_t;
49 
50  /*cursor c_get_name(p_payment_method_id NUMBER) is
51  select PMETH_INFORMATION1,PMETH_INFORMATION2,PMETH_INFORMATION3,PMETH_INFORMATION4,PMETH_INFORMATION5
52  from PAY_ORG_PAYMENT_METHODS_F where ORG_PAYMENT_METHOD_ID = p_payment_method_id; */
53 
54  cursor c_get_name(p_payment_method_id NUMBER,p_Date_Earned DATE) is
55  select pom.PMETH_INFORMATION1,pom.PMETH_INFORMATION2,pom.PMETH_INFORMATION3,pom.PMETH_INFORMATION4,pom.PMETH_INFORMATION5
56  from PAY_ORG_PAYMENT_METHODS_F pom
57  where pom.ORG_PAYMENT_METHOD_ID = p_payment_method_id
58  and p_Date_Earned between pom.effective_start_date and pom.effective_end_date ;
59 
60  begin
61  --hr_utility.trace_on(null,'EFT');
62  l_payment_method_id := p_payment_method_id;
63 
64  open c_get_name(p_payment_method_id,p_Date_Earned);
65  fetch c_get_name into l_employer_code,l_bank_code,l_id_header,l_id_body,l_id_footer;
66  close c_get_name;
67 
68                    l_inputs(1).name  := 'DATE_EARNED';
69                    l_inputs(1).value := fnd_date.date_to_canonical(p_date_earned);
70                    l_inputs(2).name  := 'ORG_PAY_METHOD_ID';
71                    l_inputs(2).value := p_payment_method_id;
72                    l_inputs(3).name  := 'BUSINESS_GROUP_ID';
73                    l_inputs(3).value := p_business_group_id;
74                    l_inputs(4).name  := 'PAYROLL_ID';
75                    l_inputs(4).value := p_payroll_id;
76                    l_inputs(5).name  := 'PAYROLL_ACTION_ID';
77                    l_inputs(5).value := p_payroll_action_id;
78                    l_inputs(6).name  := 'CREATION_DATE';
79                    l_inputs(6).value := p_creation_date;
80                    l_inputs(7).name  := 'PAYMENT_DATE';
81                    l_inputs(7).value := p_process_date;
82                    l_inputs(8).name  := 'COUNT1';
83                    l_inputs(8).value := p_count;
84                    l_inputs(9).name  := 'SUMT';
85                    l_inputs(9).value := p_sumt;
86                    l_inputs(10).name  := 'SUMC';
87                    l_inputs(10).value := p_sumc;
88                    l_inputs(11).name  := 'SUMD';
89                    l_inputs(11).value := p_sumd;
90        		   l_inputs(12).name  := 'BANK_CODE';
91                    l_inputs(12).value := l_bank_code;
92 		   l_inputs(13).name  := 'EMPLOYER_CODE';
93                    l_inputs(13).value := l_employer_code;
94 		   l_inputs(14).name  := 'TAPE_TYPE';
95                    l_inputs(14).value := p_tape_type;
96                    l_outputs(1).name := 'WRITE_TEXT1';
97                    l_outputs(2).name := 'WRITE_TEXT2';
98                    l_outputs(3).name := 'WRITE_TEXT3';
99                    l_outputs(4).name := 'WRITE_TEXT4';
100                    l_outputs(5).name := 'WRITE_TEXT5';
101                    l_outputs(6).name := 'REPORT1_TEXT1';
102                    l_outputs(7).name := 'REPORT1_TEXT2';
103                    l_outputs(8).name := 'REPORT1_TEXT3';
104                    l_outputs(9).name := 'REPORT1_TEXT4';
105                    l_outputs(10).name := 'REPORT1_TEXT5';
106                    l_outputs(11).name := 'REPORT2_TEXT1';
107                    l_outputs(12).name := 'REPORT2_TEXT2';
108                    l_outputs(13).name := 'REPORT2_TEXT3';
109                    l_outputs(14).name := 'REPORT2_TEXT4';
110                    l_outputs(15).name := 'REPORT2_TEXT5';
111 
112  IF l_id_header is not null then
113          run_formula
114                  (l_id_header
115                   ,p_Date_Earned
116                   ,l_inputs
117                   ,l_outputs);
118  END IF;
119 
120    IF l_outputs.count > 0 and l_outputs.count > 0 THEN
121      FOR i IN l_outputs.first..l_outputs.last LOOP
122          IF l_outputs(i).name like 'WRITE_TEXT1' THEN
123            p_write_text1 := l_outputs(i).value;
124        ELSIF l_outputs(i).name like 'WRITE_TEXT2'  THEN
125            p_write_text2 := l_outputs(i).value;
126        ELSIF l_outputs(i).name like 'WRITE_TEXT3'  THEN
127            p_write_text3 := l_outputs(i).value;
128        ELSIF l_outputs(i).name like 'WRITE_TEXT4'  THEN
129            p_write_text4 := l_outputs(i).value;
130        ELSIF l_outputs(i).name like 'WRITE_TEXT5'  THEN
131            p_write_text5 := l_outputs(i).value;
132        ELSIF l_outputs(i).name like 'REPORT1_TEXT1'  THEN
133            p_report_text1 := l_outputs(i).value;
134        ELSIF l_outputs(i).name like 'REPORT1_TEXT2'  THEN
135            p_report_text2 := l_outputs(i).value;
136        ELSIF l_outputs(i).name like 'REPORT1_TEXT3'  THEN
137            p_report_text3 := l_outputs(i).value;
138        ELSIF l_outputs(i).name like 'REPORT1_TEXT4'  THEN
139            p_report_text4 := l_outputs(i).value;
140        ELSIF l_outputs(i).name like 'REPORT1_TEXT5'  THEN
141            p_report_text5 := l_outputs(i).value;
142       ELSIF l_outputs(i).name like 'REPORT2_TEXT1'  THEN
143            p_report_text6 := l_outputs(i).value;
144       ELSIF l_outputs(i).name like 'REPORT2_TEXT2'  THEN
145            p_report_text7 := l_outputs(i).value;
146       ELSIF l_outputs(i).name like 'REPORT2_TEXT3'  THEN
147            p_report_text8 := l_outputs(i).value;
148       ELSIF l_outputs(i).name like 'REPORT2_TEXT4'  THEN
149            p_report_text9 := l_outputs(i).value;
150       ELSIF l_outputs(i).name like 'REPORT2_TEXT5'  THEN
151            p_report_text10 := l_outputs(i).value;
152          END IF;
153       END LOOP;
154    END IF;
155 
156  RETURN '1';
157 
158  END get_customer_formula_header;
159  --
160  FUNCTION get_customer_formula_body      (
161                                   p_assignment_id IN number,
162                                   p_business_group_id IN number,
163                                   p_per_pay_method_id IN number,
164                                   p_date_earned IN date,
165                                   p_payroll_id IN number,
166                                   p_payroll_action_id IN number,
167                                   p_assignment_action_id IN number,
168                                   p_organization_id IN number,
169                                   p_tax_unit_id IN number,
170                                   p_amount IN varchar2,
171                                   p_first_name IN varchar2,
172                                   p_last_name IN varchar2,
173                                   p_initials IN varchar2,
174                                   p_emp_no IN varchar2,
175                                   p_asg_no IN varchar2,
176                                   p_count IN varchar2
177                             	 ,p_sumt            IN VARCHAR2
178                                  ,p_sumc            IN VARCHAR2
179                             	 ,p_sumd            IN VARCHAR2
180                                  ,p_write_text1  OUT NOCOPY VARCHAR2
181                                  ,p_write_text2  OUT NOCOPY VARCHAR2
182                                  ,p_write_text3  OUT NOCOPY VARCHAR2
183                                  ,p_write_text4  OUT NOCOPY VARCHAR2
184                                  ,p_write_text5  OUT NOCOPY VARCHAR2
185                                  ,p_report_text1 OUT NOCOPY VARCHAR2
186                                  ,p_report_text2 OUT NOCOPY VARCHAR2
187                                  ,p_report_text3 OUT NOCOPY VARCHAR2
188                                  ,p_report_text4 OUT NOCOPY VARCHAR2
189                                  ,p_report_text5 OUT NOCOPY VARCHAR2
190                                  ,p_report_text6 OUT NOCOPY VARCHAR2
191                                  ,p_report_text7 OUT NOCOPY VARCHAR2
192                                  ,p_report_text8 OUT NOCOPY VARCHAR2
193                                  ,p_report_text9 OUT NOCOPY VARCHAR2
194                                  ,p_report_text10 OUT NOCOPY VARCHAR2
195                                  ,p_local_nationality IN VARCHAR2
196 				 ,p_bank_code IN VARCHAR2
197                      	         ,p_employer_code IN VARCHAR2
198                      	         ,p_trancode IN VARCHAR2
199                      	         ,p_tape_type IN VARCHAR2
200                      	         ) return varchar2 IS
201  l_header varchar2(100);
202  l_body varchar2(100);
203  l_footer varchar2(100);
204  l_bank_code varchar2(100);
205  l_employer_code varchar2(100);
206  l_inputs ff_exec.inputs_t;
207  l_outputs ff_exec.outputs_t;
208 
209  /*cursor c_get_name(p_payment_method_id NUMBER) is
210  select PMETH_INFORMATION1,PMETH_INFORMATION2,PMETH_INFORMATION3,PMETH_INFORMATION4,PMETH_INFORMATION5
211  from PAY_ORG_PAYMENT_METHODS_F where ORG_PAYMENT_METHOD_ID = p_payment_method_id; */
212 
213  cursor c_get_name(p_payment_method_id NUMBER,p_Date_Earned DATE) is
214  select pom.PMETH_INFORMATION1,pom.PMETH_INFORMATION2,pom.PMETH_INFORMATION3,pom.PMETH_INFORMATION4,pom.PMETH_INFORMATION5
215  from PAY_ORG_PAYMENT_METHODS_F pom
216  where pom.ORG_PAYMENT_METHOD_ID = p_payment_method_id
220 
217  and p_Date_Earned between pom.effective_start_date and pom.effective_end_date ;
218 
219  begin
221  	open c_get_name(l_payment_method_id,p_Date_earned);
222  	fetch c_get_name into l_employer_code,l_bank_code,l_id_header,l_id_body,l_id_footer;
223  	close c_get_name;
224 
225                    l_inputs(1).name  := 'ASSIGNMENT_ID';
226                    l_inputs(1).value := p_assignment_id;
227                    l_inputs(2).name  := 'BUSINESS_GROUP_ID';
228                    l_inputs(2).value := p_business_group_id;
229                    l_inputs(3).name  := 'PER_PAY_METHOD_ID';
230                    l_inputs(3).value := p_per_pay_method_id;
231                    l_inputs(4).name  := 'DATE_EARNED';
232                    l_inputs(4).value := fnd_date.date_to_canonical(p_date_earned);
233                    l_inputs(5).name  := 'PAYROLL_ID';
234                    l_inputs(5).value := p_payroll_id;
235                    l_inputs(6).name  := 'PAYROLL_ACTION_ID';
236                    l_inputs(6).value := p_payroll_action_id;
237                    l_inputs(7).name  := 'ASSIGNMENT_ACTION_ID';
238                    l_inputs(7).value := p_assignment_action_id;
239                    l_inputs(8).name  := 'ORGANIZATION_ID';
240                    l_inputs(8).value := p_organization_id;
241                    l_inputs(9).name  := 'TAX_UNIT_ID';
242                    l_inputs(9).value := p_tax_unit_id;
243                    l_inputs(10).name  := 'AMOUNT';
244                    l_inputs(10).value := p_amount;
245                    l_inputs(11).name  := 'FIRST_NAME';
246                    l_inputs(11).value := p_first_name;
247                    l_inputs(12).name  := 'LAST_NAME';
248                    l_inputs(12).value := p_last_name;
249                    l_inputs(13).name  := 'INITIALS';
250                    l_inputs(13).value := p_initials;
251                    l_inputs(14).name  := 'EMP_NO';
252                    l_inputs(14).value := p_emp_no;
253                    l_inputs(15).name  := 'ASG_NO';
254                    l_inputs(15).value := p_asg_no;
255                    l_inputs(16).name  := 'TRANSFER_COUNT1';
256                    l_inputs(16).value := p_count;
257                    l_inputs(17).name  := 'TRANSFER_SUMT';
258                    l_inputs(17).value := p_sumt;
259                    l_inputs(18).name  := 'TRANSFER_SUMC';
260                    l_inputs(18).value := p_sumc;
261                    l_inputs(19).name  := 'TRANSFER_SUMD';
262                    l_inputs(19).value := p_sumd;
263                    l_inputs(20).name  := 'ORG_PAY_METHOD_ID';
264                    l_inputs(20).value := l_payment_method_id;
265                    l_inputs(21).name  := 'LOCAL_NATIONALITY';
266                    l_inputs(21).value := p_local_nationality;
267 		   l_inputs(22).name  := 'BANK_CODE';
268                    l_inputs(22).value := l_bank_code;
269    		   l_inputs(23).name  := 'EMPLOYER_CODE';
270                    l_inputs(23).value := l_employer_code;
271                    l_inputs(24).name  := 'TRANCODE';
272                    l_inputs(24).value := p_trancode;
273                    l_inputs(25).name  := 'TRANSFER_TAPE_TYPE';
274                    l_inputs(25).value := p_tape_type;
275                    l_outputs(1).name := 'WRITE_TEXT1';
276                    l_outputs(2).name := 'WRITE_TEXT2';
277                    l_outputs(3).name := 'WRITE_TEXT3';
278                    l_outputs(4).name := 'WRITE_TEXT4';
279                    l_outputs(5).name := 'WRITE_TEXT5';
280                    l_outputs(6).name := 'REPORT1_TEXT1';
281                    l_outputs(7).name := 'REPORT1_TEXT2';
282                    l_outputs(8).name := 'REPORT1_TEXT3';
283                    l_outputs(9).name := 'REPORT1_TEXT4';
284                    l_outputs(10).name := 'REPORT1_TEXT5';
285                    l_outputs(11).name := 'REPORT2_TEXT1';
286                    l_outputs(12).name := 'REPORT2_TEXT2';
287                    l_outputs(13).name := 'REPORT2_TEXT3';
288                    l_outputs(14).name := 'REPORT2_TEXT4';
289                    l_outputs(15).name := 'REPORT2_TEXT5';
290 
291  IF l_id_body is not null then
292          run_formula
293                  (l_id_body
294                   ,p_Date_Earned
295                   ,l_inputs
296                   ,l_outputs);
297  END IF;
298 
299    IF l_outputs.count > 0 and l_outputs.count > 0 THEN
300      FOR i IN l_outputs.first..l_outputs.last LOOP
301          IF l_outputs(i).name like 'WRITE_TEXT1' THEN
302            p_write_text1 := l_outputs(i).value;
303       ELSIF l_outputs(i).name like 'WRITE_TEXT2'  THEN
304            p_write_text2 := l_outputs(i).value;
305       ELSIF l_outputs(i).name like 'WRITE_TEXT3'  THEN
306            p_write_text3 := l_outputs(i).value;
307       ELSIF l_outputs(i).name like 'WRITE_TEXT4'  THEN
308            p_write_text4 := l_outputs(i).value;
309       ELSIF l_outputs(i).name like 'WRITE_TEXT5'  THEN
310            p_write_text5 := l_outputs(i).value;
311       ELSIF l_outputs(i).name like 'REPORT1_TEXT1'  THEN
312            p_report_text1 := l_outputs(i).value;
313       ELSIF l_outputs(i).name like 'REPORT1_TEXT2'  THEN
314            p_report_text2 := l_outputs(i).value;
315       ELSIF l_outputs(i).name like 'REPORT1_TEXT3'  THEN
316            p_report_text3 := l_outputs(i).value;
317       ELSIF l_outputs(i).name like 'REPORT1_TEXT4'  THEN
318            p_report_text4 := l_outputs(i).value;
319       ELSIF l_outputs(i).name like 'REPORT1_TEXT5'  THEN
320            p_report_text5 := l_outputs(i).value;
321       ELSIF l_outputs(i).name like 'REPORT2_TEXT1'  THEN
322            p_report_text6 := l_outputs(i).value;
323       ELSIF l_outputs(i).name like 'REPORT2_TEXT2'  THEN
324            p_report_text7 := l_outputs(i).value;
328            p_report_text9 := l_outputs(i).value;
325       ELSIF l_outputs(i).name like 'REPORT2_TEXT3'  THEN
326            p_report_text8 := l_outputs(i).value;
327       ELSIF l_outputs(i).name like 'REPORT2_TEXT4'  THEN
329       ELSIF l_outputs(i).name like 'REPORT2_TEXT5'  THEN
330            p_report_text10 := l_outputs(i).value;
331 	END IF;
332       END LOOP;
333    END IF;
334 
335  RETURN '1';
336 
337  end get_customer_formula_body;
338  ------
339  -------------
340  --
341  FUNCTION get_customer_formula_footer    (
342                                  p_Date_Earned   IN DATE
343                                 ,p_payment_method_id IN number
344                                 ,p_business_group_id IN number
345                                 ,p_payroll_id IN number
346                                 ,p_payroll_action_id IN number
347                                 ,p_creation_date  IN VARCHAR2
348                                 ,p_process_date   IN VARCHAR2
349                                 ,p_count          IN VARCHAR2
350                                 ,p_sumt            IN VARCHAR2
351                                 ,p_sumc IN VARCHAR2
352 				,p_sumd IN VARCHAR2
353                                 ,p_write_text1  OUT NOCOPY VARCHAR2
354                                 ,p_write_text2  OUT NOCOPY VARCHAR2
355                                 ,p_write_text3  OUT NOCOPY VARCHAR2
356                                 ,p_write_text4  OUT NOCOPY VARCHAR2
357                                 ,p_write_text5  OUT NOCOPY VARCHAR2
358                                 ,p_report_text1 OUT NOCOPY VARCHAR2
359                                 ,p_report_text2 OUT NOCOPY VARCHAR2
360                                 ,p_report_text3 OUT NOCOPY VARCHAR2
361                                 ,p_report_text4 OUT NOCOPY VARCHAR2
362                                 ,p_report_text5 OUT NOCOPY VARCHAR2
363                                 ,p_report_text6 OUT NOCOPY VARCHAR2
364                                 ,p_report_text7 OUT NOCOPY VARCHAR2
365                                 ,p_report_text8 OUT NOCOPY VARCHAR2
366                                 ,p_report_text9 OUT NOCOPY VARCHAR2
367                                 ,p_report_text10 OUT NOCOPY VARCHAR2
368 				,p_bank_code IN VARCHAR2
369 				,p_employer_code IN VARCHAR2
370 				,p_tape_type IN VARCHAR2) return varchar2 IS
371  l_header varchar2(100);
372  l_body varchar2(100);
373  l_footer varchar2(100);
374  l_bank_code varchar2(100);
375  l_employer_code varchar2(100);
376  l_inputs ff_exec.inputs_t;
377  l_outputs ff_exec.outputs_t;
378 
379  /*cursor c_get_name(p_payment_method_id NUMBER) is
380  select PMETH_INFORMATION1,PMETH_INFORMATION2,PMETH_INFORMATION3,PMETH_INFORMATION4,PMETH_INFORMATION5
381  from PAY_ORG_PAYMENT_METHODS_F where ORG_PAYMENT_METHOD_ID = p_payment_method_id;*/
382 
383  cursor c_get_name(p_payment_method_id NUMBER,p_Date_Earned DATE) is
384  select pom.PMETH_INFORMATION1,pom.PMETH_INFORMATION2,pom.PMETH_INFORMATION3,pom.PMETH_INFORMATION4,pom.PMETH_INFORMATION5
385  from PAY_ORG_PAYMENT_METHODS_F pom
386  where pom.ORG_PAYMENT_METHOD_ID = p_payment_method_id
387  and p_Date_Earned between pom.effective_start_date and pom.effective_end_date ;
388 
389  begin
390  l_payment_method_id := p_payment_method_id;
391 
392  open c_get_name(p_payment_method_id,p_Date_Earned);
393  fetch c_get_name into l_employer_code,l_bank_code,l_id_header,l_id_body,l_id_footer;
394  close c_get_name;
395 
396                    l_inputs(1).name  := 'DATE_EARNED';
397                    l_inputs(1).value := fnd_date.date_to_canonical(p_date_earned);
398                    l_inputs(2).name  := 'ORG_PAY_METHOD_ID';
399                    l_inputs(2).value := p_payment_method_id;
400                    l_inputs(3).name  := 'BUSINESS_GROUP_ID';
401                    l_inputs(3).value := p_business_group_id;
402                    l_inputs(4).name  := 'PAYROLL_ID';
403                    l_inputs(4).value := p_payroll_id;
404                    l_inputs(5).name  := 'PAYROLL_ACTION_ID';
405                    l_inputs(5).value := p_payroll_action_id;
406                    l_inputs(6).name  := 'CREATION_DATE';
407                    l_inputs(6).value := p_creation_date;
408                    l_inputs(7).name  := 'PAYMENT_DATE';
409                    l_inputs(7).value := p_process_date;
410                    l_inputs(8).name  := 'COUNT1';
411                    l_inputs(8).value := p_count;
412                    l_inputs(9).name  := 'SUMT';
413                    l_inputs(9).value := p_sumt;
414 		   l_inputs(10).name  := 'SUMC';
415                    l_inputs(10).value := p_sumc;
416                    l_inputs(11).name  := 'SUMD';
417                    l_inputs(11).value := p_sumd;
418 		   l_inputs(12).name  := 'BANK_CODE';
419                    l_inputs(12).value := l_bank_code;
420 		   l_inputs(13).name  := 'EMPLOYER_CODE';
421                    l_inputs(13).value := l_employer_code;
422 		   l_inputs(14).name  := 'TAPE_TYPE';
423                    l_inputs(14).value := p_tape_type;
424                    l_outputs(1).name := 'WRITE_TEXT1';
425                    l_outputs(2).name := 'WRITE_TEXT2';
426                    l_outputs(3).name := 'WRITE_TEXT3';
427                    l_outputs(4).name := 'WRITE_TEXT4';
428                    l_outputs(5).name := 'WRITE_TEXT5';
429                    l_outputs(6).name := 'REPORT1_TEXT1';
430                    l_outputs(7).name := 'REPORT1_TEXT2';
431                    l_outputs(8).name := 'REPORT1_TEXT3';
432                    l_outputs(9).name := 'REPORT1_TEXT4';
433                    l_outputs(10).name := 'REPORT1_TEXT5';
434                    l_outputs(11).name := 'REPORT2_TEXT1';
438                    l_outputs(15).name := 'REPORT2_TEXT5';
435                    l_outputs(12).name := 'REPORT2_TEXT2';
436                    l_outputs(13).name := 'REPORT2_TEXT3';
437                    l_outputs(14).name := 'REPORT2_TEXT4';
439 
440  IF l_id_footer is not null then
441  run_formula
442                  (l_id_footer
443                   ,p_Date_Earned
444                   ,l_inputs
445                   ,l_outputs);
446  END IF;
447 
448    IF l_outputs.count > 0 and l_outputs.count > 0 THEN
449      FOR i IN l_outputs.first..l_outputs.last LOOP
450          IF l_outputs(i).name like 'WRITE_TEXT1' THEN
451            p_write_text1 := l_outputs(i).value;
452       ELSIF l_outputs(i).name like 'WRITE_TEXT2'  THEN
453            p_write_text2 := l_outputs(i).value;
454       ELSIF l_outputs(i).name like 'WRITE_TEXT3'  THEN
455            p_write_text3 := l_outputs(i).value;
456       ELSIF l_outputs(i).name like 'WRITE_TEXT4'  THEN
457            p_write_text4 := l_outputs(i).value;
458       ELSIF l_outputs(i).name like 'WRITE_TEXT5'  THEN
459            p_write_text5 := l_outputs(i).value;
460       ELSIF l_outputs(i).name like 'REPORT1_TEXT1'  THEN
461            p_report_text1 := l_outputs(i).value;
462       ELSIF l_outputs(i).name like 'REPORT1_TEXT2'  THEN
463            p_report_text2 := l_outputs(i).value;
464       ELSIF l_outputs(i).name like 'REPORT1_TEXT3'  THEN
465            p_report_text3 := l_outputs(i).value;
466       ELSIF l_outputs(i).name like 'REPORT1_TEXT4'  THEN
467            p_report_text4 := l_outputs(i).value;
468       ELSIF l_outputs(i).name like 'REPORT1_TEXT5'  THEN
469            p_report_text5 := l_outputs(i).value;
470       ELSIF l_outputs(i).name like 'REPORT2_TEXT1'  THEN
471            p_report_text6 := l_outputs(i).value;
472       ELSIF l_outputs(i).name like 'REPORT2_TEXT2'  THEN
473            p_report_text7 := l_outputs(i).value;
474       ELSIF l_outputs(i).name like 'REPORT2_TEXT3'  THEN
475            p_report_text8 := l_outputs(i).value;
476       ELSIF l_outputs(i).name like 'REPORT2_TEXT4'  THEN
477            p_report_text9 := l_outputs(i).value;
478       ELSIF l_outputs(i).name like 'REPORT2_TEXT5'  THEN
479            p_report_text10 := l_outputs(i).value;
480          END IF;
481       END LOOP;
482    END IF;
483 
484  RETURN '1';
485 
486  end get_customer_formula_footer;
487  ---
488  ----------
489  -----
490  PROCEDURE run_formula(p_formula_id      IN NUMBER
491                       ,p_effective_date  IN DATE
492                       ,p_inputs          IN ff_exec.inputs_t
493                       ,p_outputs         IN OUT NOCOPY ff_exec.outputs_t) IS
494  l_inputs ff_exec.inputs_t;
495  l_outputs ff_exec.outputs_t;
496  BEGIN
497    hr_utility.set_location('--In Formula ',20);
498    --
499    -- Initialize the formula
500    --
501    ff_exec.init_formula(p_formula_id, p_effective_date  , l_inputs, l_outputs);
502    --
503   hr_utility.trace('after ff_exec');
504    -- Set up the input values
505    --
506    IF l_inputs.count > 0 and p_inputs.count > 0 THEN
507      FOR i IN l_inputs.first..l_inputs.last LOOP
508        FOR j IN p_inputs.first..p_inputs.last LOOP
509          IF l_inputs(i).name = p_inputs(j).name THEN
510             l_inputs(i).value := p_inputs(j).value;
511             exit;
512          END IF;
513       END LOOP;
514      END LOOP;
515    END IF;
516    --
517    -- Run the formula
518    --
519   hr_utility.trace('about to exec');
520    ff_exec.run_formula(l_inputs,l_outputs);
521    --
522   hr_utility.trace('After exec');
523    -- Populate the output table
524    --
525    IF l_outputs.count > 0 and p_inputs.count > 0 then
526      FOR i IN l_outputs.first..l_outputs.last LOOP
527          FOR j IN p_outputs.first..p_outputs.last LOOP
528              IF l_outputs(i).name = p_outputs(j).name THEN
529                p_outputs(j).value := l_outputs(i).value;
530                exit;
531              END IF;
532          END LOOP;
533      END LOOP;
534    END IF;
535    hr_utility.set_location('--Leaving Formula ',21);
536    EXCEPTION
537    WHEN hr_formula_error THEN
538        fnd_message.set_name('PER','FFX22J_FORMULA_NOT_FOUND');
539        fnd_message.set_token('1', g_formula_name);
540        fnd_message.raise_error;
541    WHEN OTHERS THEN
542      raise;
543  --
544  END run_formula;
545  END PAY_AE_EFT;