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))