/*METODO ENCARGADO DE LLENAR LA LISTA DE LOS PRODUCTOS A FACTURAR*/ public void CargarProductos() { try { Negocio.ProductosNegocio dc = new Negocio.ProductosNegocio(); List <Entidad.Productos> lista = dc.ListaProductos(); if (lista.Count > 0) { ListItem item = new ListItem(); item.Text = "Seleccione..."; item.Value = "0"; ddlProducto.Items.Add(item); ddlProducto.DataSource = lista; ddlProducto.DataTextField = "Descripcion"; ddlProducto.DataValueField = "Id"; ddlProducto.DataBind(); } else { cvDatos.IsValid = false; cvDatos.CssClass = "alert-danger"; cvDatos.ErrorMessage = "No hay productos que mostrar.";; } } catch (Exception err) { cvDatos.IsValid = false; cvDatos.CssClass = "alert-danger"; cvDatos.ErrorMessage = err.Message; } }
protected void btnAgregar_Click(object sender, EventArgs e) { try { Negocio.ProductosNegocio pn = new Negocio.ProductosNegocio(); Entidad.Productos pro = new Entidad.Productos(); /*SE OBTIENEN LOS DATOS DEL PRODUCTO PARA ASI SABER SU PRECIO Y EXISTENCIA*/ pro = pn.DatosProducto(int.Parse(ddlProducto.SelectedValue)); /*VERIFICAMOS SI HAY PRODUCTO EN EXISTENCIA*/ if (int.Parse(txtCantidad.Text) > pro.Existencia) { cvDatos.IsValid = false; cvDatos.CssClass = "alert-danger"; cvDatos.ErrorMessage = "No se puede despachar el producto " + ddlProducto.SelectedItem.ToString() + " porque no hay en existencia"; } /*CIERRE IF EXISTENCIA*/ else { /*SE CREO UNA CLASE DEDICADA A ALMACENAR LOS DATOS DEL GRID*/ Negocio.Datos_Factura_Detalle df = new Negocio.Datos_Factura_Detalle(); List <Negocio.Datos_Factura_Detalle> dfd = new List <Negocio.Datos_Factura_Detalle>(); /*SI LA VARIABLE SESSION NO ESTA VACIA*/ if (Session["s_Detalle_Factura"] != null) { dfd = (List <Negocio.Datos_Factura_Detalle>)Session["s_Detalle_Factura"]; } decimal SumaImporte = 0; /*SI EL PRODUCTO NO EXISTE LO AGREGAMOS AL GRID*/ if (!ExisteProducto(int.Parse(ddlProducto.SelectedValue))) { df.IdProducto = int.Parse(ddlProducto.SelectedValue.ToString()); df.Producto = ddlProducto.SelectedItem.ToString(); df.Cantidad = int.Parse(txtCantidad.Text); df.PrecioUnitario = pro.PrecioUnitario; df.Importe = (df.Cantidad * df.PrecioUnitario); dfd.Add(df); Session.Add("s_Detalle_Factura", dfd); gvFactura.DataSource = dfd; gvFactura.DataBind(); } else { cvDatos.IsValid = false; cvDatos.CssClass = "alert-danger"; cvDatos.ErrorMessage = "No se puede agregar el producto " + ddlProducto.SelectedItem.ToString() + " porque ya esta en la lista."; } /*CICLO ENCARGADO DE SUMAR LOS IMPORTES DE LOS PRODUCTOS DEL GRID*/ foreach (var item in dfd) { SumaImporte += Convert.ToInt32(item.Importe); //aqui recorre las celdas y las va sumando } /*CIERRE FOREACH*/ txtSubTotal.Text = SumaImporte.ToString(); decimal Impuesto = 0; Impuesto = (decimal.Parse(txtSubTotal.Text) * 15) / 100; txtImpuesto.Text = Impuesto.ToString(); /*CALCULAMOS EL NETO DE LA FACTURA*/ decimal Total = 0; Total = decimal.Parse(txtSubTotal.Text) + decimal.Parse(txtImpuesto.Text); txtTotal.Text = Total.ToString(); } /*CIERRE DEL ELSE SI HAY EN EXISTENCIA PRODUCTO*/ } catch (Exception err) { cvDatos.IsValid = false; cvDatos.CssClass = "alert-danger"; cvDatos.ErrorMessage = err.Message; } }