budgl/models/summary.go

41 lines
1.0 KiB
Go

package models
import "time"
type Summary struct {
ExpID string
ExpDesc string
ExpDate string
PeopleName string
CatDesc string
ExpValue string
}
func GetSummary() ([]*Summary, error) {
rows, err := db.Query("SELECT ex.expid, ex.expdesc, ex.expdate, p.peopname, ca.catdesc, ex.expvalue FROM expenses ex INNER JOIN people p ON ex.exppayer = p.peopid INNER JOIN categories ca ON ex.expcat = ca.catid")
if err != nil {
return nil, err
}
defer rows.Close()
smrys := make([]*Summary, 0)
for rows.Next() {
date := new(time.Time)
smry := new(Summary)
err := rows.Scan(&smry.ExpID, &smry.ExpDesc, &date, &smry.PeopleName, &smry.CatDesc, &smry.ExpValue)
if err != nil {
return nil, err
}
smry.FormatDate(*date)
smrys = append(smrys, smry)
}
if err = rows.Err(); err != nil {
return nil, err
}
return smrys, nil
}
func (smry *Summary) FormatDate(date time.Time) {
smry.ExpDate = date.Format("2006-01-02")
}