From 907eab4e72897f4d75bf0d1f8a4bafae4b820f81 Mon Sep 17 00:00:00 2001 From: moon <56061215+MgKyawLay@users.noreply.github.com> Date: Wed, 16 Sep 2026 17:12:48 +0630 Subject: [PATCH] fixed mini errors --- app/build.gradle.kts | 4 +-- app/changelog.md | 7 +++- .../ui/dashboard/DashboardUiState.kt | 2 +- .../ui/dashboard/DashboardViewModel.kt | 6 ++-- .../ui/history_functions/HistoryViewModel.kt | 4 +-- .../ReprintSettlementScreen.kt | 33 +++++++++++++++---- .../ui/settlement/SettlementViewModel.kt | 4 +-- .../baselib/db/dao/PayDetailDao.java | 4 +-- .../utsmyanmar/baselib/repo/Repository.java | 2 +- .../core_utils/SystemParamsSettings.java | 4 +-- 10 files changed, 48 insertions(+), 22 deletions(-) diff --git a/app/build.gradle.kts b/app/build.gradle.kts index ba53455..4f3cc09 100644 --- a/app/build.gradle.kts +++ b/app/build.gradle.kts @@ -40,8 +40,8 @@ android { dimension = "env" applicationIdSuffix = ".uat" versionNameSuffix = "-UAT" - versionCode = 20 - versionName = "3.8" + versionCode = 21 + versionName = "3.9" buildConfigField("String", "ENV", "\"UAT\"") resValue("string", "app_name", "MOB-UAT") } diff --git a/app/changelog.md b/app/changelog.md index 37f9da8..3fecbab 100644 --- a/app/changelog.md +++ b/app/changelog.md @@ -43,4 +43,9 @@ * fixed terminal disable/enable screen shaking * cardholder name adjust to 20 words * card masked in PrintPreview Screen -* cash adv in settlement \ No newline at end of file +* cash adv in settlement + +### version 3.9 +* modified date/time in settlement status in home +* fixed settlement status not updating +* updated released date \ No newline at end of file diff --git a/app/src/main/java/com/mob/utsmyanmar/ui/dashboard/DashboardUiState.kt b/app/src/main/java/com/mob/utsmyanmar/ui/dashboard/DashboardUiState.kt index e46cb55..32ca3d0 100644 --- a/app/src/main/java/com/mob/utsmyanmar/ui/dashboard/DashboardUiState.kt +++ b/app/src/main/java/com/mob/utsmyanmar/ui/dashboard/DashboardUiState.kt @@ -17,7 +17,7 @@ data class DashboardUiState( val totalSaleCount: Int = 0, val totalSaleAmount: Long = 0L, val settlementStatusText: String = "Pending", - val settlementDateTimeText: String = "--/-- --:--", + val settlementDateTimeText: String = "--/--/----\n--:--:--", val isSyncing: Boolean = false, val syncStatusText: String = "Connecting to TMS server..." ) diff --git a/app/src/main/java/com/mob/utsmyanmar/ui/dashboard/DashboardViewModel.kt b/app/src/main/java/com/mob/utsmyanmar/ui/dashboard/DashboardViewModel.kt index c6aeb41..008fa85 100644 --- a/app/src/main/java/com/mob/utsmyanmar/ui/dashboard/DashboardViewModel.kt +++ b/app/src/main/java/com/mob/utsmyanmar/ui/dashboard/DashboardViewModel.kt @@ -171,9 +171,11 @@ private fun formatTypeLabel(raw: String): String = when { // TradeDate = "MMDD", TradeTime = "HHmmss" (ISO 8583 fields 13 & 12) private fun buildDateTime(date: String?, time: String?): String { - val d = date?.padStart(4, '0')?.takeIf { it.length >= 4 } ?: return "--/-- --:--" + val d = date?.padStart(4, '0')?.takeIf { it.length >= 4 } + ?: return "--/--/----\n--:--:--" val t = (time ?: "").padStart(6, '0') - return "${d.take(2)}/${d.drop(2).take(2)} ${t.take(2)}:${t.drop(2).take(2)}" + return "${d.drop(2).take(2)}/${d.take(2)}/${SystemDateTime.getYYYY()}\n" + + "${t.take(2)}:${t.drop(2).take(2)}:${t.drop(4).take(2)}" } private fun PayDetail.isCurrentBusinessSettlement(): Boolean { diff --git a/app/src/main/java/com/mob/utsmyanmar/ui/history_functions/HistoryViewModel.kt b/app/src/main/java/com/mob/utsmyanmar/ui/history_functions/HistoryViewModel.kt index 95be02f..05be6db 100644 --- a/app/src/main/java/com/mob/utsmyanmar/ui/history_functions/HistoryViewModel.kt +++ b/app/src/main/java/com/mob/utsmyanmar/ui/history_functions/HistoryViewModel.kt @@ -18,8 +18,8 @@ class HistoryViewModel @Inject constructor( fun getLastTransaction(voucherNo: String): LiveData> = repository.getLastTransaction(voucherNo) - fun getLastSettlement(voucherNo: String): LiveData> = - repository.getLastSettlement(voucherNo) + fun getLastSettlement(): LiveData> = + repository.getLastSettlement() fun getReviewBatchTransaction(batchNo: String): LiveData> = repository.getReviewBatchTransaction(batchNo) diff --git a/app/src/main/java/com/mob/utsmyanmar/ui/history_functions/ReprintSettlementScreen.kt b/app/src/main/java/com/mob/utsmyanmar/ui/history_functions/ReprintSettlementScreen.kt index 4386e65..c24a1d1 100644 --- a/app/src/main/java/com/mob/utsmyanmar/ui/history_functions/ReprintSettlementScreen.kt +++ b/app/src/main/java/com/mob/utsmyanmar/ui/history_functions/ReprintSettlementScreen.kt @@ -27,7 +27,6 @@ import androidx.compose.ui.unit.dp import com.mob.utsmyanmar.ui.components.appbar.AppBar import com.mob.utsmyanmar.ui.theme.Color import com.utsmyanmar.paylibs.model.PayDetail -import com.utsmyanmar.paylibs.utils.core_utils.SystemParamsOperation @Composable fun ReprintSettlementScreen( @@ -36,27 +35,43 @@ fun ReprintSettlementScreen( onDone: () -> Unit, ) { val context = LocalContext.current - val voucherNo = SystemParamsOperation.getInstance().currentSerialNum - val settlements by viewModel.getLastSettlement(voucherNo).observeAsState(emptyList()) + val settlements by viewModel.getLastSettlement().observeAsState() var payDetail by remember { mutableStateOf(null) } var hasStarted by remember { mutableStateOf(false) } var printFailed by remember { mutableStateOf(false) } + var printFinished by remember { mutableStateOf(false) } LaunchedEffect(settlements) { if (hasStarted) return@LaunchedEffect - if (settlements.isEmpty()) { + val records = settlements ?: return@LaunchedEffect + if (records.isEmpty()) { Toast.makeText(context, "No transactions to print.", Toast.LENGTH_SHORT).show() onBack() return@LaunchedEffect } hasStarted = true - val detail = prepareReprintPayDetail(settlements.first()) + val detail = prepareReprintPayDetail(records.first()) payDetail = detail - printSettlementReport(context, detail, onSuccess = onDone) { + printSettlementReport(context, detail, onSuccess = { + printFinished = true + }) { printFailed = true } } + LaunchedEffect(printFinished) { + if (printFinished) onDone() + } + + LaunchedEffect(hasStarted, printFailed, printFinished) { + if (!hasStarted || printFailed || printFinished) return@LaunchedEffect + // Some Sunmi firmware prints successfully without sending onPrintResult. + kotlinx.coroutines.delay(8_000) + if (!printFailed && !printFinished) { + printFinished = true + } + } + Scaffold( containerColor = Color.IvoryBeige, topBar = { @@ -77,7 +92,11 @@ fun ReprintSettlementScreen( Button( onClick = { payDetail?.let { detail -> - printSettlementReport(context, detail, onSuccess = onDone) { + printFailed = false + printFinished = false + printSettlementReport(context, detail, onSuccess = { + printFinished = true + }) { printFailed = true } } diff --git a/app/src/main/java/com/mob/utsmyanmar/ui/settlement/SettlementViewModel.kt b/app/src/main/java/com/mob/utsmyanmar/ui/settlement/SettlementViewModel.kt index 919b48e..366597e 100644 --- a/app/src/main/java/com/mob/utsmyanmar/ui/settlement/SettlementViewModel.kt +++ b/app/src/main/java/com/mob/utsmyanmar/ui/settlement/SettlementViewModel.kt @@ -111,8 +111,8 @@ class SettlementViewModel @Inject constructor( private val _events = Channel(Channel.BUFFERED) val events = _events.receiveAsFlow() - fun getLastSettlement(voucherNo: String): LiveData> { - return repository.getLastSettlement(voucherNo) + fun getLastSettlement(): LiveData> { + return repository.getLastSettlement() } fun getSettlement(): LiveData> { diff --git a/baselib/src/main/java/com/utsmyanmar/baselib/db/dao/PayDetailDao.java b/baselib/src/main/java/com/utsmyanmar/baselib/db/dao/PayDetailDao.java index a01eafd..5e60af8 100644 --- a/baselib/src/main/java/com/utsmyanmar/baselib/db/dao/PayDetailDao.java +++ b/baselib/src/main/java/com/utsmyanmar/baselib/db/dao/PayDetailDao.java @@ -128,8 +128,8 @@ public interface PayDetailDao { @Query(("SELECT * FROM paydetail WHERE transactionType = 3 AND voucherNo IN(:voucherNo)")) LiveData checkLastSettlement(String voucherNo); - @Query("SELECT * FROM paydetail WHERE transactionType = 3 AND voucherNo <= :voucherNo ORDER BY PID DESC") - LiveData> getLastSettlement(String voucherNo); + @Query("SELECT * FROM paydetail WHERE transactionType = 3 ORDER BY PID DESC") + LiveData> getLastSettlement(); // @Query("SELECT * FROM paydetail WHERE transactionType != 10 AND voucherNo <= :voucherNo") @Query("SELECT * FROM paydetail WHERE transactionType != 10 AND voucherNo IN(:voucherNo)") diff --git a/baselib/src/main/java/com/utsmyanmar/baselib/repo/Repository.java b/baselib/src/main/java/com/utsmyanmar/baselib/repo/Repository.java index f74538f..fd666bb 100644 --- a/baselib/src/main/java/com/utsmyanmar/baselib/repo/Repository.java +++ b/baselib/src/main/java/com/utsmyanmar/baselib/repo/Repository.java @@ -99,7 +99,7 @@ public class Repository { public LiveData> getTransactionHistory(){ return payDetailDao.getTransactionHistory();} - public LiveData> getLastSettlement(String voucherNo) { return payDetailDao.getLastSettlement(voucherNo);} + public LiveData> getLastSettlement() { return payDetailDao.getLastSettlement();} public LiveData> getLastTransaction(String voucherNo) { return payDetailDao.getLastTransaction(voucherNo);} 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 b0782d1..6414bc1 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 @@ -38,8 +38,8 @@ public class SystemParamsSettings implements Serializable { private boolean checkExpSwitch = false; -// private String tmsAddress = "https://posmgmt.myanmarorientalbank.com/api/v1"; - private String tmsAddress = "https://sirius-nest.utsmyanmar.com/api/v1"; + private String tmsAddress = "https://posmgmt.myanmarorientalbank.com/api/v1"; +// private String tmsAddress = "https://sirius-nest.utsmyanmar.com/api/v1"; // private String tmsAddress = "http://128.199.170.203"; private String terminalCapability = "E0E8C8";