Compare commits

..

No commits in common. "62bae0df0cfab914d8119dca50f8ed65c6bbb3d1" and "98df6569e30d4a1141cc242dffa6da589e7db55c" have entirely different histories.

3 changed files with 32 additions and 92 deletions

View File

@ -682,11 +682,9 @@ public class SettlementTransactionFragment extends DataBindingFragment implement
}
private boolean isUSDSettleNeeded() {
return (usdBucket.saleCount != 0 || usdBucket.preCount != 0 || usdBucket.refundCount != 0
|| usdBucket.caCount != 0 || usdBucket.voidCount != 0);
return (usdBucket.saleCount != 0 || usdBucket.preCount != 0 || usdBucket.refundCount != 0 || usdBucket.caCount != 0);
}
private void networkCutOver() {
EchoTestProcess.getInstance().enqueueCutOver().startSignOn(new SignOnListener() {
@Override
public void onSuccessSignOn() {
@ -695,8 +693,6 @@ public class SettlementTransactionFragment extends DataBindingFragment implement
currencySelectionHelper.applyCardCurrencyAndHost("MMK");
settlementViewModel.startSettlementProcess(mmkBucket,true);
} else {
currencySelectionHelper.applyCardCurrencyAndHost("MMK");
navigateToNext();
}

View File

@ -8,7 +8,6 @@ import androidx.lifecycle.MutableLiveData;
import androidx.lifecycle.ViewModel;
import com.utsmm.kbz.ui.settlement.model.CurrencyBucket;
import com.utsmm.kbz.util.CurrencySelectionHelper;
import com.utsmm.kbz.util.EReceiptUtil;
import com.utsmyanmar.baselib.network.model.e_receipt.EReceiptRequest;
import com.utsmyanmar.baselib.repo.Repository;
@ -336,14 +335,6 @@ public class SettlementViewModel extends ViewModel {
@SuppressWarnings("ConstantConditions")
public void startSettlementProcess(CurrencyBucket currencyBucket,boolean isLast) {
this.isLast = isLast;
// Switch TID/MID/IP/currency before building ISO
// isLast=false => USD pass; isLast=true => MMK pass.
CurrencySelectionHelper.applyHostForCurrency(isLast ? "MMK" : "USD");
LogUtil.d(TAG, "Settlement host switched for " + (isLast ? "MMK" : "USD")
+ " TID=" + SystemParamsOperation.getInstance().getTerminalId()
+ " MID=" + SystemParamsOperation.getInstance().getMerchantId());
SystemParamsOperation.getInstance().getIncrementBatchNo();
boolean bucketIsEmpty = currencyBucket.saleCount == 0
@ -378,8 +369,6 @@ public class SettlementViewModel extends ViewModel {
TradeData tradeData = Params.newTrade(true);
payDetail = tradeData.getPayDetail();
payDetail.setTerminalNo(SystemParamsOperation.getInstance().getTerminalId());
payDetail.setMerchantNo(SystemParamsOperation.getInstance().getMerchantId());
bitmap = BitmapConfig.BPC_SETTLEMENT;
@ -457,9 +446,6 @@ public class SettlementViewModel extends ViewModel {
TradeData tradeData = Params.newTrade(true);
payDetail = tradeData.getPayDetail();
payDetail.setTerminalNo(SystemParamsOperation.getInstance().getTerminalId());
payDetail.setMerchantNo(SystemParamsOperation.getInstance().getMerchantId());
//
if(hostName == HostName.BPC) {
@ -626,11 +612,7 @@ public class SettlementViewModel extends ViewModel {
}
private void enrichSettleDataWithVoids(SettleData settleData) {
String settleCurrency = isLast ? "104" : "840";
for (PayDetail pay : deleteTrans) {
if (!matchesSettlementCurrency(pay.getCurrencyCode(), settleCurrency)) {
continue;
}
if (pay.getTransactionType() == TransactionType.VOID && !pay.isCanceled) {
settleData.setVoidSaleCount(settleData.getVoidSaleCount() + 1);
settleData.setVoidSaleAmount(settleData.getVoidSaleAmount() + pay.getAmount());
@ -642,19 +624,9 @@ public class SettlementViewModel extends ViewModel {
}
private List<PayDetail> buildCardPayDetailList() {
String settleCurrency = isLast ? "104" : "840";
List<PayDetail> list = new ArrayList<>();
if (payDetails != null) {
for (PayDetail pay : payDetails) {
if (matchesSettlementCurrency(pay.getCurrencyCode(), settleCurrency)) {
list.add(pay);
}
}
}
if (payDetails != null) list.addAll(payDetails);
for (PayDetail pay : deleteTrans) {
if (!matchesSettlementCurrency(pay.getCurrencyCode(), settleCurrency)) {
continue;
}
if (pay.getTransactionType() == TransactionType.VOID && !pay.isCanceled) {
list.add(pay);
} else if (pay.getTransactionType() == TransactionType.SALE && pay.isCanceled) {
@ -664,17 +636,6 @@ public class SettlementViewModel extends ViewModel {
return list;
}
private boolean matchesSettlementCurrency(String currencyCode, String expectedNumeric) {
if (currencyCode == null || currencyCode.trim().isEmpty()) {
return "104".equals(expectedNumeric);
}
String value = currencyCode.trim().toUpperCase(Locale.getDefault());
if ("840".equals(expectedNumeric)) {
return "840".equals(value) || "USD".equals(value);
}
return "104".equals(value) || "MMK".equals(value) || (!"840".equals(value) && !"USD".equals(value));
}
private void batchUploadProcess(boolean isLast) {
resultString.postValue(TransactionStatus.ON_BATCH_UPLOAD);

View File

@ -89,55 +89,39 @@ public class CurrencySelectionHelper {
}
public void applyCardCurrencyAndHost(String selectedCurrency) {
applyHostForCurrency(selectedCurrency);
if (sharedViewModel != null) {
CurrencyType currencyType = SystemParamsOperation.getInstance().getCurrencyType();
if (currencyType != null) {
sharedViewModel.set_currencyText(currencyType.name);
}
}
}
cachePrimaryCardHostIfNeeded();
String selected = normalizeCurrency(selectedCurrency);
String secondaryCurrency = normalizeCurrency(SystemParamsOperation.getInstance().getThirdHostCurrency());
boolean dualCurrencyEnabled = SystemParamsOperation.getInstance().getDuelCurrencyStatus();
public static void applyHostForCurrency(String selectedCurrency) {
cachePrimaryCardHostStatic();
SystemParamsOperation sp = SystemParamsOperation.getInstance();
String selected = normalizeCurrencyStatic(selectedCurrency);
String secondaryCurrency = normalizeCurrencyStatic(sp.getThirdHostCurrency());
boolean useSecondaryCardHost = !TextUtils.isEmpty(sp.getThirdHostName())
boolean useSecondaryCardHost = dualCurrencyEnabled
&& !TextUtils.isEmpty(SystemParamsOperation.getInstance().getThirdHostName())
&& !TextUtils.isEmpty(secondaryCurrency)
&& secondaryCurrency.equals(selected);
if (useSecondaryCardHost) {
sp.setHostName(sp.getThirdHostName());
sp.setTerminalId(sp.getThirdHostTerminalId());
sp.setMerchantId(sp.getThirdHostMerchantId());
sp.setIpAddress(sp.getThirdHostIpAddress());
sp.setSecIpAddress(sp.getThirdHostSecIpAddress());
sp.setCurrencyType(toCurrencyTypeStatic(selected));
SystemParamsOperation.getInstance().setHostName(SystemParamsOperation.getInstance().getThirdHostName());
SystemParamsOperation.getInstance().setTerminalId(SystemParamsOperation.getInstance().getThirdHostTerminalId());
SystemParamsOperation.getInstance().setMerchantId(SystemParamsOperation.getInstance().getThirdHostMerchantId());
SystemParamsOperation.getInstance().setIpAddress(SystemParamsOperation.getInstance().getThirdHostIpAddress());
SystemParamsOperation.getInstance().setSecIpAddress(SystemParamsOperation.getInstance().getThirdHostSecIpAddress());
} else {
sp.setHostName(globalPrimaryHostName);
sp.setTerminalId(globalPrimaryTid);
sp.setMerchantId(globalPrimaryMid);
sp.setIpAddress(globalPrimaryIp);
sp.setSecIpAddress(globalPrimarySecIp);
sp.setCurrencyType(globalPrimaryCurrency == null ? CurrencyType.MMK : globalPrimaryCurrency);
SystemParamsOperation.getInstance().setHostName(primaryHostName);
SystemParamsOperation.getInstance().setTerminalId(primaryTid);
SystemParamsOperation.getInstance().setMerchantId(primaryMid);
SystemParamsOperation.getInstance().setIpAddress(primaryIp);
SystemParamsOperation.getInstance().setSecIpAddress(primarySecIp);
}
CurrencyType currencyType = useSecondaryCardHost ? toCurrencyType(selected) : primaryCurrency;
SystemParamsOperation.getInstance().setCurrencyType(currencyType);
if (sharedViewModel != null) {
sharedViewModel.set_currencyText(currencyType.name);
}
}
private void cachePrimaryCardHostIfNeeded() {
cachePrimaryCardHostStatic();
primaryHostName = globalPrimaryHostName;
primaryTid = globalPrimaryTid;
primaryMid = globalPrimaryMid;
primaryIp = globalPrimaryIp;
primarySecIp = globalPrimarySecIp;
primaryCurrency = globalPrimaryCurrency;
}
private static void cachePrimaryCardHostStatic() {
SystemParamsOperation sp = SystemParamsOperation.getInstance();
String currentHostName = sp.getHostName();
String secondaryHostName = sp.getThirdHostName();
@ -160,14 +144,17 @@ public class CurrencySelectionHelper {
globalPrimaryCurrency = activeCurrency == null ? CurrencyType.MMK : activeCurrency;
globalPrimaryHostCached = true;
}
primaryHostName = globalPrimaryHostName;
primaryTid = globalPrimaryTid;
primaryMid = globalPrimaryMid;
primaryIp = globalPrimaryIp;
primarySecIp = globalPrimarySecIp;
primaryCurrency = globalPrimaryCurrency;
}
private CurrencyType toCurrencyType(String value) {
return toCurrencyTypeStatic(value);
}
private static CurrencyType toCurrencyTypeStatic(String value) {
String normalized = normalizeCurrencyStatic(value);
String normalized = normalizeCurrency(value);
try {
return CurrencyType.valueOf(normalized);
} catch (Exception ignored) {
@ -176,10 +163,6 @@ public class CurrencySelectionHelper {
}
private String normalizeCurrency(String raw) {
return normalizeCurrencyStatic(raw);
}
private static String normalizeCurrencyStatic(String raw) {
if (TextUtils.isEmpty(raw)) {
return "";
}