List <ArticuloVenta> ObtenerListaArticulosAGuardar(ref decimal diferenciaPrecio) { List <ArticuloVenta> listaSinPaquetes = (from art in listaArticulosVenta where !art.EsPaquete select art).ToList(); decimal totalDetallePaquete = 0; decimal totalPaquete = 0; var consultaPaquete = from art in listaArticulosVenta where art.EsPaquete select art; clsPaquete cPaquete = new clsPaquete(); foreach (ArticuloVenta pqte in consultaPaquete) { cPaquete.pqt_codigo = pqte.CodigoArticulo; var detalles = cPaquete.TraerDetallePaquetes(); totalPaquete += pqte.Precio; if (detalles == null) { continue; } foreach (DataRow r in detalles.Tables[0].Rows) { int cantidad = int.Parse(r.ItemArray[3].ToString()); string claveArt = r.ItemArray[0].ToString(); clsArticulos cArticulo = new clsArticulos(); DataSet articulo = cArticulo.leerArticulosUnicoPorClave(claveArt); decimal precio = decimal.Parse(articulo.Tables[0].Rows[0][10].ToString()); string descripcionArt = articulo.Tables[0].Rows[0][1].ToString(); AgregarArticuloALista(claveArt, descripcionArt, cantidad, precio, false, ref listaSinPaquetes); totalDetallePaquete += (precio * cantidad); } } diferenciaPrecio = totalDetallePaquete - totalPaquete; return(listaSinPaquetes); }
void BuscarProducto() { if (string.IsNullOrEmpty(txtClaveProducto.Text)) { return; } string[] cantidadCodigo = txtClaveProducto.Text.Split('*'); int cantidad = 0; string codigo = ""; if (cantidadCodigo.Length > 1) { if (!int.TryParse(cantidadCodigo[0], out cantidad)) { cantidad = 1; } codigo = cantidadCodigo[1]; } else { cantidad = 1; codigo = cantidadCodigo[0]; } clsArticulos articulos = new clsArticulos(); articulos.art_codbar = codigo; DataSet respuesta = articulos.leerArticulosUnicoPorCodigoBarras(); bool articuloEncontrado = false; bool esPaquete = false; if (!string.IsNullOrEmpty(articulos.mensaje)) { MessageBox.Show(articulos.mensaje, "Información", MessageBoxButtons.OK, MessageBoxIcon.Information); return; } articuloEncontrado = respuesta != null && respuesta.Tables[0].Rows.Count > 0; if (!articuloEncontrado) { respuesta = articulos.leerArticulosUnicoPorClave(codigo); articuloEncontrado = respuesta != null && respuesta.Tables[0].Rows.Count > 0; } if (!articuloEncontrado) { clsPaquete cPaquete = new clsPaquete(); respuesta = cPaquete.TraerPaqueteUnicoPorClave(codigo); articuloEncontrado = respuesta != null && respuesta.Tables[0].Rows.Count > 0; esPaquete = articuloEncontrado; } if (!articuloEncontrado) { txtClaveProducto.Text = ""; return; } string clavearticulo = esPaquete ? respuesta.Tables[0].Rows[0][1].ToString() : respuesta.Tables[0].Rows[0][0].ToString(); string codigoBarras = esPaquete ? respuesta.Tables[0].Rows[0][1].ToString() : respuesta.Tables[0].Rows[0][20].ToString(); string nombreArticulo = esPaquete ? respuesta.Tables[0].Rows[0][4].ToString() : respuesta.Tables[0].Rows[0][1].ToString(); decimal precio = esPaquete ? decimal.Parse(respuesta.Tables[0].Rows[0][5].ToString()) : decimal.Parse(respuesta.Tables[0].Rows[0][10].ToString()); AgregarVentaArticulo(clavearticulo, nombreArticulo, cantidad, precio, esPaquete); CalcularMontos(); txtClaveProducto.Text = ""; }