added clientCode_change

This commit is contained in:
oxidiert
2025-08-04 10:10:28 +02:00
parent 26967f5618
commit e22ff56ab1

View File

@ -155,7 +155,13 @@ class HandlerOpeningScreen(private val activity: MainActivity) {
}
val isDatabaseView = inputText.endsWith("_database")
val clientCode = if (isDatabaseView) inputText.removeSuffix("_database") else inputText
val isChangeView = inputText.endsWith("_change")
// Extrahiere nur den echten Code, ohne die Suffixe
val clientCode = inputText
.removeSuffix("_database")
.removeSuffix("_change")
GlobalValues.LAST_CLIENT_CODE = clientCode
CoroutineScope(Dispatchers.IO).launch {
@ -170,17 +176,22 @@ class HandlerOpeningScreen(private val activity: MainActivity) {
}
withContext(Dispatchers.Main) {
// Normales Laden
handleNormalLoad(clientCode)
// Erweiterungen bei speziellen Suffixen
if (isDatabaseView) {
handleNormalLoad(clientCode)
showCompletedQuestionnaires(clientCode)
} else {
handleNormalLoad(clientCode)
enableCompletedQuestionnaireButtons(clientCode)
} else if (isChangeView) {
enableCompletedQuestionnaireButtons(clientCode)
}
}
}
}
private suspend fun handleNormalLoad(clientCode: String) {
val completedIds = withContext(Dispatchers.IO) {
MyApp.database.completedQuestionnaireDao().getCompletedQuestionnairesForClient(clientCode)
@ -292,8 +303,6 @@ class HandlerOpeningScreen(private val activity: MainActivity) {
}
}
private fun startQuestionnaireForButton(button: Button) {
val fileName = questionnaireFiles[button] ?: return
val questionnaire = QuestionnaireGeneric(fileName)
@ -487,4 +496,25 @@ class HandlerOpeningScreen(private val activity: MainActivity) {
paint.isFakeBoldText = false
return y
}
private fun enableCompletedQuestionnaireButtons(clientCode: String) {
CoroutineScope(Dispatchers.IO).launch {
val completedEntries = MyApp.database.completedQuestionnaireDao().getAllForClient(clientCode)
val completedFiles = completedEntries
.filter { it.isDone }
.map { it.questionnaireId.lowercase() }
withContext(Dispatchers.Main) {
questionnaireFiles.forEach { (button, fileName) ->
val isCompleted = completedFiles.any { fileName.lowercase().contains(it) }
if (isCompleted) {
button.isEnabled = true
button.alpha = 1.0f
}
}
}
}
}
}