[Home] [Help]
PACKAGE BODY: APPS.AR_BILLS_MAINTAIN_PUB
Source
1 PACKAGE BODY AR_BILLS_MAINTAIN_PUB AS
2 /* $Header: ARBRMAIB.pls 120.11.12010000.4 2009/01/30 10:59:39 dgaurab ship $ */
3
4
5 /* =======================================================================
6 | Global Data Types
7 * ======================================================================*/
8
9 G_PKG_NAME CONSTANT VARCHAR2(30) := 'AR_BILLS_MAINTAIN_PUB';
10
11 G_MSG_UERROR CONSTANT NUMBER := FND_MSG_PUB.G_MSG_LVL_UNEXP_ERROR;
12 G_MSG_ERROR CONSTANT NUMBER := FND_MSG_PUB.G_MSG_LVL_ERROR;
13 G_MSG_SUCCESS CONSTANT NUMBER := FND_MSG_PUB.G_MSG_LVL_SUCCESS;
14 G_MSG_HIGH CONSTANT NUMBER := FND_MSG_PUB.G_MSG_LVL_DEBUG_HIGH;
15 G_MSG_MEDIUM CONSTANT NUMBER := FND_MSG_PUB.G_MSG_LVL_DEBUG_MEDIUM;
16 G_MSG_LOW CONSTANT NUMBER := FND_MSG_PUB.G_MSG_LVL_DEBUG_LOW;
17
18
19 /* =======================================================================
20 | Bills Receivable status constants
21 * ======================================================================*/
22
23 C_INCOMPLETE CONSTANT VARCHAR2(30) := 'INCOMPLETE';
24 C_PENDING_REMITTANCE CONSTANT VARCHAR2(30) := 'PENDING_REMITTANCE';
25 C_PENDING_ACCEPTANCE CONSTANT VARCHAR2(30) := 'PENDING_ACCEPTANCE';
26 C_MATURED_PEND_RISK_ELIM CONSTANT VARCHAR2(30) := 'MATURED_PEND_RISK_ELIMINATION';
27 C_CLOSED CONSTANT VARCHAR2(30) := 'CLOSED';
28 C_REMITTED CONSTANT VARCHAR2(30) := 'REMITTED';
29 C_PROTESTED CONSTANT VARCHAR2(30) := 'PROTESTED';
30 C_FACTORED CONSTANT VARCHAR2(30) := 'FACTORED';
31 C_ENDORSED CONSTANT VARCHAR2(30) := 'ENDORSED';
32
33
34 /* =======================================================================
35 | Bills Receivable event constants
36 * ======================================================================*/
37
38 C_MATURITY_DATE CONSTANT VARCHAR2(30) := 'MATURITY_DATE';
39 C_MATURITY_DATE_UPDATED CONSTANT VARCHAR2(30) := 'MATURITY_DATE_UPDATED';
40 C_FORMATTED CONSTANT VARCHAR2(30) := 'FORMATTED';
41 C_COMPLETED CONSTANT VARCHAR2(30) := 'COMPLETED';
42 C_ACCEPTED CONSTANT VARCHAR2(30) := 'ACCEPTED';
43 C_SELECTED_REMITTANCE CONSTANT VARCHAR2(30) := 'SELECTED_REMITTANCE';
44 C_DESELECTED_REMITTANCE CONSTANT VARCHAR2(30) := 'DESELECTED_REMITTANCE';
45 C_CANCELLED CONSTANT VARCHAR2(30) := 'CANCELLED';
46 C_RISK_ELIMINATED CONSTANT VARCHAR2(30) := 'RISK_ELIMINATED';
47 C_RISK_UNELIMINATED CONSTANT VARCHAR2(30) := 'RISK_UNELIMINATED';
48 C_RECALLED CONSTANT VARCHAR2(30) := 'RECALLED';
49 C_EXCHANGED CONSTANT VARCHAR2(30) := 'EXCHANGED';
50 C_RELEASE_HOLD CONSTANT VARCHAR2(30) := 'RELEASE_HOLD';
51
52
53 /* =======================================================================
54 | Bills Receivable action constants
55 * ======================================================================*/
56
57
58 C_COMPLETE CONSTANT VARCHAR2(30) := 'COMPLETE';
59 C_ACCEPT CONSTANT VARCHAR2(30) := 'ACCEPT';
60 C_COMPLETE_ACC CONSTANT VARCHAR2(30) := 'COMPLETE_ACC';
61 C_UNCOMPLETE CONSTANT VARCHAR2(30) := 'UNCOMPLETE';
62 C_HOLD CONSTANT VARCHAR2(30) := 'HOLD';
63 C_UNHOLD CONSTANT VARCHAR2(30) := 'RELEASE HOLD';
64 C_SELECT_REMIT CONSTANT VARCHAR2(30) := 'SELECT_REMIT';
65 C_DESELECT_REMIT CONSTANT VARCHAR2(30) := 'DESELECT_REMIT';
66 C_CANCEL CONSTANT VARCHAR2(30) := 'CANCEL';
67 C_UNPAID CONSTANT VARCHAR2(30) := 'UNPAID';
68 C_REMIT_STANDARD CONSTANT VARCHAR2(30) := 'REMIT_STANDARD';
69 C_FACTORE CONSTANT VARCHAR2(30) := 'FACTORE';
70 C_FACTORE_RECOURSE CONSTANT VARCHAR2(30) := 'FACTORE_RECOURSE';
71 C_RECALL CONSTANT VARCHAR2(30) := 'RECALL';
72 C_ELIMINATE_RISK CONSTANT VARCHAR2(30) := 'RISK ELIMINATION';
73 C_UNELIMINATE_RISK CONSTANT VARCHAR2(30) := 'REESTABLISH RISK';
74 C_PROTEST CONSTANT VARCHAR2(30) := 'PROTEST';
75 C_ENDORSE CONSTANT VARCHAR2(30) := 'ENDORSE';
76 C_ENDORSE_RECOURSE CONSTANT VARCHAR2(30) := 'ENDORSE_RECOURSE';
77 C_RESTATE CONSTANT VARCHAR2(30) := 'RESTATE';
78 C_EXCHANGE CONSTANT VARCHAR2(30) := 'EXCHANGE';
79 C_EXCHANGE_COMPLETE CONSTANT VARCHAR2(30) := 'EXCHANGE_COMPLETE';
80 C_EXCHANGE_UNCOMPLETE CONSTANT VARCHAR2(30) := 'EXCHANGE_UNCOMPLETE';
81 C_DELETE CONSTANT VARCHAR2(30) := 'DELETE';
82 C_APPROVE_REMIT CONSTANT VARCHAR2(30) := 'REMITTANCE APPROVAL';
83
84
85 /* =======================================================================
86 | Bills Receivable remittance method code constants
87 * ======================================================================*/
88
89 C_STANDARD CONSTANT VARCHAR2(30) := 'STANDARD';
90 C_FACTORING CONSTANT VARCHAR2(30) := 'FACTORING';
91
92
93 /* =======================================================================
94 | Parameter p_created_from for the Receipt API
95 * ======================================================================*/
96
97 C_BR_REMITTED CONSTANT VARCHAR2(30) := 'BR_REMITTED';
98 C_BR_FACTORED_RECOURSE CONSTANT VARCHAR2(30) := 'BR_FACTORED_WITH_RECOURSE';
99 C_BR_FACTORED CONSTANT VARCHAR2(30) := 'BR_FACTORED_WITHOUT_RECOURSE';
100
101
102
103 /* =======================================================================
104 | Action_Rec : Record used for the procedure validate_actions
105 * ======================================================================*/
106
107 TYPE Action_Rec_Type IS RECORD (
108 complete_flag VARCHAR2(1),
109 uncomplete_flag VARCHAR2(1),
110 accept_flag VARCHAR2(1),
111 cancel_flag VARCHAR2(1),
112 select_remit_flag VARCHAR2(1),
113 deselect_remit_flag VARCHAR2(1),
114 approve_remit_flag VARCHAR2(1),
115 hold_flag VARCHAR2(1),
116 unhold_flag VARCHAR2(1),
117 recall_flag VARCHAR2(1),
118 eliminate_flag VARCHAR2(1),
119 uneliminate_flag VARCHAR2(1),
120 unpaid_flag VARCHAR2(1),
121 protest_flag VARCHAR2(1),
122 endorse_flag VARCHAR2(1),
123 restate_flag VARCHAR2(1),
124 exchange_flag VARCHAR2(1),
125 delete_flag VARCHAR2(1));
126
127
128 C_ACTION_REC Action_Rec_Type;
129
130
131 API_exception EXCEPTION;
132
133
134 /*===========================================================================+
135 | PROCEDURE |
136 | Complete_BR |
137 | |
138 | DESCRIPTION |
139 | Completes a BR |
140 | |
141 | HISTORY |
142 | 01-OCT-02 V Crisostomo Bug 2533917 : p_old_trx_number datatype was |
143 | changed from NUMBER to VARCHAR2 to comply |
144 | with data model definition in RA_CUSTOMER_TRX|
145 | 25-MAY-05 V Crisostomo SSA-R12: pass org_id |
146 +===========================================================================*/
147
148
149 PG_DEBUG varchar2(1) := NVL(FND_PROFILE.value('AFLOG_ENABLED'), 'N');
150
151 PROCEDURE Complete_BR (
152
153 -- ***** Standard API parameters *****
157 p_commit IN VARCHAR2 := FND_API.G_FALSE,
154
155 p_api_version IN NUMBER,
156 p_init_msg_list IN VARCHAR2 := FND_API.G_TRUE,
158 p_validation_level IN NUMBER := FND_API.G_VALID_LEVEL_FULL,
159 x_return_status OUT NOCOPY VARCHAR2,
160 x_msg_count OUT NOCOPY NUMBER,
161 x_msg_data OUT NOCOPY VARCHAR2,
162
163 -- ***** Input parameters *****
164
165 p_customer_trx_id IN NUMBER,
166
167 -- ***** Output parameters *****
168
169 p_trx_number OUT NOCOPY VARCHAR2,
170 p_doc_sequence_id OUT NOCOPY NUMBER,
171 p_doc_sequence_value OUT NOCOPY NUMBER,
172 p_old_trx_number OUT NOCOPY VARCHAR2, /* Bug 2533917 */
173 p_status OUT NOCOPY VARCHAR2)
174
175 IS
176
177 l_api_name CONSTANT VARCHAR2(20) := 'Complete_BR';
178 l_api_version CONSTANT NUMBER := 1.0;
179
180 l_trx_rec ra_customer_trx%ROWTYPE;
181 l_trh_rec ar_transaction_history%ROWTYPE;
182 l_ps_rec ar_payment_schedules%ROWTYPE;
183
184 l_doc_sequence_id NUMBER ;
185 l_doc_sequence_value NUMBER ;
186 l_trx_number VARCHAR2(20) ;
187 l_old_trx_number VARCHAR2(20) ;
188
189 l_acceptance_flag VARCHAR2(1) ;
190
191 l_action VARCHAR2(30) ;
192 l_action_rec action_rec_type ;
193
194 --Bug5051673
195 l_drawee_id ra_customer_trx.drawee_id%type;
196 l_drawee_site_use_id ra_customer_trx.drawee_site_use_id%type;
197 l_org_id ra_customer_trx.org_id%type;
198 l_payment_trxn_extension_id ra_customer_trx.payment_trxn_extension_id%type;
199 l_created_from ra_customer_trx.created_from%type;
200 l_instr_id iby_trxn_extensions_v.instr_assignment_id%type;
201
202
203 BEGIN
204
205 IF PG_DEBUG in ('Y', 'C') THEN
206 arp_util.debug('AR_BILLS_MAINTAIN_PUB.Complete_BR()+ ');
207 END IF;
208
209 x_msg_count := NULL;
210 x_msg_data := NULL;
211
212 /*-----------------------------------------------+
213 | Standard start of API savepoint |
214 +-----------------------------------------------*/
215
216 SAVEPOINT Complete_BR_PVT;
217
218
219 /*-----------------------------------------------+
220 | Standard call to check for call compatibility |
221 +-----------------------------------------------*/
222
223 IF NOT FND_API.Compatible_API_Call( l_api_version ,
224 p_api_version ,
225 l_api_name ,
226 G_PKG_NAME )
227 THEN
228 RAISE FND_API.G_EXC_UNEXPECTED_ERROR;
229 END IF;
230
231
232 /*--------------------------------------------------------------+
233 | Initialize message list if p_init_msg_list is set to TRUE |
234 +--------------------------------------------------------------*/
235
236 IF FND_API.to_Boolean( p_init_msg_list ) THEN
237 FND_MSG_PUB.initialize;
238 END IF;
239
240
241 /*-----------------------------------------------+
242 | Initialize return status to SUCCESS |
243 +-----------------------------------------------*/
244
245 x_return_status := FND_API.G_RET_STS_SUCCESS;
246
247
248
249 /*------------------------------------------------+
250 | Bug 5051673 |
251 | Creation of Payment Extension Record |
252 +------------------------------------------------*/
253 select trx_number,drawee_id,drawee_site_use_id,org_id,payment_trxn_extension_id,
254 substr(created_from ,1,8)
255 into l_trx_number,l_drawee_id,l_drawee_site_use_id,l_org_id,l_payment_trxn_extension_id,
256 l_created_from
257 from ra_customer_trx
258 where customer_trx_id = p_customer_trx_id;
259
260 if l_payment_trxn_extension_id is null then
261 If substr(l_created_from,1,8) = 'ARBRCBAT' then
262 arp_standard.debug('Defaulting instrument Assign Id. ');
263
264 /* Bug724495, Bills Receivable batch program will create BR based on
265 the drawee bank account (instr_assign_id) irrespective of receipt
266 method set to One Per Customer or Per Customer Due Date or Per
267 Invoice or Per Payment Sschedule or Per Site or Per Site Due Date */
268
269 Begin
270 Select instr_assignment_id
271 Into l_instr_id
272 from ra_customer_Trx_lines brlines,
273 ra_customer_trx ct,
274 iby_trxn_extensions_v iby
275 where ct.customer_trx_id = brlines.br_ref_customer_trx_id
276 and ct.payment_trxn_extension_id = iby.trxn_extension_id
277 and brlines.customer_trx_id = p_customer_trx_id
278 and rownum = 1;
279
280 l_drawee_site_use_id := NVL(ARP_PROGRAM_BR_REMIT.get_site_use_id(
281 p_cust_account_id => l_drawee_id,
282 p_org_id => l_org_id,
283 p_instr_id => l_instr_id),
284 l_drawee_site_use_id);
285
286 IF PG_DEBUG in ('Y', 'C') THEN
287 arp_util.debug('Site_Use_ID to be passed: '|| l_drawee_site_use_id);
288 END IF;
289
290 Exception
291 When others then
292 l_instr_id := Null ;
293 End;
294 Else
295 l_instr_id := Null;
296 End IF;
297 arp_standard.debug('Assign Id Value: ' ||l_instr_id );
298
299 AR_BILLS_CREATION_PUB.create_br_trxn_extension(
300 p_api_version => 1.0,
301 p_init_msg_list => p_init_msg_list,
302 p_commit => p_commit,
303 x_return_status => x_return_status,
304 x_msg_count => x_msg_count,
305 x_msg_data => x_msg_data,
306 p_customer_trx_id => p_CUSTOMER_TRX_ID,
307 p_trx_number => l_trx_number,
308 p_org_id => l_org_id,
309 p_drawee_id => l_drawee_id,
310 p_drawee_site_use_id => l_drawee_site_use_id,
311 p_payment_channel => 'BILLS_RECEIVABLE',
312 p_instrument_assign_id => l_instr_id,
313 p_payment_trxn_extn_id => l_payment_trxn_extension_id);
314
315 -- The values are based on FND_API. S, E, U (Success, Error, Unexpected
316 IF x_return_status <> 'S'
317 THEN
318 FND_MESSAGE.set_name( 'AR' , 'AR_BR_CANNOT_COMPLETE' );
319 FND_MESSAGE.set_token( 'BRNUM' , l_trx_rec.trx_number);
320 arp_standard.debug('Call to AR_BILLS_CREATION_PUB.create_br_trxn_extension Errored');
321 app_exception.raise_exception;
322 END IF;
323
324 update ra_customer_trx
325 set payment_trxn_extension_id = l_payment_trxn_extension_id
326 where customer_trx_id = p_customer_trx_id;
327
328 end if;
329
330
331
332 /*--------------------------------------------------------------------+
333 | ============ START OF API BODY - COMPLETE BR ===================|
334 +--------------------------------------------------------------------*/
335
336
337 /*-----------------------------------------------+
338 | Action Validation |
339 +-----------------------------------------------*/
340
341 l_action := C_COMPLETE;
342
343 AR_BILLS_MAINTAIN_STATUS_PUB.validate_actions (
344 p_customer_trx_id => p_customer_trx_id ,
345 p_complete_flag => C_ACTION_REC.complete_flag,
346 p_uncomplete_flag => C_ACTION_REC.uncomplete_flag,
347 p_accept_flag => C_ACTION_REC.accept_flag,
348 p_cancel_flag => C_ACTION_REC.cancel_flag,
349 p_select_remit_flag => C_ACTION_REC.select_remit_flag,
350 p_deselect_remit_flag => C_ACTION_REC.deselect_remit_flag,
351 p_approve_remit_flag => C_ACTION_REC.approve_remit_flag,
352 p_hold_flag => C_ACTION_REC.hold_flag,
353 p_unhold_flag => C_ACTION_REC.unhold_flag,
354 p_recall_flag => C_ACTION_REC.recall_flag,
355 p_eliminate_flag => C_ACTION_REC.eliminate_flag,
356 p_uneliminate_flag => C_ACTION_REC.uneliminate_flag,
357 p_unpaid_flag => C_ACTION_REC.unpaid_flag,
358 p_protest_flag => C_ACTION_REC.protest_flag,
359 p_endorse_flag => C_ACTION_REC.endorse_flag,
360 p_restate_flag => C_ACTION_REC.restate_flag,
361 p_exchange_flag => C_ACTION_REC.exchange_flag,
362 p_delete_flag => C_ACTION_REC.delete_flag);
363
364
365 -- Do not continue if the action is not allowed for the BR
366
367 IF (C_ACTION_REC.complete_flag <> 'Y')
368 THEN
369 IF PG_DEBUG in ('Y', 'C') THEN
370 arp_util.debug( '>>>>>>>>>> The action ' || l_action || ' is not allowed on the BR ' || p_customer_trx_id);
371 END IF;
372 FND_MESSAGE.set_name( 'AR' , 'AR_BR_CANNOT_COMPLETE' );
373 FND_MESSAGE.set_token( 'BRNUM' , l_trx_rec.trx_number);
374 app_exception.raise_exception;
375 END IF;
376
377 ARP_CT_PKG.lock_fetch_p (l_trx_rec, p_customer_trx_id);
378
379
380 /*-----------------------------------------------+
381 | Data preparation |
382 +-----------------------------------------------*/
383
384 l_trh_rec.customer_trx_id := p_customer_trx_id;
385 ARP_TRANSACTION_HISTORY_PKG.lock_fetch_f_trx_id (l_trh_rec);
386
387
388
389 /*-----------------------------------------------+
390 | Data Validation |
391 +-----------------------------------------------*/
392
393 AR_BILLS_MAINTAIN_VAL_PVT.validate_Complete_BR (l_trx_rec, l_trh_rec.gl_date);
394
395
396
397 /*-----------------------------------------------+
398 | Document Sequence Routine |
399 +-----------------------------------------------*/
400
401 AR_BILLS_MAINTAIN_LIB_PVT.get_doc_seq ( 222 ,
402 l_trx_rec ,
403 arp_global.set_of_books_id ,
404 'M' );
405
406 /*-----------------------------------------------+
407 | BR Completion |
408 +------------------------------------------------*/
409
410 IF (AR_BILLS_MAINTAIN_STATUS_PUB.is_acceptance_required(l_trx_rec.cust_trx_type_id))
411 THEN
412 AR_BILLS_MAINTAIN_LIB_PVT.Complete_Acc_Required (p_customer_trx_id);
413 l_trh_rec.postable_flag := 'N' ;
414 l_trh_rec.current_accounted_flag := 'N' ;
415 ELSE
416 AR_BILLS_MAINTAIN_LIB_PVT.Complete_OR_Accept (l_trh_rec);
417 l_trh_rec.postable_flag := 'Y' ;
418 l_trh_rec.current_accounted_flag := 'Y' ;
419 END IF;
420
421
422 /*-----------------------------------------------+
423 | Update the Complete Flag in the BR Header |
424 +------------------------------------------------*/
425
426 l_trx_rec.complete_flag := 'Y';
427
428 ARP_PROCESS_BR_HEADER.update_header (l_trx_rec, l_trx_rec.customer_trx_id);
429
430
431 /*-----------------------------------------------+
432 | Insertion in Transaction History Table |
433 +------------------------------------------------*/
434
435
436 -- Fetch the new status and new event of the BR
437
438 AR_BILLS_MAINTAIN_STATUS_PUB.New_Status_Event (
439 p_trx_rec => l_trx_rec ,
440 p_action => l_action ,
441 p_new_status => l_trh_rec.status,
442 p_new_event => l_trh_rec.event );
443
444 l_trh_rec.transaction_history_id:= NULL ;
445 l_trh_rec.current_record_flag := 'Y' ;
446 l_trh_rec.prv_trx_history_id := NULL ;
447 l_trh_rec.comments := NULL ;
448 l_trh_rec.posting_control_id := -3 ;
449 l_trh_rec.gl_posted_date := NULL ;
450 l_trh_rec.first_posted_record_flag := 'N' ;
451 l_trh_rec.created_from := 'ARBRMAIB' ;
452 l_trh_rec.batch_id := NULL ;
453 l_trh_rec.org_id := l_trx_rec.org_id;
454
455 arp_proc_transaction_history.insert_transaction_history (l_trh_rec ,
456 l_trh_rec.transaction_history_id);
457
458 /*-----------------------------------------------+
459 | Output parameters |
460 +------------------------------------------------*/
461
462 p_trx_number := l_trx_rec.trx_number ;
463 p_doc_sequence_value := l_trx_rec.doc_sequence_value ;
464 p_doc_sequence_id := l_trx_rec.doc_sequence_id ;
465 p_old_trx_number := l_trx_rec.old_trx_number ;
466 p_status := l_trh_rec.status ;
467
468
469
470 /*-----------------------------------------------+
471 | Standard check of p_commit |
472 +-----------------------------------------------*/
473
474 IF FND_API.To_Boolean( p_commit )
475 THEN
476 IF PG_DEBUG in ('Y', 'C') THEN
477 arp_util.debug( 'committing');
478 END IF;
479 Commit;
480 END IF;
481
482 IF PG_DEBUG in ('Y', 'C') THEN
483 arp_util.debug('AR_BILLS_MAINTAIN_PUB.Complete_BR()- ');
484 END IF;
485
486
487 EXCEPTION
488 WHEN FND_API.G_EXC_ERROR THEN
489 IF PG_DEBUG in ('Y', 'C') THEN
490 arp_util.debug( 'SQLCODE : ' || SQLCODE);
491 arp_util.debug( 'SQLERRM : ' || SQLERRM);
492 END IF;
493 ROLLBACK TO Complete_BR_PVT;
494 x_return_status := FND_API.G_RET_STS_ERROR ;
495 IF PG_DEBUG in ('Y', 'C') THEN
496 arp_util.debug( 'Exception Error');
497 END IF;
498 raise;
499
500
501 WHEN FND_API.G_EXC_UNEXPECTED_ERROR THEN
502 IF PG_DEBUG in ('Y', 'C') THEN
503 arp_util.debug( 'SQLCODE : ' || SQLCODE);
504 arp_util.debug( 'SQLERRM : ' || SQLERRM);
505 END IF;
506 ROLLBACK TO Complete_BR_PVT;
507 x_return_status := FND_API.G_RET_STS_UNEXP_ERROR ;
508 IF PG_DEBUG in ('Y', 'C') THEN
509 arp_util.debug( 'Exception Unexpected Error');
510 END IF;
511 RAISE;
512
513
514 WHEN OTHERS THEN
515 /*-------------------------------------------------------+
516 | Handle application errors that result from trapable |
517 | error conditions. The error messages have already |
518 | been put on the error stack. |
519 +-------------------------------------------------------*/
520
521 IF PG_DEBUG in ('Y', 'C') THEN
522 arp_util.debug ( 'SQLERRM : ' || SQLERRM);
523 arp_util.debug ( 'SQLCODE : ' || SQLCODE);
524 END IF;
525
526 IF (SQLCODE = -20001)
527 THEN
528 IF PG_DEBUG in ('Y', 'C') THEN
529 arp_util.debug( 'Exception Others -20001');
530 END IF;
531 ROLLBACK TO Complete_BR_PVT;
532 x_return_status := FND_API.G_RET_STS_ERROR ;
533 RAISE;
534
535 ELSE
536 IF PG_DEBUG in ('Y', 'C') THEN
537 arp_util.debug( 'Exception Others');
538 END IF;
539 NULL;
540 END IF;
541
542 ROLLBACK TO Complete_BR_PVT;
543 x_return_status := FND_API.G_RET_STS_UNEXP_ERROR ;
544 RAISE;
545
546 END Complete_BR;
547
548
549 /*==============================================================================+
550 | PROCEDURE |
551 | UnComplete_BR |
552 | |
553 | DESCRIPTION |
554 | UnCompletes a BR |
555 | |
556 +==============================================================================*/
557
558
559 PROCEDURE UnComplete_BR (
560
561 -- ***** Standard API parameters *****
562
563 p_api_version IN NUMBER ,
564 p_init_msg_list IN VARCHAR2 := FND_API.G_TRUE ,
565 p_commit IN VARCHAR2 := FND_API.G_FALSE ,
566 p_validation_level IN NUMBER := FND_API.G_VALID_LEVEL_FULL ,
567 x_return_status OUT NOCOPY VARCHAR2 ,
568 x_msg_count OUT NOCOPY NUMBER ,
569 x_msg_data OUT NOCOPY VARCHAR2 ,
570
571 -- ***** Input parameters *****
572
573 p_customer_trx_id IN NUMBER,
574
575 -- ***** Output parameters *****
576
577 p_status OUT NOCOPY VARCHAR2 )
578
579 IS
580 l_api_name CONSTANT VARCHAR2(20) := 'UnComplete_BR';
581 l_api_version CONSTANT NUMBER := 1.0;
582
583 l_trx_rec ra_customer_trx%ROWTYPE;
584 l_trh_rec ar_transaction_history%ROWTYPE;
585 l_ps_id ar_payment_schedules.payment_schedule_id%TYPE;
586
587 l_acceptance_flag VARCHAR2(1) ;
588
589 l_action VARCHAR2(30) ;
590
591 BEGIN
592
593 IF PG_DEBUG in ('Y', 'C') THEN
594 arp_util.debug('AR_BILLS_MAINTAIN_PUB.UnComplete_BR()+ ');
595 END IF;
596 x_msg_count := NULL;
597 x_msg_data := NULL;
598 /*-----------------------------------------------+
599 | Standard start of API savepoint |
600 +-----------------------------------------------*/
601
602 SAVEPOINT UnComplete_BR_PVT;
603
604
605 /*-----------------------------------------------+
606 | Standard call to check for call compatibility |
607 +-----------------------------------------------*/
608
609 IF NOT FND_API.Compatible_API_Call( l_api_version ,
610 p_api_version ,
611 l_api_name ,
612 G_PKG_NAME )
613 THEN
614 RAISE FND_API.G_EXC_UNEXPECTED_ERROR;
615 END IF;
616
617
618 /*--------------------------------------------------------------+
619 | Initialize message list if p_init_msg_list is set to TRUE |
620 +--------------------------------------------------------------*/
621
622 IF FND_API.to_Boolean( p_init_msg_list ) THEN
623 FND_MSG_PUB.initialize;
624 END IF;
625
626
627 /*-----------------------------------------------+
628 | Initialize return status to SUCCESS |
629 +-----------------------------------------------*/
630
631 x_return_status := FND_API.G_RET_STS_SUCCESS;
632
633
634 /*-----------------------------------------------------------------------+
635 | ============ START OF API BODY - UNCOMPLETE BR ================= |
636 +-----------------------------------------------------------------------*/
637
638
639 /*-----------------------------------------------+
640 | Action Validation |
641 +-----------------------------------------------*/
642
643 l_action := C_UNCOMPLETE;
644
645 AR_BILLS_MAINTAIN_STATUS_PUB.validate_actions (
646 p_customer_trx_id => p_customer_trx_id ,
647 p_complete_flag => C_ACTION_REC.complete_flag ,
648 p_uncomplete_flag => C_ACTION_REC.uncomplete_flag ,
649 p_accept_flag => C_ACTION_REC.accept_flag ,
650 p_cancel_flag => C_ACTION_REC.cancel_flag ,
651 p_select_remit_flag => C_ACTION_REC.select_remit_flag ,
652 p_deselect_remit_flag => C_ACTION_REC.deselect_remit_flag,
653 p_approve_remit_flag => C_ACTION_REC.approve_remit_flag ,
654 p_hold_flag => C_ACTION_REC.hold_flag ,
655 p_unhold_flag => C_ACTION_REC.unhold_flag ,
656 p_recall_flag => C_ACTION_REC.recall_flag ,
657 p_eliminate_flag => C_ACTION_REC.eliminate_flag ,
658 p_uneliminate_flag => C_ACTION_REC.uneliminate_flag ,
659 p_unpaid_flag => C_ACTION_REC.unpaid_flag ,
660 p_protest_flag => C_ACTION_REC.protest_flag ,
661 p_endorse_flag => C_ACTION_REC.endorse_flag ,
662 p_restate_flag => C_ACTION_REC.restate_flag ,
663 p_exchange_flag => C_ACTION_REC.exchange_flag ,
664 p_delete_flag => C_ACTION_REC.delete_flag );
665
666
667 -- Do not continue if the action is not allowed for the BR
668
669 ARP_CT_PKG.lock_fetch_p (l_trx_rec, p_customer_trx_id);
670
671 IF (C_ACTION_REC.uncomplete_flag <> 'Y')
672 THEN
673 IF PG_DEBUG in ('Y', 'C') THEN
674 arp_util.debug( '>>>>>>>>>> The action ' || l_action || ' is not allowed on the BR ' || p_customer_trx_id);
675 END IF;
676 FND_MESSAGE.set_name ( 'AR', 'AR_BR_CANNOT_INCOMPLETE' );
677 FND_MESSAGE.set_token ( 'BRNUM' , l_trx_rec.trx_number);
678 app_exception.raise_exception;
679 END IF;
680
681
682
683 /*-----------------------------------------------+
684 | Data preparation |
685 +-----------------------------------------------*/
686
687 l_trh_rec.customer_trx_id := p_customer_trx_id;
688 ARP_TRANSACTION_HISTORY_PKG.lock_fetch_f_trx_id (l_trh_rec);
689
690
691 IF (AR_BILLS_MAINTAIN_STATUS_PUB.is_acceptance_required(l_trx_rec.cust_trx_type_id))
692 THEN
693 l_acceptance_flag := 'Y';
694 ELSE
695 l_acceptance_flag := 'N';
696 END IF;
697
698
699 /*-----------------------------------------------+
700 | BR UnCompletion |
701 +------------------------------------------------*/
702
703
704 AR_BILLS_MAINTAIN_LIB_PVT.Reverse_Assignments_Adjustment (l_trh_rec, l_acceptance_flag);
705
706
707 /*-----------------------------------------------+
708 | Update the Complete Flag in the BR Header |
709 +------------------------------------------------*/
710
711 l_trx_rec.complete_flag := 'N';
712
713 ARP_PROCESS_BR_HEADER.update_header ( l_trx_rec ,
714 l_trx_rec.customer_trx_id);
715
716 /*-----------------------------------------------+
717 | Insertion in Transaction History Table |
718 +------------------------------------------------*/
719
720 -- Fetch the new status and new event of the BR
721
722 AR_BILLS_MAINTAIN_STATUS_PUB.New_Status_Event (
723 p_trx_rec => l_trx_rec ,
724 p_action => l_action ,
725 p_new_status => l_trh_rec.status,
726 p_new_event => l_trh_rec.event );
727
728 l_trh_rec.transaction_history_id:= NULL ;
729 l_trh_rec.postable_flag := 'N' ;
730 l_trh_rec.current_accounted_flag:= 'N' ;
731 l_trh_rec.current_record_flag := 'Y' ;
732 l_trh_rec.prv_trx_history_id := NULL ;
733 l_trh_rec.comments := NULL ;
734 l_trh_rec.posting_control_id := -3 ;
735 l_trh_rec.gl_posted_date := NULL ;
736 l_trh_rec.first_posted_record_flag := 'N' ;
737 l_trh_rec.created_from := 'ARBRMAIB' ;
738 l_trh_rec.batch_id := NULL ;
739
740 arp_proc_transaction_history.insert_transaction_history (l_trh_rec ,
741 l_trh_rec.transaction_history_id);
742
743
744 /*-----------------------------------------------+
745 | Delete the BR Payment Schedule |
746 +------------------------------------------------*/
747
748 IF (l_acceptance_flag = 'N')
749 THEN
750 -- Bug 2057740:
751 -- Commenting out NOCOPY and calling delete_f_Ct_id instead because
752 -- there is already a routine to delete ps by cust_trx_id.
753 -- no need to call another routine to find the ps id first.
754 -- AR_BILLS_CREATION_LIB_PVT.Get_Payment_Schedule_Id (
755 -- p_customer_trx_id, l_ps_id);
756 -- arp_ps_pkg.delete_p (l_ps_id);
757
758 arp_ps_pkg.delete_f_ct_id(p_customer_trx_id);
759 END IF;
760
761
762 /*-----------------------------------------------+
763 | Output parameter |
764 +------------------------------------------------*/
765
766 p_status := l_trh_rec.status ;
767
768
769 /*-----------------------------------------------+
770 | Standard check of p_commit |
771 +-----------------------------------------------*/
772
773 IF FND_API.To_Boolean( p_commit )
774 THEN
775 IF PG_DEBUG in ('Y', 'C') THEN
776 arp_util.debug( 'committing');
777 END IF;
778 Commit;
779 END IF;
780
781 IF PG_DEBUG in ('Y', 'C') THEN
782 arp_util.debug('AR_BILLS_MAINTAIN_PUB.UnComplete_BR()- ');
783 END IF;
784
785
786 EXCEPTION
787 WHEN FND_API.G_EXC_ERROR THEN
788 IF PG_DEBUG in ('Y', 'C') THEN
789 arp_util.debug( 'SQLCODE : ' || SQLCODE);
790 arp_util.debug( 'SQLERRM : ' || SQLERRM);
791 END IF;
792 ROLLBACK TO UnComplete_BR_PVT;
793 x_return_status := FND_API.G_RET_STS_ERROR ;
794 IF PG_DEBUG in ('Y', 'C') THEN
795 arp_util.debug( 'Exception Error');
796 END IF;
797 raise;
798
799
800 WHEN FND_API.G_EXC_UNEXPECTED_ERROR THEN
801 IF PG_DEBUG in ('Y', 'C') THEN
802 arp_util.debug( 'SQLCODE : ' || SQLCODE);
803 arp_util.debug( 'SQLERRM : ' || SQLERRM);
804 END IF;
805 ROLLBACK TO UnComplete_BR_PVT;
806 x_return_status := FND_API.G_RET_STS_UNEXP_ERROR ;
807 IF PG_DEBUG in ('Y', 'C') THEN
808 arp_util.debug( 'Exception Unexpected Error');
809 END IF;
810 raise;
811
812
813 WHEN OTHERS THEN
814 /*-------------------------------------------------------+
815 | Handle application errors that result from trapable |
816 | error conditions. The error messages have already |
817 | been put on the error stack. |
818 +-------------------------------------------------------*/
819
820 IF PG_DEBUG in ('Y', 'C') THEN
821 arp_util.debug ( 'SQLERRM : ' || SQLERRM);
822 arp_util.debug ( 'SQLCODE : ' || SQLCODE);
823 END IF;
824
825 IF (SQLCODE = -20001)
826 THEN
827 IF PG_DEBUG in ('Y', 'C') THEN
828 arp_util.debug( 'Exception Others -20001');
829 END IF;
830 ROLLBACK TO UnComplete_BR_PVT;
831 x_return_status := FND_API.G_RET_STS_ERROR ;
832 RAISE;
833 ELSE
834 IF PG_DEBUG in ('Y', 'C') THEN
835 arp_util.debug( 'Exception Others');
836 END IF;
837 NULL;
838 END IF;
839
840 ROLLBACK TO UnComplete_BR_PVT;
841 x_return_status := FND_API.G_RET_STS_UNEXP_ERROR ;
842 RAISE;
843
844 END UnComplete_BR;
845
846
847
848 /*==============================================================================+
849 | PROCEDURE |
850 | Accept_BR |
851 | |
852 | DESCRIPTION |
853 | Accepts a BR |
854 | |
855 +==============================================================================*/
856
857
858 PROCEDURE Accept_BR (
859
860 -- ***** Standard API parameters *****
861
862 p_api_version IN NUMBER ,
863 p_init_msg_list IN VARCHAR2 := FND_API.G_TRUE ,
864 p_commit IN VARCHAR2 := FND_API.G_FALSE ,
865 p_validation_level IN NUMBER := FND_API.G_VALID_LEVEL_FULL ,
866 x_return_status OUT NOCOPY VARCHAR2 ,
867 x_msg_count OUT NOCOPY NUMBER ,
868 x_msg_data OUT NOCOPY VARCHAR2 ,
869
870 -- ***** Input parameters *****
871
872 p_customer_trx_id IN NUMBER ,
873 p_acceptance_date IN DATE ,
874 p_acceptance_gl_date IN DATE ,
875 p_acceptance_comments IN VARCHAR2 ,
876
877 -- ***** Output parameters *****
878
879 p_status OUT NOCOPY VARCHAR2 )
880
881 IS
882 l_api_name CONSTANT VARCHAR2(20) := 'Accept_BR';
883 l_api_version CONSTANT NUMBER := 1.0;
884
885 l_trx_rec ra_customer_trx%ROWTYPE;
886 l_trh_rec ar_transaction_history%ROWTYPE;
887
888 l_action VARCHAR2(30);
889
890 l_trx_date DATE;
891 l_gl_date DATE;
892 l_mesg VARCHAR2(2000);
893
894 BEGIN
895
896 IF PG_DEBUG in ('Y', 'C') THEN
897 arp_util.debug( 'AR_BILLS_MAINTAIN_PUB.Accept()+ ');
898 END IF;
899
900 x_msg_count := NULL;
901 x_msg_data := NULL;
902
903 /*-----------------------------------------------+
904 | Standard start of API savepoint |
905 +-----------------------------------------------*/
906
907 SAVEPOINT Accept_BR_PVT;
908
909
910 /*-----------------------------------------------+
911 | Standard call to check for call compatibility |
912 +-----------------------------------------------*/
913
914 IF NOT FND_API.Compatible_API_Call( l_api_version ,
915 p_api_version ,
916 l_api_name ,
917 G_PKG_NAME )
918 THEN
919 RAISE FND_API.G_EXC_UNEXPECTED_ERROR;
920 END IF;
921
922
923 /*--------------------------------------------------------------+
924 | Initialize message list if p_init_msg_list is set to TRUE |
925 +--------------------------------------------------------------*/
926
927 IF FND_API.to_Boolean( p_init_msg_list ) THEN
928 FND_MSG_PUB.initialize;
929 END IF;
930
931
932 /*-----------------------------------------------+
933 | Initialize return status to SUCCESS |
934 +-----------------------------------------------*/
935
936 x_return_status := FND_API.G_RET_STS_SUCCESS;
937
938
942
939 /*-----------------------------------------------------------------------+
940 | ============ START OF API BODY - ACCEPT BR =================== |
941 +-----------------------------------------------------------------------*/
943
944 /*-----------------------------------------------+
945 | Action Validation |
946 +-----------------------------------------------*/
947
948 l_action := C_ACCEPT;
949
950 AR_BILLS_MAINTAIN_STATUS_PUB.validate_actions (
951 p_customer_trx_id => p_customer_trx_id ,
952 p_complete_flag => C_ACTION_REC.complete_flag ,
953 p_uncomplete_flag => C_ACTION_REC.uncomplete_flag ,
954 p_accept_flag => C_ACTION_REC.accept_flag ,
955 p_cancel_flag => C_ACTION_REC.cancel_flag ,
956 p_select_remit_flag => C_ACTION_REC.select_remit_flag ,
957 p_deselect_remit_flag => C_ACTION_REC.deselect_remit_flag,
958 p_approve_remit_flag => C_ACTION_REC.approve_remit_flag ,
959 p_hold_flag => C_ACTION_REC.hold_flag ,
960 p_unhold_flag => C_ACTION_REC.unhold_flag ,
961 p_recall_flag => C_ACTION_REC.recall_flag ,
962 p_eliminate_flag => C_ACTION_REC.eliminate_flag ,
963 p_uneliminate_flag => C_ACTION_REC.uneliminate_flag ,
964 p_unpaid_flag => C_ACTION_REC.unpaid_flag ,
965 p_protest_flag => C_ACTION_REC.protest_flag ,
966 p_endorse_flag => C_ACTION_REC.endorse_flag ,
967 p_restate_flag => C_ACTION_REC.restate_flag ,
968 p_exchange_flag => C_ACTION_REC.exchange_flag ,
969 p_delete_flag => C_ACTION_REC.delete_flag );
970
971 -- Do not continue if the action is not allowed for the BR
972
973 ARP_CT_PKG.lock_fetch_p (l_trx_rec, p_customer_trx_id);
974
975 IF (C_ACTION_REC.accept_flag <> 'Y')
976 THEN
977 IF PG_DEBUG in ('Y', 'C') THEN
978 arp_util.debug( '>>>>>>>>>> The action ' || l_action || ' is not allowed on the BR ' || p_customer_trx_id);
979 END IF;
980 FND_MESSAGE.set_name ( 'AR', 'AR_BR_CANNOT_ACCEPT' );
981 FND_MESSAGE.set_token ( 'BRNUM' , l_trx_rec.trx_number);
982 app_exception.raise_exception;
983 END IF;
984
985
986 /*-----------------------------------------------+
987 | Data Preparation |
988 +-----------------------------------------------*/
989
990 l_trh_rec.customer_trx_id := p_customer_trx_id;
991 ARP_TRANSACTION_HISTORY_PKG.lock_fetch_f_trx_id (l_trh_rec);
992
993 l_trx_date := trunc(p_acceptance_date) ;
994 l_gl_date := trunc(p_acceptance_gl_date) ;
995
996
997 /*-----------------------------------------------+
998 | Data Defaulting |
999 +-----------------------------------------------*/
1000
1001 AR_BILLS_MAINTAIN_LIB_PVT.Default_Action_Dates (l_trx_date, l_gl_date);
1002
1003
1004 /*-----------------------------------------------+
1005 | Data Validation |
1006 +-----------------------------------------------*/
1007
1008 l_mesg := arp_standard.FND_MESSAGE('AR_BR_SPMENU_ACCEPTANCE');
1009 AR_BILLS_MAINTAIN_VAL_PVT.validate_Action_Dates (l_trx_date, l_gl_date, l_trh_rec, l_mesg);
1010
1011 l_trh_rec.trx_date := l_trx_date ;
1012 l_trh_rec.gl_date := l_gl_date ;
1013 l_trh_rec.comments := p_acceptance_comments;
1014
1015 AR_BILLS_MAINTAIN_VAL_PVT.validate_Accept_BR (l_trx_rec, l_trh_rec);
1016
1017
1018 /*-----------------------------------------------+
1019 | BR Acceptance |
1020 +------------------------------------------------*/
1021
1022 AR_BILLS_MAINTAIN_LIB_PVT.Complete_OR_Accept (l_trh_rec);
1023
1024
1025 /*-----------------------------------------------+
1026 | Insertion in Transaction History Table |
1027 +------------------------------------------------*/
1028
1029 -- Fetch the new status and new event of the BR
1030
1031 AR_BILLS_MAINTAIN_STATUS_PUB.New_Status_Event (
1032 p_trx_rec => l_trx_rec ,
1033 p_action => l_action ,
1034 p_new_status => l_trh_rec.status,
1035 p_new_event => l_trh_rec.event );
1036
1037 l_trh_rec.transaction_history_id:= NULL ;
1038 l_trh_rec.postable_flag := 'Y' ;
1039 l_trh_rec.current_accounted_flag:= 'Y' ;
1040 l_trh_rec.current_record_flag := 'Y' ;
1041 l_trh_rec.prv_trx_history_id := NULL ;
1042 l_trh_rec.posting_control_id := -3 ;
1043 l_trh_rec.gl_posted_date := NULL ;
1044 l_trh_rec.first_posted_record_flag := 'N' ;
1045 l_trh_rec.created_from := 'ARBRMAIB' ;
1046 l_trh_rec.batch_id := NULL ;
1047 l_trh_rec.org_id := l_trx_rec.org_id;
1048
1049 arp_proc_transaction_history.insert_transaction_history (l_trh_rec ,
1050 l_trh_rec.transaction_history_id);
1051
1052 /*-----------------------------------------------+
1053 | Output parameter |
1054 +------------------------------------------------*/
1055
1056 p_status := l_trh_rec.status ;
1057
1058
1059 /*-----------------------------------------------+
1060 | Standard check of p_commit |
1061 +-----------------------------------------------*/
1062
1063 IF FND_API.To_Boolean( p_commit )
1064 THEN
1065 IF PG_DEBUG in ('Y', 'C') THEN
1066 arp_util.debug( 'committing');
1067 END IF;
1068 Commit;
1069 END IF;
1070
1071 IF PG_DEBUG in ('Y', 'C') THEN
1072 arp_util.debug( 'AR_BILLS_MAINTAIN_PUB.Accept()- ');
1073 END IF;
1074
1075
1076 EXCEPTION
1077 WHEN FND_API.G_EXC_ERROR THEN
1078 IF PG_DEBUG in ('Y', 'C') THEN
1079 arp_util.debug( 'SQLCODE : ' || SQLCODE);
1080 arp_util.debug( 'SQLERRM : ' || SQLERRM);
1084 IF PG_DEBUG in ('Y', 'C') THEN
1081 END IF;
1082 ROLLBACK TO Accept_BR_PVT;
1083 x_return_status := FND_API.G_RET_STS_ERROR ;
1085 arp_util.debug( 'Exception Error');
1086 END IF;
1087 RAISE;
1088
1089
1090 WHEN FND_API.G_EXC_UNEXPECTED_ERROR THEN
1091 IF PG_DEBUG in ('Y', 'C') THEN
1092 arp_util.debug( 'SQLCODE : ' || SQLCODE);
1093 arp_util.debug( 'SQLERRM : ' || SQLERRM);
1094 END IF;
1095 ROLLBACK TO Accept_BR_PVT;
1096 x_return_status := FND_API.G_RET_STS_UNEXP_ERROR ;
1097 IF PG_DEBUG in ('Y', 'C') THEN
1098 arp_util.debug( 'Exception Unexpected Error');
1099 END IF;
1100 RAISE;
1101
1102
1103 WHEN OTHERS THEN
1104 /*-------------------------------------------------------+
1105 | Handle application errors that result from trapable |
1106 | error conditions. The error messages have already |
1107 | been put on the error stack. |
1108 +-------------------------------------------------------*/
1109
1110 IF PG_DEBUG in ('Y', 'C') THEN
1111 arp_util.debug ( 'SQLERRM : ' || SQLERRM);
1112 arp_util.debug ( 'SQLCODE : ' || SQLCODE);
1113 END IF;
1114
1115 IF (SQLCODE = -20001)
1116 THEN
1117 ROLLBACK TO Accept_BR_PVT;
1118 x_return_status := FND_API.G_RET_STS_ERROR ;
1119 RAISE;
1120 ELSE
1121 NULL;
1122 END IF;
1123
1124 ROLLBACK TO Accept_BR_PVT;
1125 x_return_status := FND_API.G_RET_STS_UNEXP_ERROR ;
1126 RAISE;
1127
1128
1129 END Accept_BR;
1130
1131
1132 /*==============================================================================+
1133 | PROCEDURE |
1134 | Hold_BR |
1135 | |
1136 | DESCRIPTION |
1137 | Put a BR on hold |
1138 | |
1139 +==============================================================================*/
1140
1141
1142 PROCEDURE Hold_BR (
1143
1144 -- ***** Standard API parameters *****
1145
1146 p_api_version IN NUMBER ,
1147 p_init_msg_list IN VARCHAR2 := FND_API.G_TRUE ,
1148 p_commit IN VARCHAR2 := FND_API.G_FALSE ,
1149 p_validation_level IN NUMBER := FND_API.G_VALID_LEVEL_FULL ,
1150 x_return_status OUT NOCOPY VARCHAR2 ,
1151 x_msg_count OUT NOCOPY NUMBER ,
1152 x_msg_data OUT NOCOPY VARCHAR2 ,
1153
1154 -- ***** Input parameters *****
1155
1156 p_customer_trx_id IN NUMBER ,
1157
1158 -- ***** Output parameters *****
1159
1160 p_status OUT NOCOPY VARCHAR2 )
1161
1162 IS
1163 l_api_name CONSTANT VARCHAR2(20) := 'Hold_BR';
1164 l_api_version CONSTANT NUMBER := 1.0;
1165 l_trh_rec ar_transaction_history%ROWTYPE;
1166 l_trx_rec ra_customer_trx%ROWTYPE;
1167 l_ps_rec ar_payment_schedules%ROWTYPE;
1168
1169 l_action VARCHAR2(30);
1170
1171 BEGIN
1172
1173 IF PG_DEBUG in ('Y', 'C') THEN
1174 arp_util.debug('AR_BILLS_MAINTAIN_PUB.Hold_BR()+ ');
1175 END IF;
1176
1177 x_msg_count := NULL;
1178 x_msg_data := NULL;
1179
1180 /*-----------------------------------------------+
1181 | Standard start of API savepoint |
1182 +-----------------------------------------------*/
1183
1184 SAVEPOINT Hold_BR_PVT;
1185
1186
1187 /*-----------------------------------------------+
1188 | Standard call to check for call compatibility |
1189 +-----------------------------------------------*/
1190
1191 IF NOT FND_API.Compatible_API_Call( l_api_version ,
1192 p_api_version ,
1193 l_api_name ,
1194 G_PKG_NAME )
1195 THEN
1196 RAISE FND_API.G_EXC_UNEXPECTED_ERROR;
1197 END IF;
1198
1199
1200 /*--------------------------------------------------------------+
1201 | Initialize message list if p_init_msg_list is set to TRUE |
1202 +--------------------------------------------------------------*/
1203
1204 IF FND_API.to_Boolean( p_init_msg_list ) THEN
1205 FND_MSG_PUB.initialize;
1206 END IF;
1207
1208
1209 /*-----------------------------------------------+
1210 | Initialize return status to SUCCESS |
1211 +-----------------------------------------------*/
1212
1213 x_return_status := FND_API.G_RET_STS_SUCCESS;
1214
1215
1216 /*-----------------------------------------------------------------------+
1217 | ============ START OF API BODY - HOLD BR =================== |
1218 +-----------------------------------------------------------------------*/
1219
1220 /*-----------------------------------------------+
1221 | Validate the action |
1222 +-----------------------------------------------*/
1223
1224 l_action := C_HOLD;
1225
1226 AR_BILLS_MAINTAIN_STATUS_PUB.validate_actions (
1230 p_accept_flag => C_ACTION_REC.accept_flag ,
1227 p_customer_trx_id => p_customer_trx_id ,
1228 p_complete_flag => C_ACTION_REC.complete_flag ,
1229 p_uncomplete_flag => C_ACTION_REC.uncomplete_flag ,
1231 p_cancel_flag => C_ACTION_REC.cancel_flag ,
1232 p_select_remit_flag => C_ACTION_REC.select_remit_flag ,
1233 p_deselect_remit_flag => C_ACTION_REC.deselect_remit_flag,
1234 p_approve_remit_flag => C_ACTION_REC.approve_remit_flag ,
1235 p_hold_flag => C_ACTION_REC.hold_flag ,
1236 p_unhold_flag => C_ACTION_REC.unhold_flag ,
1237 p_recall_flag => C_ACTION_REC.recall_flag ,
1238 p_eliminate_flag => C_ACTION_REC.eliminate_flag ,
1239 p_uneliminate_flag => C_ACTION_REC.uneliminate_flag ,
1240 p_unpaid_flag => C_ACTION_REC.unpaid_flag ,
1241 p_protest_flag => C_ACTION_REC.protest_flag ,
1242 p_endorse_flag => C_ACTION_REC.endorse_flag ,
1243 p_restate_flag => C_ACTION_REC.restate_flag ,
1244 p_exchange_flag => C_ACTION_REC.exchange_flag ,
1245 p_delete_flag => C_ACTION_REC.delete_flag );
1246
1247
1248 -- Do not continue if the action is not allowed for the BR
1249
1250 ARP_CT_PKG.fetch_p (l_trx_rec, p_customer_trx_id);
1251
1252 IF (C_ACTION_REC.hold_flag <> 'Y')
1253 THEN
1254 IF PG_DEBUG in ('Y', 'C') THEN
1255 arp_util.debug( '>>>>>>>>>> The action ' || l_action || ' is not allowed on the BR ' || p_customer_trx_id);
1256 END IF;
1257 FND_MESSAGE.set_name ( 'AR', 'AR_BR_CANNOT_HOLD' );
1258 FND_MESSAGE.set_token ( 'BRNUM' , l_trx_rec.trx_number);
1259 app_exception.raise_exception;
1260 END IF;
1261
1262
1263
1264 /*-----------------------------------------------+
1265 | Data Preparation |
1266 +-----------------------------------------------*/
1267
1268 l_trh_rec.customer_trx_id := p_customer_trx_id;
1269 ARP_TRANSACTION_HISTORY_PKG.lock_fetch_f_trx_id (l_trh_rec);
1270
1271
1272 /*----------------------------------------------+
1273 | Update the Payment Schedule of the BR |
1274 +-----------------------------------------------*/
1275
1276 AR_BILLS_CREATION_LIB_PVT.Get_Payment_Schedule_Id (p_customer_trx_id, l_ps_rec.payment_schedule_id);
1277
1278 AR_BILLS_MAINTAIN_LIB_PVT.update_reserved_columns (l_ps_rec.payment_schedule_id, 'USER' , p_customer_trx_id);
1279
1280
1281
1282 /*----------------------------------------------+
1283 | Update the Hold Flag in the BR Header |
1284 +-----------------------------------------------*/
1285
1286 l_trx_rec.br_on_hold_flag := 'Y';
1287
1288 ARP_PROCESS_BR_HEADER.update_header (l_trx_rec, l_trx_rec.customer_trx_id);
1289
1290
1291
1292 /*----------------------------------------------+
1293 | Insert a Transaction History Record |
1294 +-----------------------------------------------*/
1295
1296 -- Fetch the new status and new event of the BR
1297
1298 AR_BILLS_MAINTAIN_STATUS_PUB.New_Status_Event (
1299 p_trx_rec => l_trx_rec ,
1300 p_action => l_action ,
1301 p_new_status => l_trh_rec.status,
1302 p_new_event => l_trh_rec.event );
1303
1304
1305 l_trh_rec.transaction_history_id:= NULL ;
1306 l_trh_rec.postable_flag := 'N' ;
1307 l_trh_rec.current_accounted_flag:= 'N' ;
1308 l_trh_rec.current_record_flag := 'Y' ;
1309 l_trh_rec.prv_trx_history_id := NULL ;
1310 l_trh_rec.comments := NULL ;
1311 l_trh_rec.posting_control_id := -3 ;
1312 l_trh_rec.gl_posted_date := NULL ;
1313 l_trh_rec.first_posted_record_flag := 'N' ;
1314 l_trh_rec.created_from := 'ARBRMAIB' ;
1315 l_trh_rec.batch_id := NULL ;
1316
1317 IF (l_trh_rec.trx_date < sysdate)
1318 THEN
1319 l_trh_rec.trx_date := trunc(sysdate);
1320 END IF;
1321
1322
1323 arp_proc_transaction_history.insert_transaction_history (l_trh_rec, l_trh_rec.transaction_history_id);
1324
1325
1326 /*-----------------------------------------------+
1327 | Output parameter |
1328 +------------------------------------------------*/
1329
1330 p_status := l_trh_rec.status;
1331
1332
1333 /*-----------------------------------------------+
1334 | Standard check of p_commit |
1335 +-----------------------------------------------*/
1336
1337 IF FND_API.To_Boolean( p_commit )
1338 THEN
1339 IF PG_DEBUG in ('Y', 'C') THEN
1340 arp_util.debug( 'committing');
1341 END IF;
1342 Commit;
1343 END IF;
1344
1345 IF PG_DEBUG in ('Y', 'C') THEN
1346 arp_util.debug( 'AR_BILLS_MAINTAIN_PUB.Hold()- ');
1347 END IF;
1348
1349
1350 EXCEPTION
1351 WHEN FND_API.G_EXC_ERROR THEN
1352 IF PG_DEBUG in ('Y', 'C') THEN
1353 arp_util.debug( 'SQLCODE : ' || SQLCODE);
1354 arp_util.debug( 'SQLERRM : ' || SQLERRM);
1355 END IF;
1356 ROLLBACK TO Hold_BR_PVT;
1357 x_return_status := FND_API.G_RET_STS_ERROR ;
1358 IF PG_DEBUG in ('Y', 'C') THEN
1359 arp_util.debug( 'Exception Error');
1360 END IF;
1361 RAISE;
1362
1363 WHEN FND_API.G_EXC_UNEXPECTED_ERROR THEN
1364 IF PG_DEBUG in ('Y', 'C') THEN
1365 arp_util.debug( 'SQLCODE : ' || SQLCODE);
1366 arp_util.debug( 'SQLERRM : ' || SQLERRM);
1367 END IF;
1368 ROLLBACK TO Hold_BR_PVT;
1369 x_return_status := FND_API.G_RET_STS_UNEXP_ERROR ;
1373 RAISE;
1370 IF PG_DEBUG in ('Y', 'C') THEN
1371 arp_util.debug( 'Exception Unexpected Error');
1372 END IF;
1374
1375 WHEN OTHERS THEN
1376 /*-------------------------------------------------------+
1377 | Handle application errors that result from trapable |
1378 | error conditions. The error messages have already |
1379 | been put on the error stack. |
1380 +-------------------------------------------------------*/
1381
1382 IF PG_DEBUG in ('Y', 'C') THEN
1383 arp_util.debug ( 'SQLERRM : ' || SQLERRM);
1384 arp_util.debug ( 'SQLCODE : ' || SQLCODE);
1385 END IF;
1386
1387 IF (SQLCODE = -20001)
1388 THEN
1389 ROLLBACK TO Hold_BR_PVT;
1390 x_return_status := FND_API.G_RET_STS_ERROR ;
1391 RAISE;
1392 ELSE
1393 NULL;
1394 END IF;
1395
1396 ROLLBACK TO Hold_BR_PVT;
1397 x_return_status := FND_API.G_RET_STS_UNEXP_ERROR ;
1398 RAISE;
1399
1400 END Hold_BR;
1401
1402
1403 /*==============================================================================+
1404 | PROCEDURE |
1405 | UnHold_BR |
1406 | |
1407 | DESCRIPTION |
1408 | Releases a BR from hold |
1409 | |
1410 +==============================================================================*/
1411
1412
1413 PROCEDURE UnHold_BR (
1414
1415 -- ***** Standard API parameters *****
1416
1417 p_api_version IN NUMBER ,
1418 p_init_msg_list IN VARCHAR2 := FND_API.G_TRUE ,
1419 p_commit IN VARCHAR2 := FND_API.G_FALSE ,
1420 p_validation_level IN NUMBER := FND_API.G_VALID_LEVEL_FULL ,
1421 x_return_status OUT NOCOPY VARCHAR2 ,
1422 x_msg_count OUT NOCOPY NUMBER ,
1423 x_msg_data OUT NOCOPY VARCHAR2 ,
1424
1425 -- ***** Input parameters *****
1426
1427 p_customer_trx_id IN NUMBER ,
1428
1429 -- ***** Output parameters *****
1430
1431 p_status OUT NOCOPY VARCHAR2 )
1432
1433 IS
1434 l_api_name CONSTANT VARCHAR2(20) := 'UnHold_BR';
1435 l_api_version CONSTANT NUMBER := 1.0;
1436
1437 l_trh_rec ar_transaction_history%ROWTYPE;
1438 l_trx_rec ra_customer_trx%ROWTYPE;
1439 l_ps_rec ar_payment_schedules%ROWTYPE;
1440 l_action VARCHAR2(30);
1441
1442 BEGIN
1443
1444 IF PG_DEBUG in ('Y', 'C') THEN
1445 arp_util.debug('AR_BILLS_MAINTAIN_PUB.UnHold_BR()+ ');
1446 END IF;
1447
1448 x_msg_count := NULL;
1449 x_msg_data := NULL;
1450
1451 /*-----------------------------------------------+
1452 | Standard start of API savepoint |
1453 +-----------------------------------------------*/
1454
1455 SAVEPOINT UnHold_BR_PVT;
1456
1457
1458 /*-----------------------------------------------+
1459 | Standard call to check for call compatibility |
1460 +-----------------------------------------------*/
1461
1462 IF NOT FND_API.Compatible_API_Call( l_api_version ,
1463 p_api_version ,
1464 l_api_name ,
1465 G_PKG_NAME )
1466 THEN
1467 RAISE FND_API.G_EXC_UNEXPECTED_ERROR;
1468 END IF;
1469
1470
1471 /*--------------------------------------------------------------+
1472 | Initialize message list if p_init_msg_list is set to TRUE |
1473 +--------------------------------------------------------------*/
1474
1475 IF FND_API.to_Boolean( p_init_msg_list ) THEN
1476 FND_MSG_PUB.initialize;
1477 END IF;
1478
1479
1480 /*-----------------------------------------------+
1481 | Initialize return status to SUCCESS |
1482 +-----------------------------------------------*/
1483
1484 x_return_status := FND_API.G_RET_STS_SUCCESS;
1485
1486
1487 /*-----------------------------------------------------------------------+
1488 | ============ START OF API BODY - UNHOLD BR =================== |
1489 +-----------------------------------------------------------------------*/
1490
1491 /*-----------------------------------------------+
1492 | Validate the action |
1493 +-----------------------------------------------*/
1494
1495 l_action := C_UNHOLD;
1496
1497 AR_BILLS_MAINTAIN_STATUS_PUB.validate_actions (
1498 p_customer_trx_id => p_customer_trx_id ,
1499 p_complete_flag => C_ACTION_REC.complete_flag ,
1500 p_uncomplete_flag => C_ACTION_REC.uncomplete_flag ,
1501 p_accept_flag => C_ACTION_REC.accept_flag ,
1502 p_cancel_flag => C_ACTION_REC.cancel_flag ,
1503 p_select_remit_flag => C_ACTION_REC.select_remit_flag ,
1504 p_deselect_remit_flag => C_ACTION_REC.deselect_remit_flag,
1505 p_approve_remit_flag => C_ACTION_REC.approve_remit_flag ,
1506 p_hold_flag => C_ACTION_REC.hold_flag ,
1507 p_unhold_flag => C_ACTION_REC.unhold_flag ,
1511 p_unpaid_flag => C_ACTION_REC.unpaid_flag ,
1508 p_recall_flag => C_ACTION_REC.recall_flag ,
1509 p_eliminate_flag => C_ACTION_REC.eliminate_flag ,
1510 p_uneliminate_flag => C_ACTION_REC.uneliminate_flag ,
1512 p_protest_flag => C_ACTION_REC.protest_flag ,
1513 p_endorse_flag => C_ACTION_REC.endorse_flag ,
1514 p_restate_flag => C_ACTION_REC.restate_flag ,
1515 p_exchange_flag => C_ACTION_REC.exchange_flag ,
1516 p_delete_flag => C_ACTION_REC.delete_flag );
1517
1518
1519 -- Do not continue if the action is not allowed for the BR
1520
1521 ARP_CT_PKG.fetch_p (l_trx_rec, p_customer_trx_id);
1522
1523 IF (C_ACTION_REC.unhold_flag <> 'Y')
1524 THEN
1525 IF PG_DEBUG in ('Y', 'C') THEN
1526 arp_util.debug( '>>>>>>>>>> The action ' || l_action || ' is not allowed on the BR ' || p_customer_trx_id);
1527 END IF;
1528 FND_MESSAGE.set_name ( 'AR', 'AR_BR_CANNOT_UNHOLD' );
1529 FND_MESSAGE.set_token ( 'BRNUM' , l_trx_rec.trx_number);
1530 app_exception.raise_exception;
1531 END IF;
1532
1533
1534 /*-----------------------------------------------+
1535 | Data Preparation |
1536 +-----------------------------------------------*/
1537
1538 l_trh_rec.customer_trx_id := p_customer_trx_id;
1539 ARP_TRANSACTION_HISTORY_PKG.lock_fetch_f_trx_id (l_trh_rec);
1540
1541
1542 /*----------------------------------------------+
1543 | Updates the Payment Schedule of the BR |
1544 +-----------------------------------------------*/
1545
1546 AR_BILLS_CREATION_LIB_PVT.Get_Payment_Schedule_Id (p_customer_trx_id, l_ps_rec.payment_schedule_id);
1547
1548 AR_BILLS_MAINTAIN_LIB_PVT.update_reserved_columns (l_ps_rec.payment_schedule_id, NULL, NULL);
1549
1550
1551 /*----------------------------------------------+
1552 | Update the Hold Flag in the BR Header |
1553 +-----------------------------------------------*/
1554
1555 l_trx_rec.br_on_hold_flag := 'N';
1556
1557 ARP_PROCESS_BR_HEADER.update_header (l_trx_rec, l_trx_rec.customer_trx_id);
1558
1559
1560 /*----------------------------------------------+
1561 | Insert a Transaction History Record |
1562 +-----------------------------------------------*/
1563
1564 -- Fetch the new status and new event of the BR
1565
1566 AR_BILLS_MAINTAIN_STATUS_PUB.New_Status_Event (
1567 p_trx_rec => l_trx_rec ,
1568 p_action => l_action ,
1569 p_new_status => l_trh_rec.status,
1570 p_new_event => l_trh_rec.event );
1571
1572 l_trh_rec.transaction_history_id:= NULL ;
1573 l_trh_rec.postable_flag := 'N' ;
1574 l_trh_rec.current_accounted_flag:= 'N' ;
1575 l_trh_rec.current_record_flag := 'Y' ;
1576 l_trh_rec.prv_trx_history_id := NULL ;
1577 l_trh_rec.comments := NULL ;
1578 l_trh_rec.posting_control_id := -3 ;
1579 l_trh_rec.gl_posted_date := NULL ;
1580 l_trh_rec.first_posted_record_flag := 'N' ;
1581 l_trh_rec.created_from := 'ARBRMAIB' ;
1582 l_trh_rec.batch_id := NULL ;
1583
1584 IF (l_trh_rec.trx_date < sysdate)
1585 THEN
1586 l_trh_rec.trx_date := trunc(sysdate);
1587 END IF;
1588
1589 arp_proc_transaction_history.insert_transaction_history (l_trh_rec, l_trh_rec.transaction_history_id);
1590
1591
1592 /*-----------------------------------------------+
1593 | Output parameter |
1594 +------------------------------------------------*/
1595
1596 p_status := l_trh_rec.status;
1597
1598
1599 /*-----------------------------------------------+
1600 | Standard check of p_commit |
1601 +-----------------------------------------------*/
1602
1603 IF FND_API.To_Boolean( p_commit )
1604 THEN
1605 IF PG_DEBUG in ('Y', 'C') THEN
1606 arp_util.debug( 'committing');
1607 END IF;
1608 Commit;
1609 END IF;
1610
1611 IF PG_DEBUG in ('Y', 'C') THEN
1612 arp_util.debug( 'AR_BILLS_MAINTAIN_PUB.UnHold()- ');
1613 END IF;
1614
1615
1616 EXCEPTION
1617 WHEN FND_API.G_EXC_ERROR THEN
1618 IF PG_DEBUG in ('Y', 'C') THEN
1619 arp_util.debug( 'SQLCODE : ' || SQLCODE);
1620 arp_util.debug( 'SQLERRM : ' || SQLERRM);
1621 END IF;
1622 ROLLBACK TO UnHold_BR_PVT;
1623 x_return_status := FND_API.G_RET_STS_ERROR ;
1624 IF PG_DEBUG in ('Y', 'C') THEN
1625 arp_util.debug( 'Exception Error');
1626 END IF;
1627 RAISE;
1628
1629 WHEN FND_API.G_EXC_UNEXPECTED_ERROR THEN
1630 IF PG_DEBUG in ('Y', 'C') THEN
1631 arp_util.debug( 'SQLCODE : ' || SQLCODE);
1632 arp_util.debug( 'SQLERRM : ' || SQLERRM);
1633 END IF;
1634 ROLLBACK TO UnHold_BR_PVT;
1635 x_return_status := FND_API.G_RET_STS_UNEXP_ERROR ;
1636 IF PG_DEBUG in ('Y', 'C') THEN
1637 arp_util.debug( 'Exception Unexpected Error');
1638 END IF;
1639 RAISE;
1640
1641 WHEN OTHERS THEN
1642 /*-------------------------------------------------------+
1643 | Handle application errors that result from trapable |
1644 | error conditions. The error messages have already |
1645 | been put on the error stack. |
1646 +-------------------------------------------------------*/
1647
1648 IF PG_DEBUG in ('Y', 'C') THEN
1649 arp_util.debug( 'SQLCODE : ' || SQLCODE);
1650 arp_util.debug( 'SQLERRM : ' || SQLERRM);
1651 END IF;
1652
1653 IF (SQLCODE = -20001)
1657 RAISE;
1654 THEN
1655 ROLLBACK TO UnHold_BR_PVT;
1656 x_return_status := FND_API.G_RET_STS_ERROR ;
1658 ELSE
1659 NULL;
1660 END IF;
1661
1662 ROLLBACK TO UnHold_BR_PVT;
1663 x_return_status := FND_API.G_RET_STS_UNEXP_ERROR ;
1664 RAISE;
1665
1666 END UnHold_BR;
1667
1668
1669 /*==============================================================================+
1670 | PROCEDURE |
1671 | Select_BR_remit |
1672 | |
1673 | DESCRIPTION |
1674 | Selects a BR for remittance |
1675 | |
1676 +==============================================================================*/
1677
1678
1679 PROCEDURE Select_BR_Remit (
1680
1681 -- ***** Input parameters *****
1682
1683 p_batch_id IN NUMBER ,
1684 p_ps_id IN NUMBER ,
1685
1686 -- ***** Output parameters *****
1687
1688 p_status OUT NOCOPY VARCHAR2 )
1689
1690 IS
1691
1692 l_batch_rec ar_batches%ROWTYPE;
1693 l_trh_rec ar_transaction_history%ROWTYPE;
1694 l_trx_rec ra_customer_trx%ROWTYPE;
1695 l_ps_rec ar_payment_schedules%ROWTYPE;
1696 l_action VARCHAR2(30);
1697
1698 BEGIN
1699
1700 IF PG_DEBUG in ('Y', 'C') THEN
1701 arp_util.debug('AR_BILLS_MAINTAIN_PUB.Select_BR_Remit ()+');
1702 END IF;
1703
1704 /*-----------------------------------------------+
1705 | Standard start of API savepoint |
1706 +-----------------------------------------------*/
1707
1708 SAVEPOINT Select_BR_Remit_PVT;
1709
1710
1711 /*-----------------------------------------------+
1712 | Input Validation |
1713 +-----------------------------------------------*/
1714
1715 AR_BILLS_MAINTAIN_VAL_PVT.validate_Payment_Schedule_ID (p_ps_id);
1716 AR_BILLS_MAINTAIN_VAL_PVT.validate_Remit_Batch_ID (p_batch_id);
1717
1718
1719 /*-----------------------------------------------+
1720 | Data preparation |
1721 +-----------------------------------------------*/
1722
1723 arp_cr_batches_pkg.fetch_p (p_batch_id, l_batch_rec);
1724
1725 arp_ps_pkg.fetch_p (p_ps_id, l_ps_rec);
1726
1727 l_trh_rec.customer_trx_id := l_ps_rec.customer_trx_id;
1728 ARP_TRANSACTION_HISTORY_PKG.lock_fetch_f_trx_id (l_trh_rec);
1729
1730
1731 /*-----------------------------------------------+
1732 | Validate the action |
1733 +-----------------------------------------------*/
1734
1735
1736 l_action := C_SELECT_REMIT;
1737
1738 AR_BILLS_MAINTAIN_STATUS_PUB.validate_actions (
1739 p_customer_trx_id => l_ps_rec.customer_trx_id ,
1740 p_complete_flag => C_ACTION_REC.complete_flag ,
1741 p_uncomplete_flag => C_ACTION_REC.uncomplete_flag ,
1742 p_accept_flag => C_ACTION_REC.accept_flag ,
1743 p_cancel_flag => C_ACTION_REC.cancel_flag ,
1744 p_select_remit_flag => C_ACTION_REC.select_remit_flag ,
1745 p_deselect_remit_flag => C_ACTION_REC.deselect_remit_flag,
1746 p_approve_remit_flag => C_ACTION_REC.approve_remit_flag ,
1747 p_hold_flag => C_ACTION_REC.hold_flag ,
1748 p_unhold_flag => C_ACTION_REC.unhold_flag ,
1749 p_recall_flag => C_ACTION_REC.recall_flag ,
1750 p_eliminate_flag => C_ACTION_REC.eliminate_flag ,
1751 p_uneliminate_flag => C_ACTION_REC.uneliminate_flag ,
1752 p_unpaid_flag => C_ACTION_REC.unpaid_flag ,
1753 p_protest_flag => C_ACTION_REC.protest_flag ,
1754 p_endorse_flag => C_ACTION_REC.endorse_flag ,
1755 p_restate_flag => C_ACTION_REC.restate_flag ,
1756 p_exchange_flag => C_ACTION_REC.exchange_flag ,
1757 p_delete_flag => C_ACTION_REC.delete_flag );
1758
1759
1760 -- Do not continue if the action is not allowed for the BR
1761
1762 ARP_CT_PKG.fetch_p (l_trx_rec, l_ps_rec.customer_trx_id);
1763
1764 IF (C_ACTION_REC.select_remit_flag <> 'Y')
1765 THEN
1766 IF PG_DEBUG in ('Y', 'C') THEN
1767 arp_util.debug( '>>>>>>>>>> The action ' || l_action || ' is not allowed on the BR ' || l_ps_rec.customer_trx_id);
1768 END IF;
1769 FND_MESSAGE.set_name ( 'AR', 'AR_BR_CANNOT_SELECT_REMIT' );
1770 FND_MESSAGE.set_token ( 'BRNUM' , l_trx_rec.trx_number);
1771 app_exception.raise_exception;
1772 END IF;
1773
1774
1775
1776 /*-----------------------------------------------+
1777 | Data Validation |
1778 +-----------------------------------------------*/
1779
1780 AR_BILLS_MAINTAIN_VAL_PVT.Validate_Remittance_Dates (l_batch_rec, l_trh_rec, l_trx_rec.trx_number);
1781
1782 l_trh_rec.trx_date := trunc(l_batch_rec.batch_date) ;
1783 l_trh_rec.gl_date := trunc(l_batch_rec.gl_date) ;
1784
1785
1786 /*----------------------------------------------+
1787 | Updates the Payment Schedule of the BR |
1788 +-----------------------------------------------*/
1789
1790 AR_BILLS_MAINTAIN_LIB_PVT.update_reserved_columns (p_ps_id, 'REMITTANCE' , p_batch_id);
1791
1792
1793 /*----------------------------------------------+
1794 | Insert a Transaction History Record |
1795 +-----------------------------------------------*/
1796
1797 -- Fetch the new status and new event of the BR
1798
1799 AR_BILLS_MAINTAIN_STATUS_PUB.New_Status_Event (
1800 p_trx_rec => l_trx_rec ,
1801 p_action => l_action ,
1802 p_new_status => l_trh_rec.status,
1803 p_new_event => l_trh_rec.event );
1804
1805
1809 l_trh_rec.current_record_flag := 'Y' ;
1806 l_trh_rec.transaction_history_id:= NULL ;
1807 l_trh_rec.postable_flag := 'N' ;
1808 l_trh_rec.current_accounted_flag:= 'N' ;
1810 l_trh_rec.prv_trx_history_id := NULL ;
1811 l_trh_rec.comments := NULL ;
1812 l_trh_rec.posting_control_id := -3 ;
1813 l_trh_rec.gl_posted_date := NULL ;
1814 l_trh_rec.first_posted_record_flag := 'N' ;
1815 l_trh_rec.created_from := 'ARBRMAIB' ;
1816 l_trh_rec.batch_id := NULL ;
1817
1818 arp_proc_transaction_history.insert_transaction_history (l_trh_rec, l_trh_rec.transaction_history_id);
1819
1820
1821 /*-----------------------------------------------+
1822 | Output parameter |
1823 +------------------------------------------------*/
1824
1825 p_status := l_trh_rec.status;
1826
1827 IF PG_DEBUG in ('Y', 'C') THEN
1828 arp_util.debug('AR_BILLS_MAINTAIN_PUB.Select_BR_Remit ()-');
1829 END IF;
1830
1831 EXCEPTION
1832 WHEN OTHERS THEN
1833 IF PG_DEBUG in ('Y', 'C') THEN
1834 arp_util.debug('EXCEPTION OTHERS: AR_BILLS_MAINTAIN_PUB.Select_BR_Remit');
1835 arp_util.debug( SQLCODE);
1836 arp_util.debug( SQLERRM);
1837 END IF;
1838 ROLLBACK TO Select_BR_Remit_PVT;
1839 RAISE;
1840
1841 END Select_BR_Remit;
1842
1843
1844 /*==============================================================================+
1845 | PROCEDURE |
1846 | DeSelect_BR_remit |
1847 | |
1848 | DESCRIPTION |
1849 | DeSelects a BR out NOCOPY of a remittance batch |
1850 | |
1851 +==============================================================================*/
1852
1853
1854 PROCEDURE DeSelect_BR_Remit (
1855
1856 -- ***** Input parameters *****
1857 p_ps_id IN NUMBER ,
1858
1859 -- ***** Output parameters *****
1860 p_status OUT NOCOPY VARCHAR2 )
1861 IS
1862
1863 l_trh_rec ar_transaction_history%ROWTYPE;
1864 l_trx_rec ra_customer_trx%ROWTYPE;
1865 l_ps_rec ar_payment_schedules%ROWTYPE;
1866 l_action VARCHAR2(30);
1867
1868 BEGIN
1869
1870 IF PG_DEBUG in ('Y', 'C') THEN
1871 arp_util.debug('AR_BILLS_MAINTAIN_PUB.DeSelect_BR_Remit ()+');
1872 END IF;
1873
1874 /*-----------------------------------------------+
1875 | Standard start of API savepoint |
1876 +-----------------------------------------------*/
1877
1878 SAVEPOINT DeSelect_BR_Remit_PVT;
1879
1880
1881 /*-----------------------------------------------+
1882 | Input Validation |
1883 +-----------------------------------------------*/
1884
1885 AR_BILLS_MAINTAIN_VAL_PVT.validate_Payment_Schedule_ID (p_ps_id);
1886
1887
1888
1889 /*-----------------------------------------------+
1890 | Data preparation |
1891 +-----------------------------------------------*/
1892
1893 arp_ps_pkg.fetch_p (p_ps_id, l_ps_rec);
1894
1895
1896
1897 /*-----------------------------------------------+
1898 | Validate the action |
1899 +-----------------------------------------------*/
1900
1901 l_action := C_DESELECT_REMIT;
1902
1903 AR_BILLS_MAINTAIN_STATUS_PUB.validate_actions (
1904 p_customer_trx_id => l_ps_rec.customer_trx_id ,
1905 p_complete_flag => C_ACTION_REC.complete_flag ,
1906 p_uncomplete_flag => C_ACTION_REC.uncomplete_flag ,
1907 p_accept_flag => C_ACTION_REC.accept_flag ,
1908 p_cancel_flag => C_ACTION_REC.cancel_flag ,
1909 p_select_remit_flag => C_ACTION_REC.select_remit_flag ,
1910 p_deselect_remit_flag => C_ACTION_REC.deselect_remit_flag,
1911 p_approve_remit_flag => C_ACTION_REC.approve_remit_flag ,
1912 p_hold_flag => C_ACTION_REC.hold_flag ,
1913 p_unhold_flag => C_ACTION_REC.unhold_flag ,
1914 p_recall_flag => C_ACTION_REC.recall_flag ,
1915 p_eliminate_flag => C_ACTION_REC.eliminate_flag ,
1916 p_uneliminate_flag => C_ACTION_REC.uneliminate_flag ,
1917 p_unpaid_flag => C_ACTION_REC.unpaid_flag ,
1918 p_protest_flag => C_ACTION_REC.protest_flag ,
1919 p_endorse_flag => C_ACTION_REC.endorse_flag ,
1920 p_restate_flag => C_ACTION_REC.restate_flag ,
1921 p_exchange_flag => C_ACTION_REC.exchange_flag ,
1922 p_delete_flag => C_ACTION_REC.delete_flag );
1923
1924
1925 -- Do not continue if the action is not allowed for the BR
1926
1927 ARP_CT_PKG.fetch_p (l_trx_rec, l_ps_rec.customer_trx_id);
1928
1929 IF (C_ACTION_REC.deselect_remit_flag <> 'Y')
1930 THEN
1931 IF PG_DEBUG in ('Y', 'C') THEN
1932 arp_util.debug( '>>>>>>>>>> The action ' || l_action || ' is not allowed on the BR ' || l_ps_rec.customer_trx_id);
1933 END IF;
1934 FND_MESSAGE.set_name ( 'AR', 'AR_BR_CANNOT_DESELECT_REMIT' );
1935 FND_MESSAGE.set_token ( 'BRNUM' , l_trx_rec.trx_number);
1936 app_exception.raise_exception;
1937 END IF;
1938
1939
1940 /*-----------------------------------------------+
1941 | Data Preparation |
1942 +-----------------------------------------------*/
1943
1944 l_trh_rec.customer_trx_id := l_ps_rec.customer_trx_id;
1945 ARP_TRANSACTION_HISTORY_PKG.lock_fetch_f_trx_id (l_trh_rec);
1946
1947
1948 /*----------------------------------------------+
1949 | Updates the Payment Schedule of the BR |
1950 +-----------------------------------------------*/
1951
1952 AR_BILLS_MAINTAIN_LIB_PVT.update_reserved_columns (p_ps_id, NULL, NULL);
1953
1957 +-----------------------------------------------*/
1954
1955 /*----------------------------------------------+
1956 | Insert a Transaction History Record |
1958
1959 -- Fetch the new status and new event of the BR
1960
1961 AR_BILLS_MAINTAIN_STATUS_PUB.New_Status_Event (
1962 p_trx_rec => l_trx_rec ,
1963 p_action => l_action ,
1964 p_new_status => l_trh_rec.status,
1965 p_new_event => l_trh_rec.event );
1966
1967 l_trh_rec.transaction_history_id:= NULL ;
1968 l_trh_rec.postable_flag := 'N' ;
1969 l_trh_rec.current_accounted_flag:= 'N' ;
1970 l_trh_rec.current_record_flag := 'Y' ;
1971 l_trh_rec.prv_trx_history_id := NULL ;
1972 l_trh_rec.comments := NULL ;
1973 l_trh_rec.posting_control_id := -3 ;
1974 l_trh_rec.gl_posted_date := NULL ;
1975 l_trh_rec.first_posted_record_flag := 'N' ;
1976 l_trh_rec.created_from := 'ARBRMAIB' ;
1977
1978 arp_proc_transaction_history.insert_transaction_history (l_trh_rec, l_trh_rec.transaction_history_id);
1979
1980
1981 /*-----------------------------------------------+
1982 | Output parameter |
1983 +------------------------------------------------*/
1984
1985 p_status := l_trh_rec.status;
1986
1987 IF PG_DEBUG in ('Y', 'C') THEN
1988 arp_util.debug('AR_BILLS_MAINTAIN_PUB.DeSelect_BR_Remit ()-');
1989 END IF;
1990
1991 EXCEPTION
1992 WHEN OTHERS THEN
1993 IF PG_DEBUG in ('Y', 'C') THEN
1994 arp_util.debug('EXCEPTION OTHERS: AR_BILLS_MAINTAIN_PUB.DeSelect_BR_Remit');
1995 arp_util.debug( SQLCODE);
1996 arp_util.debug( SQLERRM);
1997 END IF;
1998 ROLLBACK TO DeSelect_BR_Remit_PVT;
1999 RAISE;
2000
2001 END DeSelect_BR_Remit;
2002
2003
2004
2005 /*==============================================================================+
2006 | PROCEDURE |
2007 | Cancel_BR_remit |
2008 | |
2009 | DESCRIPTION |
2010 | Cancels the selection of a BR in a remittance batch |
2011 | Removes the history record related to the selection |
2012 | |
2013 +==============================================================================*/
2014
2015
2016 PROCEDURE Cancel_BR_Remit (
2017
2018 -- ***** Input parameters *****
2019 p_ps_id IN NUMBER )
2020 IS
2021
2022 l_trh_rec ar_transaction_history%ROWTYPE;
2023 l_trx_rec ra_customer_trx%ROWTYPE;
2024 l_ps_rec ar_payment_schedules%ROWTYPE;
2025 l_action VARCHAR2(30);
2026 l_trh_id ar_transaction_history.transaction_history_id%TYPE;
2027
2028 BEGIN
2029
2030 IF PG_DEBUG in ('Y', 'C') THEN
2031 arp_util.debug('AR_BILLS_MAINTAIN_PUB.Cancel_BR_Remit ()+');
2032 END IF;
2033
2034 /*-----------------------------------------------+
2035 | Standard start of API savepoint |
2036 +-----------------------------------------------*/
2037
2038 SAVEPOINT Cancel_BR_Remit_PVT;
2039
2040
2041 /*-----------------------------------------------+
2042 | Input Validation |
2043 +-----------------------------------------------*/
2044
2045 AR_BILLS_MAINTAIN_VAL_PVT.validate_Payment_Schedule_ID (p_ps_id);
2046
2047
2048
2049 /*-----------------------------------------------+
2050 | Data preparation |
2051 +-----------------------------------------------*/
2052
2053 arp_ps_pkg.fetch_p (p_ps_id, l_ps_rec);
2054
2055
2056
2057 /*-----------------------------------------------+
2058 | Validate the action |
2059 +-----------------------------------------------*/
2060
2061 l_action := C_DESELECT_REMIT;
2062
2063 AR_BILLS_MAINTAIN_STATUS_PUB.validate_actions (
2064 p_customer_trx_id => l_ps_rec.customer_trx_id ,
2065 p_complete_flag => C_ACTION_REC.complete_flag ,
2066 p_uncomplete_flag => C_ACTION_REC.uncomplete_flag ,
2067 p_accept_flag => C_ACTION_REC.accept_flag ,
2068 p_cancel_flag => C_ACTION_REC.cancel_flag ,
2069 p_select_remit_flag => C_ACTION_REC.select_remit_flag ,
2070 p_deselect_remit_flag => C_ACTION_REC.deselect_remit_flag,
2071 p_approve_remit_flag => C_ACTION_REC.approve_remit_flag ,
2072 p_hold_flag => C_ACTION_REC.hold_flag ,
2073 p_unhold_flag => C_ACTION_REC.unhold_flag ,
2074 p_recall_flag => C_ACTION_REC.recall_flag ,
2075 p_eliminate_flag => C_ACTION_REC.eliminate_flag ,
2076 p_uneliminate_flag => C_ACTION_REC.uneliminate_flag ,
2077 p_unpaid_flag => C_ACTION_REC.unpaid_flag ,
2078 p_protest_flag => C_ACTION_REC.protest_flag ,
2079 p_endorse_flag => C_ACTION_REC.endorse_flag ,
2080 p_restate_flag => C_ACTION_REC.restate_flag ,
2081 p_exchange_flag => C_ACTION_REC.exchange_flag ,
2082 p_delete_flag => C_ACTION_REC.delete_flag );
2083
2084
2085 -- Do not continue if the action is not allowed for the BR
2086
2087 ARP_CT_PKG.fetch_p (l_trx_rec, l_ps_rec.customer_trx_id);
2088
2089 IF (C_ACTION_REC.deselect_remit_flag <> 'Y')
2090 THEN
2091 IF PG_DEBUG in ('Y', 'C') THEN
2092 arp_util.debug('Cancel_BR_Remit: ' || '>>>>>>>>>> The action ' || l_action || ' is not allowed on the BR ' || l_ps_rec.customer_trx_id);
2093 END IF;
2094 FND_MESSAGE.set_name ( 'AR', 'AR_BR_CANNOT_DESELECT_REMIT' );
2095 FND_MESSAGE.set_token ( 'BRNUM' , l_trx_rec.trx_number);
2096 app_exception.raise_exception;
2097 END IF;
2098
2099
2103
2100 /*-----------------------------------------------+
2101 | Data Preparation |
2102 +-----------------------------------------------*/
2104 l_trh_rec.customer_trx_id := l_ps_rec.customer_trx_id;
2105 ARP_TRANSACTION_HISTORY_PKG.lock_fetch_f_trx_id (l_trh_rec);
2106
2107
2108 /*----------------------------------------------+
2109 | Updates the Payment Schedule of the BR |
2110 +-----------------------------------------------*/
2111
2112 AR_BILLS_MAINTAIN_LIB_PVT.update_reserved_columns (p_ps_id, NULL, NULL);
2113
2114
2115
2116 /*------------------------------------------------------+
2117 | Deletes the current Transaction History Record |
2118 | (Status Selected Remittance) |
2119 +-------------------------------------------------------*/
2120
2121 l_trh_id := l_trh_rec.prv_trx_history_id;
2122
2123 ARP_PROC_TRANSACTION_HISTORY.delete_transaction_history (l_trh_rec.transaction_history_id);
2124
2125
2126 /*------------------------------------------------------+
2127 | Updates the previous Transaction History Record |
2128 +-------------------------------------------------------*/
2129
2130 ARP_TRANSACTION_HISTORY_PKG.set_to_dummy(l_trh_rec);
2131
2132 /*---------------------------+
2133 | Set the flag to be updated |
2134 +----------------------------*/
2135
2136 l_trh_rec.current_record_flag := 'Y';
2137
2138 ARP_PROC_TRANSACTION_HISTORY.update_transaction_history (l_trh_rec, l_trh_id);
2139
2140
2141 IF PG_DEBUG in ('Y', 'C') THEN
2142 arp_util.debug('Cancel_BR_Remit: ' || 'AR_BILLS_MAINTAIN_PUB.DeSelect_BR_Remit ()-');
2143 END IF;
2144
2145 EXCEPTION
2146 WHEN OTHERS THEN
2147 IF PG_DEBUG in ('Y', 'C') THEN
2148 arp_util.debug('EXCEPTION OTHERS: AR_BILLS_MAINTAIN_PUB.Cancel_BR_Remit');
2149 arp_util.debug('Cancel_BR_Remit: ' || SQLCODE);
2150 arp_util.debug('Cancel_BR_Remit: ' || SQLERRM);
2151 END IF;
2152 ROLLBACK TO Cancel_BR_Remit_PVT;
2153 RAISE;
2154
2155 END Cancel_BR_Remit;
2156
2157
2158
2159
2160 /*==============================================================================+
2161 | PROCEDURE |
2162 | Approve_BR_Remit |
2163 | |
2164 | DESCRIPTION |
2165 | Approves the remittance of a BR |
2166 | |
2167 +==============================================================================*/
2168
2169
2170 PROCEDURE Approve_BR_Remit (
2171
2172 -- ***** Input parameters *****
2173
2174 p_batch_id IN ar_batches.batch_id%TYPE ,
2175 p_ps_id IN ar_payment_schedules.payment_schedule_id%TYPE ,
2176
2177 -- ***** Output parameters *****
2178
2179 p_status OUT NOCOPY VARCHAR2 )
2180
2181 IS
2182 l_batch_rec ar_batches%ROWTYPE;
2183 l_trh_rec ar_transaction_history%ROWTYPE;
2184 l_ps_rec ar_payment_schedules%ROWTYPE;
2185 l_trx_rec RA_CUSTOMER_TRX%ROWTYPE;
2186 l_action VARCHAR2(30);
2187
2188 BEGIN
2189
2190 IF PG_DEBUG in ('Y', 'C') THEN
2191 arp_util.debug('AR_BILLS_MAINTAIN_PUB.Approve_BR_Remit ()+ ');
2192 END IF;
2193
2194
2195 /*-----------------------------------------------+
2196 | Standard start of API savepoint |
2197 +-----------------------------------------------*/
2198
2199 SAVEPOINT Approve_BR_Remit_PVT;
2200
2201
2202 /*----------------------------------------------+
2203 | Fetch BR Information |
2204 +-----------------------------------------------*/
2205
2206 arp_cr_batches_pkg.fetch_p (p_batch_id, l_batch_rec);
2207
2208 arp_ps_pkg.fetch_p (p_ps_id, l_ps_rec);
2209
2210 ARP_CT_PKG.lock_fetch_p (l_trx_rec, l_ps_rec.customer_trx_id);
2211
2212
2213 /*-----------------------------------------------+
2214 | Validate the action |
2215 +-----------------------------------------------*/
2216
2217 l_action := C_APPROVE_REMIT;
2218
2219 AR_BILLS_MAINTAIN_STATUS_PUB.validate_actions (
2220 p_customer_trx_id => l_ps_rec.customer_trx_id ,
2221 p_complete_flag => C_ACTION_REC.complete_flag ,
2222 p_uncomplete_flag => C_ACTION_REC.uncomplete_flag ,
2223 p_accept_flag => C_ACTION_REC.accept_flag ,
2224 p_cancel_flag => C_ACTION_REC.cancel_flag ,
2225 p_select_remit_flag => C_ACTION_REC.select_remit_flag ,
2226 p_deselect_remit_flag => C_ACTION_REC.deselect_remit_flag,
2227 p_approve_remit_flag => C_ACTION_REC.approve_remit_flag ,
2228 p_hold_flag => C_ACTION_REC.hold_flag ,
2229 p_unhold_flag => C_ACTION_REC.unhold_flag ,
2230 p_recall_flag => C_ACTION_REC.recall_flag ,
2231 p_eliminate_flag => C_ACTION_REC.eliminate_flag ,
2232 p_uneliminate_flag => C_ACTION_REC.uneliminate_flag ,
2233 p_unpaid_flag => C_ACTION_REC.unpaid_flag ,
2234 p_protest_flag => C_ACTION_REC.protest_flag ,
2235 p_endorse_flag => C_ACTION_REC.endorse_flag ,
2236 p_restate_flag => C_ACTION_REC.restate_flag ,
2237 p_exchange_flag => C_ACTION_REC.exchange_flag ,
2238 p_delete_flag => C_ACTION_REC.delete_flag );
2239
2240
2241 -- Do not continue if the action is not allowed for the BR
2242
2243 IF (C_ACTION_REC.approve_remit_flag <> 'Y')
2244 THEN
2245 IF PG_DEBUG in ('Y', 'C') THEN
2249 FND_MESSAGE.set_token ( 'BRNUM' , l_trx_rec.trx_number);
2246 arp_util.debug( '>>>>>>>>>> The action ' || l_action || ' is not allowed on the BR ' || l_ps_rec.customer_trx_id);
2247 END IF;
2248 FND_MESSAGE.set_name ( 'AR', 'AR_BR_CANNOT_APPROVE' );
2250 app_exception.raise_exception;
2251 END IF;
2252
2253
2254 /*-----------------------------------------------+
2255 | Data preparation |
2256 +-----------------------------------------------*/
2257
2258
2259 ARP_CT_PKG.fetch_p (l_trx_rec, l_ps_rec.customer_trx_id);
2260
2261 l_trh_rec.customer_trx_id := l_ps_rec.customer_trx_id;
2262 ARP_TRANSACTION_HISTORY_PKG.lock_fetch_f_trx_id (l_trh_rec);
2263
2264
2265 /*----------------------------------------------+
2266 | Remittance Approval |
2267 +-----------------------------------------------*/
2268
2269 IF (l_batch_rec.remit_method_code = C_STANDARD)
2270 THEN
2271 /*----------------------------------------------+
2272 | Standard Remittance Approval |
2273 +-----------------------------------------------*/
2274
2275 l_action := C_REMIT_STANDARD;
2276 l_trh_rec.postable_flag := 'Y';
2277 l_trh_rec.current_accounted_flag:= 'Y';
2278
2279
2280 ELSIF (l_batch_rec.remit_method_code = C_FACTORING AND l_batch_rec.with_recourse_flag = 'Y')
2281 THEN
2282 /*----------------------------------------------+
2283 | Remittance Method : Factore With Recourse |
2284 +-----------------------------------------------*/
2285
2286 l_action := C_FACTORE_RECOURSE;
2287 l_trh_rec.postable_flag := 'Y';
2288 l_trh_rec.current_accounted_flag:= 'Y';
2289 AR_BILLS_MAINTAIN_LIB_PVT.Factore_Recourse (l_batch_rec, l_ps_rec, l_trh_rec);
2290
2291
2292 ELSIF (l_batch_rec.remit_method_code = C_FACTORING AND l_batch_rec.with_recourse_flag = 'N')
2293 THEN
2294 /*----------------------------------------------+
2295 | Remittance Method : Factore Without Recourse |
2296 +-----------------------------------------------*/
2297
2298 l_action := C_FACTORE;
2299 l_trh_rec.postable_flag := 'N';
2300 AR_BILLS_MAINTAIN_LIB_PVT.Factore_Without_Recourse (l_batch_rec, l_ps_rec);
2301 AR_BILLS_MAINTAIN_LIB_PVT.update_reserved_columns (p_ps_id, NULL , NULL);
2302
2303 /*----------------------------------------------+
2304 | Insert the First Transaction History Record |
2305 +-----------------------------------------------*/
2306
2307 -- Fetch the new status and new event of the BR
2308
2309 AR_BILLS_MAINTAIN_STATUS_PUB.New_Status_Event (
2310 p_trx_rec => l_trx_rec ,
2311 p_action => l_action ,
2312 p_new_status => l_trh_rec.status,
2313 p_new_event => l_trh_rec.event );
2314
2315 l_trh_rec.trx_date := trunc(l_batch_rec.batch_date) ;
2316 l_trh_rec.gl_date := trunc(l_batch_rec.gl_date) ;
2317 l_trh_rec.transaction_history_id:= NULL ;
2318 l_trh_rec.current_record_flag := 'Y' ;
2319 l_trh_rec.prv_trx_history_id := NULL ;
2320 l_trh_rec.posting_control_id := -3 ;
2321 l_trh_rec.gl_posted_date := NULL ;
2322 l_trh_rec.first_posted_record_flag := 'N' ;
2323 l_trh_rec.created_from := 'ARBRMAIB' ;
2324 l_trh_rec.batch_id := NULL ;
2325
2326
2327 arp_proc_transaction_history.insert_transaction_history (l_trh_rec ,
2328 l_trh_rec.transaction_history_id);
2329
2330 ELSE
2331 /*----------------------------------------------+
2332 | Remittance Method Unknown |
2333 +-----------------------------------------------*/
2334
2335 IF PG_DEBUG in ('Y', 'C') THEN
2336 arp_util.debug( '>>>>>>>>>> The remittance method : ' || l_batch_rec.remit_method_code || 'Recourse Flag : ' || l_batch_rec.with_recourse_flag || ' is not handled');
2337 END IF;
2338 FND_MESSAGE.set_name ( 'AR', 'AR_BR_INVALID_REMIT_METHOD');
2339 app_exception.raise_exception;
2340
2341 END IF;
2342
2343
2344 /*----------------------------------------------+
2345 | Store the Remittance Information in the |
2346 | BR Header |
2347 +-----------------------------------------------*/
2348
2349 l_trx_rec.remittance_batch_id := p_batch_id;
2350 l_trx_rec.receipt_method_id := l_batch_rec.receipt_method_id;
2351 l_trx_rec.remit_bank_acct_use_id := l_batch_rec.remit_bank_acct_use_id;
2352
2353 ARP_PROCESS_BR_HEADER.update_header ( l_trx_rec ,
2354 l_trx_rec.customer_trx_id);
2355
2356
2357 /*----------------------------------------------+
2358 | Insert the Transaction History Record |
2359 +-----------------------------------------------*/
2360
2361 -- Fetch the new status and new event of the BR
2362
2363 AR_BILLS_MAINTAIN_STATUS_PUB.New_Status_Event (
2364 p_trx_rec => l_trx_rec ,
2365 p_action => l_action ,
2366 p_new_status => l_trh_rec.status,
2367 p_new_event => l_trh_rec.event );
2368
2369 l_trh_rec.trx_date := trunc(l_batch_rec.batch_date) ;
2370 l_trh_rec.gl_date := trunc(l_batch_rec.gl_date) ;
2371 l_trh_rec.transaction_history_id:= NULL ;
2372 l_trh_rec.current_record_flag := 'Y' ;
2373 l_trh_rec.prv_trx_history_id := NULL ;
2374 l_trh_rec.posting_control_id := -3 ;
2375 l_trh_rec.gl_posted_date := NULL ;
2376 l_trh_rec.first_posted_record_flag := 'N' ;
2377 l_trh_rec.created_from := 'ARBRMAIB' ;
2378 l_trh_rec.batch_id := p_batch_id ;
2379
2380
2381 arp_proc_transaction_history.insert_transaction_history (l_trh_rec ,
2382 l_trh_rec.transaction_history_id);
2383
2387 | application that closes the BR for Factore |
2384
2385 /*----------------------------------------------+
2386 | Populate LINK_TO_TRX_HISTORY_ID on the |
2388 | without recourse |
2389 +-----------------------------------------------*/
2390
2391 IF (l_batch_rec.remit_method_code = C_FACTORING AND l_batch_rec.with_recourse_flag = 'N')
2392 THEN
2393
2394 AR_BILLS_MAINTAIN_LIB_PVT.Link_Application_History (l_trh_rec);
2395
2396 END IF;
2397
2398
2399
2400 /*-----------------------------------------------+
2401 | Output parameter |
2402 +------------------------------------------------*/
2403
2404 p_status := l_trh_rec.status ;
2405
2406
2407 IF PG_DEBUG in ('Y', 'C') THEN
2408 arp_util.debug('AR_BILLS_MAINTAIN_PUB.Approve_BR_Remit ()- ');
2409 END IF;
2410
2411 EXCEPTION
2412 WHEN OTHERS THEN
2413 IF PG_DEBUG in ('Y', 'C') THEN
2414 arp_util.debug('EXCEPTION OTHERS: AR_BILLS_MAINTAIN_PUB.Approve_BR_Remit');
2415 arp_util.debug( SQLCODE);
2416 arp_util.debug( SQLERRM);
2417 END IF;
2418 ROLLBACK TO Approve_BR_Remit_PVT;
2419 RAISE;
2420
2421
2422 END Approve_BR_Remit;
2423
2424
2425 /*==============================================================================+
2426 | PROCEDURE |
2427 | Cancel_BR |
2428 | |
2429 | DESCRIPTION |
2430 | Cancels a BR |
2431 | |
2432 +==============================================================================*/
2433
2434
2435 PROCEDURE Cancel_BR (
2436
2437 -- ***** Standard API parameters *****
2438
2439 p_api_version IN NUMBER ,
2440 p_init_msg_list IN VARCHAR2 := FND_API.G_TRUE ,
2441 p_commit IN VARCHAR2 := FND_API.G_FALSE ,
2442 p_validation_level IN NUMBER := FND_API.G_VALID_LEVEL_FULL ,
2443 x_return_status OUT NOCOPY VARCHAR2 ,
2444 x_msg_count OUT NOCOPY NUMBER ,
2445 x_msg_data OUT NOCOPY VARCHAR2 ,
2446
2447 -- ***** Input parameters *****
2448
2449 p_customer_trx_id IN NUMBER ,
2450 p_cancel_date IN DATE ,
2451 p_cancel_gl_date IN DATE ,
2452 p_cancel_comments IN VARCHAR2 ,
2453
2454
2455 -- ***** Output parameters *****
2456
2457 p_status OUT NOCOPY VARCHAR2 )
2458
2459
2460 IS
2461 l_api_name CONSTANT VARCHAR2(20) := 'Cancel_BR';
2462 l_api_version CONSTANT NUMBER := 1.0;
2463
2464 l_trh_rec ar_transaction_history%ROWTYPE;
2465 l_trx_rec ra_customer_trx%ROWTYPE;
2466 l_ps_rec ar_payment_schedules%ROWTYPE;
2467
2468 l_acceptance_flag VARCHAR2(1) ;
2469
2470 l_action VARCHAR2(30) ;
2471 l_trx_date DATE ;
2472 l_gl_date DATE ;
2473
2474 l_gl_date_closed DATE ;
2475 l_actual_date_closed DATE ;
2476 l_mesg VARCHAR2(2000);
2477
2478
2479 BEGIN
2480
2481 IF PG_DEBUG in ('Y', 'C') THEN
2482 arp_util.debug('AR_BILLS_MAINTAIN_PUB.Cancel_BR()+ ');
2483 END IF;
2484
2485 x_msg_count := NULL;
2486 x_msg_data := NULL;
2487 /*-----------------------------------------------+
2488 | Standard start of API savepoint |
2489 +-----------------------------------------------*/
2490
2491 SAVEPOINT Cancel_BR_PVT;
2492
2493 /*-----------------------------------------------+
2494 | Standard call to check for call compatibility |
2495 +-----------------------------------------------*/
2496
2497 IF NOT FND_API.Compatible_API_Call( l_api_version ,
2498 p_api_version ,
2499 l_api_name ,
2500 G_PKG_NAME )
2501 THEN
2502 RAISE FND_API.G_EXC_UNEXPECTED_ERROR;
2503 END IF;
2504
2505
2506 /*--------------------------------------------------------------+
2507 | Initialize message list if p_init_msg_list is set to TRUE |
2508 +--------------------------------------------------------------*/
2509
2510 IF FND_API.to_Boolean( p_init_msg_list ) THEN
2511 FND_MSG_PUB.initialize;
2512 END IF;
2513
2514
2515 /*-----------------------------------------------+
2516 | Initialize return status to SUCCESS |
2517 +-----------------------------------------------*/
2518
2519 x_return_status := FND_API.G_RET_STS_SUCCESS;
2520
2521
2522 /*-----------------------------------------------------------------------+
2523 | ============ START OF API BODY - CANCEL BR =================== |
2524 +-----------------------------------------------------------------------*/
2525
2526
2527 /*-----------------------------------------------+
2528 | Validate the action |
2529 +-----------------------------------------------*/
2530
2531 l_action := C_CANCEL;
2532
2533 AR_BILLS_MAINTAIN_STATUS_PUB.validate_actions (
2534 p_customer_trx_id => p_customer_trx_id ,
2538 p_cancel_flag => C_ACTION_REC.cancel_flag ,
2535 p_complete_flag => C_ACTION_REC.complete_flag ,
2536 p_uncomplete_flag => C_ACTION_REC.uncomplete_flag ,
2537 p_accept_flag => C_ACTION_REC.accept_flag ,
2539 p_select_remit_flag => C_ACTION_REC.select_remit_flag ,
2540 p_deselect_remit_flag => C_ACTION_REC.deselect_remit_flag,
2541 p_approve_remit_flag => C_ACTION_REC.approve_remit_flag ,
2542 p_hold_flag => C_ACTION_REC.hold_flag ,
2543 p_unhold_flag => C_ACTION_REC.unhold_flag ,
2544 p_recall_flag => C_ACTION_REC.recall_flag ,
2545 p_eliminate_flag => C_ACTION_REC.eliminate_flag ,
2546 p_uneliminate_flag => C_ACTION_REC.uneliminate_flag ,
2547 p_unpaid_flag => C_ACTION_REC.unpaid_flag ,
2548 p_protest_flag => C_ACTION_REC.protest_flag ,
2549 p_endorse_flag => C_ACTION_REC.endorse_flag ,
2550 p_restate_flag => C_ACTION_REC.restate_flag ,
2551 p_exchange_flag => C_ACTION_REC.exchange_flag ,
2552 p_delete_flag => C_ACTION_REC.delete_flag );
2553
2554
2555 -- Do not continue if the action is not allowed for the BR
2556
2557 ARP_CT_PKG.fetch_p (l_trx_rec, p_customer_trx_id);
2558
2559 IF (C_ACTION_REC.cancel_flag <> 'Y')
2560 THEN
2561 IF PG_DEBUG in ('Y', 'C') THEN
2562 arp_util.debug( '>>>>>>>>>> The action ' || l_action || ' is not allowed on the BR ' || p_customer_trx_id);
2563 END IF;
2564 FND_MESSAGE.set_name ( 'AR', 'AR_BR_CANNOT_CANCEL' );
2565 FND_MESSAGE.set_token ( 'BRNUM' , l_trx_rec.trx_number);
2566 app_exception.raise_exception;
2567 END IF;
2568
2569
2570
2571 /*-----------------------------------------------+
2572 | Data preparation |
2573 +-----------------------------------------------*/
2574
2575 l_trh_rec.customer_trx_id := p_customer_trx_id;
2576 ARP_TRANSACTION_HISTORY_PKG.lock_fetch_f_trx_id (l_trh_rec);
2577
2578 l_trx_date := trunc(p_cancel_date);
2579 l_gl_date := trunc(p_cancel_gl_date);
2580
2581
2582 /*-----------------------------------------------+
2583 | Data Defaulting |
2584 +-----------------------------------------------*/
2585
2586 AR_BILLS_MAINTAIN_LIB_PVT.Default_Action_Dates (l_trx_date, l_gl_date);
2587
2588
2589 /*-----------------------------------------------+
2590 | Data Validation |
2591 +-----------------------------------------------*/
2592
2593 l_mesg := arp_standard.fnd_message('AR_BR_SPMENU_CANCEL');
2594 AR_BILLS_MAINTAIN_VAL_PVT.validate_Action_Dates (l_trx_date, l_gl_date, l_trh_rec, l_mesg);
2595
2596 l_trh_rec.trx_date := l_trx_date ;
2597 l_trh_rec.gl_date := l_gl_date ;
2598 l_trh_rec.comments := p_cancel_comments;
2599
2600 AR_BILLS_MAINTAIN_VAL_PVT.Validate_Cancel_BR (p_customer_trx_id);
2601
2602
2603 /*-----------------------------------------------+
2604 | BR Cancel |
2605 +------------------------------------------------*/
2606
2607 IF (l_trh_rec.status = C_PENDING_ACCEPTANCE)
2608 THEN
2609 l_acceptance_flag := 'Y';
2610 l_trh_rec.postable_flag := 'N';
2611 l_trh_rec.current_accounted_flag:= 'N';
2612 ELSE
2613 l_acceptance_flag := 'N';
2614 l_trh_rec.postable_flag := 'Y';
2615 l_trh_rec.current_accounted_flag:= 'Y';
2616 END IF;
2617
2618 AR_BILLS_MAINTAIN_LIB_PVT.Reverse_Assignments_Adjustment (l_trh_rec, l_acceptance_flag);
2619
2620
2621 /*----------------------------------------------+
2622 | Insert the Transaction History Record |
2623 +-----------------------------------------------*/
2624
2625 -- Fetch the new status and new event of the BR
2626
2627 AR_BILLS_MAINTAIN_STATUS_PUB.New_Status_Event (
2628 p_trx_rec => l_trx_rec ,
2629 p_action => l_action ,
2630 p_new_status => l_trh_rec.status,
2631 p_new_event => l_trh_rec.event );
2632
2633 l_trh_rec.transaction_history_id:= NULL ;
2634 l_trh_rec.current_record_flag := 'Y' ;
2635 l_trh_rec.prv_trx_history_id := NULL ;
2636 l_trh_rec.posting_control_id := -3 ;
2637 l_trh_rec.gl_posted_date := NULL ;
2638 l_trh_rec.first_posted_record_flag := 'N' ;
2639 l_trh_rec.created_from := 'ARBRMAIB' ;
2640 l_trh_rec.batch_id := NULL ;
2641
2642 arp_proc_transaction_history.insert_transaction_history (l_trh_rec ,
2643 l_trh_rec.transaction_history_id);
2644
2645
2646 /*----------------------------------------------+
2647 | Close the Payment Schedule of the BR |
2648 +-----------------------------------------------*/
2649
2650 IF (l_acceptance_flag = 'N')
2651 THEN
2652 arp_ps_pkg.set_to_dummy (l_ps_rec);
2653 AR_BILLS_CREATION_LIB_PVT.Get_Payment_Schedule_Id (p_customer_trx_id, l_ps_rec.payment_schedule_id);
2654 arp_ps_pkg.lock_p(l_ps_rec.payment_schedule_id);
2655
2656 arp_ps_util.get_closed_dates (
2657 l_ps_rec.payment_schedule_id ,
2658 l_trh_rec.trx_date ,
2659 l_trh_rec.gl_date ,
2660 l_gl_date_closed ,
2661 l_actual_date_closed, 'BR' );
2662
2663 l_ps_rec.status := 'CL' ;
2664 l_ps_rec.amount_due_remaining := 0 ;
2665 l_ps_rec.acctd_amount_due_remaining := 0 ;
2666 l_ps_rec.amount_line_items_remaining := 0 ;
2667 l_ps_rec.receivables_charges_remaining := 0 ;
2668 l_ps_rec.freight_remaining := 0 ;
2669 l_ps_rec.tax_remaining := 0 ;
2670 l_ps_rec.actual_date_closed := l_actual_date_closed ;
2671 l_ps_rec.gl_date_closed := l_gl_date_closed ;
2672
2673
2674
2675 arp_ps_pkg.update_p (l_ps_rec, l_ps_rec.payment_schedule_id);
2676 END IF;
2677
2681
2678 /*-----------------------------------------------+
2679 | Output parameter |
2680 +------------------------------------------------*/
2682 p_status := l_trh_rec.status ;
2683
2684
2685 /*-----------------------------------------------+
2686 | Standard check of p_commit |
2687 +-----------------------------------------------*/
2688
2689 IF FND_API.To_Boolean( p_commit )
2690 THEN
2691 IF PG_DEBUG in ('Y', 'C') THEN
2692 arp_util.debug( 'committing');
2693 END IF;
2694 Commit;
2695 END IF;
2696
2697 IF PG_DEBUG in ('Y', 'C') THEN
2698 arp_util.debug('AR_BILLS_MAINTAIN_PUB.Cancel_BR()- ');
2699 END IF;
2700
2701
2702 EXCEPTION
2703 WHEN FND_API.G_EXC_ERROR THEN
2704 IF PG_DEBUG in ('Y', 'C') THEN
2705 arp_util.debug( 'SQLCODE : ' || SQLCODE);
2706 arp_util.debug( 'SQLERRM : ' || SQLERRM);
2707 END IF;
2708 ROLLBACK TO Cancel_BR_PVT;
2709 x_return_status := FND_API.G_RET_STS_ERROR ;
2710 IF PG_DEBUG in ('Y', 'C') THEN
2711 arp_util.debug( 'Exception Error');
2712 END IF;
2713 RAISE;
2714
2715
2716 WHEN FND_API.G_EXC_UNEXPECTED_ERROR THEN
2717 IF PG_DEBUG in ('Y', 'C') THEN
2718 arp_util.debug( 'SQLCODE : ' || SQLCODE);
2719 arp_util.debug( 'SQLERRM : ' || SQLERRM);
2720 END IF;
2721 ROLLBACK TO Cancel_BR_PVT;
2722 x_return_status := FND_API.G_RET_STS_UNEXP_ERROR ;
2723 IF PG_DEBUG in ('Y', 'C') THEN
2724 arp_util.debug( 'Exception Unexpected Error');
2725 END IF;
2726 RAISE;
2727
2728
2729 WHEN OTHERS THEN
2730 /*-------------------------------------------------------+
2731 | Handle application errors that result from trapable |
2732 | error conditions. The error messages have already |
2733 | been put on the error stack. |
2734 +-------------------------------------------------------*/
2735
2736 IF PG_DEBUG in ('Y', 'C') THEN
2737 arp_util.debug( 'SQLCODE : ' || SQLCODE);
2738 arp_util.debug( 'SQLERRM : ' || SQLERRM);
2739 END IF;
2740
2741 IF (SQLCODE = -20001)
2742 THEN
2743 ROLLBACK TO Cancel_BR_PVT;
2744 x_return_status := FND_API.G_RET_STS_ERROR ;
2745 RAISE;
2746 ELSE
2747 NULL;
2748 END IF;
2749
2750 ROLLBACK TO Cancel_BR_PVT;
2751 x_return_status := FND_API.G_RET_STS_UNEXP_ERROR ;
2752 RAISE;
2753
2754 END Cancel_BR;
2755
2756
2757 /*==============================================================================+
2758 | PROCEDURE |
2759 | Unpaid_BR |
2760 | |
2761 | DESCRIPTION |
2762 | Unpaids a BR |
2763 | |
2764 +==============================================================================*/
2765
2766
2767 PROCEDURE Unpaid_BR (
2768
2769 -- ***** Standard API parameters *****
2770
2771 p_api_version IN NUMBER ,
2772 p_init_msg_list IN VARCHAR2 := FND_API.G_TRUE ,
2773 p_commit IN VARCHAR2 := FND_API.G_FALSE ,
2774 p_validation_level IN NUMBER := FND_API.G_VALID_LEVEL_FULL ,
2775 x_return_status OUT NOCOPY VARCHAR2 ,
2776 x_msg_count OUT NOCOPY NUMBER ,
2777 x_msg_data OUT NOCOPY VARCHAR2 ,
2778
2779
2780 -- ***** Input parameters *****
2781
2782 p_customer_trx_id IN NUMBER ,
2783 p_unpaid_date IN DATE ,
2784 p_unpaid_gl_date IN DATE ,
2785 p_unpaid_reason IN VARCHAR2 ,
2786 p_unpaid_comments IN VARCHAR2 ,
2787
2788 -- ***** Output parameters *****
2789
2790 p_status OUT NOCOPY VARCHAR2 )
2791
2792 IS
2793 l_api_name CONSTANT VARCHAR2(20) := 'Unpaid_BR';
2794 l_api_version CONSTANT NUMBER := 1.0;
2795
2796 l_trh_rec ar_transaction_history%ROWTYPE;
2797 l_ps_rec ar_payment_schedules%ROWTYPE;
2798 l_trx_rec RA_CUSTOMER_TRX%ROWTYPE;
2799
2800 l_trx_date DATE ;
2801 l_gl_date DATE ;
2802 l_action VARCHAR2(30);
2803 l_mesg VARCHAR2(2000);
2804
2805 BEGIN
2806
2807 IF PG_DEBUG in ('Y', 'C') THEN
2808 arp_util.debug('AR_BILLS_MAINTAIN_PUB.Unpaid_BR()+ ');
2809 END IF;
2810
2811 x_msg_count := NULL;
2812 x_msg_data := NULL;
2813
2814 /*-----------------------------------------------+
2815 | Standard start of API savepoint |
2816 +-----------------------------------------------*/
2817
2818 SAVEPOINT Unpaid_BR_PVT;
2819
2820 /*-----------------------------------------------+
2821 | Standard call to check for call compatibility |
2822 +-----------------------------------------------*/
2823
2824 IF NOT FND_API.Compatible_API_Call( l_api_version ,
2825 p_api_version ,
2826 l_api_name ,
2830 END IF;
2827 G_PKG_NAME )
2828 THEN
2829 RAISE FND_API.G_EXC_UNEXPECTED_ERROR;
2831
2832
2833 /*--------------------------------------------------------------+
2834 | Initialize message list if p_init_msg_list is set to TRUE |
2835 +--------------------------------------------------------------*/
2836
2837 IF FND_API.to_Boolean( p_init_msg_list ) THEN
2838 FND_MSG_PUB.initialize;
2839 END IF;
2840
2841
2842 /*-----------------------------------------------+
2843 | Initialize return status to SUCCESS |
2844 +-----------------------------------------------*/
2845
2846 x_return_status := FND_API.G_RET_STS_SUCCESS;
2847
2848
2849 /*-----------------------------------------------------------------------+
2850 | ============ START OF API BODY - UNPAID BR =================== |
2851 +-----------------------------------------------------------------------*/
2852
2853
2854 /*-----------------------------------------------+
2855 | Validate the action |
2856 +-----------------------------------------------*/
2857
2858 l_action := C_UNPAID;
2859
2860 AR_BILLS_MAINTAIN_STATUS_PUB.validate_actions (
2861 p_customer_trx_id => p_customer_trx_id ,
2862 p_complete_flag => C_ACTION_REC.complete_flag ,
2863 p_uncomplete_flag => C_ACTION_REC.uncomplete_flag ,
2864 p_accept_flag => C_ACTION_REC.accept_flag ,
2865 p_cancel_flag => C_ACTION_REC.cancel_flag ,
2866 p_select_remit_flag => C_ACTION_REC.select_remit_flag ,
2867 p_deselect_remit_flag => C_ACTION_REC.deselect_remit_flag,
2868 p_approve_remit_flag => C_ACTION_REC.approve_remit_flag ,
2869 p_hold_flag => C_ACTION_REC.hold_flag ,
2870 p_unhold_flag => C_ACTION_REC.unhold_flag ,
2871 p_recall_flag => C_ACTION_REC.recall_flag ,
2872 p_eliminate_flag => C_ACTION_REC.eliminate_flag ,
2873 p_uneliminate_flag => C_ACTION_REC.uneliminate_flag ,
2874 p_unpaid_flag => C_ACTION_REC.unpaid_flag ,
2875 p_protest_flag => C_ACTION_REC.protest_flag ,
2876 p_endorse_flag => C_ACTION_REC.endorse_flag ,
2877 p_restate_flag => C_ACTION_REC.restate_flag ,
2878 p_exchange_flag => C_ACTION_REC.exchange_flag ,
2879 p_delete_flag => C_ACTION_REC.delete_flag );
2880
2881
2882 -- Do not continue if the action is not allowed for the BR
2883
2884 ARP_CT_PKG.lock_fetch_p (l_trx_rec, p_customer_trx_id);
2885
2886 IF (C_ACTION_REC.unpaid_flag <> 'Y')
2887 THEN
2888 IF PG_DEBUG in ('Y', 'C') THEN
2889 arp_util.debug( '>>>>>>>>>> The action ' || l_action || ' is not allowed on the BR ' || p_customer_trx_id);
2890 END IF;
2891 FND_MESSAGE.set_name ( 'AR', 'AR_BR_CANNOT_UNPAID' );
2892 FND_MESSAGE.set_token ( 'BRNUM' , l_trx_rec.trx_number);
2893 app_exception.raise_exception;
2894 END IF;
2895
2896
2897 /*-----------------------------------------------+
2898 | Data preparation |
2899 +-----------------------------------------------*/
2900
2901 l_trh_rec.customer_trx_id := p_customer_trx_id;
2902 ARP_TRANSACTION_HISTORY_PKG.lock_fetch_f_trx_id (l_trh_rec);
2903
2904 l_trx_date := trunc(p_unpaid_date);
2905 l_gl_date := trunc(p_unpaid_gl_date);
2906
2907
2908 AR_BILLS_CREATION_LIB_PVT.Get_Payment_Schedule_Id (p_customer_trx_id, l_ps_rec.payment_schedule_id);
2909
2910 /*-----------------------------------------------+
2911 | Data Defaulting |
2912 +-----------------------------------------------*/
2913
2914 AR_BILLS_MAINTAIN_LIB_PVT.Default_Action_Dates (l_trx_date, l_gl_date);
2915
2916
2917 /*-----------------------------------------------+
2918 | Data Validation |
2919 +-----------------------------------------------*/
2920
2921 l_mesg := arp_standard.fnd_message('AR_BR_SPMENU_UNPAID');
2922 AR_BILLS_MAINTAIN_VAL_PVT.validate_Action_Dates (l_trx_date, l_gl_date, l_trh_rec, l_mesg);
2923
2924 l_trh_rec.trx_date := l_trx_date ;
2925 l_trh_rec.gl_date := l_gl_date ;
2926 l_trh_rec.comments := p_unpaid_comments;
2927
2928 AR_BILLS_MAINTAIN_VAL_PVT.Validate_Unpaid_BR (l_trh_rec, p_unpaid_reason);
2929
2930
2931 /*-----------------------------------------------+
2932 | BR Unpaid |
2933 +------------------------------------------------*/
2934
2935 AR_BILLS_MAINTAIN_LIB_PVT.Unpaid (l_trh_rec, l_ps_rec.payment_schedule_id, l_trx_rec.remittance_batch_id, p_unpaid_reason);
2936
2937
2938 /*----------------------------------------------+
2939 | Set the Unpaid Flag to 'Y' in the BR Header |
2940 +-----------------------------------------------*/
2941
2942 l_trx_rec.br_unpaid_flag := 'Y';
2943
2944 /*----------------------------------------------+
2945 | Remove the Remittance Information of the |
2946 | BR Header if it exists |
2947 +-----------------------------------------------*/
2948
2949 l_trx_rec.receipt_method_id := NULL;
2950
2951
2952 ARP_PROCESS_BR_HEADER.update_header (l_trx_rec, l_trx_rec.customer_trx_id);
2953
2954
2955 /*----------------------------------------------+
2956 | Insert the Transaction History Record |
2957 +-----------------------------------------------*/
2958
2959 -- Fetch the new status and new event of the BR
2960
2961 AR_BILLS_MAINTAIN_STATUS_PUB.New_Status_Event (
2962 p_trx_rec => l_trx_rec ,
2963 p_action => l_action ,
2964 p_new_status => l_trh_rec.status,
2965 p_new_event => l_trh_rec.event );
2966
2967 l_trh_rec.transaction_history_id:= NULL ;
2968 l_trh_rec.current_record_flag := 'Y' ;
2969 l_trh_rec.prv_trx_history_id := NULL ;
2973 l_trh_rec.created_from := 'ARBRMAIB' ;
2970 l_trh_rec.posting_control_id := -3 ;
2971 l_trh_rec.gl_posted_date := NULL ;
2972 l_trh_rec.first_posted_record_flag := 'N' ;
2974 l_trh_rec.batch_id := NULL ;
2975
2976 arp_proc_transaction_history.insert_transaction_history (l_trh_rec, l_trh_rec.transaction_history_id);
2977
2978
2979 /*-----------------------------------------------+
2980 | Output parameter |
2981 +------------------------------------------------*/
2982
2983 p_status := l_trh_rec.status ;
2984
2985
2986 /*-----------------------------------------------+
2987 | Standard check of p_commit |
2988 +-----------------------------------------------*/
2989
2990 IF FND_API.To_Boolean( p_commit )
2991 THEN
2992 IF PG_DEBUG in ('Y', 'C') THEN
2993 arp_util.debug( 'committing');
2994 END IF;
2995 Commit;
2996 END IF;
2997
2998 IF PG_DEBUG in ('Y', 'C') THEN
2999 arp_util.debug('AR_BILLS_MAINTAIN_PUB.Unpaid_BR()- ');
3000 END IF;
3001
3002
3003 EXCEPTION
3004 WHEN FND_API.G_EXC_ERROR THEN
3005 IF PG_DEBUG in ('Y', 'C') THEN
3006 arp_util.debug( 'SQLCODE : ' || SQLCODE);
3007 arp_util.debug( 'SQLERRM : ' || SQLERRM);
3008 END IF;
3009 ROLLBACK TO Unpaid_BR_PVT;
3010 x_return_status := FND_API.G_RET_STS_ERROR ;
3011 IF PG_DEBUG in ('Y', 'C') THEN
3012 arp_util.debug( 'Exception Error');
3013 END IF;
3014 RAISE;
3015
3016
3017 WHEN FND_API.G_EXC_UNEXPECTED_ERROR THEN
3018 IF PG_DEBUG in ('Y', 'C') THEN
3019 arp_util.debug( 'SQLCODE : ' || SQLCODE);
3020 arp_util.debug( 'SQLERRM : ' || SQLERRM);
3021 END IF;
3022 ROLLBACK TO Unpaid_BR_PVT;
3023 x_return_status := FND_API.G_RET_STS_UNEXP_ERROR ;
3024 IF PG_DEBUG in ('Y', 'C') THEN
3025 arp_util.debug( 'Exception Unexpected Error');
3026 END IF;
3027 RAISE;
3028
3029
3030 WHEN OTHERS THEN
3031 /*-------------------------------------------------------+
3032 | Handle application errors that result from trapable |
3033 | error conditions. The error messages have already |
3034 | been put on the error stack. |
3035 +-------------------------------------------------------*/
3036
3037 IF PG_DEBUG in ('Y', 'C') THEN
3038 arp_util.debug( 'SQLCODE : ' || SQLCODE);
3039 arp_util.debug( 'SQLERRM : ' || SQLERRM);
3040 END IF;
3041
3042 IF (SQLCODE = -20001)
3043 THEN
3044 ROLLBACK TO Unpaid_BR_PVT;
3045 x_return_status := FND_API.G_RET_STS_ERROR ;
3046 RAISE;
3047 ELSE
3048 NULL;
3049 END IF;
3050
3051 ROLLBACK TO Unpaid_BR_PVT;
3052 x_return_status := FND_API.G_RET_STS_UNEXP_ERROR ;
3053 RAISE;
3054
3055 END Unpaid_BR;
3056
3057
3058 /*==============================================================================+
3059 | PROCEDURE |
3060 | Endorse_BR |
3061 | |
3062 | DESCRIPTION |
3063 | Endorses a BR |
3064 | |
3065 +==============================================================================*/
3066
3067
3068 PROCEDURE Endorse_BR (
3069
3070 -- ***** Standard API parameters *****
3071
3072 p_api_version IN NUMBER ,
3073 p_init_msg_list IN VARCHAR2 := FND_API.G_TRUE ,
3074 p_commit IN VARCHAR2 := FND_API.G_FALSE ,
3075 p_validation_level IN NUMBER := FND_API.G_VALID_LEVEL_FULL ,
3076 x_return_status OUT NOCOPY VARCHAR2 ,
3077 x_msg_count OUT NOCOPY NUMBER ,
3078 x_msg_data OUT NOCOPY VARCHAR2 ,
3079
3080 -- ***** Input parameters *****
3081
3082 p_customer_trx_id IN NUMBER ,
3083 p_endorse_date IN DATE ,
3084 p_endorse_gl_date IN DATE ,
3085 p_adjustment_activity_id IN NUMBER ,
3086 p_endorse_comments IN VARCHAR2 ,
3087 p_recourse_flag IN VARCHAR2 ,
3088
3089 -- ***** Output parameters *****
3090
3091 p_status OUT NOCOPY VARCHAR2) IS
3092
3093 l_api_name CONSTANT VARCHAR2(20) := 'Endorse_BR';
3094 l_api_version CONSTANT NUMBER := 1.0;
3095 l_trh_rec ar_transaction_history%ROWTYPE;
3096 l_ps_rec ar_payment_schedules%ROWTYPE;
3097 l_trx_rec RA_CUSTOMER_TRX%ROWTYPE;
3098 l_action VARCHAR2(30);
3099 new_adj_id ar_adjustments.adjustment_id%type;
3100 l_move_deferred_tax VARCHAR2(1) := 'N';
3101 l_trx_date DATE;
3102 l_gl_date DATE;
3103 l_mesg VARCHAR2(2000);
3104 -- Added for bug # 2712726
3105 -- ORASHID
3106 --
3107 l_nocopy_payment_schedule_id ar_payment_schedules.payment_schedule_id%TYPE;
3108
3109 BEGIN
3110
3111 IF PG_DEBUG in ('Y', 'C') THEN
3112 arp_util.debug('AR_BILLS_MAINTAIN_PUB.Endorse_BR()+ ');
3113 END IF;
3114
3115 x_msg_count := NULL;
3116 x_msg_data := NULL;
3117
3121
3118 /*-----------------------------------------------+
3119 | Standard start of API savepoint |
3120 +-----------------------------------------------*/
3122 SAVEPOINT Endorse_BR_PVT;
3123
3124 /*-----------------------------------------------+
3125 | Standard call to check for call compatibility |
3126 +-----------------------------------------------*/
3127
3128 IF NOT FND_API.Compatible_API_Call( l_api_version ,
3129 p_api_version ,
3130 l_api_name ,
3131 G_PKG_NAME )
3132 THEN
3133 RAISE FND_API.G_EXC_UNEXPECTED_ERROR;
3134 END IF;
3135
3136
3137 /*--------------------------------------------------------------+
3138 | Initialize message list if p_init_msg_list is set to TRUE |
3139 +--------------------------------------------------------------*/
3140
3141 IF FND_API.to_Boolean( p_init_msg_list ) THEN
3142 FND_MSG_PUB.initialize;
3143 END IF;
3144
3145
3146 /*-----------------------------------------------+
3147 | Initialize return status to SUCCESS |
3148 +-----------------------------------------------*/
3149
3150 x_return_status := FND_API.G_RET_STS_SUCCESS;
3151
3152
3153 /*-----------------------------------------------------------------------+
3154 | ============ START OF API BODY - ENDORSE BR =================== |
3155 +-----------------------------------------------------------------------*/
3156
3157
3158 /*-----------------------------------------------+
3159 | Validate the action |
3160 +-----------------------------------------------*/
3161
3162 l_action := C_ENDORSE;
3163
3164 AR_BILLS_MAINTAIN_STATUS_PUB.validate_actions (
3165 p_customer_trx_id => p_customer_trx_id ,
3166 p_complete_flag => C_ACTION_REC.complete_flag ,
3167 p_uncomplete_flag => C_ACTION_REC.uncomplete_flag ,
3168 p_accept_flag => C_ACTION_REC.accept_flag ,
3169 p_cancel_flag => C_ACTION_REC.cancel_flag ,
3170 p_select_remit_flag => C_ACTION_REC.select_remit_flag ,
3171 p_deselect_remit_flag => C_ACTION_REC.deselect_remit_flag,
3172 p_approve_remit_flag => C_ACTION_REC.approve_remit_flag ,
3173 p_hold_flag => C_ACTION_REC.hold_flag ,
3174 p_unhold_flag => C_ACTION_REC.unhold_flag ,
3175 p_recall_flag => C_ACTION_REC.recall_flag ,
3176 p_eliminate_flag => C_ACTION_REC.eliminate_flag ,
3177 p_uneliminate_flag => C_ACTION_REC.uneliminate_flag ,
3178 p_unpaid_flag => C_ACTION_REC.unpaid_flag ,
3179 p_protest_flag => C_ACTION_REC.protest_flag ,
3180 p_endorse_flag => C_ACTION_REC.endorse_flag ,
3181 p_restate_flag => C_ACTION_REC.restate_flag ,
3182 p_exchange_flag => C_ACTION_REC.exchange_flag ,
3183 p_delete_flag => C_ACTION_REC.delete_flag );
3184
3185 -- Do not continue if the action is not allowed for the BR
3186
3187 ARP_CT_PKG.fetch_p (l_trx_rec, p_customer_trx_id);
3188
3189 IF (C_ACTION_REC.endorse_flag <> 'Y')
3190 THEN
3191 IF PG_DEBUG in ('Y', 'C') THEN
3192 arp_util.debug( '>>>>>>>>>> The action ' || l_action || ' is not allowed on the BR ' || p_customer_trx_id);
3193 END IF;
3194 FND_MESSAGE.set_name ( 'AR', 'AR_BR_CANNOT_ENDORSE' );
3195 FND_MESSAGE.set_token ( 'BRNUM' , l_trx_rec.trx_number);
3196 app_exception.raise_exception;
3197 END IF;
3198
3199
3200 /*-----------------------------------------------+
3201 | Data preparation |
3202 +-----------------------------------------------*/
3203
3204 l_trh_rec.customer_trx_id := p_customer_trx_id;
3205 ARP_TRANSACTION_HISTORY_PKG.lock_fetch_f_trx_id (l_trh_rec);
3206
3207 l_trx_date := trunc(p_endorse_date);
3208 l_gl_date := trunc(p_endorse_gl_date);
3209
3210 AR_BILLS_CREATION_LIB_PVT.Get_Payment_Schedule_Id (p_customer_trx_id, l_ps_rec.payment_schedule_id);
3211
3212 -- Modified for bug # 2712726
3213 -- ORASHID
3214 --
3215 l_nocopy_payment_schedule_id := l_ps_rec.payment_schedule_id;
3216 arp_ps_pkg.fetch_p(l_nocopy_payment_schedule_id, l_ps_rec);
3217
3218
3219 /*-----------------------------------------------+
3220 | Data Defaulting |
3221 +-----------------------------------------------*/
3222
3223 AR_BILLS_MAINTAIN_LIB_PVT.Default_Action_Dates (l_trx_date, l_gl_date);
3224
3225
3226 /*----------------------------------------------+
3227 | Data Validation |
3228 +-----------------------------------------------*/
3229
3230 l_mesg := arp_standard.fnd_message('AR_BR_SPMENU_ENDORSE');
3231 AR_BILLS_MAINTAIN_VAL_PVT.Validate_Action_Dates (l_trx_date, l_gl_date, l_trh_rec, l_mesg);
3232
3233 l_trh_rec.trx_date := l_trx_date ;
3234 l_trh_rec.gl_date := l_gl_date ;
3235 l_trh_rec.comments := p_endorse_comments;
3236
3237 AR_BILLS_MAINTAIN_VAL_PVT.Validate_Adj_Activity_ID (p_adjustment_activity_id);
3238
3239
3240 /*----------------------------------------------+
3241 | Endorsement |
3242 +-----------------------------------------------*/
3243
3244
3245 IF (p_recourse_flag = 'Y')
3246 THEN
3247
3248 /*----------------------------------------------+
3249 | Endorsement with recourse |
3250 +-----------------------------------------------*/
3251
3252 l_action := C_ENDORSE_RECOURSE;
3253
3254
3255 /*----------------------------------------------+
3256 | Create an adjustment with a status W : |
3257 | Waiting for approval |
3258 +-----------------------------------------------*/
3259
3263 l_ps_rec ,
3260 AR_BILLS_MAINTAIN_LIB_PVT.Create_Adjustment (
3261 l_trh_rec ,
3262 p_customer_trx_id ,
3264 l_ps_rec.amount_due_original ,
3265 p_adjustment_activity_id ,
3266 'W' ,
3267 l_move_deferred_tax ,
3268 new_adj_id );
3269
3270 /*----------------------------------------------+
3271 | Updates the Payment Schedule of the BR |
3272 | with the Adjustment Information |
3273 +-----------------------------------------------*/
3274
3275 AR_BILLS_MAINTAIN_LIB_PVT.update_reserved_columns (l_ps_rec.payment_schedule_id, 'ADJUSTMENT', new_adj_id);
3276
3277 ELSE
3278
3279 /*----------------------------------------------+
3280 | Endorsement without recourse |
3281 +-----------------------------------------------*/
3282
3283 l_action := C_ENDORSE;
3284
3285
3286 IF (l_ps_rec.tax_remaining IS NOT NULL and l_ps_rec.tax_remaining <> 0)
3287 THEN
3288 l_move_deferred_tax := 'Y';
3289 END IF;
3290
3291 /*----------------------------------------------+
3292 | Create an adjustment with a status A : |
3293 | Approved |
3294 +-----------------------------------------------*/
3295
3296 AR_BILLS_MAINTAIN_LIB_PVT.Create_Adjustment (
3297 l_trh_rec ,
3298 p_customer_trx_id ,
3299 l_ps_rec ,
3300 l_ps_rec.amount_due_original ,
3301 p_adjustment_activity_id ,
3302 'A' ,
3303 l_move_deferred_tax ,
3304 new_adj_id );
3305
3306
3307 /*----------------------------------------------+
3308 | Insert the first Transaction History Record |
3309 +-----------------------------------------------*/
3310
3311 -- Fetch the new status and new event of the BR
3312
3313 AR_BILLS_MAINTAIN_STATUS_PUB.New_Status_Event (
3314 p_trx_rec => l_trx_rec ,
3315 p_action => l_action ,
3316 p_new_status => l_trh_rec.status,
3317 p_new_event => l_trh_rec.event );
3318
3319 l_trh_rec.transaction_history_id:= NULL ;
3320 l_trh_rec.current_record_flag := 'Y' ;
3321 l_trh_rec.prv_trx_history_id := NULL ;
3322 l_trh_rec.posting_control_id := -3 ;
3323 l_trh_rec.gl_posted_date := NULL ;
3324 l_trh_rec.first_posted_record_flag := 'N' ;
3325 l_trh_rec.created_from := 'ARBRMAIB' ;
3326 l_trh_rec.postable_flag := 'N' ;
3327 l_trh_rec.current_accounted_flag:= 'N' ;
3328
3329 arp_proc_transaction_history.insert_transaction_history (l_trh_rec, l_trh_rec.transaction_history_id);
3330
3331 END IF;
3332
3333
3334 /*----------------------------------------------+
3335 | Insert the Transaction History Record |
3336 +-----------------------------------------------*/
3337
3338 -- Fetch the new status and new event of the BR
3339
3340 AR_BILLS_MAINTAIN_STATUS_PUB.New_Status_Event (
3341 p_trx_rec => l_trx_rec ,
3342 p_action => l_action ,
3343 p_new_status => l_trh_rec.status,
3344 p_new_event => l_trh_rec.event );
3345
3346 l_trh_rec.transaction_history_id:= NULL ;
3347 l_trh_rec.current_record_flag := 'Y' ;
3348 l_trh_rec.prv_trx_history_id := NULL ;
3349 l_trh_rec.posting_control_id := -3 ;
3350 l_trh_rec.gl_posted_date := NULL ;
3351 l_trh_rec.first_posted_record_flag := 'N' ;
3352 l_trh_rec.created_from := 'ARBRMAIB' ;
3353 l_trh_rec.postable_flag := 'N' ;
3354 l_trh_rec.current_accounted_flag:= 'N' ;
3355
3356 arp_proc_transaction_history.insert_transaction_history (l_trh_rec, l_trh_rec.transaction_history_id);
3357
3358
3359 /*-----------------------------------------------+
3360 | Output parameter |
3361 +------------------------------------------------*/
3362
3363 p_status := l_trh_rec.status ;
3364
3365 /*-----------------------------------------------+
3366 | Standard check of p_commit |
3367 +-----------------------------------------------*/
3368
3369 IF FND_API.To_Boolean( p_commit )
3370 THEN
3371 IF PG_DEBUG in ('Y', 'C') THEN
3372 arp_util.debug( 'committing');
3373 END IF;
3374 Commit;
3375 END IF;
3376
3377 IF PG_DEBUG in ('Y', 'C') THEN
3378 arp_util.debug('AR_BILLS_MAINTAIN_PUB.Endorse_BR()- ');
3379 END IF;
3380
3381
3382 EXCEPTION
3383 WHEN FND_API.G_EXC_ERROR THEN
3384 IF PG_DEBUG in ('Y', 'C') THEN
3385 arp_util.debug( 'SQLCODE : ' || SQLCODE);
3386 arp_util.debug( 'SQLERRM : ' || SQLERRM);
3387 END IF;
3388 ROLLBACK TO Endorse_BR_PVT;
3389 x_return_status := FND_API.G_RET_STS_ERROR ;
3390 IF PG_DEBUG in ('Y', 'C') THEN
3391 arp_util.debug( 'Exception Error');
3392 END IF;
3393 RAISE;
3394
3395 WHEN FND_API.G_EXC_UNEXPECTED_ERROR THEN
3396 IF PG_DEBUG in ('Y', 'C') THEN
3397 arp_util.debug( 'SQLCODE : ' || SQLCODE);
3398 arp_util.debug( 'SQLERRM : ' || SQLERRM);
3399 END IF;
3400 ROLLBACK TO Endorse_BR_PVT;
3401 x_return_status := FND_API.G_RET_STS_UNEXP_ERROR ;
3402 IF PG_DEBUG in ('Y', 'C') THEN
3403 arp_util.debug( 'Exception Unexpected Error');
3404 END IF;
3405 RAISE;
3406
3407
3408 WHEN OTHERS THEN
3409 /*-------------------------------------------------------+
3413 +-------------------------------------------------------*/
3410 | Handle application errors that result from trapable |
3411 | error conditions. The error messages have already |
3412 | been put on the error stack. |
3414
3415 IF PG_DEBUG in ('Y', 'C') THEN
3416 arp_util.debug( 'SQLCODE : ' || SQLCODE);
3417 arp_util.debug( 'SQLERRM : ' || SQLERRM);
3418 END IF;
3419
3420 IF (SQLCODE = -20001)
3421 THEN
3422 ROLLBACK TO Endorse_BR_PVT;
3423 x_return_status := FND_API.G_RET_STS_ERROR ;
3424 RAISE;
3425 ELSE
3426 NULL;
3427 END IF;
3428
3429 ROLLBACK TO Endorse_BR_PVT;
3430 x_return_status := FND_API.G_RET_STS_UNEXP_ERROR ;
3431 RAISE;
3432
3433
3434 END Endorse_BR;
3435
3436
3437 /*==============================================================================+
3438 | PROCEDURE |
3439 | Protest_BR |
3440 | |
3441 | DESCRIPTION |
3442 | Protest a BR |
3443 | |
3444 +==============================================================================*/
3445
3446
3447 PROCEDURE Protest_BR (
3448
3449 -- ***** Standard API parameters *****
3450
3451 p_api_version IN NUMBER ,
3452 p_init_msg_list IN VARCHAR2 := FND_API.G_TRUE ,
3453 p_commit IN VARCHAR2 := FND_API.G_FALSE ,
3454 p_validation_level IN NUMBER := FND_API.G_VALID_LEVEL_FULL ,
3455 x_return_status OUT NOCOPY VARCHAR2 ,
3456 x_msg_count OUT NOCOPY NUMBER ,
3457 x_msg_data OUT NOCOPY VARCHAR2 ,
3458
3459 -- ***** Input parameters *****
3460
3461 p_customer_trx_id IN NUMBER ,
3462 p_protest_date IN DATE ,
3463 p_protest_comments IN VARCHAR2 ,
3464
3465 -- ***** Output parameters *****
3466
3467 p_status OUT NOCOPY VARCHAR2 )
3468
3469
3470 IS
3471 l_api_name CONSTANT VARCHAR2(20) := 'Protest_BR';
3472 l_api_version CONSTANT NUMBER := 1.0;
3473
3474 l_trh_rec ar_transaction_history%ROWTYPE;
3475 l_trx_rec RA_CUSTOMER_TRX%ROWTYPE;
3476 l_action VARCHAR2(30);
3477 l_trx_date DATE;
3478 l_mesg VARCHAR2(2000);
3479
3480 BEGIN
3481
3482 IF PG_DEBUG in ('Y', 'C') THEN
3483 arp_util.debug('AR_BILLS_MAINTAIN_PUB.Protest_BR()+ ');
3484 END IF;
3485
3486 x_msg_count := NULL;
3487 x_msg_data := NULL;
3488
3489 /*-----------------------------------------------+
3490 | Standard start of API savepoint |
3491 +-----------------------------------------------*/
3492
3493 SAVEPOINT Protest_BR_PVT;
3494
3495 /*-----------------------------------------------+
3496 | Standard call to check for call compatibility |
3497 +-----------------------------------------------*/
3498
3499 IF NOT FND_API.Compatible_API_Call( l_api_version ,
3500 p_api_version ,
3501 l_api_name ,
3502 G_PKG_NAME )
3503 THEN
3504 RAISE FND_API.G_EXC_UNEXPECTED_ERROR;
3505 END IF;
3506
3507
3508 /*--------------------------------------------------------------+
3509 | Initialize message list if p_init_msg_list is set to TRUE |
3510 +--------------------------------------------------------------*/
3511
3512 IF FND_API.to_Boolean( p_init_msg_list ) THEN
3513 FND_MSG_PUB.initialize;
3514 END IF;
3515
3516
3517 /*-----------------------------------------------+
3518 | Initialize return status to SUCCESS |
3519 +-----------------------------------------------*/
3520
3521 x_return_status := FND_API.G_RET_STS_SUCCESS;
3522
3523
3524 /*-----------------------------------------------------------------------+
3525 | ============ START OF API BODY - PROTEST BR =================== |
3526 +-----------------------------------------------------------------------*/
3527
3528
3529 /*-----------------------------------------------+
3530 | Validate the action |
3531 +-----------------------------------------------*/
3532
3533 l_action := C_PROTEST;
3534
3535 AR_BILLS_MAINTAIN_STATUS_PUB.validate_actions (
3536 p_customer_trx_id => p_customer_trx_id ,
3537 p_complete_flag => C_ACTION_REC.complete_flag ,
3538 p_uncomplete_flag => C_ACTION_REC.uncomplete_flag ,
3539 p_accept_flag => C_ACTION_REC.accept_flag ,
3540 p_cancel_flag => C_ACTION_REC.cancel_flag ,
3541 p_select_remit_flag => C_ACTION_REC.select_remit_flag ,
3542 p_deselect_remit_flag => C_ACTION_REC.deselect_remit_flag,
3543 p_approve_remit_flag => C_ACTION_REC.approve_remit_flag ,
3544 p_hold_flag => C_ACTION_REC.hold_flag ,
3545 p_unhold_flag => C_ACTION_REC.unhold_flag ,
3546 p_recall_flag => C_ACTION_REC.recall_flag ,
3547 p_eliminate_flag => C_ACTION_REC.eliminate_flag ,
3548 p_uneliminate_flag => C_ACTION_REC.uneliminate_flag ,
3552 p_restate_flag => C_ACTION_REC.restate_flag ,
3549 p_unpaid_flag => C_ACTION_REC.unpaid_flag ,
3550 p_protest_flag => C_ACTION_REC.protest_flag ,
3551 p_endorse_flag => C_ACTION_REC.endorse_flag ,
3553 p_exchange_flag => C_ACTION_REC.exchange_flag ,
3554 p_delete_flag => C_ACTION_REC.delete_flag );
3555
3556
3557 -- Do not continue if the action is not allowed for the BR
3558
3559 ARP_CT_PKG.fetch_p (l_trx_rec, p_customer_trx_id);
3560
3561 IF (C_ACTION_REC.protest_flag <> 'Y')
3562 THEN
3563 IF PG_DEBUG in ('Y', 'C') THEN
3564 arp_util.debug( '>>>>>>>>>> The action ' || l_action || ' is not allowed on the BR ' || p_customer_trx_id);
3565 END IF;
3566 FND_MESSAGE.set_name ( 'AR', 'AR_BR_CANNOT_PROTEST' );
3567 FND_MESSAGE.set_token ( 'BRNUM' , l_trx_rec.trx_number);
3568 app_exception.raise_exception;
3569 END IF;
3570
3571
3572 /*-----------------------------------------------+
3573 | Data preparation |
3574 +-----------------------------------------------*/
3575
3576 l_trh_rec.customer_trx_id := p_customer_trx_id;
3577 ARP_TRANSACTION_HISTORY_PKG.lock_fetch_f_trx_id (l_trh_rec);
3578
3579 l_trx_date := trunc(nvl(p_protest_date, sysdate));
3580
3581
3582 /*-----------------------------------------------+
3583 | Data validation |
3584 +-----------------------------------------------*/
3585
3586 l_mesg := arp_standard.fnd_message('AR_BR_SPMENU_PROTEST');
3587 AR_BILLS_MAINTAIN_VAL_PVT.validate_Action_Dates (l_trx_date, NULL, l_trh_rec, l_mesg);
3588
3589 l_trh_rec.trx_date := l_trx_date;
3590 l_trh_rec.comments := p_protest_comments;
3591
3592
3593 /*----------------------------------------------+
3594 | Insert the Transaction History Record |
3595 +-----------------------------------------------*/
3596
3597 -- Fetch the new status and new event of the BR
3598
3599 AR_BILLS_MAINTAIN_STATUS_PUB.New_Status_Event (
3600 p_trx_rec => l_trx_rec ,
3601 p_action => l_action ,
3602 p_new_status => l_trh_rec.status,
3603 p_new_event => l_trh_rec.event );
3604
3605 l_trh_rec.transaction_history_id:= NULL ;
3606 l_trh_rec.current_record_flag := 'Y' ;
3607 l_trh_rec.prv_trx_history_id := NULL ;
3608 l_trh_rec.posting_control_id := -3 ;
3609 l_trh_rec.gl_posted_date := NULL ;
3610 l_trh_rec.first_posted_record_flag := 'N' ;
3611 l_trh_rec.created_from := 'ARBRMAIB' ;
3612 l_trh_rec.postable_flag := 'N' ;
3613 l_trh_rec.current_accounted_flag:= 'N' ;
3614
3615 arp_proc_transaction_history.insert_transaction_history (l_trh_rec, l_trh_rec.transaction_history_id);
3616
3617
3618 /*-----------------------------------------------+
3619 | Output parameter |
3620 +------------------------------------------------*/
3621
3622 p_status := l_trh_rec.status ;
3623
3624
3625 /*-----------------------------------------------+
3626 | Standard check of p_commit |
3627 +-----------------------------------------------*/
3628
3629 IF FND_API.To_Boolean( p_commit )
3630 THEN
3631 IF PG_DEBUG in ('Y', 'C') THEN
3632 arp_util.debug( 'committing');
3633 END IF;
3634 Commit;
3635 END IF;
3636
3637 IF PG_DEBUG in ('Y', 'C') THEN
3638 arp_util.debug('AR_BILLS_MAINTAIN_PUB.Protest_BR()- ');
3639 END IF;
3640
3641
3642 EXCEPTION
3643 WHEN FND_API.G_EXC_ERROR THEN
3644 IF PG_DEBUG in ('Y', 'C') THEN
3645 arp_util.debug( 'SQLCODE : ' || SQLCODE);
3646 arp_util.debug( 'SQLERRM : ' || SQLERRM);
3647 END IF;
3648 ROLLBACK TO Protest_BR_PVT;
3649 x_return_status := FND_API.G_RET_STS_ERROR ;
3650 IF PG_DEBUG in ('Y', 'C') THEN
3651 arp_util.debug( 'Exception Error');
3652 END IF;
3653 RAISE;
3654
3655 WHEN FND_API.G_EXC_UNEXPECTED_ERROR THEN
3656 IF PG_DEBUG in ('Y', 'C') THEN
3657 arp_util.debug( 'SQLCODE : ' || SQLCODE);
3658 arp_util.debug( 'SQLERRM : ' || SQLERRM);
3659 END IF;
3660 ROLLBACK TO Protest_BR_PVT;
3661 x_return_status := FND_API.G_RET_STS_UNEXP_ERROR ;
3662 IF PG_DEBUG in ('Y', 'C') THEN
3663 arp_util.debug( 'Exception Unexpected Error');
3664 END IF;
3665 RAISE;
3666
3667
3668 WHEN OTHERS THEN
3669 /*-------------------------------------------------------+
3670 | Handle application errors that result from trapable |
3671 | error conditions. The error messages have already |
3672 | been put on the error stack. |
3673 +-------------------------------------------------------*/
3674
3675 IF PG_DEBUG in ('Y', 'C') THEN
3676 arp_util.debug( 'SQLCODE : ' || SQLCODE);
3677 arp_util.debug( 'SQLERRM : ' || SQLERRM);
3678 END IF;
3679
3680 IF (SQLCODE = -20001)
3681 THEN
3682 ROLLBACK TO Protest_BR_PVT;
3683 x_return_status := FND_API.G_RET_STS_ERROR ;
3684 RAISE;
3685 ELSE
3686 NULL;
3687 END IF;
3688
3689 ROLLBACK TO Protest_BR_PVT;
3690 x_return_status := FND_API.G_RET_STS_UNEXP_ERROR ;
3691
3692 RAISE;
3693
3694 END Protest_BR;
3695
3696
3697 /*==============================================================================+
3701 | DESCRIPTION |
3698 | PROCEDURE |
3699 | Restate_BR |
3700 | |
3702 | Restates a BR |
3703 | |
3704 +==============================================================================*/
3705
3706
3707 PROCEDURE Restate_BR (
3708
3709 -- ***** Standard API parameters *****
3710
3711 p_api_version IN NUMBER ,
3712 p_init_msg_list IN VARCHAR2 := FND_API.G_TRUE ,
3713 p_commit IN VARCHAR2 := FND_API.G_FALSE ,
3714 p_validation_level IN NUMBER := FND_API.G_VALID_LEVEL_FULL ,
3715 x_return_status OUT NOCOPY VARCHAR2 ,
3716 x_msg_count OUT NOCOPY NUMBER ,
3717 x_msg_data OUT NOCOPY VARCHAR2 ,
3718
3719
3720 -- ***** Input parameters *****
3721
3722 p_customer_trx_id IN NUMBER ,
3723 p_restatement_date IN DATE ,
3724 p_restatement_gl_date IN DATE ,
3725 p_restatement_comments IN VARCHAR2 ,
3726
3727
3728 -- ***** Output parameters *****
3729
3730 p_status OUT NOCOPY VARCHAR2 )
3731
3732 IS
3733 l_api_name CONSTANT VARCHAR2(20) := 'Restate_BR';
3734 l_api_version CONSTANT NUMBER := 1.0;
3735
3736 l_trh_rec ar_transaction_history%ROWTYPE ;
3737 l_trx_rec RA_CUSTOMER_TRX%ROWTYPE ;
3738 l_action VARCHAR2(30) ;
3739 l_trx_date DATE ;
3740 l_gl_date DATE ;
3741 l_mesg VARCHAR2(2000);
3742
3743 BEGIN
3744
3745 IF PG_DEBUG in ('Y', 'C') THEN
3746 arp_util.debug('AR_BILLS_MAINTAIN_PUB.Restate_BR()+ ');
3747 END IF;
3748
3749 x_msg_count := NULL;
3753 | Standard start of API savepoint |
3750 x_msg_data := NULL;
3751
3752 /*-----------------------------------------------+
3754 +-----------------------------------------------*/
3755
3756 SAVEPOINT Restate_BR_PVT;
3757
3758 /*-----------------------------------------------+
3759 | Standard call to check for call compatibility |
3760 +-----------------------------------------------*/
3761
3762 IF NOT FND_API.Compatible_API_Call( l_api_version ,
3763 p_api_version ,
3764 l_api_name ,
3765 G_PKG_NAME )
3766 THEN
3767 RAISE FND_API.G_EXC_UNEXPECTED_ERROR;
3768 END IF;
3769
3770
3771 /*--------------------------------------------------------------+
3772 | Initialize message list if p_init_msg_list is set to TRUE |
3773 +--------------------------------------------------------------*/
3774
3775 IF FND_API.to_Boolean( p_init_msg_list ) THEN
3776 FND_MSG_PUB.initialize;
3777 END IF;
3778
3779
3780 /*-----------------------------------------------+
3781 | Initialize return status to SUCCESS |
3782 +-----------------------------------------------*/
3783
3784 x_return_status := FND_API.G_RET_STS_SUCCESS;
3785
3786
3787 /*-----------------------------------------------------------------------+
3788 | ============ START OF API BODY - RESTATE BR =================== |
3789 +-----------------------------------------------------------------------*/
3790
3791
3792 /*-----------------------------------------------+
3793 | Validate the action |
3794 +-----------------------------------------------*/
3795
3796 l_action := C_RESTATE;
3797
3798 AR_BILLS_MAINTAIN_STATUS_PUB.validate_actions (
3799 p_customer_trx_id => p_customer_trx_id ,
3800 p_complete_flag => C_ACTION_REC.complete_flag ,
3801 p_uncomplete_flag => C_ACTION_REC.uncomplete_flag ,
3802 p_accept_flag => C_ACTION_REC.accept_flag ,
3803 p_cancel_flag => C_ACTION_REC.cancel_flag ,
3804 p_select_remit_flag => C_ACTION_REC.select_remit_flag ,
3805 p_deselect_remit_flag => C_ACTION_REC.deselect_remit_flag,
3806 p_approve_remit_flag => C_ACTION_REC.approve_remit_flag ,
3807 p_hold_flag => C_ACTION_REC.hold_flag ,
3808 p_unhold_flag => C_ACTION_REC.unhold_flag ,
3809 p_recall_flag => C_ACTION_REC.recall_flag ,
3810 p_eliminate_flag => C_ACTION_REC.eliminate_flag ,
3811 p_uneliminate_flag => C_ACTION_REC.uneliminate_flag ,
3812 p_unpaid_flag => C_ACTION_REC.unpaid_flag ,
3816 p_exchange_flag => C_ACTION_REC.exchange_flag ,
3813 p_protest_flag => C_ACTION_REC.protest_flag ,
3814 p_endorse_flag => C_ACTION_REC.endorse_flag ,
3815 p_restate_flag => C_ACTION_REC.restate_flag ,
3817 p_delete_flag => C_ACTION_REC.delete_flag );
3818
3819 -- Do not continue if the action is not allowed for the BR
3820
3821 ARP_CT_PKG.fetch_p (l_trx_rec, p_customer_trx_id);
3822
3823 IF (C_ACTION_REC.restate_flag <> 'Y')
3824 THEN
3825 IF PG_DEBUG in ('Y', 'C') THEN
3826 arp_util.debug( '>>>>>>>>>> The action ' || l_action || ' is not allowed on the BR ' || p_customer_trx_id);
3827 END IF;
3828 FND_MESSAGE.set_name ( 'AR', 'AR_BR_CANNOT_RESTATE' );
3829 FND_MESSAGE.set_token ( 'BRNUM' , l_trx_rec.trx_number);
3830 app_exception.raise_exception;
3831 END IF;
3832
3833
3834 /*----------------------------------------------+
3835 | Data preparation |
3836 +-----------------------------------------------*/
3837
3838 l_trh_rec.customer_trx_id := p_customer_trx_id;
3839 ARP_TRANSACTION_HISTORY_PKG.lock_fetch_f_trx_id (l_trh_rec);
3840
3841 l_trx_date := trunc(p_restatement_date);
3842 l_gl_date := trunc(p_restatement_gl_date);
3843
3844 AR_BILLS_MAINTAIN_LIB_PVT.Default_Action_Dates (l_trx_date, l_gl_date);
3845
3846
3847 /*----------------------------------------------+
3848 | Data validation |
3849 +-----------------------------------------------*/
3850
3851 l_mesg := arp_standard.fnd_message('AR_BR_SPMENU_RESTATE');
3852 AR_BILLS_MAINTAIN_VAL_PVT.validate_Action_Dates (l_trx_date, l_gl_date, l_trh_rec, l_mesg);
3853
3854 l_trh_rec.trx_date := l_trx_date ;
3855 l_trh_rec.gl_date := l_gl_date ;
3856 l_trh_rec.comments := p_restatement_comments ;
3857
3858
3859 /*----------------------------------------------+
3860 | Set the Unpaid Flag to NULL in the BR Header |
3861 +-----------------------------------------------*/
3862
3863 l_trx_rec.br_unpaid_flag := 'N';
3864
3865 ARP_PROCESS_BR_HEADER.update_header ( l_trx_rec ,
3866 l_trx_rec.customer_trx_id);
3867
3868 /*----------------------------------------------+
3869 | Insert the Transaction History Record |
3870 +-----------------------------------------------*/
3871
3872 -- Fetch the new status and new event of the BR
3873
3874 AR_BILLS_MAINTAIN_STATUS_PUB.New_Status_Event (
3875 p_trx_rec => l_trx_rec ,
3876 p_action => l_action ,
3877 p_new_status => l_trh_rec.status,
3878 p_new_event => l_trh_rec.event );
3879
3880 l_trh_rec.transaction_history_id:= NULL ;
3881 l_trh_rec.current_record_flag := 'Y' ;
3882 l_trh_rec.prv_trx_history_id := NULL ;
3883 l_trh_rec.posting_control_id := -3 ;
3884 l_trh_rec.gl_posted_date := NULL ;
3885 l_trh_rec.first_posted_record_flag := 'N' ;
3886 l_trh_rec.created_from := 'ARBRMAIB' ;
3887 l_trh_rec.postable_flag := 'Y' ;
3888 l_trh_rec.current_accounted_flag:= 'Y' ;
3889
3890 arp_proc_transaction_history.insert_transaction_history (l_trh_rec ,
3891 l_trh_rec.transaction_history_id);
3892
3893
3894 /*-----------------------------------------------+
3895 | Output parameter |
3896 +------------------------------------------------*/
3897
3898 p_status := l_trh_rec.status ;
3899
3900
3901 /*-----------------------------------------------+
3902 | Standard check of p_commit |
3903 +-----------------------------------------------*/
3904
3905 IF FND_API.To_Boolean( p_commit )
3906 THEN
3907 IF PG_DEBUG in ('Y', 'C') THEN
3908 arp_util.debug( 'committing');
3909 END IF;
3910 Commit;
3911 END IF;
3912
3913 IF PG_DEBUG in ('Y', 'C') THEN
3914 arp_util.debug('AR_BILLS_MAINTAIN_PUB.Restate_BR()- ');
3915 END IF;
3916
3917
3918 EXCEPTION
3919 WHEN FND_API.G_EXC_ERROR THEN
3920 IF PG_DEBUG in ('Y', 'C') THEN
3921 arp_util.debug( 'SQLCODE : ' || SQLCODE);
3922 arp_util.debug( 'SQLERRM : ' || SQLERRM);
3923 END IF;
3924 ROLLBACK TO Restate_BR_PVT;
3925 x_return_status := FND_API.G_RET_STS_ERROR ;
3926 IF PG_DEBUG in ('Y', 'C') THEN
3927 arp_util.debug( 'Exception Error');
3928 END IF;
3929 RAISE;
3930
3931 WHEN FND_API.G_EXC_UNEXPECTED_ERROR THEN
3932 IF PG_DEBUG in ('Y', 'C') THEN
3933 arp_util.debug( 'SQLCODE : ' || SQLCODE);
3934 arp_util.debug( 'SQLERRM : ' || SQLERRM);
3935 END IF;
3936 ROLLBACK TO Restate_BR_PVT;
3937 x_return_status := FND_API.G_RET_STS_UNEXP_ERROR ;
3938 IF PG_DEBUG in ('Y', 'C') THEN
3939 arp_util.debug( 'Exception Unexpected Error');
3940 END IF;
3941 RAISE;
3942
3943
3944 WHEN OTHERS THEN
3945 /*-------------------------------------------------------+
3946 | Handle application errors that result from trapable |
3947 | error conditions. The error messages have already |
3948 | been put on the error stack. |
3949 +-------------------------------------------------------*/
3950
3951 IF PG_DEBUG in ('Y', 'C') THEN
3952 arp_util.debug( 'SQLCODE : ' || SQLCODE);
3953 arp_util.debug( 'SQLERRM : ' || SQLERRM);
3954 END IF;
3955
3956 IF (SQLCODE = -20001)
3957 THEN
3958 ROLLBACK TO Restate_BR_PVT;
3962 NULL;
3959 x_return_status := FND_API.G_RET_STS_ERROR ;
3960 RAISE;
3961 ELSE
3963 END IF;
3964
3965 ROLLBACK TO Restate_BR_PVT;
3966 x_return_status := FND_API.G_RET_STS_UNEXP_ERROR ;
3967 RAISE;
3968
3969
3970 END Restate_BR;
3971
3972
3973 /*==============================================================================+
3974 | PROCEDURE |
3975 | Recall_BR |
3976 | |
3977 | DESCRIPTION |
3978 | Recalls a BR |
3979 | |
3980 +==============================================================================*/
3981
3982
3983 PROCEDURE Recall_BR (
3984
3985 -- ***** Standard API parameters *****
3986
3987 p_api_version IN NUMBER ,
3988 p_init_msg_list IN VARCHAR2 := FND_API.G_TRUE ,
3989 p_commit IN VARCHAR2 := FND_API.G_FALSE ,
3990 p_validation_level IN NUMBER := FND_API.G_VALID_LEVEL_FULL ,
3991 x_return_status OUT NOCOPY VARCHAR2 ,
3992 x_msg_count OUT NOCOPY NUMBER ,
3993 x_msg_data OUT NOCOPY VARCHAR2 ,
3994
3995 -- ***** Input parameters *****
3996
3997 p_customer_trx_id IN NUMBER ,
3998 p_recall_date IN DATE ,
3999 p_recall_gl_date IN DATE ,
4000 p_recall_comments IN VARCHAR2 ,
4001
4002 -- ***** Output parameters *****
4003
4004 p_status OUT NOCOPY VARCHAR2 )
4005
4006 IS
4007 l_api_name CONSTANT VARCHAR2(20) := 'Recall_BR';
4008 l_api_version CONSTANT NUMBER := 1.0;
4009
4010 l_trh_rec ar_transaction_history%ROWTYPE ;
4011 l_trx_rec RA_CUSTOMER_TRX%ROWTYPE ;
4012 l_ps_rec AR_PAYMENT_SCHEDULES%ROWTYPE ;
4013 l_adj_id AR_ADJUSTMENTS.adjustment_id%TYPE ;
4014 l_action VARCHAR2(30) ;
4015 l_trx_date DATE ;
4016 l_gl_date DATE ;
4017
4018 l_cash_receipt_id ar_cash_receipts.cash_receipt_id%TYPE ;
4019 l_receivable_application_id ar_receivable_applications.receivable_application_id%TYPE;
4020 l_mesg VARCHAR2(2000);
4021
4022 BEGIN
4023
4024 IF PG_DEBUG in ('Y', 'C') THEN
4025 arp_util.debug('AR_BILLS_MAINTAIN_PUB.Recall_BR()+ ');
4026 END IF;
4027
4028 x_msg_count := NULL;
4029 x_msg_data := NULL;
4030
4031 /*-----------------------------------------------+
4032 | Standard start of API savepoint |
4033 +-----------------------------------------------*/
4034
4035 SAVEPOINT Recall_BR_PVT;
4036
4037 /*-----------------------------------------------+
4038 | Standard call to check for call compatibility |
4039 +-----------------------------------------------*/
4040
4041 IF NOT FND_API.Compatible_API_Call( l_api_version ,
4042 p_api_version ,
4043 l_api_name ,
4044 G_PKG_NAME )
4045 THEN
4046 RAISE FND_API.G_EXC_UNEXPECTED_ERROR;
4047 END IF;
4048
4049
4050 /*--------------------------------------------------------------+
4051 | Initialize message list if p_init_msg_list is set to TRUE |
4052 +--------------------------------------------------------------*/
4053
4054 IF FND_API.to_Boolean( p_init_msg_list ) THEN
4055 FND_MSG_PUB.initialize;
4056 END IF;
4057
4058
4059 /*-----------------------------------------------+
4060 | Initialize return status to SUCCESS |
4061 +-----------------------------------------------*/
4062
4063 x_return_status := FND_API.G_RET_STS_SUCCESS;
4064
4065
4066 /*-----------------------------------------------------------------------+
4067 | ============ START OF API BODY - RECALL BR =================== |
4068 +-----------------------------------------------------------------------*/
4069
4070
4071 /*-----------------------------------------------+
4072 | Validate the action |
4073 +-----------------------------------------------*/
4074
4075 l_action := C_RECALL;
4076
4077 AR_BILLS_MAINTAIN_STATUS_PUB.validate_actions (
4078 p_customer_trx_id => p_customer_trx_id ,
4079 p_complete_flag => C_ACTION_REC.complete_flag ,
4080 p_uncomplete_flag => C_ACTION_REC.uncomplete_flag ,
4081 p_accept_flag => C_ACTION_REC.accept_flag ,
4082 p_cancel_flag => C_ACTION_REC.cancel_flag ,
4083 p_select_remit_flag => C_ACTION_REC.select_remit_flag ,
4087 p_unhold_flag => C_ACTION_REC.unhold_flag ,
4084 p_deselect_remit_flag => C_ACTION_REC.deselect_remit_flag,
4085 p_approve_remit_flag => C_ACTION_REC.approve_remit_flag ,
4086 p_hold_flag => C_ACTION_REC.hold_flag ,
4088 p_recall_flag => C_ACTION_REC.recall_flag ,
4089 p_eliminate_flag => C_ACTION_REC.eliminate_flag ,
4090 p_uneliminate_flag => C_ACTION_REC.uneliminate_flag ,
4091 p_unpaid_flag => C_ACTION_REC.unpaid_flag ,
4092 p_protest_flag => C_ACTION_REC.protest_flag ,
4093 p_endorse_flag => C_ACTION_REC.endorse_flag ,
4094 p_restate_flag => C_ACTION_REC.restate_flag ,
4095 p_exchange_flag => C_ACTION_REC.exchange_flag ,
4096 p_delete_flag => C_ACTION_REC.delete_flag );
4097
4098 -- Do not continue if the action is not allowed for the BR
4099
4100 ARP_CT_PKG.fetch_p (l_trx_rec, p_customer_trx_id);
4101
4102 IF (C_ACTION_REC.recall_flag <> 'Y')
4103 THEN
4104 IF PG_DEBUG in ('Y', 'C') THEN
4105 arp_util.debug( '>>>>>>>>>> The action ' || l_action || ' is not allowed on the BR ' || p_customer_trx_id);
4106 END IF;
4107 FND_MESSAGE.set_name ( 'AR', 'AR_BR_CANNOT_RECALL' );
4108 FND_MESSAGE.set_token ( 'BRNUM' , l_trx_rec.trx_number);
4109 app_exception.raise_exception;
4110 END IF;
4111
4112
4113 /*----------------------------------------------+
4114 | Data preparation |
4115 +-----------------------------------------------*/
4116
4117 l_trh_rec.customer_trx_id := p_customer_trx_id;
4118 ARP_TRANSACTION_HISTORY_PKG.lock_fetch_f_trx_id (l_trh_rec);
4119
4120 l_trx_date := trunc(p_recall_date);
4121 l_gl_date := trunc(p_recall_gl_date);
4122
4123 AR_BILLS_MAINTAIN_LIB_PVT.Default_Action_Dates (l_trx_date, l_gl_date);
4124
4125
4126 /*----------------------------------------------+
4127 | Data Validation |
4128 +-----------------------------------------------*/
4129
4130 l_mesg := arp_standard.fnd_message('AR_BR_SPMENU_RECALL');
4131 AR_BILLS_MAINTAIN_VAL_PVT.validate_Action_Dates (l_trx_date, l_gl_date, l_trh_rec, l_mesg);
4132
4133 l_trh_rec.trx_date := l_trx_date ;
4134 l_trh_rec.gl_date := l_gl_date ;
4135 l_trh_rec.comments := p_recall_comments ;
4136
4137
4138 /*-----------------------------------------------+
4139 | RECALL |
4140 +-----------------------------------------------*/
4141
4142 IF (l_trh_rec.status = C_REMITTED)
4143 THEN
4144 l_trh_rec.postable_flag := 'Y';
4145 l_trh_rec.current_accounted_flag := 'Y';
4146
4147 ELSIF (l_trh_rec.status = C_FACTORED)
4148 THEN
4149
4150 /*----------------------------------------------+
4151 | Reverse the receipt applied to STD |
4152 +-----------------------------------------------*/
4153
4154 AR_BILLS_MAINTAIN_LIB_PVT.Find_Last_STD (l_trh_rec.customer_trx_id, l_cash_receipt_id, l_receivable_application_id);
4155 AR_BILLS_MAINTAIN_LIB_PVT.Reverse_Receipt (l_trh_rec, l_cash_receipt_id, 'PAYMENT REVERSAL', C_BR_FACTORED_RECOURSE);
4156 l_trh_rec.postable_flag := 'Y';
4157 l_trh_rec.current_accounted_flag := 'Y';
4158
4159 ELSIF (l_trh_rec.status = C_ENDORSED)
4160 THEN
4161
4162 /*----------------------------------------------+
4163 | Reject the adjustment created during the |
4164 | endorsement. Status = 'R' (Reject) |
4165 +-----------------------------------------------*/
4166
4167 AR_BILLS_MAINTAIN_LIB_PVT.Find_Last_Adjustment (p_customer_trx_id, l_adj_id);
4168 AR_BILLS_MAINTAIN_LIB_PVT.Modify_Adjustment (l_adj_id, 'R');
4169 l_trh_rec.postable_flag := 'N';
4170 l_trh_rec.current_accounted_flag := 'N';
4171 END IF;
4172
4173
4174 /*-----------------------------------------------+
4175 | Remove the Remittance or adjustment tags |
4176 | on the BR Payment Schedule |
4177 +-----------------------------------------------*/
4178
4179 AR_BILLS_CREATION_LIB_PVT.Get_Payment_Schedule_Id (p_customer_trx_id, l_ps_rec.payment_schedule_id);
4180 AR_BILLS_MAINTAIN_LIB_PVT.update_reserved_columns (l_ps_rec.payment_schedule_id, NULL , NULL);
4181
4182
4183 /*----------------------------------------------+
4184 | Insert the Transaction History Record |
4185 +-----------------------------------------------*/
4186
4187 -- Fetch the new status and new event of the BR
4188
4189 AR_BILLS_MAINTAIN_STATUS_PUB.New_Status_Event (
4190 p_trx_rec => l_trx_rec ,
4191 p_action => l_action ,
4192 p_new_status => l_trh_rec.status,
4193 p_new_event => l_trh_rec.event );
4194
4195 l_trh_rec.transaction_history_id:= NULL ;
4196 l_trh_rec.current_record_flag := 'Y' ;
4197 l_trh_rec.prv_trx_history_id := NULL ;
4198 l_trh_rec.posting_control_id := -3 ;
4199 l_trh_rec.gl_posted_date := NULL ;
4200 l_trh_rec.first_posted_record_flag := 'N' ;
4201 l_trh_rec.created_from := 'ARBRMAIB' ;
4202 l_trh_rec.batch_id := NULL ;
4203
4204 arp_proc_transaction_history.insert_transaction_history (l_trh_rec ,
4205 l_trh_rec.transaction_history_id);
4206
4207
4208 /*----------------------------------------------+
4209 | Remove the Remittance Information of the |
4210 | BR Header if it exists |
4211 +-----------------------------------------------*/
4212
4213 l_trx_rec.receipt_method_id := NULL;
4214
4215 ARP_PROCESS_BR_HEADER.update_header ( l_trx_rec, l_trx_rec.customer_trx_id);
4216
4217
4218 /*-----------------------------------------------+
4222 p_status := l_trh_rec.status ;
4219 | Output parameter |
4220 +------------------------------------------------*/
4221
4223
4224
4225 /*-----------------------------------------------+
4226 | Standard check of p_commit |
4227 +-----------------------------------------------*/
4228
4229 IF FND_API.To_Boolean( p_commit )
4230 THEN
4231 IF PG_DEBUG in ('Y', 'C') THEN
4232 arp_util.debug( 'committing');
4233 END IF;
4234 Commit;
4235 END IF;
4236
4237 IF PG_DEBUG in ('Y', 'C') THEN
4238 arp_util.debug('AR_BILLS_MAINTAIN_PUB.Recall_BR()- ');
4239 END IF;
4240
4241
4242 EXCEPTION
4243 WHEN FND_API.G_EXC_ERROR THEN
4244 IF PG_DEBUG in ('Y', 'C') THEN
4245 arp_util.debug( 'SQLCODE : ' || SQLCODE);
4246 arp_util.debug( 'SQLERRM : ' || SQLERRM);
4247 END IF;
4248 ROLLBACK TO Recall_BR_PVT;
4249 x_return_status := FND_API.G_RET_STS_ERROR ;
4250 IF PG_DEBUG in ('Y', 'C') THEN
4251 arp_util.debug( 'Exception Error');
4255 WHEN FND_API.G_EXC_UNEXPECTED_ERROR THEN
4252 END IF;
4253 RAISE;
4254
4256 IF PG_DEBUG in ('Y', 'C') THEN
4257 arp_util.debug( 'SQLCODE : ' || SQLCODE);
4258 arp_util.debug( 'SQLERRM : ' || SQLERRM);
4259 END IF;
4260 ROLLBACK TO Recall_BR_PVT;
4261 x_return_status := FND_API.G_RET_STS_UNEXP_ERROR ;
4262 IF PG_DEBUG in ('Y', 'C') THEN
4263 arp_util.debug( 'Exception Unexpected Error');
4264 END IF;
4265 RAISE;
4266
4267
4268 WHEN OTHERS THEN
4269 /*-------------------------------------------------------+
4270 | Handle application errors that result from trapable |
4271 | error conditions. The error messages have already |
4272 | been put on the error stack. |
4273 +-------------------------------------------------------*/
4274
4275 IF PG_DEBUG in ('Y', 'C') THEN
4276 arp_util.debug( 'SQLCODE : ' || SQLCODE);
4277 arp_util.debug( 'SQLERRM : ' || SQLERRM);
4278 END IF;
4279
4280 IF (SQLCODE = -20001)
4281 THEN
4282 ROLLBACK TO Recall_BR_PVT;
4283 x_return_status := FND_API.G_RET_STS_ERROR ;
4284 RAISE;
4285 ELSE
4286 NULL;
4287 END IF;
4288
4289 ROLLBACK TO Recall_BR_PVT;
4290 x_return_status := FND_API.G_RET_STS_UNEXP_ERROR ;
4291 RAISE;
4292
4293
4294 END Recall_BR;
4295
4296
4297 /*==============================================================================+
4298 | PROCEDURE |
4299 | Eliminate_Risk_BR |
4300 | |
4301 | DESCRIPTION |
4302 | Eliminates from Risk |
4303 | |
4304 +==============================================================================*/
4305
4306
4307 PROCEDURE Eliminate_Risk_BR (
4308
4309 -- ***** Standard API parameters *****
4310
4311 p_api_version IN NUMBER ,
4312 p_init_msg_list IN VARCHAR2 := FND_API.G_TRUE ,
4313 p_commit IN VARCHAR2 := FND_API.G_FALSE ,
4314 p_validation_level IN NUMBER := FND_API.G_VALID_LEVEL_FULL ,
4315 x_return_status OUT NOCOPY VARCHAR2 ,
4316 x_msg_count OUT NOCOPY NUMBER ,
4317 x_msg_data OUT NOCOPY VARCHAR2 ,
4318
4319
4320 -- ***** Input parameters *****
4321
4322 p_customer_trx_id IN NUMBER ,
4323 p_risk_eliminate_date IN DATE ,
4324 p_risk_eliminate_gl_date IN DATE ,
4325 p_risk_eliminate_comments IN VARCHAR2 ,
4326
4327 -- ***** Output parameters *****
4328
4329 p_status OUT NOCOPY VARCHAR2) IS
4330
4331 l_api_name CONSTANT VARCHAR2(20) := 'Eliminate_Risk_BR';
4332 l_api_version CONSTANT NUMBER := 1.0;
4333 l_trh_rec ar_transaction_history%ROWTYPE;
4334 l_trx_rec RA_CUSTOMER_TRX%ROWTYPE;
4335 l_ps_rec AR_PAYMENT_SCHEDULES%ROWTYPE;
4336 l_cash_receipt_id AR_CASH_RECEIPTS.cash_receipt_id%TYPE;
4337 l_adj_id AR_ADJUSTMENTS.adjustment_id%TYPE;
4341 l_gl_date DATE;
4338 l_move_deferred_tax VARCHAR2(1) := 'N';
4339 l_action VARCHAR2(30);
4340 l_trx_date DATE;
4342 l_mesg VARCHAR2(2000);
4343
4344 -- Added for bug # 2712726
4345 -- ORASHID
4346 --
4347 l_nocopy_payment_schedule_id ar_payment_schedules.payment_schedule_id%TYPE;
4348
4349 BEGIN
4350
4351 IF PG_DEBUG in ('Y', 'C') THEN
4352 arp_util.debug('AR_BILLS_MAINTAIN_PUB.Eliminate_Risk_BR ()+ ');
4353 END IF;
4354
4355 x_msg_count := NULL;
4356 x_msg_data := NULL;
4357
4358 /*-----------------------------------------------+
4359 | Standard start of API savepoint |
4360 +-----------------------------------------------*/
4361
4362 SAVEPOINT Eliminate_Risk_BR_PVT;
4363
4364 /*-----------------------------------------------+
4365 | Standard call to check for call compatibility |
4366 +-----------------------------------------------*/
4367
4368 IF NOT FND_API.Compatible_API_Call( l_api_version ,
4369 p_api_version ,
4370 l_api_name ,
4371 G_PKG_NAME )
4372 THEN
4373 RAISE FND_API.G_EXC_UNEXPECTED_ERROR;
4374 END IF;
4375
4376
4377 /*--------------------------------------------------------------+
4378 | Initialize message list if p_init_msg_list is set to TRUE |
4379 +--------------------------------------------------------------*/
4380
4381 IF FND_API.to_Boolean( p_init_msg_list ) THEN
4382 FND_MSG_PUB.initialize;
4383 END IF;
4384
4385
4386 /*-----------------------------------------------+
4387 | Initialize return status to SUCCESS |
4388 +-----------------------------------------------*/
4389
4390 x_return_status := FND_API.G_RET_STS_SUCCESS;
4391
4392
4393 /*-----------------------------------------------------------------------+
4394 | ============ START OF API BODY - ELIMINATE RISK BR ============ |
4395 +-----------------------------------------------------------------------*/
4396
4397
4398 /*-----------------------------------------------+
4399 | Validate the action |
4400 +-----------------------------------------------*/
4401
4402 l_action := C_ELIMINATE_RISK;
4403
4404 AR_BILLS_MAINTAIN_STATUS_PUB.validate_actions (
4405 p_customer_trx_id => p_customer_trx_id ,
4406 p_complete_flag => C_ACTION_REC.complete_flag ,
4407 p_uncomplete_flag => C_ACTION_REC.uncomplete_flag ,
4408 p_accept_flag => C_ACTION_REC.accept_flag ,
4409 p_cancel_flag => C_ACTION_REC.cancel_flag ,
4410 p_select_remit_flag => C_ACTION_REC.select_remit_flag ,
4411 p_deselect_remit_flag => C_ACTION_REC.deselect_remit_flag,
4412 p_approve_remit_flag => C_ACTION_REC.approve_remit_flag ,
4413 p_hold_flag => C_ACTION_REC.hold_flag ,
4414 p_unhold_flag => C_ACTION_REC.unhold_flag ,
4415 p_recall_flag => C_ACTION_REC.recall_flag ,
4416 p_eliminate_flag => C_ACTION_REC.eliminate_flag ,
4417 p_uneliminate_flag => C_ACTION_REC.uneliminate_flag ,
4418 p_unpaid_flag => C_ACTION_REC.unpaid_flag ,
4419 p_protest_flag => C_ACTION_REC.protest_flag ,
4420 p_endorse_flag => C_ACTION_REC.endorse_flag ,
4421 p_restate_flag => C_ACTION_REC.restate_flag ,
4422 p_exchange_flag => C_ACTION_REC.exchange_flag ,
4423 p_delete_flag => C_ACTION_REC.delete_flag );
4424
4425 -- Do not continue if the action is not allowed for the BR
4426
4427 ARP_CT_PKG.fetch_p (l_trx_rec, p_customer_trx_id);
4428
4429 IF (C_ACTION_REC.eliminate_flag <> 'Y')
4430 THEN
4431 IF PG_DEBUG in ('Y', 'C') THEN
4432 arp_util.debug( '>>>>>>>>>> The action ' || l_action || ' is not allowed on the BR ' || l_trx_rec.trx_number);
4433 END IF;
4434 FND_MESSAGE.set_name ( 'AR', 'AR_BR_CANNOT_ELIMINATE' );
4435 FND_MESSAGE.set_token ( 'BRNUM' , l_trx_rec.trx_number);
4436 app_exception.raise_exception;
4437 END IF;
4438
4439
4440 /*----------------------------------------------+
4441 | Data preparation |
4442 +-----------------------------------------------*/
4443
4444 l_trh_rec.customer_trx_id := p_customer_trx_id;
4445 ARP_TRANSACTION_HISTORY_PKG.lock_fetch_f_trx_id (l_trh_rec);
4446
4447 l_trx_date := trunc(p_risk_eliminate_date);
4448 l_gl_date := trunc(p_risk_eliminate_gl_date);
4449
4450 AR_BILLS_MAINTAIN_LIB_PVT.Default_Action_Dates (l_trx_date, l_gl_date);
4451
4452 AR_BILLS_CREATION_LIB_PVT.Get_Payment_Schedule_Id (p_customer_trx_id, l_ps_rec.payment_schedule_id);
4453
4454 -- Modified for bug # 2712726
4455 -- ORASHID
4456 --
4457 l_nocopy_payment_schedule_id := l_ps_rec.payment_schedule_id;
4458 arp_ps_pkg.fetch_p(l_nocopy_payment_schedule_id, l_ps_rec);
4459
4460 /*----------------------------------------------+
4461 | Data validation |
4462 +-----------------------------------------------*/
4463
4464 l_mesg := arp_standard.fnd_message('AR_BR_SPMENU_ELIMINATE');
4465 AR_BILLS_MAINTAIN_VAL_PVT.Validate_Action_Dates (l_trx_date, l_gl_date, l_trh_rec, l_mesg);
4466
4467 l_trh_rec.trx_date := l_trx_date;
4468 l_trh_rec.gl_date := l_gl_date;
4469 l_trh_rec.comments := p_risk_eliminate_comments;
4470
4471
4472 /*-----------------------------------------------+
4473 | RISK ELIMINATION |
4474 +-----------------------------------------------*/
4475
4476 IF (l_trh_rec.status = C_MATURED_PEND_RISK_ELIM)
4477 THEN
4478
4479 /*----------------------------------------------+
4480 | The receipt created during the remittance |
4484
4481 | approval is unapplied from Short Term Debt |
4482 | and applied to the Bills Receivables |
4483 +-----------------------------------------------*/
4485 AR_BILLS_MAINTAIN_LIB_PVT.Unapply_STD (l_trh_rec, C_BR_FACTORED_RECOURSE, l_cash_receipt_id);
4486 AR_BILLS_MAINTAIN_LIB_PVT.Apply_Receipt (l_trh_rec, l_ps_rec, l_cash_receipt_id, C_BR_FACTORED_RECOURSE);
4487
4488 ELSIF (l_trh_rec.status = C_ENDORSED)
4489 THEN
4490 IF NOT (AR_BILLS_MAINTAIN_STATUS_PUB.Is_BR_Matured (l_ps_rec.due_date))
4491 THEN
4492
4493 /*------------------------------------------------------+
4494 | The Maturity Date event has not happened, so the |
4495 | maturity event and payment event happen at the same |
4496 | time. So we approve the adjustment and move deferred |
4497 | tax as part of the approval. Deferred tax is only |
4498 | moved if tax to be moved exists |
4499 +-------------------------------------------------------*/
4500
4501 IF (l_ps_rec.tax_remaining IS NOT NULL and l_ps_rec.tax_remaining <> 0)
4502 THEN
4503 l_move_deferred_tax := 'Y';
4504 END IF;
4505
4506 END IF;
4507
4508
4509 /*----------------------------------------------+
4510 | The unapproved adjustment created during the|
4511 | endorsment is approved |
4512 +-----------------------------------------------*/
4513
4514 AR_BILLS_MAINTAIN_LIB_PVT.Find_Last_Adjustment (p_customer_trx_id, l_adj_id);
4515 AR_BILLS_MAINTAIN_LIB_PVT.Approve_Adjustment (l_adj_id, l_move_deferred_tax);
4516 END IF;
4517
4518
4519 /*-----------------------------------------------+
4520 | Remove the Remittance or adjustment tags |
4521 | on the BR Payment Schedule |
4522 +-----------------------------------------------*/
4523
4524 AR_BILLS_MAINTAIN_LIB_PVT.update_reserved_columns (l_ps_rec.payment_schedule_id, NULL , NULL);
4525
4526
4527 /*----------------------------------------------+
4528 | Insert the Transaction History Record |
4529 +-----------------------------------------------*/
4530
4531 -- Fetch the new status and new event of the BR
4532
4533 AR_BILLS_MAINTAIN_STATUS_PUB.New_Status_Event (
4534 p_trx_rec => l_trx_rec ,
4535 p_action => l_action ,
4536 p_new_status => l_trh_rec.status,
4537 p_new_event => l_trh_rec.event );
4538
4539 l_trh_rec.transaction_history_id:= NULL ;
4540 l_trh_rec.postable_flag := 'N' ;
4541 l_trh_rec.current_accounted_flag:= 'N' ;
4542 l_trh_rec.current_record_flag := 'Y' ;
4543 l_trh_rec.prv_trx_history_id := NULL ;
4544 l_trh_rec.posting_control_id := -3 ;
4545 l_trh_rec.gl_posted_date := NULL ;
4546 l_trh_rec.first_posted_record_flag := 'N' ;
4547 l_trh_rec.created_from := 'ARBRMAIB' ;
4548 l_trh_rec.batch_id := NULL ;
4549
4550 arp_proc_transaction_history.insert_transaction_history (l_trh_rec ,
4551 l_trh_rec.transaction_history_id);
4552
4553
4554 /*-----------------------------------------------+
4555 | Output parameter |
4556 +------------------------------------------------*/
4557
4558 p_status := l_trh_rec.status ;
4559
4560
4561 /*-----------------------------------------------+
4562 | Standard check of p_commit |
4563 +-----------------------------------------------*/
4564
4565 IF FND_API.To_Boolean( p_commit )
4566 THEN
4567 IF PG_DEBUG in ('Y', 'C') THEN
4568 arp_util.debug( 'committing');
4569 END IF;
4570 Commit;
4571 END IF;
4572
4573 IF PG_DEBUG in ('Y', 'C') THEN
4574 arp_util.debug('AR_BILLS_MAINTAIN_PUB.Eliminate_Risk_BR ()- ');
4575 END IF;
4576
4577
4578 EXCEPTION
4579 WHEN FND_API.G_EXC_ERROR THEN
4580 IF PG_DEBUG in ('Y', 'C') THEN
4581 arp_util.debug( 'SQLCODE : ' || SQLCODE);
4582 arp_util.debug( 'SQLERRM : ' || SQLERRM);
4583 END IF;
4584 ROLLBACK TO Eliminate_Risk_BR_PVT;
4585 x_return_status := FND_API.G_RET_STS_ERROR ;
4589 RAISE;
4586 IF PG_DEBUG in ('Y', 'C') THEN
4587 arp_util.debug( 'Exception Error');
4588 END IF;
4590
4591 WHEN FND_API.G_EXC_UNEXPECTED_ERROR THEN
4592 IF PG_DEBUG in ('Y', 'C') THEN
4593 arp_util.debug( 'SQLCODE : ' || SQLCODE);
4594 arp_util.debug( 'SQLERRM : ' || SQLERRM);
4595 END IF;
4596 ROLLBACK TO Eliminate_Risk_BR_PVT;
4597 x_return_status := FND_API.G_RET_STS_UNEXP_ERROR ;
4598 IF PG_DEBUG in ('Y', 'C') THEN
4599 arp_util.debug( 'Exception Unexpected Error');
4600 END IF;
4601 RAISE;
4602
4603
4604 WHEN OTHERS THEN
4605 /*-------------------------------------------------------+
4606 | Handle application errors that result from trapable |
4607 | error conditions. The error messages have already |
4608 | been put on the error stack. |
4609 +-------------------------------------------------------*/
4610
4611 IF PG_DEBUG in ('Y', 'C') THEN
4612 arp_util.debug( 'SQLCODE : ' || SQLCODE);
4613 arp_util.debug( 'SQLERRM : ' || SQLERRM);
4614 END IF;
4615
4616 IF (SQLCODE = -20001)
4617 THEN
4618 ROLLBACK TO Eliminate_Risk_BR_PVT;
4619 x_return_status := FND_API.G_RET_STS_ERROR ;
4620 RAISE;
4621 ELSE
4622 NULL;
4623 END IF;
4624
4625 ROLLBACK TO Eliminate_Risk_BR_PVT;
4626 x_return_status := FND_API.G_RET_STS_UNEXP_ERROR ;
4627
4628 RAISE;
4629
4630 END Eliminate_Risk_BR;
4631
4632
4633 /*==============================================================================+
4634 | PROCEDURE |
4635 | UnEliminate_Risk_BR |
4636 | |
4637 | DESCRIPTION |
4638 | UnEliminates from Risk |
4639 | |
4640 +==============================================================================*/
4641
4642
4643 PROCEDURE UnEliminate_Risk_BR (
4644
4645 -- ***** Standard API parameters *****
4646
4647 p_api_version IN NUMBER ,
4648 p_init_msg_list IN VARCHAR2 := FND_API.G_TRUE ,
4649 p_commit IN VARCHAR2 := FND_API.G_FALSE ,
4650 p_validation_level IN NUMBER := FND_API.G_VALID_LEVEL_FULL ,
4651 x_return_status OUT NOCOPY VARCHAR2 ,
4652 x_msg_count OUT NOCOPY NUMBER ,
4653 x_msg_data OUT NOCOPY VARCHAR2 ,
4654
4655 -- ***** Input parameters *****
4656
4657 p_customer_trx_id IN NUMBER ,
4658 p_risk_uneliminate_date IN DATE ,
4659 p_risk_uneliminate_gl_date IN DATE ,
4660 p_risk_uneliminate_comments IN VARCHAR2 ,
4661
4662 -- ***** Output parameters *****
4663
4664 p_status OUT NOCOPY VARCHAR2) IS
4665
4666
4667 l_api_name CONSTANT VARCHAR2(20) := 'UnEliminate_Risk_BR';
4668 l_api_version CONSTANT NUMBER := 1.0 ;
4669
4670 l_trh_rec ar_transaction_history%ROWTYPE;
4671 l_trh_prev_rec ar_transaction_history%ROWTYPE;
4672 l_trx_rec RA_CUSTOMER_TRX%ROWTYPE;
4673 l_ps_rec AR_PAYMENT_SCHEDULES%ROWTYPE;
4674 l_cash_receipt_id AR_CASH_RECEIPTS.cash_receipt_id%TYPE;
4675 l_adj_id AR_ADJUSTMENTS.adjustment_id%TYPE;
4676 l_move_deferred_tax VARCHAR2(1):= 'N';
4677 l_action VARCHAR2(30);
4678 l_trx_date DATE;
4679 l_gl_date DATE;
4680 l_new_adj_id NUMBER;
4681 l_receivables_trx_id NUMBER;
4682 l_mesg VARCHAR2(2000);
4683
4684 -- Added for bug # 2712726
4685 -- ORASHID
4686 --
4687 l_nocopy_payment_schedule_id ar_payment_schedules.payment_schedule_id%TYPE;
4688
4689 BEGIN
4690
4691 IF PG_DEBUG in ('Y', 'C') THEN
4692 arp_util.debug('AR_BILLS_MAINTAIN_PUB.UnEliminate_Risk_BR ()+ ');
4693 END IF;
4694
4695 x_msg_count := NULL;
4696 x_msg_data := NULL;
4697
4698 /*-----------------------------------------------+
4699 | Standard start of API savepoint |
4700 +-----------------------------------------------*/
4701
4702 SAVEPOINT UnEliminate_Risk_BR_PVT;
4703
4704 /*-----------------------------------------------+
4705 | Standard call to check for call compatibility |
4706 +-----------------------------------------------*/
4707
4708 IF NOT FND_API.Compatible_API_Call( l_api_version ,
4709 p_api_version ,
4710 l_api_name ,
4711 G_PKG_NAME )
4712 THEN
4713 RAISE FND_API.G_EXC_UNEXPECTED_ERROR;
4714 END IF;
4715
4716
4717 /*--------------------------------------------------------------+
4718 | Initialize message list if p_init_msg_list is set to TRUE |
4719 +--------------------------------------------------------------*/
4720
4721 IF FND_API.to_Boolean( p_init_msg_list ) THEN
4725
4722 FND_MSG_PUB.initialize;
4723 END IF;
4724
4726 /*-----------------------------------------------+
4727 | Initialize return status to SUCCESS |
4728 +-----------------------------------------------*/
4729
4730 x_return_status := FND_API.G_RET_STS_SUCCESS;
4731
4732
4733 /*-----------------------------------------------------------------------+
4734 | ============ START OF API BODY - UNELIMINATE RISK BR =============|
4735 +-----------------------------------------------------------------------*/
4736
4737
4738 /*-----------------------------------------------+
4739 | Validate the action |
4740 +-----------------------------------------------*/
4741
4742 l_action := C_UNELIMINATE_RISK;
4743
4744 AR_BILLS_MAINTAIN_STATUS_PUB.validate_actions (
4745 p_customer_trx_id => p_customer_trx_id ,
4746 p_complete_flag => C_ACTION_REC.complete_flag ,
4747 p_uncomplete_flag => C_ACTION_REC.uncomplete_flag ,
4748 p_accept_flag => C_ACTION_REC.accept_flag ,
4749 p_cancel_flag => C_ACTION_REC.cancel_flag ,
4750 p_select_remit_flag => C_ACTION_REC.select_remit_flag ,
4751 p_deselect_remit_flag => C_ACTION_REC.deselect_remit_flag,
4752 p_approve_remit_flag => C_ACTION_REC.approve_remit_flag ,
4753 p_hold_flag => C_ACTION_REC.hold_flag ,
4754 p_unhold_flag => C_ACTION_REC.unhold_flag ,
4755 p_recall_flag => C_ACTION_REC.recall_flag ,
4756 p_eliminate_flag => C_ACTION_REC.eliminate_flag ,
4757 p_uneliminate_flag => C_ACTION_REC.uneliminate_flag ,
4758 p_unpaid_flag => C_ACTION_REC.unpaid_flag ,
4759 p_protest_flag => C_ACTION_REC.protest_flag ,
4760 p_endorse_flag => C_ACTION_REC.endorse_flag ,
4761 p_restate_flag => C_ACTION_REC.restate_flag ,
4762 p_exchange_flag => C_ACTION_REC.exchange_flag ,
4763 p_delete_flag => C_ACTION_REC.delete_flag );
4764
4765 -- Do not continue if the action is not allowed for the BR
4766
4767 ARP_CT_PKG.fetch_p (l_trx_rec, p_customer_trx_id);
4768
4769 IF (C_ACTION_REC.uneliminate_flag <> 'Y')
4770 THEN
4771 IF PG_DEBUG in ('Y', 'C') THEN
4772 arp_util.debug( '>>>>>>>>>> The action ' || l_action || ' is not allowed on the BR ' || l_trx_rec.trx_number);
4773 END IF;
4774 FND_MESSAGE.set_name ( 'AR', 'AR_BR_CANNOT_UNELIMINATE' );
4775 FND_MESSAGE.set_token ( 'BRNUM' , l_trx_rec.trx_number);
4776 app_exception.raise_exception;
4777 END IF;
4778
4779
4780 /*----------------------------------------------+
4781 | Data preparation |
4782 +-----------------------------------------------*/
4783
4784 -- Fetch the current transaction history record information
4785
4786 l_trh_rec.customer_trx_id := p_customer_trx_id;
4787 ARP_TRANSACTION_HISTORY_PKG.lock_fetch_f_trx_id (l_trh_rec);
4788
4789 l_trx_date := trunc(p_risk_uneliminate_date);
4790 l_gl_date := trunc(p_risk_uneliminate_gl_date);
4791
4792
4793 -- Fetch the previous transaction history record information
4794
4795 l_trh_prev_rec.transaction_history_id := l_trh_rec.prv_trx_history_id;
4796 AR_BILLS_MAINTAIN_STATUS_PUB.Find_Last_Relevant_Trh (l_trh_prev_rec);
4797
4798
4799 -- Fetch the Payment Schedule information
4800
4801 AR_BILLS_CREATION_LIB_PVT.Get_Payment_Schedule_Id (p_customer_trx_id, l_ps_rec.payment_schedule_id);
4802
4803 -- Modified for bug # 2712726
4804 -- ORASHID
4805 --
4806 l_nocopy_payment_schedule_id := l_ps_rec.payment_schedule_id;
4807 arp_ps_pkg.fetch_p(l_nocopy_payment_schedule_id, l_ps_rec);
4808
4809
4810
4811 /*----------------------------------------------+
4812 | Data defaulting |
4813 +-----------------------------------------------*/
4814
4815 AR_BILLS_MAINTAIN_LIB_PVT.Default_Action_Dates (l_trx_date, l_gl_date);
4816
4817
4818 /*----------------------------------------------+
4819 | Data validation |
4820 +-----------------------------------------------*/
4821
4822 l_mesg := arp_standard.fnd_message('AR_BR_SPMENU_UNELIMINATE');
4823 AR_BILLS_MAINTAIN_VAL_PVT.Validate_Action_Dates (l_trx_date, l_gl_date, l_trh_rec, l_mesg);
4824
4825 l_trh_rec.trx_date := l_trx_date ;
4826 l_trh_rec.gl_date := l_gl_date ;
4827 l_trh_rec.comments := p_risk_uneliminate_comments;
4828
4829
4830 /*-----------------------------------------------+
4831 | RISK UNELIMINATION |
4832 +-----------------------------------------------*/
4833
4834 IF (l_trh_prev_rec.status = C_MATURED_PEND_RISK_ELIM)
4835 THEN
4836
4837
4838 /*----------------------------------------------+
4839 | Unapply the receipt from the BR and apply |
4840 | it to short term debt |
4841 +-----------------------------------------------*/
4842
4843 AR_BILLS_MAINTAIN_LIB_PVT.Find_Last_Receipt (l_trh_rec.customer_trx_id, l_cash_receipt_id);
4844 AR_BILLS_MAINTAIN_LIB_PVT.Unapply_Receipt (l_trh_rec, l_ps_rec.payment_schedule_id, l_cash_receipt_id, C_RISK_UNELIMINATED);
4845 AR_BILLS_MAINTAIN_LIB_PVT.Apply_STD (p_customer_trx_id, l_cash_receipt_id, l_trh_rec.trx_date, l_trh_rec.gl_date);
4846
4847 /*-----------------------------------------------+
4848 | Put the Remittance tags |
4849 | on the BR Payment Schedule |
4850 +-----------------------------------------------*/
4851
4852 AR_BILLS_MAINTAIN_LIB_PVT.update_reserved_columns (l_ps_rec.payment_schedule_id, 'REMITTANCE' , l_trx_rec.remittance_batch_id);
4853
4854
4855 ELSIF (l_trh_prev_rec.status = C_ENDORSED)
4856 THEN
4857
4858 /*----------------------------------------------+
4859 | Reverse the adjustment created during |
4860 | endorsement and create a new unapproved |
4861 | adjustment |
4865
4862 +-----------------------------------------------*/
4863
4864 AR_BILLS_MAINTAIN_LIB_PVT.Find_Last_Adjustment (l_trh_rec.customer_trx_id, l_adj_id);
4866 SELECT receivables_trx_id
4867 INTO l_receivables_trx_id
4868 FROM ar_adjustments
4869 WHERE adjustment_id = l_adj_id;
4870
4871 AR_BILLS_MAINTAIN_LIB_PVT.Reverse_Adjustment (l_adj_id, l_trh_rec, C_RISK_UNELIMINATED);
4872
4873 AR_BILLS_MAINTAIN_LIB_PVT.Create_Adjustment (
4874 l_trh_rec ,
4875 p_customer_trx_id ,
4876 l_ps_rec ,
4877 l_ps_rec.amount_due_original ,
4878 l_receivables_trx_id ,
4879 'W' ,
4880 l_move_deferred_tax ,
4881 l_new_adj_id );
4882
4883 /*----------------------------------------------+
4884 | Updates the Payment Schedule of the BR |
4885 | with the Adjustment Information |
4886 +-----------------------------------------------*/
4887
4888 AR_BILLS_MAINTAIN_LIB_PVT.update_reserved_columns (l_ps_rec.payment_schedule_id, 'ADJUSTMENT', l_new_adj_id);
4889
4890
4891 END IF;
4892
4893
4894 /*----------------------------------------------+
4895 | Insert the Transaction History Record |
4896 +-----------------------------------------------*/
4897
4898 -- Fetch the new status and new event of the BR
4899
4900 AR_BILLS_MAINTAIN_STATUS_PUB.New_Status_Event (
4901 p_trx_rec => l_trx_rec ,
4902 p_action => l_action ,
4903 p_new_status => l_trh_rec.status,
4904 p_new_event => l_trh_rec.event );
4905
4906 l_trh_rec.transaction_history_id:= NULL ;
4907 l_trh_rec.postable_flag := 'N' ;
4908 l_trh_rec.current_accounted_flag:= 'N' ;
4909 l_trh_rec.current_record_flag := 'Y' ;
4910 l_trh_rec.prv_trx_history_id := NULL ;
4911 l_trh_rec.posting_control_id := -3 ;
4912 l_trh_rec.gl_posted_date := NULL ;
4913 l_trh_rec.first_posted_record_flag := 'N' ;
4914 l_trh_rec.created_from := 'ARBRMAIB' ;
4915 l_trh_rec.batch_id := NULL ;
4916
4917 arp_proc_transaction_history.insert_transaction_history (l_trh_rec ,
4918 l_trh_rec.transaction_history_id);
4919
4920
4921 /*-----------------------------------------------+
4922 | Output parameter |
4923 +------------------------------------------------*/
4924
4925 p_status := l_trh_rec.status ;
4926
4927
4928 /*-----------------------------------------------+
4929 | Standard check of p_commit |
4930 +-----------------------------------------------*/
4931
4932 IF FND_API.To_Boolean( p_commit )
4933 THEN
4934
4935 IF PG_DEBUG in ('Y', 'C') THEN
4936 arp_util.debug( 'committing');
4937 END IF;
4938 Commit;
4939 END IF;
4940
4941 IF PG_DEBUG in ('Y', 'C') THEN
4942 arp_util.debug('AR_BILLS_MAINTAIN_PUB.UnEliminate_Risk_BR ()- ');
4943 END IF;
4944
4945
4946 EXCEPTION
4947 WHEN FND_API.G_EXC_ERROR THEN
4948 IF PG_DEBUG in ('Y', 'C') THEN
4949 arp_util.debug( 'SQLCODE : ' || SQLCODE);
4950 arp_util.debug( 'SQLERRM : ' || SQLERRM);
4951 END IF;
4952 ROLLBACK TO UnEliminate_Risk_BR_PVT;
4953 x_return_status := FND_API.G_RET_STS_ERROR ;
4954 IF PG_DEBUG in ('Y', 'C') THEN
4955 arp_util.debug( 'Exception Error');
4956 END IF;
4957 RAISE;
4958
4959 WHEN FND_API.G_EXC_UNEXPECTED_ERROR THEN
4960 IF PG_DEBUG in ('Y', 'C') THEN
4961 arp_util.debug( 'SQLCODE : ' || SQLCODE);
4962 arp_util.debug( 'SQLERRM : ' || SQLERRM);
4963 END IF;
4964 ROLLBACK TO UnEliminate_Risk_BR_PVT;
4965 x_return_status := FND_API.G_RET_STS_UNEXP_ERROR ;
4966 IF PG_DEBUG in ('Y', 'C') THEN
4967 arp_util.debug( 'Exception Unexpected Error');
4968 END IF;
4969 RAISE;
4970
4971
4972 WHEN OTHERS THEN
4973 /*-------------------------------------------------------+
4974 | Handle application errors that result from trapable |
4975 | error conditions. The error messages have already |
4976 | been put on the error stack. |
4977 +-------------------------------------------------------*/
4978
4979 IF PG_DEBUG in ('Y', 'C') THEN
4980 arp_util.debug( 'SQLCODE : ' || SQLCODE);
4981 arp_util.debug( 'SQLERRM : ' || SQLERRM);
4982 END IF;
4983
4984 IF (SQLCODE = -20001)
4985 THEN
4986 ROLLBACK TO UnEliminate_Risk_BR_PVT;
4987 x_return_status := FND_API.G_RET_STS_ERROR ;
4988 RAISE;
4989 ELSE
4990 NULL;
4991 END IF;
4992
4993 ROLLBACK TO UnEliminate_Risk_BR_PVT;
4994 x_return_status := FND_API.G_RET_STS_UNEXP_ERROR ;
4995 RAISE;
4996
4997
4998 END UnEliminate_Risk_BR;
4999
5000
5001 /*==============================================================================+
5002 | PROCEDURE |
5003 | Exchange_BR |
5004 | |
5005 | DESCRIPTION |
5006 | Exchanges a BR for another |
5007 | |
5008 +==============================================================================*/
5009
5010
5014
5011 PROCEDURE Exchange_BR (
5012
5013 -- ***** Standard API parameters *****
5015 p_api_version IN NUMBER ,
5016 p_init_msg_list IN VARCHAR2 := FND_API.G_TRUE ,
5017 p_commit IN VARCHAR2 := FND_API.G_FALSE ,
5018 p_validation_level IN NUMBER := FND_API.G_VALID_LEVEL_FULL ,
5019 x_return_status OUT NOCOPY VARCHAR2 ,
5020 x_msg_count OUT NOCOPY NUMBER ,
5021 x_msg_data OUT NOCOPY VARCHAR2 ,
5022
5023 -- ***** Input parameters *****
5024
5025 p_customer_trx_id IN NUMBER ,
5026
5027 -- ***** Output parameters *****
5028
5029 p_new_customer_trx_id OUT NOCOPY NUMBER ,
5030 p_new_trx_number OUT NOCOPY VARCHAR2) IS
5031
5032
5033 l_api_name CONSTANT VARCHAR2(20) := 'Exchange_BR';
5034 l_api_version CONSTANT NUMBER := 1.0;
5035 l_trx_rec ra_customer_trx%ROWTYPE;
5036 l_trh_rec ar_transaction_history%ROWTYPE;
5037 l_ps_rec ar_payment_schedules%ROWTYPE;
5038 l_action_rec action_rec_type;
5039 l_status VARCHAR2(30);
5040 l_customer_trx_line_id ra_customer_trx_lines.customer_trx_line_id%TYPE;
5041 l_msg_count NUMBER;
5042 l_msg_data VARCHAR2(2000);
5043 l_return_status VARCHAR2(1);
5044
5045 l_action VARCHAR2(30) := C_EXCHANGE;
5046
5047 -- Added for bug # 2712726
5048 -- ORASHID
5049 --
5050 l_nocopy_payment_schedule_id ar_payment_schedules.payment_schedule_id%TYPE;
5051
5052 BEGIN
5053
5054 IF PG_DEBUG in ('Y', 'C') THEN
5055 arp_util.debug('AR_BILLS_MAINTAIN_PUB.Exchange_BR()+ ');
5056 END IF;
5057
5058 x_msg_count := NULL;
5059 x_msg_data := NULL;
5060
5061 /*-----------------------------------------------+
5062 | Standard start of API savepoint |
5063 +-----------------------------------------------*/
5064
5065 SAVEPOINT Exchange_BR_PVT;
5066
5067
5068 /*-----------------------------------------------+
5069 | Standard call to check for call compatibility |
5070 +-----------------------------------------------*/
5071
5072 IF NOT FND_API.Compatible_API_Call( l_api_version ,
5073 p_api_version ,
5074 l_api_name ,
5075 G_PKG_NAME )
5076 THEN
5077 RAISE FND_API.G_EXC_UNEXPECTED_ERROR;
5078 END IF;
5079
5080
5081 /*--------------------------------------------------------------+
5082 | Initialize message list if p_init_msg_list is set to TRUE |
5083 +--------------------------------------------------------------*/
5084
5085 IF FND_API.to_Boolean( p_init_msg_list ) THEN
5086 FND_MSG_PUB.initialize;
5087 END IF;
5088
5089
5090 /*-----------------------------------------------+
5091 | Initialize return status to SUCCESS |
5092 +-----------------------------------------------*/
5093
5094 x_return_status := FND_API.G_RET_STS_SUCCESS;
5095
5096
5097 /*-----------------------------------------------------------------------+
5098 | ============ START OF API BODY - EXCHANGE BR =================== |
5099 +-----------------------------------------------------------------------*/
5100
5101
5102 /*-----------------------------------------------+
5103 | Action Validation |
5104 +-----------------------------------------------*/
5105
5106
5107 AR_BILLS_MAINTAIN_STATUS_PUB.validate_actions (
5108 p_customer_trx_id => p_customer_trx_id ,
5109 p_complete_flag => C_ACTION_REC.complete_flag ,
5110 p_uncomplete_flag => C_ACTION_REC.uncomplete_flag ,
5111 p_accept_flag => C_ACTION_REC.accept_flag ,
5112 p_cancel_flag => C_ACTION_REC.cancel_flag ,
5113 p_select_remit_flag => C_ACTION_REC.select_remit_flag ,
5114 p_deselect_remit_flag => C_ACTION_REC.deselect_remit_flag,
5115 p_approve_remit_flag => C_ACTION_REC.approve_remit_flag ,
5116 p_hold_flag => C_ACTION_REC.hold_flag ,
5117 p_unhold_flag => C_ACTION_REC.unhold_flag ,
5118 p_recall_flag => C_ACTION_REC.recall_flag ,
5119 p_eliminate_flag => C_ACTION_REC.eliminate_flag ,
5120 p_uneliminate_flag => C_ACTION_REC.uneliminate_flag ,
5121 p_unpaid_flag => C_ACTION_REC.unpaid_flag ,
5122 p_protest_flag => C_ACTION_REC.protest_flag ,
5123 p_endorse_flag => C_ACTION_REC.endorse_flag ,
5124 p_restate_flag => C_ACTION_REC.restate_flag ,
5125 p_exchange_flag => C_ACTION_REC.exchange_flag ,
5126 p_delete_flag => C_ACTION_REC.delete_flag );
5127
5128
5129 -- Do not continue if the action is not allowed for the BR
5130
5131 ARP_CT_PKG.lock_fetch_p (l_trx_rec, p_customer_trx_id);
5132
5133 IF (C_ACTION_REC.exchange_flag <> 'Y')
5134 THEN
5135 IF PG_DEBUG in ('Y', 'C') THEN
5136 arp_util.debug( '>>>>>>>>>> The action ' || l_action || ' is not allowed on the BR ' || p_customer_trx_id);
5137 END IF;
5138 FND_MESSAGE.set_name ( 'AR', 'AR_BR_CANNOT_EXCHANGE' );
5139 FND_MESSAGE.set_token ( 'BRNUM' , l_trx_rec.trx_number);
5140 app_exception.raise_exception;
5141 END IF;
5142
5143
5144
5145 /*-----------------------------------------------+
5146 | Data preparation |
5147 +-----------------------------------------------*/
5148
5149 l_trh_rec.customer_trx_id := p_customer_trx_id;
5150 ARP_TRANSACTION_HISTORY_PKG.lock_fetch_f_trx_id (l_trh_rec);
5151
5152 AR_BILLS_CREATION_LIB_PVT.Get_Payment_Schedule_Id (p_customer_trx_id, l_ps_rec.payment_schedule_id);
5153
5157 l_nocopy_payment_schedule_id := l_ps_rec.payment_schedule_id;
5154 -- Modified for bug # 2712726
5155 -- ORASHID
5156 --
5158 arp_ps_pkg.fetch_p(l_nocopy_payment_schedule_id, l_ps_rec);
5159
5160 /*-----------------------------------------------+
5161 | Creation of the new BR |
5162 +------------------------------------------------*/
5163
5164 /* 5191632 - Added LE_ID and ORG_ID to create call */
5165
5166 AR_BILLS_CREATION_PUB.create_br_header (
5167
5168 p_api_version => 1.0 ,
5169 x_return_status => l_return_status ,
5170 p_init_msg_list => FND_API.G_TRUE ,
5171 x_msg_count => l_msg_count ,
5172 x_msg_data => l_msg_data ,
5173
5174 p_trx_number => NULL ,
5175 p_term_due_date => l_trx_rec.term_due_date ,
5176 p_batch_source_id => l_trx_rec.batch_source_id ,
5177 p_cust_trx_type_id => l_trx_rec.cust_trx_type_id ,
5178 p_invoice_currency_code => l_trx_rec.invoice_currency_code ,
5179 p_br_amount => l_ps_rec.amount_due_remaining ,
5180 p_trx_date => l_trx_rec.trx_date ,
5181 p_gl_date => l_trh_rec.gl_date ,
5182 p_drawee_id => l_trx_rec.drawee_id ,
5183 p_drawee_site_use_id => l_trx_rec.drawee_site_use_id ,
5184 p_drawee_contact_id => l_trx_rec.drawee_contact_id ,
5185 p_printing_option => l_trx_rec.printing_option ,
5186 p_comments => l_trx_rec.comments ,
5187 p_special_instructions => l_trx_rec.special_instructions ,
5188 p_drawee_bank_account_id => l_trx_rec.drawee_bank_account_id ,
5189 p_remittance_bank_account_id => l_trx_rec.remit_bank_acct_use_id,
5190 p_override_remit_account_flag => l_trx_rec.override_remit_account_flag,
5191 p_batch_id => l_trx_rec.batch_id ,
5192 p_doc_sequence_id => NULL ,
5193 p_doc_sequence_value => NULL ,
5194 p_created_from => 'ARBRMAIB' ,
5195 p_attribute_category => l_trx_rec.attribute_category ,
5196 p_attribute1 => l_trx_rec.attribute1 ,
5197 p_attribute2 => l_trx_rec.attribute2 ,
5198 p_attribute3 => l_trx_rec.attribute3 ,
5199 p_attribute4 => l_trx_rec.attribute4 ,
5200 p_attribute5 => l_trx_rec.attribute5 ,
5201 p_attribute6 => l_trx_rec.attribute6 ,
5202 p_attribute7 => l_trx_rec.attribute7 ,
5203 p_attribute8 => l_trx_rec.attribute8 ,
5204 p_attribute9 => l_trx_rec.attribute9 ,
5205 p_attribute10 => l_trx_rec.attribute10 ,
5206 p_attribute11 => l_trx_rec.attribute11 ,
5207 p_attribute12 => l_trx_rec.attribute12 ,
5208 p_attribute13 => l_trx_rec.attribute13 ,
5209 p_attribute14 => l_trx_rec.attribute14 ,
5210 p_attribute15 => l_trx_rec.attribute15 ,
5211 p_le_id => l_trx_rec.legal_entity_id,
5212 p_org_id => l_trx_rec.org_id,
5213 p_customer_trx_id => p_new_customer_trx_id ,
5214 p_new_trx_number => p_new_trx_number ,
5215 p_status => l_status );
5216
5217 IF (l_return_status <> 'S')
5218 THEN
5219 IF PG_DEBUG in ('Y', 'C') THEN
5220 arp_util.debug( '>>>>>>>>>> Problems during the creation of the new BR');
5221 arp_util.debug( 'l_msg_count : ' || l_msg_count);
5222 arp_util.debug( 'l_msg_data : ' || l_msg_data);
5223 END IF;
5224 RAISE API_exception;
5225 END IF;
5226
5227
5228 /*-----------------------------------------------+
5229 | Assign the old BR to the new BR |
5230 +------------------------------------------------*/
5231
5232 AR_BILLS_CREATION_PUB.create_br_assignment (
5233
5234 p_api_version => 1.0 ,
5235 p_init_msg_list => FND_API.G_TRUE ,
5236 p_commit => FND_API.G_FALSE ,
5237 p_validation_level => FND_API.G_VALID_LEVEL_FULL ,
5238 x_return_status => l_return_status ,
5239 x_msg_count => l_msg_count ,
5240 x_msg_data => l_msg_data ,
5241
5242 p_customer_trx_id => p_new_customer_trx_id ,
5243 p_br_ref_payment_schedule_id => l_ps_rec.payment_schedule_id,
5244 p_assigned_amount => l_ps_rec.amount_due_remaining,
5245 p_attribute_category => NULL ,
5249 p_attribute4 => NULL ,
5246 p_attribute1 => NULL ,
5247 p_attribute2 => NULL ,
5248 p_attribute3 => NULL ,
5250 p_attribute5 => NULL ,
5251 p_attribute6 => NULL ,
5252 p_attribute7 => NULL ,
5253 p_attribute8 => NULL ,
5254 p_attribute9 => NULL ,
5255 p_attribute10 => NULL ,
5256 p_attribute11 => NULL ,
5257 p_attribute12 => NULL ,
5258 p_attribute13 => NULL ,
5259 p_attribute14 => NULL ,
5260 p_attribute15 => NULL ,
5261 p_customer_trx_line_id => l_customer_trx_line_id);
5262
5263 IF (l_return_status <> 'S')
5264 THEN
5265 IF PG_DEBUG in ('Y', 'C') THEN
5266 arp_util.debug( '>>>>>>>>>> Problems during the assignment of the exchanged BR to the new BR');
5267 arp_util.debug( 'l_msg_count : ' || l_msg_count);
5268 arp_util.debug( 'l_msg_data : ' || l_msg_data);
5269 END IF;
5270 RAISE API_exception;
5271 END IF;
5272
5273
5274
5275 /*-----------------------------------------------+
5276 | Update the event of the new BR created |
5277 +------------------------------------------------*/
5278
5279 l_trh_rec.customer_trx_id := p_new_customer_trx_id;
5280 ARP_TRANSACTION_HISTORY_PKG.lock_fetch_f_trx_id (l_trh_rec);
5281
5282 l_trh_rec.event := 'EXCHANGED';
5283
5284 ARP_PROC_TRANSACTION_HISTORY.update_transaction_history (l_trh_rec,
5285 l_trh_rec.transaction_history_id);
5286
5287
5288 /*-----------------------------------------------+
5289 | Standard check of p_commit |
5290 +-----------------------------------------------*/
5291
5292 IF FND_API.To_Boolean( p_commit )
5293 THEN
5294 IF PG_DEBUG in ('Y', 'C') THEN
5295 arp_util.debug( 'committing');
5296 END IF;
5297 Commit;
5298 END IF;
5299
5300 IF PG_DEBUG in ('Y', 'C') THEN
5301 arp_util.debug('AR_BILLS_MAINTAIN_PUB.Exchange_BR()- ');
5302 END IF;
5303
5304
5305 EXCEPTION
5306 WHEN API_exception THEN
5307 ROLLBACK TO Exchange_BR_PVT;
5308 x_return_status := FND_API.G_RET_STS_ERROR ;
5309 IF PG_DEBUG in ('Y', 'C') THEN
5310 arp_util.debug ('API Exception : AR_BILLS_MAINTAIN_PUB.Exchange_BR : ' || SQLERRM);
5311 END IF;
5312 RAISE;
5313
5314 WHEN FND_API.G_EXC_ERROR THEN
5315 IF PG_DEBUG in ('Y', 'C') THEN
5316 arp_util.debug( 'SQLCODE : ' || SQLCODE);
5317 arp_util.debug( 'SQLERRM : ' || SQLERRM);
5318 END IF;
5319 ROLLBACK TO Exchange_BR_PVT;
5320 x_return_status := FND_API.G_RET_STS_ERROR ;
5321 IF PG_DEBUG in ('Y', 'C') THEN
5322 arp_util.debug( 'Exception Error');
5323 END IF;
5324 RAISE;
5325
5326
5327 WHEN FND_API.G_EXC_UNEXPECTED_ERROR THEN
5328 IF PG_DEBUG in ('Y', 'C') THEN
5329 arp_util.debug( 'SQLCODE : ' || SQLCODE);
5330 arp_util.debug( 'SQLERRM : ' || SQLERRM);
5331 END IF;
5332 ROLLBACK TO Exchange_BR_PVT;
5333 x_return_status := FND_API.G_RET_STS_UNEXP_ERROR ;
5334 IF PG_DEBUG in ('Y', 'C') THEN
5335 arp_util.debug( 'Exception Unexpected Error');
5336 END IF;
5337 RAISE;
5338
5339
5340 WHEN OTHERS THEN
5341 /*-------------------------------------------------------+
5342 | Handle application errors that result from trapable |
5343 | error conditions. The error messages have already |
5344 | been put on the error stack. |
5345 +-------------------------------------------------------*/
5346
5347 IF PG_DEBUG in ('Y', 'C') THEN
5348 arp_util.debug( 'SQLCODE : ' || SQLCODE);
5349 arp_util.debug( 'SQLERRM : ' || SQLERRM);
5350 END IF;
5351
5352 IF (SQLCODE = -20001)
5353 THEN
5354 ROLLBACK TO Exchange_BR_PVT;
5355 x_return_status := FND_API.G_RET_STS_ERROR ;
5356 RAISE;
5357 ELSE
5358 NULL;
5359 END IF;
5360
5361 ROLLBACK TO Exchange_BR_PVT;
5362 x_return_status := FND_API.G_RET_STS_UNEXP_ERROR ;
5363 RAISE;
5364
5365 END Exchange_BR;
5366
5367
5368
5369
5370 /*===========================================================================+
5371 | FUNCTION |
5372 | revision |
5373 | |
5374 | DESCRIPTION |
5375 | This function returns the revision number of this package. |
5376 | |
5377 | SCOPE - PUBLIC |
5381 | MODIFICATION HISTORY |
5378 | |
5379 | RETURNS : Revision number of this package |
5380 | |
5382 | 10 JAN 2001 John HALL Created |
5383 +===========================================================================*/
5384
5385 FUNCTION revision RETURN VARCHAR2 IS
5386 BEGIN
5387 RETURN '$Revision: 120.11.12010000.4 $';
5388 END revision;
5389 --
5390
5391 END AR_BILLS_MAINTAIN_PUB;
5392