aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorAndré Noack <noack@data-quest.de>2024-02-12 14:32:19 +0000
committerAndré Noack <noack@data-quest.de>2024-02-12 14:32:19 +0000
commite36aea0881f808a9b4572034761135b3bdcb4d0e (patch)
tree6c257524440ca7f52343f0c7ab9ba99ec032a126
parent82a53e16910450d37233afa15cd114bc759830ec (diff)
Resolve #3736 "Direkte Buchung: ausfallende Termine bei Wiederholungsbuchung können doppelt gebucht werden"
Closes #3736 Merge request studip/studip!2601
-rw-r--r--app/routes/Resources.php6
1 files changed, 6 insertions, 0 deletions
diff --git a/app/routes/Resources.php b/app/routes/Resources.php
index 53a9c08..7117546 100644
--- a/app/routes/Resources.php
+++ b/app/routes/Resources.php
@@ -930,6 +930,12 @@ class Resources extends \RESTAPI\RouteMap
$this->halt(403, 'You do not have sufficient permissions to modify the interval!');
}
+ if (
+ !$interval->takes_place
+ && $resource->isAssigned(new \DateTime('@' . $interval->begin), new \DateTime('@' . $interval->end))
+ ) {
+ $this->halt(409, 'Already booked');
+ }
//Switch the takes_place field:
$interval->takes_place = $interval->takes_place ? '0' : '1';