Причина, по которой у вас появляется сообщение об ошибке конфликта, что мотоцикл находится на доработке, состоит в том, что вы сравниваете только с днями в первом запросе $conflictRevision
.В этом первом запросе нет времени, поэтому он сопоставляется с day только для любого заданного часа - таким образом, ВСЕ часы дня потерпят неудачу / будут конфликтовать.
У вас есть три запроса, которые делают похожие вещи:
$conflictRevision = Revision::where('fk_motorbike', $fk_motorbike)
->whereDate('date_revision_start', "<=" , $date_seance)
->whereDate('date_revision_end', ">=", $date_seance)
->first();
$conflictRevision1 = Revision::where('fk_motorbike', $fk_motorbike)
->whereDate('date_revision_start', "<=" , $date_seance)
->where('hour_start', "<=" , $request->get('hour_start'))
->where('hour_end', ">=" , $request->get('hour_end'))
->first();
$conflictRevision2 = Revision::where('fk_motorbike', $fk_motorbike)
->whereDate('date_revision_end', "<=" , $date_seance)
->where('hour_start', "<=" , $request->get('hour_start'))
->where('hour_end', ">=" , $request->get('hour_end'))
->first();
Первый запрос выше - это тот, который вызывает нежелательное сообщение об ошибке.Удалите запрос $conflictRevision
, поскольку он будет соответствовать любому времени.Удалите запрос $conflictRevision2
, потому что он является дубликатом запроса над ним.Однако вам нужно будет добавить дату окончания к $conflictRevision
, иначе она никогда не будет работать.У вас есть открытый конец или дата начала, используя его, как указано выше.При использовании конфликта1, как у вас есть, все в вашей базе данных с ревизией, начинающейся до конфликта $date_seance
, так как для этого запроса нет конечной даты):
$conflictRevision1 = Revision::where('fk_motorbike', $fk_motorbike)
->whereDate('date_revision_start', "<=" , $date_seance)
->whereDate('date_revision_end', ">=" , $date_seance) // <--Note I changed the operator
->where('hour_start', "<=" , $request->get('hour_start'))
->where('hour_end', ">=" , $request->get('hour_end'))
->first();
И... проблема с ревизией мотоцикла должна быть решена.