Files
arbeitszeitmessung/Backend/models/workWeek.go

53 lines
1.2 KiB
Go

package models
import (
"log"
"time"
)
type WorkWeek struct {
WorkDays []WorkDay
User User
WeekStart time.Time
}
func (w *WorkWeek) GetWeek(user User, tsMonday time.Time) WorkWeek {
var week WorkWeek
week.WorkDays = (*WorkDay).GetWorkDays(nil, user.CardUID, tsMonday, tsMonday.Add(7*24*time.Hour))
week.User = user
week.WeekStart = tsMonday
return week
}
func (w *WorkWeek) GetSendWeeks(user User) []WorkWeek {
var weeks []WorkWeek
qStr, err := DB.Prepare(`SELECT woche_start::DATE FROM buchung_wochen WHERE bestaetigt = FALSE AND personal_nummer = $1;`)
if err != nil {
log.Println("Error preparing SQL statement", err)
return weeks
}
defer qStr.Close()
rows, err := qStr.Query(user.PersonalNummer)
if err != nil {
log.Println("Error querining db!", err)
return weeks
}
defer rows.Close()
for rows.Next() {
var week WorkWeek
week.User = user
if err := rows.Scan(&week.WeekStart); err != nil {
log.Println("Error scanning row!", err)
return weeks
}
week.WorkDays = (*WorkDay).GetWorkDays(nil, user.CardUID, week.WeekStart, week.WeekStart.Add(7*24*time.Hour))
weeks = append(weeks, week)
}
if err = rows.Err(); err != nil {
return weeks
}
return weeks
}