F3.2 Android: integrar Actas en la navegación de inspección
This commit is contained in:
@@ -76,15 +76,31 @@ private data class F3GeoSnapshot(
|
|||||||
@Composable
|
@Composable
|
||||||
fun F3VisitRoot(model: MainViewModel) {
|
fun F3VisitRoot(model: MainViewModel) {
|
||||||
var inventoryMode by rememberSaveable(model.visit?.id) { mutableStateOf(false) }
|
var inventoryMode by rememberSaveable(model.visit?.id) { mutableStateOf(false) }
|
||||||
if (inventoryMode) {
|
var actsMode by rememberSaveable(model.visit?.id) { mutableStateOf(false) }
|
||||||
F3FieldInventoryScreen(model, onBack = { inventoryMode = false })
|
when {
|
||||||
} else {
|
actsMode -> MobileActsScreen(
|
||||||
F3VisitOverview(model, onInventory = { inventoryMode = true })
|
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
|
@Composable
|
||||||
private fun F3VisitOverview(model: MainViewModel, onInventory: () -> Unit) {
|
private fun F3VisitOverview(
|
||||||
|
model: MainViewModel,
|
||||||
|
onInventory: () -> Unit,
|
||||||
|
onActs: () -> Unit,
|
||||||
|
) {
|
||||||
val visit = model.visit ?: return
|
val visit = model.visit ?: return
|
||||||
Column(
|
Column(
|
||||||
Modifier
|
Modifier
|
||||||
@@ -137,9 +153,17 @@ private fun F3VisitOverview(model: MainViewModel, onInventory: () -> Unit) {
|
|||||||
Button(onClick = onInventory, modifier = Modifier.fillMaxWidth()) {
|
Button(onClick = onInventory, modifier = Modifier.fillMaxWidth()) {
|
||||||
Text("Abrir Inventario de campo")
|
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") {
|
} else if (visit.status == "PLANNED") {
|
||||||
Text(
|
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,
|
style = MaterialTheme.typography.bodySmall,
|
||||||
)
|
)
|
||||||
}
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user