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() {
|
private void navigateToResult() {
|
||||||
|
|
||||||
routeId = R.id.action_QRSettlementTransactionFragment_to_transactionResultFragment;
|
routeId = R.id.action_QRSettlementTransactionFragment_to_transactionResultFragment;
|
||||||
safeNavigateToRouteId();
|
safeNavigateToRouteId();
|
||||||
|
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
private void processData() {
|
private void processData() {
|
||||||
@ -333,7 +330,8 @@ public class QRSettlementTransactionFragment extends DataBindingFragment impleme
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
private void updateData() {
|
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);
|
sharedViewModel.pushReceipt(request);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@ -92,8 +92,8 @@ public class SelectSettlementFragment extends DataBindingFragment implements Dat
|
|||||||
|
|
||||||
public void onQRSettlement() {
|
public void onQRSettlement() {
|
||||||
|
|
||||||
if (TMSUtil.getInstance().checkParams().isStatus() == ValidityStatus.FAILURE) {
|
if (TMSUtil.getInstance().checkQRParams().isStatus() == ValidityStatus.FAILURE) {
|
||||||
showDeclineDialog(getResourceString(R.string.txt_please_download_config)+"\n"+TMSUtil.getInstance().checkParams().getMessage());
|
showDeclineDialog(getResourceString(R.string.txt_please_download_config)+"\n"+TMSUtil.getInstance().checkQRParams().getMessage());
|
||||||
} else if (!Connectivity.isConnectedWifi(getContext()) && !Connectivity.isConnectedMobile(getContext())) {
|
} else if (!Connectivity.isConnectedWifi(getContext()) && !Connectivity.isConnectedMobile(getContext())) {
|
||||||
showSingleInfoDialog(getResourceString(R.string.txt_please_enable_internet));
|
showSingleInfoDialog(getResourceString(R.string.txt_please_enable_internet));
|
||||||
} else {
|
} else {
|
||||||
|
|||||||
@ -228,6 +228,81 @@ public class EReceiptUtil {
|
|||||||
return request;
|
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) {
|
public String convertTransactionType(int transactionType) {
|
||||||
if(transactionType == TransactionsType.SALE.value) {
|
if(transactionType == TransactionsType.SALE.value) {
|
||||||
return "S";
|
return "S";
|
||||||
|
|||||||
Loading…
Reference in New Issue
Block a user