A multi-stage algorithm for a capacitated vehicle routing problem with time constraints