Planner changes

This commit is contained in:
2026-09-11 17:30:18 +02:00
parent 6ebaf027bf
commit 7fe7c0f51a
5 changed files with 331 additions and 31 deletions
+17 -6
View File
@@ -651,10 +651,11 @@ try {
$data = is_array($rawInput) ? $rawInput : $_GET;
$duration = max(5, (int)($data['duration_minutes'] ?? 30));
$excludeTaskId = (int)($data['task_id'] ?? 0);
$startFromNextWorkday = !empty($data['start_from_next_workday']);
$workdaySettings = get_workday_settings();
$workdayStartStr = $workdaySettings['workday_start'] ?? '08:30';
$workdayEndStr = $workdaySettings['workday_end'] ?? '17:30';
$workdayEndStr = $workdaySettings['workday_end'] ?? '17:00';
$lunchStartStr = $workdaySettings['lunch_start'] ?? '12:30';
$lunchEndStr = $workdaySettings['lunch_end'] ?? '13:00';
@@ -693,6 +694,12 @@ try {
$dutchMonths = ['', 'jan', 'feb', 'mrt', 'apr', 'mei', 'jun', 'jul', 'aug', 'sep', 'okt', 'nov', 'dec'];
$checkDate = clone $now;
if ($startFromNextWorkday) {
$checkDate->modify('+1 day');
while ((int)$checkDate->format('N') >= 6) {
$checkDate->modify('+1 day');
}
}
$foundSlot = null;
$maxDays = 14;
$checkedDays = 0;
@@ -707,7 +714,7 @@ try {
}
$dateStr = $checkDate->format('Y-m-d');
$isToday = ($dateStr === $now->format('Y-m-d'));
$isToday = ($dateStr === $now->format('Y-m-d')) && !$startFromNextWorkday;
// Bepaal vroegste startminuut voor deze dag (op hele kwartieren)
if ($isToday) {
@@ -805,13 +812,17 @@ try {
if ($foundSlot) {
echo json_encode([
'success' => true,
'slot' => $foundSlot,
'success' => true,
'slot' => $foundSlot,
'workday_start' => $workdayStartStr,
'workday_end' => $workdayEndStr,
]);
} else {
echo json_encode([
'success' => false,
'error' => "Geen vrij blok van {$duration} minuten gevonden binnen de gezette werktijden ({$workdayStartStr} - {$workdayEndStr}) voor de komende {$maxDays} werkdagen.",
'success' => false,
'workday_start' => $workdayStartStr,
'workday_end' => $workdayEndStr,
'error' => "Geen vrij blok van {$duration} minuten gevonden binnen de gezette werktijden ({$workdayStartStr} - {$workdayEndStr}) voor de komende {$maxDays} werkdagen.",
]);
}
exit;