entregado detalle y orden, bloqueo de orden pagada

develop
Daniel Arroyo 3 years ago
parent 265790dcc7
commit d53a866368
  1. 2
      README.md
  2. 4
      src/main/java/api/menu/playa/controller/LoginController.java
  3. 16
      src/main/java/api/menu/playa/controller/OrdenController.java
  4. 8
      src/main/java/api/menu/playa/controller/ProductoController.java
  5. 3
      src/main/java/api/menu/playa/dao/OrdenDAO.java
  6. 44
      src/main/java/api/menu/playa/helper/OrdenHelper.java
  7. 11
      src/main/java/api/menu/playa/model/Detalle.java
  8. 11
      src/main/java/api/menu/playa/model/Orden.java
  9. 9
      src/main/java/api/menu/playa/vo/CambioCantidadVO.java
  10. 7
      src/main/java/api/menu/playa/vo/DetalleVO.java
  11. 9
      src/main/java/api/menu/playa/vo/OrdenVO.java
  12. 7
      src/main/java/api/menu/playa/vo/RegistroVO.java
  13. 2
      src/main/resources/application.properties

@ -25,7 +25,9 @@ echo $! > pid
kill -9 `cat pid`
```
## Faltantes
eliminacion de una orden
# api-menu-playa Project

@ -115,13 +115,15 @@ public class LoginController {
if (request.getUser() == null || request.getUser().isEmpty()) {
throw new NegocioException("el campo usuario debe ser ingresado", 2);
}
if (request.getNombre() == null || request.getNombre().isEmpty()) {
throw new NegocioException("el campo nombre debe ser ingresado", 2);
}
if (request.getPass() == null || request.getPass().isEmpty()) {
throw new NegocioException("el campo contreseña debe ser ingresado", 2);
}
if (request.getPass2() == null || request.getPass2().isEmpty()) {
throw new NegocioException("el campo confirmar contraseña debe ser ingresado", 2);
}
if (!request.getPass().equals(request.getPass2())) {
throw new NegocioException("los campos de contraseña no son iguales", 2);
}

@ -14,7 +14,9 @@ import api.menu.playa.vo.ProductoIdVO;
import api.menu.playa.vo.ResponseGlobal;
import java.util.List;
import java.util.Optional;
import javax.annotation.security.PermitAll;
import javax.annotation.security.RolesAllowed;
import javax.enterprise.context.RequestScoped;
import javax.inject.Inject;
@ -34,6 +36,8 @@ public class OrdenController {
private static final String SUCCESS = "SUCCESS";
//private static final String ERROR = "ERROR";
//@Inject
//JsonWebToken jwt;
@Inject
@ -91,6 +95,8 @@ public class OrdenController {
@Path("/detail")
public Response detail( CambioCantidadVO vo) {
//Optional<String> userOptional = jwt.claim("preferred_username");
try {
ordenHelper.cambiar(vo);
return Response.ok(new ResponseGlobal<>(0, SUCCESS)).build();
@ -123,5 +129,15 @@ public class OrdenController {
return Response.ok(new ResponseGlobal<>(0, SUCCESS, orden)).build();
}
@PermitAll
@GET
@Path("/getall/pedidos")
public Response getAllPrdidos() {
List<OrdenVO> ordenes = ordenHelper.obtenerPedidos();
return Response.ok(new ResponseGlobal<>(0, SUCCESS, ordenes)).build();
}
}

@ -34,7 +34,7 @@ public class ProductoController {
@Inject
ProductoHelper productoHelper;
@RolesAllowed({"ADMIN", "USER"})
@RolesAllowed({"ADMIN"})
@POST
@Path("/create")
public Response crearProducto(ProductoVO productoVO) {
@ -44,7 +44,7 @@ public class ProductoController {
return Response.ok(new ResponseGlobal<>(0, SUCCESS)).build();
}
@RolesAllowed({"ADMIN", "USER"})
@RolesAllowed({"ADMIN"})
@PUT
@Path("/update")
public Response actualizarProducto(ProductoVO productoVO) {
@ -59,7 +59,7 @@ public class ProductoController {
}
}
@RolesAllowed({"ADMIN", "USER"})
@RolesAllowed({"ADMIN"})
@GET
@Path("/get/{id}")
public Response getProducto(@PathParam("id") Long id) {
@ -94,7 +94,7 @@ public class ProductoController {
return Response.ok(new ResponseGlobal<>(0, SUCCESS, productos)).build();
}
@RolesAllowed({"ADMIN", "USER"})
@RolesAllowed({"ADMIN"})
@DELETE
@Path("/delete/{id}")
public Response delete(@PathParam("id") Long id) {

@ -11,5 +11,8 @@ public interface OrdenDAO extends JpaRepository<Orden, Long> {
@Query("select o from Orden o where o.eliminado = false order by o.fechaCreacion desc")
List<Orden> getAll();
@Query("select o from Orden o where o.eliminado = false and o.entregado = false order by o.fechaCreacion asc")
List<Orden> getAllPedidos();
}

@ -71,6 +71,13 @@ public class OrdenHelper {
Optional<Orden> orden = ordenDAO.findById(vo.getOrden());
if (orden.isPresent()) {
if (EstadoOrdenEnum.PAGADO.equals(orden.get().getEstado())) {
throw new NegocioException("No se puede agregar productos a una orden pagada", 2);
}
}
if (orden.isEmpty()) {
throw new NegocioException("Orden no encontrada", 2);
}
@ -113,9 +120,36 @@ public class OrdenHelper {
}
detalle.get().setDescuento(vo.getDescuento());
detalle.get().setEntregado(vo.getEntregado());
detalleDAO.save(detalle.get());
evaluarProductosEntregados(detalle.get().getOrden().getId());
}
private void evaluarProductosEntregados(Long idOrden) throws NegocioException {
Optional<Orden> orden = ordenDAO.findById(idOrden);
if (orden.isEmpty()) {
throw new NegocioException("Orden no encontrada", 2);
}
boolean detallesPagados = true;
for (Detalle detalle: orden.get().getDetalle()) {
if (Boolean.FALSE.equals(detalle.getEntregado())) {
detallesPagados = false;
}
}
if (detallesPagados) {
orden.get().setEntregado(Boolean.TRUE);
ordenDAO.save(orden.get());
}
}
private List<OrdenVO> mapperOrden(List<Orden> ordenes) {
@ -138,6 +172,7 @@ public class OrdenHelper {
ordenVO.setFecha(orden.getFechaCreacion());
ordenVO.setEstado(orden.getEstado());
ordenVO.setMedio(orden.getMedioPago());
ordenVO.setEntregado(orden.getEntregado());
Integer total = 0;
@ -177,6 +212,8 @@ public class OrdenHelper {
detalleVO.setId(detalle.getId());
detalleVO.setPrecio(detalle.getPrecio().getPrecio());
detalleVO.setDescuento(detalle.getDescuento());
detalleVO.setEntregado(detalle.getEntregado());
return detalleVO;
}
@ -202,5 +239,12 @@ public class OrdenHelper {
}
public List<OrdenVO> obtenerPedidos() {
List<Orden> ordenes = ordenDAO.getAllPedidos();
return mapperOrden(ordenes);
}
}

@ -38,6 +38,9 @@ public class Detalle extends AbstractGeneral{
@Column(name = "descuento")
private Integer descuento = 0;
@Column(name = "entregado")
private Boolean entregado = false;
public Long getId() {
return id;
}
@ -85,5 +88,13 @@ public class Detalle extends AbstractGeneral{
public void setDescuento(Integer descuento) {
this.descuento = descuento;
}
public Boolean getEntregado() {
return entregado;
}
public void setEntregado(Boolean entregado) {
this.entregado = entregado;
}
}

@ -37,6 +37,9 @@ public class Orden extends AbstractGeneral{
@OneToMany(mappedBy = "orden")
private List<Detalle> detalle;
@Column(name = "entregado")
private Boolean entregado = false;
@Override
public Long getId() {
return id;
@ -69,5 +72,13 @@ public class Orden extends AbstractGeneral{
public void setDetalle(List<Detalle> detalle) {
this.detalle = detalle;
}
public Boolean getEntregado() {
return entregado;
}
public void setEntregado(Boolean entregado) {
this.entregado = entregado;
}
}

@ -5,6 +5,7 @@ public class CambioCantidadVO {
private Long detalle;
private Integer dato;
private Integer descuento;
private Boolean entregado;
public Long getDetalle() {
return detalle;
@ -29,5 +30,13 @@ public class CambioCantidadVO {
public void setDescuento(Integer descuento) {
this.descuento = descuento;
}
public Boolean getEntregado() {
return entregado;
}
public void setEntregado(Boolean entregado) {
this.entregado = entregado;
}
}

@ -8,6 +8,7 @@ public class DetalleVO {
private Integer cantidad;
private Integer precio;
private Integer descuento;
private Boolean entregado;
public String getNombre() {
return nombre;
@ -45,5 +46,11 @@ public class DetalleVO {
public void setDescuento(Integer descuento) {
this.descuento = descuento;
}
public Boolean getEntregado() {
return entregado;
}
public void setEntregado(Boolean entregado) {
this.entregado = entregado;
}
}

@ -13,6 +13,7 @@ public class OrdenVO {
private LocalDateTime fecha;
private EstadoOrdenEnum estado;
private MedioPagoEnum medio;
private Boolean entregado;
private List<DetalleVO> detalles;
@ -64,6 +65,14 @@ public class OrdenVO {
this.medio = medio;
}
public Boolean getEntregado() {
return entregado;
}
public void setEntregado(Boolean entregado) {
this.entregado = entregado;
}

@ -5,6 +5,7 @@ public class RegistroVO {
private String user;
private String pass;
private String pass2;
private String nombre;
public String getUser() {
return user;
@ -24,6 +25,12 @@ public class RegistroVO {
public void setPass2(String pass2) {
this.pass2 = pass2;
}
public String getNombre() {
return nombre;
}
public void setNombre(String nombre) {
this.nombre = nombre;
}
}

@ -3,7 +3,7 @@ quarkus.http.port=${MS_PORT:8181}
quarkus.http.root-path=/beach
quarkus.http.cors=true
quarkus.http.cors.origins=http://localhost:4200
#quarkus.http.cors.origins=http://localhost:4200
quarkus.http.host=0.0.0.0

Loading…
Cancel
Save

Powered by TurnKey Linux.