[Home] [Help]
PACKAGE BODY: APPS.AR_REFUNDS_PVT
Source
1 PACKAGE BODY AR_REFUNDS_PVT AS
2 /* $Header: ARXVREFB.pls 120.14 2010/07/13 14:50:23 npanchak ship $ */
3
4 /*=======================================================================+
5 | Package Global Constants
6 +=======================================================================*/
7
8 g_source VARCHAR2(30);
9 PG_DEBUG VARCHAR2(1);
10
11 /*========================================================================
12 | Local Functions and Procedures
13 *=======================================================================*/
14
15 PROCEDURE debug (p_string VARCHAR2) IS
16
17 BEGIN
18
19 IF (g_source = 'AUTOINVOICE') THEN
20 fnd_file.put_line
21 ( which => fnd_file.log,
22 buff => p_string );
23 ELSE
24 arp_standard.debug(p_string);
25 END IF;
26
27 END debug;
28
29 /*========================================================================
30 | PUBLIC PROCEDURES AND FUNCTIONS
31 *=======================================================================*/
32
33 /*========================================================================
34 | PUBLIC PROCEDURE Create_Refund
35 |
36 | DESCRIPTION
37 | ----------------------------------------
38 | This procedure creates a refund payment in Oracle Payments
39 | via AP interface tables and APIs
40 |
41 | CALLED FROM PROCEDURES/FUNCTIONS (local to this package body)
42 |
43 |
44 | CALLS PROCEDURES/FUNCTIONS (local to this package body)
45 |
46 | PARAMETERS
47 |
48 | KNOWN ISSUES
49 |
50 | NOTES
51 |
52 | MODIFICATION HISTORY
53 | Date Author Description of Changes
54 | 06-DEC-2005 JBECKETT Created
55 |
56 *=======================================================================*/
57 PROCEDURE create_refund(
58 p_receivable_application_id IN ar_receivable_applications.receivable_application_id%TYPE
59 ,p_amount IN NUMBER
60 ,p_currency_code IN fnd_currencies.currency_code%TYPE
61 ,p_exchange_rate IN NUMBER
62 ,p_exchange_rate_type IN ar_cash_receipts.exchange_rate_type%TYPE
63 ,p_exchange_date IN DATE
64 ,p_description IN VARCHAR2
65 ,p_pay_group_lookup_code IN FND_LOOKUPS.lookup_code%TYPE
66 ,p_pay_alone_flag IN VARCHAR2
67 ,p_org_id IN ar_cash_receipts.org_id%TYPE
68 ,p_legal_entity_id IN ar_cash_receipts.legal_entity_id%TYPE
69 ,p_payment_method_code IN ap_invoices.payment_method_code%TYPE
70 ,p_payment_reason_code IN ap_invoices.payment_reason_code%TYPE
71 ,p_payment_reason_comments IN ap_invoices.payment_reason_comments%TYPE
72 ,p_delivery_channel_code IN ap_invoices.delivery_channel_code%TYPE
73 ,p_remittance_message1 IN ap_invoices.remittance_message1%TYPE
74 ,p_remittance_message2 IN ap_invoices.remittance_message2%TYPE
75 ,p_remittance_message3 IN ap_invoices.remittance_message3%TYPE
76 ,p_party_id IN hz_parties.party_id%TYPE
77 ,p_party_site_id IN hz_party_sites.party_site_id%TYPE
78 ,p_bank_account_id IN ar_cash_receipts.customer_bank_account_id%TYPE
79 ,p_called_from IN VARCHAR2
80 ,x_invoice_id OUT NOCOPY ap_invoices.invoice_id%TYPE
81 ,x_return_status OUT NOCOPY VARCHAR2
82 ,x_msg_count OUT NOCOPY NUMBER
83 ,x_msg_data OUT NOCOPY VARCHAR2
84 ,p_invoice_date IN ap_invoices.invoice_date%TYPE DEFAULT NULL -- Bug 7242125
85 ------------------------------- Bug7525965 Changes Start Here ------------------------------
86 ,p_payment_priority IN ap_invoices_interface.PAYMENT_PRIORITY%TYPE DEFAULT NULL
87 ,p_terms_id IN ap_invoices_interface.TERMS_ID%TYPE DEFAULT NULL
88 ------------------------------- Bug7525965 Changes End Here --------------------------------
89 ,p_gl_date IN DATE DEFAULT NULL) --Bug8283120
90 IS
91 l_External_Payee_Tab IBY_DISBURSEMENT_SETUP_PUB.External_Payee_Tab_Type;
92 l_Ext_Payee_ID_Tab IBY_DISBURSEMENT_SETUP_PUB.Ext_Payee_ID_Tab_Type;
93 l_Ext_Payee_Create_Tab IBY_DISBURSEMENT_SETUP_PUB.Ext_Payee_Create_Tab_Type;
94 l_payee_return_status VARCHAR2(1);
95 l_rowid VARCHAR2(100);
96 l_line_rowid VARCHAR2(100);
97 l_invoice_interface_id NUMBER;
98 l_invoice_line_interface_id NUMBER;
99 l_rejection_list AP_IMPORT_INVOICES_PKG.rejection_tab_type;
100 l_app_rec ar_receivable_applications%ROWTYPE;
101 l_activity_ccid gl_code_combinations.code_combination_id%TYPE;
102 l_goods_received_date DATE DEFAULT NULL ;
103 l_invoice_received_date DATE DEFAULT NULL ;
104 l_terms_date_basis VARCHAR2(100);
105
106 --Bug9864372
107 l_payee_rec IBY_DISBURSEMENT_SETUP_PUB.PayeeContext_Rec_Type;
108 l_pay_instr_rec IBY_FNDCPT_SETUP_PUB.PmtInstrument_rec_type;
109 l_pay_assign_rec IBY_FNDCPT_SETUP_PUB.PmtInstrAssignment_rec_type;
110 l_assign_id NUMBER;
111 l_response IBY_FNDCPT_COMMON_PUB.Result_rec_type;
112 l_assign_return_status VARCHAR2(1);
113
114
115 BEGIN
116
117 debug('ar_refund_pvt.create_refund()+');
118 g_source := p_called_from;
119
120 -- bug90321132
121
122 select
123 ra.code_combination_id
124 INTO l_activity_ccid
125 from ar_receivable_applications ra
126 where ra.status='ACTIVITY'
127 and ra.display = 'Y'
128 AND ra.receivable_application_id = p_receivable_application_id;
129
130 /* Create a payee record if one does not exist..*/
131 l_External_Payee_Tab(0).Payee_Party_Id := p_party_id;
132 l_External_Payee_Tab(0).Payee_Party_Site_Id := p_party_site_id;
133 l_External_Payee_Tab(0).Payer_Org_Id := p_org_id;
134 l_External_Payee_Tab(0).Payer_Org_Type := 'OPERATING_UNIT';
135 l_External_Payee_Tab(0).Payment_Function := 'AR_CUSTOMER_REFUNDS';
136 l_External_Payee_Tab(0).Exclusive_Pay_Flag := p_pay_alone_flag;
137 l_External_Payee_Tab(0).Default_pmt_method := p_payment_method_code;
138 l_External_Payee_Tab(0).Delivery_Channel := p_delivery_channel_code;
139
140 /* Bug 8303937 */
141 IF p_party_site_id IS NULL THEN
142 l_External_Payee_Tab(0).Payer_Org_Id := NULL;
143 l_External_Payee_Tab(0).Payer_Org_Type := NULL;
144 END IF;
145
146 debug('Calling IBY_DISBURSEMENT_SETUP_PUB.create_external_payee..');
147 IBY_DISBURSEMENT_SETUP_PUB.Create_External_Payee (
148 p_api_version => 1.0,
149 p_init_msg_list => FND_API.G_FALSE,
150 p_ext_payee_tab => l_External_Payee_Tab,
151 x_return_status => l_payee_return_status,
152 x_msg_count => x_msg_count,
153 x_msg_data => x_msg_data,
154 x_ext_payee_id_tab => l_Ext_Payee_ID_Tab,
155 x_ext_payee_status_tab => l_Ext_Payee_Create_Tab);
156 IF (l_payee_return_status <> FND_API.g_ret_sts_success OR
157 l_ext_payee_create_tab(0).payee_creation_status = 'E') THEN
158 x_return_status := FND_API.G_RET_STS_ERROR;
159 debug('Error found creating an external payee');
160 debug('Payee creation status : '||l_ext_payee_create_tab(0).payee_creation_status);
161 debug('Payee creation error : '||l_ext_payee_create_tab(0).payee_creation_msg);
162 RAISE FND_API.G_EXC_ERROR;
163 END IF;
164
165 IF p_bank_account_id IS NOT NULL THEN
166 l_payee_rec.Payment_Function := 'AR_CUSTOMER_REFUNDS';
167 l_payee_rec.Party_id := p_party_id;
168 l_payee_rec.Party_Site_id := p_party_site_id;
169 l_payee_rec.org_Id := p_org_id;
170 l_payee_rec.Supplier_Site_id := NULL;
171 l_payee_rec.Org_Type := 'OPERATING_UNIT';
172
173 IF p_party_site_id IS NULL THEN
174 l_payee_rec.org_Id := NULL;
175 l_payee_rec.Org_Type := NULL;
176 END IF;
177
178 l_pay_instr_rec.Instrument_Type := 'BANKACCOUNT';
179 l_pay_instr_rec.Instrument_Id := p_bank_account_id;
180
181 l_pay_assign_rec.Instrument := l_pay_instr_rec;
182 l_pay_assign_rec.Priority := 1;
183 l_pay_assign_rec.Start_Date := SYSDATE;
184 l_pay_assign_rec.End_Date := NULL;
185
186 IBY_DISBURSEMENT_SETUP_PUB.Set_Payee_Instr_Assignment(
187 p_api_version => 1.0,
188 p_init_msg_list => FND_API.G_FALSE,
189 p_commit => FND_API.G_FALSE,
190 x_return_status => l_assign_return_status,
191 x_msg_count => x_msg_count,
192 x_msg_data => x_msg_data,
193 p_payee => l_payee_rec,
194 p_assignment_attribs => l_pay_assign_rec,
195 x_assign_id => l_assign_id,
196 x_response => l_response);
197
198 IF (l_assign_return_status <> FND_API.g_ret_sts_success) THEN
199 x_return_status := FND_API.G_RET_STS_ERROR;
200 debug('Error found assinging Bank account id to an external payee');
201 RAISE FND_API.G_EXC_ERROR;
202 END IF;
203 END IF;
204
205 /* First populate AP interface table..*/
206 debug('Calling AP_INVOICES_INTERFACE_PKG.INSERT_ROW..');
207
208 SELECT ap_invoices_interface_s.NEXTVAL
209 INTO l_invoice_interface_id
210 FROM DUAL;
211
212 SELECT ap_invoice_lines_interface_s.NEXTVAL
213 INTO l_invoice_line_interface_id
214 FROM DUAL;
215
216 -- bug 8764872
217
218 SELECT terms_date_basis
219 INTO l_terms_date_basis
220 FROM ap_product_setup;
221
222 if l_terms_date_basis = 'Goods Received'
223
224 then
225 l_goods_received_date := p_invoice_date;
226
227 end if;
228
229 if l_terms_date_basis = 'Invoice Received'
230
231 then
232 l_invoice_received_date := p_invoice_date;
233
234 end if;
235
236 AP_INVOICES_INTERFACE_PKG.INSERT_ROW (
237 X_ROWID => l_rowid ,
238 X_INVOICE_ID => l_invoice_interface_id,
239 X_INVOICE_NUM => l_invoice_interface_id,
240 X_INVOICE_TYPE_LOOKUP_CODE => 'PAYMENT REQUEST',
241 X_INVOICE_DATE => p_invoice_date,
242 X_PO_NUMBER => NULL,
243 X_VENDOR_ID => NULL,
244 X_VENDOR_SITE_ID => NULL,
245 X_INVOICE_AMOUNT => p_amount,
246 X_INVOICE_CURRENCY_CODE => p_currency_code,
247 X_PAYMENT_CURRENCY_CODE => p_currency_code,
248 X_PAYMENT_CROSS_RATE => NULL,
249 X_PAYMENT_CROSS_RATE_TYPE => NULL,
250 X_PAYMENT_CROSS_RATE_DATE => NULL,
251 X_EXCHANGE_RATE => p_exchange_rate,
252 X_EXCHANGE_RATE_TYPE => p_exchange_rate_type,
253 X_EXCHANGE_DATE => p_exchange_date,
254 X_TERMS_ID => p_terms_id, --Bug7525965
255 X_DESCRIPTION => p_description, --rct comments
256 X_AWT_GROUP_ID => NULL,
257 X_AMT_APPLICABLE_TO_DISCOUNT => NULL,
258 X_ATTRIBUTE_CATEGORY => NULL,
259 X_ATTRIBUTE1 => NULL,
260 X_ATTRIBUTE2 => NULL,
261 X_ATTRIBUTE3 => NULL,
262 X_ATTRIBUTE4 => NULL,
263 X_ATTRIBUTE5 => NULL,
264 X_ATTRIBUTE6 => NULL,
265 X_ATTRIBUTE7 => NULL,
266 X_ATTRIBUTE8 => NULL,
267 X_ATTRIBUTE9 => NULL,
268 X_ATTRIBUTE10 => NULL,
269 X_ATTRIBUTE11 => NULL,
270 X_ATTRIBUTE12 => NULL,
271 X_ATTRIBUTE13 => NULL,
272 X_ATTRIBUTE14 => NULL,
273 X_ATTRIBUTE15 => NULL,
274 X_GLOBAL_ATTRIBUTE_CATEGORY => NULL,
275 X_GLOBAL_ATTRIBUTE1 => NULL,
276 X_GLOBAL_ATTRIBUTE2 => NULL,
277 X_GLOBAL_ATTRIBUTE3 => NULL,
278 X_GLOBAL_ATTRIBUTE4 => NULL,
279 X_GLOBAL_ATTRIBUTE5 => NULL,
280 X_GLOBAL_ATTRIBUTE6 => NULL,
281 X_GLOBAL_ATTRIBUTE7 => NULL,
282 X_GLOBAL_ATTRIBUTE8 => NULL,
283 X_GLOBAL_ATTRIBUTE9 => NULL,
284 X_GLOBAL_ATTRIBUTE10 => NULL,
285 X_GLOBAL_ATTRIBUTE11 => NULL,
286 X_GLOBAL_ATTRIBUTE12 => NULL,
287 X_GLOBAL_ATTRIBUTE13 => NULL,
288 X_GLOBAL_ATTRIBUTE14 => NULL,
289 X_GLOBAL_ATTRIBUTE15 => NULL,
290 X_GLOBAL_ATTRIBUTE16 => NULL,
291 X_GLOBAL_ATTRIBUTE17 => NULL,
292 X_GLOBAL_ATTRIBUTE18 => NULL,
293 X_GLOBAL_ATTRIBUTE19 => NULL,
294 X_GLOBAL_ATTRIBUTE20 => NULL,
295 X_STATUS => NULL,
296 X_SOURCE => 'Receivables',
297 X_GROUP_ID => NULL,
298 X_WORKFLOW_FLAG => NULL,
299 X_DOC_CATEGORY_CODE => NULL,
300 X_VOUCHER_NUM => NULL,
301 X_PAY_GROUP_LOOKUP_CODE => p_pay_group_lookup_code,
302 X_GOODS_RECEIVED_DATE => l_goods_received_date, -- bug 8764872
303 X_INVOICE_RECEIVED_DATE => l_invoice_received_date,
304 X_GL_DATE => p_gl_date, --Bug8283120
305 X_ACCTS_PAY_CCID => NULL,
306 X_EXCLUSIVE_PAYMENT_FLAG => p_pay_alone_flag,
307 X_INVOICE_INCLUDES_PREPAY_FLAG => NULL,
308 X_PREPAY_NUM => NULL,
309 X_PREPAY_APPLY_AMOUNT => NULL,
310 X_PREPAY_GL_DATE => NULL,
311 X_CREATION_DATE => SYSDATE,
312 X_CREATED_BY => fnd_global.user_id,
313 X_LAST_UPDATE_DATE => SYSDATE,
314 X_LAST_UPDATED_BY => fnd_global.user_id,
315 X_LAST_UPDATE_LOGIN => fnd_global.login_id,
316 X_ORG_ID => p_org_id,
317 X_TERMS_DATE => NULL,
318 X_REQUESTER_ID => NULL,
319 X_CONTROL_AMOUNT => NULL,
320 X_LEGAL_ENTITY_ID => p_legal_entity_id,
321 x_PAYMENT_METHOD_CODE => p_payment_method_code ,
322 x_PAYMENT_REASON_CODE => p_payment_reason_code ,
323 X_PAYMENT_REASON_COMMENTS => p_payment_reason_comments,
324 x_DELIVERY_CHANNEL_CODE => p_delivery_channel_code ,
325 x_remittance_message1 => p_remittance_message1 ,
326 x_remittance_message2 => p_remittance_message2,
327 x_remittance_message3 => p_remittance_message3,
328 X_APPLICATION_ID => 222,
329 X_PRODUCT_TABLE => 'AR_RECEIVABLE_APPLICATIONS_ALL',
330 X_REFERENCE_KEY1 => p_receivable_application_id,
331 X_REFERENCE_KEY2 => 'AR_RECEIVABLE_APPLICATIONS_ALL',
332 X_REFERENCE_KEY3 => NULL,
333 X_REFERENCE_KEY4 => NULL,
334 X_REFERENCE_KEY5 => NULL,
335 X_PARTY_ID => p_party_id,
336 X_PARTY_SITE_ID => p_party_site_id,
337 X_PAY_PROC_TRXN_TYPE_CODE => NULL,
338 X_PAYMENT_FUNCTION => 'AR_CUSTOMER_REFUNDS',
339 X_PAYMENT_PRIORITY => p_payment_priority, -- Bug7525965
340 x_external_bank_account_id => p_bank_account_id
341 );
342
343 /* Next populate AP lines interface table..*/
344 debug('Calling AP_INVOICES_LINES_INTERFACE_PKG.INSERT_ROW..');
345
346 AP_INVOICE_LINES_INTERFACE_PKG.INSERT_ROW(
347 X_ROWID => l_line_rowid,
348 X_INVOICE_ID => l_invoice_interface_id,
349 X_INVOICE_LINE_ID => l_invoice_line_interface_id,
350 X_LINE_NUMBER => 1,
351 X_LINE_TYPE_LOOKUP_CODE => 'ITEM',
352 X_LINE_GROUP_NUMBER => NULL,
353 X_AMOUNT => p_amount,
354 X_ACCOUNTING_DATE => NULL,
355 X_DESCRIPTION => p_description,
356 X_PRORATE_ACROSS_FLAG => NULL,
357 X_TAX_CODE => NULL,
358 X_TAX_CODE_ID => NULL,
359 X_FINAL_MATCH_FLAG => NULL,
360 X_PO_HEADER_ID => NULL,
361 X_PO_LINE_ID => NULL,
362 X_PO_LINE_LOCATION_ID => NULL,
363 X_PO_DISTRIBUTION_ID => NULL,
364 X_UNIT_OF_MEAS_LOOKUP_CODE => NULL,
365 X_INVENTORY_ITEM_ID => NULL,
366 X_QUANTITY_INVOICED => NULL,
367 X_UNIT_PRICE => NULL,
368 X_DISTRIBUTION_SET_ID => NULL,
369 X_DIST_CODE_CONCATENATED => NULL,
370 X_DIST_CODE_COMBINATION_ID => l_activity_ccid,
371 X_AWT_GROUP_ID => NULL,
372 X_ATTRIBUTE_CATEGORY => NULL,
373 X_ATTRIBUTE1 => NULL,
374 X_ATTRIBUTE2 => NULL,
375 X_ATTRIBUTE3 => NULL,
376 X_ATTRIBUTE4 => NULL,
377 X_ATTRIBUTE5 => NULL,
378 X_ATTRIBUTE6 => NULL,
379 X_ATTRIBUTE7 => NULL,
380 X_ATTRIBUTE8 => NULL,
381 X_ATTRIBUTE9 => NULL,
382 X_ATTRIBUTE10 => NULL,
383 X_ATTRIBUTE11 => NULL,
384 X_ATTRIBUTE12 => NULL,
385 X_ATTRIBUTE13 => NULL,
386 X_ATTRIBUTE14 => NULL,
387 X_ATTRIBUTE15 => NULL,
388 X_GLOBAL_ATTRIBUTE_CATEGORY => NULL,
389 X_GLOBAL_ATTRIBUTE1 => NULL,
390 X_GLOBAL_ATTRIBUTE2 => NULL,
391 X_GLOBAL_ATTRIBUTE3 => NULL,
392 X_GLOBAL_ATTRIBUTE4 => NULL,
393 X_GLOBAL_ATTRIBUTE5 => NULL,
394 X_GLOBAL_ATTRIBUTE6 => NULL,
395 X_GLOBAL_ATTRIBUTE7 => NULL,
396 X_GLOBAL_ATTRIBUTE8 => NULL,
397 X_GLOBAL_ATTRIBUTE9 => NULL,
398 X_GLOBAL_ATTRIBUTE10 => NULL,
399 X_GLOBAL_ATTRIBUTE11 => NULL,
400 X_GLOBAL_ATTRIBUTE12 => NULL,
401 X_GLOBAL_ATTRIBUTE13 => NULL,
402 X_GLOBAL_ATTRIBUTE14 => NULL,
403 X_GLOBAL_ATTRIBUTE15 => NULL,
404 X_GLOBAL_ATTRIBUTE16 => NULL,
405 X_GLOBAL_ATTRIBUTE17 => NULL,
406 X_GLOBAL_ATTRIBUTE18 => NULL,
407 X_GLOBAL_ATTRIBUTE19 => NULL,
408 X_GLOBAL_ATTRIBUTE20 => NULL,
409 X_PO_RELEASE_ID => NULL,
410 X_BALANCING_SEGMENT => NULL,
411 X_COST_CENTER_SEGMENT => NULL,
412 X_ACCOUNT_SEGMENT => NULL,
413 X_PROJECT_ID => NULL,
414 X_TASK_ID => NULL,
415 X_EXPENDITURE_TYPE => NULL,
416 X_EXPENDITURE_ITEM_DATE => NULL,
417 X_EXPENDITURE_ORGANIZATION_ID => NULL,
418 X_PROJECT_ACCOUNTING_CONTEXT => NULL,
419 X_PA_ADDITION_FLAG => NULL,
420 X_PA_QUANTITY => NULL,
421 X_STAT_AMOUNT => NULL,
422 X_TYPE_1099 => NULL,
423 X_INCOME_TAX_REGION => NULL,
424 X_ASSETS_TRACKING_FLAG => NULL,
425 X_PRICE_CORRECTION_FLAG => NULL,
426 X_RECEIPT_NUMBER => NULL,
427 X_MATCH_OPTION => NULL,
428 X_RCV_TRANSACTION_ID => NULL,
429 X_CREATION_DATE => SYSDATE,
430 X_CREATED_BY => FND_GLOBAL.USER_ID,
431 X_LAST_UPDATE_DATE => SYSDATE,
432 X_LAST_UPDATED_BY => FND_GLOBAL.USER_ID,
433 X_LAST_UPDATE_LOGIN => FND_GLOBAL.LOGIN_ID,
434 X_ORG_ID => p_org_id,
435 X_Calling_Sequence => g_pkg_name||'.create_refund'
436 );
437
438 /* Finally calling AP submit payment logic ..*/
439 debug('Calling AP_IMPORT_INVOICES_PKG.SUBMIT_PAYMENT_REQUEST..');
440
441 AP_IMPORT_INVOICES_PKG.SUBMIT_PAYMENT_REQUEST(
442 p_api_version => 1.0,
443 p_invoice_interface_id => l_invoice_interface_id,
444 p_budget_control => 'N',
445 p_needs_invoice_approval=> 'Y', -- 'N' for testing, 'Y' for production
446 p_invoice_id => x_invoice_id,
447 x_return_status => x_return_status,
448 x_msg_count => x_msg_count,
449 x_msg_data => x_msg_data,
450 x_rejection_list => l_rejection_list,
451 p_calling_sequence => g_pkg_name||'.create_refund',
452 p_commit => 'N');
453
454 IF x_return_status <> FND_API.G_RET_STS_SUCCESS THEN
455 x_msg_count := 0;
456 FOR i in l_rejection_list.FIRST .. l_rejection_list.LAST LOOP
457 debug(i||' Errors found interfacing data to AP ...');
458 debug(l_rejection_list(i).reject_lookup_code);
459 x_msg_count := x_msg_count + 1;
460 FND_MESSAGE.SET_NAME( 'AR', 'GENERIC_MESSAGE' );
461 FND_MESSAGE.SET_TOKEN( 'GENERIC_TEXT' ,l_rejection_list(i).reject_lookup_code );
462 FND_MSG_PUB.ADD;
463 END LOOP;
464 RETURN;
465 END IF;
466
467 /* Need to update the newly created application with the
468 refund invoice id.. */
469 IF NVL(p_called_from,'ARXRWAPP') <> 'TEST' THEN
470 arp_app_pkg.fetch_p(p_receivable_application_id,l_app_rec);
471 l_app_rec.application_ref_id := x_invoice_id;
472 l_app_rec.application_ref_num := x_invoice_id;
473 arp_app_pkg.update_p(l_app_rec);
474 END IF;
475
476 debug('ar_refund_pvt.create_refund()-');
477 EXCEPTION
478 WHEN NO_DATA_FOUND THEN
479 IF PG_DEBUG in ('Y', 'C') THEN
480 debug('EXCEPTION: AR_REFUNDS_PVT.Create_refund()'||sqlerrm);
481 END IF;
482 x_return_status := FND_API.G_RET_STS_UNEXP_ERROR;
483 RAISE FND_API.G_EXC_UNEXPECTED_ERROR;
484
485 WHEN OTHERS THEN
486 IF PG_DEBUG in ('Y', 'C') THEN
487 debug('EXCEPTION: AR_REFUNDS_PVT.Create_refund()'||sqlerrm);
488 END IF;
489 x_return_status := FND_API.G_RET_STS_UNEXP_ERROR;
490 RAISE FND_API.G_EXC_UNEXPECTED_ERROR;
491
492 END create_refund;
493
494 /*========================================================================
495 | PUBLIC PROCEDURE Cancel_Refund
496 |
497 | DESCRIPTION
498 | ----------------------------------------
499 | This procedure cancels a refund payment in Oracle Payments
500 | via AP interface tables and APIs
501 |
502 | CALLED FROM PROCEDURES/FUNCTIONS (local to this package body)
503 |
504 |
505 | CALLS PROCEDURES/FUNCTIONS (local to this package body)
506 |
507 | PARAMETERS
508 |
509 | KNOWN ISSUES
510 |
511 | NOTES
512 |
513 | MODIFICATION HISTORY
514 | Date Author Description of Changes
515 | 06-DEC-2005 JBECKETT Created
516 |
517 *=======================================================================*/
518 PROCEDURE cancel_refund(
519 p_application_ref_id IN ar_receivable_applications.application_ref_id%TYPE
520 ,p_gl_date IN DATE
521 ,x_return_status OUT NOCOPY VARCHAR2
522 ,x_msg_count OUT NOCOPY NUMBER
523 ,x_msg_data OUT NOCOPY VARCHAR2)
524 IS
525 l_message_name fnd_new_messages.message_name%TYPE;
526 l_refund_amount NUMBER;
527 l_acctd_refund_amount NUMBER;
528 l_temp_cancelled_amount NUMBER;
529 l_cancelled_by NUMBER;
530 l_cancelled_amount NUMBER;
531 l_cancelled_date DATE;
532 l_last_update_date DATE;
533 l_orig_ppay_amount NUMBER;
534 l_pay_curr_amount NUMBER;
535 l_token VARCHAR2(100);
536
537 BEGIN
538
539 debug('ar_refund_pvt.cancel_refund()+');
540 x_return_status := FND_API.G_RET_STS_SUCCESS;
541 IF NOT AP_CANCEL_PKG.Ap_Cancel_Single_Invoice(
542 P_invoice_id => p_application_ref_id
543 , P_last_updated_by => fnd_global.user_id
544 , P_last_update_login => fnd_global.login_id
545 , P_accounting_date => NULL
546 , P_message_name => l_message_name
547 , P_invoice_amount => l_refund_amount
548 , P_base_amount => l_acctd_refund_amount
549 , P_temp_cancelled_amount => l_temp_cancelled_amount
550 , P_cancelled_by => l_cancelled_by
551 , P_cancelled_amount => l_cancelled_amount
552 , P_cancelled_date => l_cancelled_date
553 , P_last_update_date => l_last_update_date
554 , P_original_prepayment_amount => l_orig_ppay_amount
555 , P_pay_curr_invoice_amount => l_pay_curr_amount
556 , P_Token => l_token
557 , P_calling_sequence => 'ar_refund_pvt.cancel_refund'
558 ) THEN
559 x_return_status := FND_API.G_RET_STS_ERROR;
560 IF l_message_name IS NOT NULL THEN
561 FND_MESSAGE.SET_NAME ('AP',l_message_name);
562 FND_MSG_PUB.Add;
563 END IF;
564 FND_MESSAGE.SET_NAME ('AR','GENERIC_MESSAGE');
565 FND_MESSAGE.SET_TOKEN('GENERIC_TEXT','CANCEL_REFUND : '||l_token);
566 FND_MSG_PUB.Add;
567 FND_MSG_PUB.Count_And_Get
568 (p_encoded => FND_API.G_FALSE,
569 p_count => x_msg_count,
570 p_data => x_msg_data);
571
572 debug('Error returned from ap_cancel_single_invoice: '||l_message_name||' '||l_token);
573 END IF;
574
575 debug('ar_refund_pvt.cancel_refund()-');
576 EXCEPTION
577 WHEN NO_DATA_FOUND THEN
578 IF PG_DEBUG in ('Y', 'C') THEN
579 debug('EXCEPTION: AR_REFUNDS_PVT.Cancel_refund()'||sqlerrm);
580 END IF;
581 x_return_status := FND_API.G_RET_STS_UNEXP_ERROR;
582 RAISE FND_API.G_EXC_UNEXPECTED_ERROR;
583
584 WHEN OTHERS THEN
585 IF PG_DEBUG in ('Y', 'C') THEN
586 debug('EXCEPTION: AR_REFUNDS_PVT.Cancel_refund()'||sqlerrm);
587 END IF;
588 x_return_status := FND_API.G_RET_STS_UNEXP_ERROR;
589 RAISE FND_API.G_EXC_UNEXPECTED_ERROR;
590
591 END cancel_refund;
592
593 /*========================================================================
594 | INITIALIZATION SECTION
595 |
596 | DESCRIPTION
597 |
598 | KNOWN ISSUES
599 |
600 | NOTES
601 |
602 | MODIFICATION HISTORY
603 | Date Author Description of Changes
604 | 06-DEC-2005 JBECKETT Created
605 |
606 *=======================================================================*/
607 BEGIN
608
609 pg_debug := NVL(fnd_profile.value('AFLOG_ENABLED'), 'N');
610
611
612 EXCEPTION
613 WHEN NO_DATA_FOUND THEN
614 arp_standard.debug('EXCEPTION: AR_REFUNDS_PVT.INITIALIZE()');
615 RAISE;
616
617 WHEN OTHERS THEN
618 arp_standard.debug('EXCEPTION: AR_REFUNDS_PVT.INITIALIZE()');
619 RAISE;
620
621 END AR_REFUNDS_PVT;