e-receipt fix for qr settlement
This commit is contained in:
parent
c96d68ff2f
commit
34b2fe8189
@ -297,11 +297,8 @@ public class QRSettlementTransactionFragment extends DataBindingFragment impleme
|
||||
}
|
||||
|
||||
private void navigateToResult() {
|
||||
|
||||
routeId = R.id.action_QRSettlementTransactionFragment_to_transactionResultFragment;
|
||||
safeNavigateToRouteId();
|
||||
|
||||
|
||||
}
|
||||
|
||||
private void processData() {
|
||||
@ -333,7 +330,8 @@ public class QRSettlementTransactionFragment extends DataBindingFragment impleme
|
||||
}
|
||||
}
|
||||
private void updateData() {
|
||||
EReceiptRequest request = EReceiptUtil.getInstance().generateMPUReceipt(sharedViewModel.payDetail.getValue());
|
||||
// EReceiptRequest request = EReceiptUtil.getInstance().generateMPUReceipt(sharedViewModel.payDetail.getValue());
|
||||
EReceiptRequest request = EReceiptUtil.getInstance().generateQRSettlement(sharedViewModel.payDetail.getValue());
|
||||
sharedViewModel.pushReceipt(request);
|
||||
}
|
||||
|
||||
|
||||
@ -92,8 +92,8 @@ public class SelectSettlementFragment extends DataBindingFragment implements Dat
|
||||
|
||||
public void onQRSettlement() {
|
||||
|
||||
if (TMSUtil.getInstance().checkParams().isStatus() == ValidityStatus.FAILURE) {
|
||||
showDeclineDialog(getResourceString(R.string.txt_please_download_config)+"\n"+TMSUtil.getInstance().checkParams().getMessage());
|
||||
if (TMSUtil.getInstance().checkQRParams().isStatus() == ValidityStatus.FAILURE) {
|
||||
showDeclineDialog(getResourceString(R.string.txt_please_download_config)+"\n"+TMSUtil.getInstance().checkQRParams().getMessage());
|
||||
} else if (!Connectivity.isConnectedWifi(getContext()) && !Connectivity.isConnectedMobile(getContext())) {
|
||||
showSingleInfoDialog(getResourceString(R.string.txt_please_enable_internet));
|
||||
} else {
|
||||
|
||||
@ -228,6 +228,81 @@ public class EReceiptUtil {
|
||||
return request;
|
||||
}
|
||||
|
||||
public EReceiptRequest generateQRSettlement(PayDetail payDetail) {
|
||||
|
||||
double realAmount = payDetail.getAmount() / 100.0;
|
||||
DecimalFormat df = new DecimalFormat("0.00");
|
||||
String amount = df.format(realAmount);
|
||||
|
||||
String currentTimeStamp = new java.text.SimpleDateFormat("MMddHHmmss", java.util.Locale.getDefault())
|
||||
.format(new java.util.Date());
|
||||
|
||||
String terminalId = SystemParamsOperation.getInstance().getTerminalIdForEreceipt();
|
||||
|
||||
EReceiptRequest request = new EReceiptRequest();
|
||||
request.setDE3(convertTransactionType(payDetail.getTransactionType()));
|
||||
request.setDE7(currentTimeStamp);
|
||||
request.setDE11(payDetail.getVoucherNo());
|
||||
String hostId = SystemParamsOperation.getInstance().getSecHostId();
|
||||
request.setHostId(hostId);
|
||||
request.setTerminalId(terminalId);//terminalId is not tid
|
||||
request.setShortCode(qrMerchantId);
|
||||
|
||||
if(payDetail.getTransactionType() == TransactionsType.SETTLEMENT.value) {
|
||||
SettleData settleData = payDetail.getSettleDataObj();
|
||||
|
||||
long totalAmt = settleData.getSaleAmount() + settleData.getRefundAmount() + settleData.getPreAuthCompAmount() + settleData.getCashAdvanceAmount();
|
||||
double realTotalAmount = totalAmt / 100.0;
|
||||
String totalAmount = df.format(realTotalAmount);
|
||||
request.setDE4(totalAmount);
|
||||
|
||||
|
||||
request.setDE63_01(settleData.getSaleCount()+"");
|
||||
request.setDE63_02(settleData.getSaleAmount()+"");
|
||||
request.setDE63_03(settleData.getRefundCount()+"");
|
||||
request.setDE63_04(settleData.getRefundAmount()+"");
|
||||
request.setDE63_05(settleData.getPreAuthCompCount()+"");
|
||||
request.setDE63_06(settleData.getPreAuthCompAmount()+"");
|
||||
request.setDE63_07(settleData.getCashAdvanceCount()+"");
|
||||
request.setDE63_08(settleData.getCashAdvanceAmount()+"");
|
||||
invoiceNo = SystemParamsOperation.getInstance().getIncrementInvoiceNum();
|
||||
request.setBatchNumber(batchNumber);
|
||||
request.setInvoiceNumber(invoiceNo);
|
||||
request.setDescription("success");
|
||||
request.setDE39("A");
|
||||
request.setDE37("0000");
|
||||
request.setDE49("MMK");
|
||||
} else {
|
||||
request.setDE2(POSUtil.getInstance().getCardNumMasking(payDetail.getCardNo()));
|
||||
|
||||
request.setDE4(amount);
|
||||
|
||||
|
||||
request.setDE37(payDetail.getReferNo());
|
||||
request.setDE38(payDetail.getApprovalCode());
|
||||
// will check it later for currency code
|
||||
request.setDE49("MMK");
|
||||
request.setInvoiceNumber(payDetail.getInvoiceNo());
|
||||
request.setCardLabel("MPU");
|
||||
|
||||
if(payDetail.getTradeAnswerCode().equals("000") || payDetail.getTradeAnswerCode().equals("00") ) {
|
||||
|
||||
request.setDescription("success");
|
||||
request.setDE39("A");
|
||||
} else {
|
||||
request.setDescription(BaseErrorCode.getErrorMessage(payDetail.getTradeAnswerCode()));
|
||||
request.setDE39("E");
|
||||
}
|
||||
}
|
||||
request.setDE41(terminalId);
|
||||
request.setDE42(merchantId);
|
||||
|
||||
request.setSerial(serialNum);
|
||||
request.setAppId(packageName);
|
||||
|
||||
return request;
|
||||
}
|
||||
|
||||
public String convertTransactionType(int transactionType) {
|
||||
if(transactionType == TransactionsType.SALE.value) {
|
||||
return "S";
|
||||
|
||||
Loading…
Reference in New Issue
Block a user