private void AgregarAlimentosPorPedido(Pedido pedido) { int idPedido = pedido.IdPedido; foreach (AlimentoPedido item in carrito.GetListAlimentos()) { //Agregar Alimento a la tabla AlimentoPedido Alimento al = aDAL.Find(Convert.ToInt32(item.IdAlimento)); int idAlimentoPedidoLista = item.IdAlimentoPedido; AlimentoPedido alimentoPedido = aPDAL.Add(new AlimentoPedido() { IdAlimento = al.IdAlimento, IdPedido = idPedido }); idAlimentoPedidoLista = CambiarIdListadoExtra(idAlimentoPedidoLista, alimentoPedido.IdAlimentoPedido); //Restar el stock del ingrediente respecto a los ingredientes del alimento List <IngredientesAlimento> lista = iADAL.GetIngredientesByAlimento(al.IdAlimento); foreach (IngredientesAlimento ingAl in lista) { Ingrediente ingrediente = iDAL.Find((int)ingAl.Ingrediente); ingrediente.Stock -= ingAl.Cantidad; iDAL.Update(ingrediente); } AgregarExtras(idAlimentoPedidoLista); } }
protected void GridViewExtras_RowDataBound(object sender, GridViewRowEventArgs e) { if (e.Row.RowType == DataControlRowType.DataRow) { try { GridViewRow row = e.Row; List <ExtraPedido> extrasOnCart = new List <ExtraPedido>(); LinkButton btnAdd = (LinkButton)row.FindControl("btnPlus"); LinkButton btnSubstract = (LinkButton)row.FindControl("btnMinus"); int idAlimentoPedido = Convert.ToInt32(lblModalCodigo.Text); int idAlimento = carrito.GetListAlimentos().FirstOrDefault(x => x.IdAlimentoPedido == idAlimentoPedido).IdAlimento.Value; int idIngrediente = Convert.ToInt32((row.FindControl("lblCodigo") as Label).Text); ExtraPedido extraPedido = carrito.GetListExtra().FirstOrDefault(x => x.IdIngrediente == idIngrediente && x.IdAlimentoPedido == idAlimentoPedido); Ingrediente ingrediente = iDAL.Find(idIngrediente); ExtraDisponible extraDisp = eDDAL.FindByAlimentoAndIngrediente(idAlimento, idIngrediente); Label lblIngrediente = row.FindControl("lblIngrediente") as Label; lblIngrediente.Text = ingrediente.Descripcion; Label lblCantidad = row.FindControl("lblCantidad") as Label; lblCantidad.Text = extraPedido != null?extraPedido.CantidadExtra.ToString() : "0"; Label lblValor = row.FindControl("lblValor") as Label; lblValor.Text = extraDisp.Valor.ToString(); Label lblTotal = row.FindControl("lblTotal") as Label; lblTotal.Text = extraPedido != null ? (extraDisp.Valor * extraPedido.CantidadExtra).ToString() : "0"; btnAdd.Enabled = extraPedido == null || extraPedido.CantidadExtra != extraDisp.CantidadMaxima; btnSubstract.Enabled = extraPedido != null; } catch (Exception ex) { UserMessage(ex.Message, "danger"); } } }