final long timeUntilReady = (pickup ? cur.dto.pickupTimeWindow.begin
: cur.dto.deliveryTimeWindow.begin) - time.getTime();
if (timeUntilReady > 0) {
if (time.getTimeLeft() < timeUntilReady) {
// in this case we can not yet start servicing
time.consumeAll();
return null;
} else {
time.consume(timeUntilReady);
}
}