Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- *&---------------------------------------------------------------------*
- *& Include ZSD_IN_BCDTBHCT_FO1
- *&---------------------------------------------------------------------*
- FORM INIT.
- SET PARAMETER ID 'VL' FIELD 'S_VBELN-LOW'.
- SET PARAMETER ID 'VL' FIELD 'S_VBELN-HIGH'.
- ENDFORM.
- FORM FILL_DATA.
- TYPES: BEGIN OF LTY_LIKP,
- VBELN TYPE LIKP-VBELN,
- END OF LTY_LIKP.
- DATA: LT_VBELN TYPE TABLE OF LTY_LIKP,
- LS_VBELN TYPE LTY_LIKP,
- LR_VBELN TYPE RANGE OF VBELN WITH HEADER LINE,
- WA_VBELN LIKE LINE OF LR_VBELN..
- SELECT
- VBRK~BUKRS "Companycode
- VBRP~ARKTX "TÊN THÀNH PHẨM
- VBRK~VTWEG "Distribution Channel
- VBRK~VBELN "Billing Document
- VBRK~FKDAT "Billing Date
- VBRK~WAERK "Currency
- VBRK~KTGRD "Customer Account Assignment Group
- VBRP~AUBEL "Số đơn hàng (SAP)/ Sales Document
- VBRP~MATNR "MÃ THÀNH PHẨM
- * VBRP~ARKTX "TÊN THÀNH PHẨM
- VBRP~PRODH "PHÂN NHÓM SẢN PHẨM THEO PRODUCT
- VBRP~WERKS "PLANT
- VBRP~VBELV "Sales Order Type
- * VBRK~FKDAT "MONTH
- VBRK~INCO2 "Destination
- VBRK~INCO1 "INCOTERM1
- VBRK~ZTERM "Term of Payment
- VBRP~FKIMG "Cartons
- VBRP~VRKME "Quantity Unit of Measure
- VBRP~NETWR "Net Value
- VBRP~FKLMG "Quanity
- VBRK~VKORG "Sales Organization Name
- VBRP~VTWEG_AUFT "Distribution Channel Name
- VBRP~SPART "Division
- VBRP~VKBUR "Sales Office
- VBRP~VKGRP "Sales Group
- VBRP~BZIRK_AUFT "Sales District
- VBRK~KDGRP "Customer Group
- VBRK~STWAE "Statistics currency
- VBRP~VGBEL "Outbound Delivery
- VBRK~KUNRG "FI Document
- VBRK~SFAKN "Cancel Bill. Doc
- VBRK~FKSTO "Cancel Status
- VBRK~FKART "Billing Type
- VBRP~MEINS
- VBRP~POSNR
- VBRK~KURRF
- VBRK~KNUMV
- * VBRK~KTGRD "Customer Account Assignment Group
- VBRP~SHKZG "Return
- VBRP~LGORT "SLOC
- VBRP~ERZET
- VBRP~ERDAT
- VBRK~ERNAM
- VTTP~TKNUM
- * VBRK~VTWEG
- VBRP~WAVWR
- VBRP~MWSBP
- VBRP~VGPOS
- LIKP~WADAT_IST
- VBRP~AUPOS
- VBRP~POSNV
- VBRP~CHARG "So lo Batch
- VBRP~REGIO_AUFT "region
- VBRP~PRCTR
- VBRP~UMVKN
- VBRP~UMVKZ
- LIKP~LFART
- VBRK~XBLNR AS XBLNR1
- VBRP~KZWI2
- * vbrp~PRODH
- INTO TABLE GT_BCDT
- FROM VBRP INNER JOIN VBRK ON VBRK~VBELN = VBRP~VBELN
- LEFT JOIN LIKP ON LIKP~VBELN = VBRP~VGBEL
- LEFT JOIN VTTP ON VTTP~VBELN = VBRP~VGBEL
- WHERE VBRK~VKORG IN S_VKORG
- AND VBRK~VTWEG IN S_VTWEG
- AND VBRK~FKART IN S_FKART
- AND VBRP~VKBUR IN S_VKBUR
- AND VBRP~VKGRP IN S_VKGRP
- * AND VBRK~KDGRP IN S_KDGRP
- AND VBRK~FKDAT IN S_FKDAT
- AND VBRP~VBELN IN S_VBELN
- AND VBRP~AUBEL IN S_VBELN2
- AND VBRP~VGBEL IN S_VGBEL
- AND VBRK~KUNRG IN S_KUNNR
- AND VBRP~MATNR IN S_MATNR
- * AND VBRK~KTGRD IN S_KTGRD
- AND VBRK~WAERK IN S_WAERK
- * AND VBRP~WERKS IN S_WERKS
- * AND VBRP~LGORT IN S_LGORT
- * AND VBRK~BUKRS IN S_BUKRS
- AND VBRK~VBTYP <> 'U'.
- IF S_WADAT IS NOT INITIAL.
- SELECT VBELN
- INTO TABLE LT_VBELN
- FROM LIKP
- WHERE WADAT_IST IN S_WADAT.
- * AND LFART IN ( 'ZPR0', 'ZPR1', 'ZPR2', 'ZPR3', 'ZPR5', 'ZR10', 'ZRE1' ).
- LOOP AT LT_VBELN INTO LS_VBELN.
- WA_VBELN-OPTION = 'EQ'.
- WA_VBELN-SIGN = 'I'.
- WA_VBELN-LOW = LS_VBELN-VBELN.
- APPEND WA_VBELN TO LR_VBELN.
- ENDLOOP.
- DELETE GT_BCDT WHERE VBELN NOT IN LR_VBELN.
- ENDIF.
- LOOP AT GT_BCDT INTO GS_BCDT.
- AUTHORITY-CHECK OBJECT 'V_VBRK_VKO'
- ID 'ACTVT' FIELD '03'
- ID 'VKORG' FIELD GS_BCDT-VKORG.
- IF SY-SUBRC <> 0.
- DELETE GT_BCDT WHERE VBELN = GS_BCDT-VBELN.
- CONTINUE.
- ENDIF.
- GS_BCDT-POPER = GS_BCDT-FKDAT+4(2).
- GS_BCDT-BDATJ = GS_BCDT-FKDAT(4).
- MODIFY GT_BCDT FROM GS_BCDT.
- IF GS_BCDT-BUKRS NE GS_BCDT-WERKS AND GS_BCDT-WAVWR = 0.
- APPEND GS_BCDT TO GT_BCDT2.
- ENDIF.
- GS_BCDT-XBLNR = GS_BCDT-VGBEL.
- APPEND GS_BCDT TO GT_BCDT3.
- ENDLOOP.
- IF GT_BCDT[] IS NOT INITIAL.
- GT_BCDT_TEMP[] = GT_BCDT[].
- GT_BCDT_TEMP2[] = GT_BCDT2[].
- SELECT
- PVPRS
- BWTAR
- CKMLCR~BDATJ
- CKMLCR~POPER
- MATNR
- VBELN
- BWKEY
- FROM CKMLCR
- INNER JOIN CKMLHD ON CKMLHD~KALNR = CKMLCR~KALNR
- INTO TABLE GT_GIATT
- FOR ALL ENTRIES IN GT_BCDT
- WHERE MATNR = GT_BCDT-MATNR AND
- BWKEY = GT_BCDT-WERKS AND
- CKMLCR~BDATJ = GT_BCDT-BDATJ AND
- CKMLCR~POPER = GT_BCDT-POPER.
- " Update Lay description cho sales org
- SELECT
- VKORG
- VTEXT
- INTO TABLE GT_TVKOT
- FROM TVKOT
- * FOR ALL ENTRIES IN GT_BCDT
- * WHERE VKORG = GT_BCDT-VKORG AND
- WHERE SPRAS = SY-LANGU.
- SORT GT_TVKOT BY VKORG.
- SORT GT_BCDT_TEMP BY VKORG.
- LOOP AT GT_TVKOT.
- READ TABLE GT_BCDT_TEMP WITH KEY VKORG = GT_TVKOT-VKORG BINARY SEARCH TRANSPORTING NO FIELDS.
- IF SY-SUBRC <> 0.
- DELETE TABLE GT_TVKOT.
- ENDIF.
- ENDLOOP.
- "PO number change sangvt3 2/12/2015
- SELECT VBELN POSNR VGBEL VGPOS
- FROM LIPS
- INTO TABLE GT_LIPS3.
- * FOR ALL ENTRIES IN GT_BCDT
- * WHERE VBELN = GT_BCDT-VGBEL AND POSNR = GT_BCDT-VGPOS.
- SORT GT_BCDT_TEMP BY VGBEL VGPOS.
- LOOP AT GT_LIPS3 INTO GS_LIPS3.
- READ TABLE GT_BCDT_TEMP WITH KEY VGBEL = GS_LIPS3-VBELN
- VGPOS = GS_LIPS3-POSNR BINARY SEARCH TRANSPORTING NO FIELDS.
- IF SY-SUBRC <> 0.
- DELETE TABLE GT_LIPS3 FROM GS_LIPS3.
- ENDIF.
- ENDLOOP.
- "FILL DATA IT VTTK
- SELECT DAREG DATBG DPREG DPTBG ERNAM TEXT1 TKNUM EXTI1 TNDR_TRKID SIGNI
- FROM VTTK
- INTO TABLE GT_VTTK.
- * FOR ALL ENTRIES IN GT_BCDT
- * WHERE TKNUM = GT_BCDT-TKNUM.
- SORT GT_BCDT_TEMP BY TKNUM.
- LOOP AT GT_VTTK.
- READ TABLE GT_BCDT_TEMP WITH KEY TKNUM = GT_VTTK-TKNUM BINARY SEARCH TRANSPORTING NO FIELDS.
- IF SY-SUBRC <> 0.
- DELETE TABLE GT_VTTK.
- ENDIF.
- ENDLOOP.
- IF GT_BCDT2[] IS NOT INITIAL.
- SELECT VGBEL VGPOS VBRP~VBELN VBRP~NETWR VBRK~FKSTO SFAKN
- FROM VBRP
- INNER JOIN VBRK ON VBRP~VBELN = VBRK~VBELN
- INTO TABLE GT_VBRP2.
- SORT GT_BCDT_TEMP2 BY VBELN.
- LOOP AT GT_VBRP2.
- READ TABLE GT_BCDT_TEMP2 INTO GS_BCDT WITH KEY VBELN = GT_VBRP2-VBELN BINARY SEARCH TRANSPORTING NO FIELDS.
- IF SY-SUBRC = 0.
- DELETE GT_VBRP2.
- ENDIF.
- ENDLOOP.
- SORT GT_BCDT_TEMP2 BY VGBEL VGPOS.
- LOOP AT GT_VBRP2.
- READ TABLE GT_BCDT_TEMP2 INTO GS_BCDT WITH KEY VGBEL = GT_VBRP2-VGBEL VGPOS = GT_VBRP2-VGPOS BINARY SEARCH TRANSPORTING NO FIELDS.
- IF SY-SUBRC <> 0.
- DELETE GT_VBRP2.
- ENDIF.
- ENDLOOP.
- DELETE GT_VBRP2[] WHERE FKSTO = 'X' OR SFAKN IS NOT INITIAL.
- ENDIF.
- " PERFORMANCE.
- IF GT_BCDT3[] IS NOT INITIAL.
- SORT GT_BCDT3 BY XBLNR.
- DELETE ADJACENT DUPLICATES FROM GT_BCDT3 COMPARING XBLNR.
- SELECT MBLNR
- MJAHR
- XBLNR
- FROM MKPF
- INTO TABLE GT_MKPF
- FOR ALL ENTRIES IN GT_BCDT3
- WHERE XBLNR = GT_BCDT3-XBLNR.
- GT_MKPF_TEMP[] = GT_MKPF[].
- SORT GT_MKPF_TEMP BY MBLNR MJAHR.
- IF GT_MKPF[] IS NOT INITIAL.
- SELECT MBLNR MJAHR ZEILE DMBTR SMBLN SMBLP BUKRS VBELN_IM VBELP_IM
- FROM MSEG
- INTO TABLE GT_MSEG.
- * FOR ALL ENTRIES IN GT_MKPF
- * WHERE MBLNR = GT_MKPF-MBLNR AND MJAHR = GT_MKPF-MJAHR.
- "LOAI BO MAT.DOC REVERSE
- LOOP AT GT_MSEG.
- READ TABLE GT_MKPF_TEMP WITH KEY MBLNR = GT_MSEG-MBLNR
- MJAHR = GT_MSEG-MJAHR BINARY SEARCH.
- IF SY-SUBRC <> 0.
- DELETE GT_MSEG.
- CONTINUE.
- ENDIF.
- IF GT_MSEG-SMBLN IS NOT INITIAL.
- APPEND GT_MSEG TO GT_MSEG2[].
- ENDIF.
- ENDLOOP.
- DELETE GT_MSEG WHERE SMBLN IS NOT INITIAL.
- LOOP AT GT_MSEG2.
- DELETE GT_MSEG WHERE MBLNR = GT_MSEG2-SMBLN AND ZEILE = GT_MSEG2-SMBLP.
- ENDLOOP.
- SORT GT_MSEG BY VBELN_IM VBELP_IM.
- ENDIF.
- "LAY ITEM HIGH LEVEL
- SELECT VBELN POSNR VGPOS POSNV VBELV UECHA LGMNG
- FROM LIPS
- INTO TABLE GT_LIPS
- FOR ALL ENTRIES IN GT_BCDT
- WHERE VBELN = GT_BCDT-VGBEL AND POSNV = GT_BCDT-POSNV.
- DELETE GT_LIPS WHERE LGMNG = 0.
- ENDIF.
- "Fill data IT TVFKT
- SELECT VTEXT
- FKART
- FROM TVFKT
- INTO TABLE GT_TVFKT
- * FOR ALL ENTRIES IN GT_BCDT
- WHERE SPRAS = SY-LANGU. "AND FKART = GT_BCDT-FKART.
- SORT GT_BCDT_TEMP BY FKART.
- LOOP AT GT_TVFKT.
- READ TABLE GT_BCDT_TEMP WITH KEY FKART = GT_TVFKT-FKART BINARY SEARCH TRANSPORTING NO FIELDS.
- IF SY-SUBRC <> 0.
- DELETE TABLE GT_TVFKT.
- ENDIF.
- ENDLOOP.
- * "FILL DATA IT STXH.
- * SELECT TDOBJECT
- * TDNAME
- * TDSPRAS
- * TDID
- * INTO TABLE LT_STXH
- * FROM STXH.
- "FILL DATA IT VBPA
- SELECT VBPA~VBELN ADRNR PARVW PERNR KUNNR
- FROM VBPA
- INNER JOIN VBRK ON VBPA~VBELN = VBRK~VBELN
- INTO TABLE GT_VBPA.
- * FOR ALL ENTRIES IN GT_BCDT
- * WHERE VBRK~VBELN = GT_BCDT-VBELN.
- SORT GT_VBPA BY VBELN.
- SORT GT_BCDT_TEMP BY VBELN.
- LOOP AT GT_VBPA.
- READ TABLE GT_BCDT_TEMP WITH KEY VBELN = GT_VBPA-VBELN BINARY SEARCH TRANSPORTING NO FIELDS.
- IF SY-SUBRC <> 0.
- DELETE TABLE GT_VBPA.
- ENDIF.
- ENDLOOP.
- CLEAR: GS_VBPA_FINAL.
- IF GT_VBPA[] IS NOT INITIAL.
- "FILL DATA IT ADRC
- SELECT NAME1 NAME2 NAME3 NAME4 ADDRNUMBER
- FROM ADRC
- INTO TABLE GT_ADRC.
- * FOR ALL ENTRIES IN GT_VBPA
- * WHERE ADDRNUMBER = GT_VBPA-ADRNR.
- SORT GT_ADRC BY ADDRNUMBER.
- GT_VBPA_TEMP[] = GT_VBPA[].
- SORT GT_VBPA_TEMP BY ADRNR.
- LOOP AT GT_ADRC.
- READ TABLE GT_VBPA_TEMP WITH KEY ADRNR = GT_ADRC-ADDRNUMBER BINARY SEARCH TRANSPORTING NO FIELDS.
- IF SY-SUBRC <> 0.
- DELETE GT_ADRC.
- ENDIF.
- ENDLOOP.
- ENDIF.
- "FILL DATA IT TCURF
- SELECT FFACT
- TFACT
- FCURR
- TCURR
- FROM TCURF
- INTO TABLE GT_TCURF
- * FOR ALL ENTRIES IN GT_BCDT
- WHERE KURST = 'M' .
- SORT GT_BCDT_TEMP BY WAERK STWAE.
- LOOP AT GT_TCURF.
- READ TABLE GT_BCDT_TEMP WITH KEY WAERK = GT_TCURF-FCURR
- STWAE = GT_TCURF-TCURR BINARY SEARCH TRANSPORTING NO FIELDS.
- IF SY-SUBRC <> 0.
- DELETE GT_TCURF.
- ENDIF.
- ENDLOOP.
- "FILL DATA IT TVKO
- SELECT VKORG ADRNR
- FROM TVKO
- INTO TABLE GT_TVKO.
- * FOR ALL ENTRIES IN GT_BCDT
- * WHERE TVKO~VKORG = GT_BCDT-VKORG.
- SORT GT_BCDT_TEMP BY VKORG.
- LOOP AT GT_TVKO.
- READ TABLE GT_BCDT_TEMP WITH KEY VKORG = GT_TVKO-VKORG BINARY SEARCH TRANSPORTING NO FIELDS.
- IF SY-SUBRC <> 0.
- DELETE TABLE GT_TVKO.
- ENDIF.
- ENDLOOP.
- IF GT_TVKO[] IS NOT INITIAL.
- * SELECT MC_NAME1 ADDRNUMBER
- SELECT NAME1 NAME2 NAME3 ADDRNUMBER
- FROM ADRC
- INTO TABLE GT_ADRC2
- FOR ALL ENTRIES IN GT_TVKO
- WHERE ADDRNUMBER = GT_TVKO-ADRNR.
- SORT GT_ADRC2 BY ADDRNUMBER.
- ENDIF.
- SELECT
- TVTWT~VTEXT VTWEG
- FROM TVTWT
- INTO TABLE GT_TVTWT
- * FOR ALL ENTRIES IN GT_BCDT
- WHERE SPRAS = SY-LANGU. "VTWEG = GT_BCDT-VTWEG AND
- SORT GT_BCDT_TEMP BY VTWEG.
- LOOP AT GT_TVTWT.
- READ TABLE GT_BCDT_TEMP WITH KEY VTWEG = GT_TVTWT-VTWEG BINARY SEARCH TRANSPORTING NO FIELDS.
- IF SY-SUBRC <> 0.
- DELETE TABLE GT_TVTWT.
- ENDIF.
- ENDLOOP.
- SELECT VKBUR BEZEI
- FROM TVKBT
- INTO TABLE GT_TVKBT
- * FOR ALL ENTRIES IN GT_BCDT
- WHERE SPRAS = SY-LANGU. "VKBUR = GT_BCDT-VKBUR AND
- SORT GT_BCDT_TEMP BY VKBUR.
- LOOP AT GT_TVKBT.
- READ TABLE GT_BCDT_TEMP WITH KEY VKBUR = GT_TVKBT-VKBUR BINARY SEARCH TRANSPORTING NO FIELDS.
- IF SY-SUBRC <> 0.
- DELETE TABLE GT_TVKBT.
- ENDIF.
- ENDLOOP.
- SELECT BZIRK
- BZTXT
- FROM T171T
- INTO TABLE GT_T171T
- * FOR ALL ENTRIES IN GT_BCDT
- WHERE SPRAS = SY-LANGU. " BZIRK = GT_BCDT-BZIRK_AUFT AND
- SORT GT_BCDT_TEMP BY BZIRK_AUFT.
- LOOP AT GT_T171T.
- READ TABLE GT_BCDT_TEMP WITH KEY BZIRK_AUFT = GT_T171T-BZIRK BINARY SEARCH TRANSPORTING NO FIELDS.
- IF SY-SUBRC <> 0.
- DELETE TABLE GT_T171T.
- ENDIF.
- ENDLOOP.
- SELECT KDGRP
- KTEXT
- FROM T151T
- INTO TABLE GT_T151T
- * FOR ALL ENTRIES IN GT_BCDT
- WHERE SPRAS = SY-LANGU. "KDGRP = GT_BCDT-KDGRP AND
- SORT GT_BCDT_TEMP BY KDGRP.
- LOOP AT GT_T151T.
- READ TABLE GT_BCDT_TEMP WITH KEY KDGRP = GT_T151T-KDGRP BINARY SEARCH TRANSPORTING NO FIELDS.
- IF SY-SUBRC <> 0.
- DELETE TABLE GT_T151T.
- ENDIF.
- ENDLOOP.
- SELECT PA0001~PERNR
- SNAME
- VBPA~VBELN
- FROM PA0001
- INNER JOIN VBPA ON VBPA~PERNR = PA0001~PERNR
- INTO TABLE GT_PA0001
- * FOR ALL ENTRIES IN GT_BCDT
- WHERE ( VBPA~PARVW = 'Z1' OR VBPA~PARVW = 'Z3' )." AND VBPA~VBELN = GT_BCDT-VBELN.
- SORT GT_BCDT_TEMP BY VBELN.
- LOOP AT GT_PA0001.
- READ TABLE GT_BCDT_TEMP WITH KEY VBELN = GT_PA0001-VBELN BINARY SEARCH TRANSPORTING NO FIELDS.
- IF SY-SUBRC <> 0.
- DELETE TABLE GT_PA0001.
- ENDIF.
- ENDLOOP.
- IF GT_VBPA[] IS NOT INITIAL.
- SELECT NCHMC VNAMC PERNR
- FROM PA0002
- INTO TABLE GT_PA0002
- FOR ALL ENTRIES IN GT_VBPA
- WHERE PERNR = GT_VBPA-PERNR.
- SORT GT_PA0002 BY PERNR.
- ENDIF.
- SELECT KTGRD VTEXT
- FROM TVKTT
- INTO TABLE GT_TVKTT
- * FOR ALL ENTRIES IN GT_BCDT
- WHERE SPRAS = SY-LANGU.
- "KTGRD = GT_BCDT-KTGRD AND
- SORT GT_BCDT_TEMP BY KTGRD.
- LOOP AT GT_TVKTT.
- READ TABLE GT_BCDT_TEMP WITH KEY KTGRD = GT_TVKTT-KTGRD BINARY SEARCH TRANSPORTING NO FIELDS.
- IF SY-SUBRC <> 0.
- DELETE TABLE GT_TVKTT.
- ENDIF.
- ENDLOOP.
- SELECT
- DOCNUM
- STAPA1
- INTO TABLE GT_EDIDS
- FROM EDIDS
- WHERE STATUS = '53'.
- * AND STAPA1 IN S_STAPA1.
- SORT GT_EDIDS BY DOCNUM.
- SELECT BEZEI
- VKGRP
- FROM TVGRT
- INTO TABLE GT_TVGRT
- * FOR ALL ENTRIES IN GT_BCDT
- WHERE SPRAS = SY-LANGU. " AND VKGRP = GT_BCDT-VKGRP.
- SORT GT_BCDT_TEMP BY VKGRP.
- LOOP AT GT_TVGRT.
- READ TABLE GT_BCDT_TEMP WITH KEY VKGRP = GT_TVGRT-VKGRP BINARY SEARCH TRANSPORTING NO FIELDS.
- IF SY-SUBRC <> 0.
- DELETE TABLE GT_TVGRT.
- ENDIF.
- ENDLOOP.
- SELECT MATNR BISMT EXTWG LABOR GROES MTART MATKL WRKST
- FROM MARA
- INTO TABLE GT_MARA.
- * FOR ALL ENTRIES IN GT_BCDT
- * WHERE MATNR = GT_BCDT-MATNR.
- SORT GT_BCDT_TEMP BY MATNR.
- LOOP AT GT_MARA.
- READ TABLE GT_BCDT_TEMP WITH KEY MATNR = GT_MARA-MATNR BINARY SEARCH TRANSPORTING NO FIELDS.
- IF SY-SUBRC <> 0.
- DELETE TABLE GT_MARA.
- ENDIF.
- ENDLOOP.
- SELECT MATKL WGBEZ60
- FROM T023T
- INTO TABLE GT_T023T
- FOR ALL ENTRIES IN GT_MARA
- WHERE MATKL = GT_MARA-MATKL AND
- SPRAS = SY-LANGU .
- SELECT VTEXT
- PRODH
- FROM T179T
- INTO TABLE GT_T179T
- * FOR ALL ENTRIES IN GT_BCDT
- * WHERE (
- * PRODH = GT_BCDT-PRODH OR
- * PRODH = GT_BCDT-PRODHX OR
- * PRODH = GT_BCDT-PRODHY
- * ) AND
- WHERE SPRAS = SY-LANGU ."AND ( PRODH = GT_BCDT-PRODH ).
- IF GT_LIPS3 IS NOT INITIAL.
- SELECT BSTKD
- VBELN
- FROM VBKD
- INTO TABLE GT_VBKD
- FOR ALL ENTRIES IN GT_LIPS3
- WHERE VBELN = GT_LIPS3-VGBEL. "CHANGE 30.11.2015 SANGVT3
- SORT GT_VBKD BY VBELN.
- ENDIF.
- * Get size (Updated by TuanTHM 15.01.2015)
- SELECT BEZEI
- MATNR
- WERKS
- FROM TMFGT
- INNER JOIN MARC ON TMFGT~MFRGR = MARC~MFRGR
- INTO TABLE GT_TMFGT
- FOR ALL ENTRIES IN GT_BCDT
- WHERE MARC~MATNR = GT_BCDT-MATNR AND MARC~WERKS = GT_BCDT-WERKS.
- * SORT GT_BCDT_TEMP BY MATNR WERKS.
- * LOOP AT GT_TMFGT.
- * READ TABLE GT_BCDT_TEMP WITH KEY MATNR = GT_TMFGT-MATNR
- * WERKS = GT_TMFGT-WERKS BINARY SEARCH TRANSPORTING NO FIELDS.
- * IF SY-SUBRC <> 0.
- * DELETE TABLE GT_TMFGT.
- * ENDIF.
- * ENDLOOP.
- SELECT EWBEZ
- EXTWG
- FROM TWEWT
- INTO TABLE GT_TWEWT
- * FOR ALL ENTRIES IN GT_BCDT
- WHERE SPRAS = SY-LANGU. "EXTWG = GT_BCDT-EXTWG AND
- SORT GT_BCDT_TEMP BY EXTWG.
- * LOOP AT GT_TWEWT.
- ** READ TABLE GT_BCDT_TEMP WITH KEY EXTWG = GT_TWEWT-EXTWG BINARY SEARCH TRANSPORTING NO FIELDS.
- ** BREAK-POINT.
- ** IF SY-SUBRC <> 0.
- ** DELETE TABLE GT_TWEWT.
- ** ENDIF.
- * ENDLOOP.
- "Số ĐH(MPC)/ PO Number – Số đơn hàng của MPC
- SELECT DISTINCT
- VBAP~VBELN
- VBAP~POSNR
- VBAP~BEDAE
- FROM VBAP
- INTO TABLE GT_VBAP.
- * FOR ALL ENTRIES IN GT_BCDT
- * WHERE VBAP~VBELN = GT_BCDT-AUBEL
- * AND VBAP~POSNR = GT_BCDT-AUPOS.
- SORT GT_BCDT_TEMP BY AUBEL AUPOS.
- LOOP AT GT_VBAP.
- READ TABLE GT_BCDT_TEMP WITH KEY AUBEL = GT_VBAP-VBELN
- AUPOS = GT_VBAP-POSNR BINARY SEARCH TRANSPORTING NO FIELDS.
- IF SY-SUBRC <> 0.
- DELETE TABLE GT_VBAP.
- ENDIF.
- ENDLOOP.
- * SELECT KMEIN
- * KNUMV
- * KPOSN
- * FROM KONV
- * INTO TABLE GT_KONV
- * FOR ALL ENTRIES IN GT_BCDT
- * WHERE KONV~KNUMV = GT_BCDT-KNUMV AND KONV~KPOSN = GT_BCDT-POSNR
- * AND KONV~KSCHL IN ('ZPR0', 'ZPR1', 'ZPR2', 'ZPR3', 'ZPR5', 'ZR10', 'ZRE1', 'ZPR6', 'ZPR4'). "UPDATE BY SANGVT3 30.11.2015
- "Ten nghanh hang
- SELECT VTEXT
- SPART
- FROM TSPAT
- INTO TABLE GT_TSPAT
- * FOR ALL ENTRIES IN GT_BCDT
- WHERE SPRAS = SY-LANGU ."AND SPART = GT_BCDT-SPART.
- SORT GT_BCDT_TEMP BY SPART.
- LOOP AT GT_TSPAT.
- READ TABLE GT_BCDT_TEMP WITH KEY SPART = GT_TSPAT-SPART BINARY SEARCH TRANSPORTING NO FIELDS.
- IF SY-SUBRC <> 0.
- DELETE TABLE GT_TSPAT.
- ENDIF.
- ENDLOOP.
- "Ten tong kho
- SELECT NAME2
- WERKS
- FROM T001W
- INTO TABLE GT_T001W
- * FOR ALL ENTRIES IN GT_BCDT
- WHERE SPRAS = SY-LANGU. "WERKS = GT_BCDT-WERKS AND
- SORT GT_BCDT_TEMP BY WERKS.
- LOOP AT GT_T001W.
- READ TABLE GT_BCDT_TEMP WITH KEY WERKS = GT_T001W-WERKS BINARY SEARCH TRANSPORTING NO FIELDS.
- IF SY-SUBRC <> 0.
- DELETE TABLE GT_T001W.
- ENDIF.
- ENDLOOP.
- "Ten kho
- SELECT LGOBE
- LGORT
- WERKS
- FROM T001L
- INTO TABLE GT_T001L.
- * FOR ALL ENTRIES IN GT_BCDT
- * WHERE LGORT = GT_BCDT-LGORT AND WERKS = GT_BCDT-WERKS.
- SORT GT_BCDT_TEMP BY LGORT WERKS.
- LOOP AT GT_T001L.
- READ TABLE GT_BCDT_TEMP WITH KEY LGORT = GT_T001L-LGORT
- WERKS = GT_T001L-WERKS BINARY SEARCH TRANSPORTING NO FIELDS.
- IF SY-SUBRC <> 0.
- DELETE TABLE GT_T001L.
- ENDIF.
- ENDLOOP.
- ENDIF.
- "FILL DATA IT V_USR_NAME
- IF GT_VTTK[] IS NOT INITIAL.
- SELECT NAME_FIRST NAME_LAST BNAME
- FROM V_USR_NAME
- INTO TABLE GT_V_USR_NAME
- FOR ALL ENTRIES IN GT_VTTK
- WHERE BNAME = GT_VTTK-ERNAM.
- ENDIF.
- LOOP AT GT_VBPA.
- GS_VBPA_TEMP = GT_VBPA.
- AT NEW VBELN.
- GS_VBPA_FINAL-VBELN = GT_VBPA-VBELN.
- GS_VBPA_FINAL-ADRNR = GS_VBPA_TEMP-ADRNR.
- ENDAT.
- IF GS_VBPA_TEMP-PARVW EQ 'RG'.
- GS_VBPA_FINAL-KUNNR = GS_VBPA_TEMP-KUNNR.
- CALL FUNCTION 'ZCORE_FM_GET_PROFILE_SD'
- EXPORTING
- I_NUMBER = GS_VBPA_TEMP-KUNNR
- I_VBELN = GS_VBPA_TEMP-VBELN
- I_TYPE = 'RG'
- IMPORTING
- E_NAME = GS_VBPA_FINAL-PAYER_NAME.
- ELSEIF GS_VBPA_TEMP-PARVW EQ 'AG'.
- GS_VBPA_FINAL-KUNNR57 = GS_VBPA_TEMP-KUNNR.
- CALL FUNCTION 'ZCORE_FM_GET_PROFILE_SD'
- EXPORTING
- I_NUMBER = GS_VBPA_FINAL-KUNNR57
- I_VBELN = GS_VBPA_TEMP-VBELN
- I_TYPE = 'AG'
- IMPORTING
- E_NAME = GS_VBPA_FINAL-SOLD_NAME.
- ELSEIF GS_VBPA_TEMP-PARVW EQ 'RE'.
- GS_VBPA_FINAL-KUNNR61 = GS_VBPA_TEMP-KUNNR.
- CALL FUNCTION 'ZCORE_FM_GET_PROFILE_SD'
- EXPORTING
- I_NUMBER = GS_VBPA_FINAL-KUNNR61
- I_VBELN = GS_VBPA_TEMP-VBELN
- I_TYPE = 'RE'
- IMPORTING
- E_NAME = GS_VBPA_FINAL-BILL_NAME.
- ELSEIF GS_VBPA_TEMP-PARVW EQ 'Z1'.
- READ TABLE GT_PA0001 WITH KEY PERNR = GS_VBPA_TEMP-PERNR.
- IF SY-SUBRC = 0.
- GS_VBPA_FINAL-MANAGER = GT_PA0001-SNAME.
- ENDIF.
- ELSEIF GS_VBPA_TEMP-PARVW EQ 'VE'.
- GS_VBPA_FINAL-PERVE = GS_VBPA_TEMP-PERNR.
- ELSEIF GS_VBPA_TEMP-PARVW EQ 'VW'.
- GS_VBPA_FINAL-PERVW = GS_VBPA_TEMP-PERNR.
- ELSEIF GS_VBPA_TEMP-PARVW EQ 'Z3'.
- READ TABLE GT_PA0001 WITH KEY PERNR = GS_VBPA_TEMP-PERNR.
- IF SY-SUBRC = 0.
- GS_VBPA_FINAL-DOCEMPLOYEE = GT_PA0001-SNAME.
- ENDIF.
- ENDIF.
- AT END OF VBELN.
- APPEND GS_VBPA_FINAL TO GT_VBPA_FINAL.
- CLEAR: GS_VBPA_FINAL.
- ENDAT.
- ENDLOOP.
- SORT GT_VBPA_FINAL BY VBELN.
- IF GT_VBPA_FINAL[] IS NOT INITIAL.
- SELECT
- KUNNR
- TELNR_CALL
- INTO TABLE GT_ADR2
- FROM KNA1
- INNER JOIN ADR2 ON
- KNA1~ADRNR = ADR2~ADDRNUMBER AND
- ADR2~R3_USER NE 'X' AND
- ADR2~PERSNUMBER EQ ''
- FOR ALL ENTRIES IN GT_VBPA_FINAL
- WHERE KUNNR = GT_VBPA_FINAL-KUNNR57.
- SORT GT_ADR2 BY KUNNR.
- ENDIF.
- CALL FUNCTION 'ZCORE_FM_CURR_RATE'
- TABLES
- ET_CURR_RATE = GT_CURRENCY.
- ENDFORM.
- FORM SELECT_BKPF_FI.
- "FI OUTBOUND
- SELECT BELNR AWKEY XBLNR
- FROM BKPF
- INTO TABLE GT_BKPF_FI
- FOR ALL ENTRIES IN GT_BCDT
- WHERE AWKEY = GT_BCDT-AWKEY .
- SORT GT_BKPF_FI BY AWKEY.
- SELECT BELNR AWKEY XBLNR
- FROM BKPF
- INTO TABLE GT_BKPF
- FOR ALL ENTRIES IN GT_BCDT
- WHERE AWKEY = GT_BCDT-AWKEY_ACC.
- SORT GT_BKPF BY AWKEY.
- ENDFORM.
- FORM PROCESS_DATA.
- DATA:
- LT_CHARNUM TYPE TABLE OF BAPI1003_ALLOC_VALUES_NUM, "change by SANGVT3
- LT_CHARACT TYPE TABLE OF BAPI1003_ALLOC_VALUES_CHAR, "change by SANGVT3
- LT_ATNAM TYPE TABLE OF ZCORE_ST_RSELOPTION_ATNAM,
- LS_CHARNUM TYPE BAPI1003_ALLOC_VALUES_NUM, "change by SANGVT3
- LT_ALL TYPE TABLE OF BAPI1003_ALLOC_VALUES_NUM,
- LS_ALL TYPE BAPI1003_ALLOC_VALUES_NUM,
- LW_DATE TYPE CHAR20.
- SORT GT_BCDT BY VBELN.
- DATA: LW_NAME_FIRST TYPE AD_NAMEFIR,
- LW_NAME_LAST TYPE AD_NAMELAS,
- LW_PERIOD TYPE POPER,
- LW_TDOBNAME TYPE TDOBNAME,
- LW_TEXT TYPE CHAR255,
- LW_YEAR TYPE GJAHR,
- LW_INX TYPE SY-INDEX.
- TYPES:
- BEGIN OF LTY_UPRIC,
- KBETR TYPE KBETR,
- KPEIN TYPE KPEIN,
- WAERS TYPE WAERS,
- KNUMV TYPE KNUMV,
- KPOSN TYPE KPOSN,
- KMEIN TYPE KMEIN,
- END OF LTY_UPRIC.
- DATA:
- LT_UPRIC TYPE TABLE OF LTY_UPRIC,
- LS_UPRIC TYPE LTY_UPRIC,
- LW_LONGTEXT TYPE CHAR255,
- * LT_STXH TYPE TABLE OF STXH,
- * LS_STXH TYPE STXH,
- LW_NAME1 TYPE NAME1_GP,
- LW_NAME2 TYPE NAME2_GP,
- LW_NAME3 TYPE NAME3_GP,
- LW_NAME4 TYPE NAME4_GP,
- LW_ADRNR TYPE ADRNR,
- LW_STLNR TYPE STNUM,
- LW_KUNNR TYPE CHAR10,
- LW_LINK TYPE RAW16,
- LW_FIRST TYPE CHAR40,
- LW_LAST TYPE CHAR40,
- LW_SHIFT TYPE I,
- LW_DECIMAL TYPE I,
- LW_NUMBER TYPE I,
- LW_VBELN TYPE VBELN,
- LW_RATIO TYPE DEC_16_03_S,
- LW_DATBG TYPE DATS,
- LW_DAREG TYPE DATS,
- LW_NETWR TYPE NETWR_FP,
- LW_PARNUM TYPE EDI_RCVPRN,
- LW_IDNAME TYPE TDOBNAME,
- LS_BORIDENT TYPE BORIDENT,
- LT_RELROLES TYPE TABLE OF RELROLES,
- LS_RELROLES TYPE RELROLES.
- FIELD-SYMBOLS <FS_BCDT> TYPE ZSD_ST_BCDTBH.
- "Don gia ban (69) NGHIA.NGUYEN.CITEK 06.10.2016
- IF GT_BCDT IS NOT INITIAL.
- SELECT
- KBETR
- KPEIN
- WAERS
- KNUMV
- KPOSN
- KMEIN
- FROM KONV
- INTO TABLE LT_UPRIC
- FOR ALL ENTRIES IN GT_BCDT
- WHERE KSCHL IN ( 'ZPRA', 'ZPR0', 'ZC00', 'ZP00', 'ZPRB', 'ZPRC', 'ZC01', 'ZC02', 'ZD01', 'ZD02', 'ZPRE' )
- AND KNUMV = GT_BCDT-KNUMV.
- ENDIF.
- LOOP AT GT_BCDT ASSIGNING <FS_BCDT>.
- LW_IDNAME = <FS_BCDT>-VBELN.
- * CALL FUNCTION 'ZCORE_FM_GET_LONG_TEXT'
- * EXPORTING
- * I_TDOBJECT = 'VBBK'
- * I_TDNAME = LW_IDNAME
- * I_TDID = 'Z026'
- ** I_TDSPRAS = 'E'
- * IMPORTING
- * E_LONG_TEXT = <FS_BCDT>-TNDR_TRKID.
- READ TABLE GT_MARA WITH TABLE KEY MATNR = <FS_BCDT>-MATNR.
- IF SY-SUBRC = 0.
- <FS_BCDT>-MATKL = GT_MARA-MATKL.
- <FS_BCDT>-BISMT = GT_MARA-BISMT.
- <FS_BCDT>-EXTWG = GT_MARA-EXTWG.
- <FS_BCDT>-LABOR = GT_MARA-LABOR.
- <FS_BCDT>-GROES = GT_MARA-GROES.
- <FS_BCDT>-MTART = GT_MARA-MTART.
- <FS_BCDT>-WRKST = GT_MARA-WRKST.
- ENDIF.
- READ TABLE GT_TVKOT WITH KEY VKORG = <FS_BCDT>-VKORG BINARY SEARCH.
- IF SY-SUBRC = 0.
- <FS_BCDT>-SOTEXT = GT_TVKOT-VTEXT.
- ENDIF.
- READ TABLE GT_T023T WITH TABLE KEY MATKL = <FS_BCDT>-MATKL.
- IF SY-SUBRC = 0.
- <FS_BCDT>-WGBEZ60 = GT_T023T-WGBEZ60.
- ENDIF.
- READ TABLE GT_TVFKT WITH TABLE KEY FKART = <FS_BCDT>-FKART.
- IF SY-SUBRC = 0.
- <FS_BCDT>-FKARTT = GT_TVFKT-VTEXT.
- ENDIF.
- IF <FS_BCDT>-PRODH+10(8) <> ' '.
- READ TABLE GT_T179T WITH TABLE KEY PRODH = <FS_BCDT>-PRODH.
- IF SY-SUBRC = 0.
- <FS_BCDT>-PRODH3 = GT_T179T-VTEXT.
- ENDIF.
- ENDIF.
- IF <FS_BCDT>-PRODH+5(13) <> ' '.
- <FS_BCDT>-PRODH = <FS_BCDT>-PRODH+0(10).
- READ TABLE GT_T179T WITH TABLE KEY PRODH = <FS_BCDT>-PRODH.
- IF SY-SUBRC = 0.
- <FS_BCDT>-PRODH2 = GT_T179T-VTEXT.
- ENDIF.
- * SELECT SINGLE VTEXT INTO FROM T179T WHERE PRODH = <FS_BCDT>-PRODH AND SPRAS = SY-LANGU.
- ENDIF.
- <FS_BCDT>-PRODH = <FS_BCDT>-PRODH+0(5).
- READ TABLE GT_T179T WITH TABLE KEY PRODH = <FS_BCDT>-PRODH.
- IF SY-SUBRC = 0.
- <FS_BCDT>-PRODH1 = GT_T179T-VTEXT.
- ENDIF.
- * SELECT SINGLE VTEXT INTO <FS_BCDT>-PRODH1 FROM T179T WHERE PRODH = <FS_BCDT>-PRODH AND SPRAS = SY-LANGU.
- IF <FS_BCDT>-PRODH1 = ''.
- IF <FS_BCDT>-PRODH2 = ''.
- <FS_BCDT>-PRODH_DE = <FS_BCDT>-PRODH3."NEU 1 VA 2 = NULL
- IF <FS_BCDT>-PRODH3 = ''.
- <FS_BCDT>-PRODH_DE = ''. "NEU 1,2,3 = NULL
- ENDIF.
- ELSE.
- <FS_BCDT>-PRODH_DE = <FS_BCDT>-PRODH2."NEU 1 VA 3 = NULL
- IF <FS_BCDT>-PRODH3 <> ''.
- CONCATENATE <FS_BCDT>-PRODH_DE <FS_BCDT>-PRODH3 INTO <FS_BCDT>-PRODH_DE SEPARATED BY ', '. "NEU 1 =NULL
- ENDIF.
- ENDIF.
- ELSE.
- <FS_BCDT>-PRODH_DE = <FS_BCDT>-PRODH1."NEU 2 VA 3 = NULL
- IF <FS_BCDT>-PRODH2 <> ''.
- CONCATENATE <FS_BCDT>-PRODH_DE <FS_BCDT>-PRODH2 INTO <FS_BCDT>-PRODH_DE SEPARATED BY ', '. "NEU 3 =NULL
- IF <FS_BCDT>-PRODH3 <> ''.
- CONCATENATE <FS_BCDT>-PRODH_DE <FS_BCDT>-PRODH3 INTO <FS_BCDT>-PRODH_DE SEPARATED BY ', '. "NEU 1,2,3 <> NULL
- ENDIF.
- ELSE.
- IF <FS_BCDT>-PRODH3 <> ''.
- CONCATENATE <FS_BCDT>-PRODH_DE <FS_BCDT>-PRODH3 INTO <FS_BCDT>-PRODH_DE SEPARATED BY ', '. "NEU 2 = NULL
- ENDIF.
- ENDIF.
- ENDIF.
- READ TABLE GT_LIPS3 INTO GS_LIPS3 WITH TABLE KEY VBELN = <FS_BCDT>-VGBEL POSNR = <FS_BCDT>-VGPOS.
- IF SY-SUBRC = 0.
- READ TABLE GT_VBKD WITH KEY VBELN = GS_LIPS3-VGBEL BINARY SEARCH.
- IF SY-SUBRC = 0.
- <FS_BCDT>-BSTKD = GT_VBKD-BSTKD.
- ENDIF.
- ENDIF.
- READ TABLE GT_TMFGT WITH KEY MATNR = <FS_BCDT>-MATNR WERKS = <FS_BCDT>-WERKS.
- IF SY-SUBRC = 0.
- <FS_BCDT>-SIZE = GT_TMFGT-BEZEI.
- ENDIF.
- IF <FS_BCDT>-SIZE IS INITIAL.
- READ TABLE GT_TWEWT WITH TABLE KEY EXTWG = <FS_BCDT>-EXTWG.
- IF SY-SUBRC = 0.
- <FS_BCDT>-SIZE = GT_TWEWT-EWBEZ.
- ENDIF.
- ENDIF.
- READ TABLE GT_VTTK WITH TABLE KEY TKNUM = <FS_BCDT>-TKNUM.
- IF SY-SUBRC = 0.
- <FS_BCDT>-DAREG = GT_VTTK-DAREG.
- <FS_BCDT>-DATBG = GT_VTTK-DATBG.
- <FS_BCDT>-DPREG = GT_VTTK-DPREG.
- <FS_BCDT>-DPTBG = GT_VTTK-DPTBG.
- <FS_BCDT>-ERNAM = GT_VTTK-ERNAM.
- <FS_BCDT>-SOTOKHAI = GT_VTTK-TEXT1.
- <FS_BCDT>-TEXT1 = GT_VTTK-EXTI1.
- LW_TDOBNAME = GT_VTTK-TKNUM.
- "update chi tieu 4
- CLEAR LW_TEXT.
- CALL FUNCTION 'ZCORE_FM_GET_LONG_TEXT'
- EXPORTING
- I_TDOBJECT = 'VTTK'
- I_TDNAME = LW_TDOBNAME
- I_TDID = 'Z022'
- I_TDSPRAS = SY-LANGU
- IMPORTING
- E_LONG_TEXT = LW_TEXT.
- IF LW_TEXT NE SPACE.
- CONCATENATE <FS_BCDT>-TEXT1 LW_TEXT INTO <FS_BCDT>-TEXT1 SEPARATED BY '; '.
- ENDIF.
- <FS_BCDT>-SIGNI = GT_VTTK-SIGNI .
- "update chi tieu 5
- CLEAR LW_TEXT.
- CALL FUNCTION 'ZCORE_FM_GET_LONG_TEXT'
- EXPORTING
- I_TDOBJECT = 'VTTK'
- I_TDNAME = LW_TDOBNAME
- I_TDID = 'Z023'
- I_TDSPRAS = SY-LANGU
- IMPORTING
- E_LONG_TEXT = LW_TEXT.
- IF LW_TEXT NE SPACE.
- CONCATENATE <FS_BCDT>-SIGNI LW_TEXT INTO <FS_BCDT>-SIGNI SEPARATED BY '; '.
- ENDIF.
- * <FS_BCDT>-TNDR_TRKID = GT_VTTK-TNDR_TRKID.
- IF <FS_BCDT>-DAREG IS INITIAL.
- <FS_BCDT>-DAREG = <FS_BCDT>-DPREG.
- ENDIF.
- IF <FS_BCDT>-DATBG IS INITIAL.
- <FS_BCDT>-DATBG = <FS_BCDT>-DPTBG.
- ENDIF.
- ENDIF.
- READ TABLE GT_V_USR_NAME WITH KEY BNAME = <FS_BCDT>-ERNAM.
- IF SY-SUBRC = 0.
- CONCATENATE GT_V_USR_NAME-NAME_FIRST GT_V_USR_NAME-NAME_LAST INTO <FS_BCDT>-BE SEPARATED BY SPACE.
- ENDIF.
- * "Ngày tờ khai/ Declaration Date
- * READ TABLE LT_STXH INTO LS_STXH WITH KEY TDID = 'Z019'.
- * IF SY-SUBRC EQ 0.
- * LS_STXH-TDNAME = <FS_BCDT>-VBELN.
- * LS_STXH-TDOBJECT = 'VBBK'.
- *
- * CALL FUNCTION 'ZCORE_FM_GET_LONG_TEXT'
- * EXPORTING
- * I_TDOBJECT = LS_STXH-TDOBJECT
- * I_TDNAME = LS_STXH-TDNAME
- * I_TDID = LS_STXH-TDID
- * I_TDSPRAS = LS_STXH-TDSPRAS
- * IMPORTING
- * E_LONG_TEXT = LW_LONGTEXT.
- * <FS_BCDT>-NGAYTOKHAI = LW_LONGTEXT.
- * CLEAR LW_LONGTEXT.
- * CLEAR LS_STXH-TDNAME.
- * CLEAR LS_STXH-TDOBJECT.
- * ENDIF.
- "Số lượng (Kiện)/ Quantity (Packages)
- * CALL FUNCTION 'MD_CONVERT_MATERIAL_UNIT'
- * EXPORTING
- * I_MATNR = <FS_BCDT>-MATNR
- * I_IN_ME = <FS_BCDT>-VRKME
- * I_OUT_ME = 'KIE'
- * I_MENGE = <FS_BCDT>-FKIMG
- * IMPORTING
- * E_MENGE = <FS_BCDT>-CARTONS
- * EXCEPTIONS
- * ERROR_IN_APPLICATION = 1
- * ERROR = 2
- * OTHERS = 3.
- "Khối lượng (KG)/ Quanity (KG)
- * CALL FUNCTION 'MD_CONVERT_MATERIAL_UNIT'
- * EXPORTING
- * I_MATNR = <FS_BCDT>-MATNR
- * I_IN_ME = <FS_BCDT>-MEINS
- * I_OUT_ME = 'KG'
- * I_MENGE = <FS_BCDT>-FKLMG
- * IMPORTING
- * E_MENGE = <FS_BCDT>-QUANTITYKG1
- * EXCEPTIONS
- * ERROR_IN_APPLICATION = 1
- * ERROR = 2
- * OTHERS = 3.
- "Ratio added by DatPT16 11.09.2014
- READ TABLE GT_TCURF WITH KEY FCURR = <FS_BCDT>-WAERK TCURR = <FS_BCDT>-STWAE.
- IF SY-SUBRC = 0.
- <FS_BCDT>-FFACT = GT_TCURF-FFACT.
- <FS_BCDT>-TFACT = GT_TCURF-TFACT.
- ENDIF.
- IF <FS_BCDT>-FFACT EQ 0 OR <FS_BCDT>-TFACT EQ 0.
- LW_RATIO = 1. "VND"
- ELSE.
- LW_RATIO = <FS_BCDT>-TFACT / <FS_BCDT>-FFACT.
- ENDIF.
- CALL FUNCTION 'ZCORE_FM_CURR_CONVERT_COMPUTE'
- EXPORTING
- I_WAERS = <FS_BCDT>-WAERK
- IMPORTING
- E_DECIMAL = LW_DECIMAL
- E_NUMBER = LW_NUMBER
- E_SHIFT = LW_SHIFT.
- IF LW_DECIMAL EQ 0.
- LW_RATIO = LW_RATIO.
- ELSEIF LW_DECIMAL EQ 1.
- LW_RATIO = LW_RATIO / 10.
- ELSEIF LW_DECIMAL EQ 2.
- LW_RATIO = LW_RATIO / 100.
- ENDIF.
- "xu ly chi tieu (20) "Bo xung chi tieu (68)
- * <FS_BCDT>-WAVWR2 = <FS_BCDT>-WAVWR. "Quynh rem code
- * IF <FS_BCDT>-WAVWR EQ 0. "Quynh rem code
- CLEAR: <FS_BCDT>-WAVWR ,
- <FS_BCDT>-WAVWR2. "Quynh add code
- IF <FS_BCDT>-BUKRS NE <FS_BCDT>-WERKS.
- LOOP AT GT_VBRP2 WHERE VGBEL = <FS_BCDT>-VGBEL AND VGPOS = <FS_BCDT>-VGPOS AND VBELN NE <FS_BCDT>-VBELN.
- <FS_BCDT>-WAVWR = GT_VBRP2-NETWR / <FS_BCDT>-KURRF.
- <FS_BCDT>-WAVWR2 = GT_VBRP2-NETWR.
- ENDLOOP.
- ELSE.
- READ TABLE GT_LIPS WITH KEY VBELN = <FS_BCDT>-VGBEL UECHA = <FS_BCDT>-VGPOS.
- IF SY-SUBRC = 0.
- LOOP AT GT_LIPS WHERE VBELN = <FS_BCDT>-VGBEL AND UECHA = <FS_BCDT>-VGPOS.
- READ TABLE GT_MSEG WITH KEY VBELN_IM = GT_LIPS-VBELN VBELP_IM = GT_LIPS-POSNR BINARY SEARCH.
- IF SY-SUBRC = 0.
- <FS_BCDT>-WAVWR = <FS_BCDT>-WAVWR + GT_MSEG-DMBTR.
- <FS_BCDT>-WAVWR2 = <FS_BCDT>-WAVWR2 + GT_MSEG-DMBTR.
- ENDIF.
- ENDLOOP.
- ELSE.
- IF <FS_BCDT>-VBELV IS NOT INITIAL.
- * READ TABLE GT_LIPS with key vbeln = <FS_BCDT>-VGBEL VBELV = <FS_BCDT>-VBELV POSNV = <FS_BCDT>-POSNV.
- * if <FS_BCDT>-VGPOS = <FS_BCDT>-POSNV and GT_LIPS-UECHA is INITIAL.
- LOOP AT GT_LIPS WHERE VBELN = <FS_BCDT>-VGBEL AND VBELV = <FS_BCDT>-VBELV AND POSNV = <FS_BCDT>-POSNV .
- READ TABLE GT_MSEG WITH KEY VBELN_IM = GT_LIPS-VBELN VBELP_IM = GT_LIPS-POSNR BINARY SEARCH.
- IF SY-SUBRC = 0.
- <FS_BCDT>-WAVWR = <FS_BCDT>-WAVWR + GT_MSEG-DMBTR.
- <FS_BCDT>-WAVWR2 = <FS_BCDT>-WAVWR2 + GT_MSEG-DMBTR.
- ENDIF.
- ENDLOOP.
- ELSE.
- LOOP AT GT_LIPS WHERE VBELN = <FS_BCDT>-VGBEL AND POSNR = <FS_BCDT>-VGPOS. "Quynh add code
- * AND VGPOS = <FS_BCDT>-VGPOS. "Quynh rem code
- READ TABLE GT_MSEG WITH KEY VBELN_IM = GT_LIPS-VBELN VBELP_IM = GT_LIPS-POSNR BINARY SEARCH.
- IF SY-SUBRC = 0.
- <FS_BCDT>-WAVWR = <FS_BCDT>-WAVWR + GT_MSEG-DMBTR.
- <FS_BCDT>-WAVWR2 = <FS_BCDT>-WAVWR2 + GT_MSEG-DMBTR.
- ENDIF.
- ENDLOOP.
- ENDIF.
- ENDIF.
- ENDIF.
- IF LW_RATIO <> 0.
- <FS_BCDT>-WAVWR = <FS_BCDT>-WAVWR / LW_RATIO.
- ENDIF.
- IF <FS_BCDT>-WAVWR2 = 0 AND <FS_BCDT>-VGBEL CS '17000'.
- ** <FS_BCDT>-XBLNR = <FS_BCDT>-VGBEL.
- IF GT_LIPS2[] IS INITIAL.
- SELECT VBELN POSNR
- FROM LIPS
- INTO TABLE GT_LIPS2
- WHERE LGMNG <> 0.
- SORT GT_LIPS2 BY VBELV POSNV.
- * WHERE LIPS~VBELV = <FS_BCDT>-VBELV AND POSNV = <FS_BCDT>-POSNV AND LGMNG <> 0.
- ENDIF.
- IF GT_MKPF2[] IS INITIAL.
- SELECT MBLNR
- MJAHR
- XBLNR
- FROM MKPF
- INTO TABLE GT_MKPF2.
- SORT GT_MKPF2 BY XBLNR.
- ENDIF.
- READ TABLE GT_LIPS2 WITH KEY VBELV = <FS_BCDT>-VBELV
- POSNV = <FS_BCDT>-POSNV BINARY SEARCH .
- IF SY-SUBRC = 0.
- <FS_BCDT>-XBLNR = GT_LIPS2-VBELN.
- LW_INX = SY-TABIX.
- LOOP AT GT_LIPS2 FROM LW_INX.
- IF GT_LIPS2-VBELV NE <FS_BCDT>-VBELV OR GT_LIPS2-POSNV NE <FS_BCDT>-POSNV.
- EXIT.
- ENDIF.
- APPEND GT_LIPS2 TO GT_LIPS2_TEMP.
- ENDLOOP.
- ENDIF.
- CLEAR: LW_INX.
- READ TABLE GT_MKPF2 WITH KEY XBLNR = <FS_BCDT>-XBLNR BINARY SEARCH TRANSPORTING NO FIELDS.
- IF SY-SUBRC = 0.
- LW_INX = SY-TABIX.
- LOOP AT GT_MKPF2 FROM LW_INX.
- IF GT_MKPF2-XBLNR NE <FS_BCDT>-XBLNR.
- EXIT.
- ENDIF.
- APPEND GT_MKPF2 TO GT_MKPF2_TEMP.
- ENDLOOP.
- ENDIF.
- CLEAR: LW_INX.
- IF GT_MKPF2_TEMP[] IS NOT INITIAL.
- IF GT_MSEG3[] IS INITIAL.
- SELECT MBLNR MJAHR ZEILE DMBTR SMBLN SMBLP BUKRS VBELN_IM VBELP_IM
- FROM MSEG
- INTO TABLE GT_MSEG3.
- SORT GT_MSEG3 BY MBLNR MJAHR.
- * FOR ALL ENTRIES IN GT_MKPF2
- * WHERE MBLNR = GT_MKPF2-MBLNR AND MJAHR = GT_MKPF2-MJAHR.
- ENDIF.
- LOOP AT GT_MKPF2_TEMP.
- READ TABLE GT_MSEG3 WITH KEY MBLNR = GT_MKPF2_TEMP-MBLNR
- MJAHR = GT_MKPF2_TEMP-MJAHR BINARY SEARCH TRANSPORTING NO FIELDS.
- IF SY-SUBRC = 0.
- LW_INX = SY-TABIX.
- LOOP AT GT_MSEG3 FROM LW_INX.
- IF GT_MSEG3-MBLNR NE GT_MKPF2_TEMP-MBLNR OR GT_MSEG3-MJAHR NE GT_MKPF2_TEMP-MJAHR.
- EXIT.
- ENDIF.
- APPEND GT_MSEG3 TO GT_MSEG3_TEMP.
- ENDLOOP.
- ENDIF.
- CLEAR: LW_INX.
- ENDLOOP.
- "LOAI BO MAT.DOC REVERSE
- LOOP AT GT_MSEG3_TEMP WHERE SMBLN IS NOT INITIAL.
- APPEND GT_MSEG3_TEMP TO GT_MSEG4[].
- ENDLOOP.
- DELETE GT_MSEG3_TEMP WHERE SMBLN IS NOT INITIAL.
- LOOP AT GT_MSEG4.
- DELETE GT_MSEG3_TEMP WHERE MBLNR = GT_MSEG4-SMBLN AND ZEILE = GT_MSEG4-SMBLP.
- ENDLOOP.
- SORT GT_MSEG3_TEMP BY VBELN_IM VBELP_IM.
- LOOP AT GT_LIPS2_TEMP.
- READ TABLE GT_MSEG3_TEMP WITH KEY VBELN_IM = GT_LIPS2_TEMP-VBELN VBELP_IM = GT_LIPS2_TEMP-POSNR BINARY SEARCH.
- IF SY-SUBRC = 0.
- <FS_BCDT>-WAVWR2 = <FS_BCDT>-WAVWR2 + GT_MSEG3_TEMP-DMBTR.
- ENDIF.
- ENDLOOP.
- ENDIF.
- CLEAR: GT_MKPF2_TEMP[],GT_MKPF2_TEMP,GT_MSEG3_TEMP[],GT_MSEG3_TEMP,GT_LIPS2_TEMP[],GT_LIPS2_TEMP.
- ENDIF.
- "Doanh thu VND/ Net Value (VND)
- <FS_BCDT>-DOANHTHUVND = <FS_BCDT>-KURRF * <FS_BCDT>-NETWR * LW_RATIO.
- "Lợi nhuận/ Profit
- <FS_BCDT>-LOINHUAN = <FS_BCDT>-NETWR - <FS_BCDT>-WAVWR.
- "%Lợi Nhuận
- IF <FS_BCDT>-WAVWR NE 0.
- <FS_BCDT>-%LOINHUAN = ( <FS_BCDT>-NETWR - <FS_BCDT>-WAVWR ) * 100 / <FS_BCDT>-WAVWR.
- ENDIF.
- "Thuế GTGT VND/ Tax (VND)
- <FS_BCDT>-THUEVND = <FS_BCDT>-KURRF * <FS_BCDT>-MWSBP * LW_RATIO.
- ""Chi tieu 69.
- <FS_BCDT>-UPRIC73 = 0.
- READ TABLE LT_UPRIC INTO LS_UPRIC WITH KEY KNUMV = <FS_BCDT>-KNUMV KPOSN = <FS_BCDT>-POSNR.
- IF SY-SUBRC = 0.
- IF LS_UPRIC-KPEIN <> 0.
- DATA: LW_MENGE_N TYPE EKPO-MENGE.
- CALL FUNCTION 'MD_CONVERT_MATERIAL_UNIT'
- EXPORTING
- I_MATNR = <FS_BCDT>-MATNR
- I_IN_ME = <FS_BCDT>-MEINS
- I_OUT_ME = LS_UPRIC-KMEIN
- I_MENGE = 1
- IMPORTING
- E_MENGE = LW_MENGE_N
- EXCEPTIONS
- ERROR_IN_APPLICATION = 1
- ERROR = 2
- OTHERS = 3.
- <FS_BCDT>-UPRIC73 = ( LS_UPRIC-KBETR / LS_UPRIC-KPEIN ) * LW_MENGE_N.
- ENDIF.
- ENDIF.
- "Trong trường hợp các billing có screen field : VBRP-SHKZG = ‘X’ thì giá trị là âm.
- IF <FS_BCDT>-SHKZG = 'X' .
- <FS_BCDT>-UPRIC73 = <FS_BCDT>-UPRIC73 * -1.
- <FS_BCDT>-NETWR = <FS_BCDT>-NETWR * -1.
- <FS_BCDT>-MWSBP = <FS_BCDT>-MWSBP * -1.
- <FS_BCDT>-DOANHTHUVND = <FS_BCDT>-DOANHTHUVND * -1.
- <FS_BCDT>-THUEVND = <FS_BCDT>-THUEVND * -1.
- <FS_BCDT>-WAVWR2 = <FS_BCDT>-WAVWR2 * -1.
- <FS_BCDT>-WAVWR = <FS_BCDT>-WAVWR * -1.
- <FS_BCDT>-FKIMG = <FS_BCDT>-FKIMG * -1.
- <FS_BCDT>-FKLMG = <FS_BCDT>-FKLMG * -1.
- ENDIF.
- "Thành tiền / Total
- <FS_BCDT>-TOTAL = <FS_BCDT>-NETWR + <FS_BCDT>-MWSBP.
- "Thành tiền theo VND/ Total (VND)
- <FS_BCDT>-TOTALVND = <FS_BCDT>-DOANHTHUVND + <FS_BCDT>-THUEVND.
- READ TABLE GT_TVKO WITH TABLE KEY VKORG = <FS_BCDT>-VKORG.
- IF SY-SUBRC = 0.
- READ TABLE GT_ADRC2 WITH KEY ADDRNUMBER = GT_TVKO-ADRNR BINARY SEARCH.
- IF SY-SUBRC = 0.
- <FS_BCDT>-MC_NAME1 = GT_ADRC2-NAME1.
- * CONCATENATE GT_ADRC2-NAME1 GT_ADRC2-NAME2 GT_ADRC2-NAME3 INTO <FS_BCDT>-MC_NAME1 SEPARATED BY SPACE."CHANGE BY SANGVT3 4/3/2016
- ENDIF.
- ENDIF.
- READ TABLE GT_TVTWT WITH TABLE KEY VTWEG = <FS_BCDT>-VTWEG.
- IF SY-SUBRC = 0.
- <FS_BCDT>-VTEXT3 = GT_TVTWT-VTEXT.
- ENDIF.
- READ TABLE GT_TVKBT WITH TABLE KEY VKBUR = <FS_BCDT>-VKBUR.
- IF SY-SUBRC = 0.
- <FS_BCDT>-BEZEI1 = GT_TVKBT-BEZEI.
- ENDIF.
- READ TABLE GT_TVGRT WITH TABLE KEY VKGRP = <FS_BCDT>-VKGRP.
- IF SY-SUBRC = 0.
- <FS_BCDT>-BEZEI2 = GT_TVGRT-BEZEI.
- ENDIF.
- READ TABLE GT_T171T WITH TABLE KEY BZIRK = <FS_BCDT>-BZIRK_AUFT.
- IF SY-SUBRC = 0.
- <FS_BCDT>-BZTXT = GT_T171T-BZTXT.
- ENDIF.
- READ TABLE GT_T151T WITH TABLE KEY KDGRP = <FS_BCDT>-KDGRP.
- IF SY-SUBRC = 0.
- <FS_BCDT>-KTEXT = GT_T151T-KTEXT.
- ENDIF.
- * GET TEN KH (FIXED BY DATPT16 16.09.2014)
- READ TABLE GT_VBPA_FINAL INTO GS_VBPA_FINAL WITH KEY VBELN = <FS_BCDT>-VBELN BINARY SEARCH.
- IF SY-SUBRC = 0 .
- <FS_BCDT>-ADRNR = GS_VBPA_FINAL-ADRNR.
- <FS_BCDT>-MANAGER = GS_VBPA_FINAL-MANAGER.
- <FS_BCDT>-PERVE = GS_VBPA_FINAL-PERVE.
- <FS_BCDT>-PERVW = GS_VBPA_FINAL-PERVW.
- <FS_BCDT>-DOCEMPLOYEE = GS_VBPA_FINAL-DOCEMPLOYEE.
- <FS_BCDT>-PAYER_NAME = GS_VBPA_FINAL-PAYER_NAME.
- <FS_BCDT>-SOLD_NAME = GS_VBPA_FINAL-SOLD_NAME.
- <FS_BCDT>-BILL_NAME = GS_VBPA_FINAL-BILL_NAME.
- <FS_BCDT>-KUNNR = GS_VBPA_FINAL-KUNNR.
- <FS_BCDT>-KUNNR57 = GS_VBPA_FINAL-KUNNR57.
- "Updated by PHUCDT4 - 12.03.2016
- READ TABLE GT_ADR2 INTO GS_ADR2 WITH KEY KUNNR = <FS_BCDT>-KUNNR57 BINARY SEARCH.
- IF SY-SUBRC EQ '0'.
- <FS_BCDT>-TELNUMBER = GS_ADR2-TELNR_CALL.
- CLEAR: GS_ADR2.
- ENDIF.
- <FS_BCDT>-KUNNR61 = GS_VBPA_FINAL-KUNNR61.
- ENDIF.
- READ TABLE GT_ADRC WITH KEY ADDRNUMBER = <FS_BCDT>-ADRNR BINARY SEARCH.
- IF SY-SUBRC = 0.
- CONCATENATE GT_ADRC-NAME2 GT_ADRC-NAME3 GT_ADRC-NAME4 INTO <FS_BCDT>-TENKH SEPARATED BY ' '.
- IF <FS_BCDT>-TENKH IS INITIAL.
- <FS_BCDT>-TENKH = GT_ADRC-NAME1.
- ENDIF.
- ENDIF.
- READ TABLE GT_VBAP WITH TABLE KEY VBELN = <FS_BCDT>-AUBEL POSNR = <FS_BCDT>-AUPOS.
- IF SY-SUBRC = 0.
- <FS_BCDT>-BEDAE = GT_VBAP-BEDAE.
- ENDIF.
- READ TABLE GT_PA0002 WITH KEY PERNR = <FS_BCDT>-PERVE BINARY SEARCH.
- IF SY-SUBRC = 0.
- CONCATENATE GT_PA0002-NCHMC GT_PA0002-VNAMC INTO <FS_BCDT>-EMPLOYEE SEPARATED BY SPACE.
- ENDIF.
- READ TABLE GT_PA0002 WITH KEY PERNR = <FS_BCDT>-PERVW BINARY SEARCH.
- IF SY-SUBRC = 0.
- CONCATENATE GT_PA0002-NCHMC GT_PA0002-VNAMC INTO <FS_BCDT>-PERSON SEPARATED BY SPACE.
- ENDIF.
- * "FI Document
- * READ TABLE GT_BKPF_FI INTO GS_BKPF_FI WITH KEY AWKEY = <FS_BCDT>-XBLNR1.
- * IF SY-SUBRC = 0.
- * <FS_BCDT>-BELNR1 = GS_BKPF_FI-BELNR.
- * ENDIF.
- READ TABLE GT_TVKTT WITH TABLE KEY KTGRD = <FS_BCDT>-KTGRD.
- IF SY-SUBRC = 0.
- <FS_BCDT>-VTEXT2 = GT_TVKTT-VTEXT.
- ENDIF.
- "CHI TIEU 72
- "get period year
- IF <FS_BCDT>-WERKS EQ <FS_BCDT>-BUKRS.
- CLEAR: LW_PERIOD, LW_YEAR.
- LW_PERIOD = <FS_BCDT>-FKDAT+4(2).
- LW_YEAR = <FS_BCDT>-FKDAT(4).
- IF <FS_BCDT>-BEDAE EQ 'KSV' OR <FS_BCDT>-BEDAE IS INITIAL.
- IF <FS_BCDT>-MTART = 'Z53' OR <FS_BCDT>-MTART = 'Z21'.
- READ TABLE GT_GIATT WITH KEY MATNR = <FS_BCDT>-MATNR
- BWTAR = ''
- BWKEY = <FS_BCDT>-WERKS
- BDATJ = LW_YEAR
- POPER = LW_PERIOD.
- IF SY-SUBRC = 0.
- <FS_BCDT>-GIATT = GT_GIATT-PVPRS.
- ENDIF.
- ELSE.
- READ TABLE GT_GIATT WITH KEY MATNR = <FS_BCDT>-MATNR
- BWTAR = '01.SANXUAT'
- BWKEY = <FS_BCDT>-WERKS
- BDATJ = LW_YEAR
- POPER = LW_PERIOD.
- IF SY-SUBRC = 0.
- <FS_BCDT>-GIATT = GT_GIATT-PVPRS.
- ENDIF.
- ENDIF.
- ELSEIF <FS_BCDT>-BEDAE EQ 'KE' .
- IF <FS_BCDT>-MTART = 'Z53' OR <FS_BCDT>-MTART = 'Z21'.
- READ TABLE GT_GIATT WITH KEY MATNR = <FS_BCDT>-MATNR
- BWTAR = ''
- BWKEY = <FS_BCDT>-WERKS
- VBELN = <FS_BCDT>-AUBEL
- BDATJ = LW_YEAR
- POPER = LW_PERIOD.
- IF SY-SUBRC = 0.
- <FS_BCDT>-GIATT = GT_GIATT-PVPRS.
- ENDIF.
- * SELECT SINGLE PVPRS
- * FROM CKMLCR
- * INNER JOIN CKMLHD ON CKMLHD~KALNR = CKMLCR~KALNR
- * INTO <FS_BCDT>-GIATT
- * WHERE MATNR = <FS_BCDT>-MATNR
- * AND BWTAR = ''
- * AND BWKEY = <FS_BCDT>-WERKS
- * AND VBELN = <FS_BCDT>-AUBEL
- * AND CKMLCR~BDATJ = LW_YEAR
- * AND CKMLCR~POPER = LW_PERIOD.
- ELSE.
- READ TABLE GT_GIATT WITH KEY MATNR = <FS_BCDT>-MATNR
- BWTAR = '01.SANXUAT'
- BWKEY = <FS_BCDT>-WERKS
- VBELN = <FS_BCDT>-AUBEL
- BDATJ = LW_YEAR
- POPER = LW_PERIOD.
- IF SY-SUBRC = 0.
- <FS_BCDT>-GIATT = GT_GIATT-PVPRS.
- ENDIF.
- * SELECT SINGLE PVPRS
- * FROM CKMLCR
- * INNER JOIN CKMLHD ON CKMLHD~KALNR = CKMLCR~KALNR
- * INTO <FS_BCDT>-GIATT
- * WHERE MATNR = <FS_BCDT>-MATNR
- * AND BWTAR = '01.SANXUAT'
- * AND BWKEY = <FS_BCDT>-WERKS
- * AND VBELN = <FS_BCDT>-AUBEL
- * AND CKMLCR~BDATJ = LW_YEAR
- * AND CKMLCR~POPER = LW_PERIOD.
- ENDIF.
- ENDIF.
- <FS_BCDT>-GIATT = <FS_BCDT>-GIATT * <FS_BCDT>-FKLMG.
- ELSE.
- <FS_BCDT>-GIATT = <FS_BCDT>-WAVWR2.
- ENDIF.
- * "(75) Lợi nhuận thực tế
- * READ TABLE LT_UPRIC INTO LS_UPRIC WITH KEY KNUMV = <FS_BCDT>-KNUMV KPOSN = <FS_BCDT>-POSNR.
- * IF SY-SUBRC = 0.
- * <FS_BCDT>-KMEIN = LS_UPRIC-KMEIN.
- * CLEAR: LS_UPRIC.
- * ENDIF.
- * READ TABLE GT_KONV WITH KEY KNUMV = <FS_BCDT>-KNUMV KPOSN = <FS_BCDT>-POSNR.
- * IF SY-SUBRC = 0.
- * <FS_BCDT>-KMEIN = GT_KONV-KMEIN.
- * ENDIF.
- CALL FUNCTION 'MD_CONVERT_MATERIAL_UNIT'
- EXPORTING
- I_MATNR = <FS_BCDT>-MATNR
- I_IN_ME = <FS_BCDT>-MEINS
- I_OUT_ME = <FS_BCDT>-KMEIN
- I_MENGE = <FS_BCDT>-FKLMG
- IMPORTING
- E_MENGE = <FS_BCDT>-SLDVTBG
- EXCEPTIONS
- ERROR_IN_APPLICATION = 1
- ERROR = 2
- OTHERS = 3.
- * Cac chi tieu (51)-->(58) (Updated by TuanTHM 15.01.2015)
- READ TABLE GT_TSPAT WITH TABLE KEY SPART = <FS_BCDT>-SPART.
- IF SY-SUBRC = 0.
- <FS_BCDT>-SPART_D = GT_TSPAT-VTEXT.
- ENDIF.
- IF <FS_BCDT>-KLKG2 = ''.
- <FS_BCDT>-KLKG2 = <FS_BCDT>-QUANTITYKG1.
- ENDIF.
- * IF <FS_BCDT>-FKLMG NE 0.
- * <FS_BCDT>-UPRIC73 = <FS_BCDT>-KZWI2 / <FS_BCDT>-FKLMG.
- * ENDIF.
- * READ TABLE LT_UPRIC INTO LS_UPRIC WITH KEY KNUMV = <FS_BCDT>-KNUMV KPOSN = <FS_BCDT>-POSNR.
- * IF SY-SUBRC = 0.
- * <FS_BCDT>-KMEIN = LS_UPRIC-KMEIN.
- * "Fix bug
- * IF LS_UPRIC-KPEIN EQ 0.
- * LS_UPRIC-KPEIN = 1.
- * ENDIF.
- * <FS_BCDT>-UPRIC = LS_UPRIC-KBETR / LS_UPRIC-KPEIN.
- * READ TABLE GT_CURRENCY INTO GS_CURRENCY WITH KEY WAERS = LS_UPRIC-WAERS.
- * <FS_BCDT>-UPRIC = <FS_BCDT>-UPRIC * GS_CURRENCY-CURR_RATE.
- * <FS_BCDT>-UPRIC73 = <FS_BCDT>-UPRIC * <FS_BCDT>-UMVKN / <FS_BCDT>-UMVKZ.
- * CLEAR: LS_UPRIC.
- * ENDIF.
- READ TABLE GT_T001W WITH TABLE KEY WERKS = <FS_BCDT>-WERKS.
- IF SY-SUBRC = 0.
- <FS_BCDT>-WERKS_D = GT_T001W-NAME2.
- ENDIF.
- "Ten kho
- READ TABLE GT_T001L WITH TABLE KEY LGORT = <FS_BCDT>-LGORT WERKS = <FS_BCDT>-WERKS.
- IF SY-SUBRC = 0.
- <FS_BCDT>-LGOBE = GT_T001L-LGOBE.
- ENDIF.
- * TuanTHM end update.
- "vinhdt6--------
- "chi tieu 61
- " **Get IDOC
- LS_BORIDENT-OBJKEY = <FS_BCDT>-VBELN.
- LS_BORIDENT-OBJTYPE = 'VBRK'.
- CALL FUNCTION 'NREL_GET_NEIGHBOURHOOD'
- EXPORTING
- IS_OBJECT = LS_BORIDENT
- * IT_ROLERANGE =
- * IT_RELRANGE =
- * I_DEPTH = 5
- * BYPASS_BUFFER = ' '
- * IMPORTING
- * EP_EXIST_LINKS =
- TABLES
- * LINKS =
- ROLES = LT_RELROLES.
- READ TABLE LT_RELROLES INTO LS_RELROLES WITH KEY OBJTYPE = 'IDOC'.
- IF SY-SUBRC = 0 .
- <FS_BCDT>-DOCNUM = LS_RELROLES-OBJKEY.
- ENDIF.
- "Chi tieu 62
- READ TABLE GT_EDIDS WITH KEY DOCNUM = <FS_BCDT>-DOCNUM BINARY SEARCH.
- IF SY-SUBRC EQ 0.
- <FS_BCDT>-STAPA1 = GT_EDIDS-STAPA1.
- ENDIF.
- "bo sung chi tieu (69) = (23) - (68)
- <FS_BCDT>-LOINHUANVND = <FS_BCDT>-DOANHTHUVND - <FS_BCDT>-WAVWR2.
- <FS_BCDT>-LOINHUANTT = <FS_BCDT>-DOANHTHUVND - <FS_BCDT>-GIATT.
- "FI OUTBOUND
- READ TABLE GT_MKPF INTO GS_MKPF WITH KEY XBLNR = <FS_BCDT>-VGBEL.
- IF SY-SUBRC = 0 .
- CONCATENATE GS_MKPF-MBLNR GS_MKPF-MJAHR INTO <FS_BCDT>-AWKEY.
- ENDIF.
- <FS_BCDT>-AWKEY_ACC = <FS_BCDT>-VBELN.
- *---CAM XOA
- "CT67 Expiration Date (Hạn dùng)
- * CALL FUNCTION 'ZCORE_FM_GET_CRTRT_MULTIVAL_MM'
- * EXPORTING
- * I_MATNR = <FS_BCDT>-MATNR
- * I_CHARG = <FS_BCDT>-CHARG
- * I_KLART = '023'
- ** I_WERKS = <FS_BCDT>-WERKS
- ** I_CLASS = 'Z_NL_TTY'
- * TABLES
- * IT_ATNAM = LT_ATNAM
- * IT_CHARACT = LT_CHARACT
- * IT_CHARNUM = LT_CHARNUM
- * .
- * READ TABLE LT_CHARNUM INTO LS_CHARNUM WITH KEY CHARACT = 'LOBM_VFDAT'.
- * IF SY-SUBRC = 0.
- * WRITE LS_CHARNUM-VALUE_FROM TO LW_DATE.
- * CONCATENATE LW_DATE+1(1) LW_DATE+3(7) INTO <FS_BCDT>-ZMODE67.
- * ENDIF.
- CLEAR:LW_ADRNR, LW_NAME1, LW_NAME2, LW_NAME3, LW_NAME4, LW_STLNR.
- ENDLOOP.
- * DELETE GT_BCDT WHERE DPREG NOT IN S_DPREG OR DPTBG NOT IN S_DPTBG.
- "TuanTHM update tham so "Sales Employee", "Person respons" & "Billing status".
- DELETE GT_BCDT WHERE PERVE NOT IN S_PERVE.
- * IF S_MATKL IS NOT INITIAL.
- * DELETE GT_BCDT WHERE MATKL NOT IN S_MATKL.
- * ENDIF.
- IF P_COM EQ 'X'.
- DELETE GT_BCDT WHERE FKSTO EQ 'X' OR SFAKN NE ''.
- ELSEIF P_CAN EQ 'X'.
- DELETE GT_BCDT WHERE FKSTO NE 'X' AND SFAKN EQ ''.
- ENDIF.
- "TuanTHM end update.
- PERFORM SELECT_BKPF_FI.
- SORT GT_BCDT BY VBELN ASCENDING.
- "PHÂN QUYỀN THEO Sales Orgnization
- LOOP AT GT_BCDT ASSIGNING <FS_BCDT>.
- READ TABLE GT_BKPF_FI INTO GS_BKPF_FI WITH KEY AWKEY = <FS_BCDT>-AWKEY BINARY SEARCH.
- IF SY-SUBRC = 0.
- <FS_BCDT>-BELNR = GS_BKPF_FI-BELNR.
- ENDIF.
- READ TABLE GT_BKPF INTO GS_BKPF_FI WITH KEY AWKEY = <FS_BCDT>-AWKEY_ACC BINARY SEARCH.
- IF SY-SUBRC = 0.
- <FS_BCDT>-BELNR1 = GS_BKPF_FI-BELNR.
- <FS_BCDT>-XBLNR1 = GS_BKPF_FI-XBLNR.
- ENDIF.
- * AUTHORITY-CHECK OBJECT 'V_VBRK_VKO'
- * ID 'ACTVT' FIELD '03'
- * ID 'VKORG' FIELD <FS_BCDT>-VKORG.
- * IF SY-SUBRC <> 0.
- * DELETE GT_BCDT WHERE VBELN = <FS_BCDT>-VBELN .
- * ENDIF.
- READ TABLE GT_TWEWT WITH TABLE KEY EXTWG = <FS_BCDT>-EXTWG.
- IF SY-SUBRC = 0.
- <FS_BCDT>-EWBEZ = GT_TWEWT-EWBEZ.
- ENDIF.
- ENDLOOP.
- * IF S_STAPA1 IS NOT INITIAL.
- * DELETE GT_BCDT WHERE STAPA1 NOT IN S_STAPA1.
- * ENDIF.
- ENDFORM.
- *&---------------------------------------------------------------------*
- *& Form EXPORT_ALV
- *&---------------------------------------------------------------------*
- * text
- *----------------------------------------------------------------------*
- FORM EXPORT_ALV.
- PERFORM BUILD_FIELDCAT.
- PERFORM BUILD_LAYOUT.
- CALL FUNCTION 'REUSE_ALV_GRID_DISPLAY_LVC'
- EXPORTING
- I_CALLBACK_PROGRAM = SY-REPID
- I_CALLBACK_TOP_OF_PAGE = 'TOP_OF_PAGE'
- I_CALLBACK_USER_COMMAND = 'HANDLE_USER_COMMAND'
- IS_LAYOUT_LVC = GS_LAYOUT
- IT_FIELDCAT_LVC = GT_FIELDCAT
- IT_SORT_LVC = GT_SORT
- I_SAVE = 'A'
- TABLES
- T_OUTTAB = GT_BCDT
- EXCEPTIONS
- PROGRAM_ERROR = 1
- OTHERS = 2.
- ENDFORM. "EXPORT_ALV
- *&---------------------------------------------------------------------*
- *& Form BUILD_FIELDCAT
- *&---------------------------------------------------------------------*
- * text
- *----------------------------------------------------------------------*
- FORM BUILD_FIELDCAT .
- CLEAR: GS_FIELDCAT, GT_FIELDCAT.
- ""NGHIA.NGUYEN.CITEK 06.10.2016 bỏ các chỉ tiêu Company Code / Product Hierarchy / Quantity in Base Unit / IDOC / AP Invoice / Real Price / Real Profit
- "" Base Unit / Product Hierarchy level 1 / Product Hierarchy level 2 / Product Hierarchy level 3 / Material’s purpose / Regist. No.
- ""requirement type/ SDT khach hang.
- * GS_FIELDCAT-FIELDNAME = 'BUKRS'.
- * GS_FIELDCAT-JUST = 'L'.
- * GS_FIELDCAT-REPTEXT = 'Company Code'.
- * APPEND GS_FIELDCAT TO GT_FIELDCAT.
- * CLEAR GS_FIELDCAT.
- * GS_FIELDCAT-FIELDNAME = 'TNDR_TRKID'.
- * GS_FIELDCAT-JUST = 'L'.
- * GS_FIELDCAT-REPTEXT = 'Commercial Invoice Number'.
- * GS_FIELDCAT-OUTPUTLEN = '000035'.
- * GS_FIELDCAT-LOWERCASE = 'X'.
- * APPEND GS_FIELDCAT TO GT_FIELDCAT.
- * CLEAR GS_FIELDCAT.
- GS_FIELDCAT-FIELDNAME = 'MATNR'.
- GS_FIELDCAT-JUST = 'L'.
- GS_FIELDCAT-NO_ZERO = 'X'.
- GS_FIELDCAT-REPTEXT = 'Material'.
- GS_FIELDCAT-OUTPUTLEN = '000018'.
- GS_FIELDCAT-CONVEXIT = 'MATN1'.
- APPEND GS_FIELDCAT TO GT_FIELDCAT.
- CLEAR GS_FIELDCAT.
- GS_FIELDCAT-FIELDNAME = 'ARKTX'.
- GS_FIELDCAT-JUST = 'L'.
- GS_FIELDCAT-REPTEXT = 'Description '.
- GS_FIELDCAT-NO_ZERO = 'X'.
- GS_FIELDCAT-OUTPUTLEN = '000040'.
- GS_FIELDCAT-LOWERCASE = 'X'.
- APPEND GS_FIELDCAT TO GT_FIELDCAT.
- CLEAR GS_FIELDCAT.
- * GS_FIELDCAT-FIELDNAME = 'PRODH_DE'.
- * GS_FIELDCAT-JUST = 'L'.
- * GS_FIELDCAT-REPTEXT = 'Product Hierarchy '.
- * GS_FIELDCAT-OUTPUTLEN = '000255'.
- * GS_FIELDCAT-LOWERCASE = 'X'.
- * APPEND GS_FIELDCAT TO GT_FIELDCAT.
- * CLEAR GS_FIELDCAT.
- GS_FIELDCAT-FIELDNAME = 'FKIMG'.
- GS_FIELDCAT-JUST = 'R'.
- GS_FIELDCAT-REPTEXT = 'Quantity (Sales Unit)'.
- GS_FIELDCAT-QUANTITY = 'KG'.
- GS_FIELDCAT-OUTPUTLEN = '000017'.
- APPEND GS_FIELDCAT TO GT_FIELDCAT.
- CLEAR GS_FIELDCAT.
- * GS_FIELDCAT-FIELDNAME = 'FKLMG'.
- * GS_FIELDCAT-JUST = 'R'.
- * GS_FIELDCAT-REPTEXT = 'Quantity in Base Unit'.
- * GS_FIELDCAT-QUANTITY = 'KIE'.
- * GS_FIELDCAT-OUTPUTLEN = '000017'.
- * APPEND GS_FIELDCAT TO GT_FIELDCAT.
- * CLEAR GS_FIELDCAT.
- GS_FIELDCAT-FIELDNAME = 'NETWR'.
- GS_FIELDCAT-JUST = 'R'.
- GS_FIELDCAT-REPTEXT = 'Net Value'.
- GS_FIELDCAT-CFIELDNAME = 'WAERK'.
- GS_FIELDCAT-OUTPUTLEN = '000021'.
- APPEND GS_FIELDCAT TO GT_FIELDCAT.
- CLEAR GS_FIELDCAT.
- GS_FIELDCAT-FIELDNAME = 'MWSBP'.
- GS_FIELDCAT-JUST = 'R'.
- GS_FIELDCAT-REPTEXT = 'Tax '.
- GS_FIELDCAT-CFIELDNAME = 'WAERK'.
- GS_FIELDCAT-OUTPUTLEN = '000018'.
- * GS_FIELDCAT-DO_SUM = 'X'.
- APPEND GS_FIELDCAT TO GT_FIELDCAT.
- CLEAR GS_FIELDCAT.
- GS_FIELDCAT-FIELDNAME = 'TOTAL'.
- GS_FIELDCAT-JUST = 'R'.
- GS_FIELDCAT-REPTEXT = 'Total'.
- GS_FIELDCAT-CFIELDNAME = 'WAERK'.
- GS_FIELDCAT-OUTPUTLEN = '000018'.
- APPEND GS_FIELDCAT TO GT_FIELDCAT.
- CLEAR GS_FIELDCAT.
- GS_FIELDCAT-FIELDNAME = 'WAVWR'.
- GS_FIELDCAT-JUST = 'R'.
- GS_FIELDCAT-REPTEXT = 'COGS '.
- GS_FIELDCAT-CFIELDNAME = 'WAERK'.
- GS_FIELDCAT-OUTPUTLEN = '000018'.
- APPEND GS_FIELDCAT TO GT_FIELDCAT.
- CLEAR GS_FIELDCAT.
- GS_FIELDCAT-FIELDNAME = 'LOINHUAN'.
- GS_FIELDCAT-JUST = 'R'.
- GS_FIELDCAT-REPTEXT = 'Profit'.
- GS_FIELDCAT-CFIELDNAME = 'WAERK'.
- GS_FIELDCAT-OUTPUTLEN = '000018'.
- APPEND GS_FIELDCAT TO GT_FIELDCAT.
- CLEAR GS_FIELDCAT.
- GS_FIELDCAT-FIELDNAME = '%LOINHUAN'.
- GS_FIELDCAT-JUST = 'R'.
- GS_FIELDCAT-REPTEXT = '% Profit '.
- GS_FIELDCAT-OUTPUTLEN = '000018'.
- APPEND GS_FIELDCAT TO GT_FIELDCAT.
- CLEAR GS_FIELDCAT.
- GS_FIELDCAT-FIELDNAME = 'DOANHTHUVND'.
- GS_FIELDCAT-JUST = 'R'.
- GS_FIELDCAT-REPTEXT = 'Net Value (VND) '.
- GS_FIELDCAT-CURRENCY = 'VND'.
- GS_FIELDCAT-OUTPUTLEN = '000021'.
- APPEND GS_FIELDCAT TO GT_FIELDCAT.
- CLEAR GS_FIELDCAT.
- GS_FIELDCAT-FIELDNAME = 'THUEVND'.
- GS_FIELDCAT-JUST = 'R'.
- GS_FIELDCAT-REPTEXT = 'Tax (VND)'.
- GS_FIELDCAT-CURRENCY = 'VND'.
- GS_FIELDCAT-OUTPUTLEN = '000018'.
- APPEND GS_FIELDCAT TO GT_FIELDCAT.
- CLEAR GS_FIELDCAT.
- GS_FIELDCAT-FIELDNAME = 'TOTALVND'.
- GS_FIELDCAT-JUST = 'R'.
- GS_FIELDCAT-REPTEXT = 'Total (VND)'.
- GS_FIELDCAT-CURRENCY = 'VND'.
- GS_FIELDCAT-OUTPUTLEN = '000021'.
- APPEND GS_FIELDCAT TO GT_FIELDCAT.
- CLEAR GS_FIELDCAT.
- GS_FIELDCAT-FIELDNAME = 'VKORG'.
- GS_FIELDCAT-JUST = 'C'.
- GS_FIELDCAT-REPTEXT = 'Sales Organization '.
- APPEND GS_FIELDCAT TO GT_FIELDCAT.
- CLEAR GS_FIELDCAT.
- GS_FIELDCAT-FIELDNAME = 'SOTEXT'.
- GS_FIELDCAT-JUST = 'L'.
- GS_FIELDCAT-REPTEXT = 'Sales Organization Name '.
- * GS_FIELDCAT-OUTPUTLEN = '000025'.
- APPEND GS_FIELDCAT TO GT_FIELDCAT.
- CLEAR GS_FIELDCAT.
- GS_FIELDCAT-FIELDNAME = 'VTWEG'.
- GS_FIELDCAT-JUST = 'C'.
- GS_FIELDCAT-REPTEXT = 'Distribution Channel'.
- APPEND GS_FIELDCAT TO GT_FIELDCAT.
- CLEAR GS_FIELDCAT.
- GS_FIELDCAT-FIELDNAME = 'VTEXT3'.
- GS_FIELDCAT-JUST = 'L'.
- GS_FIELDCAT-REPTEXT = 'Distribution Channel Name '.
- GS_FIELDCAT-OUTPUTLEN = '000020'.
- GS_FIELDCAT-LOWERCASE = 'X'.
- APPEND GS_FIELDCAT TO GT_FIELDCAT.
- CLEAR GS_FIELDCAT.
- GS_FIELDCAT-FIELDNAME = 'VKBUR '.
- GS_FIELDCAT-JUST = 'C'.
- GS_FIELDCAT-REPTEXT = 'Sales Office '.
- APPEND GS_FIELDCAT TO GT_FIELDCAT.
- CLEAR GS_FIELDCAT.
- GS_FIELDCAT-FIELDNAME = 'BEZEI1'.
- GS_FIELDCAT-JUST = 'L'.
- GS_FIELDCAT-REPTEXT = 'Sales Office Name'.
- GS_FIELDCAT-OUTPUTLEN = '000025'.
- GS_FIELDCAT-LOWERCASE = 'X'.
- APPEND GS_FIELDCAT TO GT_FIELDCAT.
- CLEAR GS_FIELDCAT.
- GS_FIELDCAT-FIELDNAME = 'VKGRP'.
- GS_FIELDCAT-JUST = 'C'.
- GS_FIELDCAT-REPTEXT = 'Sales Group '.
- APPEND GS_FIELDCAT TO GT_FIELDCAT.
- CLEAR GS_FIELDCAT.
- GS_FIELDCAT-FIELDNAME = 'BEZEI2'.
- GS_FIELDCAT-JUST = 'L'.
- GS_FIELDCAT-REPTEXT = 'Sales Group Name '.
- GS_FIELDCAT-OUTPUTLEN = '000020'.
- GS_FIELDCAT-LOWERCASE = 'X'.
- APPEND GS_FIELDCAT TO GT_FIELDCAT.
- CLEAR GS_FIELDCAT.
- GS_FIELDCAT-FIELDNAME = 'BZIRK_AUFT'.
- GS_FIELDCAT-JUST = 'C'.
- GS_FIELDCAT-REPTEXT = 'Sales District'.
- APPEND GS_FIELDCAT TO GT_FIELDCAT.
- CLEAR GS_FIELDCAT.
- GS_FIELDCAT-FIELDNAME = 'BZTXT'.
- GS_FIELDCAT-JUST = 'L'.
- GS_FIELDCAT-REPTEXT = 'Sales District Name'.
- GS_FIELDCAT-OUTPUTLEN = '000020'.
- GS_FIELDCAT-LOWERCASE = 'X'.
- APPEND GS_FIELDCAT TO GT_FIELDCAT.
- CLEAR GS_FIELDCAT.
- GS_FIELDCAT-FIELDNAME = 'EMPLOYEE'.
- GS_FIELDCAT-JUST = 'L'.
- GS_FIELDCAT-REPTEXT = 'Sales Employee'.
- GS_FIELDCAT-OUTPUTLEN = '000100'.
- GS_FIELDCAT-LOWERCASE = 'X'.
- APPEND GS_FIELDCAT TO GT_FIELDCAT.
- CLEAR GS_FIELDCAT.
- GS_FIELDCAT-FIELDNAME = 'VBELN'.
- GS_FIELDCAT-JUST = 'C'.
- GS_FIELDCAT-NO_ZERO = 'X'.
- GS_FIELDCAT-REPTEXT = 'Billing Document'.
- GS_FIELDCAT-CONVEXIT = 'ALPHA'.
- APPEND GS_FIELDCAT TO GT_FIELDCAT.
- CLEAR GS_FIELDCAT.
- GS_FIELDCAT-FIELDNAME = 'FKDAT'.
- GS_FIELDCAT-JUST = 'C'.
- GS_FIELDCAT-REPTEXT = 'Billing Date'.
- APPEND GS_FIELDCAT TO GT_FIELDCAT.
- CLEAR GS_FIELDCAT.
- GS_FIELDCAT-FIELDNAME = 'BELNR1'.
- GS_FIELDCAT-JUST = 'L'.
- GS_FIELDCAT-REPTEXT = 'Accouting Document'.
- APPEND GS_FIELDCAT TO GT_FIELDCAT.
- CLEAR GS_FIELDCAT.
- GS_FIELDCAT-FIELDNAME = 'WAERK'.
- GS_FIELDCAT-JUST = 'C'.
- GS_FIELDCAT-REPTEXT = 'Currency '.
- APPEND GS_FIELDCAT TO GT_FIELDCAT.
- CLEAR GS_FIELDCAT.
- GS_FIELDCAT-FIELDNAME = 'KTGRD'.
- GS_FIELDCAT-JUST = 'C'.
- GS_FIELDCAT-REPTEXT = 'Customer Account Assignment Group '.
- APPEND GS_FIELDCAT TO GT_FIELDCAT.
- CLEAR GS_FIELDCAT.
- GS_FIELDCAT-FIELDNAME = 'VTEXT2'.
- GS_FIELDCAT-JUST = 'L'.
- GS_FIELDCAT-REPTEXT = 'Customer Account Assignment Group Description '.
- GS_FIELDCAT-OUTPUTLEN = '000020'.
- GS_FIELDCAT-LOWERCASE = 'X'.
- APPEND GS_FIELDCAT TO GT_FIELDCAT.
- CLEAR GS_FIELDCAT.
- GS_FIELDCAT-FIELDNAME = 'BSTKD'.
- GS_FIELDCAT-JUST = 'L'.
- GS_FIELDCAT-REPTEXT = 'PO Number'.
- GS_FIELDCAT-OUTPUTLEN = '000035'.
- GS_FIELDCAT-LOWERCASE = 'X'.
- APPEND GS_FIELDCAT TO GT_FIELDCAT.
- CLEAR GS_FIELDCAT.
- GS_FIELDCAT-FIELDNAME = 'AUBEL'.
- GS_FIELDCAT-JUST = 'C'.
- GS_FIELDCAT-REPTEXT = 'Sales Document'.
- GS_FIELDCAT-CONVEXIT = 'ALPHA'.
- APPEND GS_FIELDCAT TO GT_FIELDCAT.
- CLEAR GS_FIELDCAT.
- GS_FIELDCAT-FIELDNAME = 'SPART'.
- GS_FIELDCAT-JUST = 'R'.
- GS_FIELDCAT-REPTEXT = 'Division'.
- APPEND GS_FIELDCAT TO GT_FIELDCAT.
- CLEAR GS_FIELDCAT.
- GS_FIELDCAT-FIELDNAME = 'SPART_D'.
- GS_FIELDCAT-JUST = 'L'.
- GS_FIELDCAT-REPTEXT = 'Division Name'.
- APPEND GS_FIELDCAT TO GT_FIELDCAT.
- CLEAR GS_FIELDCAT.
- GS_FIELDCAT-FIELDNAME = 'WERKS'.
- GS_FIELDCAT-JUST = 'R'.
- GS_FIELDCAT-REPTEXT = 'Plant'.
- APPEND GS_FIELDCAT TO GT_FIELDCAT.
- CLEAR GS_FIELDCAT.
- GS_FIELDCAT-FIELDNAME = 'WERKS_D'.
- GS_FIELDCAT-JUST = 'L'.
- GS_FIELDCAT-REPTEXT = 'Plant Name'.
- APPEND GS_FIELDCAT TO GT_FIELDCAT.
- CLEAR GS_FIELDCAT.
- GS_FIELDCAT-FIELDNAME = 'LGORT'.
- GS_FIELDCAT-JUST = 'R'.
- GS_FIELDCAT-REPTEXT = 'SLOC'.
- APPEND GS_FIELDCAT TO GT_FIELDCAT.
- CLEAR GS_FIELDCAT.
- GS_FIELDCAT-FIELDNAME = 'LGOBE'.
- GS_FIELDCAT-JUST = 'L'.
- GS_FIELDCAT-REPTEXT = 'SLOC Name'.
- APPEND GS_FIELDCAT TO GT_FIELDCAT.
- CLEAR GS_FIELDCAT.
- GS_FIELDCAT-FIELDNAME = 'FKSTO'.
- GS_FIELDCAT-JUST = 'L'.
- GS_FIELDCAT-REPTEXT = 'Cancel Status'.
- APPEND GS_FIELDCAT TO GT_FIELDCAT.
- CLEAR GS_FIELDCAT.
- GS_FIELDCAT-FIELDNAME = 'SFAKN'.
- GS_FIELDCAT-JUST = 'R'.
- GS_FIELDCAT-REPTEXT = 'Cancelled billing'.
- APPEND GS_FIELDCAT TO GT_FIELDCAT.
- CLEAR GS_FIELDCAT.
- * GS_FIELDCAT-FIELDNAME = 'DOCNUM'.
- * GS_FIELDCAT-JUST = 'L'.
- * GS_FIELDCAT-REPTEXT = 'IDOC'.
- * GS_FIELDCAT-LOWERCASE = 'X'.
- * APPEND GS_FIELDCAT TO GT_FIELDCAT.
- * CLEAR GS_FIELDCAT.
- * GS_FIELDCAT-FIELDNAME = 'STAPA1'.
- * GS_FIELDCAT-JUST = 'L'.
- * GS_FIELDCAT-REPTEXT = 'AP Invoice'.
- * GS_FIELDCAT-LOWERCASE = 'X'.
- * APPEND GS_FIELDCAT TO GT_FIELDCAT.
- * CLEAR GS_FIELDCAT.
- GS_FIELDCAT-FIELDNAME = 'BISMT'.
- GS_FIELDCAT-JUST = 'L'.
- GS_FIELDCAT-REPTEXT = 'Old material'.
- GS_FIELDCAT-LOWERCASE = 'X'.
- APPEND GS_FIELDCAT TO GT_FIELDCAT.
- CLEAR GS_FIELDCAT.
- GS_FIELDCAT-FIELDNAME = 'ERNAM'.
- GS_FIELDCAT-JUST = 'L'.
- GS_FIELDCAT-REPTEXT = 'User'.
- GS_FIELDCAT-LOWERCASE = 'X'.
- APPEND GS_FIELDCAT TO GT_FIELDCAT.
- CLEAR GS_FIELDCAT.
- GS_FIELDCAT-FIELDNAME = 'WADAT_IST'.
- GS_FIELDCAT-JUST = 'C'.
- GS_FIELDCAT-REPTEXT = 'Actual GI Date.'.
- APPEND GS_FIELDCAT TO GT_FIELDCAT.
- CLEAR GS_FIELDCAT.
- GS_FIELDCAT-FIELDNAME = 'WAVWR2'.
- GS_FIELDCAT-JUST = 'R'.
- GS_FIELDCAT-REPTEXT = 'COGS (VND)'.
- GS_FIELDCAT-CURRENCY = 'VND'.
- APPEND GS_FIELDCAT TO GT_FIELDCAT.
- CLEAR GS_FIELDCAT.
- GS_FIELDCAT-FIELDNAME = 'LOINHUANVND'.
- GS_FIELDCAT-JUST = 'R'.
- GS_FIELDCAT-REPTEXT = 'Profit (VND)'.
- GS_FIELDCAT-CURRENCY = 'VND'.
- APPEND GS_FIELDCAT TO GT_FIELDCAT.
- CLEAR GS_FIELDCAT.
- GS_FIELDCAT-FIELDNAME = 'AUPOS'.
- GS_FIELDCAT-JUST = 'C'.
- GS_FIELDCAT-REPTEXT = 'SO Line '.
- APPEND GS_FIELDCAT TO GT_FIELDCAT.
- CLEAR GS_FIELDCAT.
- * GS_FIELDCAT-FIELDNAME = 'BEDAE'.
- * GS_FIELDCAT-JUST = 'C'.
- * GS_FIELDCAT-REPTEXT = 'Requirement Type'.
- * APPEND GS_FIELDCAT TO GT_FIELDCAT.
- * CLEAR GS_FIELDCAT.
- * GS_FIELDCAT-FIELDNAME = 'GIATT'.
- * GS_FIELDCAT-JUST = 'R'.
- * GS_FIELDCAT-REPTEXT = 'Real Price'.
- * GS_FIELDCAT-CURRENCY = 'VND'.
- * APPEND GS_FIELDCAT TO GT_FIELDCAT.
- * CLEAR GS_FIELDCAT.
- * GS_FIELDCAT-FIELDNAME = 'LOINHUANTT'.
- * GS_FIELDCAT-JUST = 'R'.
- * GS_FIELDCAT-REPTEXT = 'Real Profit'.
- * GS_FIELDCAT-CURRENCY = 'VND'.
- * APPEND GS_FIELDCAT TO GT_FIELDCAT.
- * CLEAR GS_FIELDCAT.
- GS_FIELDCAT-FIELDNAME = 'XBLNR1'.
- GS_FIELDCAT-JUST = 'L'.
- GS_FIELDCAT-REPTEXT = 'FI Document'.
- GS_FIELDCAT-CONVEXIT = 'ALPHA'.
- APPEND GS_FIELDCAT TO GT_FIELDCAT.
- CLEAR GS_FIELDCAT.
- GS_FIELDCAT-FIELDNAME = 'charg'.
- GS_FIELDCAT-JUST = 'L'.
- GS_FIELDCAT-REPTEXT = 'Batch (Số lô)'.
- GS_FIELDCAT-CONVEXIT = 'ALPHA'.
- APPEND GS_FIELDCAT TO GT_FIELDCAT.
- CLEAR GS_FIELDCAT.
- GS_FIELDCAT-FIELDNAME = 'KUNNR'.
- GS_FIELDCAT-JUST = 'L'.
- GS_FIELDCAT-REPTEXT = 'Payer Number'.
- GS_FIELDCAT-CONVEXIT = 'ALPHA'.
- APPEND GS_FIELDCAT TO GT_FIELDCAT.
- CLEAR GS_FIELDCAT.
- GS_FIELDCAT-FIELDNAME = 'PAYER_NAME'.
- GS_FIELDCAT-JUST = 'L'.
- GS_FIELDCAT-REPTEXT = 'Payer Name'.
- GS_FIELDCAT-CONVEXIT = 'ALPHA'.
- APPEND GS_FIELDCAT TO GT_FIELDCAT.
- CLEAR GS_FIELDCAT.
- GS_FIELDCAT-FIELDNAME = 'KUNNR57'.
- GS_FIELDCAT-JUST = 'L'.
- GS_FIELDCAT-REPTEXT = 'Sold to party Number'.
- GS_FIELDCAT-CONVEXIT = 'ALPHA'.
- APPEND GS_FIELDCAT TO GT_FIELDCAT.
- CLEAR GS_FIELDCAT.
- GS_FIELDCAT-FIELDNAME = 'SOLD_NAME'.
- GS_FIELDCAT-JUST = 'L'.
- GS_FIELDCAT-REPTEXT = 'Sold to party Name'.
- GS_FIELDCAT-CONVEXIT = 'ALPHA'.
- APPEND GS_FIELDCAT TO GT_FIELDCAT.
- CLEAR GS_FIELDCAT.
- GS_FIELDCAT-FIELDNAME = 'KUNNR61'.
- GS_FIELDCAT-JUST = 'L'.
- GS_FIELDCAT-REPTEXT = 'Bill to party Number'.
- GS_FIELDCAT-CONVEXIT = 'ALPHA'.
- APPEND GS_FIELDCAT TO GT_FIELDCAT.
- CLEAR GS_FIELDCAT.
- GS_FIELDCAT-FIELDNAME = 'BILL_NAME'.
- GS_FIELDCAT-JUST = 'L'.
- GS_FIELDCAT-REPTEXT = 'Bill to party Name'.
- GS_FIELDCAT-CONVEXIT = 'ALPHA'.
- APPEND GS_FIELDCAT TO GT_FIELDCAT.
- CLEAR GS_FIELDCAT.
- GS_FIELDCAT-FIELDNAME = 'MATKL'.
- GS_FIELDCAT-JUST = 'L'.
- GS_FIELDCAT-REPTEXT = 'Material Group'.
- GS_FIELDCAT-CONVEXIT = 'ALPHA'.
- APPEND GS_FIELDCAT TO GT_FIELDCAT.
- CLEAR GS_FIELDCAT.
- * GS_FIELDCAT-FIELDNAME = 'ZMODE67'.
- * GS_FIELDCAT-JUST = 'L'.
- * GS_FIELDCAT-REPTEXT = 'Expiration Date (Hạn dùng)'.
- * GS_FIELDCAT-DECIMALS_O = '2'.
- * GS_FIELDCAT-OUTPUTLEN = '000012'.
- * APPEND GS_FIELDCAT TO GT_FIELDCAT.
- * CLEAR GS_FIELDCAT.
- GS_FIELDCAT-FIELDNAME = 'VRKME'.
- GS_FIELDCAT-JUST = 'L'.
- GS_FIELDCAT-REPTEXT = 'Sales Unit '.
- GS_FIELDCAT-DECIMALS_O = '2'.
- GS_FIELDCAT-OUTPUTLEN = '000008'.
- APPEND GS_FIELDCAT TO GT_FIELDCAT.
- CLEAR GS_FIELDCAT.
- GS_FIELDCAT-FIELDNAME = 'BELNR'.
- GS_FIELDCAT-JUST = 'L'.
- GS_FIELDCAT-REPTEXT = 'FI – Outbound doc'.
- GS_FIELDCAT-DECIMALS_O = '2'.
- GS_FIELDCAT-OUTPUTLEN = '000010'.
- APPEND GS_FIELDCAT TO GT_FIELDCAT.
- CLEAR GS_FIELDCAT.
- GS_FIELDCAT-FIELDNAME = 'VGPOS'.
- GS_FIELDCAT-JUST = 'L'.
- GS_FIELDCAT-REPTEXT = 'DO line'.
- GS_FIELDCAT-DECIMALS_O = '2'.
- GS_FIELDCAT-OUTPUTLEN = '000008'.
- APPEND GS_FIELDCAT TO GT_FIELDCAT.
- CLEAR GS_FIELDCAT.
- GS_FIELDCAT-FIELDNAME = 'WGBEZ60'.
- GS_FIELDCAT-JUST = 'L'.
- GS_FIELDCAT-REPTEXT = 'Material Group'.
- GS_FIELDCAT-DECIMALS_O = '2'.
- GS_FIELDCAT-OUTPUTLEN = '000040'.
- APPEND GS_FIELDCAT TO GT_FIELDCAT.
- CLEAR GS_FIELDCAT.
- * GS_FIELDCAT-FIELDNAME = 'MEINS'.
- * GS_FIELDCAT-JUST = 'L'.
- * GS_FIELDCAT-REPTEXT = 'Base Unit'.
- * GS_FIELDCAT-DECIMALS_O = '2'.
- * GS_FIELDCAT-OUTPUTLEN = '000003'.
- * APPEND GS_FIELDCAT TO GT_FIELDCAT.
- * CLEAR GS_FIELDCAT.
- GS_FIELDCAT-FIELDNAME = 'UPRIC73'.
- GS_FIELDCAT-JUST = 'R'.
- GS_FIELDCAT-REPTEXT = 'Đơn giá bán '.
- GS_FIELDCAT-DECIMALS_O = '2'.
- GS_FIELDCAT-CFIELDNAME = 'WAERK'.
- GS_FIELDCAT-OUTPUTLEN = '000013'.
- APPEND GS_FIELDCAT TO GT_FIELDCAT.
- CLEAR GS_FIELDCAT.
- GS_FIELDCAT-FIELDNAME = 'vgbel'.
- GS_FIELDCAT-JUST = 'L'.
- GS_FIELDCAT-REPTEXT = 'Outbound Delivery'.
- GS_FIELDCAT-DECIMALS_O = '2'.
- GS_FIELDCAT-OUTPUTLEN = '000010'.
- APPEND GS_FIELDCAT TO GT_FIELDCAT.
- CLEAR GS_FIELDCAT.
- GS_FIELDCAT-FIELDNAME = 'FKART'.
- GS_FIELDCAT-JUST = 'C'.
- GS_FIELDCAT-REPTEXT = 'Billing type'.
- GS_FIELDCAT-DECIMALS_O = '2'.
- GS_FIELDCAT-OUTPUTLEN = '000004'.
- APPEND GS_FIELDCAT TO GT_FIELDCAT.
- CLEAR GS_FIELDCAT.
- GS_FIELDCAT-FIELDNAME = 'FKARTT'.
- GS_FIELDCAT-JUST = 'L'.
- GS_FIELDCAT-REPTEXT = 'Description Billing type'.
- GS_FIELDCAT-DECIMALS_O = '2'.
- GS_FIELDCAT-OUTPUTLEN = '000040'.
- APPEND GS_FIELDCAT TO GT_FIELDCAT.
- CLEAR GS_FIELDCAT.
- * GS_FIELDCAT-FIELDNAME = 'prctr'.
- * GS_FIELDCAT-JUST = 'L'.
- * GS_FIELDCAT-REPTEXT = 'Profit Center'.
- * GS_FIELDCAT-DECIMALS_O = '2'.
- * GS_FIELDCAT-OUTPUTLEN = '000010'.
- * APPEND GS_FIELDCAT TO GT_FIELDCAT.
- * CLEAR GS_FIELDCAT.
- * GS_FIELDCAT-FIELDNAME = 'PRODH1'.
- * GS_FIELDCAT-JUST = 'L'.
- * GS_FIELDCAT-REPTEXT = 'Product Hierarchy level 1'.
- * APPEND GS_FIELDCAT TO GT_FIELDCAT.
- * CLEAR GS_FIELDCAT.
- *
- * GS_FIELDCAT-FIELDNAME = 'PRODH2'.
- * GS_FIELDCAT-JUST = 'L'.
- * GS_FIELDCAT-REPTEXT = 'Product Hierarchy level 2'.
- * APPEND GS_FIELDCAT TO GT_FIELDCAT.
- * CLEAR GS_FIELDCAT.
- *
- * GS_FIELDCAT-FIELDNAME = 'PRODH3'.
- * GS_FIELDCAT-JUST = 'L'.
- * GS_FIELDCAT-REPTEXT = 'Product Hierarchy level 3'.
- * APPEND GS_FIELDCAT TO GT_FIELDCAT.
- * CLEAR GS_FIELDCAT.
- * GS_FIELDCAT-FIELDNAME = 'TELNUMBER'.
- * GS_FIELDCAT-JUST = 'L'.
- * GS_FIELDCAT-REPTEXT = 'Số điện thoại khách hàng'.
- * GS_FIELDCAT-OUTPUTLEN = '000020'.
- * GS_FIELDCAT-LOWERCASE = 'X'.
- * APPEND GS_FIELDCAT TO GT_FIELDCAT.
- * CLEAR GS_FIELDCAT.
- * GS_FIELDCAT-FIELDNAME = 'EWBEZ'.
- * GS_FIELDCAT-JUST = 'L'.
- * GS_FIELDCAT-REPTEXT = 'Material’s purpose'.
- * GS_FIELDCAT-OUTPUTLEN = '000020'.
- * GS_FIELDCAT-LOWERCASE = 'X'.
- * APPEND GS_FIELDCAT TO GT_FIELDCAT.
- * CLEAR GS_FIELDCAT.
- * GS_FIELDCAT-FIELDNAME = 'WRKST'.
- * GS_FIELDCAT-JUST = 'L'.
- * GS_FIELDCAT-REPTEXT = 'Regis. No'.
- * GS_FIELDCAT-OUTPUTLEN = '000020'.
- * GS_FIELDCAT-LOWERCASE = 'X'.
- * APPEND GS_FIELDCAT TO GT_FIELDCAT.
- * CLEAR GS_FIELDCAT.
- ENDFORM.
- *&---------------------------------------------------------------------*
- *& Form BUILD_LAYOUT
- *&---------------------------------------------------------------------*
- * text
- *----------------------------------------------------------------------*
- FORM BUILD_LAYOUT .
- GS_LAYOUT-CWIDTH_OPT = 'X'.
- ENDFORM. "BUILD_LAYOUT
- *&---------------------------------------------------------------------*
- *& Form TOP_OF_PAGE
- *&---------------------------------------------------------------------*
- * text
- *----------------------------------------------------------------------*
- FORM TOP_OF_PAGE.
- DATA: LT_HEADER TYPE SLIS_T_LISTHEADER,
- LW_HEADER TYPE SLIS_LISTHEADER.
- LW_HEADER-TYP = 'H'.
- LW_HEADER-INFO = 'BÁO CÁO DOANH THU BÁN HÀNG CHI TIẾT'.
- APPEND LW_HEADER TO LT_HEADER.
- CALL FUNCTION 'REUSE_ALV_COMMENTARY_WRITE'
- EXPORTING
- IT_LIST_COMMENTARY = LT_HEADER.
- ENDFORM. "TOP_OF_PAGE
- *&---------------------------------------------------------------------*
- *& Form HANDLE_USER_COMMAND
- *&---------------------------------------------------------------------*
- FORM HANDLE_USER_COMMAND USING R_UCOMM LIKE SY-UCOMM
- RS_SELFIELD TYPE SLIS_SELFIELD.
- CASE R_UCOMM.
- WHEN'&IC1'. " Double Click Event
- READ TABLE GT_BCDT INTO GS_BCDT INDEX RS_SELFIELD-TABINDEX.
- SET PARAMETER ID : 'VF' FIELD GS_BCDT-VBELN.
- SET PARAMETER ID : 'BUK' FIELD GS_BCDT-WERKS.
- CALL TRANSACTION 'VF03' AND SKIP FIRST SCREEN.
- ENDCASE.
- ENDFORM. "HANDLE_USER_COMMAND
- *&---------------------------------------------------------------------*
- *& Form F4_HELP_PERVE
- *&---------------------------------------------------------------------*
- * text
- *----------------------------------------------------------------------*
- * --> p1 text
- * <-- p2 text
- *----------------------------------------------------------------------*
- FORM F4_HELP_PERVE .
- DATA: BEGIN OF LT_PERNR OCCURS 0,
- PERNR LIKE VBPA-PERNR,
- END OF LT_PERNR,
- BEGIN OF LT_PA0002 OCCURS 0,
- PERNR LIKE PA0002-PERNR,
- NCHMC LIKE PA0002-NCHMC,
- VNAMC LIKE PA0002-VNAMC,
- END OF LT_PA0002.
- SELECT PERNR
- INTO TABLE LT_PERNR
- FROM VBPA
- WHERE PARVW = 'VE'.
- IF LT_PERNR[] IS NOT INITIAL.
- SELECT PERNR NCHMC VNAMC
- INTO TABLE LT_PA0002
- FROM PA0002
- FOR ALL ENTRIES IN LT_PERNR
- WHERE PERNR = LT_PERNR-PERNR.
- ENDIF.
- SORT LT_PA0002 BY PERNR.
- CALL FUNCTION 'F4IF_INT_TABLE_VALUE_REQUEST'
- EXPORTING
- RETFIELD = 'PERNR'
- DYNPPROG = SY-REPID
- DYNPNR = SY-DYNNR
- DYNPROFIELD = 'S_PERVE'
- VALUE_ORG = 'S'
- TABLES
- VALUE_TAB = LT_PA0002.
- ENDFORM. " F4_HELP_PERVE
- *&---------------------------------------------------------------------*
- *& Form F4_HELP_PERVW
- *&---------------------------------------------------------------------*
- * text
- *----------------------------------------------------------------------*
- * --> p1 text
- * <-- p2 text
- *----------------------------------------------------------------------*
- FORM F4_HELP_PERVW.
- DATA: BEGIN OF LT_PERNR OCCURS 0,
- PERNR LIKE VBPA-PERNR,
- END OF LT_PERNR,
- BEGIN OF LT_PA0002 OCCURS 0,
- PERNR LIKE PA0002-PERNR,
- NCHMC LIKE PA0002-NCHMC,
- VNAMC LIKE PA0002-VNAMC,
- END OF LT_PA0002.
- SELECT
- PERNR
- INTO TABLE LT_PERNR
- FROM VBPA
- WHERE PARVW = 'VW'.
- IF LT_PERNR[] IS NOT INITIAL.
- SELECT PERNR NCHMC VNAMC
- INTO TABLE LT_PA0002
- FROM PA0002
- FOR ALL ENTRIES IN LT_PERNR
- WHERE PERNR = LT_PERNR-PERNR.
- ENDIF.
- SORT LT_PA0002 BY PERNR.
- CALL FUNCTION 'F4IF_INT_TABLE_VALUE_REQUEST'
- EXPORTING
- RETFIELD = 'PERNR'
- DYNPPROG = SY-REPID
- DYNPNR = SY-DYNNR
- DYNPROFIELD = 'S_PERVW'
- VALUE_ORG = 'S'
- TABLES
- VALUE_TAB = LT_PA0002.
- ENDFORM. " F4_HELP_PERVW
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement