Professional Documents
Culture Documents
3 TD - R7 Postauth issue
Author: Creation Date Last Updated: Document Ref: Version: 1.2 08/31/2012 08/31/2012
Document Control..................................................................................3 Summary ...............................................................................................4 Root Cause.............................................................................................4 Proposed Design....................................................................................4 FD requirements ....................................................................................5 Technical Design....................................................................................6 Impact Analysis......................................................................................9 Issue Log..............................................................................................10 Glossary...............................................................................................10
Document Control
Change Record
Date Author Version Change Reference
Reviewers
Name Position Date
Approvals
Name Position Date
Distribution
Copy No. 1 Name Library Master Location
Summary
Req. Number 1 R/ D R Business Requirement The Credit Card pre-authorizations for a given ship set must post authorize for the sum of the copays up to the pre-authorization amount. Iris system must be able to reverse the unused preauthorized amount in a ship set. Send the reversed preauthorized to Trust Commerce to relieve the unused preauthorized amount. Order Payments value on sales order should reflect the amount that has been paid The Order Payment Form should show the audit trail of all reversals and postauths once postauth process is complete.
2 2.1 2.2 3
R R R R
Root Cause
Whenever we cancel a line from a ship set or change the line from one ship set to another ship set after the pre auth process is completed then we are encountering this issue as the total preauth amount for that ship set is not adjusted as per the changes done. So, We need to have a final check in Post Auth process to check if the actual copay amount and preauth amount are correct, if not then we need to make sure that we are doing Post Auth for correct amount and reverse the extra preauth amount.
Proposed Design
Post Authorization: As there is a possibility of copay amount could be less than pre-auth amount by time the workflow reached post-auth, we need to introduce a logic to do final validation in post-auth if pre-auth amount is not greater than copy amount, if so then it should adjust the pre-auth amount and post auth correct amount and reverse the extra pre-auth amount.
Sales Order Form(Order Payments): We need to change the logic in order payments form in SOF to show the pre-auth, post-auth, pre-auth reversals and pre-auth reversal failures so that the users will be able to see all the transactions.
FD requirements
Req. Number 1 R/ D R Business Requirement The Credit Card pre-authorizations for a given ship set must post authorize for the sum of the copays up to the pre-authorization amount. Iris system must be able to reverse the unused preauthorized amount in a ship set. Send the reversed preauthorized to Trust Commerce to relieve the unused preauthorized amount. Order Payments value on sales order should reflect the amount that has been paid The Order Payment Form should show the audit trail of all reversals and postauths once postauth process is complete.
2 2.1 2.2 3
R R R R
Technical Design
Post Auth Issue Changes:
Procedure: xxiris_om_order_validation_k.postauth_completion_p BEGIN --- get copay amount -x_copay_amt := xxiris_om_utility_k.get_total_copay_amount_f(p_header_id => p_x_header_id, p_ship_set_id => p_x_shipset_id); --- check if the pre auth amt is diff from copay amt, if so then do post auth for correct and reverse the remaining amt -FOR c_fetch_pa_amount IN c_get_pa_amount LOOP v_copay_remaining := x_copay_amt v_preauth_tot_amt; IF c_fetch_pa_amount.amount <= v_copay_remaining THEN --- collect the amount to do post auth -x_receipt_tbl(x_counter).receipt_trx_id := c_fetch_pa_amount.receipt_trx_id; x_receipt_tbl(x_counter).amount := c_fetch_pa_amount.amount; x_counter := x_counter + 1; ELSE IF v_copay_remaining > 0 THEN --- collect the correct amount for post auth -x_receipt_tbl(x_counter).receipt_trx_id := c_fetch_pa_amount.receipt_trx_id; x_receipt_tbl(x_counter).amount := v_copay_remaining; x_counter := x_counter + 1; --- reversal for the partial preauth -x_preauth_rev_tbl(x_rev_counter).receipt_trx_id := c_fetch_pa_amount.receipt_trx_id; x_preauth_rev_tbl(x_rev_counter).trustcommerce_trx_id := c_fetch_pa_amount.trustcommerce_trx_id; x_preauth_rev_tbl(x_rev_counter).cust_account_id := c_fetch_pa_amount.cust_account_id; x_preauth_rev_tbl(x_rev_counter).instrid := c_fetch_pa_amount.instrid; x_preauth_rev_tbl(x_rev_counter).amount := (c_fetch_pa_amount.amount v_copay_remaining); x_rev_counter := x_rev_counter + 1;
Release 2.3 TD - R7 Postauth issue
Page 6 of 10
ELSE --- reversal for complete preauth -x_preauth_rev_tbl(x_rev_counter).receipt_trx_id := c_fetch_pa_amount.receipt_trx_id; x_preauth_rev_tbl(x_rev_counter).trustcommerce_trx_id := c_fetch_pa_amount.trustcommerce_trx_id; x_preauth_rev_tbl(x_rev_counter).cust_account_id := c_fetch_pa_amount.cust_account_id; x_preauth_rev_tbl(x_rev_counter).instrid := c_fetch_pa_amount.instrid; x_preauth_rev_tbl(x_rev_counter).amount := c_fetch_pa_amount.amount; x_rev_counter := x_rev_counter + 1; END IF; END IF; v_preauth_tot_amt := v_preauth_tot_amt + c_fetch_pa_amount.amount; END LOOP; -- The OUT parameters received from calling PostAuth Transaction using RI.72 below are currently not being used. IF x_receipt_tbl.COUNT > 0 THEN -- Calling RI.72 for post Auth xxiris_ar_cc_processing_k.credit_card_processing_p(p_x_receipt_tbl => x_receipt_tbl, p_x_action => 'POSTAUTH', p_x_source => 'ORDER_VALIDATION', p_x_status_tbl => x_receipt_trx_tbl, p_x_status => x_status); p_x_status := x_status; --added by sree rama for HPSM IM10060517 to allow other payments to close with success status ELSE p_x_status := 'PASS'; END IF; --- check for pre auth reversals and do it only if post auth was succesful. -IF x_preauth_rev_tbl.COUNT > 0 AND p_x_status = 'PASS' THEN FOR i IN x_preauth_rev_tbl.FIRST .. x_preauth_rev_tbl.LAST LOOP xxiris_ar_cc_processing_k.cc_preauthreversal_p( p_x_header_id => p_x_header_id ,p_x_shipset_number => p_x_shipset_id ,p_x_cust_account_id => x_preauth_rev_tbl(i).cust_account_id ,p_receipt_trx_id => x_preauth_rev_tbl(i).receipt_trx_id
,p_x_preauth_trx_id => x_preauth_rev_tbl(i).trustcommerce_trx_id ,p_instrid => x_preauth_rev_tbl(i).instrid ,p_x_amount => x_preauth_rev_tbl(i).amount ,p_x_status => x_status); END LOOP; END IF; EXCEPTION WHEN OTHERS THEN xxiris_common_err_k.record_and_stop(procname_in => x_procname, err_msg_in => SQLERRM, attribute2_in => 'When Others - Post Auth Completion', attribute1_in => TO_CHAR(p_x_header_id)); END postauth_completion_p;
Impact Analysis
xxiris_om_order_validation_k.postauth_completion_p DIRECT IMPACTS : Post-Auth process INDIRECT IMPACTS : Ship Line orders
xxiris_ar_cc_processing_k.cc_preauth_reversal_p DIRECT IMPACTS : Post-Auth process INDIRECT IMPACTS : Ship Line orders
DIRECT IMPACTS
Testing Requirements
Condition number Condition Description Expected Result
Issue Log
Open Issues
Issue ID Description Resolution Responsibility Target Date Impact Date
Closed Issues
Issue ID Description Resolution Responsibility Target Date Impact Date
Glossary
TERM DEFINITION