public List <MVentas> getCostoVentasbyIdProdSinNombreGroupByFechaAño(string idproducto, DateTime fecha) { MySqlDataReader rdr = null; List <MVentas> Listventas = new List <MVentas>(); ProductoFacade prodFac = new ProductoFacade(); string consulta = ""; bool existe = prodFac.getExisteProductoByidProd(idproducto); if (existe) { //string consulta = "SELECT fecha, idProducto,sum(cantidad)as cantidad, sum(total) as total FROM db.venta where idproducto=\"" + idproducto + "\" AND year(fecha)=" + fecha.Year + " GROUP BY fecha;"; consulta = "SELECT fecha,idproducto,(select precioReal from producto where idproducto=\"" + idproducto + "\")as precioReal,cantidad FROM venta WHERE idproducto=\"" + idproducto + "\" AND year(fecha)=" + fecha.Year + " GROUP BY fecha"; } else { consulta = "SELECT fecha,idproducto,sum(cantidad) FROM venta WHERE idproducto=\"" + idproducto + "\" AND year(fecha)=" + fecha.Year + " GROUP BY fecha"; } MySqlCommand cmd = new MySqlCommand(consulta, getconexion.getConexion()); rdr = cmd.ExecuteReader(); while (rdr.Read()) { //Listventas.Add(new MVentas(rdr.GetDateTime(0), rdr.GetString(1), "Sin Nombre", rdr.GetString(2), rdr.GetInt32(3), Convert.ToInt32(rdr.GetInt32(2)) * rdr.GetInt32(3), 0)); if (existe) { Listventas.Add(new MVentas(rdr.GetDateTime(0), rdr.GetString(1), "Sin Nombre", rdr.GetString(2), rdr.GetInt32(3), Convert.ToInt32(rdr.GetInt32(2)) * rdr.GetInt32(3), 0)); } else { Listventas.Add(new MVentas(rdr.GetDateTime(0), rdr.GetString(1), "Sin Nombre", "0", rdr.GetInt32(2), 0, 0)); } } getconexion.CerrarConexion(); return(Listventas); }
public List<MVentas> getCostoVentasbyIdProdSinNombreGroupByFechaAño(string idproducto, DateTime fecha) { MySqlDataReader rdr = null; List<MVentas> Listventas = new List<MVentas>(); ProductoFacade prodFac = new ProductoFacade(); string consulta = ""; bool existe = prodFac.getExisteProductoByidProd(idproducto); if (existe) { //string consulta = "SELECT fecha, idProducto,sum(cantidad)as cantidad, sum(total) as total FROM db.venta where idproducto=\"" + idproducto + "\" AND year(fecha)=" + fecha.Year + " GROUP BY fecha;"; consulta = "SELECT fecha,idproducto,(select precioReal from producto where idproducto=\"" + idproducto + "\")as precioReal,cantidad FROM venta WHERE idproducto=\"" + idproducto + "\" AND year(fecha)=" + fecha.Year + " GROUP BY fecha"; } else { consulta = "SELECT fecha,idproducto,sum(cantidad) FROM venta WHERE idproducto=\"" + idproducto + "\" AND year(fecha)=" + fecha.Year + " GROUP BY fecha"; } MySqlCommand cmd = new MySqlCommand(consulta, getconexion.getConexion()); rdr = cmd.ExecuteReader(); while (rdr.Read()) { //Listventas.Add(new MVentas(rdr.GetDateTime(0), rdr.GetString(1), "Sin Nombre", rdr.GetString(2), rdr.GetInt32(3), Convert.ToInt32(rdr.GetInt32(2)) * rdr.GetInt32(3), 0)); if (existe) { Listventas.Add(new MVentas(rdr.GetDateTime(0), rdr.GetString(1), "Sin Nombre", rdr.GetString(2), rdr.GetInt32(3), Convert.ToInt32(rdr.GetInt32(2)) * rdr.GetInt32(3), 0)); } else { Listventas.Add(new MVentas(rdr.GetDateTime(0), rdr.GetString(1), "Sin Nombre", "0", rdr.GetInt32(2), 0, 0)); } } getconexion.CerrarConexion(); return Listventas; }
/*********************************/ /*********************************/ //buscar producto mediante id ingresado private void codProdVenta_TextChanged(object sender, TextChangedEventArgs e) { ProductoFacade prodF = new ProductoFacade(); bool existe = prodF.getExisteProductoByidProd(txtcodProdVenta.Text); if (existe) { ProductoFacade prodFobtener = new ProductoFacade(); Producto Prod = new Producto(); Prod = prodFobtener.getProductosByID(txtcodProdVenta.Text); //Si producto ya esta en tablapara venta aumentar cantidad if (Convert.ToInt32(Prod.stock) <= 0) { MessageBox.Show("El producto no cuenta con más stock", "Magnolia", MessageBoxButton.OK, MessageBoxImage.Error); } else { //comparar en datagrid si esta bool sumarCantidad = false; int cantidad = 0; int totaldatos = datagridVentas.Items.Count; int filaProd = 0; List<VentaTemporal> vtemporal = new List<VentaTemporal>(); VentaTemporal vtemp = new VentaTemporal(); var rows = GetDataGridRows(datagridVentas); int num = 0; //Se verifica si tabla tiene ya ese producto y asi aumentar canditad if (totaldatos > 0) { //Llenar lista con los productos en datagrid para sumarle uno mas en cantidad foreach (DataGridRow r in rows) { VentaTemporal rv = (VentaTemporal)r.Item; vtemporal.Add(rv); } foreach (DataGridRow r in rows) { VentaTemporal rv = (VentaTemporal)r.Item; //MessageBox.Show(txtcodProdVenta.Text+"="+rv.idProducto); if (txtcodProdVenta.Text.Equals(rv.idProducto)) { sumarCantidad = true; /*int pre = ToEntero(rv.precio, NumberStyles.Float | NumberStyles.AllowThousands, new CultureInfo("en-GB")); string m = pre.ToString("#,#", CultureInfo.InvariantCulture); MessageBox.Show(rv.precio);*/ vtemp = new VentaTemporal(rv.idVenta, rv.idProducto, rv.nombre, rv.precio, rv.cantidad, rv.total); cantidad = Convert.ToInt32(rv.cantidad) + 1; filaProd = num; } num = num + 1; } } //Verificar stock de producto ProductoFacade prodcantiFacade = new ProductoFacade(); int maxstock = Convert.ToInt32(prodcantiFacade.getStockProductoByidProd(txtcodProdVenta.Text)); if (cantidad <= maxstock) { if (sumarCantidad) { //Editar cantidad y setear total precio int totalProducto = Convert.ToInt32(Prod.precio) * Convert.ToInt32(cantidad); //borrar fila delista con id y actualizar la cantidad y precio vtemporal[filaProd].cantidad = cantidad.ToString(); vtemporal[filaProd].total = totalProducto.ToString(); // subtotal = subtotal + totalProducto; datagridVentas.ItemsSource = null; datagridVentas.ItemsSource = vtemporal; //Llenar textbox con total } else { //MessageBox.Show("Primer producto agregado"); //Nuevo producto para venta a proceso de venta venta.Add(new VentaTemporal { idProducto = Prod.idProducto, nombre = Prod.nombre, precio = Prod.precio, cantidad = "1", total = Prod.precio }); datagridVentas.ItemsSource = venta; subtotal = subtotal + Convert.ToInt32(Prod.precio); } //txtcodProdVenta.Text = ""; } else { MessageBox.Show("El producto no cuenta con más stock", "Magnolia", MessageBoxButton.OK, MessageBoxImage.Error); } } txtcodProdVenta.Text = ""; } else { } //Recorrer tabla para sumar total subtotal = 0; int numProducto = 0; foreach (var i in venta) { subtotal = subtotal + Convert.ToInt32(i.total); //MessageBox.Show(i.total.ToString()); numProducto = numProducto + 1; } int mtotalDevo = subtotal - dineroDevolucion; if (mtotalDevo < 0) { //Quiere decir que totaldevolucion tiene saldo txtDiferencia.Text = (mtotalDevo * -1).ToString(); mtotalDevo = 0; } else { txtDiferencia.Text = "0"; } if (mtotalDevo < 0) { mtotalDevo = mtotalDevo * -1; } int p = ToEntero(mtotalDevo.ToString(), NumberStyles.Float | NumberStyles.AllowThousands, new CultureInfo("en-GB")); txtsubtotal.Text = p.ToString("#,#", CultureInfo.InvariantCulture); txtCantidadProductos.Content = numProducto.ToString(); if (Convert.ToInt32(txtdescuento.Text) == 0) { int pr = ToEntero(txtsubtotal.Text, NumberStyles.Float | NumberStyles.AllowThousands, new CultureInfo("en-GB")); txttotal.Text = pr.ToString("#,#", CultureInfo.InvariantCulture); } else { int pr = ToEntero(txtsubtotal.Text, NumberStyles.Float | NumberStyles.AllowThousands, new CultureInfo("en-GB")); double des = Convert.ToDouble(txtdescuento.Text) / Convert.ToInt32(100); double res = (Convert.ToInt32(pr) - Convert.ToDouble(pr) * des); txttotal.Text = res.ToString("#,#", CultureInfo.InvariantCulture); } }