Skip to content
Snippets Groups Projects

fix consultation slot generation in combination with pause times, fixes #1582

Merged Jan-Hendrik Willms requested to merge biest-1582 into main
Files
4
@@ -160,14 +160,22 @@ class Consultation_AdminController extends ConsultationController
@@ -160,14 +160,22 @@ class Consultation_AdminController extends ConsultationController
throw new InvalidArgumentException(_('Die Endzeit liegt vor der Startzeit!'));
throw new InvalidArgumentException(_('Die Endzeit liegt vor der Startzeit!'));
}
}
$slot_count = ConsultationBlock::countBlocks(
// Determine duration of a slot and pause times
 
$duration = Request::int('duration');
 
$pause_time = Request::bool('pause') ? Request::int('pause_time') : null;
 
$pause_duration = Request::bool('pause') ? Request::int('pause_duration') : null;
 
if ($pause_time && $pause_time < $duration) {
 
throw new InvalidArgumentException(_('Die definierte Zeit bis zur Pause ist kleiner als die Dauer eines Termins.'));
 
}
 
 
$slot_count = ConsultationBlock::countSlots(
$start,
$start,
$end,
$end,
Request::int('day-of-week'),
Request::int('day-of-week'),
Request::int('interval'),
Request::int('interval'),
Request::int('duration'),
Request::int('duration'),
Request::bool('pause') ? Request::int('pause_time') : null,
$pause_time,
Request::bool('pause') ? Request::int('pause_duration') : null
$pause_duration
);
);
if ($slot_count >= self::SLOT_COUNT_THRESHOLD && !Request::int('confirmed')) {
if ($slot_count >= self::SLOT_COUNT_THRESHOLD && !Request::int('confirmed')) {
$this->flash['confirm-many'] = $slot_count;
$this->flash['confirm-many'] = $slot_count;
@@ -192,11 +200,13 @@ class Consultation_AdminController extends ConsultationController
@@ -192,11 +200,13 @@ class Consultation_AdminController extends ConsultationController
$block->note = Request::get('note');
$block->note = Request::get('note');
$block->size = Request::int('size', 1);
$block->size = Request::int('size', 1);
$block->createSlots(
$slots = $block->createSlots(Request::int('duration'), $pause_time, $pause_duration);
Request::int('duration'),
if (count($slots) === 0) {
Request::bool('pause') ? Request::int('pause_time') : null,
continue;
Request::bool('pause') ? Request::int('pause_duration') : null
}
);
 
$block->slots->exchangeArray($slots);
 
$stored += $block->store();
$stored += $block->store();
// Store block responsibilites
// Store block responsibilites
Loading