- settlement ui is changed

This commit is contained in:
moon 2026-08-30 22:17:34 +06:30
parent 088dbd0d96
commit 7ee4a29a86
12 changed files with 79 additions and 63 deletions

View File

@ -94,4 +94,11 @@
## [2.41]
- clear batch time fix
- removed mock qr button
- support Id fix for signature
- 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

View File

@ -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 {

View File

@ -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();

View File

@ -455,23 +455,7 @@ public class MainFragment extends DataBindingFragment {
}
private void showCurrencyChooserForCardSale() {
List<String> 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<String> getAvailableCardSaleCurrencies() {

View File

@ -327,23 +327,7 @@ public class DashboardTransFragment extends DataBindingFragment {
}
private void showCurrencyChooserForCardFlow(Runnable onSelected) {
List<String> 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<String> getAvailableCardSaleCurrencies() {

View File

@ -200,10 +200,16 @@
android:text='@{": " + viewModel.thirdHostName}'/>
</TableRow>
<TableRow android:visibility='@{!TextUtils.isEmpty(viewModel.thirdHostShortCode) ? View.VISIBLE : View.GONE}'>
<TextView style="@style/HostLabelStyle" android:text="Short Code"/>
<TableRow android:visibility='@{!TextUtils.isEmpty(viewModel.thirdHostTid) ? View.VISIBLE : View.GONE}'>
<TextView style="@style/HostLabelStyle" android:text="TID"/>
<TextView style="@style/HostValueStyle"
android:text='@{": " + viewModel.thirdHostShortCode}'/>
android:text='@{": " + viewModel.thirdHostTid}'/>
</TableRow>
<TableRow android:visibility='@{!TextUtils.isEmpty(viewModel.thirdHostMid) ? View.VISIBLE : View.GONE}'>
<TextView style="@style/HostLabelStyle" android:text="MID"/>
<TextView style="@style/HostValueStyle"
android:text='@{": " + viewModel.thirdHostMid}'/>
</TableRow>
<TableRow android:visibility='@{!TextUtils.isEmpty(viewModel.thirdHostPrimaryIp) ? View.VISIBLE : View.GONE}'>

View File

@ -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"

View File

@ -460,6 +460,7 @@
<string name="txt_reversal_not_found">No reversal transaction found!</string>
<string name="txt_batch_number">Batch Number</string>
<string name="txt_base_amount">Base Amount</string>
<string name="txt_Amount">Amount</string>
<string name="txt_date_time">Date/Time</string>
<string name="txt_signature">Signature</string>
<string name="txt_tip_adjust_not_allowed">TIP ADJUST NOT ALLOW</string>
@ -621,4 +622,4 @@
<string name="txt_search_by_trace">Search By Inv No</string>
<string name="txt_continue">Continue</string>
</resources>
</resources>

View File

@ -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"
}
],

View File

@ -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;
}
}