Example #1
0
        protected void DLDetallesCompra_ItemCommand(object source, DataListCommandEventArgs e)
        {
            DataList dl = ((DataList)source);

            if (e.CommandName == "Agrega")
            {
                //Agrega control al update panel
                LinkButton Agrega = e.Item.FindControl("btnAgrega") as LinkButton;
                if (Agrega != null)
                {
                    ScriptManager.GetCurrent(Page).RegisterAsyncPostBackControl(Agrega);
                }

                Guid uidProduto = new Guid(dl.DataKeys[e.Item.ItemIndex].ToString());
                Guid sucursal = new Guid(), seccion = new Guid();
                //Busqueda de producto en subcategoria
                if (MVProducto.ListaDeSubcategorias.Count > 0)
                {
                    var objeto = MVProducto.ListaDeSubcategorias.Find(producto => producto.UID == uidProduto);
                    sucursal = objeto.UidSucursal;
                    seccion  = objeto.UidSeccion;
                }
                else //Busqueda de producto en categoria
                if (MVProducto.ListaDeCategorias.Count > 0)
                {
                    var objeto = MVProducto.ListaDeCategorias.Find(producto => producto.UID == uidProduto);
                    sucursal = objeto.UidSucursal;
                    seccion  = objeto.UidSeccion;
                }
                else //Busqueda de producto en giro
                if (MVProducto.ListaDeGiro.Count > 0)
                {
                    var objeto = MVProducto.ListaDeGiro.Find(producto => producto.UID == uidProduto);
                    sucursal = objeto.UidSucursal;
                    seccion  = objeto.UidSeccion;
                }

                MVProducto.AgregaAlCarrito(uidProduto, sucursal, seccion, "1", RegistroProductoEnCarrito: uidProduto);

                DLCarrito.DataSource = MVProducto.ListaDelInformacionSucursales;
                DLCarrito.DataBind();
                MuestraDetallesDeLaOrdenGeneral();

                var product = MVProducto.ListaDelCarrito.Find(p => p.UidRegistroProductoEnCarrito == uidProduto);

                int fila = -1;
                foreach (DataListItem item in DLCarrito.Items)
                {
                    if (new Guid(DLCarrito.DataKeys[item.ItemIndex].ToString()) == product.UidSucursal)
                    {
                        fila = item.ItemIndex;
                    }
                }
                DLCarrito.SelectedIndex = fila;
                var listaDetalle = MVProducto.ListaDelCarrito.Where(p => p.UidSucursal == new Guid(DLCarrito.DataKeys[fila].ToString())).ToList();

                dl.DataSource = listaDetalle;
                dl.DataBind();
            }
            if (e.CommandName == "Quita")
            {
                Guid uidProduto = new Guid(dl.DataKeys[e.Item.ItemIndex].ToString());

                //Agrega control al update panel
                LinkButton Quita = e.Item.FindControl("btnQuita") as LinkButton;
                if (Quita != null)
                {
                    ScriptManager.GetCurrent(Page).RegisterAsyncPostBackControl(Quita);
                }

                var producto = MVProducto.ListaDelCarrito.Find(y => y.UidRegistroProductoEnCarrito == uidProduto);
                MVProducto.QuitarDelCarrito(uidProduto);


                DLCarrito.DataSource = MVProducto.ListaDelInformacionSucursales;
                DLCarrito.DataBind();

                if (MVProducto.ListaDelInformacionSucursales.Exists(s => s.UidSucursal == producto.UidSucursal))
                {
                    var listaDetalle = MVProducto.ListaDelCarrito.Where(p => p.UidSucursal == producto.UidSucursal).ToList();
                    dl.DataSource = listaDetalle;
                    dl.DataBind();
                }
                else
                {
                    PanelCarrito.Visible = true;
                    dl.DataSource        = null;
                    dl.DataBind();
                }
                MuestraDetallesDeLaOrdenGeneral();
            }
            if (e.CommandName == "EliminaProducto")
            {
                Guid uidProduto = new Guid(dl.DataKeys[e.Item.ItemIndex].ToString());
                var  producto   = MVProducto.ListaDelCarrito.Find(p => p.UidRegistroProductoEnCarrito == uidProduto);

                ScriptManager.RegisterClientScriptBlock(this, this.GetType(), "none", "<script>$('#ModalEliminarProductoCarrito').modal('show');</script>", false);
                HiddenField HFUidProductoAEliminar          = Master.FindControl("HFUidProductoAEliminar") as HiddenField;
                HiddenField HFUidSucursalProductoAEliminar  = Master.FindControl("HFUidSucursalProductoAEliminar") as HiddenField;
                Label       lblCantidadDeProductosAEliminar = Master.FindControl("lblCantidadDeProductosAEliminar") as Label;
                int         fila = -1;

                foreach (DataListItem item in DLCarrito.Items)
                {
                    if (new Guid(DLCarrito.DataKeys[item.ItemIndex].ToString()) == producto.UidSucursal)
                    {
                        fila = item.ItemIndex;
                    }
                }
                if (producto.Cantidad == 1)
                {
                    lblCantidadDeProductosAEliminar.Text = "Desea eliminar " + producto.Cantidad.ToString() + " producto del carrito";
                }
                else
                {
                    lblCantidadDeProductosAEliminar.Text = "Desea eliminar " + producto.Cantidad.ToString() + " productos del carrito";
                }

                lblCantidadDeProductosAEliminar.DataBind();
                HFUidProductoAEliminar.Value = uidProduto.ToString();
                HFUidProductoAEliminar.DataBind();
                HFUidSucursalProductoAEliminar.Value = DLCarrito.DataKeys[fila].ToString();
                HFUidSucursalProductoAEliminar.DataBind();
            }
        }