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 d1d0749..fcc56fd 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 @@ -126,13 +126,14 @@ fun MobileActsScreen( Text("Actas", style = MaterialTheme.typography.titleLarge, fontWeight = FontWeight.Bold) } Text("${visit.code} · ${visit.operatorCompany?.name.orEmpty()}") + visit.scopeAsset?.let { Text("Yacimiento: ${it.name}", style = MaterialTheme.typography.bodySmall) } F32ActMessage(model) Card(Modifier.fillMaxWidth()) { Column(Modifier.padding(12.dp), verticalArrangement = Arrangement.spacedBy(8.dp)) { - Text("Actas de esta Inspección", fontWeight = FontWeight.Bold) + Text("Actas de esta inspección", fontWeight = FontWeight.Bold) if (model.acts.isEmpty()) { - Text("Todavía no hay Actas. La primera se inicia sobre una Instalación/Subinstalación seleccionada.") + Text("Todavía no hay Actas. Creá la primera y después agregá los Hallazgos.") } model.acts.forEach { act -> val active = selected?.id == act.id @@ -156,15 +157,15 @@ fun MobileActsScreen( 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) + Column(Modifier.padding(14.dp), verticalArrangement = Arrangement.spacedBy(10.dp)) { + Text("Nueva Acta", style = MaterialTheme.typography.titleMedium, fontWeight = FontWeight.Bold) if (model.acts.any { it.status == "LOCKED" }) { Text( "Podés abrir una nueva Acta aunque otra esté BLOQUEADA esperando firmas. Sólo se permite un borrador a la vez.", style = MaterialTheme.typography.bodySmall, ) } - Text("Urgencia del Acta", fontWeight = FontWeight.Bold) + Text("Urgencia", fontWeight = FontWeight.Bold) Row(Modifier.fillMaxWidth(), horizontalArrangement = Arrangement.spacedBy(8.dp)) { AssistChip( onClick = { newActUrgency = "NON_URGENT" }, @@ -183,20 +184,15 @@ fun MobileActsScreen( }, 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.") - Button(onClick = onGoInventory, modifier = Modifier.fillMaxWidth()) { - Text("Ir a Inventario y elegir") - } - } else { - Text("Inventario inicial: ${selectedInventory.name} · ${selectedInventory.code}") - Button( - onClick = { model.createActForSelectedInventory(newActUrgency) }, - enabled = !model.busy, - modifier = Modifier.fillMaxWidth(), - ) { Text("Crear nueva Acta") } - } + Text( + "Abrí el Acta primero. Después elegís la Instalación o Subinstalación al agregar cada Hallazgo.", + style = MaterialTheme.typography.bodySmall, + ) + Button( + onClick = { model.createAct(newActUrgency) }, + enabled = !model.busy, + modifier = Modifier.fillMaxWidth(), + ) { Text("Crear nueva Acta") } } } } @@ -220,7 +216,21 @@ fun MobileActsScreen( when (selected.status) { "DRAFT" -> { - Text("1. Responsable de la empresa", style = MaterialTheme.typography.titleMedium, fontWeight = FontWeight.Bold) + Card( + Modifier.fillMaxWidth(), + colors = CardDefaults.cardColors(containerColor = MaterialTheme.colorScheme.primaryContainer), + ) { + Column(Modifier.padding(14.dp), verticalArrangement = Arrangement.spacedBy(8.dp)) { + Text("Hallazgos", style = MaterialTheme.typography.titleMedium, fontWeight = FontWeight.Bold) + Text("Buscá una Instalación o Subinstalación existente. Si no está, podés agregarla en campo en el mismo flujo.") + Button(onClick = onGoInventory, modifier = Modifier.fillMaxWidth()) { + Text("+ Agregar Hallazgo") + } + } + } + + HorizontalDivider() + Text("Responsable de la empresa", style = MaterialTheme.typography.titleMedium, fontWeight = FontWeight.Bold) Row(Modifier.fillMaxWidth(), horizontalArrangement = Arrangement.spacedBy(8.dp)) { AssistChip(onClick = { attendance = "PRESENT" }, label = { Text(if (attendance == "PRESENT") "✓ Presente" else "Presente") }) AssistChip(onClick = { attendance = "ABSENT" }, label = { Text(if (attendance == "ABSENT") "✓ Ausente" else "Ausente") }) @@ -259,12 +269,7 @@ fun MobileActsScreen( } HorizontalDivider() - Text("2. Hallazgos / verificaciones", style = MaterialTheme.typography.titleMedium, fontWeight = FontWeight.Bold) - Text("Los Hallazgos se cargan desde Inventario y quedan vinculados explícitamente a ${selected.code}. El Acta también puede finalizar sin Hallazgos cuando corresponde dejar constancia de una inspección o verificación sin nuevos incumplimientos.") - Button(onClick = onGoInventory, modifier = Modifier.fillMaxWidth()) { Text("Ir a Inventario / Hallazgos") } - - HorizontalDivider() - Text("3. Finalizar contenido", style = MaterialTheme.typography.titleMedium, fontWeight = FontWeight.Bold) + Text("Finalizar contenido", style = MaterialTheme.typography.titleMedium, fontWeight = FontWeight.Bold) Text("Al BLOQUEAR el Acta, el contenido y los Hallazgos quedan inmutables. Esta acción no se puede deshacer.") Button( onClick = { model.prepareSelectedAct() },