41 lines
1.0 KiB
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")
|
|
}
|