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