public void AgregarProducto(producto prod, double cant) { var nuevoDetalle = new DetalleOrden(); Boolean encontrado = false; //Verificar si el producto ya existe en el "DetalleOrden" //Busco dentro de la lista de "DetalleOrde" el producto. foreach (DetalleOrden detOrden in detalle) { if (detOrden.producto.nombre == prod.nombre) { detOrden.cantidad += cant; //Sumo a la orden la cantidad encontrado = true; break; } } if (!encontrado) { //Si no es igual instancio un nuevo objeto de "DetalleOrden" nuevoDetalle.producto = prod; nuevoDetalle.cantidad = cant; detalle.Add(nuevoDetalle); this.CalcularTotal(); } }
//Recibe un entero que indica el ID de la orden y luego devuelve el objeto orden completo que corresponde public static Orden Obtener(int idOrden) { int numMsj = 0; String msjExepcion = "ManejadorOrdenes.Obtener()$ No es posible conectarse a la DB."; Orden objOrden = new Orden(); try { DetalleOrden deto = new DetalleOrden(); List <DetalleOrden> lstDetalle = new List <DetalleOrden>(); using (IDbConnection db = new MySqlConnection(DbConnection.Cadena())) { if (db.State == ConnectionState.Closed) { db.Open(); } if (idOrden > 0) { string query = "SELECT * FROM orden WHERE idOrden=@idOrde;"; objOrden = db.Query <Orden>(query, new { idOrde = idOrden }).SingleOrDefault(); query = "SELECT a.idProducto, a.cantidad, b.idProducto, b.nombre, b.precio, b.idCategoria, b.area, c.idCategoria, c.nombre FROM detalleorden AS a " + "INNER JOIN producto AS b ON a.idProducto = b.idProducto INNER JOIN categoria AS c ON b.idCategoria = c.idCategoria WHERE a.idOrden = @idOrde;"; lstDetalle = db.Query <DetalleOrden, producto, Categoria, DetalleOrden>(query, (detOrd, prod, cat) => { prod.categoria = cat; detOrd.producto = prod; return(detOrd); }, new { idOrde = idOrden }, splitOn: "idProducto,idCategoria").Distinct().ToList(); objOrden.detalle = new List <DetalleOrden>(); for (int i = 0; i < lstDetalle.Count(); i++) { objOrden.detalle.Add(lstDetalle.ElementAt(i)); } } else { numMsj = 1; //"ManejadorProductos.Obtener()$id no existe" throw new ErrorAplicationException(); } } return(objOrden); } catch { if (numMsj == 1) { msjExepcion = "ManejadorProductos.Obtener()$id no existe."; } throw new ErrorAplicationException(msjExepcion); } }