[Home] [Help]
PACKAGE BODY: APPS.FUN_AP_TRANSFER
Source
1 PACKAGE BODY FUN_AP_TRANSFER AS
2 /* $Header: FUN_AP_XFER_B.pls 120.24.12010000.4 2009/01/19 12:02:39 ychandra ship $ */
3
4 ap_acct_invalid EXCEPTION;
5
6
7 FUNCTION has_valid_conversion_rate (
8 p_from_currency IN varchar2,
9 p_to_currency IN varchar2,
10 p_exchange_type IN varchar2,
11 p_exchange_date IN date) RETURN number
12 IS
13 l_has_rate number;
14 BEGIN
15 IF (p_from_currency = p_to_currency) THEN
16 RETURN 1;
17 END IF;
18 SELECT COUNT(conversion_rate) INTO l_has_rate
19 FROM gl_daily_rates
20 WHERE from_currency = p_from_currency AND
21 to_currency = p_to_currency AND
22 conversion_type = p_exchange_type AND
23 conversion_date = p_exchange_date;
24
25 IF (l_has_rate = 0) THEN
26 RETURN 0;
27 END IF;
28 RETURN 1;
29 END has_valid_conversion_rate;
30
31
32 /*-----------------------------------------------------
33 * FUNCTION lock_and_transfer
34 * ----------------------------------------------------
35 * Acquires lock and transfer one trx.
36 *
37 * Returns TRUE iff it can obtain lock, see a valid
38 * status, and transfer the trx.
39 * ---------------------------------------------------*/
40
41 FUNCTION lock_and_transfer (
42 p_trx_id IN number,
43 p_batch_date IN date,
44 p_vendor_id IN number,
45 p_site_id IN number,
46 p_gl_date IN date,
47 p_currency IN varchar2,
48 p_exchg_rate IN varchar2,
49 p_source IN varchar2,
50 p_approval_date IN date,
51 p_to_org_id IN number,
52 p_invoice_num IN varchar2,
53 p_from_org_id IN NUMBER) RETURN boolean
54 IS
55 l_status varchar2(15);
56 l_payable_ccid number;
57 BEGIN
58 IF (NOT lock_transaction(p_trx_id)) THEN
59 RETURN FALSE;
60 ELSE
61 transfer_single(p_trx_id, p_batch_date, p_vendor_id,
62 p_site_id, p_currency, p_exchg_rate,
63 p_source, p_gl_date, p_approval_date,
64 p_to_org_id, p_invoice_num,p_from_org_id,
65 l_payable_ccid);
66
67 update_status(p_trx_id);
68 END IF;
69
70 RETURN TRUE;
71 END lock_and_transfer;
72
73
74
75 /*-----------------------------------------------------
76 * FUNCTION lock_transaction
77 * ----------------------------------------------------
78 * Lock the transaction, test if it's valid still.
79 * ---------------------------------------------------*/
80
81 FUNCTION lock_transaction (
82 p_trx_id IN number) RETURN boolean
83 IS
84 l_status varchar2(15);
85 BEGIN
86 SELECT status INTO l_status
87 FROM fun_trx_headers
88 WHERE trx_id = p_trx_id
89 FOR UPDATE;
90
91 IF (l_status = 'XFER_AR') THEN
92 RETURN TRUE;
93 ELSE
94 RETURN FALSE;
95 END IF;
96 END lock_transaction;
97
98
99
100
101 /*-----------------------------------------------------
102 * PROCEDURE update_status
103 * ----------------------------------------------------
104 * Returns the new status.
105 * ---------------------------------------------------*/
106
107 PROCEDURE update_status (
108 p_trx_id IN number)
109 IS
110 l_result varchar2(1);
111 l_msg_count number;
112 l_msg_data varchar2(1000);
113 BEGIN
114 fun_trx_pvt.update_trx_status
115 (p_api_version => 1.0,
116 x_return_status => l_result,
117 x_msg_count => l_msg_count,
118 x_msg_data => l_msg_data,
119 p_trx_id => p_trx_id,
120 p_update_status_to => 'COMPLETE');
121
122 -- Handle the API call return
123
124 IF l_result = FND_API.G_RET_STS_ERROR THEN
125
126 raise FND_API.G_EXC_ERROR;
127 END IF;
128
129
130 IF l_result = FND_API.G_RET_STS_UNEXP_ERROR THEN
131
132 raise FND_API.G_EXC_UNEXPECTED_ERROR;
133 END IF;
134
135
136 END update_status;
137
138
139
140
141
142 /*-----------------------------------------------------
143 * PROCEDURE transfer_batch
144 * ----------------------------------------------------
145 * Transfer to AP interface in batch.
146 * ---------------------------------------------------*/
147
148 PROCEDURE transfer_batch (
149 errbuf OUT NOCOPY varchar2,
150 retcode OUT NOCOPY number,
151 p_org_id IN number default null,
152 p_le_id IN number default null,
153 p_period_low IN varchar2 default null,
154 p_period_high IN varchar2 default null,
155 p_run_payables_import IN varchar2 default 'N' )
156 IS
157 l_trx_id number;
158 l_batch_date date;
159 l_currency varchar2(15);
160 l_ledger_currency varchar2(15);
161 l_period_status varchar2(1);
162 l_gl_date date;
163 l_approval_date date;
164 l_invoice_num varchar2(50);
165 l_from_le_id number;
166 l_to_le_id number;
167 l_from_org_id number;
168 l_to_org_id number;
169 l_recipient_id number;
170 l_initiator_id number;
171
172 l_vendor_id number;
173 l_site_id number;
174 l_payable_ccid number;
175 l_rowcount number := 0;
176 l_error number := 0;
177 x_msg_data varchar2(1000);
178 l_parameter_list WF_PARAMETER_LIST_T :=wf_parameter_list_t();
179 l_event_key varchar2(240);
180 l_init_sysdate date;
181 l_source varchar2(100) := 'GLOBAL_INTERCOMPANY';
182 l_request_id number;
183 l_conv_type fun_trx_batches.exchange_rate_type%TYPE;
184 l_counter number;
185 l_trx_num varchar2(15);
186 l_batch_num varchar2(15);
187 l_org_name varchar2(240);
188 l_le_name varchar2(240);
189 l_date_low date;
190 l_date_high date;
191 Request_Submission_Failure EXCEPTION;
192 is_data_transferred varchar2(1);
193 l_run_payables_import varchar2(3);
194
195
196 TYPE ORG_ID_TAB_TYPE IS TABLE OF NUMBER INDEX BY BINARY_INTEGER;
197 org_id_table ORG_ID_TAB_TYPE;
198 l_previous_org_id number;
199
200 CURSOR c_trx IS
201 SELECT h.trx_id,
202 h.trx_number,
203 b.batch_number,
204 b.batch_date,
205 b.currency_code,
206 b.exchange_rate_type,
207 ledgers.currency_code,
208 ps.closing_status,
209 b.gl_date,
210 h.approval_date,
211 h.ar_invoice_number,
212 b.from_le_id,
213 h.to_le_id ,
214 fun_tca_pkg.get_ou_id(h.initiator_id) from_org_id,
215 NVL(p_org_id, fun_tca_pkg.get_ou_id(h.recipient_id)) to_org_id,
216 b.initiator_id,
217 h.recipient_id
218 FROM fun_trx_batches b,
219 fun_trx_headers h,
220 gl_period_statuses ps,
221 gl_ledgers ledgers
222 WHERE b.batch_id = h.batch_id AND
223 ps.ledger_id = h.to_ledger_id AND
224 ps.application_id = 200 AND
225 ledgers.ledger_id = h.to_ledger_id AND
226 b.gl_date BETWEEN ps.start_date AND ps.end_date AND
227 b.gl_date BETWEEN nvl(l_date_low, b.gl_date)
228 AND nvl(l_date_high, b.gl_date) AND
229 h.to_le_id = NVL(p_le_id, h.to_le_id) AND
230 NVL(p_org_id, 1) = NVL2(p_org_id,
231 fun_tca_pkg.get_ou_id(h.recipient_id),1) AND
232 h.status = 'XFER_AR' AND
233 h.ar_invoice_number IS NOT NULL
234 ORDER BY to_org_id; -- Order By added to be able to set
235 -- Org Context when submitting AP Import
236
237 BEGIN
238 l_error:=1;
239 retcode := 0;
240 l_counter :=0;
241 l_date_low := TRUNC(fnd_date.canonical_to_date(p_period_low));
242 l_date_high:= TRUNC(fnd_date.canonical_to_date(p_period_high));
243 is_data_transferred:= 'N';
244 IF p_run_payables_import = 'Y' THEN
245 l_run_payables_import := 'Yes';
246 ELSE
247 l_run_payables_import :='No';
248 END IF;
249
250 select sysdate into l_init_sysdate from dual;
251
252 l_request_id := fnd_global.conc_request_id;
253
254 IF (p_org_id is not null) THEN
255 select hr.name into l_org_name from hr_operating_units hr
256 where hr.organization_id = p_org_id;
257 END IF;
258
259 IF (p_le_id is not null) THEN
260 select xle.name into l_le_name from xle_entity_profiles xle
261 where xle.legal_entity_id = p_le_id;
262 END IF;
263
264 FND_FILE.PUT_LINE(FND_FILE.OUTPUT, ' Transfer Intercompany Transactions to Payables Report Date:'||to_char(sysdate,'DD-MON-YYYY HH:MM'));
265 FND_FILE.NEW_LINE(FND_FILE.OUTPUT,2 );
266 FND_FILE.PUT_LINE(FND_FILE.OUTPUT,' Operating Unit: ' || l_org_name);
267 FND_FILE.PUT_LINE(FND_FILE.OUTPUT,' Legal Entity: ' || l_le_name );
268 FND_FILE.PUT_LINE(FND_FILE.OUTPUT,' GL Date From: ' || to_char(l_date_low, 'DD-MON-YYYY'));
269 FND_FILE.PUT_LINE(FND_FILE.OUTPUT,' GL Date To: ' || to_char(l_date_high,'DD-MON-YYYY'));
270 FND_FILE.PUT_LINE(FND_FILE.OUTPUT,'Submit Payables Import: ' || l_run_payables_import);
271 FND_FILE.NEW_LINE(FND_FILE.OUTPUT,2 );
272 FND_FILE.PUT_LINE(FND_FILE.OUTPUT,'Batch Number Transaction Number Transfer Status' );
273 FND_FILE.PUT_LINE(FND_FILE.OUTPUT,'------------ ------------------ ----------------');
274
275
276 l_previous_org_id := 0;
277 OPEN c_trx;
278 LOOP
279 FETCH c_trx INTO l_trx_id,
280 l_trx_num,
281 l_batch_num,
282 l_batch_date,
283 l_currency,
284 l_conv_type,
285 l_ledger_currency,
286 l_period_status,
287 l_gl_date,
288 l_approval_date,
289 l_invoice_num,
290 l_from_le_id,
291 l_to_le_id,
292 l_from_org_id,
293 l_to_org_id,
294 l_initiator_id,
295 l_recipient_id;
296
297 exit when c_trx%NOTFOUND;
298 l_counter := l_counter+1;
299
300 IF (NOT fun_trading_relation.get_supplier(
301 'INTERCOMPANY',
302 l_from_le_id,
303 l_to_le_id,
304 l_from_org_id,
305 l_to_org_id,
306 l_initiator_id,
307 l_recipient_id,
308 l_batch_date,
309 x_msg_data,
310 l_vendor_id,
311 l_site_id)) THEN
312
313 l_error := 2;
314 fnd_message.set_name('FUN','FUN_XFER_AP_INVALID_RELATION');
315
316 END IF;
317
318 IF (l_period_status NOT IN ('O', 'F')) THEN
319 l_error := 2;
320 fnd_message.set_name('FUN', 'FUN_XFER_AP_PERIOD');
321 END IF;
322
323 IF (l_to_org_id IS NULL) THEN
324 l_error := 2;
325 fnd_message.set_name('FUN', 'FUN_XFER_AP_TO_ORG_ID_NULL');
326 END IF;
327
328 IF (has_valid_conversion_rate(l_currency,l_ledger_currency,l_conv_type,l_gl_date)=0) THEN
329 l_error := 2;
330 fnd_message.set_name('FUN', 'FUN_CONV_RATE_NOT_FOUND');
331 END IF;
332
333 IF (l_error = 1) THEN
334 -- Lock record
335 SELECT trx_id INTO l_trx_id
336 FROM fun_trx_headers
337 WHERE trx_id = l_trx_id
338 FOR UPDATE;
339
340 BEGIN
341 transfer_single(l_trx_id, l_batch_date, l_vendor_id,
342 l_site_id, l_currency, l_conv_type,
343 l_source, l_gl_date, l_approval_date,
344 l_to_org_id, l_invoice_num, l_from_org_id,
345 l_payable_ccid);
346
347
348 update_status(l_trx_id);
349
350 IF l_previous_org_id <> l_to_org_id THEN
351 ORG_ID_TABLE(org_id_table.count+1) := l_to_org_id;
352 l_previous_org_id := l_to_org_id;
353 END IF;
354
355 fnd_message.set_name('FUN','FUN_XFER_SUCCESS');
356 FND_FILE.PUT_LINE(FND_FILE.OUTPUT,rpad(substr(l_batch_num, 1,15),20)||rpad(substr(l_trx_num,1,15),20)||fnd_message.get);
357 is_data_transferred:='Y';
358 EXCEPTION
359 WHEN OTHERS THEN
360 fnd_file.put_line(fnd_file.log,'Error :'||SQLERRM);
361
362
363 END;
364 ELSIF (l_error = 2) THEN
365 FND_FILE.PUT_LINE(FND_FILE.OUTPUT,rpad(substr(l_batch_num,1,15),20)||rpad(substr(l_trx_num,1,15),20)||fnd_message.get);
366 END IF;
367
368 l_error := 1;
369
370 END LOOP;
371 CLOSE c_trx;
372 FND_FILE.NEW_LINE(FND_FILE.OUTPUT,2 );
373 IF (l_counter = 0) THEN
374 FND_FILE.PUT_LINE(FND_FILE.OUTPUT,' *****No Data Found*****');
375 ELSE
376 FND_FILE.PUT_LINE(FND_FILE.OUTPUT,' *****End Of Report*****');
377 END IF;
378
379 COMMIT;
380
381 -- RAISE oracle.apps.fun.batch.ap.transfer;
382 WF_EVENT.AddParameterToList(p_name=>'INIT_SYS_DATE',
383 p_value=>TO_CHAR(l_init_sysdate),
384 p_parameterlist =>l_parameter_list
385 );
386 WF_EVENT.AddParameterToList(p_name=>'SOURCE',
390 l_event_key:=FUN_INITIATOR_WF_PKG.GENERATE_KEY(p_batch_id=>l_request_id,
387 p_value=>l_source,
388 p_parameterlist =>l_parameter_list
389 );
391 p_trx_id => 0
392 );
393
394 WF_EVENT.RAISE(p_event_name =>'oracle.apps.fun.batch.ap.transfer',
395 p_event_key =>l_event_key,
396 p_parameters=>l_parameter_list);
397
398 IF p_run_payables_import='Y' and is_data_transferred='Y' AND
399 org_id_table.count > 0
400 THEN
401 FOR I in org_id_table.First .. org_id_table.last
402 LOOP
403 FND_REQUEST.set_org_id(org_id_table(I));
404 l_request_id := FND_REQUEST.SUBMIT_REQUEST(
405 application => 'SQLAP',
406 program =>'APXIIMPT',
407 description => null,
408 start_time => null,
409 sub_request=> FALSE,
410 argument1 => org_id_table(I),
411 argument2 =>'GLOBAL_INTERCOMPANY',
412 argument3 =>null,
413 argument4 =>null);
414
415 IF l_request_id <> 0 THEN
416 fnd_file.put_line(fnd_file.log,'Submitted the Payables Import Program. Request id: ' || l_request_id || ' for Org Id ' || org_id_table(I));
417 commit;
418 ELSE
419 RAISE Request_Submission_Failure;
420 END IF;
421 END LOOP;
422 END IF;
423
424
425 l_parameter_list.delete();
426
427 EXCEPTION
428
429 WHEN Request_Submission_Failure THEN
430 FND_FILE.PUT_LINE(FND_FILE.LOG,'Error in submitting Payables Import Process');
431 retcode :=2;
432 WHEN OTHERS THEN
433 FND_FILE.PUT_LINE(FND_FILE.LOG,'Unexpected error:' || sqlcode || sqlerrm);
434 retcode := 2;
435
436 END transfer_batch;
437
438
439 /*-----------------------------------------------------
440 * PROCEDURE transfer_single
441 * ----------------------------------------------------
442 * Transfer a single transaction to AP interface.
443 * It assumes that the caller has a lock on the
444 * transaction, and the caller will do the commit.
445 * ---------------------------------------------------*/
446
447 PROCEDURE transfer_single (
448 p_trx_id IN number,
449 p_batch_date IN date,
450 p_vendor_id IN number,
451 p_vendor_site_id IN number,
452 p_currency IN varchar2,
453 p_conv_type IN varchar2,
454 p_source IN varchar2,
455 p_gl_date IN date,
456 p_approval_date IN date,
457 p_org_id IN number,
458 p_invoice_num IN varchar2,
459 p_from_org_id IN NUMBER,
460 p_payables_ccid OUT NOCOPY number)
461 IS
462 l_acct_valid varchar2(1);
463 l_desc varchar2(250);
464 l_desc_header_level varchar2(250); -- Bug No : 7652608
465 l_invoice_id number;
466 l_inv_line_id number;
467 l_l_amount_cr number;
468 l_l_amount_dr number;
469 l_d_amount_cr number;
470 l_d_amount_dr number;
471 l_amount number;
472 l_ccid number;
473 l_dist_id number;
474 l_line_type varchar2(15);
475 l_dist_type varchar2(15);
476
477 l_parameter_list WF_PARAMETER_LIST_T :=wf_parameter_list_t();
478 l_event_key VARCHAR2(240);
479
480 CURSOR c_dist IS
481 SELECT NVL(d.amount_cr,0), NVL(d.amount_dr,0), d.ccid,
482 d.dist_type_flag, NVL(t.reci_amount_cr,0), NVL(t.reci_amount_dr,0),
483 d.dist_id, t.line_type_flag, d.description -- Bug No : 7122846
484 FROM fun_dist_lines d,
485 fun_trx_lines t
486 WHERE t.trx_id = p_trx_id AND
487 d.line_id = t.line_id AND
488 d.party_type_flag = 'R';
489
490 CURSOR c_get_site_dtls (p_vendor_id NUMBER,
491 p_vendor_site_id NUMBER)
492 IS
493 SELECT site.payment_method_lookup_code
494 FROM po_vendor_sites_all site
495 WHERE site.vendor_id = p_vendor_id
496 AND site.vendor_site_id = p_vendor_site_id;
497
498 -- For intercompany transactions, as per the current datamodel
499 -- each AR Intercompany invoice will have 1 line
500 -- ie 1 row in ra_customer_trx and ra_customer_trx_lines
501 CURSOR c_get_etax_info (p_trx_id NUMBER,
502 p_invoice_num VARCHAR2,
503 p_from_org_id NUMBER)
504 IS
505 SELECT zx.application_id,
506 zx.entity_code,
507 zx.event_class_code,
508 zx.trx_id,
509 zx.trx_line_id,
510 zx.trx_level_type
511 FROM zx_lines_det_factors zx,
512 ra_customer_trx_all artrx
513 WHERE zx.trx_id = artrx.customer_trx_id
514 AND zx.application_id = 222
515 AND zx.entity_code = 'TRANSACTIONS'
516 AND artrx.trx_number = p_invoice_num
517 AND artrx.org_id = p_from_org_id
521 l_payment_method_lookup_code VARCHAR2(30);
518 AND artrx.INTERFACE_HEADER_ATTRIBUTE2 = p_trx_id; -- bug no : 7718598
519
520
522 l_application_id zx_lines_det_factors.application_id%TYPE;
523 l_entity_code zx_lines_det_factors.entity_code%TYPE;
524 l_event_class_code zx_lines_det_factors.event_class_code%TYPE;
525 l_trx_id zx_lines_det_factors.trx_id%TYPE;
526 l_trx_line_id zx_lines_det_factors.trx_line_id%TYPE;
527 l_trx_level_type zx_lines_det_factors.trx_level_type%TYPE;
528
529 BEGIN
530
531 -- Get etax info for AP to be able to calculate tax
532 OPEN c_get_etax_info( p_trx_id, p_invoice_num, p_from_org_id);
533 FETCH c_get_etax_info INTO l_application_id,
534 l_entity_code,
535 l_event_class_code,
536 l_trx_id,
537 l_trx_line_id,
538 l_trx_level_type;
539 CLOSE c_get_etax_info;
540
541 OPEN c_get_site_dtls ( p_vendor_id ,
542 p_vendor_site_id );
543 FETCH c_get_site_dtls INTO l_payment_method_lookup_code;
544 CLOSE c_get_site_dtls;
545
546 l_payment_method_lookup_code := Nvl(l_payment_method_lookup_code,
547 'CHECK');
548
549 OPEN c_dist;
550
551 SELECT ap_invoices_interface_s.nextval INTO l_invoice_id
552 FROM dual;
553
554 LOOP
555 FETCH c_dist INTO l_d_amount_cr, l_d_amount_dr, l_ccid,
556 l_dist_type, l_l_amount_cr, l_l_amount_dr,
557 l_dist_id, l_line_type, l_desc;
558 EXIT WHEN c_dist%NOTFOUND;
559
560 IF (l_dist_type = 'P') THEN
561 /* to do
562 fun_trx_pvt.is_payable_acct_valid(l_acct_valid, l_ccid);
563 IF (l_acct_valid <> fnd_api.g_ret_sts_success) THEN
564 RAISE ap_acct_invalid;
565 END IF;
566 */
567
568 -- Amounts Transferred to AP should be
569 -- Reci Trx Amount: 1000 Cr, AP Amount: 1000
570 -- Reci Trx Amount: -1000 Cr, AP Amount: -1000
571 -- Reci Trx Amount: 1000 Dr, AP Amount: -1000
572 -- Reci Trx Amount: -1000 Dr, AP Amount: 1000
573
574 IF l_l_amount_cr <> 0
575 THEN
576 l_amount := l_l_amount_cr;
577
578 ELSIF l_l_amount_dr <> 0
579 THEN
580 l_amount := l_l_amount_dr * (-1);
581 END IF;
582 -- Bug: 7652608
583 select description
584 INTO l_desc_header_level
585 from fun_trx_headers
586 where trx_id=p_trx_id;
587
588 INSERT INTO ap_invoices_interface (
589 invoice_id, invoice_num, invoice_date,
590 vendor_id, vendor_site_id, invoice_amount,
591 invoice_currency_code, exchange_rate_type, exchange_date,
592 description,
593 source, group_id,
594 goods_received_date, invoice_received_date,
595 gl_date, accts_pay_code_combination_id, org_id,
596 payment_method_lookup_code,
597 payment_method_code,
598 calc_tax_during_import_flag ,
599 add_tax_to_inv_amt_flag)
600 VALUES (
601 l_invoice_id, p_invoice_num, p_batch_date,
602 p_vendor_id, p_vendor_site_id, l_amount,
603 p_currency, p_conv_type, p_batch_date,
604 l_desc_header_level, -- Bug No : 7652608
605 p_source, p_trx_id,
606 p_batch_date, Nvl(p_approval_date, TRUNC(SYSDATE)),
607 p_gl_date, l_ccid, p_org_id,
608 l_payment_method_lookup_code,
609 l_payment_method_lookup_code,
610 'Y',
611 'Y');
612
613 ELSIF (l_dist_type = 'L') THEN
614 -- Amounts Transferred to AP should be
615 -- Reci Dst Amount: 1000 Dr, AP Amount: 1000
616 -- Reci Dst Amount: -1000 Dr, AP Amount: -1000
617 -- Reci Dst Amount: 1000 Cr, AP Amount: -1000
618 -- Reci Dst Amount: -1000 Cr, AP Amount: 1000
619
620 IF l_d_amount_dr <> 0
621 THEN
622 l_amount := l_d_amount_dr;
623
624 ELSIF l_d_amount_cr <> 0
625 THEN
626 l_amount := l_d_amount_cr * (-1);
627 END IF;
628
629 SELECT ap_invoice_lines_interface_s.nextval into l_inv_line_id
630 FROM dual;
631
632 INSERT INTO ap_invoice_lines_interface (
633 invoice_id, invoice_line_id, line_number,
634 line_type_lookup_code, amount, accounting_date,
635 description, dist_code_combination_id, org_id,
636 source_application_id,
637 source_entity_code,
638 source_event_class_code,
639 source_trx_id,
640 source_trx_level_type,
641 source_line_id )
642 VALUES (
643 l_invoice_id, l_inv_line_id, l_dist_id,
644 'ITEM', l_amount, p_gl_date,
645 l_desc, l_ccid, p_org_id,
646 l_application_id, -- added for etax changes
647 l_entity_code, -- added for etax changes
648 'INTERCOMPANY_TRX', -- added for etax changes
649 l_trx_id, -- added for etax changes
650 'LINE' , -- added for etax changes
651 l_trx_line_id);
652 END IF;
653
654 END LOOP;
655
656 WF_EVENT.AddParameterToList(p_name=>'INVOICE_ID',
657 p_value=>TO_CHAR(l_invoice_id),
658 p_parameterlist =>l_parameter_list
659 );
660
661 WF_EVENT.AddParameterToList(p_name=>'TRX_ID',
662 p_value=>TO_CHAR(p_trx_id),
663 p_parameterlist =>l_parameter_list
664 );
665
666 l_event_key:=FUN_INITIATOR_WF_PKG.GENERATE_KEY(p_batch_id=>l_invoice_id,
667 p_trx_id => 0
668 );
669
670 WF_EVENT.RAISE(p_event_name =>'oracle.apps.fun.single.ap.transfer',
671 p_event_key =>l_event_key,
672 p_parameters=>l_parameter_list);
673
674 l_parameter_list.delete();
675
676 EXCEPTION
677 When others then
678 raise;
679
680 END transfer_single;
681
682
683
684 END;
685