Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- *&---------------------------------------------------------------------*
- *& Report Z_VIP_REPOSTING
- *&
- *&---------------------------------------------------------------------*
- *&
- *&
- *&---------------------------------------------------------------------*
- REPORT Z_VIP_REPOSTING.
- PARAMETERS p_test TYPE testflag DEFAULT 'X'.
- DATA lv_doc_nr TYPE belnr.
- PARAMETERS p_code TYPE bukrs OBLIGATORY.
- PARAMETERS p_fi_yr TYPE GJAHR OBLIGATORY.
- SELECT-OPTIONS s_doc_nr FOR lv_doc_nr.
- DATA wa_bkpf TYPE bkpf.
- DATA wa_doc_nr LIKE LINE OF s_doc_nr.
- DATA wa_bseg1 TYPE bseg.
- DATA wa_bseg2 TYPE bseg.
- DATA it_acc_pay TYPE STANDARD TABLE OF BAPIACAP09.
- DATA wa_acc_pay TYPE BAPIACAP09.
- DATA wa_kna1 TYPE kna1.
- DATA wa_lfa1 TYPE lfa1.
- DATA wa_reversal TYPE BAPIACREV.
- DATA lv_bus_act TYPE BAPIACHE09-BUS_ACT.
- DATA: it_return_rev TYPE STANDARD TABLE OF bapiret2,
- wa_return_rev TYPE bapiret2.
- DATA it_acc_rec TYPE STANDARD TABLE OF bapiacar09.
- DATA wa_acc_rec TYPE bapiacar09.
- DATA wa_header TYPE bapiache09.
- DATA it_rev_acc TYPE STANDARD TABLE OF bapiacgl09.
- DATA wa_rev_acc TYPE bapiacgl09.
- DATA: it_curr_amount TYPE STANDARD TABLE OF bapiaccr09,
- wa_curr_amount TYPE bapiaccr09.
- DATA: it_return TYPE STANDARD TABLE OF bapiret2,
- wa_return TYPE bapiret2.
- START-OF-SELECTION.
- LOOP AT s_doc_nr INTO wa_doc_nr.
- CLEAR: wa_header, wa_bseg1, wa_bseg2, wa_acc_pay, it_acc_pay, wa_rev_acc, it_rev_acc, wa_curr_amount, it_curr_amount, it_return, wa_return, wa_reversal, it_return_rev, wa_return_rev.
- SELECT SINGLE *
- FROM bkpf
- into wa_bkpf
- WHERE bukrs = p_code and belnr = wa_doc_nr-low and gjahr = p_fi_yr.
- "mandt = sy-mandt and
- "ENDSELECT.
- IF sy-subrc = 0.
- SELECT SINGLE *
- FROM bseg
- INTO wa_bseg1
- WHERE bukrs = p_code and belnr = wa_doc_nr-low and gjahr = p_fi_yr and buzei = '001'.
- IF wa_bseg1-bschl = '01' OR wa_bseg1-bschl = '11'. "customer
- SELECT SINGLE *
- FROM bseg
- INTO wa_bseg2
- WHERE bukrs = p_code and belnr = wa_doc_nr-low and gjahr = p_fi_yr and buzei = '002'.
- IF wa_bseg2-hkont = '0004630001'.
- "header
- wa_header-username = wa_bkpf-usnam.
- wa_header-comp_code = wa_bkpf-bukrs.
- wa_header-doc_date = wa_bkpf-bldat.
- wa_header-pstng_date = wa_bkpf-budat. "doznaj posle
- "wa_header-doc_type = wa_bkpf-blart.
- wa_header-doc_type = 'AC'.
- wa_header-ref_doc_no = wa_bkpf-xblnr.
- SELECT SINGLE *
- FROM kna1
- INTO wa_kna1
- WHERE kunnr = wa_bseg1-kunnr.
- "vendor
- wa_acc_pay-itemno_acc = '0000000001'.
- wa_acc_pay-vendor_no = wa_kna1-lifnr.
- wa_acc_pay-comp_code = wa_bseg1-bukrs.
- wa_acc_pay-tax_code = wa_bseg1-mwskz.
- wa_acc_pay-alloc_nmbr = wa_bseg1-zuonr.
- wa_acc_pay-item_text = wa_bseg1-sgtxt.
- wa_acc_pay-bline_date = wa_bseg1-zfbdt.
- wa_acc_pay-PMNTTRMS = wa_bseg1-zterm.
- APPEND wa_acc_pay TO it_acc_pay.
- "discount
- wa_rev_acc-itemno_acc = '0000000002'.
- wa_rev_acc-gl_account = '0004630001'.
- "wa_rev_acc-doc_type = 'AC'.
- wa_rev_acc-comp_code = wa_bseg2-bukrs.
- wa_rev_acc-tax_code = wa_bseg2-mwskz.
- wa_rev_acc-costcenter = wa_bseg2-KOSTL.
- wa_rev_acc-TR_PART_BA = wa_bseg2-pargb.
- wa_rev_acc-ORDERID = wa_bseg2-aufnr.
- wa_rev_acc-alloc_nmbr = wa_bseg2-ZUONR.
- wa_rev_acc-item_text = wa_bseg2-sgtxt.
- APPEND wa_rev_acc TO it_rev_acc.
- "vendor currency items
- wa_curr_amount-itemno_acc = '0000000001'.
- wa_curr_amount-curr_type = '00'.
- "wa_curr_amount-currency = 'EUR'.
- "wa_curr_amount-currency_iso = 'EUR'.
- wa_curr_amount-currency = wa_bkpf-waers.
- wa_curr_amount-currency_iso = wa_bkpf-waers.
- wa_curr_amount-amt_doccur = wa_bseg1-WRBTR.
- APPEND wa_curr_amount TO it_curr_amount.
- CLEAR wa_curr_amount.
- "discount currency items
- wa_curr_amount-itemno_acc = '0000000002'.
- wa_curr_amount-curr_type = '00'.
- "wa_curr_amount-currency = 'EUR'.
- "wa_curr_amount-currency_iso = 'EUR'.
- wa_curr_amount-currency = wa_bkpf-waers.
- wa_curr_amount-currency_iso = wa_bkpf-waers.
- wa_curr_amount-amt_doccur = wa_bseg2-WRBTR.
- APPEND wa_curr_amount TO it_curr_amount.
- CLEAR wa_curr_amount.
- IF p_test = ''.
- CALL FUNCTION 'BAPI_ACC_DOCUMENT_POST'
- EXPORTING
- DOCUMENTHEADER = wa_header
- * CUSTOMERCPD =
- * CONTRACTHEADER =
- * IMPORTING
- * OBJ_TYPE =
- * OBJ_KEY =
- * OBJ_SYS =
- TABLES
- ACCOUNTGL = it_rev_acc
- * ACCOUNTRECEIVABLE =
- ACCOUNTPAYABLE = it_acc_pay
- * ACCOUNTTAX =
- CURRENCYAMOUNT = it_curr_amount
- * CRITERIA =
- * VALUEFIELD =
- * EXTENSION1 =
- RETURN = it_return
- * PAYMENTCARD =
- * CONTRACTITEM =
- * EXTENSION2 =
- * REALESTATE =
- * ACCOUNTWT =
- .
- wa_reversal-obj_type = wa_bkpf-awtyp.
- wa_reversal-obj_key = wa_bkpf-awkey.
- wa_reversal-obj_sys = wa_bkpf-awsys.
- wa_reversal-obj_key_r = wa_bkpf-awtyp.
- lv_bus_act = wa_bkpf-glvor.
- CALL FUNCTION 'BAPI_ACC_DOCUMENT_REV_POST'
- EXPORTING
- REVERSAL = wa_reversal
- BUS_ACT = lv_bus_act
- * IMPORTING
- * OBJ_TYPE =
- * OBJ_KEY =
- * OBJ_SYS =
- TABLES
- RETURN = it_return_rev
- .
- else.
- CALL FUNCTION 'BAPI_ACC_DOCUMENT_CHECK'
- EXPORTING
- DOCUMENTHEADER = wa_header
- * CUSTOMERCPD =
- * CONTRACTHEADER =
- TABLES
- ACCOUNTGL = it_rev_acc
- * ACCOUNTRECEIVABLE =
- ACCOUNTPAYABLE = it_acc_pay
- * ACCOUNTTAX =
- CURRENCYAMOUNT = it_curr_amount
- * CRITERIA =
- * VALUEFIELD =
- * EXTENSION1 =
- RETURN = it_return
- * PAYMENTCARD =
- * CONTRACTITEM =
- * EXTENSION2 =
- * REALESTATE =
- * ACCOUNTWT =
- .
- ENDIF.
- ENDIF.
- ELSEIF wa_bseg1-bschl = '31' OR wa_bseg1-bschl = '21'. "vendor
- SELECT SINGLE *
- FROM bseg
- INTO wa_bseg2
- WHERE bukrs = p_code and belnr = wa_doc_nr-low and gjahr = p_fi_yr and buzei = '002'.
- IF wa_bseg2-hkont = '0008270001'.
- "header
- wa_header-username = wa_bkpf-usnam.
- wa_header-comp_code = wa_bkpf-bukrs.
- wa_header-doc_date = wa_bkpf-bldat.
- wa_header-pstng_date = wa_bkpf-budat. "doznaj posle
- "wa_header-doc_type = wa_bkpf-blart.
- wa_header-doc_type = 'AC'.
- wa_header-ref_doc_no = wa_bkpf-xblnr.
- SELECT SINGLE *
- FROM lfa1
- INTO wa_lfa1
- WHERE lifnr = wa_bseg1-lifnr.
- "customer
- wa_acc_rec-itemno_acc = '0000000001'.
- wa_acc_rec-customer = wa_lfa1-kunnr.
- wa_acc_rec-comp_code = wa_bseg1-bukrs.
- wa_acc_rec-tax_code = wa_bseg1-mwskz.
- wa_acc_rec-alloc_nmbr = wa_bseg1-zuonr.
- wa_acc_rec-item_text = wa_bseg1-sgtxt.
- wa_acc_rec-bline_date = wa_bseg1-zfbdt.
- wa_acc_rec-PMNTTRMS = wa_bseg1-zterm.
- APPEND wa_acc_rec TO it_acc_rec.
- "discount
- wa_rev_acc-itemno_acc = '0000000002'.
- wa_rev_acc-gl_account = '0008270001'.
- "wa_rev_acc-doc_type = 'AC'.
- wa_rev_acc-comp_code = wa_bseg2-bukrs.
- wa_rev_acc-tax_code = wa_bseg2-mwskz.
- wa_rev_acc-costcenter = wa_bseg2-KOSTL.
- wa_rev_acc-TR_PART_BA = wa_bseg2-pargb.
- wa_rev_acc-ORDERID = wa_bseg2-aufnr.
- wa_rev_acc-alloc_nmbr = wa_bseg2-ZUONR.
- wa_rev_acc-item_text = wa_bseg2-sgtxt.
- APPEND wa_rev_acc TO it_rev_acc.
- "customer currency items
- wa_curr_amount-itemno_acc = '0000000001'.
- wa_curr_amount-curr_type = '00'.
- "wa_curr_amount-currency = 'EUR'.
- "wa_curr_amount-currency_iso = 'EUR'.
- wa_curr_amount-currency = wa_bkpf-waers.
- wa_curr_amount-currency_iso = wa_bkpf-waers.
- wa_curr_amount-amt_doccur = wa_bseg1-WRBTR.
- APPEND wa_curr_amount TO it_curr_amount.
- CLEAR wa_curr_amount.
- "discount currency items
- wa_curr_amount-itemno_acc = '0000000002'.
- wa_curr_amount-curr_type = '00'.
- "wa_curr_amount-currency = 'EUR'.
- "wa_curr_amount-currency_iso = 'EUR'.
- wa_curr_amount-currency = wa_bkpf-waers.
- wa_curr_amount-currency_iso = wa_bkpf-waers.
- wa_curr_amount-amt_doccur = wa_bseg2-WRBTR.
- APPEND wa_curr_amount TO it_curr_amount.
- CLEAR wa_curr_amount.
- IF p_test = ''.
- CALL FUNCTION 'BAPI_ACC_DOCUMENT_POST'
- EXPORTING
- DOCUMENTHEADER = wa_header
- * CUSTOMERCPD =
- * CONTRACTHEADER =
- * IMPORTING
- * OBJ_TYPE =
- * OBJ_KEY =
- * OBJ_SYS =
- TABLES
- ACCOUNTGL = it_rev_acc
- ACCOUNTRECEIVABLE = it_acc_rec
- * ACCOUNTPAYABLE =
- * ACCOUNTTAX =
- CURRENCYAMOUNT = it_curr_amount
- * CRITERIA =
- * VALUEFIELD =
- * EXTENSION1 =
- RETURN = it_return
- * PAYMENTCARD =
- * CONTRACTITEM =
- * EXTENSION2 =
- * REALESTATE =
- * ACCOUNTWT =
- .
- wa_reversal-obj_type = wa_bkpf-awtyp.
- wa_reversal-obj_key = wa_bkpf-awkey.
- wa_reversal-obj_sys = wa_bkpf-awsys.
- wa_reversal-obj_key_r = wa_bkpf-awtyp.
- lv_bus_act = wa_bkpf-glvor.
- CALL FUNCTION 'BAPI_ACC_DOCUMENT_REV_POST'
- EXPORTING
- REVERSAL = wa_reversal
- BUS_ACT = lv_bus_act
- * IMPORTING
- * OBJ_TYPE =
- * OBJ_KEY =
- * OBJ_SYS =
- TABLES
- RETURN = it_return_rev
- .
- else.
- CALL FUNCTION 'BAPI_ACC_DOCUMENT_CHECK'
- EXPORTING
- DOCUMENTHEADER = wa_header
- * CUSTOMERCPD =
- * CONTRACTHEADER =
- TABLES
- ACCOUNTGL = it_rev_acc
- ACCOUNTRECEIVABLE = it_acc_rec
- * ACCOUNTPAYABLE =
- * ACCOUNTTAX =
- CURRENCYAMOUNT = it_curr_amount
- * CRITERIA =
- * VALUEFIELD =
- * EXTENSION1 =
- RETURN = it_return
- * PAYMENTCARD =
- * CONTRACTITEM =
- * EXTENSION2 =
- * REALESTATE =
- * ACCOUNTWT =
- .
- ENDIF.
- ENDIF.
- ENDIF.
- ELSE.
- CONTINUE.
- ENDIF.
- LOOP AT it_return INTO wa_return.
- WRITE:/ wa_return-message.
- ENDLOOP.
- ENDLOOP.
- CALL FUNCTION 'BAPI_TRANSACTION_COMMIT'
- EXPORTING
- WAIT = 'X'
- * IMPORTING
- * RETURN =
- .
- end-of-SELECTION.
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement