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;
}
}