fix: fix while deleting timeentries for whole week
old entries have not been deleted, before new entries have been added. This has been fixed. Also manual entries by administrators are know protected and can only be deleted by an administrator.
This commit is contained in:
parent
34834f2eaa
commit
55b36e5e62
2 changed files with 30 additions and 1 deletions
|
|
@ -608,3 +608,19 @@ func DeleteSchoolYear(db *sql.DB, id int) error {
|
|||
|
||||
return nil
|
||||
}
|
||||
|
||||
func DeleteNonManualTimeEntriesByUserAndWeek(db *sql.DB, userID int, year int, week int) error {
|
||||
dates := calculateWeekDates(year, week)
|
||||
var dateList []string
|
||||
for day := 0; day <= 4; day++ {
|
||||
dateList = append(dateList, dates.Dates[fmt.Sprint(day)])
|
||||
}
|
||||
|
||||
query := `DELETE FROM time_entries
|
||||
WHERE user_id = ?
|
||||
AND type != 'manual'
|
||||
AND date IN (?, ?, ?, ?, ?)`
|
||||
|
||||
_, err := db.Exec(query, userID, dateList[0], dateList[1], dateList[2], dateList[3], dateList[4])
|
||||
return err
|
||||
}
|
||||
|
|
|
|||
|
|
@ -340,7 +340,7 @@ func (app *App) DeleteWeekEntries(c echo.Context) error {
|
|||
return HandleError(c, ErrInvalidInputMsg("Woche"))
|
||||
}
|
||||
|
||||
if err := DeleteTimeEntriesByUserAndWeek(app.DB, claims.UserID, year, week); err != nil {
|
||||
if err := DeleteNonManualTimeEntriesByUserAndWeek(app.DB, claims.UserID, year, week); err != nil {
|
||||
return HandleError(c, ErrDatabaseMsg(err))
|
||||
}
|
||||
|
||||
|
|
@ -417,6 +417,19 @@ func (app *App) CreateBatchTimeEntriesHandler(c echo.Context) error {
|
|||
return HandleError(c, ErrMissingFieldMsg("Zeiteinträge"))
|
||||
}
|
||||
|
||||
if len(req.Entries) > 0 {
|
||||
firstDate := req.Entries[0].Date
|
||||
t, err := time.Parse("2006-01-02", firstDate)
|
||||
if err != nil {
|
||||
return HandleError(c, ErrInvalidInputMsg("Datum-Format"))
|
||||
}
|
||||
year, week := t.ISOWeek()
|
||||
|
||||
if err := DeleteNonManualTimeEntriesByUserAndWeek(app.DB, claims.UserID, year, week); err != nil {
|
||||
return HandleError(c, ErrDatabaseMsg(err))
|
||||
}
|
||||
}
|
||||
|
||||
tx, err := app.DB.Begin()
|
||||
if err != nil {
|
||||
return HandleError(c, ErrDatabaseMsg(err))
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue