From 4e9338631b5e7a033e9f3872bac6904a0ee45725 Mon Sep 17 00:00:00 2001 From: oxidiert Date: Wed, 20 Aug 2025 11:17:43 +0200 Subject: [PATCH] improved editing offlien and online. --- app/src/main/java/com/dano/test1/Daos.kt | 12 ++++++++++++ app/src/main/java/com/dano/test1/DatabaseUploader.kt | 2 +- .../main/java/com/dano/test1/QuestionnaireBase.kt | 5 +++++ 3 files changed, 18 insertions(+), 1 deletion(-) diff --git a/app/src/main/java/com/dano/test1/Daos.kt b/app/src/main/java/com/dano/test1/Daos.kt index 11c818f..2e25538 100644 --- a/app/src/main/java/com/dano/test1/Daos.kt +++ b/app/src/main/java/com/dano/test1/Daos.kt @@ -63,8 +63,20 @@ interface AnswerDao { @Query("SELECT * FROM answers WHERE clientCode = :clientCode") suspend fun getAnswersForClient(clientCode: String): List + @Query(""" + DELETE FROM answers + WHERE clientCode = :clientCode + AND questionId IN ( + SELECT questionId FROM questions WHERE questionnaireId = :questionnaireId + ) + """) + suspend fun deleteAnswersForClientAndQuestionnaire( + clientCode: String, + questionnaireId: String + ) } + @Dao interface CompletedQuestionnaireDao { @Insert(onConflict = OnConflictStrategy.REPLACE) diff --git a/app/src/main/java/com/dano/test1/DatabaseUploader.kt b/app/src/main/java/com/dano/test1/DatabaseUploader.kt index e82bee6..370fafd 100644 --- a/app/src/main/java/com/dano/test1/DatabaseUploader.kt +++ b/app/src/main/java/com/dano/test1/DatabaseUploader.kt @@ -20,7 +20,7 @@ import kotlin.system.exitProcess object DatabaseUploader { private const val DB_NAME = "questionnaire_database" - private const val SERVER_DELTA_URL = "http://49.13.157.44/uploadDeltaTest4.php" + private const val SERVER_DELTA_URL = "http://49.13.157.44/uploadDeltaTest5.php" private const val SERVER_CHECK_URL = "http://49.13.157.44/checkDatabaseExists.php" private val client = OkHttpClient() diff --git a/app/src/main/java/com/dano/test1/QuestionnaireBase.kt b/app/src/main/java/com/dano/test1/QuestionnaireBase.kt index 8fa7f9f..f748218 100644 --- a/app/src/main/java/com/dano/test1/QuestionnaireBase.kt +++ b/app/src/main/java/com/dano/test1/QuestionnaireBase.kt @@ -177,11 +177,16 @@ abstract class QuestionnaireBase { val clientCode = answers["client_code"] as? String ?: return saveClientAndQuestionnaire(db, clientCode, questionnaireId) + + // 🔥 Vor dem Speichern alte Antworten löschen + db.answerDao().deleteAnswersForClientAndQuestionnaire(clientCode, questionnaireId) + saveQuestions(db, answers, questionnaireId) saveAnswers(db, answers, questionnaireId, clientCode) markQuestionnaireCompleted(db, questionnaireId, clientCode) } + private suspend fun saveClientAndQuestionnaire(db: AppDatabase, clientCode: String, questionnaireId: String) { db.clientDao().insertClient(Client(clientCode)) db.questionnaireDao().insertQuestionnaire(Questionnaire(id = questionnaireId))