This commit is contained in:
@@ -109,6 +109,23 @@ func (a *Absence) Insert() error {
|
||||
return nil
|
||||
}
|
||||
|
||||
func (a *Absence) Save() error {
|
||||
qStr, err := DB.Prepare(`
|
||||
UPDATE abwesenheit SET card_uid = $2, abwesenheit_typ = $3, datum_from = $4, datum_to = $5 WHERE counter_id = $1;
|
||||
`)
|
||||
if err != nil {
|
||||
log.Println("Error preparing sql Statement (Absence Save)", err)
|
||||
return err
|
||||
}
|
||||
defer qStr.Close()
|
||||
_, err = qStr.Query(a.CounterId, a.CardUID, a.AbwesenheitTyp.Id, a.DateFrom, a.DateTo)
|
||||
if err != nil {
|
||||
log.Println("Error executing update statement", err)
|
||||
return err
|
||||
}
|
||||
return nil
|
||||
}
|
||||
|
||||
func GetAbsenceById(counterId int) (Absence, error) {
|
||||
var absence Absence = Absence{CounterId: counterId}
|
||||
qStr, err := DB.Prepare("SELECT card_uid, abwesenheit_typ, datum_from, datum_to FROM abwesenheit WHERE counter_id = $1;")
|
||||
@@ -179,6 +196,27 @@ func GetAbsencesByCardUID(card_uid string, tsFrom time.Time, tsTo time.Time) ([]
|
||||
return absences, nil
|
||||
}
|
||||
|
||||
func (a *Absence) Update(na Absence) bool {
|
||||
change := false
|
||||
if a.CardUID != na.CardUID && na.CardUID != "" {
|
||||
a.CardUID = na.CardUID
|
||||
change = true
|
||||
}
|
||||
if a.AbwesenheitTyp != na.AbwesenheitTyp && na.AbwesenheitTyp.Id != 0 {
|
||||
a.AbwesenheitTyp = na.AbwesenheitTyp
|
||||
change = true
|
||||
}
|
||||
if !a.DateFrom.Equal(na.DateFrom) && !na.DateFrom.IsZero() {
|
||||
a.DateFrom = na.DateFrom
|
||||
change = true
|
||||
}
|
||||
if !a.DateTo.Equal(na.DateTo) && !na.DateTo.IsZero() {
|
||||
a.DateTo = na.DateTo
|
||||
change = true
|
||||
}
|
||||
return change
|
||||
}
|
||||
|
||||
func GetAbsenceTypes() (map[int8]AbsenceType, error) {
|
||||
var types = make(map[int8]AbsenceType)
|
||||
qStr, err := DB.Prepare("SELECT abwesenheit_id, abwesenheit_name, arbeitszeit_equivalent FROM s_abwesenheit_typen;")
|
||||
|
||||
@@ -24,15 +24,16 @@ type IWorkDay interface {
|
||||
}
|
||||
|
||||
type WorkDay struct {
|
||||
Day time.Time `json:"day"`
|
||||
Bookings []Booking `json:"bookings"`
|
||||
workTime time.Duration
|
||||
pauseTime time.Duration
|
||||
realWorkTime time.Duration
|
||||
realPauseTime time.Duration
|
||||
TimeFrom time.Time
|
||||
TimeTo time.Time
|
||||
kurzArbeit bool
|
||||
Day time.Time `json:"day"`
|
||||
Bookings []Booking `json:"bookings"`
|
||||
workTime time.Duration
|
||||
pauseTime time.Duration
|
||||
realWorkTime time.Duration
|
||||
realPauseTime time.Duration
|
||||
TimeFrom time.Time
|
||||
TimeTo time.Time
|
||||
kurzArbeit bool
|
||||
kurzArbeitAbsence Absence
|
||||
}
|
||||
|
||||
func GetDays(user User, tsFrom, tsTo time.Time, orderedForward bool) []IWorkDay {
|
||||
@@ -53,6 +54,7 @@ func GetDays(user User, tsFrom, tsTo time.Time, orderedForward bool) []IWorkDay
|
||||
if day.AbwesenheitTyp.WorkTime == 1 {
|
||||
if workDay, ok := allDays[day.Date().Format("2006-01-02")].(*WorkDay); ok {
|
||||
workDay.kurzArbeit = true
|
||||
workDay.kurzArbeitAbsence = day
|
||||
}
|
||||
} else {
|
||||
allDays[day.Date().Format("2006-01-02")] = &day
|
||||
@@ -85,6 +87,10 @@ func (d *WorkDay) TimeWorkVirtual(u User) time.Duration {
|
||||
return d.workTime
|
||||
}
|
||||
|
||||
func (d *WorkDay) GetKurzArbeit() Absence {
|
||||
return d.kurzArbeitAbsence
|
||||
}
|
||||
|
||||
func (d *WorkDay) TimeWorkReal(u User) time.Duration {
|
||||
d.realWorkTime, d.realPauseTime = 0, 0
|
||||
var lastBooking Booking
|
||||
|
||||
Reference in New Issue
Block a user