Zeitfenster für weitere Einträge sperren
Über folgende Funktion befülle ich eine Untertabelle mit Terminen:
let my := this;
let P := Projekte;
let myTermin := appointment(datetime(Datum + Von), Bis - Von);
let myVon := start(myTermin);
let myBis := endof(myTermin);
if Datum = null or Von = null or Bis = null then
alert("Es fehlen leider noch Werte, bitte eingeben: DATUM, VON, BIS")
else
let new := (create Termine);
new.(Termin := myTermin);
new.(ToDos := my);
new.(Projekte := P);
new.(Status := 1)
end
Nun möchte ich gerne eine Funktion hinzufügen, um zu prüfen ob der Termin bereits anderweitig verplant wurde. Ist das Zeitfenster verfügbar, wird eingetragen, wenn nicht dann
alert("Es gibt Terminüberschneidungen!")
Wie mache ich das? Vielen Dank!
3 Antworten
-
Hallo Reinhard,
Ohne geprüft zu haben:---
let my := this;
let P := Projekte;
let myTermin := appointment(datetime(Datum + Von), Bis - Von);
let myVon := start(myTermin);
let myBis := endof(myTermin);
if Datum = null or Von = null or Bis = null then
alert("Es fehlen leider noch Werte, bitte eingeben: DATUM, VON, BIS")
else
if cnt(select Termine [not(myBis<start(Termin) or myVon>endof(Termin))])!=0 then
alert("Es gibt Terminüberschneidungen!")
else
let new := (create Termine);
new.(Termin := myTermin);
new.(ToDos := my);
new.(Projekte := P);
new.(Status := 1)
end
end
---
Leo
-
Funktioniert genial, Leo. Durch einen kleinen Zusatz kann ich auch noch den Sachbearbeiter prüfen "ausgeführt von" lassen.
let my := this;
let P := Projekte;
let myTermin := appointment(datetime(Datum + Von), Bis - Von);
let myVon := start(myTermin);
let myBis := endof(myTermin);
let myC := my.'ausgeführt von';
if Datum = null or Von = null or Bis = null then
alert("Es fehlen leider noch Werte, bitte eingeben: DATUM, VON, BIS")
else
if myC = 0 then
alert("Dein Team ist unvollständig, bitte lege eine ausführende Person fest.")
else
if cnt((select Termine)[not (myBis < start(Termin) or myVon >= endof(Termin)) and myC = 'ausgeführt von']) != 0 then
alert("Es gibt Terminkonflikte bei der ausführenden Person.")
else
let new := (create Termine);
new.(Termin := myTermin);
new.(ToDos := my);
new.(Projekte := P);
new.(Status := 1)
end
end
end
Schön ist auch, dass die Prüfung unabhängig vom Projekt erfolgt, dh. immer sobald der Kontakt verplant ist, kommen entsprechende Hinweise.
Der Export einer .csv Datei klappt auch schon um die Termine in eigenständige Google Calender zu importieren und so Kalender zu syncen.
Besten Dank für diese großartige Software und das tolle Forum!
-
Hallo zusammen,
bei mir funktioniert das irgendwie nicht. Ich kann mir aber nicht ganz erklären warum. Bei mir kommt der alert immer, egal ob ein Termin um die Zeit ist oder nicht, selbst an Tagen, wo gar kein Termin ist. Woran könnte das liegen?
Fahrdauer := time(number(gcode.result.first(rows).first(elements).duration.value) * 1000);
Abholzeit := if Fahrdauer != null then
Ankunftszeit - Fahrdauer - 300000
end;
let myStart := datetime(Datum, Abholzeit);
let myEnd := myStart + Fahrdauer + 300000 + Wartezeit;
let my := this;
let myTermin := appointment(datetime(Datum + Abholzeit), myStart + Fahrdauer + 300000 + Wartezeit);
let myVon := start(myTermin);
let myBis := endof(myTermin);
if Datum = null or Abholzeit = null or Ankunftszeit = null then
alert("Es fehlen leider noch Werte, bitte eingeben: DATUM, VON, BIS")
else
if cnt((select Fahrten)[not (myBis < start(Termin) or myVon > endof(Termin))]) != 0 then
alert("Es gibt Terminüberschneidungen!")
else
alert("Nix");
Termin := appointment(myStart, myEnd)
endIch habe versucht, die Funktion mit meinem bisherigen Code zu "verheiraten", habe aber den Fehler nicht gefunden. Mit der bisherigen Funktion wurde aus einem Datum und zwei Zeiten der Termin erzeugt. Über Hilfe würde ich mich sehr freuen.
Content aside
- vor 2 JahrenZuletzt aktiv
- 3Antworten
- 374Ansichten