Hallo,
ich bin mir noch nicht ganz sicher, wie ich so etwas berechnen kann.
Im HR - Infotyp 0014 steht eine Lohnart mit Betrg und Gütigkeitszeitraum.
Mich interessiert dabei immer nur der Wert in einem bestimmten Kalenderjahr.
Manche Mitarbeiter haben aber auch die Lohnart 2 mal in dem Kalenderjahr oder aber auch Kalenderjahr übergreifende Sätze.
Beispiel:
01.01.2006 - 31.12.2006 1000,-
Das ist einfach
01.01.2006 - 31.07.2006 1000,-
01.08.2006 - 31.12.2006 1200,-
Ergebnis sollte dann sein: 1083,33
Das geht auch noch
01.01.2006 - 31.07.2006 1000,-
01.08.2006 - 01.02.2007 1200,-
Auch hier sollte das Ergebnis 1083,33 sein, da mich nur das Kalenderjahr interessiert. Das wird schon schwerer, aber bekomm ich auch noch hin.
01.01.2006 - 15.07.2006 1000,-
16.07.2006 - 31.12.2006 1200,-
Tja, und hier weiß ich nicht mehr weiter, bisher habe ich immer
P0014-ENDDA+4(2) von P0014-BEGDA+4(2) abgezogen, aber hier müsste ich ja mit Tagen rechnen
Wie könnte man das am elegantesten lösen?
Irgendwie hab ich das Gefühl, dass ich das zu kompliziert mache.
Hier mal mein Coding:
RP-READ-INFOTYPE PERNR-PERNR 0014 P0014 '20060101' '20061231'.
LOOP AT P0014.
IF P0014-ENDDA(6) GT '200612'.
VAR1 = 12.
ELSE.
VAR1 = P0014-ENDDA+4(2).
ENDIF.
IF P0014-BEGDA(6) LT '200601'.
VAR2 = 01.
ELSE.
VAR2 = P0014-BEGDA+4(2).
ENDIF.
ANZ = VAR1 - VAR2 + 1.
CASE P0014-LGART.
WHEN '9AT0'. TAB-BETRG = P0014-BETRG * ANZ / 12.
ENDCASE.
ADD TAB-BETRG TO TAB-BETRG1.
ENDLOOP.
Datumsabfrage wird dann natürlich noch variabel gemacht, nicht mit den Festwerten.
Viele Grüße
Volker