From 342ff6a237872613b45c064283478bff0025179d Mon Sep 17 00:00:00 2001 From: androidlover5842 Date: Mon, 2 Feb 2026 05:27:06 +0530 Subject: [PATCH] roles: fix permissions --- .../java/com/android/trisolarispms/MainActivity.kt | 14 ++++++++++++-- .../ui/payment/BookingPaymentsScreen.kt | 7 ++++++- 2 files changed, 18 insertions(+), 3 deletions(-) diff --git a/app/src/main/java/com/android/trisolarispms/MainActivity.kt b/app/src/main/java/com/android/trisolarispms/MainActivity.kt index 89b66f6..7da0b35 100644 --- a/app/src/main/java/com/android/trisolarispms/MainActivity.kt +++ b/app/src/main/java/com/android/trisolarispms/MainActivity.kt @@ -105,6 +105,16 @@ class MainActivity : ComponentActivity() { val canDeleteCashPayment: (String) -> Boolean = { propertyId -> state.isSuperAdmin || state.propertyRoles[propertyId]?.contains("ADMIN") == true } + val canAddBookingPayment: (String) -> Boolean = { propertyId -> + state.isSuperAdmin || state.propertyRoles[propertyId]?.any { + it == "ADMIN" || it == "MANAGER" || it == "STAFF" + } == true + } + val canRefundBookingPayment: (String) -> Boolean = { propertyId -> + state.isSuperAdmin || state.propertyRoles[propertyId]?.any { + it == "ADMIN" || it == "MANAGER" + } == true + } val canManagePropertyUsers: (String) -> Boolean = { propertyId -> state.isSuperAdmin || state.propertyRoles[propertyId]?.contains("ADMIN") == true } @@ -579,9 +589,9 @@ class MainActivity : ComponentActivity() { is AppRoute.BookingPayments -> BookingPaymentsScreen( propertyId = currentRoute.propertyId, bookingId = currentRoute.bookingId, - canAddCash = canManageRazorpaySettings(currentRoute.propertyId), + canAddCash = canAddBookingPayment(currentRoute.propertyId), canDeleteCash = canDeleteCashPayment(currentRoute.propertyId), - canRefund = canManageRazorpaySettings(currentRoute.propertyId), + canRefund = canRefundBookingPayment(currentRoute.propertyId), onBack = { route.value = AppRoute.BookingDetailsTabs( currentRoute.propertyId, diff --git a/app/src/main/java/com/android/trisolarispms/ui/payment/BookingPaymentsScreen.kt b/app/src/main/java/com/android/trisolarispms/ui/payment/BookingPaymentsScreen.kt index f2fd641..b04450c 100644 --- a/app/src/main/java/com/android/trisolarispms/ui/payment/BookingPaymentsScreen.kt +++ b/app/src/main/java/com/android/trisolarispms/ui/payment/BookingPaymentsScreen.kt @@ -240,7 +240,12 @@ private fun PaymentCard( payment.currency?.let { append(" $it") } } Text(text = amountText, style = MaterialTheme.typography.titleMedium) - if (canRefund && (!payment.id.isNullOrBlank() || !payment.gatewayPaymentId.isNullOrBlank())) { + val hasRefundableAmount = (payment.amount ?: 0L) > 0L + if ( + canRefund && + hasRefundableAmount && + (!payment.id.isNullOrBlank() || !payment.gatewayPaymentId.isNullOrBlank()) + ) { TextButton(onClick = { onRefund(payment) }) { Text("Refund") }