Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- FORM get_pay_doc_date USING pi_bkpf TYPE gty_bkpf
- pi_msg_data TYPE gty_msg_data
- CHANGING pc_local_date TYPE char19.
- *
- DATA:
- lv_local_timezone TYPE tznzone,
- lv_server_timezone TYPE tznzone,
- lv_server_timestamp TYPE tzntstmps,
- lv_local_date TYPE syst_datlo,
- lv_local_time TYPE syst_timlo.
- *
- CLEAR: pc_local_date,
- lv_local_timezone,
- lv_server_timezone,
- lv_server_timestamp,
- lv_local_date,
- lv_local_time.
- *
- CONCATENATE pi_bkpf-budat(4) '-'
- pi_bkpf-budat+4(2) '-'
- pi_bkpf-budat+6(2) 'T'
- pi_bkpf-cputm(2) ':'
- pi_bkpf-cputm+2(2) ':'
- pi_bkpf-cputm+4(2)
- INTO pc_local_date.
- *
- * Get local timezone from parameter table
- PERFORM get_local_timezone USING pi_bkpf-bukrs
- pi_msg_data
- CHANGING lv_local_timezone.
- *
- * Get server timezone
- SELECT SINGLE tzonesys
- FROM ttzcu
- INTO lv_server_timezone.
- *
- * convert document data + time to timestamp
- CALL FUNCTION 'IB_CONVERT_INTO_TIMESTAMP'
- EXPORTING
- i_datlo = pi_bkpf-budat
- i_timlo = pi_bkpf-cputm
- i_tzone = lv_server_timezone
- IMPORTING
- e_timestamp = lv_server_timestamp.
- *
- IF sy-subrc IS NOT INITIAL.
- *
- * Error converting date/time to local timezone
- CALL FUNCTION 'NAST_PROTOCOL_UPDATE'
- EXPORTING
- msg_arbgb = 'ZMX_CFDI'
- msg_nr = '023'
- msg_ty = 'I'
- EXCEPTIONS
- message_type_not_valid = 1
- no_sy_message = 2
- OTHERS = 3.
- IF sy-subrc <> 0.
- MESSAGE i023(zmx_cfdi).
- ENDIF.
- EXIT.
- ENDIF.
- *
- * Convert document time stamp to local time
- CALL FUNCTION 'IB_CONVERT_FROM_TIMESTAMP'
- EXPORTING
- i_timestamp = lv_server_timestamp
- i_tzone = lv_local_timezone
- IMPORTING
- e_datlo = lv_local_date
- e_timlo = lv_local_time.
- *
- IF sy-subrc IS NOT INITIAL.
- *
- * Error converting date/time to local timezone
- CALL FUNCTION 'NAST_PROTOCOL_UPDATE'
- EXPORTING
- msg_arbgb = 'ZMX_CFDI'
- msg_nr = '023'
- msg_ty = 'I'
- EXCEPTIONS
- message_type_not_valid = 1
- no_sy_message = 2
- OTHERS = 3.
- IF sy-subrc <> 0.
- MESSAGE i023(zmx_cfdi).
- ENDIF.
- EXIT.
- ENDIF.
- *
- * format date + time
- CONCATENATE lv_local_date(4) '-'
- lv_local_date+4(2) '-'
- lv_local_date+6(2) 'T'
- lv_local_time(2) ':'
- lv_local_time+2(2) ':'
- lv_local_time+4(2)
- INTO pc_local_date.
- *
- ENDFORM.
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement