Marsn91 Posted January 13, 2018 #1 Share Posted January 13, 2018 Hallo, ich bin neu hier im Forum. Ich habe bereits das FeiertagsScript umsetzen können. Besten Dank an die Ersteller dafür! Nun ist es bei uns so, dass wir jedes Jahr über Weihnachten ( ab 23.12 ) bis Januar (nach der 2. Januar Woche) wieder mit arbeiten anfangen. Nun ist mein Problem: Wie bekomm ich das in ein Script? Wenn die Bedingung erfüllt ist, soll einfach der AB rangehen. Das habe ich schon hinbekommen. Konkret geht es um die Bedingung selbst, und diese eben nicht jedes Jahr anpassen zu müssen, das wird dann bestimmt eh vergessen Beste Grüße, Markus Link to comment Share on other sites More sharing options...
Tom Wellige Posted January 15, 2018 #2 Share Posted January 15, 2018 Hallo Markus, das Problem hier ist, dass mindestens das Enddatum des Zeitraums variable ist, je nach dem, wann die 3. Woche anfängt. Den Tag müsste man erst ermitteln, damit man dann die Abfrage des Zeitraums richtig hinbekommt. Sehe ich das richtig, dass es bei Euch immer mit der 3. Woche anfängt? Also angenommen der 1. Januar fällt auf einen Mittwoch, dann wäre der erste Arbeitstag Montag der 20. Januar. Stimmt das so? Link to comment Share on other sites More sharing options...
Marsn91 Posted January 15, 2018 Author #3 Share Posted January 15, 2018 Genau, das hast du richtig verstanden. Man könnte auch sagen immer nach der 2. KW am Montag. Besten Dank und Viele Grüße, Markus Link to comment Share on other sites More sharing options...
Tom Wellige Posted January 15, 2018 #4 Share Posted January 15, 2018 Kopier mal den folgenden VBSkript Code in den Start Block Deines Call Routings. Function GetFirstWorkingDayOfCurrentYear PBXScript.OutputTrace "---------> GetFirstWorkingDayOfCurrentYear" Dim nReturn Dim vDay Dim nWeekday vDay = CDate(Year(Now) & "-01-15") nWeekday = Weekday(vDay, 2) 'vbMonday PBXScript.OutputTrace "vDay = " & vDay PBXScript.OutputTrace "nWeekday = " & nWeekday While nWeekday <> 1 ' <> Monday vDay = DateAdd("d", 1, vDay) nWeekday = Weekday(vDay, 2) 'vbMonday PBXScript.OutputTrace "vDay = " & vDay PBXScript.OutputTrace "nWeekday = " & nWeekday Wend nReturn = Day(vDay) GetFirstWorkingDayOfCurrentYear = nReturn PBXScript.OutputTrace "nReturn = " & nReturn PBXScript.OutputTrace "<--------- GetFirstWorkingDayOfCurrentYear" End Function Function IsWinterVacation PBXScript.OutputTrace "---------> IsWinterVacation" Dim bReturn bReturn = False PBXScript.OutputTrace "Today = " & Now ' check for 23.12. and following If Month(Now) = 12 Then If Day(Now) >= 23 Then bReturn = True PBXScript.OutputTrace "Today is 23.12. or later." End If End If ' check for first working Monday in January If Month(Now) = 1 Then If Day(Now) < GetFirstWorkingDayOfCurrentYear Then bReturn = True PBXScript.OutputTrace "Today is before the first working day of new year." End If End If If Not bReturn Then PBXScript.OutputTrace "Today is outside of winter vacation." End If IsWinterVacation = bReturn PBXScript.OutputTrace "bReturn = " & bReturn PBXScript.OutputTrace "<--------- IsWinterVacation" End Function Anschliessend kannst Du die Funktion IsWinterVacation z.B. in einem Variable auswerten Block direkt aufrufen, um zu prüfen, ob gerade Urlaub ist oder nicht: Link to comment Share on other sites More sharing options...
Marsn91 Posted January 16, 2018 Author #5 Share Posted January 16, 2018 Das klappt wunderbar. Ich bedanke mich ganz sehr bei dir!!! Link to comment Share on other sites More sharing options...
Tom Wellige Posted January 16, 2018 #6 Share Posted January 16, 2018 Gern geschehen! Link to comment Share on other sites More sharing options...
Recommended Posts
Archived
This topic is now archived and is closed to further replies.