The following lines contain the word 'select', 'insert', 'update' or 'delete':
* Update: Credit memo handling is now performed at the calling
* application itself.
* - rameshsh, 3/29/2005
*/
--printDocsInPmtTab(l_docsInPmtTab);
* payments in the IBY_PAYMENTS_ALL table. Therefore, insert
* the payments from the PLSQL table into the
* IBY_PAYMENTS_ALL table.
*
* Central bank reporting could be implemented via a hook
* that is expecting payments to be populated in
* IBY_PAYMENTS_ALL table. Therefore, payments need to
* inserted before performing central bank reporting as well.
*/
IBY_PAYGROUP_PUB.insertPayments(l_paymentTab);
* Update the documents payable that are part of the created
* payments with payment ids.
*
* This is normally done in performDBUpdates(..) call at
* the end of this method. However, some customers might
* want to do custom validations on documents that are
* part of the created payments. Therefore, update the
* documents with payment ids before the payment validation
* call.
*
* We do this even before central bank reporting because
* again the customer could potentially want to retrieve
* documents that are part of the created payments in the
* central bank reporting hook.
*/
IBY_PAYGROUP_PUB.updateDocsWithPaymentID(l_docsInPmtTab);
* Update the payments table with audit data before
* calling central bank reporting or payment validations.
*
* This is because the customer could have implemented
* custom central bank reporting or custom payment
* validations that could depend upon the denormalized
* payment attributes being present in the the payments
* table.
*/
/*
* Fix for bug 5511781:
*
* Along with the payment we insert the audit data for the
* payment as well. These are denormalized data from payment
* related tables like payee, payer, payee bank, payer bank
* etc.
*
* This information is also used by the extract and format
* logic.
*/
IBY_PAYGROUP_PUB.auditPaymentData(l_paymentTab);
* update the payments in IBY_PAYMENTS_ALL table
* so that this flag is accessible for validation.
*/
IBY_PAYGROUP_PUB.updatePayments(l_paymentTab);
* The adjusted payments are read back and inserted into
* IBY_PAYMENTS_LL table.
*
* This is a general hook that is called for all other
* products except AP. For AP special hooks are called
* below.
*/
IF (l_ca_id <> 200) THEN
/*
* Only successful payments are passed to be passed to
* to the calling application via the hook / callout.
*
* From the existing list of all payments, create new data
* structures that only store successful payments. This
* 'success only' list of payments will be passed to the
* calling application.
*
* This method writes the payment data to global temp tables.
*/
IBY_PAYGROUP_PUB.performPreHookProcess(
l_ca_payreq_cd, l_ca_id, l_paymentTab,
l_docsInPmtTab, l_hookPaymentTab,
l_hookDocsInPmtTab);
* Similarly, update the documents table by providing a
* payment id to each document.
*/
performDBUpdates(p_payment_request_id, l_rejection_level,
l_review_pmts_flag, p_override_complete_point,
l_paymentTab, l_docsInPmtTab, l_all_pmts_success_flag,
l_all_pmts_failed_flag, x_return_status,
l_docErrorTab, l_docTokenTab
);
| performDBUpdates
|
| PURPOSE:
| This is the top level method that is called by the
| payment creation program to:
| 1. insert payments to DB
| 2. update documents with payment id
| 3. update status of payment request
|
| This method will read the 'rejection level' system option
| and do updates accordingly.
|
| PARAMETERS:
| IN
|
|
| OUT
|
|
| RETURNS:
|
|
| NOTES:
|
*---------------------------------------------------------------------*/
PROCEDURE performDBUpdates(
p_payreq_id IN IBY_PAY_SERVICE_REQUESTS.
payment_service_request_id%type,
p_rej_level IN VARCHAR2,
p_review_pmts_flag IN VARCHAR2,
p_override_compl_pt IN VARCHAR2,
x_paymentTab IN OUT NOCOPY IBY_PAYGROUP_PUB.paymentTabType,
x_docsInPmtTab IN OUT NOCOPY IBY_PAYGROUP_PUB.docsInPaymentTabType,
x_allPmtsSuccessFlag IN OUT NOCOPY BOOLEAN,
x_allPmtsFailedFlag IN OUT NOCOPY BOOLEAN,
x_return_status IN OUT NOCOPY VARCHAR2,
x_docErrorTab IN OUT NOCOPY IBY_VALIDATIONSETS_PUB.
docErrorTabType,
x_errTokenTab IN OUT NOCOPY IBY_VALIDATIONSETS_PUB.
trxnErrTokenTabType
)
IS
l_module_name VARCHAR2(200) := G_PKG_NAME || '.performDBUpdates';
* Update the status of the payments/documents
* as per the rejection level (if necessary).
*/
IF (p_rej_level = REJ_LVL_REQUEST) THEN
IF (l_allsuccess_flag = FALSE) THEN
/*
* This means that at least one payment in this
* payment request has failed.
*
* For 'request' rejection level:
* If any payment in the request fails validation,
* the entire payment request should be rejected;
* an error record and insert this record
* into the errors table.
*/
IBY_BUILD_UTILS_PKG.createErrorRecord(
TRXN_TYPE_PMT,
x_paymentTab(i).payment_id,
x_paymentTab(i).payment_status,
NULL,
x_paymentTab(i).payment_id,
NULL,
NULL,
NULL,
NULL,
NULL,
l_doc_err_rec,
x_errTokenTab,
l_triggering_pmt_id
);
IBY_VALIDATIONSETS_PUB.insertIntoErrorTable(
l_doc_err_rec, x_docErrorTab, x_errTokenTab);
IBY_PAYGROUP_PUB.updatePayments(x_paymentTab);
* Update the documents table by providing a payment id to
* each document.
*/
IBY_PAYGROUP_PUB.updateDocsWithPaymentID(x_docsInPmtTab);
IBY_VALIDATIONSETS_PUB.insert_transaction_errors('N', x_docErrorTab,
x_errTokenTab);
* Update the status of the payment request.
*/
print_debuginfo(l_module_name, 'Updating status of payment request '
|| p_payreq_id || ' to ' || l_request_status || '.');
UPDATE
IBY_PAY_SERVICE_REQUESTS
SET
payment_service_request_status = l_request_status
WHERE
payment_service_request_id = p_payreq_id
;
END performDBUpdates;
x_paymentTab(i).last_updated_by := fnd_global.user_id;
x_paymentTab(i).last_update_login := fnd_global.user_id;
x_paymentTab(i).last_update_date := sysdate;
* an error record and insert this record
* into the errors table.
*/
IBY_BUILD_UTILS_PKG.createPmtErrorRecord(
x_paymentTab(i).payment_id,
x_paymentTab(i).payment_status,
l_error_code,
FND_MESSAGE.get,
l_doc_err_rec
);
IBY_VALIDATIONSETS_PUB.insertIntoErrorTable(
l_doc_err_rec, x_docErrorTab, x_errTokenTab);