protected void GridExtrasAgregados_RowDataBound(object sender, GridViewRowEventArgs e)
        {
            if (e.Row.RowType == DataControlRowType.DataRow)
            {
                GridViewRow row = e.Row;

                LinkButton btnAdd       = (LinkButton)row.FindControl("btnPlus");
                LinkButton btnSubstract = (LinkButton)row.FindControl("btnMinus");

                int   idIngrediente     = Convert.ToInt32((row.FindControl("lblCodigo") as Label).Text);
                Label lblElementoPedido = e.Row.Parent.Parent.Parent.FindControl("lblCodigoElementoPedido") as Label;
                Label lblIdAlimento     = e.Row.Parent.Parent.Parent.FindControl("lblCodigo") as Label;

                Ingrediente ingrediente = iDAL.Find(idIngrediente);

                ExtraPedido     extraPedido     = carrito.GetListExtra().FirstOrDefault(x => x.IdIngrediente == idIngrediente && x.IdAlimentoPedido == int.Parse(lblElementoPedido.Text));
                ExtraDisponible extraDisponible = eDDAL.FindByAlimentoAndIngrediente(int.Parse(lblIdAlimento.Text), idIngrediente);

                Label lblIngrediente = row.FindControl("lblIngrediente") as Label;
                Label lblCantidad    = row.FindControl("lblCantidad") as Label;
                Label lblValor       = row.FindControl("lblValor") as Label;

                lblIngrediente.Text = ingrediente.Nombre;
                lblCantidad.Text    = $"{ingrediente.Porción * extraPedido.CantidadExtra} {tMDAL.Find(ingrediente.IdTipoMedicionPorcion.Value).Descripcion}";
                int valor = extraDisponible.Valor.HasValue ? extraPedido.CantidadExtra.Value * extraDisponible.Valor.Value : 0;
                lblValor.Text = $"{ valor }";

                btnAdd.Enabled       = extraPedido == null || extraPedido.CantidadExtra != extraDisponible.CantidadMaxima;
                btnSubstract.Enabled = extraPedido != null;
            }
        }
        protected void GridExtrasAgregados_RowCommand(object sender, GridViewCommandEventArgs e)
        {
            int index = Convert.ToInt32(e.CommandArgument);

            GridViewRow row          = ((GridView)sender).Rows[index];
            LinkButton  btnAdd       = (LinkButton)row.FindControl("btnPlus");
            LinkButton  btnSubstract = (LinkButton)row.FindControl("btnMinus");
            Label       lblCantidad  = row.FindControl("lblCantidad") as Label;

            Label lblElementoPedido = row.Parent.Parent.Parent.FindControl("lblCodigoElementoPedido") as Label;
            int   idAlimentoPedido  = Convert.ToInt32(lblElementoPedido.Text);
            int   idAlimento        = carrito.GetListAlimentos().FirstOrDefault(x => x.IdAlimentoPedido == idAlimentoPedido).IdAlimento.Value;
            int   idIngrediente     = Convert.ToInt32((row.FindControl("lblCodigo") as Label).Text);

            ExtraDisponible extraDisp = eDDAL.FindByAlimentoAndIngrediente(idAlimento, idIngrediente);

            ViewState["AlimentoPedido"] = idAlimentoPedido;

            switch (e.CommandName)
            {
            case "SubstractOne":
                SubstractExtra(extraDisp);
                break;

            case "AddOne":
                AddExtra(extraDisp);
                break;
            }
            CargarGridCarrito();
            CargarTotales();
        }
示例#3
0
        private void ValidateExtraFields(int idIngrediente, int idAlimentoPedido)
        {
            if (idIngrediente == 0)
            {
                throw new Exception("Debe seleccionar un ingrediente para agregar");
            }
            ExtraDisponible extraDisponible = eDDAL.FindByAlimentoAndIngrediente(Convert.ToInt32(lblModalIdAlimento.Text), idIngrediente);

            if (!int.TryParse(txtCantidadPorcion.Text, out int cantidad))
            {
                throw new Exception("Debe ingresar una cantidad para ser agregada");
            }
            if (cantidad == 0)
            {
                throw new Exception("Debe ingresar una cantidad para ser agregada");
            }
            if (cantidad < 0)
            {
                throw new Exception("La cantidad ingresada debe ser mayor a 0");
            }
            if (cantidad > extraDisponible.CantidadMaxima)
            {
                throw new Exception("La cantidad Ingresada supera a la cantidad maxima de este ingrediente");
            }
        }
        public void Remove(int id)
        {
            ExtraDisponible p = Find(id);

            nowBDEntities.ExtraDisponible.Remove(p);
            nowBDEntities.SaveChanges();
        }
        public ExtraDisponible Add(ExtraDisponible p)
        {
            ExtraDisponible obj = nowBDEntities.ExtraDisponible.Add(p);

            nowBDEntities.SaveChanges();
            return(obj);
        }
