Skip to content
Snippets Groups Projects
Commit aaceb017 authored by Alban Sannier's avatar Alban Sannier
Browse files

fini

parent 779f216a
No related branches found
No related tags found
No related merge requests found
package fr.ulille.iut.tva.dto;
public class InfoTauxDTO {
private String label;
private double taux;
public InfoTauxDTO() {}
public InfoTauxDTO(String label, double taux) {
this.label = label;
this.taux = taux;
}
public String getLabel() {
return label;
}
public void setLabel(String label) {
this.label = label;
}
public double getTaux() {
return taux;
}
public void setTaux(double taux) {
this.taux = taux;
}
}
package fr.ulille.iut.tva.dto;
import jakarta.xml.bind.annotation.XmlRootElement;
@XmlRootElement
public class detailsDTO {
private double montantTotal;
private double montantTva;
private double somme;
private String tauxLabel;
private double tauxValue;
public detailsDTO() {}
public detailsDTO(double montantTotal, double montantTva, double somme, String tauxLabel, double tauxValue) {
this.montantTotal = montantTotal;
this.montantTva = montantTva;
this.somme = somme;
this.tauxLabel = tauxLabel;
this.tauxValue = tauxValue;
}
public double getMontantTotal() {
return montantTotal;
}
public void setMontantTotal(double montantTotal) {
this.montantTotal = montantTotal;
}
public double getMontantTva() {
return montantTva;
}
public void setMontantTva(double montantTva) {
this.montantTva = montantTva;
}
public double getSomme() {
return somme;
}
public void setSomme(double somme) {
this.somme = somme;
}
public String getTauxLabel() {
return tauxLabel;
}
public void setTauxLabel(String tauxLabel) {
this.tauxLabel = tauxLabel;
}
public double getTauxValue() {
return tauxValue;
}
public void setTauxValue(double tauxValue) {
this.tauxValue = tauxValue;
};
}
package fr.ulille.iut.tva.ressource;
import jakarta.ws.rs.WebApplicationException;
import jakarta.ws.rs.core.Response;
public class NiveauTvaInexistantException extends WebApplicationException {
private static final long serialVersionUID = 939875418210403804L;
public NiveauTvaInexistantException() {
super(Response.status(Response.Status.NOT_ACCEPTABLE).entity("Niveau de TVA inexistant").build());
}
}
package fr.ulille.iut.tva.ressource;
import java.util.ArrayList;
import java.util.List;
import fr.ulille.iut.tva.dto.InfoTauxDTO;
import fr.ulille.iut.tva.dto.detailsDTO;
import fr.ulille.iut.tva.service.CalculTva;
import fr.ulille.iut.tva.service.TauxTva;
import jakarta.ws.rs.GET;
import jakarta.ws.rs.Path;
import jakarta.ws.rs.PathParam;
import jakarta.ws.rs.Produces;
import jakarta.ws.rs.QueryParam;
import jakarta.ws.rs.core.MediaType;
/**
* TvaRessource
......@@ -18,5 +27,45 @@ public class TvaRessource {
return TauxTva.NORMAL.taux;
}
@GET
@Path("valeur/{niveauTva}")
public double getValeurTaux(@PathParam("niveauTva") String niveau) {
try {
return TauxTva.valueOf(niveau.toUpperCase()).taux;
}
catch ( Exception ex ) {
throw new NiveauTvaInexistantException();
}
}
@GET
@Path("valeur/{niveauTva}")
public double getMontantTotal(@PathParam("niveauTva") String niveau, @QueryParam("somme") double somme) {
try {
return somme * ((TauxTva.valueOf(niveau.toUpperCase()).taux / 100)+1);
}
catch(Exception ex) {
throw new NiveauTvaInexistantException();
}
}
@GET
@Path("lestaux")
@Produces({MediaType.APPLICATION_JSON, MediaType.APPLICATION_XML})
public List<InfoTauxDTO> getInfoTaux() {
ArrayList<InfoTauxDTO> result = new ArrayList<InfoTauxDTO>();
for ( TauxTva t : TauxTva.values() ) {
result.add(new InfoTauxDTO(t.name(), t.taux));
}
return result;
}
@GET
@Path("details/{niveauTva}")
@Produces({MediaType.APPLICATION_JSON, MediaType.APPLICATION_XML})
public List<detailsDTO> getDetail(@PathParam("niveauTva") String niveau, @QueryParam("somme") double somme){
ArrayList<detailsDTO> result = new ArrayList<detailsDTO>();
result.add(new detailsDTO(getMontantTotal(niveau, somme), TauxTva.valueOf(niveau.toUpperCase()).taux, somme, niveau, getValeurTaux(niveau)));
return result;
}
}
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Please register or to comment