integrated E-Receipt for card transactions and
fixed some other issues
This commit is contained in:
parent
1ac8c14b09
commit
aa37e14ea4
File diff suppressed because one or more lines are too long
@ -224,8 +224,9 @@ public class InputRRNFragment extends DataBindingFragment {
|
||||
newPay.setReferNo(rrnNo);
|
||||
if(sharedViewModel.getTransMenu().getValue() == TransMenu.PRE_AUTH_FULL_VOID) {
|
||||
newPay.setAmount(payDetail.getAmount());
|
||||
}
|
||||
|
||||
}
|
||||
sharedViewModel.setAmount(POSUtil.getInstance().getDecimalAmountFormat(payDetail.getAmount()));
|
||||
newPay.setTradeDateTime(payDetail.getTradeDateTime());
|
||||
|
||||
if(isEmvTrans()) {
|
||||
|
||||
@ -299,7 +299,7 @@ public class InputTraceNoFragment extends DataBindingFragment {
|
||||
|
||||
if(sharedViewModel.hostType.getValue() == HostType.MPU) {
|
||||
sharedViewModel.isEmv.setValue(false);
|
||||
transProcessViewModel.transType.postValue(sharedViewModel.transactionsType.getValue());
|
||||
transProcessViewModel.transType.setValue(sharedViewModel.transactionsType.getValue());
|
||||
transProcessViewModel.setOldTransPayDetail(payDetail);
|
||||
transProcessViewModel.setPayDetail(payDetail);
|
||||
} else {
|
||||
|
||||
@ -130,18 +130,19 @@ public class ProcessingCardFragment extends DataBindingFragment {
|
||||
public void onSuccess(CardDataX cardDataX) {
|
||||
|
||||
routeId = R.id.action_processingCardFragment_to_pinPadFragment;
|
||||
transProcessViewModel.transType.postValue(sharedViewModel.transactionsType.getValue());
|
||||
pinPadViewModel.transType.postValue(sharedViewModel.transactionsType.getValue());
|
||||
transProcessViewModel.transType.setValue(sharedViewModel.transactionsType.getValue());
|
||||
pinPadViewModel.transType.setValue(sharedViewModel.transactionsType.getValue());
|
||||
|
||||
TradeData tradeData = TransactionUtil.getInstance().initMPUTransaction(cardDataX, CardTypeX.IC);
|
||||
transProcessViewModel.setTradeData(tradeData);
|
||||
pinPadViewModel.setTradeData(tradeData);
|
||||
|
||||
if(sharedViewModel.getTransMenu().getValue() == TransMenu.PRE_AUTH_PARTIAL_VOID ) {
|
||||
if(sharedViewModel.getTransactionsType().getValue() == TransactionsType.PRE_AUTH_VOID ) {
|
||||
|
||||
sharedViewModel.set_errorFragmentMsg(getResourceString(R.string.txt_function_not_supported));
|
||||
sharedViewModel.set_errorFragmentMsg(getResourceString(R.string.txt_alert_pre_auth_cancel));
|
||||
routeId = R.id.action_processingCardFragment_to_errorFragment;
|
||||
|
||||
safeNavigateToRouteId();
|
||||
return;
|
||||
}
|
||||
// else if(sharedViewModel.transactionsType.getValue() == TransactionsType.REFUND) {
|
||||
// sharedViewModel.set_errorFragmentMsg(getResourceString(R.string.txt_card_not_supported));
|
||||
@ -182,7 +183,7 @@ public class ProcessingCardFragment extends DataBindingFragment {
|
||||
// pin required scenario
|
||||
|
||||
routeId = R.id.action_processingCardFragment_to_pinPadFragment;
|
||||
transProcessViewModel.transType.postValue(sharedViewModel.transactionsType.getValue());
|
||||
transProcessViewModel.transType.setValue(sharedViewModel.transactionsType.getValue());
|
||||
pinPadViewModel.transType.postValue(sharedViewModel.transactionsType.getValue());
|
||||
|
||||
/* need to check card scheme according to card number --!^--- check below function*/
|
||||
@ -207,10 +208,11 @@ public class ProcessingCardFragment extends DataBindingFragment {
|
||||
}
|
||||
|
||||
|
||||
if(sharedViewModel.getTransMenu().getValue() == TransMenu.PRE_AUTH_PARTIAL_VOID ) {
|
||||
// sharedViewModel.transMenu.postValue(null);
|
||||
sharedViewModel.setTransMenu(null);
|
||||
if(sharedViewModel.getTransactionsType().getValue() == TransactionsType.PRE_AUTH_VOID ) {
|
||||
|
||||
sharedViewModel.set_errorFragmentMsg(getResourceString(R.string.txt_alert_pre_auth_cancel));
|
||||
routeId = R.id.action_processingCardFragment_to_errorFragment;
|
||||
|
||||
}
|
||||
// else if(sharedViewModel.transactionsType.getValue() == TransactionsType.REFUND) {
|
||||
// routeId = R.id.action_processingCardFragment_to_errorFragment;
|
||||
|
||||
@ -9,7 +9,9 @@ import androidx.annotation.Nullable;
|
||||
import androidx.navigation.NavController;
|
||||
import androidx.navigation.NavDestination;
|
||||
|
||||
import com.utsmm.kbz.util.EReceiptUtil;
|
||||
import com.utsmyanmar.baselib.fragment.DataBindingFragment;
|
||||
import com.utsmyanmar.baselib.network.model.e_receipt.EReceiptRequest;
|
||||
import com.utsmyanmar.baselib.util.DataBindingConfig;
|
||||
import com.utsmyanmar.baselib.util.TimeoutCallback;
|
||||
import com.utsmyanmar.paylibs.utils.core_utils.SystemParamsOperation;
|
||||
@ -168,14 +170,17 @@ public class ProcessingFragment extends DataBindingFragment {
|
||||
} else {
|
||||
LogUtil.d(TAG,"Updated sharedViewmodel payDetail for non emv");
|
||||
sharedViewModel.payDetail.setValue(transProcessViewModel.payDetailResult.getValue());
|
||||
|
||||
|
||||
}
|
||||
|
||||
|
||||
EReceiptRequest request = EReceiptUtil.getInstance().generateMPUReceipt(sharedViewModel.payDetail.getValue());
|
||||
sharedViewModel.pushReceipt(request);
|
||||
// transProcessViewModel.payDetailResult.observe(getViewLifecycleOwner(), payDetail -> sharedViewModel.payDetail.postValue(payDetail));
|
||||
}
|
||||
|
||||
private void callNextScreen(){
|
||||
updateData();
|
||||
// updateData();
|
||||
if (requiresSignature()) {
|
||||
routeId = R.id.action_processingFragment_to_signatureFragment;
|
||||
} else {
|
||||
@ -203,7 +208,7 @@ public class ProcessingFragment extends DataBindingFragment {
|
||||
LogUtil.d(TAG,"tradeAnswerCode: "+payDetail.getTradeAnswerCode());
|
||||
|
||||
// For now, let's check if it's a card transaction and successful
|
||||
boolean isSuccessful = "00".equals(payDetail.getTradeAnswerCode());
|
||||
boolean isSuccessful = "00".equals(payDetail.getTradeAnswerCode()) || "000".equals(payDetail.getTradeAnswerCode());
|
||||
|
||||
// You can customize this logic based on your business requirements
|
||||
return isSuccessful && !isEmvTrans(); // Require signature for successful non-EMV transactions
|
||||
@ -262,6 +267,7 @@ public class ProcessingFragment extends DataBindingFragment {
|
||||
},1500);
|
||||
} else {
|
||||
// updateData();
|
||||
|
||||
sharedViewModel.dismissLoadingMsg();
|
||||
callNextScreen();
|
||||
}
|
||||
|
||||
@ -202,6 +202,14 @@ public class SharedViewModel extends ViewModel {
|
||||
return transactionsType;
|
||||
}
|
||||
|
||||
public void setAmount(String amount) {
|
||||
this.amount.setValue(amount);
|
||||
}
|
||||
|
||||
public SingleLiveEvent<String> getAmount() {
|
||||
return amount;
|
||||
}
|
||||
|
||||
public void setPrintReceiptMsg(String msg) { this.printReceiptMsg.setValue(msg);}
|
||||
public void postPrintReceiptMsg(String msg) { this.printReceiptMsg.postValue(msg);}
|
||||
public void setPrintStatus(PrintStatus printStatus) { this.printStatus.setValue(printStatus); }
|
||||
|
||||
@ -1,9 +1,7 @@
|
||||
package com.utsmm.kbz.ui.kpay;
|
||||
|
||||
import android.annotation.SuppressLint;
|
||||
import android.os.Build;
|
||||
import android.os.Bundle;
|
||||
import android.text.TextUtils;
|
||||
import android.util.Log;
|
||||
import android.view.View;
|
||||
|
||||
@ -11,11 +9,11 @@ import androidx.annotation.NonNull;
|
||||
import androidx.annotation.Nullable;
|
||||
|
||||
|
||||
import com.utsmm.kbz.util.tms.TMSUtil;
|
||||
import com.utsmm.kbz.util.EReceiptUtil;
|
||||
import com.utsmm.kbz.util.enums.TransResultStatus;
|
||||
import com.utsmyanmar.baselib.fragment.DataBindingFragment;
|
||||
import com.utsmyanmar.baselib.network.model.DemoQRStatusRequest;
|
||||
import com.utsmyanmar.baselib.network.model.KPayQRQueryRequest;
|
||||
import com.utsmyanmar.baselib.network.model.e_receipt.EReceiptQRRequest;
|
||||
import com.utsmyanmar.baselib.network.model.e_receipt.EReceiptRequest;
|
||||
import com.utsmyanmar.baselib.util.DataBindingConfig;
|
||||
import com.utsmyanmar.baselib.util.TimeoutCallback;
|
||||
import com.utsmyanmar.ecr.ECRHelper;
|
||||
@ -30,10 +28,6 @@ import com.utsmm.kbz.ui.core_viewmodel.SharedViewModel;
|
||||
import com.utsmm.kbz.util.TransactionUtil;
|
||||
import com.utsmm.kbz.util.ecr.CoreUtils;
|
||||
|
||||
import java.text.DecimalFormat;
|
||||
import java.time.LocalDate;
|
||||
import java.time.LocalDateTime;
|
||||
import java.time.format.DateTimeFormatter;
|
||||
import java.util.Objects;
|
||||
import java.util.concurrent.TimeUnit;
|
||||
import java.util.regex.Matcher;
|
||||
@ -130,6 +124,7 @@ public class QRTransactionFragment extends DataBindingFragment implements DataBi
|
||||
terminalId = TransactionUtil.getInstance().getQRTerminalId();
|
||||
merchantId = TransactionUtil.getInstance().getQRMerchantId();
|
||||
|
||||
|
||||
refLabel = sharedViewModel.qrRefNum.getValue();
|
||||
|
||||
// tradeData = waveViewModel.getTradeData();
|
||||
@ -139,6 +134,7 @@ public class QRTransactionFragment extends DataBindingFragment implements DataBi
|
||||
|
||||
sharedViewModel.insertPayDetail(payDetail);
|
||||
|
||||
|
||||
}
|
||||
|
||||
|
||||
@ -191,6 +187,8 @@ public class QRTransactionFragment extends DataBindingFragment implements DataBi
|
||||
setUpCountDown();
|
||||
|
||||
|
||||
|
||||
|
||||
}
|
||||
|
||||
private void setUpCountDown() {
|
||||
@ -315,28 +313,7 @@ public class QRTransactionFragment extends DataBindingFragment implements DataBi
|
||||
|
||||
retrievedUpdatePayDetail(refLabel, payDetail,false);
|
||||
|
||||
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 serial = TMSUtil.getInstance().getSerialNumber();
|
||||
String packageName = getActivity().getPackageName();
|
||||
EReceiptQRRequest request = new EReceiptQRRequest();
|
||||
request.setDE3("QR");
|
||||
request.setDE4(amount);
|
||||
request.setDE7(currentTimeStamp);
|
||||
request.setDE37(payDetail.getReferNo());
|
||||
request.setDE39("A");
|
||||
request.setDE49("MMK");
|
||||
request.setSerial(serial);
|
||||
request.setAppId(packageName);
|
||||
request.setDE41(terminalId);
|
||||
request.setDE42(merchantId);
|
||||
request.setInvoiceNumber(payDetail.getInvoiceNo());
|
||||
request.setDE11(payDetail.getVoucherNo());
|
||||
request.setDescription("qr pay success");
|
||||
EReceiptRequest request = EReceiptUtil.getInstance().generateQRReceipt(payDetail, TransResultStatus.SUCCESS);
|
||||
sharedViewModel.pushReceipt(request);
|
||||
|
||||
return;
|
||||
@ -348,24 +325,7 @@ public class QRTransactionFragment extends DataBindingFragment implements DataBi
|
||||
payDetail.setQrTransStatus(2);
|
||||
}
|
||||
|
||||
String currentTimeStamp = new java.text.SimpleDateFormat("MMddHHmmss", java.util.Locale.getDefault())
|
||||
.format(new java.util.Date());
|
||||
String serial = SystemParamsOperation.getInstance().getCurrentSerialNum();
|
||||
String packageName = getActivity().getPackageName();
|
||||
EReceiptQRRequest request = new EReceiptQRRequest();
|
||||
request.setDE3("QR");
|
||||
request.setDE4("0");
|
||||
request.setDE7(currentTimeStamp);
|
||||
request.setDE37(payDetail.getReferNo());
|
||||
request.setDE39("D");
|
||||
request.setDE49("MMK");
|
||||
request.setSerial(serial);
|
||||
request.setAppId(packageName);
|
||||
request.setDE41(terminalId);
|
||||
request.setDE42(merchantId);
|
||||
request.setInvoiceNumber(payDetail.getInvoiceNo());
|
||||
request.setDE11(payDetail.getVoucherNo());
|
||||
request.setDescription("qr timeout");
|
||||
EReceiptRequest request = EReceiptUtil.getInstance().generateQRReceipt(payDetail, TransResultStatus.FAIL);
|
||||
sharedViewModel.pushReceipt(request);
|
||||
|
||||
sharedViewModel.payDetail.postValue(payDetail);
|
||||
@ -376,24 +336,7 @@ public class QRTransactionFragment extends DataBindingFragment implements DataBi
|
||||
} catch (Exception e) {
|
||||
LogUtil.d(TAG, "On Exception::");
|
||||
e.printStackTrace();
|
||||
String currentTimeStamp = new java.text.SimpleDateFormat("MMddHHmmss", java.util.Locale.getDefault())
|
||||
.format(new java.util.Date());
|
||||
String serial = SystemParamsOperation.getInstance().getCurrentSerialNum();
|
||||
String packageName = getActivity().getPackageName();
|
||||
EReceiptQRRequest request = new EReceiptQRRequest();
|
||||
request.setDE3("QR");
|
||||
request.setDE4("0");
|
||||
request.setDE7(currentTimeStamp);
|
||||
request.setDE37(payDetail.getReferNo());
|
||||
request.setDE39("D");
|
||||
request.setDE49("MMK");
|
||||
request.setSerial(serial);
|
||||
request.setAppId(packageName);
|
||||
request.setDE41(terminalId);
|
||||
request.setDE42(merchantId);
|
||||
request.setInvoiceNumber(payDetail.getInvoiceNo());
|
||||
request.setDE11(payDetail.getVoucherNo());
|
||||
request.setDescription("qr failed");
|
||||
EReceiptRequest request = EReceiptUtil.getInstance().generateQRReceipt(payDetail, TransResultStatus.TIME_OUT);
|
||||
sharedViewModel.pushReceipt(request);
|
||||
|
||||
if (count == totalCount) {
|
||||
|
||||
@ -317,7 +317,7 @@ public class SettlementTransactionFragment extends DataBindingFragment implement
|
||||
updateData();
|
||||
if (!SystemParamsOperation.getInstance().getDemoStatus()) {
|
||||
|
||||
// networkCutOver(); // bpc
|
||||
networkCutOver(); // bpc
|
||||
navigateToNext();
|
||||
} else {
|
||||
navigateToNext();
|
||||
|
||||
157
app/src/main/java/com/utsmm/kbz/util/EReceiptUtil.java
Normal file
157
app/src/main/java/com/utsmm/kbz/util/EReceiptUtil.java
Normal file
@ -0,0 +1,157 @@
|
||||
package com.utsmm.kbz.util;
|
||||
|
||||
import com.utsmm.kbz.BuildConfig;
|
||||
import com.utsmm.kbz.util.enums.TransResultStatus;
|
||||
import com.utsmm.kbz.util.tms.TMSUtil;
|
||||
import com.utsmyanmar.baselib.network.model.e_receipt.EReceiptRequest;
|
||||
import com.utsmyanmar.paylibs.model.PayDetail;
|
||||
import com.utsmyanmar.paylibs.system.BaseErrorCode;
|
||||
import com.utsmyanmar.paylibs.utils.POSUtil;
|
||||
import com.utsmyanmar.paylibs.utils.core_utils.SystemParamsOperation;
|
||||
import com.utsmyanmar.paylibs.utils.iso_utils.TransactionsType;
|
||||
|
||||
import java.text.DecimalFormat;
|
||||
|
||||
public class EReceiptUtil {
|
||||
|
||||
private static EReceiptUtil instance;
|
||||
|
||||
|
||||
public static EReceiptUtil getInstance(){
|
||||
|
||||
instance = new EReceiptUtil();
|
||||
|
||||
return instance;
|
||||
}
|
||||
|
||||
|
||||
private String terminalId;
|
||||
private String merchantId;
|
||||
private String traceNo;
|
||||
private String invoiceNo;
|
||||
private String serialNum;
|
||||
|
||||
private String packageName;
|
||||
private EReceiptUtil(){
|
||||
terminalId = SystemParamsOperation.getInstance().getTerminalId();
|
||||
merchantId = SystemParamsOperation.getInstance().getMerchantId();
|
||||
traceNo = SystemParamsOperation.getInstance().getCurrentSerialNum();
|
||||
invoiceNo = SystemParamsOperation.getInstance().getCurrentInvoiceNum();
|
||||
serialNum = TMSUtil.getInstance().getSerialNumber();
|
||||
packageName = BuildConfig.APPLICATION_ID;
|
||||
}
|
||||
|
||||
public EReceiptRequest generateQRReceipt(PayDetail payDetail, TransResultStatus status) {
|
||||
|
||||
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());
|
||||
EReceiptRequest request = new EReceiptRequest();
|
||||
request.setDE3("QR");
|
||||
|
||||
request.setDE7(currentTimeStamp);
|
||||
request.setDE37(payDetail.getReferNo());
|
||||
|
||||
request.setDE49("MMK");
|
||||
request.setSerial(serialNum);
|
||||
request.setAppId(packageName);
|
||||
request.setDE41(terminalId);
|
||||
request.setDE42(merchantId);
|
||||
request.setInvoiceNumber(payDetail.getInvoiceNo());
|
||||
request.setDE11(payDetail.getVoucherNo());
|
||||
|
||||
// need to add payment identifier field too
|
||||
|
||||
if(status == TransResultStatus.SUCCESS) {
|
||||
request.setDE4(amount);
|
||||
request.setDescription("qr pay success");
|
||||
request.setDE39("A");
|
||||
} else if(status == TransResultStatus.TIME_OUT) {
|
||||
request.setDE4("0");
|
||||
request.setDescription("qr timeout");
|
||||
request.setDE39("D");
|
||||
} else if(status == TransResultStatus.FAIL) {
|
||||
request.setDE4("0");
|
||||
request.setDescription("qr failed");
|
||||
request.setDE39("E");
|
||||
}
|
||||
|
||||
|
||||
|
||||
|
||||
return request;
|
||||
}
|
||||
|
||||
public EReceiptRequest generateMPUReceipt(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());
|
||||
EReceiptRequest request = new EReceiptRequest();
|
||||
request.setDE2(POSUtil.getInstance().getCardNumMasking(payDetail.getCardNo()));
|
||||
request.setDE3(convertTransactionType(payDetail.getTransactionType()));
|
||||
request.setDE4(amount);
|
||||
request.setDE7(currentTimeStamp);
|
||||
request.setDE11(payDetail.getVoucherNo());
|
||||
|
||||
request.setDE37(payDetail.getReferNo());
|
||||
request.setDE38(payDetail.getApprovalCode());
|
||||
|
||||
// will check it later for currency code
|
||||
request.setDE49("MMK");
|
||||
request.setDE41(terminalId);
|
||||
request.setDE42(merchantId);
|
||||
|
||||
request.setSerial(serialNum);
|
||||
request.setAppId(packageName);
|
||||
request.setInvoiceNumber(payDetail.getInvoiceNo());
|
||||
request.setCardLabel("MPU");
|
||||
|
||||
// need to add payment identifier field too
|
||||
|
||||
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");
|
||||
}
|
||||
|
||||
|
||||
|
||||
|
||||
return request;
|
||||
}
|
||||
|
||||
public String convertTransactionType(int transactionType) {
|
||||
if(transactionType == TransactionsType.SALE.value) {
|
||||
return "S";
|
||||
} else if(transactionType == TransactionsType.VOID.value) {
|
||||
return "V";
|
||||
} else if(transactionType == TransactionsType.PRE_AUTH_SALE.value) {
|
||||
return "P";
|
||||
} else if(transactionType == TransactionsType.PRE_AUTH_VOID.value) {
|
||||
return "PV";
|
||||
} else if(transactionType == TransactionsType.PRE_AUTH_COMPLETE.value) {
|
||||
return "PC";
|
||||
} else if(transactionType == TransactionsType.PRE_AUTH_COMPLETE_VOID.value) {
|
||||
return "PCV";
|
||||
} else if(transactionType == TransactionsType.CASH_OUT.value) {
|
||||
return "CAV";
|
||||
} else if(transactionType == TransactionsType.REFUND.value) {
|
||||
return "R";
|
||||
} else if(transactionType == TransactionsType.SETTLEMENT.value) {
|
||||
return "ST";
|
||||
}
|
||||
return "E";
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
@ -26,6 +26,7 @@ public enum TransResultStatus {
|
||||
RETRY_AGAIN,
|
||||
NEXT_SCREEN,
|
||||
EMPTY_PIN,
|
||||
NETWORK_ERROR
|
||||
NETWORK_ERROR,
|
||||
TIME_OUT
|
||||
|
||||
}
|
||||
|
||||
@ -212,12 +212,11 @@ public class TMSUtil {
|
||||
settlementStatus = SystemParamsOperation.getInstance().getSettlementStatus();
|
||||
|
||||
featuresList.add(new Features(2, fragmentActivity.getString(R.string.menu_sale_void), R.drawable.ic_void_dash, FeaturesType.VOID, voidStatus));
|
||||
featuresList.add(new Features(2, fragmentActivity.getString(R.string.menu_settlement), R.drawable.ic_settlement, FeaturesType.SETTLEMENT, settlementStatus));
|
||||
// featuresList.add(new Features(2, fragmentActivity.getString(R.string.menu_settlement), R.drawable.ic_settlement, FeaturesType.SETTLEMENT, settlementStatus));
|
||||
featuresList.add(new Features(4, fragmentActivity.getString(R.string.menu_refund), R.drawable.ic_refund, FeaturesType.REFUND, refundStatus));
|
||||
featuresList.add(new Features(3, fragmentActivity.getString(R.string.menu_preauth), R.drawable.ic_pre_auth_dash, FeaturesType.PRE_AUTH_SALE, preAuthStatus));
|
||||
featuresList.add(new Features(6, fragmentActivity.getString(R.string.menu_preauth_cancellation), R.drawable.ic_pre_auth_dash, FeaturesType.PRE_AUTH_VOID, preAuthCancelStatus));
|
||||
featuresList.add(new Features(6, fragmentActivity.getString(R.string.menu_preauth_completion), R.drawable.ic_pre_auth_dash, FeaturesType.PRE_AUTH_COMPLETE, preAuthCompleteStatus));
|
||||
featuresList.add(new Features(6, fragmentActivity.getString(R.string.menu_preauth_comp_cancellation), R.drawable.ic_pre_auth_dash, FeaturesType.PRE_AUTH_COMPLETE_VOID, preAuthCompleteCancelStatus));
|
||||
// featuresList.add(new Features(5, fragmentActivity.getString(R.string.menu_wavepay_inquiry), R.drawable.ic_wave_status_dash, FeaturesType.WAVE_PAY_INQUIRY, wavePayInquiryStatus));
|
||||
featuresList.add(new Features(1, fragmentActivity.getString(R.string.menu_cash_advance), R.drawable.ic_cash_advance, FeaturesType.CASH_ADVANCE, cashAdvanceStatus));
|
||||
featuresList.add(new Features(9, fragmentActivity.getString(R.string.menu_history), R.drawable.ic_history, FeaturesType.HISTORY, true));
|
||||
|
||||
@ -437,6 +437,7 @@
|
||||
<string name="txt_printing_settlement_report">Printing Settlement Report</string>
|
||||
<string name="txt_printing_settlement_report_failure">Printing Settlement Report Failed!\nPlease load paper roll.</string>
|
||||
<string name="txt_function_not_supported">FUNCTION NOT SUPPORTED</string>
|
||||
<string name="txt_alert_pre_auth_cancel">ONLY ALLOWS MANUAL ENTRY</string>
|
||||
<string name="txt_card_not_supported">CARD NOT SUPPORTED</string>
|
||||
<string name="title_ecr">ECR</string>
|
||||
<string name="txt_connect">Connect</string>
|
||||
|
||||
@ -383,7 +383,7 @@ public abstract class DataBindingFragment extends Fragment {
|
||||
getNavController(hostId()).popBackStack();
|
||||
}
|
||||
|
||||
protected void safeNavigateToRouteId(){
|
||||
protected void safeNavigateToRouteId(){
|
||||
Activity activity = getActivity();
|
||||
if(activity != null && isAdded()) {
|
||||
NavDestination currentDestination = getNavController(hostId()).getCurrentDestination();
|
||||
|
||||
@ -1,23 +1,64 @@
|
||||
package com.utsmyanmar.baselib.network.model.e_receipt;
|
||||
|
||||
public class EReceiptQRRequest {
|
||||
public class EReceiptRequest {
|
||||
private String DE2;
|
||||
private String DE3;
|
||||
private String DE4;
|
||||
private String DE7;
|
||||
private String DE11;
|
||||
|
||||
private String DE22;
|
||||
private String DE37;
|
||||
|
||||
private String DE38;
|
||||
private String DE39;
|
||||
private String DE41;
|
||||
private String DE42;
|
||||
private String serial;
|
||||
|
||||
private String DE49;
|
||||
private String DE37;
|
||||
private String DE7;
|
||||
private String DE4;
|
||||
|
||||
private String DE63_01;
|
||||
private String DE63_02;
|
||||
private String DE63_03;
|
||||
private String DE63_04;
|
||||
private String serial;
|
||||
|
||||
private String appId;
|
||||
private String invoiceNumber;
|
||||
private String DE11;
|
||||
|
||||
private String description;
|
||||
|
||||
public EReceiptQRRequest() {}
|
||||
private String cardLabel;
|
||||
|
||||
public EReceiptRequest() {}
|
||||
|
||||
// GETTERS
|
||||
|
||||
public String getDE2() {
|
||||
return DE2;
|
||||
}
|
||||
public String getDE38() {
|
||||
return DE38;
|
||||
}
|
||||
|
||||
public String getDE22() {
|
||||
return DE22;
|
||||
}
|
||||
|
||||
public String getDE63_01() {
|
||||
return DE63_01;
|
||||
}
|
||||
|
||||
public String getDE63_02() {
|
||||
return DE63_02;
|
||||
}
|
||||
public String getDE63_03() {
|
||||
return DE63_03;
|
||||
}
|
||||
|
||||
public String getDE63_04() {
|
||||
return DE63_04;
|
||||
}
|
||||
public String getDE3() {
|
||||
return DE3;
|
||||
}
|
||||
@ -68,6 +109,10 @@ public class EReceiptQRRequest {
|
||||
public String getDescription(){
|
||||
return description;
|
||||
}
|
||||
|
||||
public String getCardLabel() {
|
||||
return cardLabel;
|
||||
}
|
||||
// SETTERS
|
||||
public void setDE3(String DE3) {
|
||||
this.DE3 = DE3;
|
||||
@ -120,4 +165,34 @@ public class EReceiptQRRequest {
|
||||
public void setDescription(String description){
|
||||
this.description = description;
|
||||
}
|
||||
|
||||
public void setDE2(String DE2) {
|
||||
this.DE2 = DE2;
|
||||
}
|
||||
|
||||
public void setDE38(String DE38) {
|
||||
this.DE38 = DE38;
|
||||
}
|
||||
|
||||
public void setDE22(String DE22) {
|
||||
this.DE22 = DE22;
|
||||
}
|
||||
public void setDE63_01(String DE63_01) {
|
||||
this.DE63_01 = DE63_01;
|
||||
}
|
||||
public void setDE63_02(String DE63_02) {
|
||||
this.DE63_02 = DE63_02;
|
||||
}
|
||||
public void setDE63_03(String DE63_03) {
|
||||
this.DE63_03 = DE63_03;
|
||||
}
|
||||
public void setDE63_04(String DE63_04) {
|
||||
this.DE63_04 = DE63_04;
|
||||
}
|
||||
|
||||
public void setCardLabel(String cardLabel) {
|
||||
this.cardLabel = cardLabel;
|
||||
}
|
||||
|
||||
|
||||
}
|
||||
@ -71,7 +71,7 @@ public class PrintReceipt {
|
||||
SimpleDateFormat dfm = new SimpleDateFormat("dd/MM/yyyy HH:mm:ss", Locale.getDefault());
|
||||
currentTime = dfm.format(new Date());
|
||||
BitmapFactory.Options opts = new BitmapFactory.Options();
|
||||
bitmap = BitmapFactory.decodeResource(resources, R.drawable.primary_print_logo_yoma_bank, opts);
|
||||
bitmap = BitmapFactory.decodeResource(resources, R.drawable.print_kbz_logo, opts);
|
||||
|
||||
}
|
||||
|
||||
|
||||
@ -41,7 +41,7 @@ public class PrintXImpl extends BaseXPrint implements PrintX {
|
||||
SimpleDateFormat dfm = new SimpleDateFormat("dd/MM/yyyy HH:mm:ss", Locale.getDefault());
|
||||
currentTime = dfm.format(new Date());
|
||||
BitmapFactory.Options opts = new BitmapFactory.Options();
|
||||
bitmap = BitmapFactory.decodeResource(resources, R.drawable.print_logo_mpu, opts);
|
||||
bitmap = BitmapFactory.decodeResource(resources, R.drawable.print_kbz_logo, opts);
|
||||
}
|
||||
|
||||
|
||||
|
||||
@ -369,6 +369,8 @@ public class TransactionsOperation {
|
||||
newPay.setPINCipher(oldPay.getPINCipher());
|
||||
newPay.setTempKSN(oldPay.getTempKSN());
|
||||
newPay.setTransCVM(TransCVM.SIGNATURE);
|
||||
newPay.setTradeDateTime(oldPay.getTradeDateTime());
|
||||
newPay.setAmount(oldPay.getAmount());
|
||||
// for manual entry reversal which need de 35
|
||||
|
||||
} else if (transactionsType == TransactionsType.TIP_ADJUSTMENT ) {
|
||||
|
||||
@ -107,7 +107,8 @@ public class BitmapConfig {
|
||||
// commented on Nov 13,2024
|
||||
// public static final String BPC_PRE_AUTH_SALE_VOID_REVERSAL = "7230058028C19800"; // added DE 2
|
||||
// public static final String BPC_PRE_AUTH_SALE_VOID_REVERSAL = "7234058008C09000"; // for tmk MPU
|
||||
public static final String BPC_PRE_AUTH_SALE_VOID_REVERSAL = "7230058008C09000"; // for KBZ MPU
|
||||
// public static final String BPC_PRE_AUTH_SALE_VOID_REVERSAL = "7230058008C09000"; // for KBZ MPU
|
||||
public static final String BPC_PRE_AUTH_SALE_VOID_REVERSAL = "7234058008C09000"; // for KBZ MPU added DE 14
|
||||
// public static final String BPC_PRE_AUTH_SALE_VOID_REVERSAL = "3230058028C19800";
|
||||
// public static final String BPC_PRE_AUTH_SALE_VOID_REVERSAL = "3230058028C19A00"; //DE55
|
||||
//
|
||||
|
||||
@ -45,7 +45,7 @@ public class FieldConfig {
|
||||
// /* FLD 12 */ {0, SDK_8583_LEN_BCD, 6, SDK_8583_DATA_BCD, SDK_8583_ALIGN_L, '0'},
|
||||
/* FLD 12 */ {0, SDK_8583_LEN_BCD, 12, SDK_8583_DATA_ASC, SDK_8583_ALIGN_L, '0'}, // BPC HOST
|
||||
/* FLD 13 */ {0, SDK_8583_LEN_BCD, 4, SDK_8583_DATA_ASC, SDK_8583_ALIGN_L, '0'},
|
||||
/* FLD 14 */ {0, SDK_8583_LEN_BCD, 4, SDK_8583_DATA_ASC, SDK_8583_ALIGN_L, '0'},
|
||||
/* FLD 14 */ {0, SDK_8583_LEN_BCD, 6, SDK_8583_DATA_ASC, SDK_8583_ALIGN_L, '0'},
|
||||
/* FLD 15 */ {0, SDK_8583_LEN_BCD, 6, SDK_8583_DATA_ASC, SDK_8583_ALIGN_L, '0'},
|
||||
/* FLD 16 */ {0, SDK_8583_LEN_BCD, 12, SDK_8583_DATA_BCD, SDK_8583_ALIGN_R, '0'},
|
||||
/* FLD 17 */ {0, SDK_8583_LEN_BCD, 12, SDK_8583_DATA_BCD, SDK_8583_ALIGN_R, '0'},
|
||||
|
||||
@ -63,5 +63,6 @@ public enum TransactionsType {
|
||||
}
|
||||
|
||||
|
||||
|
||||
}
|
||||
|
||||
|
||||
Binary file not shown.
|
Before Width: | Height: | Size: 146 KiB |
Binary file not shown.
|
Before Width: | Height: | Size: 54 KiB |
Binary file not shown.
|
Before Width: | Height: | Size: 7.5 KiB |
Loading…
Reference in New Issue
Block a user