package ch.elexis.agenda.data; import java.util.Calendar; import java.util.Hashtable; import java.util.List; import ch.elexis.agenda.util.Plannables; import ch.elexis.data.Query; import ch.rgw.tools.StringTool; import ch.rgw.tools.TimeTool; public class TerminUtil { public static void updateBoundaries(String resource, TimeTool date){ String day = date.toString(TimeTool.DATE_COMPACT); Query<Termin> qbe = new Query<Termin>(Termin.class); qbe.add(Termin.FLD_TAG, Query.EQUALS, day); qbe.add(Termin.FLD_BEREICH, Query.EQUALS, resource); List<Termin> resList = qbe.execute(); // check whether the only entries are appointments if yes also check // whether some "Tagesgrenzen" are missing for (Termin termin : resList) { if (termin.getType().equals(Termin.typReserviert())) { return; } } Hashtable<String, String> map = Plannables.getDayPrefFor(resource); int d = date.get(Calendar.DAY_OF_WEEK); String ds = map.get(TimeTool.wdays[d - 1]); if (StringTool.isNothing(ds)) { // default für Tagesgrenzen falls nicht definiert ds = "0000-0800\n1800-2359"; //$NON-NLS-1$ } String[] flds = ds.split("\r*\n\r*"); //$NON-NLS-1$ for (String fld : flds) { String from = fld.substring(0, 4); String until = fld.replaceAll("-", "").substring(4); //$NON-NLS-1$ //$NON-NLS-2$ // Lege Termine für die Tagesgrenzen an new Termin(resource, day, TimeTool.getMinutesFromTimeString(from), TimeTool.getMinutesFromTimeString(until), Termin.typReserviert(), Termin.statusLeer()); } } }