A column generation algorithm for a rich vehicle-routing problem