int scount[] = new int[11];
int sotime[] = new int[11];
for (int i = 1; i <= shiftContainer.getShiftNum(); i++) {
Shift s = shiftContainer.getShiftById(i);
if (s.getParent() == null) {
out += "E" + s.getId() + " (" + s.getBeginPlace().getName() + "):\n";
int shiftActiveTime = 0;
int shiftActualTime = s.getTime().getBegin();
Place shiftActualPlace = s.getBeginPlace();
int shiftOverTime = 0;
for (int j = 0; j < s.getAssignedTasks().size(); j++) {
Task t = s.getAssignedTasks().get(j);
if (shiftActualPlace.getId() != t.getPlace().getId()) {
int traveltime = trafficProperties.getDistance(shiftActualPlace,
t.getPlace(), shiftActualTime);
int cost = s.getResource().getFare() * traveltime;
numOfTravels++;
totalCostOfTravels += cost;
out += " utazas: " + t.getPlace().getName() +
" (ktg:" + cost + ")\n";
shiftActualPlace = t.getPlace();
shiftActualTime += traveltime;
shiftActiveTime += traveltime;
}
shiftActiveTime += t.getCompletionTime().getEnd() - t.getCompletionTime().getBegin();
shiftActualTime = t.getCompletionTime().getEnd();
out += " M" + t.getId() + "\t[" + t.getCompletionTime().getBegin()
+ "-" + t.getCompletionTime().getEnd() + "] ";
out += "(kes ktg: " + KES(t) + ")\n";
int tohome = trafficProperties.getDistance(t.getPlace(),
s.getEndPlace(), t.getCompletionTime().getEnd());
if (t.getCompletionTime().getEnd() + tohome > s.getTime().getEnd()) {
int ot = t.getCompletionTime().getEnd() + tohome -
s.getTime().getEnd();
if (ot > shiftOverTime) {
shiftOverTime = ot;
}
}
}
//shiftActualTime += shiftOverTime;
if (shiftActualPlace.getId() != s.getEndPlace().getId()) {
int traveltime = trafficProperties.getDistance(shiftActualPlace,
s.getEndPlace(),
shiftActualTime);
int cost = s.getResource().getFare() * traveltime;
numOfTravels++;
totalCostOfTravels += cost;
out += " utazas: " + s.getEndPlace().getName() +
" (ktg:" + cost + ")\n";
shiftActiveTime += traveltime;
}
int time = s.getTime().getEnd() - s.getTime().getBegin() + shiftOverTime;
int rate = ((int)((double)shiftActiveTime/(double)time*100));
out += " kihasznaltsag: " + rate +
"% (" + shiftActiveTime + "/" + time + ")\n";
out += " tulora ktg: " + (shiftOverTime * s.getOvertimeCost()) + "\n";
int standcost = (time - shiftActiveTime) * s.getStandCost();
out += " varakozasi ktg: " + standcost + "\n";
shiftTotalActiveTime += shiftActiveTime;
shiftTotalTime += time;