Beispiel #1
0
        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");
                }
            }
        }