improved editing offlien and online.
This commit is contained in:
@ -63,8 +63,20 @@ interface AnswerDao {
|
|||||||
@Query("SELECT * FROM answers WHERE clientCode = :clientCode")
|
@Query("SELECT * FROM answers WHERE clientCode = :clientCode")
|
||||||
suspend fun getAnswersForClient(clientCode: String): List<Answer>
|
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
|
@Dao
|
||||||
interface CompletedQuestionnaireDao {
|
interface CompletedQuestionnaireDao {
|
||||||
@Insert(onConflict = OnConflictStrategy.REPLACE)
|
@Insert(onConflict = OnConflictStrategy.REPLACE)
|
||||||
|
|||||||
@ -20,7 +20,7 @@ import kotlin.system.exitProcess
|
|||||||
object DatabaseUploader {
|
object DatabaseUploader {
|
||||||
|
|
||||||
private const val DB_NAME = "questionnaire_database"
|
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 const val SERVER_CHECK_URL = "http://49.13.157.44/checkDatabaseExists.php"
|
||||||
|
|
||||||
private val client = OkHttpClient()
|
private val client = OkHttpClient()
|
||||||
|
|||||||
@ -177,11 +177,16 @@ abstract class QuestionnaireBase<T> {
|
|||||||
val clientCode = answers["client_code"] as? String ?: return
|
val clientCode = answers["client_code"] as? String ?: return
|
||||||
|
|
||||||
saveClientAndQuestionnaire(db, clientCode, questionnaireId)
|
saveClientAndQuestionnaire(db, clientCode, questionnaireId)
|
||||||
|
|
||||||
|
// 🔥 Vor dem Speichern alte Antworten löschen
|
||||||
|
db.answerDao().deleteAnswersForClientAndQuestionnaire(clientCode, questionnaireId)
|
||||||
|
|
||||||
saveQuestions(db, answers, questionnaireId)
|
saveQuestions(db, answers, questionnaireId)
|
||||||
saveAnswers(db, answers, questionnaireId, clientCode)
|
saveAnswers(db, answers, questionnaireId, clientCode)
|
||||||
markQuestionnaireCompleted(db, questionnaireId, clientCode)
|
markQuestionnaireCompleted(db, questionnaireId, clientCode)
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
private suspend fun saveClientAndQuestionnaire(db: AppDatabase, clientCode: String, questionnaireId: String) {
|
private suspend fun saveClientAndQuestionnaire(db: AppDatabase, clientCode: String, questionnaireId: String) {
|
||||||
db.clientDao().insertClient(Client(clientCode))
|
db.clientDao().insertClient(Client(clientCode))
|
||||||
db.questionnaireDao().insertQuestionnaire(Questionnaire(id = questionnaireId))
|
db.questionnaireDao().insertQuestionnaire(Questionnaire(id = questionnaireId))
|
||||||
|
|||||||
Reference in New Issue
Block a user