362: OPEN c_get_batch_details;
363: FETCH c_get_batch_details INTO l_org_id,l_gl_date,l_settlement_date;
364: CLOSE c_get_batch_details;
365:
366: fun_net_util.Log_String(g_state_level,l_path,'Fetching ledger for org_id :'|| l_org_id);
367: MO_Utils.Get_Ledger_Info(
368: l_org_id,
369: l_ledger_id,
370: l_ledger_name);
372: /*SELECT set_of_books_id
373: INTO l_ledger_id
374: FROM hr_operating_units
375: WHERE organization_id = g_batch_details.org_id; */
376: fun_net_util.Log_String(g_state_level,l_path,'Ledger_id :'||l_ledger_id);
377: -- Bug: 8509936.
378: GL_PERIOD_STATUSES_PKG.get_period_by_date(
379: x_appln_id,
380: l_ledger_id,
384: x_closing_status,
385: x_period_year,
386: x_period_num,
387: x_period_type);
388: fun_net_util.Log_String(g_state_level,l_path,'After getting period status');
389: IF (x_period_name IS NULL and x_closing_status IS NULL) OR
390: x_closing_status not in ('O','F') THEN
391: x_return_status := FND_API.G_FALSE;
392: fun_net_util.Log_String(g_state_level,l_path,'Period not open');
388: fun_net_util.Log_String(g_state_level,l_path,'After getting period status');
389: IF (x_period_name IS NULL and x_closing_status IS NULL) OR
390: x_closing_status not in ('O','F') THEN
391: x_return_status := FND_API.G_FALSE;
392: fun_net_util.Log_String(g_state_level,l_path,'Period not open');
393: END IF;
394: EXCEPTION
395: WHEN OTHERS THEN
396: x_return_status := FND_API.G_FALSE;
445: SELECT GREATEST(SYSDATE,l_reversal_date) INTO l_reversal_date FROM dual; -- Bug # 9196412
446:
447:
448: /* Validate GL Period */
449: fun_net_util.Log_String(g_state_level,l_path,'Validating settlement period');
450: Validate_Settlement_Period(
451: x_appln_id => 200,
452: p_batch_id => p_batch_id,
453: p_reversal_date => l_reversal_date,
462:
463:
464: FOR ap_reverse_rec IN ap_reverse_cur(p_batch_id)
465: LOOP
466: fun_net_util.Log_String(g_state_level,l_path,'Reversing check for batch:'||p_batch_id);
467:
468: fun_net_util.Log_String(g_state_level,l_path,'Reversing check for check :'||ap_reverse_rec.check_id);
469:
470: AP_VOID_PKG.Ap_Reverse_Check(
464: FOR ap_reverse_rec IN ap_reverse_cur(p_batch_id)
465: LOOP
466: fun_net_util.Log_String(g_state_level,l_path,'Reversing check for batch:'||p_batch_id);
467:
468: fun_net_util.Log_String(g_state_level,l_path,'Reversing check for check :'||ap_reverse_rec.check_id);
469:
470: AP_VOID_PKG.Ap_Reverse_Check(
471: P_Check_Id => ap_reverse_rec.check_id,
472: P_Replace_Flag => 'N',
493: RETURN;
494: END IF;
495:
496: END LOOP;
497: fun_net_util.Log_String(g_state_level,l_path,'Successfully reversed AP invoices');
498: EXCEPTION
499: WHEN OTHERS THEN
500: x_return_status := FND_API.G_FALSE;
501: END reverse_ap_checks;
540:
541:
542: FOR ar_txn_rec IN ar_txn_cur(p_batch_id)
543: LOOP
544: fun_net_util.Log_String(g_state_level,l_path,'Reversing transactions for batch:'||p_batch_id);
545: l_reversal_date := ar_txn_rec.receipt_date;
546: IF TRUNC(SYSDATE) >= l_reversal_date THEN
547: l_reversal_date := TRUNC(SYSDATE);
548: END IF;
554: IF TRUNC(SYSDATE) >= l_reverse_gl_date THEN
555: l_reverse_gl_date := TRUNC(SYSDATE);
556: END IF;
557:
558: fun_net_util.Log_String(g_state_level,l_path,'Validating AR period');
559: Validate_Settlement_Period(
560: x_appln_id => 222,
561: p_batch_id => p_batch_id,
562: p_reversal_date => l_reverse_gl_date, -- Bug # 9196412
591: FND_MSG_PUB.Count_And_Get (
592: p_count => l_msg_count,
593: p_data => l_msg_data );
594:
595: fun_net_util.Log_String(g_event_level,l_path
596: ,'apply cash receipt package after AR_RECEIPT_API_PUB.Reverse:' ||l_msg_data);
597:
598: IF l_msg_count > 1 THEN
599:
601:
602: FOR x IN 1..l_msg_count LOOP
603:
604: l_msg_data := fnd_msg_pub.get(p_encoded => fnd_api.g_false);
605: fun_net_util.Log_String(g_event_level,l_path
606: ,'Reverse package Error message AR_RECEIPT_API_PUB.Reverse' ||l_msg_data||' '||' '||x);
607:
608: END LOOP;
609:
609:
610:
611: END IF;
612: IF l_return_status = FND_API.G_RET_STS_ERROR THEN
613: fun_net_util.Log_String(g_state_level,l_path,'Error in reversing AR transactions');
614: x_return_status := FND_API.G_FALSE;
615: RETURN;
616: END IF;
617: END LOOP;
614: x_return_status := FND_API.G_FALSE;
615: RETURN;
616: END IF;
617: END LOOP;
618: fun_net_util.Log_String(g_state_level,l_path,'Successfully reversed AR transactions');
619: EXCEPTION
620: WHEN OTHERS THEN
621: x_return_status := FND_API.G_FALSE;
622:
685: g_login_id := fnd_global.login_id;
686:
687: -- **** Standard start of API savepoint ****
688: SAVEPOINT reverse_net_batch_SP;
689: fun_net_util.Log_String(g_state_level,l_path,'Set the savepoint');
690: -- **** Initialize message list if p_init_msg_list is set to TRUE. ****
691: IF FND_API.to_Boolean( p_init_msg_list ) THEN
692: FND_MSG_PUB.initialize;
693: END IF;
709: RAISE FND_API.G_EXC_ERROR;
710: END IF;
711:
712: /* Check the batch status before reversing */
713: fun_net_util.Log_String(g_state_level,l_path,'Validating batch status');
714: Validate_Batch_Status(
715: p_mode => 'REVERSE',
716: p_batch_id => p_batch_id,
717: x_return_status => l_return_status);
720: RAISE FND_API.G_EXC_ERROR;
721: END IF;
722:
723: /* Update Batch Status to Reversing */
724: fun_net_util.Log_String(g_state_level,l_path,'Updating batch status');
725: IF NOT FUN_NET_ARAP_PKG.update_batch_status('REVERSING') THEN
726: RAISE FND_API.G_EXC_ERROR;
727: END IF;
728:
726: RAISE FND_API.G_EXC_ERROR;
727: END IF;
728:
729: /* Reverse the Checks for the AP Invoices in the given batch */
730: fun_net_util.Log_String(g_state_level,l_path,'Reversing AP checks');
731: reverse_ap_checks(
732: p_batch_id => p_batch_id,
733: x_return_status => l_return_status);
734:
736: RAISE FND_API.G_EXC_ERROR;
737: END IF;
738:
739: /* Reverse the Receipts created for the AR Txns in the batch */
740: fun_net_util.Log_String(g_state_level,l_path,'Reversing AR receipts');
741: reverse_ar_receipts(
742: p_batch_id => p_batch_id,
743: x_return_status => l_return_status);
744:
746: RAISE FND_API.G_EXC_ERROR;
747: END IF;
748:
749: /* Update Agreement Status */
750: fun_net_util.Log_String(g_state_level,l_path,'Get agreement');
751: get_agreement(
752: p_batch_id => p_batch_id,
753: x_agreement_id => l_agreement_id,
754: x_return_status => l_return_status);
755:
756: IF l_return_status = FND_API.G_FALSE THEN
757: RAISE FND_API.G_EXC_ERROR;
758: END IF;
759: fun_net_util.Log_String(g_state_level,l_path,'Updating agreement status to N');
760: FUN_NET_ARAP_PKG.Set_Agreement_Status(
761: x_batch_id => p_batch_id,
762: x_agreement_id => l_agreement_id,
763: x_mode => 'UNSET',
766: IF l_return_status = FND_API.G_FALSE THEN
767: RAISE FND_API.G_EXC_ERROR;
768: END IF;
769: /* Update Amounts */
770: fun_net_util.Log_String(g_state_level,l_path,'Updating batch amounts');
771: Update_amounts(
772: p_batch_id => p_batch_id,
773: x_return_status => l_return_status);
774:
776: RAISE FND_API.G_EXC_ERROR;
777: END IF;
778:
779: /* Update Batch Status */
780: fun_net_util.Log_String(g_state_level,l_path,'Updating batch status to REVERSED');
781: UPDATE fun_net_batches
782: SET batch_status_code = 'REVERSED'
783: WHERE batch_id = p_batch_id;
784:
791: IF FND_API.To_Boolean( p_commit ) THEN
792: COMMIT WORK;
793:
794: END IF;
795: fun_net_util.Log_String(g_state_level,l_path,'Successfully batch reversal');
796: EXCEPTION
797: WHEN FND_API.G_EXC_ERROR THEN
798: ROLLBACK TO Reverse_net_batch_SP;
799: x_return_status := FND_API.G_RET_STS_ERROR;