53 lines
1.2 KiB
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
|
|
}
|