Files
xl/get_top.go
2021-10-28 12:59:01 -05:00

37 lines
1.0 KiB
Go

package main
import (
"database/sql"
_ "embed"
"fmt"
"time"
)
//go:embed sql/get_top.sql
var get_top string
type GetTopResult struct {
Description string `db:"description,omitempty"`
Sku string `db:"sku,omitempty"`
Level2 string `db:"level2,omitempty"`
Level3 string `db:"level3,omitempty"`
Rev float64 `db:"rev,omitempty"`
Qty int64 `db:"qty,omitempty"`
Trend sql.NullFloat64 `db:"trend,omitempty"`
}
func (r *Runner) GetTop() []GetTopResult {
//Get Current Days
current_day := time.Now()
year := current_day.Format("2006")
previous_month := current_day.AddDate(0, -1, 0).Format("01")
two_previous_month := current_day.AddDate(0, -2, 0).Format("01")
four_previous_month := current_day.AddDate(0, -4, 0).Format("01")
query_string := fmt.Sprintf(get_top, year, previous_month, four_previous_month, two_previous_month)
var top []GetTopResult
err := r.db.Select(&top, query_string)
checkErr(err)
return top
}