Advertisement
ezecasti18

Untitled

Jul 1st, 2022
1,467
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
ABAP 2.88 KB | None | 0 0
  1. FORM get_pay_doc_date  USING    pi_bkpf       TYPE gty_bkpf
  2.                                 pi_msg_data   TYPE gty_msg_data
  3.                        CHANGING pc_local_date TYPE char19.
  4. *
  5.   DATA:
  6.     lv_local_timezone   TYPE tznzone,
  7.     lv_server_timezone  TYPE tznzone,
  8.     lv_server_timestamp TYPE tzntstmps,
  9.     lv_local_date       TYPE syst_datlo,
  10.     lv_local_time       TYPE syst_timlo.
  11. *
  12.   CLEAR: pc_local_date,
  13.          lv_local_timezone,
  14.          lv_server_timezone,
  15.          lv_server_timestamp,
  16.          lv_local_date,
  17.          lv_local_time.
  18. *
  19.   CONCATENATE pi_bkpf-budat(4)   '-'
  20.               pi_bkpf-budat+4(2) '-'
  21.               pi_bkpf-budat+6(2) 'T'
  22.               pi_bkpf-cputm(2)   ':'
  23.               pi_bkpf-cputm+2(2) ':'
  24.               pi_bkpf-cputm+4(2)
  25.               INTO pc_local_date.
  26. *
  27. * Get local timezone from parameter table
  28.   PERFORM get_local_timezone USING    pi_bkpf-bukrs
  29.                                       pi_msg_data
  30.                              CHANGING lv_local_timezone.
  31. *
  32. * Get server timezone
  33.   SELECT SINGLE tzonesys
  34.          FROM ttzcu
  35.          INTO lv_server_timezone.
  36. *
  37. * convert document data + time to timestamp
  38.   CALL FUNCTION 'IB_CONVERT_INTO_TIMESTAMP'
  39.     EXPORTING
  40.       i_datlo     = pi_bkpf-budat
  41.       i_timlo     = pi_bkpf-cputm
  42.       i_tzone     = lv_server_timezone
  43.     IMPORTING
  44.       e_timestamp = lv_server_timestamp.
  45. *
  46.   IF sy-subrc IS NOT INITIAL.
  47. *
  48. * Error converting date/time to local timezone
  49.     CALL FUNCTION 'NAST_PROTOCOL_UPDATE'
  50.       EXPORTING
  51.         msg_arbgb              = 'ZMX_CFDI'
  52.         msg_nr                 = '023'
  53.         msg_ty                 = 'I'
  54.       EXCEPTIONS
  55.         message_type_not_valid = 1
  56.         no_sy_message          = 2
  57.         OTHERS                 = 3.
  58.     IF sy-subrc <> 0.
  59.       MESSAGE i023(zmx_cfdi).
  60.     ENDIF.
  61.     EXIT.
  62.   ENDIF.
  63. *
  64. * Convert document time stamp to local time
  65.   CALL FUNCTION 'IB_CONVERT_FROM_TIMESTAMP'
  66.     EXPORTING
  67.       i_timestamp = lv_server_timestamp
  68.       i_tzone     = lv_local_timezone
  69.     IMPORTING
  70.       e_datlo     = lv_local_date
  71.       e_timlo     = lv_local_time.
  72. *
  73.   IF sy-subrc IS NOT INITIAL.
  74. *
  75. * Error converting date/time to local timezone
  76.     CALL FUNCTION 'NAST_PROTOCOL_UPDATE'
  77.       EXPORTING
  78.         msg_arbgb              = 'ZMX_CFDI'
  79.         msg_nr                 = '023'
  80.         msg_ty                 = 'I'
  81.       EXCEPTIONS
  82.         message_type_not_valid = 1
  83.         no_sy_message          = 2
  84.         OTHERS                 = 3.
  85.     IF sy-subrc <> 0.
  86.       MESSAGE i023(zmx_cfdi).
  87.     ENDIF.
  88.     EXIT.
  89.   ENDIF.
  90. *
  91. * format date + time
  92.   CONCATENATE lv_local_date(4)   '-'
  93.               lv_local_date+4(2) '-'
  94.               lv_local_date+6(2) 'T'
  95.               lv_local_time(2)   ':'
  96.               lv_local_time+2(2) ':'
  97.               lv_local_time+4(2)
  98.               INTO pc_local_date.
  99. *
  100. ENDFORM.
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement