diff --git a/app/build.gradle b/app/build.gradle index c9f111d..6c38b39 100644 --- a/app/build.gradle +++ b/app/build.gradle @@ -14,8 +14,8 @@ android { applicationId "com.utsmm.kbz" minSdk 24 targetSdk 33 - versionCode 24 - versionName "2.4" + versionCode 25 + versionName "2.5" testInstrumentationRunner "androidx.test.runner.AndroidJUnitRunner" } diff --git a/app/src/main/java/com/utsmm/kbz/ui/core_ui/ProcessingCardFragment.java b/app/src/main/java/com/utsmm/kbz/ui/core_ui/ProcessingCardFragment.java index c6511e4..0ae0646 100644 --- a/app/src/main/java/com/utsmm/kbz/ui/core_ui/ProcessingCardFragment.java +++ b/app/src/main/java/com/utsmm/kbz/ui/core_ui/ProcessingCardFragment.java @@ -168,12 +168,29 @@ public class ProcessingCardFragment extends DataBindingFragment { transProcessViewModel.setTradeData(tradeData); pinPadViewModel.setTradeData(tradeData); - if(sharedViewModel.getTransactionsType().getValue() == TransactionsType.PRE_AUTH_VOID ) { + if(sharedViewModel.getTransactionsType().getValue() == TransactionsType.PRE_AUTH_VOID && SystemParamsOperation.getInstance().getPreAuthVoidManualEnabled() ) { sharedViewModel.set_errorFragmentMsg(getResourceString(R.string.txt_alert_pre_auth_cancel)); routeId = R.id.action_processingCardFragment_to_errorFragment; safeNavigateToRouteId(); return; + + } + if(sharedViewModel.getTransactionsType().getValue() == TransactionsType.PRE_AUTH_SALE && SystemParamsOperation.getInstance().getPreAuthManualEnabled()) { + + sharedViewModel.set_errorFragmentMsg(getResourceString(R.string.txt_alert_pre_auth_cancel)); + routeId = R.id.action_processingCardFragment_to_errorFragment; + safeNavigateToRouteId(); + return; + + } + if(sharedViewModel.getTransactionsType().getValue() == TransactionsType.PRE_AUTH_COMPLETE && SystemParamsOperation.getInstance().getPreAuthCompleteManualEnabled()) { + + 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)); @@ -238,13 +255,28 @@ public class ProcessingCardFragment extends DataBindingFragment { transProcessViewModel.setTradeData(tradeData); } - - if(sharedViewModel.getTransactionsType().getValue() == TransactionsType.PRE_AUTH_VOID ) { + if(sharedViewModel.getTransactionsType().getValue() == TransactionsType.PRE_AUTH_VOID && SystemParamsOperation.getInstance().getPreAuthVoidManualEnabled() ) { sharedViewModel.set_errorFragmentMsg(getResourceString(R.string.txt_alert_pre_auth_cancel)); routeId = R.id.action_processingCardFragment_to_errorFragment; } + if(sharedViewModel.getTransactionsType().getValue() == TransactionsType.PRE_AUTH_SALE && SystemParamsOperation.getInstance().getPreAuthManualEnabled()) { + + sharedViewModel.set_errorFragmentMsg(getResourceString(R.string.txt_alert_pre_auth_cancel)); + routeId = R.id.action_processingCardFragment_to_errorFragment; + + + } + if(sharedViewModel.getTransactionsType().getValue() == TransactionsType.PRE_AUTH_COMPLETE && SystemParamsOperation.getInstance().getPreAuthCompleteManualEnabled()) { + + 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; // } @@ -274,8 +306,39 @@ public class ProcessingCardFragment extends DataBindingFragment { emvTransactionViewModel.transType.setValue(sharedViewModel.transactionsType.getValue()); if (SystemParamsOperation.getInstance().isEmvEnabled()) { + prepareEmvTransaction(); + + if(sharedViewModel.getTransactionsType().getValue() == TransactionsType.PRE_AUTH_VOID && SystemParamsOperation.getInstance().getPreAuthVoidManualEnabled() ) { + + sharedViewModel.set_errorFragmentMsg(getResourceString(R.string.txt_alert_pre_auth_cancel)); + routeId = R.id.action_processingCardFragment_to_errorFragment; + safeNavigateToRouteId(); + return; + + } + if(sharedViewModel.getTransactionsType().getValue() == TransactionsType.PRE_AUTH_SALE && SystemParamsOperation.getInstance().getPreAuthManualEnabled()) { + + sharedViewModel.set_errorFragmentMsg(getResourceString(R.string.txt_alert_pre_auth_cancel)); + routeId = R.id.action_processingCardFragment_to_errorFragment; + safeNavigateToRouteId(); + return; + + + } + if(sharedViewModel.getTransactionsType().getValue() == TransactionsType.PRE_AUTH_COMPLETE && SystemParamsOperation.getInstance().getPreAuthCompleteManualEnabled()) { + + sharedViewModel.set_errorFragmentMsg(getResourceString(R.string.txt_alert_pre_auth_cancel)); + routeId = R.id.action_processingCardFragment_to_errorFragment; + safeNavigateToRouteId(); + return; + + + } + + routeId = R.id.action_processingCardFragment_to_emvTransactionFragment; + } else { routeId = R.id.action_processingCardFragment_to_errorFragment; sharedViewModel.set_errorFragmentMsg(getResourceString(R.string.txt_please_enable_emv)); @@ -307,9 +370,7 @@ public class ProcessingCardFragment extends DataBindingFragment { LogUtil.d(TAG,"card type:"+cardType); LogUtil.d(TAG,"is MPU:"+isMPU); -// delayFunctionCall(()->{ -// -// }); + handlePreEmvProcess(); } diff --git a/app/src/main/java/com/utsmm/kbz/util/tms/TMSSetupsImpl.java b/app/src/main/java/com/utsmm/kbz/util/tms/TMSSetupsImpl.java index 1c25442..ead28dd 100644 --- a/app/src/main/java/com/utsmm/kbz/util/tms/TMSSetupsImpl.java +++ b/app/src/main/java/com/utsmm/kbz/util/tms/TMSSetupsImpl.java @@ -639,6 +639,15 @@ public class TMSSetupsImpl implements TMSSetups{ }else if(TextUtils.equals(name, "is_duel_currency")){ SystemParamsOperation.getInstance().setDuelCurrencyStatus(parseBoolean(data)); } + else if(TextUtils.equals(name, "pre_auth_cancel_manual_enabled")) { + SystemParamsOperation.getInstance().setPreAuthVoidManualEnabled(parseBoolean(data)); + } + else if(TextUtils.equals(name, "pre_auth_complete_manual_enabled")) { + SystemParamsOperation.getInstance().setPreAuthCompleteManualEnabled(parseBoolean(data)); + } + else if(TextUtils.equals(name, "pre_auth_manual_enabled")) { + SystemParamsOperation.getInstance().setPreAuthManualEnabled(parseBoolean(data)); + } } SystemParamsOperation.getInstance().setCarouselUrls(convertToString(imgUrls)); diff --git a/paylibs/src/main/java/com/utsmyanmar/paylibs/utils/core_utils/SystemParamsOperation.java b/paylibs/src/main/java/com/utsmyanmar/paylibs/utils/core_utils/SystemParamsOperation.java index 3b3d977..a1445f4 100644 --- a/paylibs/src/main/java/com/utsmyanmar/paylibs/utils/core_utils/SystemParamsOperation.java +++ b/paylibs/src/main/java/com/utsmyanmar/paylibs/utils/core_utils/SystemParamsOperation.java @@ -1851,4 +1851,38 @@ public class SystemParamsOperation { SystemParamsSettings paramsSettings = getSystemParamsSettings(); return paramsSettings.getDuelCurrencyStatus(); } +} + public void setPreAuthVoidManualEnabled(boolean preAuthVoidManualEnabled) { + SystemParamsSettings params = getSystemParamsSettings(); + params.setPreAuthVoidManual(preAuthVoidManualEnabled); + saveSystemParamsSettings(params); + } + + public boolean getPreAuthVoidManualEnabled() { + SystemParamsSettings params = getSystemParamsSettings(); + return params.getPreAuthVoidManual(); + } + + public void setPreAuthCompleteManualEnabled(boolean preAuthCompleteManualEnabled) { + SystemParamsSettings params = getSystemParamsSettings(); + params.setPreAuthCompleteManual(preAuthCompleteManualEnabled); + saveSystemParamsSettings(params); + } + + public boolean getPreAuthCompleteManualEnabled() { + SystemParamsSettings params = getSystemParamsSettings(); + return params.getPreAuthCompleteManual(); + } + + public void setPreAuthManualEnabled(boolean preAuthManualEnabled) { + SystemParamsSettings params = getSystemParamsSettings(); + params.setPreAuthManual(preAuthManualEnabled); + saveSystemParamsSettings(params); + } + + public boolean getPreAuthManualEnabled() { + SystemParamsSettings params = getSystemParamsSettings(); + return params.getPreAuthManual(); + } + } diff --git a/paylibs/src/main/java/com/utsmyanmar/paylibs/utils/core_utils/SystemParamsSettings.java b/paylibs/src/main/java/com/utsmyanmar/paylibs/utils/core_utils/SystemParamsSettings.java index 5e87471..9816503 100644 --- a/paylibs/src/main/java/com/utsmyanmar/paylibs/utils/core_utils/SystemParamsSettings.java +++ b/paylibs/src/main/java/com/utsmyanmar/paylibs/utils/core_utils/SystemParamsSettings.java @@ -174,6 +174,10 @@ public class SystemParamsSettings implements Serializable { private boolean isClearBatch = false; + private boolean isPreAuthVoidManual = false; + private boolean isPreAuthCompleteManual = false; + private boolean isPreAuthManual = false; + private boolean ssl_switch_status = false; private boolean connect_status = false; @@ -531,6 +535,30 @@ public class SystemParamsSettings implements Serializable { protected boolean getQRPayStatus() { return qrpay_status; } + protected void setPreAuthVoidManual(boolean status) { + this.isPreAuthVoidManual = status; + } + + protected boolean getPreAuthVoidManual() { + return isPreAuthVoidManual; + } + + protected void setPreAuthCompleteManual(boolean status) { + this.isPreAuthCompleteManual = status; + } + + protected boolean getPreAuthCompleteManual() { + return isPreAuthCompleteManual; + } + + protected void setPreAuthManual(boolean status) { + this.isPreAuthManual = status; + } + + protected boolean getPreAuthManual() { + return isPreAuthManual; + } + protected boolean isAutoPrintCustomerCopy() { return isAutoPrintCustomerCopy; } diff --git a/paylibs/src/main/java/com/utsmyanmar/paylibs/utils/iso_utils/BitmapConfig.java b/paylibs/src/main/java/com/utsmyanmar/paylibs/utils/iso_utils/BitmapConfig.java index 6364e1a..fc24989 100644 --- a/paylibs/src/main/java/com/utsmyanmar/paylibs/utils/iso_utils/BitmapConfig.java +++ b/paylibs/src/main/java/com/utsmyanmar/paylibs/utils/iso_utils/BitmapConfig.java @@ -110,7 +110,7 @@ public class BitmapConfig { // 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 = "7234058008C09000"; // for KBZ MPU added DE 14 Mar 25, 26 - public static final String BPC_PRE_AUTH_SALE_VOID_REVERSAL = "3230058028C08000"; // from log March 25 + public static final String BPC_PRE_AUTH_SALE_VOID_REVERSAL = "7230058028C08000"; // from log March 25 // public static final String BPC_PRE_AUTH_SALE_VOID_REVERSAL = "3230058028C19A00"; //DE55 //