Окончание учетного период для суммированного учета рабочего времени (СУРВ)

Окончание учетного период для суммированного учета рабочего времени (СУРВ)

VirVit 2 комментария
Заметки на полях

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

Программа 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

2 комментария

fall3n

Январь 18, 2013 в 10:51 дп

Так как в WPBP в оценке времени всегда лежат данные на следующий день, то можно сделать проще 🙄 :

DATA: lv_next_day LIKE acdate,
ls_wpbp_next_day TYPE pc205.

lv_next_day = acdate + 1.
vargt = 'N'.
" месяц
IF ( op+5(1) = 'M' ) AND ( lv_next_day+6(2) = '01' ).
vargt = 'Y'.
ENDIF.
" год
IF ( op+5(1) = 'Y') AND ( acdate+4(4) = '1231' ).
vargt = 'Y'.
ENDIF.

IF vargt = 'N'.
" проверяем на мероприятия (увольнение/перевод)
" читаем мероприятия на следующий день, так как изменение нужно отразить уже сегодня (а мероприятие будет только завтра)
LOOP AT wpbp INTO ls_wpbp_next_day WHERE begda = lv_next_day.
" Проверяем на изменение статуса
IF ( wpbp-stat2 ls_wpbp_next_day-stat2 ).

vargt = 'Y'.
ENDIF.
EXIT.
ENDLOOP.
ENDIF.
PERFORM fillvargt.
ENDFORM. «OP_ENDP

 

VirVit

Январь 18, 2013 в 4:59 пп

Согласен. Но результатов может и не быть на следующий день 😉

 

Вы должны быть авторизованы, чтобы оставить комментарий.