8
0
Skriptentwickung/archive/Print-WinLineBillingCycle/Print-WinLineBillingCycle.vbs
2024-01-24 16:42:38 +01:00

200 lines
6.0 KiB
Plaintext

'-------------------------------------------------------------------------
' Ersteller: J. Jenne, Digital Data
' Letzte Änderung: 01.04.2019
' Beschreibung: Berechnet Abrechnungszeiträume anhand von Einstellung in Winline.
' Parameter: Rechnungsdatum, Datum Value(0,53)
' Abrechnungszeitraum, Integer Value(25,92)
' Mögliche Werte:
' Kein Andruck:
' --> 0 - Kein andruck
' Im Voraus:
' --> 1 - Monatl.
' --> 2 - Pro Quartal
' --> 3 - Pro Halbjahr
' --> 4 - Pro Jahr
' Rückwirkend:
' --> 5 - Monatl.
' --> 6 - Pro Quartal
' --> 7 - Pro Halbjahr
' --> 8 - Pro Jahr
'-------------------------------------------------------------------------
Dim vFaktDate
Dim vDay, vMonth, vYear
Dim vStichtagV, vStichtagR, vAbrechnungszeitraum
Dim vPart1, vPart2, vResult
Dim vMonate(12)
'----- EINSTELLUNGEN --------
' Stichtag für "Im Voraus" (inkl.)
vStichtagV = 15
' Stichtag für "Rückwirkend" (inkl.)
vStichtagR = 15
'----- EINSTELLUNGEN ENDE ---
'----- TEXTE ----------------
' Monats Texte
vMonate(0) = "Jan"
vMonate(1) = "Feb"
vMonate(2) = "Mrz"
vMonate(3) = "Apr"
vMonate(4) = "Mai"
vMonate(5) = "Jun"
vMonate(6) = "Jul"
vMonate(7) = "Aug"
vMonate(8) = "Sep"
vMonate(9) = "Okt"
vMonate(10) = "Nov"
vMonate(11) = "Dez"
' Quartals Texte
vQuartal1 = "Q1"
vQuartal2 = "Q2"
vQuartal3 = "Q3"
vQuartal4 = "Q4"
' Halbjahrs Texte
vHalbjahr1 = "H1"
vHalbjahr2 = "H2"
' Jahres Text
vJahr = "Jahr"
'----- TEXTE ENDE -----------
vAbrechnungszeitraum = CInt(Value(25,92))
vFaktDate = CDate(Value(0,53))
vDay = Day(vFaktDate)
vMonth = Month(vFaktDate)
vYear = Year(vFaktDate)
If vAbrechnungszeitraum = 0 Then ' Kein Zeitraum gewählt
ElseIf vAbrechnungszeitraum >= 1 and vAbrechnungszeitraum <= 4 Then ' Im Voraus
If vAbrechnungszeitraum = 1 Then ' Monat
' --> 16.12 bis 31.12
If vDay > vStichtagV And vMonth = 12 Then
vPart1 = "1"
vPart2 = vYear + 1
' --> 16.X. bis 31.X. (X = 1..11)
ElseIf vDay > vStichtagV Then
vPart1 = (vMonth + 1)
vPart2 = vYear
' --> 1.X. bis 15.X
Else
vPart1 = vMonth
vPart2 = vYear
End If
ElseIf vAbrechnungszeitraum = 2 Then ' Quartal
' --> 16.3. bis 15.6.
If (vDay > vStichtagV And vMonth = 3) Or vMonth = 4 Or vMonth = 5 Or (vDay <= vStichtagV And vMonth = 6) Then
vPart1 = vQuartal2
vPart2 = vYear
' --> 16.6. bis 15.9.
ElseIf (vDay > vStichtagV And vMonth = 6) Or vMonth = 7 Or vMonth = 8 Or (vDay <= vStichtagV And vMonth = 9) Then
vPart1 = vQuartal3
vPart2 = vYear
' --> 16.9. bis 15.12.
ElseIf (vDay > vStichtagV And vMonth = 9) Or vMonth = 10 Or vMonth = 11 Or (vDay <= vStichtagV And vMonth = 12) Then
vPart1 = vQuartal4
vPart2 = vYear
' --> 16.12. bis 31.12
ElseIf (vDay > vStichtagV And vMonth = 12) Then
vPart1 = vQuartal1
vPart2 = vYear + 1
' --> 1.1. bis 15.3.
ElseIf (vMonth = 1) Or (vMonth = 2) Or (vDay <= vStichtagV And vMonth = 3) Then
vPart1 = vQuartal1
vPart2 = vYear
End If
ElseIf vAbrechnungszeitraum = 3 Then ' Halbjahr
' --> 16.6. bis 15.12.
If (vDay > vStichtagV And vMonth = 6) Or (vMonth = 7) Or (vMonth = 8) Or (vMonth = 9) Or (vMonth = 10) Or (vMonth = 11) Or (vDay <= vStichtagV And vMonth = 12) Then
vPart1 = vHalbjahr2
vPart2 = vYear
' --> 1.1. bis 15.6.
ElseIf (vMonth = 1) Or (vMonth = 2) Or (vMonth = 3) Or (vMonth = 4) Or (vMonth = 5) Or (vDay <= vStichtagV And vMonth = 6) Then
vPart1 = vHalbjahr1
vPart2 = vYear
' --> 16.12. bis 31.12.
ElseIf (vDay > vStichtagV And vMonth = 12) Then
vPart1 = vHalbjahr1
vPart2 = vYear + 1
End If
ElseIf vAbrechnungszeitraum = 4 Then ' Jahr
' --> 16.12. bis 31.12.
If (vDay > vStichtagV And vMonth = 12) Then
vPart1 = vJahr
vPart2 = vYear + 1
' --> 1.1. bis 15.12.
Else
vPart1 = vJahr
vPart2 = vYear
End If
End If
ElseIf vAbrechnungszeitraum >= 5 and vAbrechnungszeitraum <= 8 Then ' Rückwirkend
If vAbrechnungszeitraum = 5 Then ' Monat
' --> 1.1. bis 15.1.
If vDay <= vStichtagR And vMonth = 1 Then
vPart1 = 12
vPart2 = vYear - 1
' --> 1.X. bis 15.X. (X = 1..11)
ElseIf vDay <= vStichtagR Then
vPart1 = (vMonth - 1)
vPart2 = vYear
' --> 16.X. bis 31.X
Else
vPart1 = vMonth
vPart2 = vYear
End If
ElseIf vAbrechnungszeitraum = 6 Then ' Quartal
' --> 16.1. bis 15.4.
If (vDay > vStichtagR And vMonth = 1) Or vMonth = 2 Or vMonth = 3 Or (vDay <= vStichtagR And vMonth = 4) Then
vPart1 = vQuartal1
vPart2 = vYear
' --> 16.4. bis 15.7.
ElseIf (vDay > vStichtagR And vMonth = 4) Or vMonth = 5 Or vMonth = 6 Or (vDay <= vStichtagR And vMonth = 7) Then
vPart1 = vQuartal2
vPart2 = vYear
' --> 16.7. bis 15.10.
ElseIf (vDay > vStichtagR And vMonth = 7) Or vMonth = 8 Or vMonth = 9 Or (vDay <= vStichtagR And vMonth = 10) Then
vPart1 = vQuartal2
vPart2 = vYear
' --> 16.10. bis 31.12.
ElseIf (vDay > vStichtagR And vMonth = 10) Or (vMonth = 11) Or (vMonth = 12) Then
vPart1 = vQuartal4
vPart2 = vYear
' --> 1.1. bis 15.1.
ElseIf (vDay <= vStichtagR And vMonth = 1) Then
vPart1 = vQuartal4
vPart2 = vYear - 1
End If
ElseIf vAbrechnungszeitraum = 7 Then ' Halbjahr
' --> 16.1. bis 15.7.
If (vDay > vStichtagR And vMonth = 1) Or vMonth = 2 Or vMonth = 3 Or vMonth = 4 Or vMonth = 5 Or vMonth = 6 Or (vDay <= vStichtagR And vMonth = 7) Then
vPart1 = vHalbjahr1
vPart2 = vYear
' --> 16.7. bis 31.12.
ElseIf (vDay > vStichtagR And vMonth = 7) Or vMonth = 8 Or vMonth = 9 Or vMonth = 10 Or vMonth = 11 Or vMonth = 12 Then
vPart1 = vHalbjahr2
vPart2 = vYear
' --> 1.1. bis 15.1.
ElseIf (vDay <= vStichtagR And vMonth = 1) Then
vPart1 = vHalbjahr2
vPart2 = vYear - 1
End If
ElseIf vAbrechnungszeitraum = 8 Then ' Jahr
' --> 1.1. bis 15.1.
If (vDay <= vStichtagR And vMonth = 1) Then
vPart1 = vJahr
vPart2 = vYear - 1
' --> 16.1. bis 31.12.
Else
vPart1 = vJahr
vPart2 = vYear
End If
End If
End If
' Monatsnamen aus Monatsnummer/Index berechnen
If vAbrechnungszeitraum = 1 Or vAbrechnungszeitraum = 5 Then
vPart1 = vMonate(CInt(vPart1) - 1)
End If
vResult = vPart1 & " " & vPart2
ResultValue = vResult