From 42216f02c06466ab83d06b27b9b80c8b978d4735 Mon Sep 17 00:00:00 2001 From: francescods Date: Mon, 20 Oct 2025 14:04:52 +0200 Subject: [PATCH] aggiunta parametro idModalita MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit restituire il nome della residenza se la modalità di prenotazione è delivery --- src/main/kotlin/eu/maiora/db/Mapping.kt | 12 +++++++++++- .../eu/maiora/model/PuntiDistribuzioneRepository.kt | 2 +- .../maiora/model/PuntiDistribuzioneRepositoryImpl.kt | 6 ++++-- .../kotlin/eu/maiora/routes/PuntiDistribuzione.kt | 10 ++++++++-- 4 files changed, 24 insertions(+), 6 deletions(-) diff --git a/src/main/kotlin/eu/maiora/db/Mapping.kt b/src/main/kotlin/eu/maiora/db/Mapping.kt index 051b339..35b4cc9 100644 --- a/src/main/kotlin/eu/maiora/db/Mapping.kt +++ b/src/main/kotlin/eu/maiora/db/Mapping.kt @@ -479,10 +479,20 @@ fun composizioniDaoToModel(dao: ComposizioniDao) = Composizioni( ) fun puntiDistribuzioneDaoToModel(dao: SlotPrenotabiliDao): PuntiDistribuzione { + //se la modalità è delivery, mostrare il nome della residenza e non del punto di distribuzione + var nomePdApp: String + if(dao.idModalita == 3L){ + nomePdApp = dao.residenza.toString() + } + else{ + nomePdApp = dao.puntoDistribuzione + } + + return PuntiDistribuzione( dao.id.value, dao.idPuntoDistribuzione, - dao.puntoDistribuzione, + nomePdApp, dao.idPuntoCassa, dao.puntoCassa, dao.idModalita, diff --git a/src/main/kotlin/eu/maiora/model/PuntiDistribuzioneRepository.kt b/src/main/kotlin/eu/maiora/model/PuntiDistribuzioneRepository.kt index 5725f0d..165b211 100644 --- a/src/main/kotlin/eu/maiora/model/PuntiDistribuzioneRepository.kt +++ b/src/main/kotlin/eu/maiora/model/PuntiDistribuzioneRepository.kt @@ -1,5 +1,5 @@ package eu.maiora.model interface PuntiDistribuzioneRepository { - suspend fun puntiDistByGiornoIdTurno(giorno : String, idTurno : Long): List? + suspend fun puntiDistByGiornoIdTurnoIdModalita(giorno : String, idTurno : Long, idModalita : Long): List? } \ No newline at end of file diff --git a/src/main/kotlin/eu/maiora/model/PuntiDistribuzioneRepositoryImpl.kt b/src/main/kotlin/eu/maiora/model/PuntiDistribuzioneRepositoryImpl.kt index dc4a225..a7342f0 100644 --- a/src/main/kotlin/eu/maiora/model/PuntiDistribuzioneRepositoryImpl.kt +++ b/src/main/kotlin/eu/maiora/model/PuntiDistribuzioneRepositoryImpl.kt @@ -8,12 +8,14 @@ import java.time.LocalDateTime import java.time.format.DateTimeFormatter class PuntiDistribuzioneRepositoryImpl : PuntiDistribuzioneRepository { - override suspend fun puntiDistByGiornoIdTurno(giorno : String, idTurno : Long): List = suspendTransaction { + override suspend fun puntiDistByGiornoIdTurnoIdModalita(giorno : String, idTurno : Long, idModalita : Long): List = suspendTransaction { // Cerca la lista di punti distribuzione dalla tabella degli slot prenotabili val formatter = DateTimeFormatter.ofPattern("ddMMyyyy") val formattedDate = LocalDate.parse(giorno, formatter) - SlotPrenotabiliDao.find { (SlotPrenotabiliTable.giorno eq formattedDate) and (SlotPrenotabiliTable.idTurno eq idTurno)} + SlotPrenotabiliDao.find { (SlotPrenotabiliTable.giorno eq formattedDate) and + (SlotPrenotabiliTable.idTurno eq idTurno) and + (SlotPrenotabiliTable.idModalita eq idModalita)} .toList() // Restituisce la lista degli slot prenotabili da cui ricavare i punti distribuzione .map { puntiDistribuzioneDaoToModel(it) } // Converte il DAO in un oggetto PuntiDistribuzione diff --git a/src/main/kotlin/eu/maiora/routes/PuntiDistribuzione.kt b/src/main/kotlin/eu/maiora/routes/PuntiDistribuzione.kt index 05c1e02..07626cc 100644 --- a/src/main/kotlin/eu/maiora/routes/PuntiDistribuzione.kt +++ b/src/main/kotlin/eu/maiora/routes/PuntiDistribuzione.kt @@ -15,21 +15,27 @@ fun Route.puntiDistribuzione(puntiDistribuzioneRepository: PuntiDistribuzioneRep // Ottieni l'id del turno e il giorno dal percorso val idTurno = call.parameters["idTurno"] val giorno = call.parameters["giorno"] + val idModalita = call.parameters["idModalita"] + if (idTurno.isNullOrEmpty()) { call.respondText("ID turno non valido o non presente nei parametri", status = HttpStatusCode.BadRequest) return@get } + if (idModalita.isNullOrEmpty()) { + call.respondText("ID modalita non valido o non presente nei parametri", status = HttpStatusCode.BadRequest) + return@get + } if (giorno.isNullOrEmpty()) { call.respondText("Giorno non valido o non presente nei parametri", status = HttpStatusCode.BadRequest) return@get } // Cerca i punti distribuzione per giorno e turno - val listaPuntiDistribuzione = puntiDistribuzioneRepository.puntiDistByGiornoIdTurno(giorno, idTurno.toLong()) + val listaPuntiDistribuzione = puntiDistribuzioneRepository.puntiDistByGiornoIdTurnoIdModalita(giorno, idTurno.toLong(), idModalita.toLong()) - if (listaPuntiDistribuzione != null) { + if (listaPuntiDistribuzione.isNotEmpty()) { call.respond(listaPuntiDistribuzione) } else { call.respondText("Punti distribuzione non trovati", status = HttpStatusCode.NotFound)