Z_LW_REPOST_910102001
*&---------------------------------------------------------------------*
*& Report ZZZ00001
*&
*&---------------------------------------------------------------------*
*&
*&
*&---------------------------------------------------------------------*
REPORT zzz00001.
TYPE-POOLS: slis.
PERFORM executar_programa.
DATA: fcode TYPE sy-ucomm,
w_bkpf TYPE bkpf.
DATA:
BEGIN OF t_output OCCURS 0,
bukrs TYPE bukrs,
belnr TYPE belnr_d,
gjahr TYPE gjahr,
buzei TYPE buzei,
hkont TYPE hkont,
shkzg TYPE shkzg,
dmbtr TYPE dmbtr,
waers TYPE waers,
blart TYPE blart,
sgtxt TYPE sgtxt,
zuonr TYPE dzuonr,
xblnr TYPE xblnr,
ktosl TYPE ktosl,
mwskz TYPE mwskz,
hkont_post TYPE hkont,
hkont_new TYPE hkont,
kostl TYPE kostl,
sgtxt_new TYPE txt20_skat,
belnr_post TYPE belnr_d,
mark,
END OF t_output.
DATA: "ALV Data
t_fcat TYPE lvc_t_fcat,
t_filters TYPE lvc_t_filt,
w_layout TYPE lvc_s_layo.
TYPES: BEGIN OF ty_belnr,
bukrs TYPE bukrs,
gjahr TYPE gjahr,
belnr TYPE belnr_d,
bktxt TYPE bktxt,
END OF ty_belnr.
DATA: t_belnr TYPE TABLE OF ty_belnr,
t_bkpf TYPE TABLE OF bkpf,
t_bseg TYPE TABLE OF bseg.
TYPES: BEGIN OF ty_posts,
bukrs TYPE bukrs,
gjahr TYPE gjahr,
belnr TYPE belnr_d,
bktxt TYPE bktxt,
blart TYPE blart,
xreversal TYPE xreversal,
END OF ty_posts,
BEGIN OF ty_bktxt,
bktxt TYPE bktxt,
END OF ty_bktxt.
DATA: t_bktxt TYPE TABLE OF ty_bktxt,
t_posts TYPE TABLE OF ty_posts.
SELECTION-SCREEN BEGIN OF SCREEN 0001.
PARAMETERS:
p_saknr TYPE saknr OBLIGATORY DEFAULT '910102001',
p_bukrs TYPE bukrs OBLIGATORY MEMORY ID buk.
SELECT-OPTIONS:
s_budat FOR w_bkpf-budat OBLIGATORY NO-EXTENSION.
PARAMETERS:
p_budat TYPE budat.
SELECTION-SCREEN:
BEGIN OF LINE,
PUSHBUTTON (10) start USER-COMMAND start,
END OF LINE.
*SELECTion-SCREEN PUSHBUTTON start USER-COMMAND val.
SELECTION-SCREEN END OF SCREEN 0001.
*&---------------------------------------------------------------------*
*& Form executar_programa
*&---------------------------------------------------------------------*
* text
*----------------------------------------------------------------------*
FORM executar_programa.
CALL SELECTION-SCREEN '0001'.
ENDFORM. "executar_programa
AT SELECTION-SCREEN OUTPUT.
DATA:
w_datum LIKE LINE OF s_budat.
IF sy-dynnr = '0001'.
%_p_saknr_%_app_%-text = 'Cta. Contábil'.
%_p_bukrs_%_app_%-text = 'Empresa'.
start = 'Executar'.
%_s_budat_%_app_%-text = 'Período Lançamento'.
%_p_budat_%_app_%-text = 'Data p/ Ajuste'.
IF p_budat IS INITIAL.
READ TABLE s_budat INDEX 1.
CALL FUNCTION 'LAST_DAY_OF_MONTHS'
EXPORTING
day_in = s_budat-low
IMPORTING
last_day_of_month = p_budat
EXCEPTIONS
day_in_no_date = 1
OTHERS = 2.
IF sy-subrc <> 0.
* MESSAGE ID SY-MSGID TYPE SY-MSGTY NUMBER SY-MSGNO
* WITH SY-MSGV1 SY-MSGV2 SY-MSGV3 SY-MSGV4.
ENDIF.
ENDIF.
ENDIF.
AT SELECTION-SCREEN.
IF sy-dynnr = '0001'.
fcode = sy-ucomm.
CASE fcode.
WHEN 'START' OR 'CRET'.
CHECK p_budat IS NOT INITIAL.
PERFORM start_of_selection.
ENDCASE.
ENDIF.
*&---------------------------------------------------------------------*
*& Form start_of_selection
*&---------------------------------------------------------------------*
* text
*----------------------------------------------------------------------*
FORM start_of_selection.
PERFORM select_data.
PERFORM process_data.
PERFORM process_output.
ENDFORM. "start_of_selection
*&---------------------------------------------------------------------*
*& Form start_of_selection
*&---------------------------------------------------------------------*
* text
*----------------------------------------------------------------------*
FORM select_data..
REFRESH t_belnr.
SELECT bukrs gjahr belnr FROM bsis INTO TABLE t_belnr
WHERE budat IN s_budat
AND hkont = p_saknr
AND bukrs = p_bukrs.
SELECT bukrs gjahr belnr FROM bsas
APPENDING TABLE t_belnr
WHERE budat IN s_budat
AND hkont = p_saknr
AND bukrs = p_bukrs.
SORT t_belnr BY bukrs gjahr belnr ASCENDING.
DELETE ADJACENT DUPLICATES FROM t_belnr COMPARING ALL FIELDS.
SELECT * FROM bseg INTO TABLE t_bseg
FOR ALL ENTRIES IN t_belnr
WHERE belnr = t_belnr-belnr
AND gjahr = t_belnr-gjahr
AND bukrs = t_belnr-bukrs.
SELECT * FROM bkpf INTO TABLE t_bkpf
FOR ALL ENTRIES IN t_belnr
WHERE belnr = t_belnr-belnr
AND gjahr = t_belnr-gjahr
AND bukrs = t_belnr-bukrs.
DATA: w_bseg LIKE LINE OF t_bseg,
w_bktxt LIKE LINE OF t_bktxt.
CLEAR t_bktxt[].
LOOP AT t_bseg INTO w_bseg WHERE hkont = p_saknr.
CLEAR w_bktxt.
CONCATENATE w_bseg-bukrs '-' w_bseg-gjahr '-' w_bseg-belnr '-' w_bseg-buzei
INTO w_bktxt-bktxt.
APPEND w_bktxt TO t_bktxt.
ENDLOOP.
IF t_bktxt[] IS NOT INITIAL.
SELECT
bukrs
gjahr
belnr
bktxt
blart
xreversal
FROM bkpf INTO TABLE t_posts
FOR ALL ENTRIES IN t_bktxt
WHERE bktxt = t_bktxt-bktxt
AND blart = 'SA'
AND xreversal = ' '.
ENDIF.
ENDFORM. "start_of_selection
*&---------------------------------------------------------------------*
*& Form PROCESS_DATA
*&---------------------------------------------------------------------*
* text
*----------------------------------------------------------------------*
* --> p1 text
* <-- p2 text
*----------------------------------------------------------------------*
FORM process_data .
CLEAR t_output[].
DATA: w_output LIKE LINE OF t_output,
w_belnr LIKE LINE OF t_belnr,
w_bkpf LIKE LINE OF t_bkpf,
w_bseg LIKE LINE OF t_bseg,
w_bseg_kostl LIKE LINE OF t_bseg,
w_final(3) TYPE c.
LOOP AT t_belnr INTO w_belnr.
CLEAR w_output.
LOOP AT t_bseg INTO w_bseg
WHERE bukrs = w_belnr-bukrs
AND belnr = w_belnr-belnr
AND gjahr = w_belnr-gjahr.
CHECK w_bseg-hkont EQ p_saknr.
READ TABLE t_bkpf INTO w_bkpf WITH KEY
bukrs = w_bseg-bukrs
gjahr = w_bseg-gjahr
belnr = w_bseg-belnr.
CHECK w_bkpf-xreversal = ' '.
w_output-bukrs = w_bkpf-bukrs.
w_output-gjahr = w_bkpf-gjahr.
w_output-belnr = w_bkpf-belnr.
w_output-buzei = w_bseg-buzei.
w_output-hkont = w_bseg-hkont.
w_output-blart = w_bkpf-blart.
w_output-xblnr = w_bkpf-xblnr.
w_output-zuonr = w_bseg-zuonr.
* w_output-sgtxt = w_bseg-sgtxt.
w_output-waers = w_bkpf-hwaer.
w_output-shkzg = w_bseg-shkzg.
w_output-dmbtr = w_bseg-dmbtr.
w_output-ktosl = w_bseg-ktosl.
w_output-mwskz = w_bseg-mwskz.
READ TABLE t_bseg WITH KEY
bukrs = w_bseg-bukrs
gjahr = w_bseg-gjahr
belnr = w_bseg-belnr
buzid = 'S' INTO w_bseg_kostl.
IF sy-subrc IS INITIAL.
w_output-kostl = w_bseg_kostl-kostl.
w_output-hkont_post = w_bseg_kostl-hkont.
IF w_bseg-ktosl = 'ZCC'. "COFINS
w_final = '101'.
ELSEIF w_bseg-ktosl = 'ZCP'. "PIS
w_final = '100'.
ENDIF.
w_output-sgtxt = w_bseg_kostl-sgtxt.
CONCATENATE w_bseg_kostl-hkont+0(7) w_final INTO w_output-hkont_new.
IF w_output-hkont_post = '0510302099' OR
w_output-hkont_post = '0510302007' OR
w_output-hkont_post = '0510301003' OR
w_output-hkont_post = '0510203008'.
IF w_bseg-ktosl = 'ZCC'. "COFINS
w_output-hkont_new = '0510304101'.
ELSEIF w_bseg-ktosl = 'ZCP'. "PIS
w_output-hkont_new = '0510304100'.
ENDIF.
ENDIF.
IF w_output-hkont_post(5) = '06101'.
IF w_bseg-ktosl = 'ZCC'. "COFINS
w_output-hkont_new = w_output-hkont_post.
w_output-hkont_new+2(1) = '2'.
w_output-hkont_new+6(1) = '3'.
ELSEIF w_bseg-ktosl = 'ZCP'. "PIS
w_output-hkont_new = w_output-hkont_post.
w_output-hkont_new+2(1) = '2'.
w_output-hkont_new+6(1) = '2'.
ENDIF.
ENDIF.
IF w_output-hkont_new IS NOT INITIAL.
SELECT SINGLE txt20 INTO w_output-sgtxt_new
FROM skat
WHERE saknr = w_output-hkont_new
AND ktopl = 'PCLW'
AND spras = sy-langu.
IF sy-subrc IS NOT INITIAL.
CLEAR w_output-sgtxt_new.
ENDIF.
ENDIF.
ENDIF.
DATA: w_bktxt TYPE bkpf-bktxt,
w_post LIKE LINE OF t_posts.
CONCATENATE w_output-bukrs '-' w_output-gjahr '-' w_output-belnr '-' w_output-buzei
INTO w_bktxt.
READ TABLE t_posts WITH KEY bktxt = w_bktxt INTO w_post.
IF sy-subrc IS NOT INITIAL.
CLEAR w_output-belnr_post.
ELSE.
w_output-belnr_post = w_post-belnr.
ENDIF.
APPEND w_output TO t_output.
ENDLOOP.
ENDLOOP.
ENDFORM. " PROCESS_DATA
*&---------------------------------------------------------------------*
*& Form CALL_ALV_OUTPUT
*&---------------------------------------------------------------------*
* text
*----------------------------------------------------------------------*
* --> p1 text
* <-- p2 text
*----------------------------------------------------------------------*
FORM process_output.
PERFORM build_fcat USING t_fcat.
PERFORM call_alv_output USING t_fcat w_layout t_filters t_output.
ENDFORM. " CALL_ALV_OUTPUT
*&---------------------------------------------------------------------*
*& Form build_fcat
*&---------------------------------------------------------------------*
* text
*----------------------------------------------------------------------*
* -->P_T_FCAT text
*----------------------------------------------------------------------*
FORM build_fcat USING p_t_fcat TYPE lvc_t_fcat.
REFRESH p_t_fcat.
DATA: w_fcat LIKE LINE OF p_t_fcat.
* perform fill_fcat_from_ddic using .
REFRESH p_t_fcat.
PERFORM get_fcat_dtel USING 'BUKRS' w_fcat. APPEND w_fcat TO p_t_fcat.
PERFORM get_fcat_dtel USING 'BELNR_D' w_fcat.
w_fcat-fieldname = 'BELNR'.
APPEND w_fcat TO p_t_fcat.
PERFORM get_fcat_dtel USING 'GJAHR' w_fcat. APPEND w_fcat TO p_t_fcat.
PERFORM get_fcat_dtel USING 'BUZEI' w_fcat. APPEND w_fcat TO p_t_fcat.
PERFORM get_fcat_dtel USING 'BLART' w_fcat. APPEND w_fcat TO p_t_fcat.
PERFORM get_fcat_dtel USING 'SHKZG' w_fcat. APPEND w_fcat TO p_t_fcat.
PERFORM get_fcat_dtel USING 'DMBTR' w_fcat. APPEND w_fcat TO p_t_fcat.
PERFORM get_fcat_dtel USING 'WAERS' w_fcat. APPEND w_fcat TO p_t_fcat.
PERFORM get_fcat_dtel USING 'SGTXT' w_fcat. APPEND w_fcat TO p_t_fcat.
PERFORM get_fcat_dtel USING 'DZUONR' w_fcat.
w_fcat-fieldname = 'ZUONR'.
APPEND w_fcat TO p_t_fcat.
PERFORM get_fcat_dtel USING 'KTOSL' w_fcat. APPEND w_fcat TO p_t_fcat.
PERFORM get_fcat_dtel USING 'MWSKZ' w_fcat. APPEND w_fcat TO p_t_fcat.
PERFORM get_fcat_dtel USING 'HKONT' w_fcat. APPEND w_fcat TO p_t_fcat.
PERFORM get_fcat_dtel USING 'HKONT' w_fcat.
w_fcat-fieldname = 'HKONT_POST'.
APPEND w_fcat TO p_t_fcat.
PERFORM get_fcat_dtel USING 'KOSTL' w_fcat. APPEND w_fcat TO p_t_fcat.
PERFORM get_fcat_dtel USING 'HKONT' w_fcat.
w_fcat-fieldname = 'HKONT_NEW'.
APPEND w_fcat TO p_t_fcat.
PERFORM get_fcat_dtel USING 'TXT20_SKAT' w_fcat.
w_fcat-fieldname = 'SGTXT_NEW'.
APPEND w_fcat TO p_t_fcat.
PERFORM get_fcat_dtel USING 'BELNR_D' w_fcat.
w_fcat-fieldname = 'BELNR_POST'.
APPEND w_fcat TO p_t_fcat.
PERFORM get_fcat_dtel USING 'XBLNR' w_fcat. APPEND w_fcat TO p_t_fcat.
ENDFORM. " BUILD_FCAT
*&---------------------------------------------------------------------*
*& Form get_fcat_dtel
*&---------------------------------------------------------------------*
* text
*----------------------------------------------------------------------*
* -->VALUE(P_DTEL) text
* -->P_W_FCAT text
*----------------------------------------------------------------------*
FORM get_fcat_dtel USING value(p_dtel)
p_w_fcat TYPE lvc_s_fcat.
CLEAR p_w_fcat.
* DATA: ref_cl_abap_elemdescr TYPE REF TO cl_abap_elemdescr,
* dd_x031l_table TYPE dd_x031l_table,
* x031l LIKE LINE OF dd_x031l_table.
* ref_cl_abap_elemdescr ?= cl_abap_typedescr=>describe_by_name( p_dtel ).
* dd_x031l_table = ref_cl_abap_elemdescr->get_ddic_object( ).
* READ TABLE dd_x031l_table INDEX 1 INTO x031l.
DATA: dd04v TYPE dd04v.
CALL FUNCTION 'DDIF_DTEL_GET'
EXPORTING
name = p_dtel
* STATE = 'A'
langu = sy-langu
IMPORTING
* GOTSTATE =
dd04v_wa = dd04v
* TPARA_WA =
EXCEPTIONS
illegal_input = 1
OTHERS = 2.
IF sy-subrc <> 0.
* MESSAGE ID SY-MSGID TYPE SY-MSGTY NUMBER SY-MSGNO
* WITH SY-MSGV1 SY-MSGV2 SY-MSGV3 SY-MSGV4.
ENDIF.
MOVE-CORRESPONDING dd04v TO p_w_fcat.
p_w_fcat-fieldname = p_dtel.
ENDFORM. " GET_FCAT_DTEL
*&---------------------------------------------------------------------*
*& Form CALL_ALV_OUTPUT
*&---------------------------------------------------------------------*
* text
*----------------------------------------------------------------------*
* -->P_T_FCAT text
* -->P_W_LAYOUT text
* -->P_T_FILTERS text
* -->P_ENDFORM text
*----------------------------------------------------------------------*
FORM call_alv_output USING
p_fcat TYPE lvc_t_fcat
p_layout TYPE lvc_s_layo
p_filters TYPE lvc_t_filt
p_dy_table TYPE data.
FIELD-SYMBOLS:
<dyn_table> TYPE STANDARD TABLE.
p_layout-box_fname = 'MARK'.
CALL FUNCTION 'REUSE_ALV_GRID_DISPLAY_LVC'
EXPORTING
* I_INTERFACE_CHECK = ' '
* I_BYPASSING_BUFFER =
* I_BUFFER_ACTIVE =
i_callback_program = sy-cprog
* I_CALLBACK_PF_STATUS_SET = ' '
i_callback_user_command = 'USER_COMMAND'
* I_CALLBACK_TOP_OF_PAGE = ' '
* I_CALLBACK_HTML_TOP_OF_PAGE = ' '
* I_CALLBACK_HTML_END_OF_LIST = ' '
* I_STRUCTURE_NAME =
* I_BACKGROUND_ID = ' '
* I_GRID_TITLE =
* I_GRID_SETTINGS =
is_layout_lvc = p_layout
it_fieldcat_lvc = p_fcat
* IT_EXCLUDING =
* IT_SPECIAL_GROUPS_LVC =
* IT_SORT_LVC =
it_filter_lvc = p_filters
* IT_HYPERLINK =
* IS_SEL_HIDE =
* I_DEFAULT = 'X'
* I_SAVE = ' '
* IS_VARIANT =
* IT_EVENTS =
* IT_EVENT_EXIT =
* IS_PRINT_LVC =
* IS_REPREP_ID_LVC =
* I_SCREEN_START_COLUMN = 0
* I_SCREEN_START_LINE = 0
* I_SCREEN_END_COLUMN = 0
* I_SCREEN_END_LINE = 0
* I_HTML_HEIGHT_TOP =
* I_HTML_HEIGHT_END =
* IT_ALV_GRAPHICS =
* IT_EXCEPT_QINFO_LVC =
* IR_SALV_FULLSCREEN_ADAPTER =
* IMPORTING
* E_EXIT_CAUSED_BY_CALLER =
* ES_EXIT_CAUSED_BY_USER =
TABLES
t_outtab = t_output
* EXCEPTIONS
* PROGRAM_ERROR = 1
* OTHERS = 2
.
IF sy-subrc <> 0.
* MESSAGE ID SY-MSGID TYPE SY-MSGTY NUMBER SY-MSGNO
* WITH SY-MSGV1 SY-MSGV2 SY-MSGV3 SY-MSGV4.
ENDIF.
ENDFORM. " CALL_ALV_OUTPUT
*&---------------------------------------------------------------------*
*& Form user_command
*&---------------------------------------------------------------------*
* text
*----------------------------------------------------------------------*
* -->R_UCOMM text
* -->RS_SELFIELD text
*----------------------------------------------------------------------*
FORM user_command USING r_ucomm LIKE sy-ucomm
rs_selfield TYPE slis_selfield.
IF r_ucomm = 'POST'.
PERFORM process_post.
ENDIF.
ENDFORM. "user_command
*&---------------------------------------------------------------------*
*& Form post_documents
*&---------------------------------------------------------------------*
* text
*----------------------------------------------------------------------*
FORM process_post.
DATA: w_output LIKE LINE OF t_output.
DATA: header TYPE bapiache09,
accountgl TYPE TABLE OF bapiacgl09,
accountar TYPE TABLE OF bapiacar09,
accountcr TYPE TABLE OF bapiaccr09,
document TYPE awkey,
return TYPE TABLE OF bapiret2,
w_bktxt TYPE bktxt.
LOOP AT t_output INTO w_output.
CHECK w_output-mark IS NOT INITIAL.
CHECK w_output-belnr_post IS INITIAL.
CHECK w_output-hkont_new IS NOT INITIAL.
CONCATENATE w_output-bukrs '-' w_output-gjahr
'-' w_output-belnr '-' w_output-buzei
INTO w_bktxt.
CLEAR: header, accountgl[], accountar[], accountcr[].
PERFORM post_header
USING header w_output-bukrs p_budat p_budat w_bktxt w_output-xblnr.
PERFORM post_accountgl TABLES accountgl
USING w_output-hkont w_output-hkont_new w_output-zuonr w_output-kostl.
PERFORM post_accountcr TABLES accountcr
USING w_output-dmbtr w_output-waers w_output-shkzg.
CALL FUNCTION 'BAPI_ACC_DOCUMENT_POST'
EXPORTING
documentheader = header
IMPORTING
obj_key = document
TABLES
accountgl = accountgl
accountreceivable = accountar
currencyamount = accountcr
return = return.
READ TABLE return WITH KEY type = 'E' TRANSPORTING NO FIELDS.
IF sy-subrc IS INITIAL.
CALL FUNCTION 'BAPI_TRANSACTION_ROLLBACK'.
ELSE.
CALL FUNCTION 'BAPI_TRANSACTION_COMMIT'
EXPORTING
wait = 'X'.
* belnr = document+0(10).
* gjahr = document+14(4).
ENDIF.
ENDLOOP.
ENDFORM. "post_documents
*&---------------------------------------------------------------------*
*& Form post_header
*&---------------------------------------------------------------------*
* text
*----------------------------------------------------------------------*
* -->P_HEADER text
* -->P_BUKRS text
* -->P_BUDAT text
* -->P_BLDAT text
* -->P_XBLNR text
* -->P_TEXT text
*----------------------------------------------------------------------*
FORM post_header USING p_header TYPE bapiache09
p_bukrs p_budat p_bldat p_text p_xblnr.
CLEAR p_header.
p_header-username = sy-uname.
p_header-header_txt = p_text.
p_header-comp_code = p_bukrs.
p_header-doc_date = p_bldat.
p_header-pstng_date = p_budat.
p_header-doc_type = 'SA'.
p_header-ref_doc_no = p_xblnr.
ENDFORM. " POST_DR_FILL_HEADER
*&---------------------------------------------------------------------*
*& Form POST_ACCOUNTGL
*&---------------------------------------------------------------------*
* text
*----------------------------------------------------------------------*
* -->P_ACCOUNTGL text
* -->P_W_OUTPUT_HKONT text
* -->P_W_OUTPUT_HKONT_NEW text
* -->P_W_OUTPUT_ZUONR text
*----------------------------------------------------------------------*
FORM post_accountgl TABLES p_accountgl STRUCTURE bapiacgl09
"Introduzir nome correto para <...>
USING p_w_output_hkont
p_w_output_hkont_new
p_w_output_zuonr
p_w_output_kostl.
CLEAR p_accountgl.
p_accountgl-itemno_acc = 1.
p_accountgl-gl_account = p_w_output_hkont.
p_accountgl-costcenter = p_w_output_kostl.
p_accountgl-alloc_nmbr = p_w_output_zuonr.
APPEND p_accountgl.
CLEAR p_accountgl.
p_accountgl-itemno_acc = 2.
p_accountgl-gl_account = p_w_output_hkont_new.
p_accountgl-costcenter = p_w_output_kostl.
p_accountgl-alloc_nmbr = p_w_output_zuonr.
APPEND p_accountgl.
ENDFORM. " POST_ACCOUNTGL
*&---------------------------------------------------------------------*
*& Form POST_ACCOUNTCR
*&---------------------------------------------------------------------*
* text
*----------------------------------------------------------------------*
* -->P_ACCOUNTCR text
* -->P_W_OUTPUT_DMBTR text
* -->P_W_OUTPUT_WAERS text
*----------------------------------------------------------------------*
FORM post_accountcr TABLES p_currencyamount STRUCTURE bapiaccr09
"Introduzir nome correto para <...>
USING p_w_output_dmbtr
p_w_output_waers
p_w_output_shkzg.
p_currencyamount-itemno_acc = 1.
p_currencyamount-currency = p_w_output_waers.
IF p_w_output_shkzg = 'H'.
p_currencyamount-amt_doccur = p_w_output_dmbtr.
ELSE.
p_currencyamount-amt_doccur = p_w_output_dmbtr * -1.
ENDIF.
APPEND p_currencyamount.
p_currencyamount-itemno_acc = 2.
p_currencyamount-currency = p_w_output_waers.
IF p_w_output_shkzg = 'H'.
p_currencyamount-amt_doccur = p_w_output_dmbtr * -1.
ELSE.
p_currencyamount-amt_doccur = p_w_output_dmbtr.
ENDIF.
APPEND p_currencyamount.
ENDFORM. " POST_ACCOUNTCR