feat(android): drive acta then hallazgo flow

This commit is contained in:
2026-09-10 22:54:41 -03:00
parent c7f9f7fe4b
commit 2c7ef3f7af
@@ -168,10 +168,6 @@ class MainViewModel(application: Application) : AndroidViewModel(application) {
error = "Elegí si el Acta es urgente o no urgente." error = "Elegí si el Acta es urgente o no urgente."
return return
} }
if (asset == null) {
error = "Seleccioná primero una Instalación o Subinstalación para iniciar el Acta."
return
}
if (acts.any { it.status == "DRAFT" }) { if (acts.any { it.status == "DRAFT" }) {
error = "Ya existe un Acta en borrador. Bloqueala o cancelala antes de crear la siguiente." error = "Ya existe un Acta en borrador. Bloqueala o cancelala antes de crear la siguiente."
return return
@@ -179,7 +175,7 @@ class MainViewModel(application: Application) : AndroidViewModel(application) {
launchBusy { launchBusy {
val created = actsRepository.create( val created = actsRepository.create(
currentVisit.id, currentVisit.id,
asset.id, asset?.id,
currentVisit.code, currentVisit.code,
urgency, urgency,
) )
@@ -188,17 +184,18 @@ class MainViewModel(application: Application) : AndroidViewModel(application) {
loadActsInternal(currentVisit.id, selectDraft = false) loadActsInternal(currentVisit.id, selectDraft = false)
val urgencyLabel = if (urgency == "URGENT") "urgente" else "no urgente" val urgencyLabel = if (urgency == "URGENT") "urgente" else "no urgente"
notice = "${created.code} creada como $urgencyLabel. Los Hallazgos nuevos quedarán vinculados explícitamente a esta Acta." notice = "${created.code} creada como $urgencyLabel. Los Hallazgos nuevos quedarán vinculados explícitamente a esta Acta."
if (selectedFieldAsset?.capture?.readyForFinding == true) { if (asset != null && selectedFieldAsset?.capture?.readyForFinding == true) {
loadFindingOptionsInternal(currentVisit.id, asset.id, created.id) loadFindingOptionsInternal(currentVisit.id, asset.id, created.id)
} }
} }
} }
fun createAct(urgency: String = "NON_URGENT") = createActForSelectedInventory(urgency)
fun searchInventory(search: String, parentId: String? = null) { fun searchInventory(search: String, parentId: String? = null) {
val currentVisit = visit ?: return val currentVisit = visit ?: return
launchBusy { launchBusy {
val effectiveParentId = parentId ?: inventoryParentId ?: currentVisit.scopeAsset?.id ?: currentVisit.operationalArea?.id inventory = repository.fieldInventory(currentVisit.id, search, parentId).data
inventory = repository.fieldInventory(currentVisit.id, search, effectiveParentId).data
} }
} }