Sessions: exclude sessions below 0.1kWh rounded from export and improve column names (#4750)

This commit is contained in:
andig 2022-10-07 19:59:31 +02:00 • committed by GitHub
parent 547f37aef0
commit 8deef47165
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23
2 changed files with 14 additions and 8 deletions

View file

@ -13,15 +13,15 @@ import (
// Transaction is a single charging transaction
type Transaction struct {
ID uint `json:"-" gorm:"primarykey"`
ID uint `json:"-" csv:"-" gorm:"primarykey"`
Created time.Time `json:"created"`
Finished time.Time `json:"finished"`
Loadpoint string `json:"loadpoint"`
Identifier string `json:"identifier"`
Vehicle string `json:"vehicle"`
MeterStart float64 `json:"meterStart" gorm:"column:meter_start_kwh"`
MeterStop float64 `json:"meterStop" gorm:"column:meter_end_kwh"`
ChargedEnergy float64 `json:"chargedEnergy" gorm:"column:charged_kwh"`
MeterStart float64 `json:"meterStart" csv:"Meter Start (kWh)" gorm:"column:meter_start_kwh"`
MeterStop float64 `json:"meterStop" csv:"Meter Stop (kWh)" gorm:"column:meter_end_kwh"`
ChargedEnergy float64 `json:"chargedEnergy" csv:"Charged Energy (kWh)" gorm:"column:charged_kwh"`
}
// Stop stops charging session with end meter reading and due total amount
@ -39,10 +39,15 @@ var _ api.CsvWriter = (*Transactions)(nil)
func (t *Transactions) writeHeader(ww *csv.Writer) {
var row []string
for _, f := range structs.Fields(Transaction{}) {
if f.Tag("json") == "-" {
caption := f.Tag("csv")
switch {
case caption == "-":
continue
case caption == "":
caption = f.Name()
}
row = append(row, f.Name())
row = append(row, caption)
}
_ = ww.Write(row)
}
@ -50,7 +55,7 @@ func (t *Transactions) writeHeader(ww *csv.Writer) {
func (t *Transactions) writeRow(ww *csv.Writer, r Transaction) {
var row []string
for _, f := range structs.Fields(r) {
if f.Tag("json") == "-" {
if f.Tag("csv") == "-" {
continue
}
@ -69,6 +74,7 @@ func (t *Transactions) writeRow(ww *csv.Writer, r Transaction) {
row = append(row, val)
}
_ = ww.Write(row)
}

View file

@ -156,7 +156,7 @@ func sessionHandler(w http.ResponseWriter, r *http.Request) {
}
var res db.Transactions
if txn := dbserver.Instance.Where("charged_kwh>0").Order("created desc").Find(&res); txn.Error != nil {
if txn := dbserver.Instance.Where("charged_kwh>=0.05").Order("created desc").Find(&res); txn.Error != nil {
jsonError(w, http.StatusInternalServerError, txn.Error)
return
}