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(); } }
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"; } } }