Compare commits
No commits in common. "2937a747c8dd3bee68ada9659f9c5047fb136514" and "948aba0a8ad24fdb5ff423e6a7f50c3bc38d755d" have entirely different histories.
2937a747c8
...
948aba0a8a
@ -4,10 +4,8 @@ import android.content.Context
|
|||||||
import android.net.ConnectivityManager
|
import android.net.ConnectivityManager
|
||||||
import android.net.Network
|
import android.net.Network
|
||||||
import android.net.NetworkCapabilities
|
import android.net.NetworkCapabilities
|
||||||
import android.os.Build
|
|
||||||
import android.os.Handler
|
import android.os.Handler
|
||||||
import android.os.Looper
|
import android.os.Looper
|
||||||
import androidx.annotation.RequiresApi
|
|
||||||
import androidx.compose.animation.core.LinearEasing
|
import androidx.compose.animation.core.LinearEasing
|
||||||
import androidx.compose.animation.core.animateFloatAsState
|
import androidx.compose.animation.core.animateFloatAsState
|
||||||
import androidx.compose.animation.core.tween
|
import androidx.compose.animation.core.tween
|
||||||
@ -102,7 +100,6 @@ import kotlinx.coroutines.delay
|
|||||||
import kotlinx.coroutines.launch
|
import kotlinx.coroutines.launch
|
||||||
import kotlin.time.Duration.Companion.milliseconds
|
import kotlin.time.Duration.Companion.milliseconds
|
||||||
|
|
||||||
@RequiresApi(Build.VERSION_CODES.N)
|
|
||||||
@Composable
|
@Composable
|
||||||
fun DashboardScreen2(
|
fun DashboardScreen2(
|
||||||
onNavigateAmount: (String) -> Unit = {},
|
onNavigateAmount: (String) -> Unit = {},
|
||||||
@ -476,8 +473,8 @@ fun DashboardScreen2(
|
|||||||
|
|
||||||
@Composable
|
@Composable
|
||||||
private fun AdvertisingArea(
|
private fun AdvertisingArea(
|
||||||
modifier: Modifier = Modifier,
|
|
||||||
carouselUrls: List<String> = emptyList(),
|
carouselUrls: List<String> = emptyList(),
|
||||||
|
modifier: Modifier = Modifier
|
||||||
) {
|
) {
|
||||||
val imageModels: List<Any> = carouselUrls.ifEmpty {
|
val imageModels: List<Any> = carouselUrls.ifEmpty {
|
||||||
listOf(R.drawable.sunmi1, R.drawable.sunmi2, R.drawable.sunmi3)
|
listOf(R.drawable.sunmi1, R.drawable.sunmi2, R.drawable.sunmi3)
|
||||||
@ -532,7 +529,7 @@ private fun SummaryCard(
|
|||||||
var now by remember { mutableLongStateOf(System.currentTimeMillis()) }
|
var now by remember { mutableLongStateOf(System.currentTimeMillis()) }
|
||||||
LaunchedEffect(Unit) {
|
LaunchedEffect(Unit) {
|
||||||
while (true) {
|
while (true) {
|
||||||
delay(30_000.milliseconds)
|
delay(30_000)
|
||||||
now = System.currentTimeMillis()
|
now = System.currentTimeMillis()
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@ -693,15 +690,15 @@ private fun buildMenuItems(
|
|||||||
tint = Color.LegacyRed
|
tint = Color.LegacyRed
|
||||||
)
|
)
|
||||||
}) { onNavigateAmount("Sale") },
|
}) { onNavigateAmount("Sale") },
|
||||||
// DashboardMenuItem(
|
DashboardMenuItem(
|
||||||
// "MMQR",
|
"MMQR",
|
||||||
// {
|
{
|
||||||
// Image(
|
Image(
|
||||||
// painter = painterResource(R.drawable.ic_mmqr_logo),
|
painter = painterResource(R.drawable.ic_mmqr_logo),
|
||||||
// contentDescription = null,
|
contentDescription = null,
|
||||||
// modifier = Modifier.height(48.dp)
|
modifier = Modifier.height(48.dp)
|
||||||
// )
|
)
|
||||||
// }) { },
|
}) { },
|
||||||
DashboardMenuItem(
|
DashboardMenuItem(
|
||||||
"History",
|
"History",
|
||||||
{
|
{
|
||||||
@ -990,10 +987,10 @@ private fun TrnxRow(record: TrnxRecord) {
|
|||||||
|
|
||||||
Column(modifier = Modifier.weight(1f)) {
|
Column(modifier = Modifier.weight(1f)) {
|
||||||
Text(
|
Text(
|
||||||
text =record.typeLabel,
|
text = if (record.isVoided) "${record.typeLabel} (Voided)" else record.typeLabel,
|
||||||
fontSize = 13.sp,
|
fontSize = 13.sp,
|
||||||
fontWeight = FontWeight.SemiBold,
|
fontWeight = FontWeight.SemiBold,
|
||||||
color = Color.Black
|
color = if (record.isVoided) Color.Gray else Color.Black
|
||||||
)
|
)
|
||||||
Text(
|
Text(
|
||||||
text = record.maskedCard,
|
text = record.maskedCard,
|
||||||
@ -1066,7 +1063,6 @@ private val previewTransactions = listOf(
|
|||||||
),
|
),
|
||||||
)
|
)
|
||||||
|
|
||||||
@RequiresApi(Build.VERSION_CODES.N)
|
|
||||||
@P3Preview
|
@P3Preview
|
||||||
@P2Preview
|
@P2Preview
|
||||||
@Composable
|
@Composable
|
||||||
@ -1085,7 +1081,6 @@ fun PreviewItem() {
|
|||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
@RequiresApi(Build.VERSION_CODES.N)
|
|
||||||
@Composable
|
@Composable
|
||||||
private fun rememberIsOnline() = run {
|
private fun rememberIsOnline() = run {
|
||||||
val context = LocalContext.current
|
val context = LocalContext.current
|
||||||
|
|||||||
@ -29,14 +29,14 @@ class DashboardViewModel @Inject constructor(
|
|||||||
|
|
||||||
init {
|
init {
|
||||||
viewModelScope.launch {
|
viewModelScope.launch {
|
||||||
repository.getLastTenTransactions().asFlow().collect { payDetails ->
|
repository.getAllTrans().asFlow().collect { payDetails ->
|
||||||
_uiState.update {
|
_uiState.update {
|
||||||
it.copy(
|
it.copy(
|
||||||
recentTransactions = payDetails.map { pd -> pd.toRecord() }
|
recentTransactions = payDetails.take(10).map { pd -> pd.toRecord() }
|
||||||
)
|
)
|
||||||
}
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
}
|
||||||
refreshLastSyncTime()
|
refreshLastSyncTime()
|
||||||
loadCarouselUrls()
|
loadCarouselUrls()
|
||||||
}
|
}
|
||||||
|
|||||||
@ -5,7 +5,6 @@ import androidx.activity.ComponentActivity
|
|||||||
import androidx.compose.runtime.Composable
|
import androidx.compose.runtime.Composable
|
||||||
import androidx.compose.ui.platform.LocalContext
|
import androidx.compose.ui.platform.LocalContext
|
||||||
import androidx.hilt.navigation.compose.hiltViewModel
|
import androidx.hilt.navigation.compose.hiltViewModel
|
||||||
import androidx.lifecycle.compose.collectAsStateWithLifecycle
|
|
||||||
import androidx.lifecycle.viewmodel.compose.viewModel
|
import androidx.lifecycle.viewmodel.compose.viewModel
|
||||||
import androidx.navigation.NavHostController
|
import androidx.navigation.NavHostController
|
||||||
import androidx.navigation.NavType
|
import androidx.navigation.NavType
|
||||||
@ -16,7 +15,6 @@ import com.mob.utsmyanmar.model.ProcessCode
|
|||||||
import com.mob.utsmyanmar.ui.cardwaiting.CardWaitingScreen
|
import com.mob.utsmyanmar.ui.cardwaiting.CardWaitingScreen
|
||||||
import com.mob.utsmyanmar.ui.cardwaiting.CardWaitingViewModel
|
import com.mob.utsmyanmar.ui.cardwaiting.CardWaitingViewModel
|
||||||
import com.mob.utsmyanmar.ui.dashboard.DashboardScreen2
|
import com.mob.utsmyanmar.ui.dashboard.DashboardScreen2
|
||||||
import com.mob.utsmyanmar.ui.dashboard.DashboardViewModel
|
|
||||||
import com.mob.utsmyanmar.ui.dashboard.SeeMoreScreen
|
import com.mob.utsmyanmar.ui.dashboard.SeeMoreScreen
|
||||||
import com.mob.utsmyanmar.ui.device_info.DeviceInfoViewModel
|
import com.mob.utsmyanmar.ui.device_info.DeviceInfoViewModel
|
||||||
import com.mob.utsmyanmar.ui.functions.FunctionsScreen
|
import com.mob.utsmyanmar.ui.functions.FunctionsScreen
|
||||||
@ -80,51 +78,19 @@ fun AppNavGraph(
|
|||||||
composable(Routes.Dashboard.route) {
|
composable(Routes.Dashboard.route) {
|
||||||
val sharedViewModel: SharedViewModel = hiltViewModel(activity)
|
val sharedViewModel: SharedViewModel = hiltViewModel(activity)
|
||||||
val transProcessViewModel: TransProcessViewModel = hiltViewModel(activity)
|
val transProcessViewModel: TransProcessViewModel = hiltViewModel(activity)
|
||||||
val dashboardViewModel: DashboardViewModel = hiltViewModel(activity)
|
|
||||||
val dashboardUiState = dashboardViewModel.uiState.collectAsStateWithLifecycle().value
|
|
||||||
|
|
||||||
transProcessViewModel.resetTransactionStatus()
|
transProcessViewModel.resetTransactionStatus()
|
||||||
DashboardScreen2(
|
DashboardScreen2(
|
||||||
dashboardUiState = dashboardUiState,
|
|
||||||
onNavigateAmount = { action ->
|
onNavigateAmount = { action ->
|
||||||
when (action) {
|
if(action == "Sale"){
|
||||||
"Sale" -> {
|
sharedViewModel.transactionsType.value = TransactionsType.SALE;
|
||||||
sharedViewModel.transactionsType.value = TransactionsType.SALE
|
sharedViewModel.processCode.value = ProcessCode.SALE_PURCHASE + ProcessCode.SMART + ProcessCode.TO_ACCOUNT;
|
||||||
sharedViewModel.processCode.value = ProcessCode.SALE_PURCHASE + ProcessCode.SMART + ProcessCode.TO_ACCOUNT
|
|
||||||
navController.navigate(Routes.Amount.createRoute(action)) {
|
|
||||||
launchSingleTop = true
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
else -> {
|
|
||||||
navController.navigate(Routes.Amount.createRoute(action)) {
|
|
||||||
launchSingleTop = true
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
},
|
|
||||||
onNavigateAction = { action ->
|
|
||||||
when (action) {
|
|
||||||
"Void" -> {
|
|
||||||
sharedViewModel.transactionsType.value = TransactionsType.VOID
|
|
||||||
navController.navigate(Routes.VoidTrace.route) {
|
|
||||||
launchSingleTop = true
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
"Pre-Auth Complete Void" -> {
|
navController.navigate(Routes.Amount.createRoute(action)) {
|
||||||
sharedViewModel.transactionsType.value = TransactionsType.PRE_AUTH_COMPLETE_VOID
|
launchSingleTop = true
|
||||||
navController.navigate(Routes.VoidTrace.route) {
|
|
||||||
launchSingleTop = true
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
else -> {
|
|
||||||
navController.navigate(Routes.Amount.createRoute(action)) {
|
|
||||||
launchSingleTop = true
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
|
||||||
},
|
},
|
||||||
onNavigateSignOn = {
|
onNavigateSignOn = {
|
||||||
navController.navigate(Routes.SignOn.route) {
|
navController.navigate(Routes.SignOn.route) {
|
||||||
|
|||||||
@ -1,41 +1,13 @@
|
|||||||
package com.mob.utsmyanmar.ui.refund_rrn
|
package com.mob.utsmyanmar.ui.refund_rrn
|
||||||
|
|
||||||
import androidx.compose.foundation.background
|
|
||||||
import androidx.compose.foundation.clickable
|
|
||||||
import androidx.compose.foundation.layout.Arrangement
|
|
||||||
import androidx.compose.foundation.layout.Box
|
|
||||||
import androidx.compose.foundation.layout.Column
|
|
||||||
import androidx.compose.foundation.layout.Row
|
|
||||||
import androidx.compose.foundation.layout.Spacer
|
|
||||||
import androidx.compose.foundation.layout.fillMaxSize
|
|
||||||
import androidx.compose.foundation.layout.fillMaxWidth
|
|
||||||
import androidx.compose.foundation.layout.height
|
|
||||||
import androidx.compose.foundation.layout.padding
|
|
||||||
import androidx.compose.foundation.shape.RoundedCornerShape
|
|
||||||
import androidx.compose.material.icons.Icons
|
|
||||||
import androidx.compose.material.icons.automirrored.filled.ArrowBack
|
|
||||||
import androidx.compose.material3.Button
|
|
||||||
import androidx.compose.material3.ButtonDefaults
|
|
||||||
import androidx.compose.material3.Scaffold
|
|
||||||
import androidx.compose.material3.Text
|
|
||||||
import androidx.compose.runtime.Composable
|
import androidx.compose.runtime.Composable
|
||||||
import androidx.compose.runtime.LaunchedEffect
|
import androidx.compose.runtime.LaunchedEffect
|
||||||
import androidx.compose.runtime.getValue
|
import androidx.compose.runtime.getValue
|
||||||
import androidx.compose.runtime.mutableStateOf
|
import androidx.compose.runtime.mutableStateOf
|
||||||
import androidx.compose.runtime.saveable.rememberSaveable
|
import androidx.compose.runtime.saveable.rememberSaveable
|
||||||
import androidx.compose.runtime.setValue
|
import androidx.compose.runtime.setValue
|
||||||
import androidx.compose.ui.Alignment
|
|
||||||
import androidx.compose.ui.Modifier
|
|
||||||
import androidx.compose.ui.draw.shadow
|
|
||||||
import androidx.compose.ui.text.font.FontWeight
|
|
||||||
import androidx.compose.ui.text.style.TextAlign
|
|
||||||
import androidx.compose.ui.tooling.preview.Preview
|
|
||||||
import androidx.compose.ui.unit.dp
|
|
||||||
import androidx.compose.ui.unit.sp
|
|
||||||
import androidx.lifecycle.compose.collectAsStateWithLifecycle
|
import androidx.lifecycle.compose.collectAsStateWithLifecycle
|
||||||
import com.mob.utsmyanmar.ui.components.appbar.AppBar
|
import com.mob.utsmyanmar.ui.components.NumericEntryScreen
|
||||||
import com.mob.utsmyanmar.ui.theme.Color
|
|
||||||
import com.mob.utsmyanmar.ui.theme.MOBPOSTheme
|
|
||||||
import com.mob.utsmyanmar.viewmodel.SharedViewModel
|
import com.mob.utsmyanmar.viewmodel.SharedViewModel
|
||||||
import com.mob.utsmyanmar.viewmodel.TransProcessViewModel
|
import com.mob.utsmyanmar.viewmodel.TransProcessViewModel
|
||||||
import com.utsmyanmar.paylibs.model.PayDetail
|
import com.utsmyanmar.paylibs.model.PayDetail
|
||||||
@ -66,13 +38,18 @@ fun InputRrnRoute(
|
|||||||
|
|
||||||
val payDetailState by rrnViewModel.payDetailState.collectAsStateWithLifecycle()
|
val payDetailState by rrnViewModel.payDetailState.collectAsStateWithLifecycle()
|
||||||
|
|
||||||
|
|
||||||
fun processPreAuthComp(payDetail: PayDetail) {
|
fun processPreAuthComp(payDetail: PayDetail) {
|
||||||
val newPay = transProcessViewModel.payDetail
|
val newPay = transProcessViewModel.payDetail
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
newPay?.setReferNo(payDetail.referNo)
|
newPay?.setReferNo(payDetail.referNo)
|
||||||
newPay?.setApprovalCode(payDetail.getApprovalCode())
|
newPay?.setApprovalCode(payDetail.getApprovalCode())
|
||||||
newPay?.setTradeTime(payDetail.getTradeTime())
|
newPay?.setTradeTime(payDetail.getTradeTime())
|
||||||
newPay?.setTradeDate(payDetail.getTradeDate())
|
newPay?.setTradeDate(payDetail.getTradeDate())
|
||||||
|
|
||||||
|
|
||||||
val tradeData = TradeData()
|
val tradeData = TradeData()
|
||||||
tradeData.payDetail = newPay
|
tradeData.payDetail = newPay
|
||||||
transProcessViewModel.setOldTransPayDetail(payDetail)
|
transProcessViewModel.setOldTransPayDetail(payDetail)
|
||||||
@ -80,12 +57,15 @@ fun InputRrnRoute(
|
|||||||
|
|
||||||
rrnViewModel.resetState()
|
rrnViewModel.resetState()
|
||||||
onNavigateProcessing()
|
onNavigateProcessing()
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
fun processPreAuthVoid(payDetail: PayDetail) {
|
fun processPreAuthVoid(payDetail: PayDetail) {
|
||||||
val newPay = transProcessViewModel.payDetail
|
val newPay = transProcessViewModel.payDetail
|
||||||
|
|
||||||
newPay?.setReferNo(payDetail.referNo)
|
newPay?.setReferNo(payDetail.referNo)
|
||||||
|
|
||||||
|
|
||||||
val tradeData = TradeData()
|
val tradeData = TradeData()
|
||||||
tradeData.payDetail = newPay
|
tradeData.payDetail = newPay
|
||||||
transProcessViewModel.setOldTransPayDetail(payDetail)
|
transProcessViewModel.setOldTransPayDetail(payDetail)
|
||||||
@ -95,272 +75,90 @@ fun InputRrnRoute(
|
|||||||
onNavigateProcessing()
|
onNavigateProcessing()
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
LaunchedEffect(payDetailState) {
|
LaunchedEffect(payDetailState) {
|
||||||
LogUtil.d("RRN", "paydetail state: $payDetailState")
|
LogUtil.d("RRN","paydetail state: $payDetailState")
|
||||||
when (val state = payDetailState) {
|
when (val state = payDetailState) {
|
||||||
|
|
||||||
is RRNViewModel.PayDetailState.Success -> {
|
is RRNViewModel.PayDetailState.Success -> {
|
||||||
|
|
||||||
|
|
||||||
sharedViewModel.payDetail.value = state.data
|
sharedViewModel.payDetail.value = state.data
|
||||||
sharedViewModel.rrNNo.value = state.data.referNo
|
sharedViewModel.rrNNo.value = state.data.referNo
|
||||||
|
|
||||||
if (sharedViewModel.transactionsType.value == TransactionsType.PRE_AUTH_COMPLETE) {
|
if(sharedViewModel.transactionsType.value == TransactionsType.PRE_AUTH_COMPLETE) {
|
||||||
processPreAuthComp(state.data)
|
processPreAuthComp(state.data)
|
||||||
} else if (sharedViewModel.transactionsType.value == TransactionsType.PRE_AUTH_VOID) {
|
} else if(sharedViewModel.transactionsType.value == TransactionsType.PRE_AUTH_VOID) {
|
||||||
processPreAuthVoid(state.data)
|
processPreAuthVoid(state.data)
|
||||||
}
|
}
|
||||||
}
|
|
||||||
|
|
||||||
|
}
|
||||||
is RRNViewModel.PayDetailState.Error -> {
|
is RRNViewModel.PayDetailState.Error -> {
|
||||||
errorMessage = state.message
|
errorMessage = state.message
|
||||||
rrnViewModel.resetState()
|
rrnViewModel.resetState()
|
||||||
|
// show dialog
|
||||||
|
// navigate to home
|
||||||
}
|
}
|
||||||
|
|
||||||
else -> Unit
|
else -> Unit
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
InputRrnContent(
|
NumericEntryScreen(
|
||||||
rrn = rrn,
|
title = "Input RRN",
|
||||||
errorMessage = errorMessage,
|
prompt = "Enter RRN",
|
||||||
onRrnChange = { value ->
|
displayValue = rrn.ifEmpty { "0" },
|
||||||
rrn = if (value == "Del") {
|
supportingText = errorMessage ?: "Enter the retrieval reference number to continue",
|
||||||
rrn.dropLast(1)
|
confirmText = "Next",
|
||||||
} else {
|
onBackClick = onBack,
|
||||||
appendRrnValue(rrn, value)
|
onCancelClick = onBack,
|
||||||
}
|
onConfirmClick = {
|
||||||
errorMessage = null
|
|
||||||
},
|
|
||||||
onBack = onBack,
|
|
||||||
onNext = {
|
|
||||||
val trimmedRrn = rrn.trim()
|
val trimmedRrn = rrn.trim()
|
||||||
|
|
||||||
if (POSUtil.getInstance().checkNumberField(trimmedRrn)) {
|
if (POSUtil.getInstance().checkNumberField(trimmedRrn)) {
|
||||||
errorMessage = "Invalid RRN"
|
errorMessage = "Invalid RRN"
|
||||||
return@InputRrnContent
|
return@NumericEntryScreen
|
||||||
}
|
}
|
||||||
|
|
||||||
sharedViewModel.rrNNo.value = trimmedRrn
|
sharedViewModel.rrNNo.value = trimmedRrn
|
||||||
|
|
||||||
if (sharedViewModel.transactionsType.value == TransactionsType.REFUND) {
|
|
||||||
|
if(sharedViewModel.transactionsType.value == TransactionsType.REFUND ) {
|
||||||
val newPay = transProcessViewModel.payDetail
|
val newPay = transProcessViewModel.payDetail
|
||||||
|
|
||||||
newPay?.setReferNo(trimmedRrn)
|
newPay?.setReferNo(trimmedRrn)
|
||||||
val tradeData = TradeData()
|
val tradeData = TradeData()
|
||||||
tradeData.payDetail = newPay
|
tradeData.payDetail = newPay
|
||||||
transProcessViewModel.setTradeData(tradeData)
|
transProcessViewModel.setTradeData(tradeData)
|
||||||
rrnViewModel.resetState()
|
rrnViewModel.resetState()
|
||||||
onNavigateProcessing()
|
onNavigateProcessing()
|
||||||
} else {
|
} else{
|
||||||
rrnViewModel.searchPayDetail(
|
rrnViewModel.searchPayDetail(
|
||||||
trimmedRrn,
|
trimmedRrn,
|
||||||
sharedViewModel.payDetail.value?.cardNo ?: ""
|
sharedViewModel.payDetail.value?.cardNo?:""
|
||||||
)
|
)
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
},
|
},
|
||||||
onDelete = {
|
onKeyClick = { value ->
|
||||||
if (rrn.isNotEmpty()) {
|
rrn = appendRrnValue(rrn, value)
|
||||||
rrn = rrn.dropLast(1)
|
errorMessage = null
|
||||||
}
|
},
|
||||||
}
|
onDeleteClick = {
|
||||||
)
|
rrn = rrn.dropLast(1)
|
||||||
}
|
errorMessage = null
|
||||||
|
},
|
||||||
@Composable
|
confirmEnabled = rrn.isNotEmpty(),
|
||||||
private fun InputRrnContent(
|
canDelete = rrn.isNotEmpty(),
|
||||||
rrn: String,
|
keys = listOf(
|
||||||
errorMessage: String?,
|
listOf("1", "2", "3"),
|
||||||
onRrnChange: (String) -> Unit,
|
listOf("4", "5", "6"),
|
||||||
onBack: () -> Unit,
|
listOf("7", "8", "9"),
|
||||||
onNext: () -> Unit,
|
listOf("", "0", "00")
|
||||||
onDelete: () -> Unit,
|
|
||||||
) {
|
|
||||||
Scaffold(
|
|
||||||
containerColor = Color.IvoryBeige,
|
|
||||||
topBar = {
|
|
||||||
AppBar(
|
|
||||||
title = "Input RRN",
|
|
||||||
icon = Icons.AutoMirrored.Filled.ArrowBack,
|
|
||||||
onIconClick = onBack
|
|
||||||
)
|
|
||||||
}
|
|
||||||
) { paddingValues ->
|
|
||||||
Column(
|
|
||||||
modifier = Modifier
|
|
||||||
.fillMaxSize()
|
|
||||||
.padding(paddingValues)
|
|
||||||
) {
|
|
||||||
Column(
|
|
||||||
modifier = Modifier
|
|
||||||
.fillMaxSize()
|
|
||||||
.padding(horizontal = 16.dp),
|
|
||||||
verticalArrangement = Arrangement.SpaceBetween
|
|
||||||
) {
|
|
||||||
Column(
|
|
||||||
modifier = Modifier.fillMaxWidth()
|
|
||||||
) {
|
|
||||||
Text(
|
|
||||||
text = "Enter RRN",
|
|
||||||
color = Color.Gray,
|
|
||||||
fontSize = 11.sp,
|
|
||||||
modifier = Modifier.align(Alignment.CenterHorizontally)
|
|
||||||
)
|
|
||||||
|
|
||||||
Spacer(modifier = Modifier.height(8.dp))
|
|
||||||
|
|
||||||
Text(
|
|
||||||
text = rrn.ifEmpty { "0" },
|
|
||||||
color = Color.LegacyRed,
|
|
||||||
fontSize = 32.sp,
|
|
||||||
fontWeight = FontWeight.Bold,
|
|
||||||
modifier = Modifier.align(Alignment.CenterHorizontally)
|
|
||||||
)
|
|
||||||
|
|
||||||
Spacer(modifier = Modifier.height(12.dp))
|
|
||||||
|
|
||||||
Text(
|
|
||||||
text = errorMessage ?: "Enter the retrieval reference number to continue",
|
|
||||||
color = if (errorMessage == null) Color.Gray else Color.Error,
|
|
||||||
fontSize = 11.sp,
|
|
||||||
modifier = Modifier.align(Alignment.CenterHorizontally)
|
|
||||||
)
|
|
||||||
}
|
|
||||||
|
|
||||||
Spacer(modifier = Modifier.height(24.dp))
|
|
||||||
|
|
||||||
Column(
|
|
||||||
modifier = Modifier.fillMaxWidth()
|
|
||||||
) {
|
|
||||||
RrnKeypad(
|
|
||||||
onKeyClick = onRrnChange,
|
|
||||||
canDelete = rrn.isNotEmpty()
|
|
||||||
)
|
|
||||||
|
|
||||||
Spacer(modifier = Modifier.height(24.dp))
|
|
||||||
|
|
||||||
Row(
|
|
||||||
modifier = Modifier
|
|
||||||
.fillMaxWidth()
|
|
||||||
.padding(bottom = 18.dp),
|
|
||||||
horizontalArrangement = Arrangement.spacedBy(12.dp)
|
|
||||||
) {
|
|
||||||
Button(
|
|
||||||
onClick = onBack,
|
|
||||||
modifier = Modifier
|
|
||||||
.weight(1f)
|
|
||||||
.height(56.dp),
|
|
||||||
shape = RoundedCornerShape(8.dp),
|
|
||||||
colors = ButtonDefaults.buttonColors(
|
|
||||||
containerColor = Color.White,
|
|
||||||
contentColor = Color.LegacyRed
|
|
||||||
)
|
|
||||||
) {
|
|
||||||
Text("Cancel")
|
|
||||||
}
|
|
||||||
|
|
||||||
Button(
|
|
||||||
onClick = onNext,
|
|
||||||
modifier = Modifier
|
|
||||||
.weight(1f)
|
|
||||||
.height(56.dp),
|
|
||||||
enabled = rrn.isNotBlank(),
|
|
||||||
shape = RoundedCornerShape(8.dp),
|
|
||||||
colors = ButtonDefaults.buttonColors(
|
|
||||||
containerColor = Color.LegacyRed,
|
|
||||||
contentColor = Color.White,
|
|
||||||
disabledContainerColor = Color.LegacyRed.copy(alpha = 0.5f),
|
|
||||||
disabledContentColor = Color.White
|
|
||||||
)
|
|
||||||
) {
|
|
||||||
Text("Next")
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
// Card(
|
|
||||||
// modifier = Modifier
|
|
||||||
// .align(Alignment.TopEnd)
|
|
||||||
// .padding(top = 110.dp, end = 16.dp)
|
|
||||||
// .clickable(enabled = rrn.isNotEmpty()) {
|
|
||||||
// onDelete()
|
|
||||||
// },
|
|
||||||
// shape = RoundedCornerShape(18.dp),
|
|
||||||
// colors = CardDefaults.cardColors(containerColor = Color.White),
|
|
||||||
// elevation = CardDefaults.cardElevation(defaultElevation = 6.dp)
|
|
||||||
// ) {
|
|
||||||
// androidx.compose.material3.Icon(
|
|
||||||
// imageVector = Icons.Rounded.Backspace,
|
|
||||||
// contentDescription = "Delete",
|
|
||||||
// tint = if (rrn.isNotEmpty()) Color.LegacyRed else Color.Gray,
|
|
||||||
// modifier = Modifier.padding(horizontal = 14.dp, vertical = 12.dp)
|
|
||||||
// )
|
|
||||||
// }
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
@Composable
|
|
||||||
private fun RrnKeypad(
|
|
||||||
onKeyClick: (String) -> Unit,
|
|
||||||
canDelete: Boolean
|
|
||||||
) {
|
|
||||||
val keys = listOf(
|
|
||||||
listOf("1", "2", "3"),
|
|
||||||
listOf("4", "5", "6"),
|
|
||||||
listOf("7", "8", "9"),
|
|
||||||
listOf("Del", "0", "00")
|
|
||||||
)
|
|
||||||
|
|
||||||
Column(
|
|
||||||
modifier = Modifier.fillMaxWidth(),
|
|
||||||
verticalArrangement = Arrangement.spacedBy(6.dp)
|
|
||||||
) {
|
|
||||||
keys.forEach { row ->
|
|
||||||
Row(
|
|
||||||
modifier = Modifier.fillMaxWidth(),
|
|
||||||
horizontalArrangement = Arrangement.spacedBy(6.dp)
|
|
||||||
) {
|
|
||||||
row.forEach { key ->
|
|
||||||
RrnKeypadButton(
|
|
||||||
text = key,
|
|
||||||
modifier = Modifier.weight(1f),
|
|
||||||
enabled = key.isNotBlank() && (key != "Del" || canDelete),
|
|
||||||
onClick = { onKeyClick(key) }
|
|
||||||
)
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
@Composable
|
|
||||||
private fun RrnKeypadButton(
|
|
||||||
text: String,
|
|
||||||
modifier: Modifier = Modifier,
|
|
||||||
enabled: Boolean = true,
|
|
||||||
onClick: () -> Unit
|
|
||||||
) {
|
|
||||||
Box(
|
|
||||||
modifier = modifier
|
|
||||||
.height(66.dp)
|
|
||||||
.shadow(
|
|
||||||
elevation = 2.dp,
|
|
||||||
shape = RoundedCornerShape(8.dp),
|
|
||||||
clip = false
|
|
||||||
)
|
|
||||||
.background(
|
|
||||||
color = Color.White,
|
|
||||||
shape = RoundedCornerShape(8.dp)
|
|
||||||
)
|
|
||||||
.clickable(enabled = enabled) { onClick() },
|
|
||||||
contentAlignment = Alignment.Center
|
|
||||||
) {
|
|
||||||
Text(
|
|
||||||
text = text,
|
|
||||||
color = if (enabled) Color.LegacyRed else Color.Gray,
|
|
||||||
fontSize = 24.sp,
|
|
||||||
fontWeight = FontWeight.Normal,
|
|
||||||
textAlign = TextAlign.Center
|
|
||||||
)
|
)
|
||||||
}
|
)
|
||||||
}
|
}
|
||||||
|
|
||||||
private fun appendRrnValue(current: String, value: String): String {
|
private fun appendRrnValue(current: String, value: String): String {
|
||||||
@ -375,33 +173,3 @@ private fun appendRrnValue(current: String, value: String): String {
|
|||||||
|
|
||||||
return current + value.take(remainingDigits)
|
return current + value.take(remainingDigits)
|
||||||
}
|
}
|
||||||
|
|
||||||
@Preview(showBackground = true)
|
|
||||||
@Composable
|
|
||||||
private fun InputRrnPreview() {
|
|
||||||
MOBPOSTheme {
|
|
||||||
InputRrnContent(
|
|
||||||
rrn = "123456789012",
|
|
||||||
errorMessage = null,
|
|
||||||
onRrnChange = {},
|
|
||||||
onBack = {},
|
|
||||||
onNext = {},
|
|
||||||
onDelete = {}
|
|
||||||
)
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
@Preview(showBackground = true)
|
|
||||||
@Composable
|
|
||||||
private fun InputRrnErrorPreview() {
|
|
||||||
MOBPOSTheme {
|
|
||||||
InputRrnContent(
|
|
||||||
rrn = "123",
|
|
||||||
errorMessage = "Invalid RRN",
|
|
||||||
onRrnChange = {},
|
|
||||||
onBack = {},
|
|
||||||
onNext = {},
|
|
||||||
onDelete = {}
|
|
||||||
)
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|||||||
@ -145,9 +145,6 @@ public interface PayDetailDao {
|
|||||||
@Query("SELECT * FROM paydetail ORDER BY PID DESC LIMIT 3")
|
@Query("SELECT * FROM paydetail ORDER BY PID DESC LIMIT 3")
|
||||||
LiveData<List<PayDetail>> getLastThreeTransactions();
|
LiveData<List<PayDetail>> getLastThreeTransactions();
|
||||||
|
|
||||||
@Query("SELECT * FROM paydetail ORDER BY PID DESC LIMIT 10")
|
|
||||||
LiveData<List<PayDetail>> getLastTenTransactions();
|
|
||||||
|
|
||||||
@Query("SELECT * FROM paydetail ORDER BY PID DESC LIMIT 1")
|
@Query("SELECT * FROM paydetail ORDER BY PID DESC LIMIT 1")
|
||||||
LiveData<PayDetail> getLastTransaction();
|
LiveData<PayDetail> getLastTransaction();
|
||||||
|
|
||||||
|
|||||||
@ -113,10 +113,6 @@ public class Repository {
|
|||||||
|
|
||||||
public LiveData<List<PayDetail>> getLastThreeTransactions(){ return payDetailDao.getLastThreeTransactions();}
|
public LiveData<List<PayDetail>> getLastThreeTransactions(){ return payDetailDao.getLastThreeTransactions();}
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
public LiveData<List<PayDetail>> getLastTenTransactions() { return payDetailDao.getLastTenTransactions(); }
|
|
||||||
|
|
||||||
public LiveData<List<PayDetail>> getVoidableTransactions(int transType){
|
public LiveData<List<PayDetail>> getVoidableTransactions(int transType){
|
||||||
return payDetailDao.getVoidableTransactions(transType);
|
return payDetailDao.getVoidableTransactions(transType);
|
||||||
}
|
}
|
||||||
|
|||||||
@ -219,9 +219,7 @@ public abstract class BaseXPrint {
|
|||||||
|
|
||||||
String schemeName = "";
|
String schemeName = "";
|
||||||
schemeName = payDetail.getAccountType() == null ? "" : payDetail.getAccountType();
|
schemeName = payDetail.getAccountType() == null ? "" : payDetail.getAccountType();
|
||||||
sunmiPrinterService.setFontSize(20, innerResultCallback);
|
sunmiPrinterService.setFontSize(18, innerResultCallback);
|
||||||
sunmiPrinterService.setAlignment(0, innerResultCallback);
|
|
||||||
sunmiPrinterService.setFontName("libre_basker_ville.ttf", innerResultCallback);
|
|
||||||
String secondLineName = PrintUtils.getInstance().processNameSpaceSecondLine(PrintUtils.getInstance().getCardHolderName(payDetail.getCardHolderName()));
|
String secondLineName = PrintUtils.getInstance().processNameSpaceSecondLine(PrintUtils.getInstance().getCardHolderName(payDetail.getCardHolderName()));
|
||||||
String firstLineName = PrintUtils.getInstance().processNameSpaceFirstLine(PrintUtils.getInstance().getCardHolderName(payDetail.getCardHolderName()), secondLineName);
|
String firstLineName = PrintUtils.getInstance().processNameSpaceFirstLine(PrintUtils.getInstance().getCardHolderName(payDetail.getCardHolderName()), secondLineName);
|
||||||
|
|
||||||
@ -229,45 +227,32 @@ public abstract class BaseXPrint {
|
|||||||
if(payDetail.getAccountType().contains("Ctls")) {
|
if(payDetail.getAccountType().contains("Ctls")) {
|
||||||
cardType = payDetail.getAccountType().replace(" Ctls","");
|
cardType = payDetail.getAccountType().replace(" Ctls","");
|
||||||
}
|
}
|
||||||
// sunmiPrinterService.printColumnsString(new String[]{"CARD NUM :", PrintUtils.getInstance().cardNumMasking(payDetail.getCardNo())}, new int[]{2, 2}, new int[]{0, 1}, innerResultCallback);
|
sunmiPrinterService.printColumnsString(new String[]{"CARD NUM :", PrintUtils.getInstance().cardNumMasking(payDetail.getCardNo())}, new int[]{2, 2}, new int[]{0, 1}, innerResultCallback);
|
||||||
sunmiPrinterService.printText("CARD NUMBER : "+ PrintUtils.getInstance().cardNumMasking(payDetail.getCardNo()) + "\n", innerResultCallback);
|
|
||||||
|
|
||||||
if(!firstLineName.isEmpty()) {
|
if(!firstLineName.isEmpty()) {
|
||||||
sunmiPrinterService.printText("CARD HOLDER NAME: " + firstLineName + "\n", innerResultCallback);
|
sunmiPrinterService.printColumnsString(new String[]{"CARD HOLDER NAME:", firstLineName}, new int[]{2, 2}, new int[]{0, 1}, innerResultCallback);
|
||||||
// sunmiPrinterService.printColumnsString(new String[]{"CARD HOLDER NAME:", firstLineName}, new int[]{2, 2}, new int[]{0, 1}, innerResultCallback);
|
|
||||||
}
|
}
|
||||||
if(!secondLineName.isEmpty()) {
|
if(!secondLineName.isEmpty()) {
|
||||||
sunmiPrinterService.printText(" " + secondLineName + "\n", innerResultCallback);
|
sunmiPrinterService.printColumnsString(new String[]{secondLineName, ""}, new int[]{2, 2}, new int[]{0, 1}, innerResultCallback);
|
||||||
// sunmiPrinterService.printColumnsString(new String[]{secondLineName, ""}, new int[]{2, 2}, new int[]{0, 1}, innerResultCallback);
|
|
||||||
}
|
}
|
||||||
sunmiPrinterService.printText("ENTRY MODE : " + PrintUtils.getInstance().getEntryType(payDetail.getCardType()) + "\n", innerResultCallback);
|
sunmiPrinterService.printColumnsString(new String[]{"ENTRY MODE:" + PrintUtils.getInstance().getEntryType(payDetail.getCardType()), "EXPIRY DATE:" + PrintUtils.getInstance().getFormatExpDate(payDetail.getEXPDate())}, new int[]{2, 2}, new int[]{0, 2}, innerResultCallback);
|
||||||
sunmiPrinterService.printText("EXPIRY DATE : " + PrintUtils.getInstance().getFormatExpDate(payDetail.getEXPDate()) + "\n", innerResultCallback);
|
|
||||||
// sunmiPrinterService.printColumnsString(new String[]{"ENTRY MODE:" + PrintUtils.getInstance().getEntryType(payDetail.getCardType()), "EXPIRY DATE:" + PrintUtils.getInstance().getFormatExpDate(payDetail.getEXPDate())}, new int[]{2, 2}, new int[]{0, 2}, innerResultCallback);
|
|
||||||
if (payDetail.getTradeAnswerCode().equals(Constant.ANSWER_CODE_ACCEPT) || payDetail.getTradeAnswerCode().equals(Constant.ANSWER_CODE_APPROVED)) {
|
if (payDetail.getTradeAnswerCode().equals(Constant.ANSWER_CODE_ACCEPT) || payDetail.getTradeAnswerCode().equals(Constant.ANSWER_CODE_APPROVED)) {
|
||||||
sunmiPrinterService.printText("CARD TYPE : " + cardType + "\n", innerResultCallback);
|
sunmiPrinterService.printColumnsString(new String[]{"CARD TYPE:" + cardType, "APPRCODE:" + payDetail.getApprovalCode()}, new int[]{2, 2}, new int[]{0, 2}, innerResultCallback);
|
||||||
// sunmiPrinterService.printText("APPROVAL CODE : " + cardType + "\n", innerResultCallback);
|
|
||||||
// sunmiPrinterService.printColumnsString(new String[]{"CARD TYPE:" + cardType, "APPRCODE:" + payDetail.getApprovalCode()}, new int[]{2, 2}, new int[]{0, 2}, innerResultCallback);
|
|
||||||
} else {
|
} else {
|
||||||
sunmiPrinterService.printText("CARD TYPE : " + cardType + "\n", innerResultCallback);
|
sunmiPrinterService.printColumnsString(new String[]{"CARD TYPE:" + cardType, ""}, new int[]{2, 2}, new int[]{0, 2}, innerResultCallback);
|
||||||
// sunmiPrinterService.printColumnsString(new String[]{"CARD TYPE:" + cardType, ""}, new int[]{2, 2}, new int[]{0, 2}, innerResultCallback);
|
|
||||||
}
|
}
|
||||||
|
|
||||||
if(payDetail.getAID() == null || payDetail.getAID().isEmpty()){
|
if(payDetail.getAID() == null || payDetail.getAID().isEmpty()){
|
||||||
sunmiPrinterService.printText("AID : " + MPU_AID + "\n", innerResultCallback);
|
sunmiPrinterService.printColumnsString(new String[]{"AID", ":" + MPU_AID}, new int[]{1, 2}, new int[]{0, 0}, innerResultCallback);
|
||||||
// sunmiPrinterService.printColumnsString(new String[]{"AID", ":" + MPU_AID}, new int[]{1, 2}, new int[]{0, 0}, innerResultCallback);
|
|
||||||
} else {
|
} else {
|
||||||
sunmiPrinterService.printText("AID : " + payDetail.getAID() + "\n" , innerResultCallback);
|
sunmiPrinterService.printColumnsString(new String[]{"AID", ":" + payDetail.getAID()}, new int[]{1, 2}, new int[]{0, 0}, innerResultCallback);
|
||||||
// sunmiPrinterService.printColumnsString(new String[]{"AID", ":" + payDetail.getAID()}, new int[]{1, 2}, new int[]{0, 0}, innerResultCallback);
|
|
||||||
}
|
}
|
||||||
|
|
||||||
if (payDetail.getTradeAnswerCode().equals(Constant.ANSWER_CODE_ACCEPT) || payDetail.getTradeAnswerCode().equals(Constant.ANSWER_CODE_APPROVED)) {
|
if (payDetail.getTradeAnswerCode().equals(Constant.ANSWER_CODE_ACCEPT) || payDetail.getTradeAnswerCode().equals(Constant.ANSWER_CODE_APPROVED)) {
|
||||||
// sunmiPrinterService.printText("TXN ID : " + payDetail.getAID() + "\n" , innerResultCallback);
|
sunmiPrinterService.printColumnsString(new String[]{"TXN ID", ":" + payDetail.getReferNo()}, new int[]{1, 2}, new int[]{0, 0}, innerResultCallback);
|
||||||
// sunmiPrinterService.printColumnsString(new String[]{"TXN ID", ":" + payDetail.getReferNo()}, new int[]{1, 2}, new int[]{0, 0}, innerResultCallback);
|
|
||||||
}
|
}
|
||||||
sunmiPrinterService.printText("REF NUM : " + payDetail.getReferNo() + "\n", innerResultCallback);
|
sunmiPrinterService.printColumnsString(new String[]{"REF NUM", ":" + payDetail.getReferNo()}, new int[]{1, 2}, new int[]{0, 0}, innerResultCallback);
|
||||||
sunmiPrinterService.printText("TRACE NO : " + payDetail.getVoucherNo() + "\n", innerResultCallback);
|
sunmiPrinterService.printColumnsString(new String[]{"TRACE No", ":" + payDetail.getVoucherNo()}, new int[]{1, 2}, new int[]{0, 0}, innerResultCallback);
|
||||||
// sunmiPrinterService.printColumnsString(new String[]{"REF NUM", ":" + payDetail.getReferNo()}, new int[]{1, 2}, new int[]{0, 0}, innerResultCallback);
|
|
||||||
// sunmiPrinterService.printColumnsString(new String[]{"TRACE No", ":" + payDetail.getVoucherNo()}, new int[]{1, 2}, new int[]{0, 0}, innerResultCallback);
|
|
||||||
|
|
||||||
if (payDetail.getTradeAnswerCode().equals("00") || payDetail.getTradeAnswerCode().equals("000")) {
|
if (payDetail.getTradeAnswerCode().equals("00") || payDetail.getTradeAnswerCode().equals("000")) {
|
||||||
if (payDetail.getTransactionType() == TransactionType.CASH_ADVANCE) {
|
if (payDetail.getTransactionType() == TransactionType.CASH_ADVANCE) {
|
||||||
@ -815,6 +800,7 @@ public abstract class BaseXPrint {
|
|||||||
String merchantName = "";
|
String merchantName = "";
|
||||||
String merchantAddress = "";
|
String merchantAddress = "";
|
||||||
String merchantPhoneNo = "";
|
String merchantPhoneNo = "";
|
||||||
|
String terminalName = "";
|
||||||
List<String> wrappedAddressText = new ArrayList<>();
|
List<String> wrappedAddressText = new ArrayList<>();
|
||||||
|
|
||||||
merchantName = SystemParamsOperation.getInstance().getMerchantName();
|
merchantName = SystemParamsOperation.getInstance().getMerchantName();
|
||||||
@ -839,11 +825,14 @@ public abstract class BaseXPrint {
|
|||||||
merchantPhoneNo = "";
|
merchantPhoneNo = "";
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
try {
|
try {
|
||||||
|
|
||||||
sunmiPrinterService.sendRAWData(boldOn(), innerResultCallback);
|
sunmiPrinterService.sendRAWData(boldOn(), innerResultCallback);
|
||||||
sunmiPrinterService.setFontName(typeface_name, innerResultCallback);
|
sunmiPrinterService.setFontName(typeface_name, innerResultCallback);
|
||||||
sunmiPrinterService.setFontSize(22, innerResultCallback);
|
sunmiPrinterService.setFontSize(22, innerResultCallback);
|
||||||
sunmiPrinterService.printText(receiptHeader + "\n", innerResultCallback);
|
sunmiPrinterService.printText(receiptHeader + "\n", innerResultCallback);
|
||||||
|
// sunmiPrinterService.printTextWithFont(merchantName + "\n", "", 24, null);
|
||||||
sunmiPrinterService.sendRAWData(boldOff(), innerResultCallback);
|
sunmiPrinterService.sendRAWData(boldOff(), innerResultCallback);
|
||||||
sunmiPrinterService.setFontSize(textSize, innerResultCallback);
|
sunmiPrinterService.setFontSize(textSize, innerResultCallback);
|
||||||
for (String addressLine : wrappedAddressText) {
|
for (String addressLine : wrappedAddressText) {
|
||||||
@ -887,8 +876,12 @@ public abstract class BaseXPrint {
|
|||||||
protected void printTransHeader(PayDetail payDetail) {
|
protected void printTransHeader(PayDetail payDetail) {
|
||||||
String invoiceNo = payDetail.getInvoiceNo().isEmpty()?SystemParamsOperation.getInstance().getCurrentInvoiceNum() : payDetail.getInvoiceNo();
|
String invoiceNo = payDetail.getInvoiceNo().isEmpty()?SystemParamsOperation.getInstance().getCurrentInvoiceNum() : payDetail.getInvoiceNo();
|
||||||
String transType = payDetail.getTransType();
|
String transType = payDetail.getTransType();
|
||||||
|
String batchNum = "";
|
||||||
String traceNum = payDetail.getVoucherNo();
|
String traceNum = payDetail.getVoucherNo();
|
||||||
String batchNum = payDetail.getBatchNo();
|
// String traceNum = SystemParamsOperation.getInstance().getCurrentSerialNum();
|
||||||
|
|
||||||
|
|
||||||
|
batchNum = payDetail.getBatchNo();
|
||||||
|
|
||||||
try {
|
try {
|
||||||
sunmiPrinterService.setFontSize(20, innerResultCallback);
|
sunmiPrinterService.setFontSize(20, innerResultCallback);
|
||||||
@ -901,13 +894,26 @@ public abstract class BaseXPrint {
|
|||||||
} else if (payDetail.getTransType().equals(SUMMARY)) {
|
} else if (payDetail.getTransType().equals(SUMMARY)) {
|
||||||
sunmiPrinterService.printColumnsString(new String[]{"HOST :" + HOST_NAME_MPU, ""}, new int[]{2, 1}, new int[]{0, 2}, innerResultCallback);
|
sunmiPrinterService.printColumnsString(new String[]{"HOST :" + HOST_NAME_MPU, ""}, new int[]{2, 1}, new int[]{0, 2}, innerResultCallback);
|
||||||
}
|
}
|
||||||
sunmiPrinterService.printText("MID :"+payDetail.getMerchantNo()+"\n",innerResultCallback);
|
|
||||||
sunmiPrinterService.printText("TID :"+payDetail.getTerminalNo()+"\n",innerResultCallback);
|
/* 17 Sept 2024 Yoma requested to changed slip design for QR*/
|
||||||
|
// sunmiPrinterService.printColumnsString(new String[]{"MID :" + payDetail.getMerchantNo(), ""}, new int[]{3, 1}, new int[]{0, 2}, innerResultCallback);
|
||||||
|
// sunmiPrinterService.printColumnsString(new String[]{"TID :" + payDetail.getTerminalNo(), ""}, new int[]{3, 1}, new int[]{0, 2}, innerResultCallback);
|
||||||
|
|
||||||
|
sunmiPrinterService.printText("MID :"+payDetail.getMerchantNo()+"\n",innerResultCallback);
|
||||||
|
sunmiPrinterService.printText("TID :"+payDetail.getTerminalNo()+"\n",innerResultCallback);
|
||||||
|
|
||||||
sunmiPrinterService.lineWrap(2, innerResultCallback);
|
sunmiPrinterService.lineWrap(2, innerResultCallback);
|
||||||
|
|
||||||
sunmiPrinterService.sendRAWData(boldOn(), innerResultCallback);
|
sunmiPrinterService.sendRAWData(boldOn(), innerResultCallback);
|
||||||
sunmiPrinterService.setAlignment(1, innerResultCallback);
|
sunmiPrinterService.setAlignment(1, innerResultCallback);
|
||||||
sunmiPrinterService.setFontSize(22, innerResultCallback);
|
sunmiPrinterService.setFontSize(22, innerResultCallback);
|
||||||
|
// if(payDetail.transactionType == TransactionsType.WAVEPAY_REFUND.value) {
|
||||||
|
// sunmiPrinterService.printText("WAVEPAY (REFUND)" + "" + "\n", null);
|
||||||
|
// } else {
|
||||||
|
// sunmiPrinterService.printText(transType.replace("_", " ") + "" + "\n", null);
|
||||||
|
// }
|
||||||
sunmiPrinterService.printText(transType.replace("_", " ") + "" + "\n", null);
|
sunmiPrinterService.printText(transType.replace("_", " ") + "" + "\n", null);
|
||||||
|
|
||||||
sunmiPrinterService.sendRAWData(boldOff(), innerResultCallback);
|
sunmiPrinterService.sendRAWData(boldOff(), innerResultCallback);
|
||||||
sunmiPrinterService.setFontSize(textSize, innerResultCallback);
|
sunmiPrinterService.setFontSize(textSize, innerResultCallback);
|
||||||
if (!(payDetail.getQrTransStatus() != 1 && (payDetail.getTransactionType() == TransactionsType.WAVEPAY_REFUND.value || payDetail.getTransactionType() == TransactionsType.WAVEPAY.value))) {
|
if (!(payDetail.getQrTransStatus() != 1 && (payDetail.getTransactionType() == TransactionsType.WAVEPAY_REFUND.value || payDetail.getTransactionType() == TransactionsType.WAVEPAY.value))) {
|
||||||
|
|||||||
Loading…
Reference in New Issue
Block a user