feat: Add excludeFromBilling option for diary dates and update related functionality
All checks were successful
Deploy tt-tagebuch / deploy (push) Successful in 44s

This commit is contained in:
Torsten Schulz (local)
2026-05-30 16:10:34 +02:00
parent 25f3802d66
commit 9d9481ac76
12 changed files with 208 additions and 25 deletions

View File

@@ -321,7 +321,8 @@ class BillingService {
clubId,
date: { [Op.between]: [periodStart, periodEnd] },
trainingStart: { [Op.ne]: null },
trainingEnd: { [Op.ne]: null }
trainingEnd: { [Op.ne]: null },
excludeFromBilling: false,
},
attributes: ['date', 'trainingStart', 'trainingEnd'],
order: [['date', 'ASC'], ['trainingStart', 'ASC']]

View File

@@ -26,7 +26,7 @@ class DiaryService {
return dates;
}
async createDateForClub(userToken, clubId, date, trainingStart, trainingEnd) {
async createDateForClub(userToken, clubId, date, trainingStart, trainingEnd, excludeFromBilling = false) {
await checkAccess(userToken, clubId);
const club = await Club.findByPk(clubId);
if (!club) {
@@ -44,12 +44,13 @@ class DiaryService {
clubId,
trainingStart: trainingStart || null,
trainingEnd: trainingEnd || null,
excludeFromBilling: Boolean(excludeFromBilling),
});
return newDate;
}
async updateTrainingTimes(userToken, clubId, dateId, trainingStart, trainingEnd) {
async updateTrainingTimes(userToken, clubId, dateId, trainingStart, trainingEnd, excludeFromBilling) {
await checkAccess(userToken, clubId);
const diaryDate = await DiaryDate.findOne({ where: { clubId, id: dateId } });
if (!diaryDate) {
@@ -60,6 +61,9 @@ class DiaryService {
}
diaryDate.trainingStart = trainingStart || null;
diaryDate.trainingEnd = trainingEnd || null;
if (excludeFromBilling !== undefined) {
diaryDate.excludeFromBilling = Boolean(excludeFromBilling);
}
await diaryDate.save();
return diaryDate;
}