Маленькая операция для оценки времени на проверку окончания учетного периода при суммированном учете рабочего времени. Поводом для изменения является окончание календарного года или увольнение. А дальше в оценке времени уже анализируется баланс рабочего времени, формируются виды оплаты в своем правиле.

Программа SAPFP51T

*&———————————————————————*
*& Form OP_ENDP
*&———————————————————————*
* Проверяем окончание учетного период для сумм учета (СУРВ)
*———————————————————————-*

FORM op_endp.

DATA: lv_ndate LIKE sy-datum,
lt_p0000 LIKE p0000 OCCURS 1 WITH HEADER LINE.

lv_ndate = acdate + 1.

vargt = ‘N’.

» месяц
IF ( op+5(1) = ‘M’ ) AND ( lv_ndate+6(2) = ’01’ ).
vargt = ‘Y’.
ENDIF.

» год
IF ( op+5(1) = ‘Y’) AND ( acdate+4(4) = ‘1231’ ).
vargt = ‘Y’.
ENDIF.

IF vargt = ‘N’.
» проверяем на мероприятия (увольнение/перевод)
» читаем мероприятия на следующий день, так как изменение нужно отразить уже сегодня (а мероприятие будет только завтра)

CALL FUNCTION ‘HR_READ_INFOTYPE_AUTHC_DISABLE’ .
CALL FUNCTION ‘HR_READ_INFOTYPE’
EXPORTING
pernr = pernr-pernr
infty = ‘0000’
begda = lv_ndate
endda = lv_ndate
TABLES
infty_tab = lt_p0000.

READ TABLE lt_p0000 INDEX 1.
IF sy-subrc = 0.
» Проверяем на изменение статуса
IF ( wpbp-stat2 lt_p0000-stat2 ).
vargt = ‘Y’.
ENDIF.
ENDIF.
ENDIF.

PERFORM fillvargt.
ENDFORM. «OP_ENDP