/** * Check if the vehicle is in service for a particular day * Please note: a service will block at least one whole day * * @param Vehicle $vehicle * @param \DateTime $date * @return mixed */ public function inService(Vehicle $vehicle, \DateTime $date) { /** @var ServicePlan $servicePlan */ foreach ($vehicle->getActualServicePlans('first day of this month') as $servicePlan) { $spStart = $this->dateTimeService->convertToLocalDateTime($servicePlan->getStart())->setTime(0, 0); $spEnd = $this->dateTimeService->convertToLocalDateTime($servicePlan->getEnd())->setTime(0, 0); if ($spStart <= $date and $spEnd >= $date) { return self::YES; } } return self::NO; }