Errors are displaying for the wrong dates. The model(BookingRoom) is running this custom rule on start and end dates on a tabular input form to check for overlapping date ranges. What am I doing wrong?
public function notOverlap()
{
$startDateThis = new DateTime($this->startDate);
$endDateThis = new DateTime($this->endDate);
$criteria = new CDbCriteria;
$criteria->condition = "(id !='".$this->id."' AND bookingId ='".$this->bookingId."')";
$items = BookingRoom::model()->findAll($criteria);
foreach ($items as $item){
$startDateItem = new DateTime($item->startDate);
$endDateItem = new DateTime($item->endDate);
if ($startDateItem <= $endDateThis && $startDateThis <= $endDateItem)
{
$this->addError('startDate', 'Room already taken!');
$this->addError('endDate', 'Room already taken!');
}
}
}