200 lines
6.0 KiB
Plaintext
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 |