0

Vermietung Mietservice - Abfrage ob im Zeitraum noch fei

Hallo zusammen,

 

ich erstelle gerade ein neues Modul für unseren Vermietservice. Es gib zum einen eine Datenbank die bereits alle Anlagen im Betrieb beinhaltet, darin enthalten auch unsere Mietmaterialien/Fahrzeuge.

Jetzt habe ich eine Tabelle erstellt in der die AUfträge zum vermieten angelegt werden. In einer GANTT Ansicht kann ich ausserdem bei der jew. Anlagenart grob sehen wann noch was frei ist. (Leider nicht optimal da man nicht Gruppieren kann in einer Spalte in der GANTT so dass man immer alle untereinander anzeigen lassen muss und dann runter peilen ob irgndwo an dem Tag was frei ist)

Ich würde gerne zusätzlich eine Überprüfung einbauen. Ich habe ein Terminfeld "von-bis" und wenn ich einen neuen Auftrag anlege und den Termin angebe  würde ich gerne prüfen lassen ob die gleiche Anlage in dem Zeitraum schon belegt ist und wenn ja eine Fehlermeldeung aufploppen lassen. Wenn der Termin genau gleich wäre also von bis wäre die Abfrage ja einfach aber ich muss ja prüfen ob einer der Tage da schon belegt ist. Da hab ich aktuell noch keine gute Idee. 

Hat die jemand von Euch? Danke und Gruß

 

Florian

4 Antworten

null
    • Leonid_Semik
    • vor 3 Jahren
    • Gemeldet - anzeigen

    Hallo Florian,

    Generell lässt sich die Anzahl sich überschneidernden Termine so ermitteln.

    ---
    let me := this;
    cnt((select Termine)[date(endof(Termin)) >= date(start(me.Termin)) and date(start(Termin)) <= date(endof(me.Termin))])
    ---

    Die Zusatzbedingung für gleiche Anlagearten lasst sich da auch einbinden. Einen Alert kann man einbauen in dem man folgende Formeln in ein Funktonsfeld rein screibt:

    ---
    let me := this;
    if cnt((select Termine)[ANLAGE=me ANLAGE and date(endof(Termin)) >= date(start(me.Termin)) and date(start(Termin)) <= date(endof(me.Termin))]) >1 then alert("ACHTUNG ÜBERSCHNEIDUNG") end
    ---

    noch besser finde ich die Idee mit einer Tabellenansicht:

    ---

    let me := this;
    (select Termine)[ANLAGE=me ANLAGE and Nr!=me.Nr and date(endof(Termin)) >= date(start(me.Termin)) and date(start(Termin)) <= date(endof(me.Termin))]
    ---

    Diese Ansicht kann man sichtbar machn wenn die Anzahl der Überschneidungen >0 ist.

    ---
    cnt((select Termine)[ANLAGE=me ANLAGE and Nr!=me.Nr and date(endof(Termin)) >= date(start(me.Termin)) and date(start(Termin)) <= date(endof(me.Termin))]) >1

    ---

    so werden bei überschneidungen auch die betroffenen Datensätze sichbar.

     

    Leo

    • Leonid_Semik
    • vor 3 Jahren
    • Gemeldet - anzeigen

    Oh, 

    statt ANLAGE=me ANLAGE muss natürlich ANLAGE=me.ANLAGE 

    • Florian_Wisser
    • vor 3 Jahren
    • Gemeldet - anzeigen

    Leo! Vielen Dank schon mal wieder. Du bist unbezahbar. Kann es leider erst morgen früh testen, da ich heut Nachmittag nen Termin hab. Aber schon mal vielen Dank für die Mühe. lg

    • Florian_Wisser
    • vor 3 Jahren
    • Gemeldet - anzeigen

    Hat alles tadellos funktioniert! Hab beides umgesetzt. Einen Alarm + Tabelle der Überschneidungen wenn vorhanden. Den Alarm hab ich nur optisch dargestellt per Button der dann eingeblendet wird da der Alarm sonst immer wieder aufploppt.  

     

    Vielen Dank nochmal für deine Mühe!

Content aside

  • vor 3 JahrenZuletzt aktiv
  • 4Antworten
  • 441Ansichten