diff --git a/android-app/app/src/main/java/com/korexlabs/dhinspeccion/ui/MobileActsScreen.kt b/android-app/app/src/main/java/com/korexlabs/dhinspeccion/ui/MobileActsScreen.kt index 8b3ea37..d1e6722 100644 --- a/android-app/app/src/main/java/com/korexlabs/dhinspeccion/ui/MobileActsScreen.kt +++ b/android-app/app/src/main/java/com/korexlabs/dhinspeccion/ui/MobileActsScreen.kt @@ -148,14 +148,20 @@ fun MobileActsScreen( } } - val hasOpenAct = model.acts.any { it.status == "DRAFT" || it.status == "READY" } - if (visit.status == "IN_PROGRESS" && !hasOpenAct) { + val hasDraftAct = model.acts.any { it.status == "DRAFT" } + if (visit.status == "IN_PROGRESS" && !hasDraftAct) { Card( Modifier.fillMaxWidth(), colors = CardDefaults.cardColors(containerColor = MaterialTheme.colorScheme.primaryContainer), ) { Column(Modifier.padding(12.dp), verticalArrangement = Arrangement.spacedBy(8.dp)) { Text("Nueva Acta", fontWeight = FontWeight.Bold) + if (model.acts.any { it.status == "READY" }) { + Text( + "Puede existir una nueva Acta en borrador aunque haya Actas preparadas pendientes de firma de empresa. Sólo se permite un borrador a la vez.", + style = MaterialTheme.typography.bodySmall, + ) + } val selectedInventory = model.selectedFieldAsset?.asset if (selectedInventory == null) { Text("Primero elegí una Instalación o Subinstalación desde Inventario de campo. Ese registro será el primer elemento del Acta.") @@ -361,17 +367,13 @@ fun MobileActsScreen( if (visit.status == "IN_PROGRESS" && model.acts.isNotEmpty()) { HorizontalDivider() val drafts = model.acts.count { it.status == "DRAFT" } - val readyMissingInspector = model.acts.any { summary -> - if (summary.status != "READY") false - else if (selected?.id == summary.id) { - model.actClosure?.signatures?.none { it.signerType == "INSPECTOR" && it.status == "SIGNED" } ?: true - } else true - } Text("Finalizar inspección", style = MaterialTheme.typography.titleMedium, fontWeight = FontWeight.Bold) - Text("No puede quedar ninguna Acta en borrador. Cada Acta preparada debe tener firma de inspector.") + Text( + "No puede quedar ninguna Acta en borrador. Al cerrar, el servidor verifica que cada Acta preparada tenga firma de inspector; si falta alguna, indicará cuál debe completarse.", + ) Button( onClick = { model.closeInspection() }, - enabled = !model.busy && drafts == 0 && !readyMissingInspector, + enabled = !model.busy && drafts == 0, modifier = Modifier.fillMaxWidth(), ) { Text("Cerrar inspección y salir de la empresa") } }