added overtime to time and team page + ui improvements + mobile support for team page closed #12
This commit is contained in:
@@ -19,6 +19,7 @@ type User struct {
|
||||
PersonalNummer int `json:"personal_nummer"`
|
||||
ArbeitszeitPerTag float32 `json:"arbeitszeit_per_tag"`
|
||||
ArbeitszeitPerWoche float32 `json:"arbeitszeit_per_woche"`
|
||||
Overtime time.Duration
|
||||
}
|
||||
|
||||
func (u *User) GetUserFromSession(Session *scs.SessionManager, ctx context.Context) (User, error) {
|
||||
@@ -40,6 +41,25 @@ func (u *User) GetUserFromSession(Session *scs.SessionManager, ctx context.Conte
|
||||
return user, nil
|
||||
}
|
||||
|
||||
// Returns the actual overtime for this moment
|
||||
func (u *User) GetReportedOvertime() (time.Duration, error) {
|
||||
var overtime time.Duration
|
||||
var overtimeReport float64
|
||||
|
||||
qStr, err := DB.Prepare("SELECT COALESCE(SUM(ueberstunden), 0) AS total_ueberstunden FROM wochen_report WHERE personal_nummer = $1;")
|
||||
if err != nil {
|
||||
return 0, err
|
||||
}
|
||||
defer qStr.Close()
|
||||
err = qStr.QueryRow(u.PersonalNummer).Scan(&overtimeReport)
|
||||
if err != nil {
|
||||
return 0, err
|
||||
}
|
||||
overtime = time.Duration(overtimeReport * float64(time.Hour)).Round(time.Minute)
|
||||
log.Println("Overtime from wochen_report: ", overtime)
|
||||
return overtime, nil
|
||||
}
|
||||
|
||||
func (u *User) GetAll() ([]User, error) {
|
||||
qStr, err := DB.Prepare((`SELECT card_uid, vorname, nachname FROM s_personal_daten;`))
|
||||
var users []User
|
||||
@@ -147,7 +167,7 @@ func (u *User) ChangePass(password, newPassword string) (bool, error) {
|
||||
|
||||
func (u *User) GetTeamMembers() ([]User, error) {
|
||||
var teamMembers []User
|
||||
qStr, err := DB.Prepare(`SELECT personal_nummer, card_uid, vorname, nachname, arbeitszeit_per_tag FROM s_personal_daten WHERE vorgesetzter_pers_nr = $1`)
|
||||
qStr, err := DB.Prepare(`SELECT personal_nummer FROM s_personal_daten WHERE vorgesetzter_pers_nr = $1`)
|
||||
if err != nil {
|
||||
return teamMembers, err
|
||||
}
|
||||
@@ -159,9 +179,11 @@ func (u *User) GetTeamMembers() ([]User, error) {
|
||||
}
|
||||
defer rows.Close()
|
||||
for rows.Next() {
|
||||
user, err := parseUser(rows)
|
||||
var personalNr int
|
||||
err := rows.Scan(&personalNr)
|
||||
user, err := GetUserByPersonalNr(personalNr)
|
||||
if err != nil {
|
||||
log.Println("Error parsing user!")
|
||||
log.Println("Error getting user!")
|
||||
return teamMembers, err
|
||||
}
|
||||
teamMembers = append(teamMembers, user)
|
||||
@@ -206,8 +228,8 @@ func parseUser(rows *sql.Rows) (User, error) {
|
||||
return user, nil
|
||||
}
|
||||
|
||||
// returns the start of the week, the last submission was made, submission == first booking or last send booking_report to team leader
|
||||
func (u *User) GetLastSubmission() time.Time {
|
||||
// returns the start of the week, the last submission was made, submission == first booking or last send wochen_report to team leader
|
||||
func (u *User) GetLastWorkWeekSubmission() time.Time {
|
||||
var lastSub time.Time
|
||||
qStr, err := DB.Prepare(`
|
||||
SELECT COALESCE(
|
||||
|
||||
Reference in New Issue
Block a user