Skip to content

Commit

Permalink
Resuelto el problema de el pedido y de eliminar los articulos del
Browse files Browse the repository at this point in the history
carrito si dicho articulo se elimina
  • Loading branch information
jeche21 committed Feb 16, 2017
1 parent 2623fb1 commit 6ba15d4
Show file tree
Hide file tree
Showing 4 changed files with 84 additions and 79 deletions.
2 changes: 1 addition & 1 deletion src/main/java/es/sidelab/SaleWeb/Articulo.java
Original file line number Diff line number Diff line change
Expand Up @@ -30,7 +30,7 @@ public class Articulo {
@ManyToMany(mappedBy="articulosComprados")
private List<Pedido> articulosEnPedidos = new ArrayList<Pedido>();

@ManyToMany(mappedBy="articulosCarrito")
@ManyToMany(cascade = CascadeType.ALL)
private List<Carrito> articulosEnCarrito = new ArrayList<Carrito>();

@OneToMany(mappedBy = "articulo", cascade = CascadeType.ALL)
Expand Down
4 changes: 4 additions & 0 deletions src/main/java/es/sidelab/SaleWeb/ArticuloRepository.java
Original file line number Diff line number Diff line change
Expand Up @@ -4,9 +4,13 @@

import org.springframework.data.jpa.repository.JpaRepository;

import es.sidelab.SaleWeb.Articulo;
import es.sidelab.SaleWeb.Carrito;

public interface ArticuloRepository extends JpaRepository<Articulo, Long> {

List<Articulo> findByNombre(String nombre);
List<Articulo> findBySeccion(String seccion);
List<Articulo> findByArticulosEnCarrito(Carrito carrito);

}
2 changes: 1 addition & 1 deletion src/main/java/es/sidelab/SaleWeb/Carrito.java
Original file line number Diff line number Diff line change
Expand Up @@ -24,7 +24,7 @@ public class Carrito {
private long id;

//el carrito tiene varios articulos y se borran en cascada
@ManyToMany
@ManyToMany(mappedBy="articulosEnCarrito")
List<Articulo> articulosCarrito = new ArrayList<Articulo>();

@OneToOne(mappedBy="carrito")
Expand Down
155 changes: 78 additions & 77 deletions src/main/java/es/sidelab/SaleWeb/SaleWebController.java
Original file line number Diff line number Diff line change
Expand Up @@ -104,77 +104,76 @@ public String nuevoArticulo(Model model, Articulo articulo) {
}

//*** DONE ***
@GetMapping("/articulo/{id}")
public String verArticulo (Model model, @PathVariable long id /*@PathVariable int num*/){
@GetMapping("/articulo/{id}")
public String verArticulo (Model model, @PathVariable long id /*@PathVariable int num*/){

Articulo articulo = articulo_repository.findOne(id);
model.addAttribute("articulo", articulo);
//Articulo articulo_guardado = articulo_repository.findOne(id);
//model.addAttribute("articulo",articulo_guardado);
model.addAttribute("comentarios",comentario_repository.findByArticulo(articulo));
return "ver_articulo";
}

Articulo articulo = articulo_repository.findOne(id);
model.addAttribute("articulo", articulo);
//Articulo articulo_guardado = articulo_repository.findOne(id);
//model.addAttribute("articulo",articulo_guardado);
model.addAttribute("comentarios",comentario_repository.findByArticulo(articulo));
return "ver_articulo";
}

@GetMapping("/articulo/{id}/eliminar")
public String eliminarArticulo (Model model, @PathVariable long id /*@PathVariable int num*/){
@GetMapping("/articulo/{id}/eliminar")
public String eliminarArticulo (Model model, @PathVariable long id /*@PathVariable int num*/){

Articulo articulo = articulo_repository.findOne(id);
articulo_repository.delete(articulo);
model.addAttribute("articulos", articulo_repository.findAll());
return "articulo_eliminado";
}

Articulo articulo = articulo_repository.findOne(id);
articulo_repository.delete(articulo);
model.addAttribute("articulos", articulo_repository.findAll());
return "articulo_eliminado";
}

//*** DONE ***
@GetMapping("/carrito")
public String verCarrito (Model model, HttpSession sesion){
Usuario usuario = usuario_repository.findByEmail((String) sesion.getAttribute("email"));
model.addAttribute("articulos_carrito", usuario.getCarrito().getArticulosCarrito());
return "carrito";
}

//*** DONE ***
@GetMapping("/carrito/{num}")
public String verArticuloCarrito (Model model, @PathVariable int num, HttpSession sesion){
Usuario usuario = usuario_repository.findByEmail((String) sesion.getAttribute("email"));
model.addAttribute("articulo_carrito", usuario.getCarrito().getArticulosCarrito().get(num-1));
//*** DONE ***
@GetMapping("/carrito")
public String verCarrito (Model model, HttpSession sesion){
Usuario usuario = usuario_repository.findByEmail((String) sesion.getAttribute("email"));
model.addAttribute("articulos_carrito", usuario.getCarrito().getArticulosCarrito());
return "carrito";
}

//*** DONE ***
@GetMapping("/carrito/{num}")
public String verArticuloCarrito (Model model, @PathVariable int num, HttpSession sesion){
Usuario usuario = usuario_repository.findByEmail((String) sesion.getAttribute("email"));
model.addAttribute("articulo_carrito", usuario.getCarrito().getArticulosCarrito().get(num-1));

return "ver_articuloCarrito";
}

return "ver_articuloCarrito";
}


//*** DONE ***
@GetMapping("/articulo/{id}/añadido")
public String añadirArticulo (Model model, @PathVariable long id, HttpSession sesion /*@PathVariable int num*/){

Articulo articulo = articulo_repository.findOne(id);
//articulos_carrito.add(articulo);
//articulos.remove(num-1);
//*** DONE ***
@GetMapping("/articulo/{id}/añadido")
public String añadirArticulo (Model model, @PathVariable long id, HttpSession sesion /*@PathVariable int num*/){

Articulo articulo = articulo_repository.findOne(id);
//articulos_carrito.add(articulo);
//articulos.remove(num-1);

//Articulo articulo_guardado = articulo_repository.findOne(id);
Usuario usuario = usuario_repository.findByEmail((String) sesion.getAttribute("email"));
Carrito carritoUsuario = usuario.getCarrito();
articulo.getArticulosEnCarrito().add(carritoUsuario);
articulo_repository.save(articulo);

return "articulo_añadido";
}

//Articulo articulo_guardado = articulo_repository.findOne(id);
Usuario usuario = usuario_repository.findByEmail((String) sesion.getAttribute("email"));
Carrito carritoUsuario = usuario.getCarrito();
carrito_repository.delete(carritoUsuario);
carritoUsuario.getArticulosCarrito().add(articulo);
carrito_repository.save(carritoUsuario);
//*** DONE ***

return "articulo_añadido";
}

//*** DONE ***

//No me mola nadaaaaaaaa esta maaaaaal ¿{num} y luego long id?
@GetMapping("/carrito/{num}/eliminado")
public String eliminarArticuloCarrito (Model model,/*@PathVariable long id*/ @PathVariable int num, HttpSession sesion){
//No me mola nadaaaaaaaa esta maaaaaal ¿{num} y luego long id?
@GetMapping("/carrito/{num}/eliminado")
public String eliminarArticuloCarrito (Model model,/*@PathVariable long id*/ @PathVariable int num, HttpSession sesion){

//articulos_carrito.remove(num-1);
Usuario usuarioBuscado = usuario_repository.findByEmail((String) sesion.getAttribute("email"));
Carrito usuario = usuarioBuscado.getCarrito();
Articulo articulo = usuario.getArticulosCarrito().get(num-1);
articulo.getArticulosEnCarrito().remove(usuario);
articulo_repository.save(articulo);
return "articuloCarritoEliminado";
}

//articulos_carrito.remove(num-1);
Usuario usuarioBuscado = usuario_repository.findByEmail((String) sesion.getAttribute("email"));
Carrito usuario = usuarioBuscado.getCarrito();
carrito_repository.delete(usuario);
usuarioBuscado.getCarrito().getArticulosCarrito().remove(num-1);
carrito_repository.save(usuario);
return "articuloCarritoEliminado";
}

@PostMapping("/usuario/nuevo")
public String UsuarioNuevo (Model model, Usuario usuario, HttpSession sesion){
//Guardo el usuario creado
Expand All @@ -184,7 +183,7 @@ public String UsuarioNuevo (Model model, Usuario usuario, HttpSession sesion){
usuario_repository.save(usuario);
return "usuario_registrado";
}

@PostMapping("/comentario/articulo/{id}")
public String comentar (Model model, Comentario comentario, @PathVariable long id, HttpSession sesion){
//Guardo el comentario escrito creado
Expand All @@ -205,14 +204,13 @@ public String comentarioEliminar (Model model,@PathVariable long id){
//model.addAttribute(comentario_repository.findAll());
return "comentario_eliminado";
}

@GetMapping("/articulo/comentario/{id}")
public String verComentario(Model model, @PathVariable long id){

model.addAttribute("comentario", comentario_repository.findOne(id));
return "ver_comentario";
}

@PostMapping("/carrito/comprar")
public String comprarArticulos(Model model, HttpSession sesion){
Usuario usuario = usuario_repository.findByEmail((String) sesion.getAttribute("email"));
Expand All @@ -221,21 +219,24 @@ public String comprarArticulos(Model model, HttpSession sesion){
model.addAttribute("articulos_carrito", carrito.getArticulosCarrito());
return "pedido";
}

@PostMapping("/pedido")
public String pedido(HttpSession sesion){
public String pedido(Model model, HttpSession sesion){
Usuario usuario = usuario_repository.findByEmail((String) sesion.getAttribute("email"));
List<Articulo> articulosPedido = usuario.getCarrito().getArticulosCarrito();
List<Articulo> articulosPedido = articulo_repository.findByArticulosEnCarrito(usuario.getCarrito());
Pedido pedido = new Pedido();
pedido.setUsuario(usuario);
for(Articulo articulo: articulosPedido){
pedido.getArticulosComprados().add(articulo);
pedido.getArticulosComprados().add(articulo);
}
pedido_repository.save(pedido);
long id = usuario.getCarrito().getId();
Carrito carrito = carrito_repository.findOne(id);
carrito_repository.delete(carrito);

Carrito carrito = usuario.getCarrito();
for(Articulo articulo: articulosPedido){
articulo.getArticulosEnCarrito().remove(carrito);
articulo_repository.save(articulo);
}

return "pedido_realizado";
}
}

}

0 comments on commit 6ba15d4

Please sign in to comment.