improved editing offlien and online.

This commit is contained in:
oxidiert
2025-08-20 11:17:43 +02:00
parent 95f290b46a
commit 4e9338631b
3 changed files with 18 additions and 1 deletions

View File

@ -63,8 +63,20 @@ interface AnswerDao {
@Query("SELECT * FROM answers WHERE clientCode = :clientCode")
suspend fun getAnswersForClient(clientCode: String): List<Answer>
@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)

View File

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

View File

@ -177,11 +177,16 @@ abstract class QuestionnaireBase<T> {
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))