mirror of
https://git.imnavajas.es/jjimenez/erp-imprimelibros.git
synced 2026-01-13 08:58:48 +00:00
en el test está la funcion para el servicio
This commit is contained in:
@ -0,0 +1,57 @@
|
||||
package com.imprimelibros.erp.presupuesto.classes;
|
||||
|
||||
import static com.imprimelibros.erp.presupuesto.marcapaginas.Marcapaginas.Papeles;
|
||||
import static com.imprimelibros.erp.presupuesto.marcapaginas.Marcapaginas.Acabado;
|
||||
import static com.imprimelibros.erp.presupuesto.marcapaginas.Marcapaginas.Tamanios;
|
||||
import static com.imprimelibros.erp.presupuesto.marcapaginas.Marcapaginas.Caras_Impresion;
|
||||
|
||||
import jakarta.validation.constraints.Min;
|
||||
|
||||
public class PresupuestoMarcapaginas {
|
||||
|
||||
@Min(value = 100, message = "{validation.min}")
|
||||
private Integer unidades = 100;
|
||||
private Tamanios tamanio = Tamanios._50x140_;
|
||||
private Caras_Impresion carasImpresion = Caras_Impresion.una_cara;
|
||||
private Papeles papel = Papeles.cartulina_grafica;
|
||||
private Integer gramaje = 300;
|
||||
private Acabado acabado = Acabado.ninguno;
|
||||
|
||||
|
||||
public Integer getUnidades() {
|
||||
return unidades;
|
||||
}
|
||||
public void setUnidades(Integer unidades) {
|
||||
this.unidades = unidades;
|
||||
}
|
||||
public Tamanios getTamanio() {
|
||||
return tamanio;
|
||||
}
|
||||
public void setTamanio(Tamanios tamanio) {
|
||||
this.tamanio = tamanio;
|
||||
}
|
||||
public Caras_Impresion getCarasImpresion() {
|
||||
return carasImpresion;
|
||||
}
|
||||
public void setCarasImpresion(Caras_Impresion carasImpresion) {
|
||||
this.carasImpresion = carasImpresion;
|
||||
}
|
||||
public Papeles getPapel() {
|
||||
return papel;
|
||||
}
|
||||
public void setPapel(Papeles papel) {
|
||||
this.papel = papel;
|
||||
}
|
||||
public Integer getGramaje() {
|
||||
return gramaje;
|
||||
}
|
||||
public void setGramaje(Integer gramaje) {
|
||||
this.gramaje = gramaje;
|
||||
}
|
||||
public Acabado getAcabado() {
|
||||
return acabado;
|
||||
}
|
||||
public void setAcabado(Acabado acabado) {
|
||||
this.acabado = acabado;
|
||||
}
|
||||
}
|
||||
@ -0,0 +1,154 @@
|
||||
package com.imprimelibros.erp.presupuesto.marcapaginas;
|
||||
|
||||
import jakarta.validation.constraints.NotNull;
|
||||
import jakarta.persistence.*;
|
||||
import jakarta.validation.constraints.Max;
|
||||
import jakarta.validation.constraints.Min;
|
||||
|
||||
@Entity
|
||||
@Table(name = "marcapaginas")
|
||||
public class Marcapaginas {
|
||||
|
||||
public enum Acabado{
|
||||
ninguno,
|
||||
plastificado_brillo_1c,
|
||||
plastificado_brillo_2c,
|
||||
plastificado_mate_1c,
|
||||
plastificado_mate_2c
|
||||
};
|
||||
|
||||
public enum Tamanios{
|
||||
_50x140_, _50x170_, _50x210_
|
||||
};
|
||||
|
||||
public enum Papeles{
|
||||
cartulina_grafica, estucado_mate
|
||||
};
|
||||
|
||||
public enum Caras_Impresion{
|
||||
una_cara, dos_caras
|
||||
};
|
||||
|
||||
@Id
|
||||
@GeneratedValue(strategy = GenerationType.IDENTITY)
|
||||
private Long id;
|
||||
|
||||
@NotNull(message = "{validation.required}")
|
||||
@Enumerated(EnumType.STRING)
|
||||
private Caras_Impresion carasImpresion = Caras_Impresion.una_cara;
|
||||
|
||||
@NotNull(message = "{validation.required}")
|
||||
@Enumerated(EnumType.STRING)
|
||||
private Tamanios tamanio = Tamanios._50x140_;
|
||||
|
||||
@NotNull(message = "{validation.required}")
|
||||
@Enumerated(EnumType.STRING)
|
||||
private Papeles papel = Papeles.cartulina_grafica;
|
||||
|
||||
@NotNull(message = "{validation.required}")
|
||||
private Integer gramaje = 300;
|
||||
|
||||
@NotNull(message = "{validation.required}")
|
||||
@Enumerated(EnumType.STRING)
|
||||
private Acabado acabado = Acabado.ninguno;
|
||||
|
||||
@Min(value = 100, message = "{validation.min}")
|
||||
@NotNull(message = "{validation.required}")
|
||||
private Integer unidades_min = 100;
|
||||
|
||||
@Min(value = 101, message = "{validation.min}")
|
||||
@NotNull(message = "{validation.required}")
|
||||
private Integer unidades_max = 5000;
|
||||
|
||||
@NotNull(message = "{validation.required}")
|
||||
private Double precio_unidades_min;
|
||||
|
||||
@NotNull(message = "{validation.required}")
|
||||
private Double precio_unidades_max;
|
||||
|
||||
@NotNull(message = "{validation.required}")
|
||||
@Min(value = 0, message = "{validation.min}")
|
||||
@Max(value = 300, message = "{validation.max}")
|
||||
|
||||
private Integer margen_unidades_min = 0;
|
||||
|
||||
@NotNull(message = "{validation.required}")
|
||||
@Min(value = 0, message = "{validation.min}")
|
||||
@Max(value = 300, message = "{validation.max}")
|
||||
private Integer margen_unidades_max = 0;
|
||||
|
||||
/* Getters and Setters */
|
||||
public Long getId() {
|
||||
return id;
|
||||
}
|
||||
public void setId(Long id) {
|
||||
this.id = id;
|
||||
}
|
||||
public Caras_Impresion getCarasImpresion() {
|
||||
return carasImpresion;
|
||||
}
|
||||
public void setCarasImpresion(Caras_Impresion carasImpresion) {
|
||||
this.carasImpresion = carasImpresion;
|
||||
}
|
||||
public Tamanios getTamanio() {
|
||||
return tamanio;
|
||||
}
|
||||
public void setTamanio(Tamanios tamanio) {
|
||||
this.tamanio = tamanio;
|
||||
}
|
||||
public Papeles getPapel() {
|
||||
return papel;
|
||||
}
|
||||
public void setPapel(Papeles papel) {
|
||||
this.papel = papel;
|
||||
}
|
||||
public Integer getGramaje() {
|
||||
return gramaje;
|
||||
}
|
||||
public void setGramaje(Integer gramaje) {
|
||||
this.gramaje = gramaje;
|
||||
}
|
||||
public Acabado getAcabado() {
|
||||
return acabado;
|
||||
}
|
||||
public void setAcabado(Acabado acabado) {
|
||||
this.acabado = acabado;
|
||||
}
|
||||
public Integer getUnidades_min() {
|
||||
return unidades_min;
|
||||
}
|
||||
public void setUnidades_min(Integer unidades_min) {
|
||||
this.unidades_min = unidades_min;
|
||||
}
|
||||
public Integer getUnidades_max() {
|
||||
return unidades_max;
|
||||
}
|
||||
public void setUnidades_max(Integer unidades_max) {
|
||||
this.unidades_max = unidades_max;
|
||||
}
|
||||
public Double getPrecio_unidades_min() {
|
||||
return precio_unidades_min;
|
||||
}
|
||||
public void setPrecio_unidades_min(Double precio_unidades_min) {
|
||||
this.precio_unidades_min = precio_unidades_min;
|
||||
}
|
||||
public Double getPrecio_unidades_max() {
|
||||
return precio_unidades_max;
|
||||
}
|
||||
public void setPrecio_unidades_max(Double precio_unidades_max) {
|
||||
this.precio_unidades_max = precio_unidades_max;
|
||||
}
|
||||
public Integer getMargen_unidades_min() {
|
||||
return margen_unidades_min;
|
||||
}
|
||||
public void setMargen_unidades_min(Integer margen_unidades_min) {
|
||||
this.margen_unidades_min = margen_unidades_min;
|
||||
}
|
||||
public Integer getMargen_unidades_max() {
|
||||
return margen_unidades_max;
|
||||
}
|
||||
public void setMargen_unidades_max(Integer margen_unidades_max) {
|
||||
this.margen_unidades_max = margen_unidades_max;
|
||||
}
|
||||
|
||||
}
|
||||
@ -0,0 +1,32 @@
|
||||
package com.imprimelibros.erp.presupuesto.marcapaginas;
|
||||
|
||||
import org.springframework.data.jpa.repository.JpaRepository;
|
||||
import org.springframework.stereotype.Repository;
|
||||
|
||||
import com.imprimelibros.erp.presupuesto.classes.PresupuestoMarcapaginas;
|
||||
|
||||
import org.springframework.data.jpa.repository.Query;
|
||||
import org.springframework.data.repository.query.Param;
|
||||
import java.util.List;
|
||||
|
||||
@Repository
|
||||
public interface MarcapaginasRepository extends JpaRepository<Marcapaginas, Long> {
|
||||
|
||||
@Query("""
|
||||
SELECT m
|
||||
FROM Marcapaginas m
|
||||
WHERE m.tamanio = :#{#p.tamanio}
|
||||
AND m.carasImpresion = :#{#p.carasImpresion}
|
||||
AND m.papel = :#{#p.papel}
|
||||
AND m.gramaje = :#{#p.gramaje}
|
||||
AND m.acabado = :#{#p.acabado}
|
||||
AND m.unidades_min <= :#{#p.unidades}
|
||||
ORDER BY
|
||||
CASE
|
||||
WHEN :#{#p.unidades} BETWEEN m.unidades_min AND m.unidades_max THEN 0
|
||||
ELSE 1
|
||||
END,
|
||||
m.unidades_max DESC
|
||||
""")
|
||||
List<Marcapaginas> findPrecios(@Param("p") PresupuestoMarcapaginas p);
|
||||
}
|
||||
Reference in New Issue
Block a user