From 52b8936bfe3864fa19d56fd82569d48ac2337476 Mon Sep 17 00:00:00 2001 From: francescods Date: Tue, 19 Aug 2025 17:11:34 +0200 Subject: [PATCH 1/2] prima implementazione aggiunta dei campi mancanti --- src/main/kotlin/eu/maiora/db/Mapping.kt | 21 +++++++++++++++---- .../eu/maiora/model/ViewPrenotazioniPasti.kt | 6 ++++-- 2 files changed, 21 insertions(+), 6 deletions(-) diff --git a/src/main/kotlin/eu/maiora/db/Mapping.kt b/src/main/kotlin/eu/maiora/db/Mapping.kt index 53912f5..1a54af4 100644 --- a/src/main/kotlin/eu/maiora/db/Mapping.kt +++ b/src/main/kotlin/eu/maiora/db/Mapping.kt @@ -5,10 +5,7 @@ import eu.maiora.model.* import kotlinx.coroutines.Dispatchers import kotlinx.datetime.toKotlinLocalDateTime import kotlinx.datetime.toKotlinLocalDate -import org.jetbrains.exposed.dao.IntEntity -import org.jetbrains.exposed.dao.IntEntityClass -import org.jetbrains.exposed.dao.LongEntity -import org.jetbrains.exposed.dao.LongEntityClass +import org.jetbrains.exposed.dao.* import org.jetbrains.exposed.dao.id.EntityID import org.jetbrains.exposed.dao.id.IdTable import org.jetbrains.exposed.sql.Transaction @@ -149,10 +146,15 @@ object ViewPrenotazioniPastiTable : IdTable("view_prenotazioni_pasti"){ val giorno = date("giorno") val turno = varchar("turno", 255) val dataInizio = datetime("data_inizio") + val dataFine = datetime("data_fine") val dataLimiteCancellazione = datetime("data_limite_cancellazione") val idVassoio = long("id_vassoio").nullable() val codiceRistocloud = varchar("codice_ristocloud", 255).nullable() val importoPagato = double("importo_pagato") + val puntoDistribuzione = varchar("punto_distribuzione", 255) + val puntoCassa = varchar("punto_cassa", 255) + val modalita = varchar("modalita", 255) + } class AccountsDAO(id: EntityID) :IntEntity(id) { @@ -290,10 +292,15 @@ class ViewPrenotazioniPastiDao(id: EntityID) :LongEntity(id){ val giorno by ViewPrenotazioniPastiTable.giorno val turno by ViewPrenotazioniPastiTable.turno val dataInizio by ViewPrenotazioniPastiTable.dataInizio + val dataFine by ViewPrenotazioniPastiTable.dataFine val dataLimiteCancellazione by ViewPrenotazioniPastiTable.dataLimiteCancellazione val idVassoio by ViewPrenotazioniPastiTable.idVassoio val codiceRistocloud by ViewPrenotazioniPastiTable.codiceRistocloud val importoPagato by ViewPrenotazioniPastiTable.importoPagato + val puntoDistribuzione by ViewPrenotazioniPastiTable.puntoDistribuzione + val puntoCassa by ViewPrenotazioniPastiTable.puntoCassa + val modalita by ViewPrenotazioniPastiTable.modalita + } fun accountsDaoToModel(dao: AccountsDAO) = Accounts( @@ -441,9 +448,11 @@ fun prenotazioniPastiDettaglioDaoToModel(dao: PrenotazioniPastiDettaglioDao) : P fun viewPrenotazioniPastiDaoToModel(dao: ViewPrenotazioniPastiDao) : ViewPrenotazioniPasti{ val formatterGiorno = DateTimeFormatter.ofPattern("ddMMyyyy") val formatterDataInizio = DateTimeFormatter.ofPattern("ddMMyyyy HH:mm") + val formatterDataFine = DateTimeFormatter.ofPattern("ddMMyyyy HH:mm") val formatterDataLimiteCancellazione = DateTimeFormatter.ofPattern("ddMMyyyy HH:mm") val formattedGiorno = dao.giorno.format(formatterGiorno) val formattedDataInizio = dao.dataInizio.format(formatterDataInizio) + val formattedDataFine = dao.dataFine.format(formatterDataFine) val formattedDataLimiteCanc = dao.dataLimiteCancellazione.format(formatterDataLimiteCancellazione) @@ -456,10 +465,14 @@ fun viewPrenotazioniPastiDaoToModel(dao: ViewPrenotazioniPastiDao) : ViewPrenota formattedGiorno, dao.turno, formattedDataInizio, + formattedDataFine, formattedDataLimiteCanc, dao.idVassoio, dao.codiceRistocloud, dao.importoPagato, + dao.puntoDistribuzione, + dao.puntoCassa, + dao.modalita, null ) } diff --git a/src/main/kotlin/eu/maiora/model/ViewPrenotazioniPasti.kt b/src/main/kotlin/eu/maiora/model/ViewPrenotazioniPasti.kt index 391b5c7..6f86aa1 100644 --- a/src/main/kotlin/eu/maiora/model/ViewPrenotazioniPasti.kt +++ b/src/main/kotlin/eu/maiora/model/ViewPrenotazioniPasti.kt @@ -1,7 +1,5 @@ package eu.maiora.model -import kotlinx.datetime.LocalDate -import kotlinx.datetime.LocalDateTime import kotlinx.serialization.Serializable @Serializable @@ -14,10 +12,14 @@ data class ViewPrenotazioniPasti( val giorno: String, val turno: String, val dataInizio: String, + val dataFine: String, val dataLimiteCancellazione: String, val idVassoio: Long? = null, val codiceRistocloud: String? = null, val importoPagato: Double, + val puntoDistribuzione: String, + val puntoCassa: String, + val modalita: String, var listaProdotti: List? = null ) \ No newline at end of file From a5a154c7bf65680760c59803ecf647c8b5532aa0 Mon Sep 17 00:00:00 2001 From: francescods Date: Wed, 20 Aug 2025 16:31:48 +0200 Subject: [PATCH 2/2] gestione struttura lista prodotti aggiunta gestione quantita negli endpoint legati alle prenotazioni gestione eccezione se id prenotazione da annullare non esiste --- src/main/kotlin/eu/maiora/db/Mapping.kt | 40 +++++++++- .../eu/maiora/model/ListaProdottiElement.kt | 6 ++ .../kotlin/eu/maiora/model/Prenotazioni.kt | 3 +- .../model/PrenotazioniPastiDettaglio.kt | 4 +- .../eu/maiora/model/ViewPrenotazioniPasti.kt | 2 +- .../ViewPrenotazioniPastiRepositoryImpl.kt | 47 ++++++++--- .../eu/maiora/routes/AnnullaPrenotazioni.kt | 78 ++++++++++--------- .../kotlin/eu/maiora/routes/Prenotazioni.kt | 36 +++++---- .../eu/maiora/routes/VerificaVassoio.kt | 42 +--------- 9 files changed, 150 insertions(+), 108 deletions(-) create mode 100644 src/main/kotlin/eu/maiora/model/ListaProdottiElement.kt diff --git a/src/main/kotlin/eu/maiora/db/Mapping.kt b/src/main/kotlin/eu/maiora/db/Mapping.kt index 1a54af4..14cd7a0 100644 --- a/src/main/kotlin/eu/maiora/db/Mapping.kt +++ b/src/main/kotlin/eu/maiora/db/Mapping.kt @@ -3,8 +3,6 @@ package eu.maiora.db import eu.maiora.model.* import kotlinx.coroutines.Dispatchers -import kotlinx.datetime.toKotlinLocalDateTime -import kotlinx.datetime.toKotlinLocalDate import org.jetbrains.exposed.dao.* import org.jetbrains.exposed.dao.id.EntityID import org.jetbrains.exposed.dao.id.IdTable @@ -154,6 +152,8 @@ object ViewPrenotazioniPastiTable : IdTable("view_prenotazioni_pasti"){ val puntoDistribuzione = varchar("punto_distribuzione", 255) val puntoCassa = varchar("punto_cassa", 255) val modalita = varchar("modalita", 255) + val idProdotto = long("id_prodotto") + val prodotto = varchar("prodotto", 255) } @@ -300,6 +300,8 @@ class ViewPrenotazioniPastiDao(id: EntityID) :LongEntity(id){ val puntoDistribuzione by ViewPrenotazioniPastiTable.puntoDistribuzione val puntoCassa by ViewPrenotazioniPastiTable.puntoCassa val modalita by ViewPrenotazioniPastiTable.modalita + val idProdotto by ViewPrenotazioniPastiTable.idProdotto + val prodotto by ViewPrenotazioniPastiTable.prodotto } @@ -445,7 +447,7 @@ fun prenotazioniPastiDettaglioDaoToModel(dao: PrenotazioniPastiDettaglioDao) : P ) } -fun viewPrenotazioniPastiDaoToModel(dao: ViewPrenotazioniPastiDao) : ViewPrenotazioniPasti{ +/*fun viewPrenotazioniPastiDaoToModel(dao: ViewPrenotazioniPastiDao) : ViewPrenotazioniPasti{ val formatterGiorno = DateTimeFormatter.ofPattern("ddMMyyyy") val formatterDataInizio = DateTimeFormatter.ofPattern("ddMMyyyy HH:mm") val formatterDataFine = DateTimeFormatter.ofPattern("ddMMyyyy HH:mm") @@ -475,6 +477,38 @@ fun viewPrenotazioniPastiDaoToModel(dao: ViewPrenotazioniPastiDao) : ViewPrenota dao.modalita, null ) +}*/ + +fun viewPrenotazioniPastiDaoToModel(dao: ViewPrenotazioniPastiDao, listaProdotti: List? = null) : ViewPrenotazioniPasti{ + val formatterGiorno = DateTimeFormatter.ofPattern("ddMMyyyy") + val formatterDataInizio = DateTimeFormatter.ofPattern("ddMMyyyy HH:mm") + val formatterDataFine = DateTimeFormatter.ofPattern("ddMMyyyy HH:mm") + val formatterDataLimiteCancellazione = DateTimeFormatter.ofPattern("ddMMyyyy HH:mm") + val formattedGiorno = dao.giorno.format(formatterGiorno) + val formattedDataInizio = dao.dataInizio.format(formatterDataInizio) + val formattedDataFine = dao.dataFine.format(formatterDataFine) + val formattedDataLimiteCanc = dao.dataLimiteCancellazione.format(formatterDataLimiteCancellazione) + + + return ViewPrenotazioniPasti( + dao.idPrenotazione, + dao.idStato, + dao.stato, + dao.idTessera, + dao.idSlotPuntoCassa, + formattedGiorno, + dao.turno, + formattedDataInizio, + formattedDataFine, + formattedDataLimiteCanc, + dao.idVassoio, + dao.codiceRistocloud, + dao.importoPagato, + dao.puntoDistribuzione, + dao.puntoCassa, + dao.modalita, + listaProdotti + ) } diff --git a/src/main/kotlin/eu/maiora/model/ListaProdottiElement.kt b/src/main/kotlin/eu/maiora/model/ListaProdottiElement.kt new file mode 100644 index 0000000..a94db61 --- /dev/null +++ b/src/main/kotlin/eu/maiora/model/ListaProdottiElement.kt @@ -0,0 +1,6 @@ +package eu.maiora.model + +import kotlinx.serialization.Serializable + +@Serializable +data class ListaProdottiElement (val id: Long, val nome: String? = null, val quantita: Int) \ No newline at end of file diff --git a/src/main/kotlin/eu/maiora/model/Prenotazioni.kt b/src/main/kotlin/eu/maiora/model/Prenotazioni.kt index c879f3b..4ac6002 100644 --- a/src/main/kotlin/eu/maiora/model/Prenotazioni.kt +++ b/src/main/kotlin/eu/maiora/model/Prenotazioni.kt @@ -16,6 +16,7 @@ data class Prenotazioni( val idVassoio : Long, val idStato : Long? = null, val stato : String? = null, - val listaProdotti : List? = null, + //val listaProdotti : List? = null, + val listaProdotti: List? = null, val importoPagato : Double ) \ No newline at end of file diff --git a/src/main/kotlin/eu/maiora/model/PrenotazioniPastiDettaglio.kt b/src/main/kotlin/eu/maiora/model/PrenotazioniPastiDettaglio.kt index 1588923..55abef6 100644 --- a/src/main/kotlin/eu/maiora/model/PrenotazioniPastiDettaglio.kt +++ b/src/main/kotlin/eu/maiora/model/PrenotazioniPastiDettaglio.kt @@ -7,5 +7,7 @@ data class PrenotazioniPastiDettaglio( val id: Long? = null, val idPrenotazione : Long, val idProdotto : Long, - val idStato : Long + val idStato : Long, + val quantita : Int? = null, + val prodotto : String? = null ) \ No newline at end of file diff --git a/src/main/kotlin/eu/maiora/model/ViewPrenotazioniPasti.kt b/src/main/kotlin/eu/maiora/model/ViewPrenotazioniPasti.kt index 6f86aa1..d33b26a 100644 --- a/src/main/kotlin/eu/maiora/model/ViewPrenotazioniPasti.kt +++ b/src/main/kotlin/eu/maiora/model/ViewPrenotazioniPasti.kt @@ -20,6 +20,6 @@ data class ViewPrenotazioniPasti( val puntoDistribuzione: String, val puntoCassa: String, val modalita: String, - var listaProdotti: List? = null + var listaProdotti: List? = null ) \ No newline at end of file diff --git a/src/main/kotlin/eu/maiora/model/ViewPrenotazioniPastiRepositoryImpl.kt b/src/main/kotlin/eu/maiora/model/ViewPrenotazioniPastiRepositoryImpl.kt index 08100fc..cdb4dce 100644 --- a/src/main/kotlin/eu/maiora/model/ViewPrenotazioniPastiRepositoryImpl.kt +++ b/src/main/kotlin/eu/maiora/model/ViewPrenotazioniPastiRepositoryImpl.kt @@ -2,15 +2,19 @@ package eu.maiora.model import eu.maiora.db.* import org.jetbrains.exposed.sql.SortOrder -import org.jetbrains.exposed.sql.insertAndGetId class ViewPrenotazioniPastiRepositoryImpl : ViewPrenotazioniPastiRepository { override suspend fun prenotazioniPastiById(id : Long): ViewPrenotazioniPasti = suspendTransaction { // Cerca la prenotazione - ViewPrenotazioniPastiDao.find { ViewPrenotazioniPastiTable.idPrenotazione eq id } - .first() //prendo solo il primo record, dato che ci sono tanti record quanti prodotti prenotati - .let { viewPrenotazioniPastiDaoToModel(it) } // Converte il DAO in un oggetto ViewPrenotazioniPasti + val prenotazione = ViewPrenotazioniPastiDao.find { ViewPrenotazioniPastiTable.idPrenotazione eq id } + .firstOrNull() //prendo solo il primo record, dato che ci sono tanti record quanti prodotti prenotati + + if (prenotazione == null) { + throw IllegalArgumentException("Prenotazione con ID $id non trovata") + } + + viewPrenotazioniPastiDaoToModel(prenotazione, null) } override suspend fun prenotazioniPastiByIdTessera(idTessera : Long, limit : Long, offset : Long, order : String): List = suspendTransaction { @@ -20,20 +24,41 @@ class ViewPrenotazioniPastiRepositoryImpl : ViewPrenotazioniPastiRepository { else -> SortOrder.DESC // Default a DESC in caso di valore invalido } // Cerca la lista di prenotazioni - ViewPrenotazioniPastiDao.find { ViewPrenotazioniPastiTable.idTessera eq idTessera } + val prenotazioniRaw = ViewPrenotazioniPastiDao + .find { ViewPrenotazioniPastiTable.idTessera eq idTessera } .orderBy(ViewPrenotazioniPastiTable.giorno to sortOrder, ViewPrenotazioniPastiTable.id to sortOrder) .limit(limit.toInt()) .offset(offset) - .toList() // Restituisce la lista delle prenotazioni - .map { viewPrenotazioniPastiDaoToModel(it) } // Converte il DAO in un oggetto Movimenti + .toList() + //raggruppo i record per idPrenotazione e, successivamente, per idProdotto per poter calcolare le quantita + val listaPrenotazioniPasti = prenotazioniRaw + .groupBy { it.idPrenotazione } + .map { (_, dettagliPrenotazione) -> + val primaRiga = dettagliPrenotazione.first() //la prima riga la uso per leggere i dati della prenotazione + + val prodottiRaggruppati = dettagliPrenotazione + .groupBy { it.idProdotto } + .map { (idProdotto, prodotti) -> + ListaProdottiElement( + id = idProdotto, + nome = prodotti.first().prodotto, + quantita = prodotti.size + ) + } + viewPrenotazioniPastiDaoToModel(primaRiga, prodottiRaggruppati) + } + + listaPrenotazioniPasti } override suspend fun countPrenotazioniPastiByIdTessera(idTessera : Long): Int = suspendTransaction { // Conta il numero totale di prenotazioni della tessera - ViewPrenotazioniPastiDao.find { ViewPrenotazioniPastiTable.idTessera eq idTessera } - .toList() // Restituisce la lista delle prenotazioni - .count() - + ViewPrenotazioniPastiDao + .find { ViewPrenotazioniPastiTable.idTessera eq idTessera } + .toList() + .map { it.idPrenotazione } // Estrai solo gli ID delle prenotazioni + .distinct() // Rimuovi duplicati + .count() // Conta le prenotazioni uniche } } \ No newline at end of file diff --git a/src/main/kotlin/eu/maiora/routes/AnnullaPrenotazioni.kt b/src/main/kotlin/eu/maiora/routes/AnnullaPrenotazioni.kt index afe9c8c..7fae535 100644 --- a/src/main/kotlin/eu/maiora/routes/AnnullaPrenotazioni.kt +++ b/src/main/kotlin/eu/maiora/routes/AnnullaPrenotazioni.kt @@ -26,45 +26,51 @@ fun Route.annullaPrenotazioni( return@patch } - val prenotazione = viewPrenotazioniPastiRepository.prenotazioniPastiById(idPrenotazione.toLong()) - val statoPrenotazione = prenotazione.stato + try{ + val prenotazione = viewPrenotazioniPastiRepository.prenotazioniPastiById(idPrenotazione.toLong()) + val statoPrenotazione = prenotazione.stato - //prenotazione annullabile se lo stato non è SERVITA 2L - if (prenotazione.idStato == 2L) { - call.respond( - HttpStatusCode.BadRequest, - "Prenotazione non annullata. Stato corrente della prenotazione: $statoPrenotazione" - ) - return@patch + //prenotazione annullabile se lo stato non è SERVITA 2L + if (prenotazione.idStato == 2L) { + call.respond( + HttpStatusCode.BadRequest, + "Prenotazione non annullata. Stato corrente della prenotazione: $statoPrenotazione" + ) + return@patch + } + + //prenotazione annullabile se la data limite per la cancellazione non è stata superata + val formatter = DateTimeFormatter.ofPattern("ddMMyyyy HH:mm") + val formattedDate = LocalDateTime.parse(prenotazione.dataLimiteCancellazione, formatter) + if (LocalDateTime.now().isAfter(formattedDate)) { + call.respond( + HttpStatusCode.BadRequest, + "Prenotazione non annullata: data limite cancellazione superata" + ) + return@patch + } + + + val listaProdottiPrenotati = + prenotazioniPastiDettaglioRepository.listaDettagliByIdPrenotazione(idPrenotazione.toLong()) + + //aggiorna lo stato di ogni prodotto per annullare la prenotazione + listaProdottiPrenotati.forEach { el -> + val prodottoDaAggiornare = PrenotazioniPastiDettaglio( + el.id, + el.idPrenotazione, + el.idProdotto, + 3L //ANNULLATA + ) + prenotazioniPastiDettaglioRepository.update(prodottoDaAggiornare) + } + + call.respond(HttpStatusCode.OK, "Prenotazione $idPrenotazione annullata") + } + catch (e: IllegalArgumentException) { + call.respond(HttpStatusCode.NotFound, "Prenotazione non trovata: ${e.message}") } - //prenotazione annullabile se la data limite per la cancellazione non è stata superata - val formatter = DateTimeFormatter.ofPattern("ddMMyyyy HH:mm") - val formattedDate = LocalDateTime.parse(prenotazione.dataLimiteCancellazione, formatter) - if (LocalDateTime.now().isAfter(formattedDate)) { - call.respond( - HttpStatusCode.BadRequest, - "Prenotazione non annullata: data limite cancellazione superata" - ) - return@patch - } - - - val listaProdottiPrenotati = - prenotazioniPastiDettaglioRepository.listaDettagliByIdPrenotazione(idPrenotazione.toLong()) - - //aggiorna lo stato di ogni prodotto per annullare la prenotazione - listaProdottiPrenotati.forEach { el -> - val prodottoDaAggiornare = PrenotazioniPastiDettaglio( - el.id, - el.idPrenotazione, - el.idProdotto, - 3L //ANNULLATA - ) - prenotazioniPastiDettaglioRepository.update(prodottoDaAggiornare) - } - - call.respond(HttpStatusCode.OK, "Prenotazione $idPrenotazione annullata") } diff --git a/src/main/kotlin/eu/maiora/routes/Prenotazioni.kt b/src/main/kotlin/eu/maiora/routes/Prenotazioni.kt index f29d0c2..f51d4ee 100644 --- a/src/main/kotlin/eu/maiora/routes/Prenotazioni.kt +++ b/src/main/kotlin/eu/maiora/routes/Prenotazioni.kt @@ -44,11 +44,6 @@ fun Route.prenotazioni(prenotazioniPastiRepository: PrenotazioniPastiRepository, offset.toLong(), order) - listaPrenotazioniPasti.forEach{ el -> - el.listaProdotti = - prenotazioniPastiDettaglioRepository.listaDettagliByIdPrenotazione(el.id) - } - call.respond(ListaPrenotazioni(totalRecords, listaPrenotazioniPasti)) } @@ -68,6 +63,15 @@ fun Route.prenotazioni(prenotazioniPastiRepository: PrenotazioniPastiRepository, return@post } + prenotazioneRequest.listaProdotti.forEach { prodotto -> + prodotto.quantita + ?: throw IllegalArgumentException("Quantita non specificata per il prodotto con ID ${prodotto.id}") + + if (prodotto.quantita < 1) { + throw IllegalArgumentException("Quantita non valida (${prodotto.quantita}) per il prodotto con ID ${prodotto.id}") + } + } + val prenotazionePasto = PrenotazioniPasti( -1, @@ -83,15 +87,19 @@ fun Route.prenotazioni(prenotazioniPastiRepository: PrenotazioniPastiRepository, val prenotazioneInserita = prenotazioniPastiRepository.insert(prenotazionePasto) //per ogni prodotto, inserisci il dettaglio della prenotazione - prenotazioneRequest.listaProdotti?.forEach { el -> - val dettaglioPrenotazione = PrenotazioniPastiDettaglio( - -1, - prenotazioneInserita.id, - el.id, - 0L - ) - listaDettagliInseriti.add(prenotazioniPastiDettaglioRepository.insert(dettaglioPrenotazione)) + prenotazioneRequest.listaProdotti.forEach { prodotto -> + repeat(prodotto.quantita!!) { + val dettaglioPrenotazione = PrenotazioniPastiDettaglio( + -1, + prenotazioneInserita.id, + prodotto.id, + 0L + ) + listaDettagliInseriti.add( + prenotazioniPastiDettaglioRepository.insert(dettaglioPrenotazione) + ) + } } @@ -117,7 +125,7 @@ fun Route.prenotazioni(prenotazioniPastiRepository: PrenotazioniPastiRepository, catch (e: Exception){ call.respond( HttpStatusCode.BadRequest, - "Errore nel processare la richiesta: ${e.cause}" + "Errore nel processare la richiesta: ${e.message}" ) } } diff --git a/src/main/kotlin/eu/maiora/routes/VerificaVassoio.kt b/src/main/kotlin/eu/maiora/routes/VerificaVassoio.kt index bcc5561..308c77d 100644 --- a/src/main/kotlin/eu/maiora/routes/VerificaVassoio.kt +++ b/src/main/kotlin/eu/maiora/routes/VerificaVassoio.kt @@ -19,7 +19,6 @@ fun Route.verificaVassoio(selezionaComposizioneRepository: SelezionaComposizione try { val dati = call.receive() - //val idsConcatenati = dati.listaProdotti.joinToString(separator = "|") { it.id.toString() } val idsConcatenati = dati.listaProdotti .flatMap { prodotto -> List(prodotto.quantita) { prodotto.id } } .joinToString(separator = "|") { it.toString() } @@ -35,43 +34,6 @@ fun Route.verificaVassoio(selezionaComposizioneRepository: SelezionaComposizione call.respond(HttpStatusCode.BadRequest, "Body non valido") } - - - - - - /*val idTessera = call.parameters["idTessera"] - val idVassoio = call.parameters["idVassoio"] - val data = call.parameters["data"] - - if (idTessera == null) { - call.respondText("ID tessera non valido", status = HttpStatusCode.BadRequest) - return@get - } - - if (idVassoio == null) { - call.respondText("ID vassoio non valido", status = HttpStatusCode.BadRequest) - return@get - } - - if (data == null) { - call.respondText("data non valida", status = HttpStatusCode.BadRequest) - return@get - } - - // Cerca la tessera per codice fiscale - val valorePasto = valorePastiRepository.valorePastoByTessVassData(idTessera, idVassoio, data) - val prezzo = valorePasto.split("#").get(0) - val punti = valorePasto.split("#").get(1) - - if(prezzo == "-1" && punti == "-1") - call.respondText("Prezzo e punti non trovati", status = HttpStatusCode.NotFound) - - - call.respond( ValorePasti(idTessera.toLong(), - idVassoio.toLong(), data, - prezzo.replace(',', '.').toDouble(), - punti.toInt()))*/ } } @@ -79,7 +41,5 @@ fun Route.verificaVassoio(selezionaComposizioneRepository: SelezionaComposizione } @Serializable -data class DatiVassoio (val idUtente : Long, val listaProdotti: List) +data class DatiVassoio (val idUtente : Long, val listaProdotti: List) -@Serializable -data class Prodotti (val id: Long, val quantita: Int) \ No newline at end of file