new fields in e-receipt
This commit is contained in:
parent
9a55fadcf0
commit
6cd27b6482
@ -20,8 +20,10 @@ import com.utsmyanmar.baselib.network.model.e_receipt.EReceiptRequest;
|
|||||||
import com.utsmyanmar.baselib.util.DataBindingConfig;
|
import com.utsmyanmar.baselib.util.DataBindingConfig;
|
||||||
import com.utsmyanmar.baselib.util.TimeoutCallback;
|
import com.utsmyanmar.baselib.util.TimeoutCallback;
|
||||||
import com.utsmyanmar.paylibs.model.TradeData;
|
import com.utsmyanmar.paylibs.model.TradeData;
|
||||||
|
import com.utsmyanmar.paylibs.print.PrintUtils;
|
||||||
import com.utsmyanmar.paylibs.reversal.ReversalAction;
|
import com.utsmyanmar.paylibs.reversal.ReversalAction;
|
||||||
import com.utsmyanmar.paylibs.reversal.ReversalListener;
|
import com.utsmyanmar.paylibs.reversal.ReversalListener;
|
||||||
|
import com.utsmyanmar.paylibs.system.BaseErrorCode;
|
||||||
import com.utsmyanmar.paylibs.utils.core_utils.SystemParamsOperation;
|
import com.utsmyanmar.paylibs.utils.core_utils.SystemParamsOperation;
|
||||||
import com.utsmm.kbz.BR;
|
import com.utsmm.kbz.BR;
|
||||||
import com.utsmm.kbz.R;
|
import com.utsmm.kbz.R;
|
||||||
@ -316,6 +318,18 @@ public class ProcessingFragment extends DataBindingFragment {
|
|||||||
safeNavigateToRouteId();
|
safeNavigateToRouteId();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
private void handleAfterTransaction() {
|
||||||
|
if (SystemParamsOperation.getInstance().getDemoStatus()) {
|
||||||
|
delayFunctionCall(() -> {
|
||||||
|
sharedViewModel.dismissLoadingMsg();
|
||||||
|
callNextScreen();
|
||||||
|
}, 1500);
|
||||||
|
} else {
|
||||||
|
sharedViewModel.dismissLoadingMsg();
|
||||||
|
callNextScreen();
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
private void observeData(ProcessingTransaction processingTransaction) {
|
private void observeData(ProcessingTransaction processingTransaction) {
|
||||||
|
|
||||||
processingTransaction.getTransStatus().observe(getViewLifecycleOwner(), transResultStatus -> {
|
processingTransaction.getTransStatus().observe(getViewLifecycleOwner(), transResultStatus -> {
|
||||||
@ -327,9 +341,13 @@ public class ProcessingFragment extends DataBindingFragment {
|
|||||||
|
|
||||||
switch (transResultStatus) {
|
switch (transResultStatus) {
|
||||||
case FAIL:
|
case FAIL:
|
||||||
sharedViewModel.pushReceipt(buildEReceiptCardReceipt(payDetail, false, "FAILED"));
|
sharedViewModel.pushReceipt(buildEReceiptCardReceipt(payDetail, false, BaseErrorCode.getCode(payDetail.getTradeAnswerCode())));
|
||||||
|
handleAfterTransaction();
|
||||||
|
break;
|
||||||
case SUCCESS:
|
case SUCCESS:
|
||||||
sharedViewModel.pushReceipt(buildEReceiptCardReceipt(payDetail, true, "SUCCESS"));
|
sharedViewModel.pushReceipt(buildEReceiptCardReceipt(payDetail, true, BaseErrorCode.getCode(payDetail.getTradeAnswerCode())));
|
||||||
|
handleAfterTransaction();
|
||||||
|
break;
|
||||||
case OFFLINE_SUCCESS:
|
case OFFLINE_SUCCESS:
|
||||||
if(SystemParamsOperation.getInstance().getDemoStatus()) {
|
if(SystemParamsOperation.getInstance().getDemoStatus()) {
|
||||||
delayFunctionCall(()->{
|
delayFunctionCall(()->{
|
||||||
@ -346,7 +364,7 @@ public class ProcessingFragment extends DataBindingFragment {
|
|||||||
|
|
||||||
break;
|
break;
|
||||||
case OFFLINE_FAILURE:
|
case OFFLINE_FAILURE:
|
||||||
sharedViewModel.pushReceipt(buildEReceiptCardReceipt(payDetail, false, "FAILED"));
|
sharedViewModel.pushReceipt(buildEReceiptCardReceipt(payDetail, false, BaseErrorCode.getCode(payDetail.getTradeAnswerCode())));
|
||||||
sharedViewModel.dismissLoadingMsg();
|
sharedViewModel.dismissLoadingMsg();
|
||||||
sharedViewModel.set_errorFragmentMsg(getResourceString(R.string.txt_offline_failure));
|
sharedViewModel.set_errorFragmentMsg(getResourceString(R.string.txt_offline_failure));
|
||||||
navigateToError();
|
navigateToError();
|
||||||
@ -509,6 +527,16 @@ public class ProcessingFragment extends DataBindingFragment {
|
|||||||
default: return currency; // Already alphabetic? return as-is
|
default: return currency; // Already alphabetic? return as-is
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
private String formatDE43(String value) {
|
||||||
|
if (value == null) value = "";
|
||||||
|
|
||||||
|
if (value.length() > 40) {
|
||||||
|
return value.substring(0, 40);
|
||||||
|
}
|
||||||
|
|
||||||
|
return String.format("%-40s", value); // right pad with space
|
||||||
|
}
|
||||||
private EReceiptCardRequest buildEReceiptCardReceipt(PayDetail payDetail, boolean isSuccess, String reason){
|
private EReceiptCardRequest buildEReceiptCardReceipt(PayDetail payDetail, boolean isSuccess, String reason){
|
||||||
//current timestamp
|
//current timestamp
|
||||||
String currentTimestamp = new java.text.SimpleDateFormat(
|
String currentTimestamp = new java.text.SimpleDateFormat(
|
||||||
@ -526,16 +554,30 @@ public class ProcessingFragment extends DataBindingFragment {
|
|||||||
double realAmount = payDetail.getAmount() / 100.0;
|
double realAmount = payDetail.getAmount() / 100.0;
|
||||||
DecimalFormat df = new DecimalFormat("0.00");
|
DecimalFormat df = new DecimalFormat("0.00");
|
||||||
String amount = df.format(realAmount);
|
String amount = df.format(realAmount);
|
||||||
|
|
||||||
|
String rawName = PrintUtils.getInstance()
|
||||||
|
.getCardHolderName(payDetail.getCardHolderName());
|
||||||
|
|
||||||
|
String secondLine = PrintUtils.getInstance()
|
||||||
|
.processNameSpaceSecondLine(rawName);
|
||||||
|
|
||||||
|
String firstLine = PrintUtils.getInstance()
|
||||||
|
.processNameSpaceFirstLine(rawName, secondLine);
|
||||||
|
|
||||||
|
|
||||||
|
String cardHolderName = firstLine +
|
||||||
|
(secondLine.isEmpty() ? "" : " " + secondLine);
|
||||||
|
|
||||||
EReceiptCardRequest request = new EReceiptCardRequest();
|
EReceiptCardRequest request = new EReceiptCardRequest();
|
||||||
request.setDE2(payDetail.getCardNo());
|
request.setDE2(PrintUtils.getInstance().maskCardNumberPciDss(payDetail.getCardNo()));
|
||||||
request.setDE3(mapDE3ToShortCode(payDetail.getProcessCode()));
|
request.setDE3(mapDE3ToShortCode(payDetail.getProcessCode()));
|
||||||
request.setDE4(amount);
|
request.setDE4(amount);
|
||||||
request.setDE7(currentTimestamp);
|
request.setDE7(currentTimestamp);
|
||||||
request.setDE11(payDetail.getVoucherNo());
|
request.setDE11(payDetail.getVoucherNo());
|
||||||
request.setDE22(mapTransactionType(payDetail.getTransactionType()));
|
// request.setDE22(mapTransactionType(payDetail.getTransactionType()));
|
||||||
|
request.setDE22(PrintUtils.getInstance().getEntryType(payDetail.getCardType()));
|
||||||
request.setDE37(payDetail.getReferNo());
|
request.setDE37(payDetail.getReferNo());
|
||||||
request.setDE38(payDetail.getAuthNo());
|
request.setDE38(payDetail.getApprovalCode());
|
||||||
request.setDE39(isSuccess ? "A" : "E");
|
request.setDE39(isSuccess ? "A" : "E");
|
||||||
request.setDE41(terminalId);
|
request.setDE41(terminalId);
|
||||||
request.setDE42(merchantId);
|
request.setDE42(merchantId);
|
||||||
@ -544,6 +586,12 @@ public class ProcessingFragment extends DataBindingFragment {
|
|||||||
request.setInvoiceNumber(payDetail.getInvoiceNo());
|
request.setInvoiceNumber(payDetail.getInvoiceNo());
|
||||||
request.setAppId(appId);
|
request.setAppId(appId);
|
||||||
request.setDescription(reason);
|
request.setDescription(reason);
|
||||||
|
request.setBatchNumber(payDetail.batchNo);
|
||||||
|
request.setDE55(payDetail.getAppLabel());
|
||||||
|
request.setCardLabel(payDetail.getAccountType());
|
||||||
|
request.setDE14(PrintUtils.getInstance().getFormatExpDate(payDetail.getEXPDate()));
|
||||||
|
request.setDE43(formatDE43(cardHolderName));
|
||||||
|
request.setDE48(payDetail.getAID());
|
||||||
|
|
||||||
return request;
|
return request;
|
||||||
}
|
}
|
||||||
|
|||||||
@ -18,10 +18,19 @@ public class EReceiptCardRequest {
|
|||||||
private String DE11;
|
private String DE11;
|
||||||
private String description;
|
private String description;
|
||||||
private String DE38;
|
private String DE38;
|
||||||
|
private String batchNumber;
|
||||||
|
private String DE55;
|
||||||
|
private String DE14;
|
||||||
|
private String cardLabel;
|
||||||
|
private String DE43;
|
||||||
|
private String DE48;
|
||||||
|
|
||||||
public EReceiptCardRequest() {}
|
public EReceiptCardRequest() {}
|
||||||
|
|
||||||
// GETTERS
|
// GETTERS
|
||||||
|
public String getDE14(){ return DE14;}
|
||||||
|
public String getCardLabel(){ return cardLabel;}
|
||||||
|
public String getDE43(){return DE43;}
|
||||||
public String getDE3() {
|
public String getDE3() {
|
||||||
return DE3;
|
return DE3;
|
||||||
}
|
}
|
||||||
@ -61,6 +70,8 @@ public class EReceiptCardRequest {
|
|||||||
public String getAppId(){
|
public String getAppId(){
|
||||||
return appId;
|
return appId;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public String getDE55(){return DE55;}
|
||||||
|
|
||||||
public String getInvoiceNumber(){
|
public String getInvoiceNumber(){
|
||||||
return invoiceNumber;
|
return invoiceNumber;
|
||||||
@ -75,6 +86,7 @@ public class EReceiptCardRequest {
|
|||||||
public String getDE2(){ return DE2; }
|
public String getDE2(){ return DE2; }
|
||||||
public String getDE38(){ return DE38; }
|
public String getDE38(){ return DE38; }
|
||||||
public String getDE22(){ return DE22; }
|
public String getDE22(){ return DE22; }
|
||||||
|
public String getBatchNumber(){ return batchNumber; }
|
||||||
// SETTERS
|
// SETTERS
|
||||||
public void setDE3(String DE3) {
|
public void setDE3(String DE3) {
|
||||||
this.DE3 = DE3;
|
this.DE3 = DE3;
|
||||||
@ -132,4 +144,23 @@ public class EReceiptCardRequest {
|
|||||||
|
|
||||||
public void setDE38(String DE38){ this.DE38 = DE38; }
|
public void setDE38(String DE38){ this.DE38 = DE38; }
|
||||||
public void setDE22(String DE22){ this.DE22 = DE22; }
|
public void setDE22(String DE22){ this.DE22 = DE22; }
|
||||||
|
|
||||||
|
public void setBatchNumber(String batchNumber) {
|
||||||
|
this.batchNumber = batchNumber;
|
||||||
|
}
|
||||||
|
public void setDE55(String DE55){
|
||||||
|
this.DE55 = DE55;
|
||||||
|
}
|
||||||
|
public void setDE14(String DE14){
|
||||||
|
this.DE14 = DE14;
|
||||||
|
}
|
||||||
|
public void setCardLabel(String cardLabel){
|
||||||
|
this.cardLabel = cardLabel;
|
||||||
|
}
|
||||||
|
public void setDE43(String DE43){
|
||||||
|
this.DE43 = DE43;
|
||||||
|
}
|
||||||
|
public void setDE48(String DE48){
|
||||||
|
this.DE48 = DE48;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
Loading…
Reference in New Issue
Block a user