コード例 #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();
            }
        }
コード例 #2
0
        protected void AgregarAlcarrito(Guid UidProducto, Guid UidSucursal, Guid UidSeccion, string StrCantidad, string StrNotas = "")
        {
            var Producto = MVProducto.ListaDelCarrito.FindAll(Objeto => Objeto.UID == UidProducto && Objeto.UidNota == Guid.Empty && Objeto.UidSucursal == UidSucursal);

            if (Producto.Count <= 1 && !string.IsNullOrEmpty(StrNotas) || (Producto.Count == 0 && string.IsNullOrEmpty(StrNotas)))
            {
                //Si solo existe un tarifario en la lista, se muestra al usuario en los datos de la sucursal
                if (MVTarifario.ListaDeTarifarios.Count > 0)
                {
                    Guid    UidTarifario = new Guid();
                    decimal DmPrecio     = 0.0m;
                    for (int i = 0; i < 1; i++)
                    {
                        UidTarifario = MVTarifario.ListaDeTarifarios[i].UidTarifario;
                        DmPrecio     = MVTarifario.ListaDeTarifarios[i].DPrecio;
                    }
                    MVProducto.AgregaAlCarrito(UidProducto, UidSucursal, UidSeccion, StrCantidad, DmPrecio, UidTarifario, strNota: StrNotas);
                } // los datos de la informacion del tarifario se muestran vacios en caso de existir varios registros para esta orden.
                else
                {
                    MVProducto.AgregaAlCarrito(UidProducto, UidSucursal, UidSeccion, StrCantidad, 0.0m, Guid.Empty, strNota: StrNotas);
                }

                decimal Subtotal = 0.0m;
                decimal Envio    = 0.0m;
                int     cantidad = 0;
                foreach (var producto in MVProducto.ListaDelCarrito)
                {
                    cantidad = cantidad + producto.Cantidad;
                    Subtotal = Subtotal + decimal.Parse(producto.StrCosto);
                }
                foreach (var obj in MVProducto.ListaDelInformacionSucursales)
                {
                    Envio = Envio + obj.CostoEnvio;
                }
                lblProductosEnCarrito.Text = cantidad.ToString();

                //Modal de la pagina Empresas.aspx
                if (!string.IsNullOrEmpty(lblUidProductoSeleccionado.Text))
                {
                    ScriptManager.RegisterStartupScript(this.Page, this.Page.GetType(), "a", "$('#ModalProducto').modal('hide');", true);
                    DataList DLProductos = PanelCentral.Controls[0].Controls[27].FindControl("DLProductos") as DataList;
                    DLProductos.DataSource = MVProducto.ListaDeProductos;
                    DLProductos.DataBind();
                }
                //Modal de la pagina Default.aspx
                if (!string.IsNullOrEmpty(HFUidProducto.Value))
                {
                    ScriptManager.RegisterStartupScript(this.Page, this.Page.GetType(), "b", "$('#myModal').modal('hide');", true);
                    DataList DLProductos = PanelCentral.Controls[0].Controls[27].FindControl("DLProductos") as DataList;
                    DLProductos.DataSource = MVProducto.ListaDeProductos;
                    DLProductos.DataBind();
                }
                MuestraDetallesDeLaOrdenGeneral();
            }
            else
            {
                //Modal de la pagina Default.aspx
                if (!string.IsNullOrEmpty(lblUidProductoSeleccionado.Text))
                {
                    pnlMensajeProductoSeleccionado.Visible = true;
                    lblMensajeProductoSeleccionado.Text    = "Para agregar mas veces este producto de la sucursal seleccionada, gestione los que ya estan dentro del carrito";
                }
                //Modal de la pagina Empresas.aspx
                if (!string.IsNullOrEmpty(HFUidProducto.Value))
                {
                    pnlMensajeProducto.Visible = true;
                    lblMensaje.Text            = "Para agregar mas veces este producto  de la sucursal seleccionada, gestione los que ya estan dentro del carrito";
                }
            }
        }