Observa que el principal cambio que he hecho es incluir un paréntesis que una en el filtro los elementos reunidos con OR. Eso tiene que hacerlo a la vez y antes que los demás filtros.
Un par de cosas:
no sé por qué usas JOIN en lugar de INNER JOIN. No es lo mismo y deberías usar INNER JOIN
Por qué aplicas DATE a todos los datos, incluso a los que tienen forma de fecha y no incluyen hora.