My client also had this problem, and I changed a few lines of code to make it work.
Example of problem:
——————————
– 2 assistants, each available for multiple different services.
– Assistant #1 has booking for “hair cut” at 1:00pm on Sept 24 2022
– Assistant #2 is not available for any service in the 1:00pm time slot on Sept 24 2022
– ‘customers per session’ makes no difference to this example
Here is my fix, one line is specific to our usage with the time offset. Adjust as needed.
--- wp-content/plugins/salon-booking-plugin/src/SLN/Action/Ajax/CheckDateAlt.php Tue Sep 6 02:32:28 2022
+++ wp-content/plugins/salon-booking-plugin/src/SLN/Action/Ajax/CheckDateAlt.php Fri Sep 16 22:42:04 2022
@@ -238,9 +238,8 @@
$attendantErrors = array();
if ($bookingServices->isLast($bookingService) && $bookingOffsetEnabled) {
- $offsetStart = $bookingService->getEndsAt();
- $offsetEnd = $bookingService->getEndsAt()->modify('+'.$bookingOffset.' minutes');
- $serviceErrors = $ah->validateTimePeriod($offsetStart, $offsetEnd);
+ $offsetEnd = $bookingService->getEndsAt()->modify('+' . ($bookingOffset - 15) . ' minutes');
+ $serviceErrors = $ah->validateAttendant($bookingService->getAttendant(), $offsetEnd, null, $bookingService->getBreakStartsAt(), $bookingService->getBreakEndsAt());
}
if (empty($serviceErrors)) {
$serviceErrors = $ah->validateBookingService($bookingService, $bookingServices->isLast($bookingService));
--- wp-content/plugins/salon-booking-plugin/src/SLN/Helper/Availability.php Tue Sep 6 02:32:28 2022
+++ wp-content/plugins/salon-booking-plugin/src/SLN/Helper/Availability.php Fri Sep 16 22:32:53 2022
@@ -936,12 +936,7 @@
public function isValidOnlyTime($date)
{
- $countHour = $this->settings->get('parallels_hour');
-
- return ($date >= $this->initialDate) && !($countHour && $this->getBookingsHourCount(
- $date->format('H'),
- $date->format('i')
- ) >= $countHour);
+ return ($date >= $this->initialDate);
}
public function getFreeMinutes($date)
--- wp-content/plugins/salon-booking-plugin/src/SLN/Helper/Availability/Advanced/DayBookings.php Tue Sep 6 02:32:28 2022
+++ wp-content/plugins/salon-booking-plugin/src/SLN/Helper/Availability/Advanced/DayBookings.php Fri Sep 16 22:38:57 2022
@@ -39,10 +39,17 @@
foreach ($bookings as $booking) {
$bookingServices = $booking->getBookingServices();
foreach ($bookingServices->getItems() as $bookingService) {
+
+ $offsetEnd = clone $booking->getEndsAt();
+
+ if ($bookingServices->isLast($bookingService) && $bookingOffsetEnabled) {
+ $offsetEnd->modify('+'.$bookingOffset.' minutes');
+ }
+
$times = SLN_Func::filterTimes(
$this->minutesIntervals,
- $bookingService->getStartsAt(),
- $bookingService->getEndsAt()
+ $booking->getStartsAt(),
+ $offsetEnd
);
foreach ($times as $time) {
$time = $time->format('H:i');