2
0
forked from maiora/backend-api

aggiunta calcolo del prezzo netto

il campo sconto contiene tutti gli sconti indicati in convenzione (sconto_1, sconto_2 e sconto_3)
This commit is contained in:
Francesco Di Sciascio 2025-04-24 12:35:30 +02:00
parent 8a23aafdb3
commit 632e646993

View File

@ -9,6 +9,7 @@ import io.ktor.server.auth.jwt.*
import io.ktor.server.response.* import io.ktor.server.response.*
import io.ktor.server.routing.* import io.ktor.server.routing.*
import kotlin.collections.ArrayList import kotlin.collections.ArrayList
import kotlin.math.round
fun Route.disponibilitaArticoli(articoliCrossQRicambiRepository: ArticoliCrossQRicambiRepository, fun Route.disponibilitaArticoli(articoliCrossQRicambiRepository: ArticoliCrossQRicambiRepository,
@ -93,10 +94,17 @@ fun Route.disponibilitaArticoli(articoliCrossQRicambiRepository: ArticoliCrossQR
listNumPezziPerMagazzino.add(NumPezziPerMagazzino(e.magazzino, e.numeroPezzi.toString())) listNumPezziPerMagazzino.add(NumPezziPerMagazzino(e.magazzino, e.numeroPezzi.toString()))
} }
//calcolo del netto:
//se il prezzo è valorizzato, utilizzare gli sconti, altrimenti va restituito il valore del campo netto
val netto = if(data[0].prezzo > 0)
calcolaNetto(data[0].prezzo, data[0].sconto)
else
data[0].netto
val result = DisponibilitaArticoli(articoloEcommerce.codice, val result = DisponibilitaArticoli(articoloEcommerce.codice,
articoloEcommerce.descrizione, articoloEcommerce.descrizione,
listArticoliCrossQRicambi[0].costruttore, listArticoliCrossQRicambi[0].costruttore,
data[0].netto.toString(), netto.toString(),
data[0].numeroPezzi > 0, data[0].numeroPezzi > 0,
listNumPezziPerMagazzino, listNumPezziPerMagazzino,
dataValoreUsato?.get(0)?.valoreUsato.toString() dataValoreUsato?.get(0)?.valoreUsato.toString()
@ -125,4 +133,15 @@ fun Route.disponibilitaArticoli(articoliCrossQRicambiRepository: ArticoliCrossQR
} }
} }
}
/***
* calcolo del prezzo netto: utilizzare gli sconti solo se valorizzati
*/
fun calcolaNetto(prezzo : Double, sconto : Double) : Double {
var netto = prezzo
if(sconto > 0) {
netto *= (1 - sconto / 100)
}
return (round(netto * 100) / 100.0)
} }