From 4c80fdcdb3ba472c5d8e917ab0952e0593441f29 Mon Sep 17 00:00:00 2001 From: francescods Date: Wed, 30 Apr 2025 12:01:33 +0200 Subject: [PATCH] aggiunta campo codice ristocloud --- src/main/kotlin/eu/maiora/db/Mapping.kt | 5 ++++- src/main/kotlin/eu/maiora/model/Prenotazioni.kt | 2 +- src/main/kotlin/eu/maiora/model/PrenotazioniPasti.kt | 3 ++- .../eu/maiora/model/PrenotazioniPastiRepositoryImpl.kt | 4 +++- src/main/kotlin/eu/maiora/model/SlotOrariRepository.kt | 2 +- .../kotlin/eu/maiora/model/SlotOrariRepositoryImpl.kt | 6 +++--- src/main/kotlin/eu/maiora/routes/Prenotazioni.kt | 10 ++++++++-- 7 files changed, 22 insertions(+), 10 deletions(-) diff --git a/src/main/kotlin/eu/maiora/db/Mapping.kt b/src/main/kotlin/eu/maiora/db/Mapping.kt index e9c8889..7dc6b6e 100644 --- a/src/main/kotlin/eu/maiora/db/Mapping.kt +++ b/src/main/kotlin/eu/maiora/db/Mapping.kt @@ -126,6 +126,7 @@ object PrenotazioniPastiTable : IdTable("prenotazioni_pasti"){ val idResidenza = long("id_residenza").nullable() val idVassoio = long("id_vassoio") val importoPagato = double("importo_pagato") + val codiceRistocloud = varchar("codice_ristocloud", 255).nullable() } object PrenotazioniPastiDettaglioTable : IdTable("prenotazioni_pasti_dettaglio"){ @@ -257,6 +258,7 @@ class PrenotazioniPastiDao(id: EntityID) :LongEntity(id){ val idResidenza by PrenotazioniPastiTable.idResidenza val idVassoio by PrenotazioniPastiTable.idVassoio val importoPagato by PrenotazioniPastiTable.importoPagato + val codiceRistocloud by PrenotazioniPastiTable.codiceRistocloud } class PrenotazioniPastiDettaglioDao(id: EntityID) :LongEntity(id){ @@ -404,7 +406,8 @@ fun prenotazioniPastiDaoToModel(dao: PrenotazioniPastiDao) : PrenotazioniPasti{ dao.idSlotPuntoCassa, dao.idResidenza, dao.idVassoio, - dao.importoPagato + dao.importoPagato, + dao.codiceRistocloud ) } diff --git a/src/main/kotlin/eu/maiora/model/Prenotazioni.kt b/src/main/kotlin/eu/maiora/model/Prenotazioni.kt index 354a4d0..c879f3b 100644 --- a/src/main/kotlin/eu/maiora/model/Prenotazioni.kt +++ b/src/main/kotlin/eu/maiora/model/Prenotazioni.kt @@ -5,7 +5,7 @@ import kotlinx.serialization.Serializable @Serializable data class Prenotazioni( val id: Long? = null, - val codicePrenotazione: String? = null, + val codiceRistocloud: String? = null, val idTessera : Long, val idSlotPuntoCassa : Long, val giorno : String? = null, diff --git a/src/main/kotlin/eu/maiora/model/PrenotazioniPasti.kt b/src/main/kotlin/eu/maiora/model/PrenotazioniPasti.kt index 5de7ba8..0d3f42b 100644 --- a/src/main/kotlin/eu/maiora/model/PrenotazioniPasti.kt +++ b/src/main/kotlin/eu/maiora/model/PrenotazioniPasti.kt @@ -9,5 +9,6 @@ data class PrenotazioniPasti( val idSlotPuntoCassa : Long, val idResidenza : Long? = null, val idVassoio : Long, - val importoPagato : Double + val importoPagato : Double, + val codiceRistocloud : String? = null ) \ No newline at end of file diff --git a/src/main/kotlin/eu/maiora/model/PrenotazioniPastiRepositoryImpl.kt b/src/main/kotlin/eu/maiora/model/PrenotazioniPastiRepositoryImpl.kt index b7c6c1f..52cc535 100644 --- a/src/main/kotlin/eu/maiora/model/PrenotazioniPastiRepositoryImpl.kt +++ b/src/main/kotlin/eu/maiora/model/PrenotazioniPastiRepositoryImpl.kt @@ -13,6 +13,7 @@ class PrenotazioniPastiRepositoryImpl : PrenotazioniPastiRepository { it[idResidenza] = prenotazionePasto.idResidenza it[idVassoio] = prenotazionePasto.idVassoio it[importoPagato] = prenotazionePasto.importoPagato + it[codiceRistocloud] = prenotazionePasto.codiceRistocloud }.value PrenotazioniPasti( @@ -21,7 +22,8 @@ class PrenotazioniPastiRepositoryImpl : PrenotazioniPastiRepository { prenotazionePasto.idSlotPuntoCassa, prenotazionePasto.idResidenza, prenotazionePasto.idVassoio, - prenotazionePasto.importoPagato + prenotazionePasto.importoPagato, + prenotazionePasto.codiceRistocloud ) } } \ No newline at end of file diff --git a/src/main/kotlin/eu/maiora/model/SlotOrariRepository.kt b/src/main/kotlin/eu/maiora/model/SlotOrariRepository.kt index 55082ca..47c945b 100644 --- a/src/main/kotlin/eu/maiora/model/SlotOrariRepository.kt +++ b/src/main/kotlin/eu/maiora/model/SlotOrariRepository.kt @@ -8,5 +8,5 @@ interface SlotOrariRepository { suspend fun idResidenzaByIdSlotOrario(idSlot : Long) : Long? - suspend fun slotOrarioById(idSlot : Long) : SlotOrari + suspend fun slotOrarioById(idSlot : Long) : SlotOrari? } \ No newline at end of file diff --git a/src/main/kotlin/eu/maiora/model/SlotOrariRepositoryImpl.kt b/src/main/kotlin/eu/maiora/model/SlotOrariRepositoryImpl.kt index 99042ca..9f9d431 100644 --- a/src/main/kotlin/eu/maiora/model/SlotOrariRepositoryImpl.kt +++ b/src/main/kotlin/eu/maiora/model/SlotOrariRepositoryImpl.kt @@ -30,9 +30,9 @@ class SlotOrariRepositoryImpl : SlotOrariRepository { .idResidenza } - override suspend fun slotOrarioById(idSlot : Long) : SlotOrari = suspendTransaction { + override suspend fun slotOrarioById(idSlot : Long) : SlotOrari? = suspendTransaction { SlotPrenotabiliDao.find{ SlotPrenotabiliTable.id eq idSlot } - .single() // Restituisce un singolo risultato o null se non trovato - .let { slotOrariDaoToModel(it) } // Converte il DAO in un oggetto SlotOrari + .singleOrNull() // Restituisce un singolo risultato o null se non trovato + ?.let { slotOrariDaoToModel(it) } // Converte il DAO in un oggetto SlotOrari } } \ No newline at end of file diff --git a/src/main/kotlin/eu/maiora/routes/Prenotazioni.kt b/src/main/kotlin/eu/maiora/routes/Prenotazioni.kt index c1ceab6..8afeb6a 100644 --- a/src/main/kotlin/eu/maiora/routes/Prenotazioni.kt +++ b/src/main/kotlin/eu/maiora/routes/Prenotazioni.kt @@ -20,6 +20,11 @@ fun Route.prenotazioni(prenotazioniPastiRepository: PrenotazioniPastiRepository, val prenotazioneRequest = call.receive() //recupera lo slot orario selezionato val idSlotOrario = slotOrariRepository.slotOrarioById(prenotazioneRequest.idSlotPuntoCassa) + if(idSlotOrario == null){ + call.respond(HttpStatusCode.BadRequest,"Slot orario non esistente") + return@post + } + val prenotazionePasto = PrenotazioniPasti( -1, @@ -27,7 +32,8 @@ fun Route.prenotazioni(prenotazioniPastiRepository: PrenotazioniPastiRepository, prenotazioneRequest.idSlotPuntoCassa, idSlotOrario.idResidenza, prenotazioneRequest.idVassoio, - prenotazioneRequest.importoPagato + prenotazioneRequest.importoPagato, + prenotazioneRequest.codiceRistocloud ) //Inserisci la prenotazione nel database @@ -49,7 +55,7 @@ fun Route.prenotazioni(prenotazioniPastiRepository: PrenotazioniPastiRepository, //restituisci la prenotazione val prenotazione = Prenotazioni( prenotazioneInserita.id, - prenotazioneRequest.codicePrenotazione, + prenotazioneRequest.codiceRistocloud, prenotazioneInserita.idTessera, prenotazioneInserita.idSlotPuntoCassa, idSlotOrario.giorno,