示例#6
0
        protected void cboIngrediente_TextChanged(object sender, EventArgs e)
        {
            int             idAlimentoPedido = Convert.ToInt32(txtIdAlimentoPedido.Text);
            int             idIngrediente    = Convert.ToInt32(cboModalIngrediente.SelectedValue);
            ExtraDisponible extraDisponible  = eDDAL.FindByAlimentoAndIngrediente(Convert.ToInt32(lblModalIdAlimento.Text), idIngrediente);
            Ingrediente     ingrediente      = iDAL.FindByName(cboModalIngrediente.SelectedItem.Text);

            EliminarCbo();

            if (idIngrediente != 0)
            {
                if (ingrediente.Porción != null)
                {
                    txtValorPorPorcion.Text     = $"{ingrediente.Porción} {ingrediente.TipoMedicion1.Descripcion}";
                    txtCantidadPorcion.Text     = "1";
                    lblModalCantidadMaxima.Text = extraDisponible.CantidadMaxima.HasValue ? $"La cantidad maxima de porciones es de: {extraDisponible.CantidadMaxima}" : "";
                    txtModalValorExtra.Text     = extraDisponible.Valor.Value.ToString();
                    SwitchTextBox(false);
                }
                else
                {
                    txtValorPorPorcion.Text = "No establecido";
                    SwitchTextBox(true);
                    UserMessageExtra("Este Ingrediente no tiene las porciones establecidas", "danger");
                }
            }
        }
示例#7
0
        public void Update(ExtraDisponible extra)
        {
            ExtraDisponible extraLista = Find(extra.IdExtraDisponible);

            extraLista.IdAlimento     = extra.IdAlimento;
            extraLista.IdIngrediente  = extra.IdIngrediente;
            extraLista.Valor          = extra.Valor;
            extraLista.CantidadMaxima = extra.CantidadMaxima;
        }
        public void Update(ExtraDisponible p)
        {
            ExtraDisponible ExtraDisponible = nowBDEntities.ExtraDisponible.FirstOrDefault(obj => obj.IdExtraDisponible == p.IdExtraDisponible);

            ExtraDisponible.IdIngrediente  = p.IdIngrediente;
            ExtraDisponible.IdAlimento     = p.IdAlimento;
            ExtraDisponible.Valor          = p.Valor;
            ExtraDisponible.CantidadMaxima = p.CantidadMaxima;
            nowBDEntities.SaveChanges();
        }
 public void UpdateFields(List <ExtraDisponible> extrasGrid, List <ExtraDisponible> extrasDataBase)
 {
     foreach (ExtraDisponible itemGrid in extrasGrid)
     {
         ExtraDisponible itemBDD = extrasDataBase.FirstOrDefault(i => i.IdIngrediente == itemGrid.IdIngrediente);
         if (itemBDD != null)
         {
             itemBDD.CantidadMaxima = itemGrid.CantidadMaxima;
             itemBDD.Valor          = itemGrid.Valor;
             Update(itemBDD);
         }
     }
 }
示例#10
0
        private void LlenarExtraFields(ExtraPedido extra)
        {
            //LoadCboModalIngrediente();
            ExtraDisponible extraDisponible = eDDAL.FindByAlimentoAndIngrediente(Convert.ToInt32(lblModalIdAlimento.Text), extra.IdIngrediente.Value);
            Ingrediente     ingrediente     = iDAL.Find(extra.IdIngrediente.Value);

            cboModalIngrediente.Items.FindByValue(extra.IdIngrediente.Value.ToString()).Enabled = true;
            cboModalIngrediente.SelectedValue = extra.IdIngrediente.Value.ToString();
            ViewState["IdIngrediente"]        = ingrediente.IdIngrediente;

            txtCantidadPorcion.Text = extra.CantidadExtra.ToString();
            txtValorPorPorcion.Text = $"{ingrediente.Porción} {tMDAL.Find(ingrediente.IdTipoMedicion.Value).Descripcion}";

            txtModalValorExtra.Text = extra.ValorExtra.HasValue ? extra.ValorExtra.Value.ToString() : "";
        }
        private void SubstractExtra(ExtraDisponible extraDisp)
        {
            int         idAlimentoPedido = Convert.ToInt32(ViewState["AlimentoPedido"]);
            ExtraPedido extraPedido      = carrito.GetListExtra().FirstOrDefault(x => x.IdIngrediente == extraDisp.IdIngrediente && x.IdAlimentoPedido == idAlimentoPedido);

            if (extraPedido.CantidadExtra == 1)
            {
                carrito.RemoveExtra(extraPedido);
            }
            else
            {
                extraPedido.CantidadExtra--;
                extraPedido.ValorExtra = extraPedido.CantidadExtra * extraDisp.Valor;
            }
        }
