diff --git a/CHANGELOG.md b/CHANGELOG.md index 3a397e0..69e7b76 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -94,4 +94,11 @@ ## [2.41] - clear batch time fix - removed mock qr button - - support Id fix for signature \ No newline at end of file + - support Id fix for signature + +## [2.42] +card +- settlement ui is changed +- fix for invoice number and trance number place mismatch in reprint any transaction screen +- secondary host show Tid Mid +- settlement fixed for duel currency \ No newline at end of file diff --git a/app/build.gradle b/app/build.gradle index c1a4f47..bb22d77 100644 --- a/app/build.gradle +++ b/app/build.gradle @@ -39,8 +39,8 @@ android { applicationId "com.utsmm.kbz.uat" versionNameSuffix "-uat" resValue "string", "app_name", "KBZ-UAT" - versionCode 46 - versionName "2.41" + versionCode 47 + versionName "2.42" } prod { diff --git a/app/src/main/java/com/utsmm/kbz/MainActivity.java b/app/src/main/java/com/utsmm/kbz/MainActivity.java index 9c82f64..f59d4d6 100644 --- a/app/src/main/java/com/utsmm/kbz/MainActivity.java +++ b/app/src/main/java/com/utsmm/kbz/MainActivity.java @@ -163,7 +163,6 @@ public class MainActivity extends AppCompatActivity implements // SystemParamsOperation.getInstance().setEReceiptAddress("https://api-tms-uat.kbzbank.com:8443/receipt"); SystemParamsOperation.getInstance().setTmsAddress("https://sirius-nest.utsmyanmar.com/api/v1"); SystemParamsOperation.getInstance().setEReceiptAddress("https://receipt-nest.utsmyanmar.com"); -// SystemParamsOperation.getInstance().setEReceiptAddress("https://receipt-nest.utsmyanmar.com"); PinPad pinPad = MyApplication.getInstance().deviceEngine.getPinPad(); byte[] encryptedPIK = SystemParamsOperation.getInstance().getPIK(); diff --git a/app/src/main/java/com/utsmm/kbz/MainFragment.java b/app/src/main/java/com/utsmm/kbz/MainFragment.java index bbfd4b1..298cdb4 100644 --- a/app/src/main/java/com/utsmm/kbz/MainFragment.java +++ b/app/src/main/java/com/utsmm/kbz/MainFragment.java @@ -455,23 +455,7 @@ public class MainFragment extends DataBindingFragment { } private void showCurrencyChooserForCardSale() { - List currencies = getAvailableCardSaleCurrencies(); - if (currencies.isEmpty()) { - applyCardCurrencyAndHost("MMK"); - startCardSaleFlow(); - return; - } - - if (currencies.size() == 1) { - applyCardCurrencyAndHost(currencies.get(0)); - startCardSaleFlow(); - return; - } - - showCurrencyPickerDialog("Choose Currency", currencies, currency -> { - applyCardCurrencyAndHost(currency); - startCardSaleFlow(); - }); + currencySelectionHelper.showCardCurrencyChooser(this::startCardSaleFlow); } private List getAvailableCardSaleCurrencies() { diff --git a/app/src/main/java/com/utsmm/kbz/ui/dashboard/DashboardTransFragment.java b/app/src/main/java/com/utsmm/kbz/ui/dashboard/DashboardTransFragment.java index 629dc6f..f8658cf 100644 --- a/app/src/main/java/com/utsmm/kbz/ui/dashboard/DashboardTransFragment.java +++ b/app/src/main/java/com/utsmm/kbz/ui/dashboard/DashboardTransFragment.java @@ -327,23 +327,7 @@ public class DashboardTransFragment extends DataBindingFragment { } private void showCurrencyChooserForCardFlow(Runnable onSelected) { - List currencies = getAvailableCardSaleCurrencies(); - if (currencies.isEmpty()) { - applyCardCurrencyAndHost("MMK"); - onSelected.run(); - return; - } - - if (currencies.size() == 1) { - applyCardCurrencyAndHost(currencies.get(0)); - onSelected.run(); - return; - } - - showCurrencyPickerDialog("Choose Currency", currencies, currency -> { - applyCardCurrencyAndHost(currency); - onSelected.run(); - }); + currencySelectionHelper.showCardCurrencyChooser(onSelected); } private List getAvailableCardSaleCurrencies() { diff --git a/app/src/main/res/layout/fragment_host_config.xml b/app/src/main/res/layout/fragment_host_config.xml index 6f5a56c..9bd0a5e 100644 --- a/app/src/main/res/layout/fragment_host_config.xml +++ b/app/src/main/res/layout/fragment_host_config.xml @@ -200,10 +200,16 @@ android:text='@{": " + viewModel.thirdHostName}'/> - - + + + android:text='@{": " + viewModel.thirdHostTid}'/> + + + + + diff --git a/app/src/main/res/layout/fragment_trans_info_screen.xml b/app/src/main/res/layout/fragment_trans_info_screen.xml index 65e850e..b0f44ea 100644 --- a/app/src/main/res/layout/fragment_trans_info_screen.xml +++ b/app/src/main/res/layout/fragment_trans_info_screen.xml @@ -279,7 +279,7 @@ android:layout_width="0dp" android:layout_height="wrap_content" android:layout_weight="1" - android:text="@{sharedViewModel.payDetail.voucherNo}" + android:text="@{sharedViewModel.payDetail.invoiceNo}" android:textAlignment="textEnd" android:textColor="@color/colorPrimary" android:textSize="15sp" @@ -355,7 +355,7 @@ android:layout_width="0dp" android:layout_height="wrap_content" android:layout_weight="1" - android:text="@{sharedViewModel.payDetail.invoiceNo}" + android:text="@{sharedViewModel.payDetail.voucherNo}" android:textAlignment="textEnd" android:textColor="@color/colorPrimary" android:textSize="15sp" @@ -421,7 +421,7 @@ android:layout_width="0dp" android:layout_height="wrap_content" android:layout_weight="1" - android:text="@string/txt_base_amount" + android:text="@string/txt_Amount" android:textColor="@color/colorPrimary" android:textSize="15sp" android:fontFamily="sans-serif" diff --git a/app/src/main/res/values/strings.xml b/app/src/main/res/values/strings.xml index 7924bd6..90ea8a7 100644 --- a/app/src/main/res/values/strings.xml +++ b/app/src/main/res/values/strings.xml @@ -460,6 +460,7 @@ No reversal transaction found! Batch Number Base Amount + Amount Date/Time Signature TIP ADJUST NOT ALLOW @@ -621,4 +622,4 @@ Search By Inv No Continue - \ No newline at end of file + diff --git a/app/uat/release/baselineProfiles/0/app-uat-release.dm b/app/uat/release/baselineProfiles/0/app-uat-release.dm index d07737f..847c2e9 100644 Binary files a/app/uat/release/baselineProfiles/0/app-uat-release.dm and b/app/uat/release/baselineProfiles/0/app-uat-release.dm differ diff --git a/app/uat/release/baselineProfiles/1/app-uat-release.dm b/app/uat/release/baselineProfiles/1/app-uat-release.dm index f22384c..69f1427 100644 Binary files a/app/uat/release/baselineProfiles/1/app-uat-release.dm and b/app/uat/release/baselineProfiles/1/app-uat-release.dm differ diff --git a/app/uat/release/output-metadata.json b/app/uat/release/output-metadata.json index d9a3153..2c82620 100644 --- a/app/uat/release/output-metadata.json +++ b/app/uat/release/output-metadata.json @@ -11,8 +11,8 @@ "type": "SINGLE", "filters": [], "attributes": [], - "versionCode": 46, - "versionName": "2.41-uat", + "versionCode": 47, + "versionName": "2.42-uat", "outputFile": "app-uat-release.apk" } ], diff --git a/paylibs/src/main/java/com/utsmyanmar/paylibs/print/printx/BaseXPrint.java b/paylibs/src/main/java/com/utsmyanmar/paylibs/print/printx/BaseXPrint.java index d4114c6..60c7559 100644 --- a/paylibs/src/main/java/com/utsmyanmar/paylibs/print/printx/BaseXPrint.java +++ b/paylibs/src/main/java/com/utsmyanmar/paylibs/print/printx/BaseXPrint.java @@ -1846,10 +1846,26 @@ public abstract class BaseXPrint { String[] secIpPort = splitIpAndPort(sp.getSecIpAddress()); printer.appendPrnStr("Secondary IP : " + secIpPort[0], fontNormal, AlignEnum.LEFT, false); printer.appendPrnStr("Secondary Port: " + secIpPort[1], fontNormal, AlignEnum.LEFT, false); - sp.getCurrencyType(); - printer.appendPrnStr(sp.getCurrencyType().toString(), fontNormal, AlignEnum.LEFT, false); + printer.appendPrnStr("Currency : " + formatCurrency(String.valueOf(sp.getCurrencyType())), fontNormal, AlignEnum.LEFT, false); dotBreak(); + // ---------- SECONDARY HOST (optional) ---------- + if (!TextUtils.isEmpty(sp.getThirdHostName())) { + printer.appendPrnStr("SECONDARY HOST", fontNormal, AlignEnum.LEFT, true); + printer.appendPrnStr("Name : " + sp.getThirdHostName(), fontNormal, AlignEnum.LEFT, false); + printer.appendPrnStr("TID : " + sp.getThirdHostTerminalId(), fontNormal, AlignEnum.LEFT, false); + printer.appendPrnStr("MID : " + sp.getThirdHostMerchantId(), fontNormal, AlignEnum.LEFT, false); + String[] thirdHostIp = splitIpAndPort(sp.getThirdHostIpAddress()); + printer.appendPrnStr("Primary Ip : " + thirdHostIp[0], fontNormal, AlignEnum.LEFT, false); + printer.appendPrnStr("Primary Port : " + thirdHostIp[1], fontNormal, AlignEnum.LEFT, false); + String[] thirdHostSecIp = splitIpAndPort(sp.getThirdHostSecIpAddress()); + printer.appendPrnStr("Secondary Ip : " + thirdHostSecIp[0], fontNormal, AlignEnum.LEFT, false); + printer.appendPrnStr("Secondary Port: " + thirdHostSecIp[1], fontNormal, AlignEnum.LEFT, false); + printer.appendPrnStr("Currency : " + formatCurrency(sp.getThirdHostCurrency()), fontNormal, AlignEnum.LEFT, false); + dotBreak(); + } + + // ---------- QR HOST (optional) ---------- if (!TextUtils.isEmpty(sp.getSecHostName())) { printer.appendPrnStr("QR HOST", fontNormal, AlignEnum.LEFT, true); printer.appendPrnStr("Name : " + sp.getSecHostName(), fontNormal, AlignEnum.LEFT, false); @@ -1861,24 +1877,43 @@ public abstract class BaseXPrint { printer.appendPrnStr("Secondary Ip : " + secHostSecIp[0], fontNormal, AlignEnum.LEFT, false); printer.appendPrnStr("Secondary Port: " + secHostSecIp[1], fontNormal, AlignEnum.LEFT, false); String qrHostCurrency = TextUtils.isEmpty(sp.getSecHostCurrency()) ? String.valueOf(sp.getCurrencyType()) : sp.getSecHostCurrency(); - printer.appendPrnStr("Currency Code : " + qrHostCurrency, fontNormal, AlignEnum.LEFT, false); + printer.appendPrnStr("Currency : " + formatCurrency(qrHostCurrency), fontNormal, AlignEnum.LEFT, false); dotBreak(); printer.appendPrnStr("App Version : " + getAppVersion(), fontNormal, AlignEnum.LEFT, false); } - // ---------- THIRD HOST (optional) ---------- - if (!TextUtils.isEmpty(sp.getThirdHostName())) { - printer.appendPrnStr("SECONDARY HOST", fontNormal, AlignEnum.LEFT, true); - printer.appendPrnStr("Name : " + sp.getThirdHostName(), fontNormal, AlignEnum.LEFT, false); - printer.appendPrnStr("SHORT CODE : " + sp.getThirdHostShortCode(), fontNormal, AlignEnum.LEFT, false); - String[] thirdHostIp = splitIpAndPort(sp.getThirdHostIpAddress()); - printer.appendPrnStr("Primary Ip : " + thirdHostIp[0], fontNormal, AlignEnum.LEFT, false); - printer.appendPrnStr("Primary Port : " + thirdHostIp[1], fontNormal, AlignEnum.LEFT, false); - String[] thirdHostSecIp = splitIpAndPort(sp.getThirdHostSecIpAddress()); - printer.appendPrnStr("Secondary Ip : " + thirdHostSecIp[0], fontNormal, AlignEnum.LEFT, false); - printer.appendPrnStr("Secondary Port: " + thirdHostSecIp[1], fontNormal, AlignEnum.LEFT, false); - printer.appendPrnStr("Currency Code : " + sp.getThirdHostCurrency(), fontNormal, AlignEnum.LEFT, false); - dotBreak(); + } + + private String formatCurrency(String raw) { + if (TextUtils.isEmpty(raw)) { + return ""; + } + + String value = raw.trim().toUpperCase(Locale.US); + switch (value) { + case "0104": + case "104": + case "MMK": + return "MMK"; + case "0840": + case "840": + case "USD": + return "USD"; + case "0156": + case "156": + case "CNY": + case "RMB": + return "CNY"; + case "0764": + case "764": + case "THB": + return "THB"; + case "0643": + case "643": + case "RUB": + return "RUB"; + default: + return value; } }