Skip to content

Instantly share code, notes, and snippets.

@parzibyte
Last active November 22, 2022 21:18
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save parzibyte/4a6ba96f8a53415e96573781eca83357 to your computer and use it in GitHub Desktop.
Save parzibyte/4a6ba96f8a53415e96573781eca83357 to your computer and use it in GitHub Desktop.
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