Skip to content

Instantly share code, notes, and snippets.

@parzibyte
Last active Nov 22, 2022
Embed
What would you like to do?
func (d *DatosGraficasController) productosMasVendidosAlContado(fechaInicio, fechaFin string) []ProductoVendidoParaGrafica {
db, err := d.AjustesUsuario.obtenerBaseDeDatos()
if err != nil {
panic(err)
}
defer db.Close()
filas, err := db.Query(`SELECT SUM(productos_vendidos.cantidadVendida) AS vecesVendido,
productos_vendidos.idProducto,
productos_vendidos.codigoBarras,
productos_vendidos.descripcion
FROM productos_vendidos
INNER JOIN ventas_contado
ON productos_vendidos.idVenta = ventas_contado.idVenta
AND ventas_contado.fecha
BETWEEN ?
AND ?
GROUP BY productos_vendidos.idProducto,codigoBarras, descripcion
ORDER BY vecesVendido DESC LIMIT ?;`, fechaInicio, fechaFin, LimiteProductosMasVendidos)
if err != nil {
log.Printf("Error al consultar productos más vendidos:\n%q", err)
}
defer filas.Close()
productos := []ProductoVendidoParaGrafica{}
for filas.Next() {
var producto ProductoVendidoParaGrafica
err = filas.Scan(&producto.VecesVendido, &producto.IdProducto, &producto.CodigoBarras, &producto.Descripcion)
if err != nil {
log.Printf("Error al escanear producto más vendido:\n%q", err)
}
productos = append(productos, producto)
}
return productos
}
func (d *DatosGraficasController) productosMasVendidosEnApartados(fechaInicio, fechaFin string) []ProductoVendidoParaGrafica {
db, err := d.AjustesUsuario.obtenerBaseDeDatos()
if err != nil {
panic(err)
}
defer db.Close()
filas, err := db.Query(`SELECT SUM(productos_apartados.cantidadVendida) AS vecesVendido,
productos_apartados.idProducto,
productos_apartados.codigoBarras,
productos_apartados.descripcion
FROM productos_apartados
INNER JOIN apartados
ON productos_apartados.idApartado = apartados.idApartado
AND apartados.fecha
BETWEEN ?
AND ?
AND apartados.abonado + apartados.anticipo >= apartados.monto
GROUP BY productos_apartados.idProducto,productos_apartados.codigoBarras, productos_apartados.descripcion
ORDER BY vecesVendido DESC LIMIT ?;`, fechaInicio, fechaFin, LimiteProductosMasVendidos)
if err != nil {
log.Printf("Error al consultar productos más vendidos:\n%q", err)
}
defer filas.Close()
productos := []ProductoVendidoParaGrafica{}
for filas.Next() {
var producto ProductoVendidoParaGrafica
err = filas.Scan(&producto.VecesVendido, &producto.IdProducto, &producto.CodigoBarras, &producto.Descripcion)
if err != nil {
log.Printf("Error al escanear producto más vendido:\n%q", err)
}
productos = append(productos, producto)
}
return productos
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment