From a1450da51e94ab8450093d1db5a72727889a6e71 Mon Sep 17 00:00:00 2001 From: enlineawork Date: Mon, 7 Sep 2026 16:23:10 -0300 Subject: [PATCH] =?UTF-8?q?F3.2=20Android:=20integrar=20Actas=20en=20la=20?= =?UTF-8?q?navegaci=C3=B3n=20de=20inspecci=C3=B3n?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../korexlabs/dhinspeccion/ui/F3VisitRoot.kt | 36 +++++++++++++++---- 1 file changed, 30 insertions(+), 6 deletions(-) diff --git a/android-app/app/src/main/java/com/korexlabs/dhinspeccion/ui/F3VisitRoot.kt b/android-app/app/src/main/java/com/korexlabs/dhinspeccion/ui/F3VisitRoot.kt index 8552440..2ca8670 100644 --- a/android-app/app/src/main/java/com/korexlabs/dhinspeccion/ui/F3VisitRoot.kt +++ b/android-app/app/src/main/java/com/korexlabs/dhinspeccion/ui/F3VisitRoot.kt @@ -76,15 +76,31 @@ private data class F3GeoSnapshot( @Composable fun F3VisitRoot(model: MainViewModel) { var inventoryMode by rememberSaveable(model.visit?.id) { mutableStateOf(false) } - if (inventoryMode) { - F3FieldInventoryScreen(model, onBack = { inventoryMode = false }) - } else { - F3VisitOverview(model, onInventory = { inventoryMode = true }) + var actsMode by rememberSaveable(model.visit?.id) { mutableStateOf(false) } + when { + actsMode -> MobileActsScreen( + model = model, + onBack = { actsMode = false }, + onGoInventory = { + actsMode = false + inventoryMode = true + }, + ) + inventoryMode -> F3FieldInventoryScreen(model, onBack = { inventoryMode = false }) + else -> F3VisitOverview( + model = model, + onInventory = { inventoryMode = true }, + onActs = { actsMode = true }, + ) } } @Composable -private fun F3VisitOverview(model: MainViewModel, onInventory: () -> Unit) { +private fun F3VisitOverview( + model: MainViewModel, + onInventory: () -> Unit, + onActs: () -> Unit, +) { val visit = model.visit ?: return Column( Modifier @@ -137,9 +153,17 @@ private fun F3VisitOverview(model: MainViewModel, onInventory: () -> Unit) { Button(onClick = onInventory, modifier = Modifier.fillMaxWidth()) { Text("Abrir Inventario de campo") } + OutlinedButton(onClick = onActs, modifier = Modifier.fillMaxWidth()) { + val open = model.acts.count { it.status == "DRAFT" || it.status == "READY" } + Text("Actas de la inspección · ${model.acts.size}${if (open > 0) " · $open abiertas" else ""}") + } + } else if (visit.status == "CLOSED") { + OutlinedButton(onClick = onActs, modifier = Modifier.fillMaxWidth()) { + Text("Ver Actas · ${model.acts.size}") + } } else if (visit.status == "PLANNED") { Text( - "Primero iniciá la inspección para habilitar altas, fotografías y Hallazgos.", + "Primero iniciá la inspección para habilitar altas, fotografías, Actas y Hallazgos.", style = MaterialTheme.typography.bodySmall, ) }