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.RequestAware; import org.apache.struts2.interceptor.SessionAware; import org.bson.types.ObjectId; public class ActualizarCantidadProductoAction extends ActionSupport implements RequestAware, SessionAware { /* Session */ private Map session; /* Request */ private Map<String, Object> request; /* Acceso a Datos*/ ProductoDAO productoDAO; /* Parametros */ String id; String cantidad; /* Alerta */ String alerta = null; public ActualizarCantidadProductoAction() { 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)) { lp.setCantidad(Integer.parseInt(cantidad)); lp.setPrecioproducto(lp.getProducto().getPrecio()); lp.setTotal(Integer.parseInt(cantidad) * lp.getProducto().getPrecio()); break; } } float total = 0; for (LineaPedido lp : pedido.getCarrito()) { total += lp.getTotal(); } pedido.setPreciototal(total); session.put("cesta", pedido); alerta = "Se ha actualizado a " + cantidad + " el producto " + producto.getNombre(); return "SUCCESS"; } public Map<String, Object> getRequest() { return request; } public String getId() { return id; } 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; } public String getCantidad() { return cantidad; } public void setCantidad(String cantidad) { this.cantidad = cantidad; } public String getAlerta() { return alerta; } public void setAlerta(String alerta) { this.alerta = alerta; } }