37 lines
1.0 KiB
Go
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
|
|
}
|