package action.cliente.productos; import com.opensymphony.xwork2.ActionSupport; import dao.ProductoDAO; import java.util.List; import java.util.Map; import model.LineaPedido; import model.Pedido; import model.Producto; import org.apache.struts2.interceptor.SessionAware; import org.apache.struts2.interceptor.RequestAware; import org.bson.types.ObjectId; public class EliminarProductoCestaAction extends ActionSupport implements RequestAware, SessionAware { /* Session */ private Map session; /* Request */ private Map<String, Object> request; /* Acceso a Datos*/ ProductoDAO productoDAO; /* Parametros */ String id; /* Alerta */ String alerta = null; public EliminarProductoCestaAction() { productoDAO = new ProductoDAO(); } public String execute() { session = getSession(); ObjectId oid = new ObjectId(id); Producto producto = productoDAO.find(oid); Pedido pedido = (Pedido) session.get("cesta"); List<LineaPedido> carrito = pedido.getCarrito(); for (LineaPedido lp : carrito) { if (lp.getProducto().getId().equals(oid)) { carrito.remove(lp); break; } } if (carrito.isEmpty()) { session.remove("cesta"); return "SUCCESS"; } float total = 0; for (LineaPedido lp : pedido.getCarrito()) { total += lp.getTotal(); } pedido.setPreciototal(total); session.put("cesta", pedido); alerta = "Se ha eliminado de la cesta:" + producto.getNombre(); return "SUCCESS"; } public Map<String, Object> getRequest() { return request; } public String getId() { return id; } public String getAlerta() { return alerta; } public void setAlerta(String alerta) { this.alerta = alerta; } public void setId(String id) { this.id = id; } public ProductoDAO getProductoDAO() { return productoDAO; } public void setProductoDAO(ProductoDAO productoDAO) { this.productoDAO = productoDAO; } @Override public void setSession(Map session) { this.session = session; } public Map getSession() { return session; } @Override public void setRequest(Map<String, Object> map) { this.request = map; } }