if (ben != null) {
currentStep.setBearbeitungsbenutzer(ben);
}
try {
Schritt temp = null;
for (Schritt s : this.currentStep.getProzess().getSchritteList()) {
if (s.getTitel().equals(this.mySolutionStep)) {
temp = s;
}
}
if (temp != null) {
/*
* alle Schritte zwischen dem aktuellen und dem Korrekturschritt wieder schliessen
*/
@SuppressWarnings("unchecked")
List<Schritt> alleSchritteDazwischen = Helper.getHibernateSession().createCriteria(Schritt.class)
.add(Restrictions.ge("reihenfolge", this.currentStep.getReihenfolge()))
.add(Restrictions.le("reihenfolge", temp.getReihenfolge())).addOrder(Order.asc("reihenfolge")).createCriteria("prozess")
.add(Restrictions.idEq(this.currentStep.getProzess().getId())).list();
for (Iterator<Schritt> iter = alleSchritteDazwischen.iterator(); iter.hasNext();) {
Schritt step = iter.next();
step.setBearbeitungsstatusEnum(StepStatus.DONE);
step.setBearbeitungsende(now);
step.setPrioritaet(Integer.valueOf(0));
if (step.getId().intValue() == temp.getId().intValue()) {
step.setBearbeitungsstatusEnum(StepStatus.OPEN);
step.setCorrectionStep();
step.setBearbeitungsende(null);
step.setBearbeitungszeitpunkt(now);
}
Schritteigenschaft seg = new Schritteigenschaft();
seg.setTitel(Helper.getTranslation("Korrektur durchgefuehrt"));
seg.setWert("[" + this.formatter.format(new Date()) + ", " + ben.getNachVorname() + "] "
+ Helper.getTranslation("KorrekturloesungFuer") + " " + temp.getTitel() + ": " + this.solutionMessage);
seg.setSchritt(step);
seg.setType(PropertyType.messageImportant);
seg.setCreationDate(new Date());
step.getEigenschaften().add(seg);
this.stepDAO.save(step);
}
}
String message = Helper.getTranslation("KorrekturloesungFuer") + " " + temp.getTitel() + ": " + this.solutionMessage + " ("
+ ben.getNachVorname() + ")";