示例#12
0
        public void AddIngrediente(Ingrediente ingrediente)
        {
            ExtraDisponible extra = extrasDisponibles.FirstOrDefault(x => x.IdIngrediente == ingrediente.IdIngrediente);

            if (extra == null)
            {
                AddExtra(new ExtraDisponible()
                {
                    IdIngrediente  = ingrediente.IdIngrediente,
                    CantidadMaxima = 1,
                    Valor          = 0
                });
            }
            else
            {
                extra.CantidadMaxima++;
            }
        }
        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");
                }
            }
        }
示例#14
0
 public void SubstractOne(Ingrediente ingrediente)
 {
     try
     {
         ExtraDisponible extra = FindByIngrediente(ingrediente.IdIngrediente);
         if (extra.CantidadMaxima == 1)
         {
             extrasDisponibles.Remove(extra);
         }
         else
         {
             extra.CantidadMaxima--;
             Update(extra);
         }
     }
     catch (Exception e)
     {
         throw new Exception(e.Message);
     }
 }
        private void AddExtra(ExtraDisponible extraDisp)
        {
            int         idAlimentoPedido = Convert.ToInt32(ViewState["AlimentoPedido"]);
            ExtraPedido extraPedido      = carrito.GetListExtra().FirstOrDefault(x => x.IdIngrediente == extraDisp.IdIngrediente && x.IdAlimentoPedido == idAlimentoPedido);

            if (extraPedido == null)
            {
                extraPedido = carrito.AddExtra(new ExtraPedido()
                {
                    IdAlimentoPedido = idAlimentoPedido,
                    IdIngrediente    = extraDisp.IdIngrediente,
                    ValorExtra       = extraDisp.Valor,
                    CantidadExtra    = 1
                });
            }
            else
            {
                extraPedido.CantidadExtra++;
                extraPedido.ValorExtra = extraPedido.CantidadExtra * extraDisp.Valor;
            }
        }
        protected void GridViewExtrasDisponibles_RowUpdating(object sender, GridViewUpdateEventArgs e)
        {
            try
            {
                GridViewRow row = GridViewExtrasDisponibles.Rows[e.RowIndex];

                Label           lbl             = row.FindControl("lblCodigo") as Label;
                ExtraDisponible extraDisponible = listaExtras.Find(Convert.ToInt32(lbl.Text));

                TextBox txt = row.FindControl("txtValor") as TextBox;
                extraDisponible.Valor = int.TryParse(txt.Text, out int valor) ? valor : 0;

                //listaExtras.Update(extraDisponible);

                ((GridView)sender).EditIndex = -1;
                LoadGridExtrasDisponibles();
            }
            catch (Exception ex)
            {
                UserMessage(ex.Message, "danger");
            }
        }
        protected void GridViewExtras_RowCommand(object sender, GridViewCommandEventArgs e)
        {
            try
            {
                int index = Convert.ToInt32(e.CommandArgument);

                GridViewRow row          = ((GridView)sender).Rows[index];
                LinkButton  btnAdd       = (LinkButton)row.FindControl("btnPlus");
                LinkButton  btnSubstract = (LinkButton)row.FindControl("btnMinus");
                Label       lblCantidad  = row.FindControl("lblCantidad") as Label;

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

                ExtraDisponible extraDisp = eDDAL.FindByAlimentoAndIngrediente(idAlimento, idIngrediente);
                ViewState["AlimentoPedido"] = idAlimentoPedido;

                switch (e.CommandName)
                {
                case "SubstractOne":
                    SubstractExtra(extraDisp);
                    break;

                case "AddOne":
                    AddExtra(extraDisp);
                    break;
                }
                GridViewExtras.DataSource = aDAL.GetExtrasDisponibles(idAlimento);
                GridViewExtras.DataBind();
            }
            catch (Exception ex)
            {
                UserMessage(ex.Message, "danger");
            }
        }
        public ExtraDisponible Find(int id)
        {
            ExtraDisponible m = nowBDEntities.ExtraDisponible.FirstOrDefault(obj => obj.IdExtraDisponible == id);

            return(m);
        }
        public ExtraDisponible FindByAlimentoAndIngrediente(int idAlimento, int idIngrediente)
        {
            ExtraDisponible m = nowBDEntities.ExtraDisponible.FirstOrDefault(obj => obj.IdAlimento == idAlimento && obj.IdIngrediente == idIngrediente);

            return(m);
        }
示例#20
0
 public void AddExtra(ExtraDisponible extra)
 {
     extra.IdExtraDisponible = extrasDisponibles.Count > 0 ? extrasDisponibles.Last().IdExtraDisponible + 1 : 1;
     extrasDisponibles.Add(extra);
 }