Advertisement
Guest User

ZRSD04_PRD_800

a guest
Nov 16th, 2016
351
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
ABAP 75.46 KB | None | 0 0
  1. *&---------------------------------------------------------------------*
  2. *&  Include           ZSD_IN_BCDTBHCT_FO1
  3. *&---------------------------------------------------------------------*
  4. FORM INIT.
  5.   SET PARAMETER ID 'VL' FIELD 'S_VBELN-LOW'.
  6.   SET PARAMETER ID 'VL' FIELD 'S_VBELN-HIGH'.
  7. ENDFORM.
  8.  
  9. FORM FILL_DATA.
  10.   TYPES: BEGIN OF LTY_LIKP,
  11.            VBELN TYPE LIKP-VBELN,
  12.          END OF LTY_LIKP.
  13.   DATA: LT_VBELN TYPE TABLE OF  LTY_LIKP,
  14.         LS_VBELN TYPE           LTY_LIKP,
  15.         LR_VBELN TYPE RANGE OF  VBELN WITH HEADER LINE,
  16.         WA_VBELN LIKE LINE OF   LR_VBELN..
  17.  
  18.  
  19.   SELECT
  20.     VBRK~BUKRS         "Companycode
  21.     VBRP~ARKTX         "TÊN THÀNH PHẨM
  22.     VBRK~VTWEG         "Distribution Channel
  23.     VBRK~VBELN         "Billing Document
  24.     VBRK~FKDAT         "Billing Date
  25.     VBRK~WAERK         "Currency
  26.     VBRK~KTGRD         "Customer Account Assignment Group
  27.     VBRP~AUBEL         "Số đơn hàng (SAP)/ Sales Document
  28.     VBRP~MATNR         "MÃ THÀNH PHẨM
  29. *    VBRP~ARKTX        "TÊN THÀNH PHẨM
  30.     VBRP~PRODH         "PHÂN NHÓM SẢN PHẨM THEO PRODUCT
  31.     VBRP~WERKS         "PLANT
  32.     VBRP~VBELV         "Sales Order Type
  33. *    VBRK~FKDAT         "MONTH
  34.     VBRK~INCO2         "Destination
  35.     VBRK~INCO1         "INCOTERM1
  36.     VBRK~ZTERM         "Term of Payment
  37.     VBRP~FKIMG         "Cartons
  38.     VBRP~VRKME         "Quantity Unit of Measure
  39.     VBRP~NETWR         "Net Value
  40.     VBRP~FKLMG         "Quanity
  41.     VBRK~VKORG         "Sales Organization Name
  42.     VBRP~VTWEG_AUFT    "Distribution Channel Name
  43.     VBRP~SPART         "Division
  44.     VBRP~VKBUR         "Sales Office
  45.     VBRP~VKGRP         "Sales Group
  46.     VBRP~BZIRK_AUFT    "Sales District
  47.     VBRK~KDGRP         "Customer Group
  48.     VBRK~STWAE         "Statistics currency
  49.     VBRP~VGBEL         "Outbound Delivery
  50.     VBRK~KUNRG         "FI Document
  51.     VBRK~SFAKN         "Cancel Bill. Doc
  52.     VBRK~FKSTO         "Cancel Status
  53.     VBRK~FKART         "Billing Type
  54.     VBRP~MEINS
  55.     VBRP~POSNR
  56.     VBRK~KURRF
  57.     VBRK~KNUMV
  58. *    VBRK~KTGRD         "Customer Account Assignment Group
  59.     VBRP~SHKZG         "Return
  60.     VBRP~LGORT         "SLOC
  61.     VBRP~ERZET
  62.     VBRP~ERDAT
  63.     VBRK~ERNAM
  64.     VTTP~TKNUM
  65. *    VBRK~VTWEG
  66.     VBRP~WAVWR
  67.     VBRP~MWSBP
  68.     VBRP~VGPOS
  69.     LIKP~WADAT_IST
  70.     VBRP~AUPOS
  71.     VBRP~POSNV
  72.     VBRP~CHARG          "So lo Batch
  73.     VBRP~REGIO_AUFT     "region
  74.     VBRP~PRCTR
  75.     VBRP~UMVKN
  76.     VBRP~UMVKZ
  77.     LIKP~LFART
  78.     VBRK~XBLNR AS XBLNR1
  79.     VBRP~KZWI2
  80. *    vbrp~PRODH
  81.   INTO TABLE GT_BCDT
  82.   FROM VBRP  INNER JOIN  VBRK ON VBRK~VBELN = VBRP~VBELN
  83.              LEFT JOIN  LIKP   ON LIKP~VBELN = VBRP~VGBEL
  84.              LEFT  JOIN  VTTP   ON VTTP~VBELN = VBRP~VGBEL
  85.   WHERE VBRK~VKORG IN S_VKORG
  86.         AND VBRK~VTWEG      IN S_VTWEG
  87.         AND VBRK~FKART      IN S_FKART
  88.         AND VBRP~VKBUR      IN S_VKBUR
  89.         AND VBRP~VKGRP      IN S_VKGRP
  90. *        AND VBRK~KDGRP      IN S_KDGRP
  91.         AND VBRK~FKDAT      IN S_FKDAT
  92.         AND VBRP~VBELN      IN S_VBELN
  93.         AND VBRP~AUBEL      IN S_VBELN2
  94.         AND VBRP~VGBEL      IN S_VGBEL
  95.         AND VBRK~KUNRG      IN S_KUNNR
  96.         AND VBRP~MATNR      IN S_MATNR
  97. *        AND VBRK~KTGRD      IN S_KTGRD
  98.         AND VBRK~WAERK      IN S_WAERK
  99. *        AND VBRP~WERKS      IN S_WERKS
  100. *        AND VBRP~LGORT      IN S_LGORT
  101. *        AND VBRK~BUKRS      IN S_BUKRS
  102.         AND VBRK~VBTYP      <> 'U'.
  103.  
  104.   IF S_WADAT IS NOT INITIAL.
  105.     SELECT VBELN
  106.        INTO TABLE LT_VBELN
  107.        FROM LIKP
  108.        WHERE WADAT_IST IN S_WADAT.
  109. *         AND LFART      IN  ( 'ZPR0', 'ZPR1', 'ZPR2', 'ZPR3', 'ZPR5', 'ZR10', 'ZRE1' ).
  110.     LOOP AT LT_VBELN INTO LS_VBELN.
  111.       WA_VBELN-OPTION = 'EQ'.
  112.       WA_VBELN-SIGN   = 'I'.
  113.       WA_VBELN-LOW    = LS_VBELN-VBELN.
  114.       APPEND WA_VBELN TO LR_VBELN.
  115.     ENDLOOP.
  116.     DELETE GT_BCDT WHERE VBELN NOT IN LR_VBELN.
  117.   ENDIF.
  118.  
  119.   LOOP AT GT_BCDT INTO GS_BCDT.
  120.     AUTHORITY-CHECK OBJECT 'V_VBRK_VKO'
  121.       ID 'ACTVT' FIELD '03'
  122.       ID 'VKORG' FIELD GS_BCDT-VKORG.
  123.     IF SY-SUBRC <> 0.
  124.       DELETE GT_BCDT WHERE VBELN = GS_BCDT-VBELN.
  125.       CONTINUE.
  126.     ENDIF.
  127.  
  128.     GS_BCDT-POPER = GS_BCDT-FKDAT+4(2).
  129.     GS_BCDT-BDATJ = GS_BCDT-FKDAT(4).
  130.     MODIFY GT_BCDT FROM GS_BCDT.
  131.     IF GS_BCDT-BUKRS NE GS_BCDT-WERKS AND GS_BCDT-WAVWR = 0.
  132.       APPEND GS_BCDT TO GT_BCDT2.
  133.     ENDIF.
  134.     GS_BCDT-XBLNR = GS_BCDT-VGBEL.
  135.     APPEND GS_BCDT TO GT_BCDT3.
  136.   ENDLOOP.
  137.   IF GT_BCDT[] IS NOT INITIAL.
  138.     GT_BCDT_TEMP[] = GT_BCDT[].
  139.     GT_BCDT_TEMP2[] = GT_BCDT2[].
  140.     SELECT
  141.       PVPRS
  142.       BWTAR
  143.       CKMLCR~BDATJ
  144.       CKMLCR~POPER
  145.       MATNR
  146.       VBELN
  147.       BWKEY
  148.     FROM CKMLCR
  149.     INNER JOIN CKMLHD ON CKMLHD~KALNR = CKMLCR~KALNR
  150.     INTO TABLE GT_GIATT
  151.     FOR ALL ENTRIES IN GT_BCDT
  152.     WHERE  MATNR = GT_BCDT-MATNR AND
  153.            BWKEY = GT_BCDT-WERKS AND
  154.            CKMLCR~BDATJ = GT_BCDT-BDATJ AND
  155.            CKMLCR~POPER = GT_BCDT-POPER.
  156.  
  157.     " Update Lay description cho sales org
  158.     SELECT
  159.       VKORG
  160.       VTEXT
  161.     INTO TABLE GT_TVKOT
  162.      FROM TVKOT
  163. *     FOR ALL ENTRIES IN GT_BCDT
  164. *     WHERE VKORG = GT_BCDT-VKORG AND
  165.       WHERE  SPRAS = SY-LANGU.
  166.     SORT GT_TVKOT BY VKORG.
  167.  
  168.     SORT GT_BCDT_TEMP BY VKORG.
  169.     LOOP AT GT_TVKOT.
  170.       READ TABLE GT_BCDT_TEMP WITH KEY VKORG = GT_TVKOT-VKORG BINARY SEARCH TRANSPORTING NO FIELDS.
  171.       IF SY-SUBRC <> 0.
  172.         DELETE TABLE GT_TVKOT.
  173.       ENDIF.
  174.     ENDLOOP.
  175.  
  176.     "PO number change sangvt3 2/12/2015
  177.     SELECT VBELN POSNR VGBEL VGPOS
  178.       FROM LIPS
  179.       INTO TABLE GT_LIPS3.
  180. *      FOR ALL ENTRIES IN GT_BCDT
  181. *      WHERE VBELN = GT_BCDT-VGBEL AND POSNR = GT_BCDT-VGPOS.
  182.  
  183.     SORT GT_BCDT_TEMP BY VGBEL VGPOS.
  184.     LOOP AT GT_LIPS3 INTO GS_LIPS3.
  185.       READ TABLE GT_BCDT_TEMP WITH KEY VGBEL = GS_LIPS3-VBELN
  186.                                   VGPOS = GS_LIPS3-POSNR BINARY SEARCH TRANSPORTING NO FIELDS.
  187.       IF SY-SUBRC <> 0.
  188.         DELETE TABLE GT_LIPS3 FROM GS_LIPS3.
  189.       ENDIF.
  190.     ENDLOOP.
  191.  
  192.     "FILL DATA IT VTTK
  193.     SELECT DAREG DATBG DPREG DPTBG ERNAM TEXT1 TKNUM EXTI1 TNDR_TRKID SIGNI
  194.       FROM VTTK
  195.       INTO TABLE GT_VTTK.
  196. *      FOR ALL ENTRIES IN GT_BCDT
  197. *      WHERE TKNUM = GT_BCDT-TKNUM.
  198.  
  199.     SORT GT_BCDT_TEMP BY  TKNUM.
  200.     LOOP AT GT_VTTK.
  201.       READ TABLE GT_BCDT_TEMP WITH KEY TKNUM = GT_VTTK-TKNUM BINARY SEARCH TRANSPORTING NO FIELDS.
  202.       IF SY-SUBRC <> 0.
  203.         DELETE TABLE GT_VTTK.
  204.       ENDIF.
  205.     ENDLOOP.
  206.  
  207.     IF GT_BCDT2[] IS NOT INITIAL.
  208.       SELECT VGBEL VGPOS VBRP~VBELN VBRP~NETWR VBRK~FKSTO SFAKN
  209.         FROM VBRP
  210.         INNER JOIN VBRK ON VBRP~VBELN = VBRK~VBELN
  211.         INTO TABLE GT_VBRP2.
  212.       SORT GT_BCDT_TEMP2 BY VBELN.
  213.       LOOP AT GT_VBRP2.
  214.         READ TABLE GT_BCDT_TEMP2 INTO GS_BCDT WITH KEY VBELN = GT_VBRP2-VBELN BINARY SEARCH TRANSPORTING NO FIELDS.
  215.         IF SY-SUBRC = 0.
  216.           DELETE GT_VBRP2.
  217.         ENDIF.
  218.       ENDLOOP.
  219.       SORT GT_BCDT_TEMP2 BY VGBEL VGPOS.
  220.       LOOP AT GT_VBRP2.
  221.         READ TABLE GT_BCDT_TEMP2 INTO GS_BCDT WITH KEY VGBEL = GT_VBRP2-VGBEL VGPOS = GT_VBRP2-VGPOS BINARY SEARCH TRANSPORTING NO FIELDS.
  222.         IF SY-SUBRC <> 0.
  223.           DELETE GT_VBRP2.
  224.         ENDIF.
  225.       ENDLOOP.
  226.  
  227.       DELETE GT_VBRP2[] WHERE FKSTO = 'X' OR SFAKN IS NOT INITIAL.
  228.     ENDIF.
  229.     " PERFORMANCE.
  230.     IF GT_BCDT3[] IS NOT INITIAL.
  231.       SORT GT_BCDT3 BY XBLNR.
  232.       DELETE ADJACENT DUPLICATES FROM GT_BCDT3 COMPARING XBLNR.
  233.       SELECT MBLNR
  234.              MJAHR
  235.              XBLNR
  236.         FROM MKPF
  237.         INTO TABLE GT_MKPF
  238.         FOR ALL ENTRIES IN GT_BCDT3
  239.         WHERE XBLNR = GT_BCDT3-XBLNR.
  240.  
  241.       GT_MKPF_TEMP[] = GT_MKPF[].
  242.       SORT GT_MKPF_TEMP BY MBLNR MJAHR.
  243.       IF GT_MKPF[] IS NOT INITIAL.
  244.         SELECT MBLNR MJAHR ZEILE DMBTR SMBLN SMBLP BUKRS VBELN_IM VBELP_IM
  245.           FROM MSEG
  246.           INTO TABLE GT_MSEG.
  247. *          FOR ALL ENTRIES IN GT_MKPF
  248. *          WHERE MBLNR = GT_MKPF-MBLNR AND MJAHR = GT_MKPF-MJAHR.
  249.         "LOAI BO MAT.DOC REVERSE
  250.         LOOP AT GT_MSEG.
  251.           READ TABLE GT_MKPF_TEMP WITH KEY MBLNR = GT_MSEG-MBLNR
  252.                                            MJAHR = GT_MSEG-MJAHR BINARY SEARCH.
  253.           IF SY-SUBRC <> 0.
  254.             DELETE GT_MSEG.
  255.             CONTINUE.
  256.           ENDIF.
  257.           IF GT_MSEG-SMBLN IS NOT INITIAL.
  258.             APPEND GT_MSEG TO GT_MSEG2[].
  259.           ENDIF.
  260.         ENDLOOP.
  261.         DELETE GT_MSEG WHERE SMBLN IS NOT INITIAL.
  262.         LOOP AT GT_MSEG2.
  263.           DELETE GT_MSEG WHERE MBLNR = GT_MSEG2-SMBLN AND ZEILE = GT_MSEG2-SMBLP.
  264.         ENDLOOP.
  265.         SORT GT_MSEG BY VBELN_IM VBELP_IM.
  266.       ENDIF.
  267.  
  268.       "LAY ITEM HIGH LEVEL
  269.       SELECT VBELN POSNR VGPOS POSNV VBELV UECHA LGMNG
  270.         FROM LIPS
  271.         INTO TABLE GT_LIPS
  272.         FOR ALL ENTRIES IN GT_BCDT
  273.         WHERE VBELN = GT_BCDT-VGBEL AND POSNV = GT_BCDT-POSNV.
  274.       DELETE GT_LIPS WHERE LGMNG = 0.
  275.  
  276.     ENDIF.
  277.     "Fill data IT TVFKT
  278.     SELECT VTEXT
  279.            FKART
  280.        FROM TVFKT
  281.        INTO TABLE GT_TVFKT
  282. *       FOR ALL ENTRIES IN GT_BCDT
  283.        WHERE SPRAS = SY-LANGU. "AND FKART = GT_BCDT-FKART.
  284.  
  285.     SORT GT_BCDT_TEMP BY FKART.
  286.     LOOP AT GT_TVFKT.
  287.       READ TABLE GT_BCDT_TEMP WITH KEY FKART = GT_TVFKT-FKART BINARY SEARCH TRANSPORTING NO FIELDS.
  288.       IF SY-SUBRC <> 0.
  289.         DELETE TABLE GT_TVFKT.
  290.       ENDIF.
  291.     ENDLOOP.
  292.  
  293. *    "FILL DATA IT STXH.
  294. *    SELECT TDOBJECT
  295. *           TDNAME
  296. *           TDSPRAS
  297. *           TDID
  298. *     INTO TABLE LT_STXH
  299. *     FROM STXH.
  300.     "FILL DATA IT VBPA
  301.     SELECT VBPA~VBELN ADRNR  PARVW PERNR KUNNR
  302.        FROM VBPA
  303.        INNER JOIN VBRK ON VBPA~VBELN = VBRK~VBELN
  304.        INTO TABLE GT_VBPA.
  305. *       FOR ALL ENTRIES IN GT_BCDT
  306. *       WHERE VBRK~VBELN = GT_BCDT-VBELN.
  307.     SORT GT_VBPA BY VBELN.
  308.     SORT GT_BCDT_TEMP BY VBELN.
  309.     LOOP AT GT_VBPA.
  310.       READ TABLE GT_BCDT_TEMP WITH KEY VBELN = GT_VBPA-VBELN BINARY SEARCH TRANSPORTING NO FIELDS.
  311.       IF SY-SUBRC <> 0.
  312.         DELETE TABLE GT_VBPA.
  313.       ENDIF.
  314.     ENDLOOP.
  315.     CLEAR: GS_VBPA_FINAL.
  316.  
  317.     IF GT_VBPA[] IS NOT INITIAL.
  318.       "FILL DATA IT ADRC
  319.       SELECT NAME1 NAME2 NAME3 NAME4 ADDRNUMBER
  320.          FROM     ADRC
  321.          INTO  TABLE GT_ADRC.
  322. *         FOR ALL ENTRIES IN GT_VBPA
  323. *         WHERE    ADDRNUMBER = GT_VBPA-ADRNR.
  324.       SORT GT_ADRC BY ADDRNUMBER.
  325.       GT_VBPA_TEMP[] = GT_VBPA[].
  326.       SORT GT_VBPA_TEMP BY ADRNR.
  327.       LOOP AT GT_ADRC.
  328.         READ TABLE GT_VBPA_TEMP WITH KEY ADRNR = GT_ADRC-ADDRNUMBER BINARY SEARCH TRANSPORTING NO FIELDS.
  329.         IF SY-SUBRC <> 0.
  330.           DELETE GT_ADRC.
  331.         ENDIF.
  332.       ENDLOOP.
  333.     ENDIF.
  334.     "FILL DATA IT TCURF
  335.     SELECT  FFACT
  336.             TFACT
  337.             FCURR
  338.             TCURR
  339.       FROM TCURF
  340.       INTO TABLE GT_TCURF
  341. *      FOR ALL ENTRIES IN GT_BCDT
  342.       WHERE KURST = 'M' .
  343.     SORT GT_BCDT_TEMP BY WAERK STWAE.
  344.     LOOP AT GT_TCURF.
  345.       READ TABLE GT_BCDT_TEMP WITH KEY WAERK = GT_TCURF-FCURR
  346.                                        STWAE = GT_TCURF-TCURR BINARY SEARCH TRANSPORTING NO FIELDS.
  347.       IF SY-SUBRC <> 0.
  348.         DELETE GT_TCURF.
  349.       ENDIF.
  350.     ENDLOOP.
  351.  
  352.     "FILL DATA IT TVKO
  353.     SELECT VKORG ADRNR
  354.       FROM TVKO
  355.       INTO TABLE GT_TVKO.
  356. *      FOR ALL ENTRIES IN GT_BCDT
  357. *      WHERE TVKO~VKORG = GT_BCDT-VKORG.
  358.     SORT GT_BCDT_TEMP BY VKORG.
  359.     LOOP AT GT_TVKO.
  360.       READ TABLE GT_BCDT_TEMP WITH KEY VKORG = GT_TVKO-VKORG BINARY SEARCH TRANSPORTING NO FIELDS.
  361.       IF SY-SUBRC <> 0.
  362.         DELETE TABLE GT_TVKO.
  363.       ENDIF.
  364.     ENDLOOP.
  365.  
  366.     IF GT_TVKO[] IS NOT INITIAL.
  367. *       SELECT MC_NAME1 ADDRNUMBER
  368.       SELECT NAME1 NAME2 NAME3 ADDRNUMBER
  369.        FROM ADRC
  370.        INTO TABLE GT_ADRC2
  371.        FOR ALL ENTRIES IN GT_TVKO
  372.        WHERE ADDRNUMBER = GT_TVKO-ADRNR.
  373.       SORT GT_ADRC2 BY ADDRNUMBER.
  374.     ENDIF.
  375.  
  376.     SELECT
  377.       TVTWT~VTEXT VTWEG
  378.       FROM TVTWT
  379.       INTO TABLE GT_TVTWT
  380. *      FOR ALL ENTRIES IN GT_BCDT
  381.       WHERE       SPRAS = SY-LANGU. "VTWEG = GT_BCDT-VTWEG AND
  382.  
  383.     SORT GT_BCDT_TEMP BY VTWEG.
  384.     LOOP AT GT_TVTWT.
  385.       READ TABLE GT_BCDT_TEMP WITH KEY VTWEG = GT_TVTWT-VTWEG BINARY SEARCH TRANSPORTING NO FIELDS.
  386.       IF SY-SUBRC <> 0.
  387.         DELETE TABLE GT_TVTWT.
  388.       ENDIF.
  389.     ENDLOOP.
  390.  
  391.     SELECT VKBUR BEZEI
  392.      FROM TVKBT
  393.      INTO TABLE GT_TVKBT
  394. *     FOR ALL ENTRIES IN GT_BCDT
  395.      WHERE  SPRAS = SY-LANGU.     "VKBUR = GT_BCDT-VKBUR AND
  396.  
  397.     SORT GT_BCDT_TEMP BY VKBUR.
  398.     LOOP AT GT_TVKBT.
  399.       READ TABLE GT_BCDT_TEMP WITH KEY VKBUR = GT_TVKBT-VKBUR BINARY SEARCH TRANSPORTING NO FIELDS.
  400.       IF SY-SUBRC <> 0.
  401.         DELETE TABLE GT_TVKBT.
  402.       ENDIF.
  403.     ENDLOOP.
  404.  
  405.     SELECT BZIRK
  406.            BZTXT
  407.      FROM T171T
  408.      INTO TABLE GT_T171T
  409. *     FOR ALL ENTRIES IN GT_BCDT
  410.      WHERE   SPRAS = SY-LANGU. "     BZIRK  = GT_BCDT-BZIRK_AUFT AND
  411.  
  412.     SORT GT_BCDT_TEMP BY BZIRK_AUFT.
  413.     LOOP AT GT_T171T.
  414.       READ TABLE GT_BCDT_TEMP WITH KEY BZIRK_AUFT = GT_T171T-BZIRK BINARY SEARCH TRANSPORTING NO FIELDS.
  415.       IF SY-SUBRC <> 0.
  416.         DELETE TABLE GT_T171T.
  417.       ENDIF.
  418.     ENDLOOP.
  419.  
  420.  
  421.     SELECT KDGRP
  422.            KTEXT
  423.     FROM T151T
  424.     INTO TABLE GT_T151T
  425. *    FOR ALL ENTRIES IN GT_BCDT
  426.     WHERE SPRAS = SY-LANGU. "KDGRP = GT_BCDT-KDGRP AND
  427.  
  428.     SORT GT_BCDT_TEMP BY KDGRP.
  429.     LOOP AT GT_T151T.
  430.       READ TABLE GT_BCDT_TEMP WITH KEY KDGRP = GT_T151T-KDGRP BINARY SEARCH TRANSPORTING NO FIELDS.
  431.       IF SY-SUBRC <> 0.
  432.         DELETE TABLE GT_T151T.
  433.       ENDIF.
  434.     ENDLOOP.
  435.  
  436.     SELECT PA0001~PERNR
  437.            SNAME
  438.            VBPA~VBELN
  439.     FROM    PA0001
  440.     INNER JOIN VBPA ON VBPA~PERNR = PA0001~PERNR
  441.     INTO  TABLE GT_PA0001
  442. *    FOR ALL ENTRIES IN GT_BCDT
  443.     WHERE   ( VBPA~PARVW = 'Z1' OR VBPA~PARVW = 'Z3' )." AND VBPA~VBELN = GT_BCDT-VBELN.
  444.  
  445.  
  446.     SORT GT_BCDT_TEMP BY VBELN.
  447.     LOOP AT GT_PA0001.
  448.       READ TABLE GT_BCDT_TEMP WITH KEY VBELN = GT_PA0001-VBELN BINARY SEARCH TRANSPORTING NO FIELDS.
  449.       IF SY-SUBRC <> 0.
  450.         DELETE TABLE GT_PA0001.
  451.       ENDIF.
  452.     ENDLOOP.
  453.  
  454.  
  455.     IF GT_VBPA[] IS NOT INITIAL.
  456.       SELECT NCHMC VNAMC PERNR
  457.       FROM   PA0002
  458.       INTO TABLE GT_PA0002
  459.       FOR ALL ENTRIES IN GT_VBPA
  460.       WHERE  PERNR =  GT_VBPA-PERNR.
  461.       SORT GT_PA0002 BY PERNR.
  462.     ENDIF.
  463.  
  464.     SELECT KTGRD VTEXT
  465.       FROM TVKTT
  466.       INTO TABLE GT_TVKTT
  467. *      FOR ALL ENTRIES IN GT_BCDT
  468.      WHERE SPRAS = SY-LANGU.
  469.     "KTGRD = GT_BCDT-KTGRD AND
  470.  
  471.     SORT GT_BCDT_TEMP BY KTGRD.
  472.     LOOP AT GT_TVKTT.
  473.       READ TABLE GT_BCDT_TEMP WITH KEY KTGRD = GT_TVKTT-KTGRD BINARY SEARCH TRANSPORTING NO FIELDS.
  474.       IF SY-SUBRC <> 0.
  475.         DELETE TABLE GT_TVKTT.
  476.       ENDIF.
  477.     ENDLOOP.
  478.  
  479.     SELECT
  480.       DOCNUM
  481.       STAPA1
  482.     INTO TABLE  GT_EDIDS
  483.     FROM EDIDS
  484.     WHERE STATUS = '53'.
  485. *      AND STAPA1 IN S_STAPA1.
  486.     SORT GT_EDIDS BY DOCNUM.
  487.  
  488.     SELECT BEZEI
  489.            VKGRP
  490.       FROM TVGRT
  491.       INTO TABLE GT_TVGRT
  492. *      FOR ALL ENTRIES IN GT_BCDT
  493.       WHERE SPRAS = SY-LANGU. " AND VKGRP = GT_BCDT-VKGRP.
  494.  
  495.     SORT GT_BCDT_TEMP BY VKGRP.
  496.     LOOP AT GT_TVGRT.
  497.       READ TABLE GT_BCDT_TEMP WITH KEY VKGRP = GT_TVGRT-VKGRP BINARY SEARCH TRANSPORTING NO FIELDS.
  498.       IF SY-SUBRC <> 0.
  499.         DELETE TABLE GT_TVGRT.
  500.       ENDIF.
  501.     ENDLOOP.
  502.  
  503.     SELECT MATNR BISMT EXTWG LABOR GROES MTART MATKL WRKST
  504.       FROM MARA
  505.       INTO TABLE GT_MARA.
  506. *      FOR ALL ENTRIES IN GT_BCDT
  507. *      WHERE MATNR = GT_BCDT-MATNR.
  508.  
  509.     SORT GT_BCDT_TEMP BY MATNR.
  510.     LOOP AT GT_MARA.
  511.       READ TABLE GT_BCDT_TEMP WITH KEY MATNR = GT_MARA-MATNR BINARY SEARCH TRANSPORTING NO FIELDS.
  512.       IF SY-SUBRC <> 0.
  513.         DELETE TABLE GT_MARA.
  514.       ENDIF.
  515.     ENDLOOP.
  516.  
  517.     SELECT MATKL WGBEZ60
  518.       FROM T023T
  519.       INTO TABLE GT_T023T
  520.       FOR ALL ENTRIES IN GT_MARA
  521.       WHERE MATKL = GT_MARA-MATKL AND
  522.             SPRAS = SY-LANGU .
  523.  
  524.  
  525.     SELECT  VTEXT
  526.             PRODH
  527.         FROM T179T
  528.         INTO TABLE GT_T179T
  529. *        FOR ALL ENTRIES IN GT_BCDT
  530. *        WHERE (
  531. *              PRODH = GT_BCDT-PRODH OR
  532. *              PRODH = GT_BCDT-PRODHX OR
  533. *              PRODH = GT_BCDT-PRODHY
  534. *              ) AND
  535.          WHERE SPRAS = SY-LANGU ."AND ( PRODH = GT_BCDT-PRODH ).
  536.  
  537.  
  538.     IF GT_LIPS3 IS NOT INITIAL.
  539.       SELECT BSTKD
  540.              VBELN
  541.           FROM VBKD
  542.           INTO TABLE GT_VBKD
  543.           FOR ALL ENTRIES IN GT_LIPS3
  544.           WHERE VBELN = GT_LIPS3-VGBEL. "CHANGE 30.11.2015 SANGVT3
  545.       SORT GT_VBKD BY VBELN.
  546.     ENDIF.
  547.  
  548.  
  549. *     Get size (Updated by TuanTHM 15.01.2015)
  550.     SELECT BEZEI
  551.            MATNR
  552.            WERKS
  553.       FROM TMFGT
  554.       INNER JOIN MARC ON TMFGT~MFRGR = MARC~MFRGR
  555.       INTO TABLE GT_TMFGT
  556.       FOR ALL ENTRIES IN GT_BCDT
  557.       WHERE MARC~MATNR = GT_BCDT-MATNR AND MARC~WERKS = GT_BCDT-WERKS.
  558.  
  559. *    SORT GT_BCDT_TEMP BY MATNR WERKS.
  560. *    LOOP AT GT_TMFGT.
  561. *      READ TABLE GT_BCDT_TEMP WITH KEY MATNR = GT_TMFGT-MATNR
  562. *                                       WERKS = GT_TMFGT-WERKS  BINARY SEARCH TRANSPORTING NO FIELDS.
  563. *      IF SY-SUBRC <> 0.
  564. *        DELETE TABLE GT_TMFGT.
  565. *      ENDIF.
  566. *    ENDLOOP.
  567.  
  568.     SELECT EWBEZ
  569.            EXTWG
  570.     FROM TWEWT
  571.     INTO TABLE GT_TWEWT
  572. *    FOR ALL ENTRIES IN GT_BCDT
  573.     WHERE SPRAS = SY-LANGU. "EXTWG = GT_BCDT-EXTWG AND
  574.  
  575.     SORT GT_BCDT_TEMP BY EXTWG.
  576. *    LOOP AT GT_TWEWT.
  577. **      READ TABLE GT_BCDT_TEMP WITH KEY EXTWG = GT_TWEWT-EXTWG BINARY SEARCH TRANSPORTING NO FIELDS.
  578. **      BREAK-POINT.
  579. **      IF SY-SUBRC <> 0.
  580. **        DELETE TABLE GT_TWEWT.
  581. **      ENDIF.
  582. *    ENDLOOP.
  583.  
  584.     "Số ĐH(MPC)/ PO Number – Số đơn hàng của MPC
  585.     SELECT DISTINCT
  586.                   VBAP~VBELN
  587.                   VBAP~POSNR
  588.                   VBAP~BEDAE
  589.     FROM VBAP
  590.     INTO TABLE GT_VBAP.
  591. *       FOR ALL ENTRIES IN GT_BCDT
  592. *    WHERE VBAP~VBELN = GT_BCDT-AUBEL
  593. *      AND VBAP~POSNR = GT_BCDT-AUPOS.
  594.  
  595.     SORT GT_BCDT_TEMP BY AUBEL AUPOS.
  596.     LOOP AT GT_VBAP.
  597.       READ TABLE GT_BCDT_TEMP WITH KEY AUBEL = GT_VBAP-VBELN
  598.                                        AUPOS = GT_VBAP-POSNR BINARY SEARCH TRANSPORTING NO FIELDS.
  599.       IF SY-SUBRC <> 0.
  600.         DELETE TABLE GT_VBAP.
  601.       ENDIF.
  602.     ENDLOOP.
  603.  
  604. *    SELECT KMEIN
  605. *           KNUMV
  606. *           KPOSN
  607. *    FROM KONV
  608. *    INTO TABLE GT_KONV
  609. *    FOR ALL ENTRIES IN GT_BCDT
  610. *    WHERE KONV~KNUMV = GT_BCDT-KNUMV AND KONV~KPOSN = GT_BCDT-POSNR
  611. *      AND KONV~KSCHL IN ('ZPR0', 'ZPR1', 'ZPR2', 'ZPR3', 'ZPR5', 'ZR10', 'ZRE1', 'ZPR6', 'ZPR4'). "UPDATE BY SANGVT3 30.11.2015
  612.     "Ten nghanh hang
  613.     SELECT VTEXT
  614.            SPART
  615.         FROM TSPAT
  616.         INTO TABLE GT_TSPAT
  617. *        FOR ALL ENTRIES IN GT_BCDT
  618.         WHERE SPRAS = SY-LANGU  ."AND SPART = GT_BCDT-SPART.
  619.  
  620.     SORT GT_BCDT_TEMP BY SPART.
  621.     LOOP AT GT_TSPAT.
  622.       READ TABLE GT_BCDT_TEMP WITH KEY SPART = GT_TSPAT-SPART BINARY SEARCH TRANSPORTING NO FIELDS.
  623.       IF SY-SUBRC <> 0.
  624.         DELETE TABLE GT_TSPAT.
  625.       ENDIF.
  626.     ENDLOOP.
  627.  
  628.     "Ten tong kho
  629.     SELECT NAME2
  630.            WERKS
  631.         FROM T001W
  632.         INTO TABLE GT_T001W
  633. *        FOR ALL ENTRIES IN GT_BCDT
  634.         WHERE SPRAS = SY-LANGU. "WERKS = GT_BCDT-WERKS AND
  635.  
  636.     SORT GT_BCDT_TEMP BY WERKS.
  637.     LOOP AT GT_T001W.
  638.       READ TABLE GT_BCDT_TEMP WITH KEY WERKS = GT_T001W-WERKS BINARY SEARCH TRANSPORTING NO FIELDS.
  639.       IF SY-SUBRC <> 0.
  640.         DELETE TABLE GT_T001W.
  641.       ENDIF.
  642.     ENDLOOP.
  643.  
  644.     "Ten kho
  645.     SELECT  LGOBE
  646.             LGORT
  647.             WERKS
  648.        FROM T001L
  649.        INTO TABLE GT_T001L.
  650. *       FOR ALL ENTRIES IN GT_BCDT
  651. *       WHERE LGORT = GT_BCDT-LGORT AND WERKS = GT_BCDT-WERKS.
  652.  
  653.     SORT GT_BCDT_TEMP BY LGORT WERKS.
  654.     LOOP AT GT_T001L.
  655.       READ TABLE GT_BCDT_TEMP WITH KEY LGORT = GT_T001L-LGORT
  656.                                        WERKS = GT_T001L-WERKS BINARY SEARCH TRANSPORTING NO FIELDS.
  657.       IF SY-SUBRC <> 0.
  658.         DELETE TABLE GT_T001L.
  659.       ENDIF.
  660.     ENDLOOP.
  661.   ENDIF.
  662.   "FILL DATA IT V_USR_NAME
  663.   IF GT_VTTK[] IS NOT INITIAL.
  664.     SELECT NAME_FIRST NAME_LAST BNAME
  665.       FROM V_USR_NAME
  666.       INTO TABLE GT_V_USR_NAME
  667.       FOR ALL ENTRIES IN GT_VTTK
  668.       WHERE BNAME = GT_VTTK-ERNAM.
  669.   ENDIF.
  670.  
  671.   LOOP AT GT_VBPA.
  672.     GS_VBPA_TEMP = GT_VBPA.
  673.     AT NEW VBELN.
  674.       GS_VBPA_FINAL-VBELN = GT_VBPA-VBELN.
  675.       GS_VBPA_FINAL-ADRNR = GS_VBPA_TEMP-ADRNR.
  676.     ENDAT.
  677.  
  678.     IF GS_VBPA_TEMP-PARVW EQ 'RG'.
  679.       GS_VBPA_FINAL-KUNNR = GS_VBPA_TEMP-KUNNR.
  680.       CALL FUNCTION 'ZCORE_FM_GET_PROFILE_SD'
  681.         EXPORTING
  682.           I_NUMBER = GS_VBPA_TEMP-KUNNR
  683.           I_VBELN  = GS_VBPA_TEMP-VBELN
  684.           I_TYPE   = 'RG'
  685.         IMPORTING
  686.           E_NAME   = GS_VBPA_FINAL-PAYER_NAME.
  687.     ELSEIF GS_VBPA_TEMP-PARVW EQ 'AG'.
  688.       GS_VBPA_FINAL-KUNNR57 = GS_VBPA_TEMP-KUNNR.
  689.       CALL FUNCTION 'ZCORE_FM_GET_PROFILE_SD'
  690.         EXPORTING
  691.           I_NUMBER = GS_VBPA_FINAL-KUNNR57
  692.           I_VBELN  = GS_VBPA_TEMP-VBELN
  693.           I_TYPE   = 'AG'
  694.         IMPORTING
  695.           E_NAME   = GS_VBPA_FINAL-SOLD_NAME.
  696.     ELSEIF GS_VBPA_TEMP-PARVW EQ 'RE'.
  697.       GS_VBPA_FINAL-KUNNR61 = GS_VBPA_TEMP-KUNNR.
  698.       CALL FUNCTION 'ZCORE_FM_GET_PROFILE_SD'
  699.         EXPORTING
  700.           I_NUMBER = GS_VBPA_FINAL-KUNNR61
  701.           I_VBELN  = GS_VBPA_TEMP-VBELN
  702.           I_TYPE   = 'RE'
  703.         IMPORTING
  704.           E_NAME   = GS_VBPA_FINAL-BILL_NAME.
  705.     ELSEIF GS_VBPA_TEMP-PARVW EQ 'Z1'.
  706.       READ TABLE GT_PA0001 WITH KEY PERNR = GS_VBPA_TEMP-PERNR.
  707.       IF SY-SUBRC = 0.
  708.         GS_VBPA_FINAL-MANAGER = GT_PA0001-SNAME.
  709.       ENDIF.
  710.     ELSEIF GS_VBPA_TEMP-PARVW EQ 'VE'.
  711.       GS_VBPA_FINAL-PERVE = GS_VBPA_TEMP-PERNR.
  712.     ELSEIF GS_VBPA_TEMP-PARVW EQ 'VW'.
  713.       GS_VBPA_FINAL-PERVW = GS_VBPA_TEMP-PERNR.
  714.     ELSEIF GS_VBPA_TEMP-PARVW EQ 'Z3'.
  715.       READ TABLE GT_PA0001 WITH KEY PERNR = GS_VBPA_TEMP-PERNR.
  716.       IF SY-SUBRC = 0.
  717.         GS_VBPA_FINAL-DOCEMPLOYEE = GT_PA0001-SNAME.
  718.       ENDIF.
  719.     ENDIF.
  720.  
  721.     AT END OF VBELN.
  722.       APPEND GS_VBPA_FINAL TO GT_VBPA_FINAL.
  723.       CLEAR: GS_VBPA_FINAL.
  724.     ENDAT.
  725.   ENDLOOP.
  726.  
  727.   SORT GT_VBPA_FINAL BY VBELN.
  728.   IF GT_VBPA_FINAL[] IS NOT INITIAL.
  729.     SELECT
  730.       KUNNR
  731.       TELNR_CALL
  732.       INTO TABLE GT_ADR2
  733.       FROM KNA1
  734.       INNER JOIN ADR2 ON
  735.         KNA1~ADRNR = ADR2~ADDRNUMBER AND
  736.         ADR2~R3_USER NE 'X' AND
  737.         ADR2~PERSNUMBER EQ ''
  738.       FOR ALL ENTRIES IN GT_VBPA_FINAL
  739.       WHERE KUNNR = GT_VBPA_FINAL-KUNNR57.
  740.     SORT GT_ADR2 BY KUNNR.
  741.   ENDIF.
  742.   CALL FUNCTION 'ZCORE_FM_CURR_RATE'
  743.     TABLES
  744.       ET_CURR_RATE = GT_CURRENCY.
  745. ENDFORM.
  746.  
  747. FORM SELECT_BKPF_FI.
  748.   "FI OUTBOUND
  749.   SELECT BELNR AWKEY XBLNR
  750.      FROM BKPF
  751.      INTO TABLE GT_BKPF_FI
  752.     FOR ALL ENTRIES IN GT_BCDT
  753.     WHERE AWKEY = GT_BCDT-AWKEY .
  754.   SORT GT_BKPF_FI BY AWKEY.
  755.   SELECT BELNR AWKEY XBLNR
  756.      FROM BKPF
  757.      INTO TABLE GT_BKPF
  758.      FOR ALL ENTRIES IN GT_BCDT
  759.      WHERE  AWKEY = GT_BCDT-AWKEY_ACC.
  760.   SORT GT_BKPF BY AWKEY.
  761. ENDFORM.
  762.  
  763. FORM PROCESS_DATA.
  764.   DATA:
  765.     LT_CHARNUM TYPE TABLE OF BAPI1003_ALLOC_VALUES_NUM, "change by SANGVT3
  766.     LT_CHARACT TYPE TABLE OF BAPI1003_ALLOC_VALUES_CHAR, "change by SANGVT3
  767.     LT_ATNAM   TYPE TABLE OF ZCORE_ST_RSELOPTION_ATNAM,
  768.     LS_CHARNUM TYPE          BAPI1003_ALLOC_VALUES_NUM, "change by SANGVT3
  769.     LT_ALL     TYPE TABLE OF BAPI1003_ALLOC_VALUES_NUM,
  770.     LS_ALL     TYPE          BAPI1003_ALLOC_VALUES_NUM,
  771.     LW_DATE    TYPE          CHAR20.
  772.  
  773.   SORT GT_BCDT BY VBELN.
  774.   DATA: LW_NAME_FIRST TYPE AD_NAMEFIR,
  775.         LW_NAME_LAST  TYPE AD_NAMELAS,
  776.         LW_PERIOD     TYPE POPER,
  777.         LW_TDOBNAME   TYPE TDOBNAME,
  778.         LW_TEXT       TYPE CHAR255,
  779.         LW_YEAR       TYPE GJAHR,
  780.         LW_INX        TYPE SY-INDEX.
  781.  
  782.   TYPES:
  783.     BEGIN OF LTY_UPRIC,
  784.       KBETR TYPE KBETR,
  785.       KPEIN TYPE KPEIN,
  786.       WAERS TYPE WAERS,
  787.       KNUMV TYPE KNUMV,
  788.       KPOSN TYPE KPOSN,
  789.       KMEIN TYPE KMEIN,
  790.     END   OF LTY_UPRIC.
  791.  
  792.   DATA:
  793.     LT_UPRIC    TYPE TABLE OF LTY_UPRIC,
  794.     LS_UPRIC    TYPE LTY_UPRIC,
  795.  
  796.     LW_LONGTEXT TYPE CHAR255,
  797. *    LT_STXH     TYPE TABLE OF STXH,
  798. *    LS_STXH     TYPE STXH,
  799.     LW_NAME1    TYPE NAME1_GP,
  800.     LW_NAME2    TYPE NAME2_GP,
  801.  
  802.     LW_NAME3    TYPE NAME3_GP,
  803.     LW_NAME4    TYPE NAME4_GP,
  804.     LW_ADRNR    TYPE ADRNR,
  805.     LW_STLNR    TYPE STNUM,
  806.     LW_KUNNR    TYPE CHAR10,
  807.     LW_LINK     TYPE RAW16,
  808.     LW_FIRST    TYPE CHAR40,
  809.     LW_LAST     TYPE CHAR40,
  810.     LW_SHIFT    TYPE I,
  811.     LW_DECIMAL  TYPE I,
  812.     LW_NUMBER   TYPE I,
  813.     LW_VBELN    TYPE VBELN,
  814.     LW_RATIO    TYPE DEC_16_03_S,
  815.     LW_DATBG    TYPE DATS,
  816.     LW_DAREG    TYPE DATS,
  817.     LW_NETWR    TYPE NETWR_FP,
  818.     LW_PARNUM   TYPE EDI_RCVPRN,
  819.     LW_IDNAME   TYPE TDOBNAME,
  820.     LS_BORIDENT TYPE BORIDENT,
  821.     LT_RELROLES TYPE TABLE OF RELROLES,
  822.     LS_RELROLES TYPE RELROLES.
  823.   FIELD-SYMBOLS <FS_BCDT> TYPE ZSD_ST_BCDTBH.
  824.  
  825.   "Don gia ban (69) NGHIA.NGUYEN.CITEK 06.10.2016
  826.   IF GT_BCDT IS NOT INITIAL.
  827.     SELECT
  828.       KBETR
  829.       KPEIN
  830.       WAERS
  831.       KNUMV
  832.       KPOSN
  833.       KMEIN
  834.     FROM KONV
  835.     INTO TABLE LT_UPRIC
  836.     FOR ALL ENTRIES IN GT_BCDT
  837.     WHERE KSCHL IN ( 'ZPRA', 'ZPR0', 'ZC00', 'ZP00', 'ZPRB',  'ZPRC', 'ZC01', 'ZC02', 'ZD01', 'ZD02', 'ZPRE' )
  838.     AND KNUMV = GT_BCDT-KNUMV.
  839.   ENDIF.
  840.  
  841.   LOOP AT GT_BCDT ASSIGNING <FS_BCDT>.
  842.  
  843.     LW_IDNAME = <FS_BCDT>-VBELN.
  844. *    CALL FUNCTION 'ZCORE_FM_GET_LONG_TEXT'
  845. *      EXPORTING
  846. *        I_TDOBJECT  = 'VBBK'
  847. *        I_TDNAME    = LW_IDNAME
  848. *        I_TDID      = 'Z026'
  849. **       I_TDSPRAS   = 'E'
  850. *      IMPORTING
  851. *        E_LONG_TEXT = <FS_BCDT>-TNDR_TRKID.
  852.  
  853.     READ TABLE GT_MARA WITH TABLE KEY MATNR = <FS_BCDT>-MATNR.
  854.     IF SY-SUBRC = 0.
  855.       <FS_BCDT>-MATKL = GT_MARA-MATKL.
  856.       <FS_BCDT>-BISMT = GT_MARA-BISMT.
  857.       <FS_BCDT>-EXTWG = GT_MARA-EXTWG.
  858.       <FS_BCDT>-LABOR = GT_MARA-LABOR.
  859.       <FS_BCDT>-GROES = GT_MARA-GROES.
  860.       <FS_BCDT>-MTART = GT_MARA-MTART.
  861.       <FS_BCDT>-WRKST = GT_MARA-WRKST.
  862.     ENDIF.
  863.  
  864.     READ TABLE GT_TVKOT WITH KEY VKORG = <FS_BCDT>-VKORG BINARY SEARCH.
  865.     IF SY-SUBRC = 0.
  866.       <FS_BCDT>-SOTEXT = GT_TVKOT-VTEXT.
  867.     ENDIF.
  868.  
  869.     READ TABLE GT_T023T WITH TABLE KEY MATKL = <FS_BCDT>-MATKL.
  870.     IF SY-SUBRC = 0.
  871.       <FS_BCDT>-WGBEZ60 = GT_T023T-WGBEZ60.
  872.     ENDIF.
  873.  
  874.     READ TABLE GT_TVFKT WITH TABLE KEY FKART = <FS_BCDT>-FKART.
  875.     IF SY-SUBRC = 0.
  876.       <FS_BCDT>-FKARTT = GT_TVFKT-VTEXT.
  877.     ENDIF.
  878.     IF <FS_BCDT>-PRODH+10(8) <> '        '.
  879.       READ TABLE GT_T179T WITH TABLE KEY PRODH = <FS_BCDT>-PRODH.
  880.       IF SY-SUBRC = 0.
  881.         <FS_BCDT>-PRODH3 = GT_T179T-VTEXT.
  882.       ENDIF.
  883.     ENDIF.
  884.     IF <FS_BCDT>-PRODH+5(13) <> '             '.
  885.       <FS_BCDT>-PRODH = <FS_BCDT>-PRODH+0(10).
  886.       READ TABLE GT_T179T WITH TABLE KEY PRODH = <FS_BCDT>-PRODH.
  887.       IF SY-SUBRC = 0.
  888.         <FS_BCDT>-PRODH2 = GT_T179T-VTEXT.
  889.       ENDIF.
  890. *      SELECT SINGLE VTEXT INTO   FROM T179T WHERE PRODH = <FS_BCDT>-PRODH AND SPRAS = SY-LANGU.
  891.     ENDIF.
  892.     <FS_BCDT>-PRODH = <FS_BCDT>-PRODH+0(5).
  893.     READ TABLE GT_T179T WITH TABLE KEY PRODH = <FS_BCDT>-PRODH.
  894.     IF SY-SUBRC = 0.
  895.       <FS_BCDT>-PRODH1 = GT_T179T-VTEXT.
  896.     ENDIF.
  897. *    SELECT SINGLE VTEXT INTO  <FS_BCDT>-PRODH1 FROM T179T WHERE PRODH = <FS_BCDT>-PRODH AND SPRAS = SY-LANGU.
  898.     IF <FS_BCDT>-PRODH1 = ''.
  899.       IF <FS_BCDT>-PRODH2 = ''.
  900.         <FS_BCDT>-PRODH_DE = <FS_BCDT>-PRODH3."NEU 1 VA 2 = NULL
  901.         IF <FS_BCDT>-PRODH3 = ''.
  902.           <FS_BCDT>-PRODH_DE = ''. "NEU 1,2,3 = NULL
  903.         ENDIF.
  904.       ELSE.
  905.         <FS_BCDT>-PRODH_DE = <FS_BCDT>-PRODH2."NEU 1 VA 3 = NULL
  906.         IF <FS_BCDT>-PRODH3 <> ''.
  907.           CONCATENATE <FS_BCDT>-PRODH_DE <FS_BCDT>-PRODH3 INTO <FS_BCDT>-PRODH_DE SEPARATED BY ', '. "NEU 1 =NULL
  908.         ENDIF.
  909.       ENDIF.
  910.     ELSE.
  911.       <FS_BCDT>-PRODH_DE = <FS_BCDT>-PRODH1."NEU 2 VA 3 = NULL
  912.       IF <FS_BCDT>-PRODH2 <> ''.
  913.         CONCATENATE <FS_BCDT>-PRODH_DE <FS_BCDT>-PRODH2 INTO <FS_BCDT>-PRODH_DE SEPARATED BY ', '. "NEU 3 =NULL
  914.         IF <FS_BCDT>-PRODH3 <> ''.
  915.           CONCATENATE <FS_BCDT>-PRODH_DE <FS_BCDT>-PRODH3 INTO <FS_BCDT>-PRODH_DE SEPARATED BY ', '. "NEU 1,2,3 <> NULL
  916.         ENDIF.
  917.       ELSE.
  918.         IF <FS_BCDT>-PRODH3 <> ''.
  919.           CONCATENATE <FS_BCDT>-PRODH_DE <FS_BCDT>-PRODH3 INTO <FS_BCDT>-PRODH_DE SEPARATED BY ', '. "NEU 2 = NULL
  920.         ENDIF.
  921.       ENDIF.
  922.     ENDIF.
  923.  
  924.     READ TABLE GT_LIPS3 INTO GS_LIPS3 WITH TABLE KEY VBELN = <FS_BCDT>-VGBEL POSNR = <FS_BCDT>-VGPOS.
  925.     IF SY-SUBRC = 0.
  926.       READ TABLE GT_VBKD WITH KEY VBELN = GS_LIPS3-VGBEL BINARY SEARCH.
  927.       IF SY-SUBRC = 0.
  928.         <FS_BCDT>-BSTKD = GT_VBKD-BSTKD.
  929.       ENDIF.
  930.     ENDIF.
  931.  
  932.  
  933.     READ TABLE GT_TMFGT WITH KEY MATNR = <FS_BCDT>-MATNR WERKS = <FS_BCDT>-WERKS.
  934.     IF SY-SUBRC = 0.
  935.       <FS_BCDT>-SIZE = GT_TMFGT-BEZEI.
  936.     ENDIF.
  937.     IF <FS_BCDT>-SIZE IS INITIAL.
  938.       READ TABLE GT_TWEWT WITH TABLE KEY EXTWG = <FS_BCDT>-EXTWG.
  939.       IF SY-SUBRC = 0.
  940.         <FS_BCDT>-SIZE = GT_TWEWT-EWBEZ.
  941.       ENDIF.
  942.     ENDIF.
  943.  
  944.  
  945.     READ TABLE GT_VTTK WITH TABLE KEY TKNUM = <FS_BCDT>-TKNUM.
  946.     IF SY-SUBRC = 0.
  947.       <FS_BCDT>-DAREG = GT_VTTK-DAREG.
  948.       <FS_BCDT>-DATBG = GT_VTTK-DATBG.
  949.       <FS_BCDT>-DPREG = GT_VTTK-DPREG.
  950.       <FS_BCDT>-DPTBG = GT_VTTK-DPTBG.
  951.       <FS_BCDT>-ERNAM = GT_VTTK-ERNAM.
  952.       <FS_BCDT>-SOTOKHAI = GT_VTTK-TEXT1.
  953.       <FS_BCDT>-TEXT1    = GT_VTTK-EXTI1.
  954.       LW_TDOBNAME = GT_VTTK-TKNUM.
  955.       "update chi tieu 4
  956.       CLEAR LW_TEXT.
  957.       CALL FUNCTION 'ZCORE_FM_GET_LONG_TEXT'
  958.         EXPORTING
  959.           I_TDOBJECT  = 'VTTK'
  960.           I_TDNAME    = LW_TDOBNAME
  961.           I_TDID      = 'Z022'
  962.           I_TDSPRAS   = SY-LANGU
  963.         IMPORTING
  964.           E_LONG_TEXT = LW_TEXT.
  965.       IF LW_TEXT NE SPACE.
  966.         CONCATENATE <FS_BCDT>-TEXT1 LW_TEXT INTO <FS_BCDT>-TEXT1 SEPARATED BY '; '.
  967.       ENDIF.
  968.  
  969.       <FS_BCDT>-SIGNI      = GT_VTTK-SIGNI .
  970.  
  971.       "update chi tieu 5
  972.       CLEAR LW_TEXT.
  973.       CALL FUNCTION 'ZCORE_FM_GET_LONG_TEXT'
  974.         EXPORTING
  975.           I_TDOBJECT  = 'VTTK'
  976.           I_TDNAME    = LW_TDOBNAME
  977.           I_TDID      = 'Z023'
  978.           I_TDSPRAS   = SY-LANGU
  979.         IMPORTING
  980.           E_LONG_TEXT = LW_TEXT.
  981.       IF LW_TEXT NE SPACE.
  982.         CONCATENATE <FS_BCDT>-SIGNI LW_TEXT INTO <FS_BCDT>-SIGNI SEPARATED BY '; '.
  983.       ENDIF.
  984. *        <FS_BCDT>-TNDR_TRKID = GT_VTTK-TNDR_TRKID.
  985.       IF <FS_BCDT>-DAREG IS INITIAL.
  986.         <FS_BCDT>-DAREG = <FS_BCDT>-DPREG.
  987.       ENDIF.
  988.       IF <FS_BCDT>-DATBG IS INITIAL.
  989.         <FS_BCDT>-DATBG = <FS_BCDT>-DPTBG.
  990.       ENDIF.
  991.     ENDIF.
  992.  
  993.     READ TABLE GT_V_USR_NAME WITH KEY BNAME = <FS_BCDT>-ERNAM.
  994.     IF SY-SUBRC = 0.
  995.       CONCATENATE GT_V_USR_NAME-NAME_FIRST GT_V_USR_NAME-NAME_LAST INTO <FS_BCDT>-BE SEPARATED BY SPACE.
  996.     ENDIF.
  997.  
  998. *    "Ngày tờ khai/ Declaration Date
  999. *    READ TABLE LT_STXH INTO LS_STXH WITH KEY TDID = 'Z019'.
  1000. *    IF SY-SUBRC EQ 0.
  1001. *      LS_STXH-TDNAME = <FS_BCDT>-VBELN.
  1002. *      LS_STXH-TDOBJECT = 'VBBK'.
  1003. *
  1004. *      CALL FUNCTION 'ZCORE_FM_GET_LONG_TEXT'
  1005. *        EXPORTING
  1006. *          I_TDOBJECT  = LS_STXH-TDOBJECT
  1007. *          I_TDNAME    = LS_STXH-TDNAME
  1008. *          I_TDID      = LS_STXH-TDID
  1009. *          I_TDSPRAS   = LS_STXH-TDSPRAS
  1010. *        IMPORTING
  1011. *          E_LONG_TEXT = LW_LONGTEXT.
  1012. *      <FS_BCDT>-NGAYTOKHAI = LW_LONGTEXT.
  1013. *      CLEAR LW_LONGTEXT.
  1014. *      CLEAR LS_STXH-TDNAME.
  1015. *      CLEAR LS_STXH-TDOBJECT.
  1016. *    ENDIF.
  1017.  
  1018.     "Số lượng (Kiện)/ Quantity (Packages)
  1019. *    CALL FUNCTION 'MD_CONVERT_MATERIAL_UNIT'
  1020. *      EXPORTING
  1021. *        I_MATNR              = <FS_BCDT>-MATNR
  1022. *        I_IN_ME              = <FS_BCDT>-VRKME
  1023. *        I_OUT_ME             = 'KIE'
  1024. *        I_MENGE              = <FS_BCDT>-FKIMG
  1025. *      IMPORTING
  1026. *        E_MENGE              = <FS_BCDT>-CARTONS
  1027. *      EXCEPTIONS
  1028. *        ERROR_IN_APPLICATION = 1
  1029. *        ERROR                = 2
  1030. *        OTHERS               = 3.
  1031.  
  1032.     "Khối lượng (KG)/ Quanity (KG)
  1033. *    CALL FUNCTION 'MD_CONVERT_MATERIAL_UNIT'
  1034. *      EXPORTING
  1035. *        I_MATNR              = <FS_BCDT>-MATNR
  1036. *        I_IN_ME              = <FS_BCDT>-MEINS
  1037. *        I_OUT_ME             = 'KG'
  1038. *        I_MENGE              = <FS_BCDT>-FKLMG
  1039. *      IMPORTING
  1040. *        E_MENGE              = <FS_BCDT>-QUANTITYKG1
  1041. *      EXCEPTIONS
  1042. *        ERROR_IN_APPLICATION = 1
  1043. *        ERROR                = 2
  1044. *        OTHERS               = 3.
  1045.  
  1046.  
  1047.     "Ratio added by DatPT16 11.09.2014
  1048.     READ TABLE GT_TCURF WITH KEY FCURR = <FS_BCDT>-WAERK TCURR = <FS_BCDT>-STWAE.
  1049.     IF SY-SUBRC = 0.
  1050.       <FS_BCDT>-FFACT = GT_TCURF-FFACT.
  1051.       <FS_BCDT>-TFACT = GT_TCURF-TFACT.
  1052.     ENDIF.
  1053.  
  1054.     IF <FS_BCDT>-FFACT EQ 0 OR <FS_BCDT>-TFACT EQ 0.
  1055.       LW_RATIO = 1. "VND"
  1056.     ELSE.
  1057.       LW_RATIO =  <FS_BCDT>-TFACT / <FS_BCDT>-FFACT.
  1058.     ENDIF.
  1059.  
  1060.  
  1061.  
  1062.     CALL FUNCTION 'ZCORE_FM_CURR_CONVERT_COMPUTE'
  1063.       EXPORTING
  1064.         I_WAERS   = <FS_BCDT>-WAERK
  1065.       IMPORTING
  1066.         E_DECIMAL = LW_DECIMAL
  1067.         E_NUMBER  = LW_NUMBER
  1068.         E_SHIFT   = LW_SHIFT.
  1069.  
  1070.     IF LW_DECIMAL EQ 0.
  1071.       LW_RATIO = LW_RATIO.
  1072.     ELSEIF LW_DECIMAL EQ 1.
  1073.       LW_RATIO = LW_RATIO / 10.
  1074.     ELSEIF LW_DECIMAL EQ 2.
  1075.       LW_RATIO = LW_RATIO / 100.
  1076.     ENDIF.
  1077.     "xu ly chi tieu (20)  "Bo xung chi tieu (68)
  1078. *    <FS_BCDT>-WAVWR2 = <FS_BCDT>-WAVWR. "Quynh rem code
  1079. *    IF <FS_BCDT>-WAVWR EQ 0. "Quynh rem code
  1080.     CLEAR: <FS_BCDT>-WAVWR ,
  1081.            <FS_BCDT>-WAVWR2. "Quynh add code
  1082.     IF <FS_BCDT>-BUKRS NE <FS_BCDT>-WERKS.
  1083.       LOOP AT GT_VBRP2 WHERE VGBEL = <FS_BCDT>-VGBEL AND VGPOS = <FS_BCDT>-VGPOS AND VBELN NE <FS_BCDT>-VBELN.
  1084.         <FS_BCDT>-WAVWR  = GT_VBRP2-NETWR / <FS_BCDT>-KURRF.
  1085.         <FS_BCDT>-WAVWR2 = GT_VBRP2-NETWR.
  1086.       ENDLOOP.
  1087.     ELSE.
  1088.       READ TABLE GT_LIPS WITH KEY VBELN = <FS_BCDT>-VGBEL UECHA = <FS_BCDT>-VGPOS.
  1089.       IF SY-SUBRC = 0.
  1090.         LOOP AT GT_LIPS WHERE VBELN = <FS_BCDT>-VGBEL AND UECHA = <FS_BCDT>-VGPOS.
  1091.           READ TABLE GT_MSEG WITH KEY VBELN_IM = GT_LIPS-VBELN VBELP_IM = GT_LIPS-POSNR BINARY SEARCH.
  1092.           IF SY-SUBRC = 0.
  1093.             <FS_BCDT>-WAVWR = <FS_BCDT>-WAVWR + GT_MSEG-DMBTR.
  1094.             <FS_BCDT>-WAVWR2 = <FS_BCDT>-WAVWR2 + GT_MSEG-DMBTR.
  1095.           ENDIF.
  1096.         ENDLOOP.
  1097.       ELSE.
  1098.         IF <FS_BCDT>-VBELV IS NOT INITIAL.
  1099. *                READ TABLE GT_LIPS with key vbeln = <FS_BCDT>-VGBEL VBELV = <FS_BCDT>-VBELV POSNV = <FS_BCDT>-POSNV.
  1100. *                if <FS_BCDT>-VGPOS = <FS_BCDT>-POSNV and GT_LIPS-UECHA is INITIAL.
  1101.           LOOP AT GT_LIPS WHERE VBELN = <FS_BCDT>-VGBEL AND VBELV = <FS_BCDT>-VBELV  AND POSNV = <FS_BCDT>-POSNV .
  1102.             READ TABLE GT_MSEG WITH KEY VBELN_IM = GT_LIPS-VBELN VBELP_IM = GT_LIPS-POSNR BINARY SEARCH.
  1103.             IF SY-SUBRC = 0.
  1104.               <FS_BCDT>-WAVWR = <FS_BCDT>-WAVWR + GT_MSEG-DMBTR.
  1105.               <FS_BCDT>-WAVWR2 = <FS_BCDT>-WAVWR2 + GT_MSEG-DMBTR.
  1106.             ENDIF.
  1107.           ENDLOOP.
  1108.         ELSE.
  1109.           LOOP AT GT_LIPS WHERE VBELN = <FS_BCDT>-VGBEL AND POSNR = <FS_BCDT>-VGPOS.   "Quynh add code
  1110. *                                                              AND VGPOS = <FS_BCDT>-VGPOS.  "Quynh rem code
  1111.             READ TABLE GT_MSEG WITH KEY VBELN_IM = GT_LIPS-VBELN VBELP_IM = GT_LIPS-POSNR BINARY SEARCH.
  1112.             IF SY-SUBRC = 0.
  1113.               <FS_BCDT>-WAVWR = <FS_BCDT>-WAVWR + GT_MSEG-DMBTR.
  1114.               <FS_BCDT>-WAVWR2 = <FS_BCDT>-WAVWR2 + GT_MSEG-DMBTR.
  1115.             ENDIF.
  1116.           ENDLOOP.
  1117.         ENDIF.
  1118.       ENDIF.
  1119.     ENDIF.
  1120.     IF LW_RATIO <> 0.
  1121.       <FS_BCDT>-WAVWR = <FS_BCDT>-WAVWR / LW_RATIO.
  1122.     ENDIF.
  1123.  
  1124.     IF <FS_BCDT>-WAVWR2 = 0 AND <FS_BCDT>-VGBEL CS '17000'.
  1125.  
  1126. **      <FS_BCDT>-XBLNR = <FS_BCDT>-VGBEL.
  1127.       IF GT_LIPS2[] IS INITIAL.
  1128.         SELECT VBELN POSNR
  1129.            FROM LIPS
  1130.            INTO TABLE GT_LIPS2
  1131.            WHERE LGMNG <> 0.
  1132.         SORT GT_LIPS2 BY VBELV POSNV.
  1133. *           WHERE LIPS~VBELV = <FS_BCDT>-VBELV AND POSNV = <FS_BCDT>-POSNV AND LGMNG <> 0.
  1134.       ENDIF.
  1135.  
  1136.       IF GT_MKPF2[] IS INITIAL.
  1137.         SELECT  MBLNR
  1138.                 MJAHR
  1139.                 XBLNR
  1140.            FROM MKPF
  1141.            INTO TABLE GT_MKPF2.
  1142.         SORT GT_MKPF2 BY XBLNR.
  1143.       ENDIF.
  1144.  
  1145.       READ TABLE GT_LIPS2 WITH KEY VBELV = <FS_BCDT>-VBELV
  1146.                                    POSNV = <FS_BCDT>-POSNV BINARY SEARCH .
  1147.       IF SY-SUBRC = 0.
  1148.         <FS_BCDT>-XBLNR = GT_LIPS2-VBELN.
  1149.         LW_INX = SY-TABIX.
  1150.         LOOP AT GT_LIPS2 FROM LW_INX.
  1151.           IF GT_LIPS2-VBELV NE <FS_BCDT>-VBELV OR GT_LIPS2-POSNV NE <FS_BCDT>-POSNV.
  1152.             EXIT.
  1153.           ENDIF.
  1154.           APPEND GT_LIPS2 TO GT_LIPS2_TEMP.
  1155.         ENDLOOP.
  1156.       ENDIF.
  1157.       CLEAR: LW_INX.
  1158.  
  1159.       READ TABLE GT_MKPF2 WITH KEY XBLNR = <FS_BCDT>-XBLNR BINARY SEARCH TRANSPORTING NO FIELDS.
  1160.       IF SY-SUBRC = 0.
  1161.         LW_INX = SY-TABIX.
  1162.         LOOP AT GT_MKPF2 FROM LW_INX.
  1163.           IF GT_MKPF2-XBLNR NE <FS_BCDT>-XBLNR.
  1164.             EXIT.
  1165.           ENDIF.
  1166.           APPEND GT_MKPF2 TO GT_MKPF2_TEMP.
  1167.         ENDLOOP.
  1168.       ENDIF.
  1169.       CLEAR: LW_INX.
  1170.  
  1171.       IF GT_MKPF2_TEMP[] IS NOT INITIAL.
  1172.         IF GT_MSEG3[] IS INITIAL.
  1173.           SELECT MBLNR MJAHR ZEILE DMBTR SMBLN SMBLP BUKRS VBELN_IM VBELP_IM
  1174.             FROM MSEG
  1175.             INTO TABLE GT_MSEG3.
  1176.  
  1177.           SORT GT_MSEG3 BY MBLNR MJAHR.
  1178. *            FOR ALL ENTRIES IN GT_MKPF2
  1179. *            WHERE MBLNR = GT_MKPF2-MBLNR AND MJAHR = GT_MKPF2-MJAHR.
  1180.         ENDIF.
  1181.  
  1182.         LOOP AT GT_MKPF2_TEMP.
  1183.           READ TABLE GT_MSEG3 WITH KEY MBLNR = GT_MKPF2_TEMP-MBLNR
  1184.                                        MJAHR = GT_MKPF2_TEMP-MJAHR BINARY SEARCH TRANSPORTING NO FIELDS.
  1185.           IF SY-SUBRC = 0.
  1186.             LW_INX = SY-TABIX.
  1187.             LOOP AT GT_MSEG3 FROM LW_INX.
  1188.               IF GT_MSEG3-MBLNR NE GT_MKPF2_TEMP-MBLNR OR GT_MSEG3-MJAHR NE GT_MKPF2_TEMP-MJAHR.
  1189.                 EXIT.
  1190.               ENDIF.
  1191.               APPEND GT_MSEG3 TO GT_MSEG3_TEMP.
  1192.             ENDLOOP.
  1193.           ENDIF.
  1194.           CLEAR: LW_INX.
  1195.         ENDLOOP.
  1196.  
  1197.  
  1198.         "LOAI BO MAT.DOC REVERSE
  1199.         LOOP AT GT_MSEG3_TEMP WHERE SMBLN IS NOT INITIAL.
  1200.           APPEND GT_MSEG3_TEMP TO GT_MSEG4[].
  1201.         ENDLOOP.
  1202.         DELETE GT_MSEG3_TEMP WHERE SMBLN IS NOT INITIAL.
  1203.         LOOP AT GT_MSEG4.
  1204.           DELETE GT_MSEG3_TEMP WHERE MBLNR = GT_MSEG4-SMBLN AND ZEILE = GT_MSEG4-SMBLP.
  1205.         ENDLOOP.
  1206.         SORT GT_MSEG3_TEMP BY VBELN_IM VBELP_IM.
  1207.  
  1208.         LOOP AT GT_LIPS2_TEMP.
  1209.           READ TABLE GT_MSEG3_TEMP WITH KEY VBELN_IM = GT_LIPS2_TEMP-VBELN VBELP_IM = GT_LIPS2_TEMP-POSNR BINARY SEARCH.
  1210.           IF SY-SUBRC = 0.
  1211.             <FS_BCDT>-WAVWR2 = <FS_BCDT>-WAVWR2 + GT_MSEG3_TEMP-DMBTR.
  1212.           ENDIF.
  1213.         ENDLOOP.
  1214.       ENDIF.
  1215.       CLEAR: GT_MKPF2_TEMP[],GT_MKPF2_TEMP,GT_MSEG3_TEMP[],GT_MSEG3_TEMP,GT_LIPS2_TEMP[],GT_LIPS2_TEMP.
  1216.     ENDIF.
  1217.     "Doanh thu VND/ Net Value (VND)
  1218.     <FS_BCDT>-DOANHTHUVND = <FS_BCDT>-KURRF * <FS_BCDT>-NETWR * LW_RATIO.
  1219.     "Lợi nhuận/ Profit
  1220.     <FS_BCDT>-LOINHUAN = <FS_BCDT>-NETWR - <FS_BCDT>-WAVWR.
  1221.     "%Lợi  Nhuận
  1222.     IF <FS_BCDT>-WAVWR NE 0.
  1223.       <FS_BCDT>-%LOINHUAN = ( <FS_BCDT>-NETWR - <FS_BCDT>-WAVWR ) * 100 / <FS_BCDT>-WAVWR.
  1224.     ENDIF.
  1225.     "Thuế GTGT VND/ Tax (VND)
  1226.     <FS_BCDT>-THUEVND     = <FS_BCDT>-KURRF * <FS_BCDT>-MWSBP * LW_RATIO.
  1227.     ""Chi tieu 69.
  1228.     <FS_BCDT>-UPRIC73 = 0.
  1229.     READ TABLE LT_UPRIC INTO LS_UPRIC WITH KEY KNUMV = <FS_BCDT>-KNUMV KPOSN = <FS_BCDT>-POSNR.
  1230.     IF SY-SUBRC = 0.
  1231.       IF LS_UPRIC-KPEIN <> 0.
  1232.         DATA: LW_MENGE_N TYPE EKPO-MENGE.
  1233.  
  1234.         CALL FUNCTION 'MD_CONVERT_MATERIAL_UNIT'
  1235.         EXPORTING
  1236.           I_MATNR              = <FS_BCDT>-MATNR
  1237.           I_IN_ME              = <FS_BCDT>-MEINS
  1238.           I_OUT_ME             = LS_UPRIC-KMEIN
  1239.           I_MENGE              = 1
  1240.         IMPORTING
  1241.           E_MENGE              = LW_MENGE_N
  1242.         EXCEPTIONS
  1243.           ERROR_IN_APPLICATION = 1
  1244.           ERROR                = 2
  1245.           OTHERS               = 3.
  1246.  
  1247.         <FS_BCDT>-UPRIC73 = ( LS_UPRIC-KBETR / LS_UPRIC-KPEIN ) * LW_MENGE_N.
  1248.       ENDIF.
  1249.     ENDIF.
  1250.     "Trong trường hợp các billing có screen field : VBRP-SHKZG = ‘X’ thì giá trị là âm.
  1251.     IF <FS_BCDT>-SHKZG = 'X' .
  1252.       <FS_BCDT>-UPRIC73     = <FS_BCDT>-UPRIC73 * -1.
  1253.       <FS_BCDT>-NETWR       = <FS_BCDT>-NETWR * -1.
  1254.       <FS_BCDT>-MWSBP       = <FS_BCDT>-MWSBP * -1.
  1255.       <FS_BCDT>-DOANHTHUVND = <FS_BCDT>-DOANHTHUVND * -1.
  1256.       <FS_BCDT>-THUEVND     = <FS_BCDT>-THUEVND * -1.
  1257.       <FS_BCDT>-WAVWR2 = <FS_BCDT>-WAVWR2 * -1.
  1258.       <FS_BCDT>-WAVWR  = <FS_BCDT>-WAVWR  * -1.
  1259.       <FS_BCDT>-FKIMG  = <FS_BCDT>-FKIMG  * -1.
  1260.       <FS_BCDT>-FKLMG  = <FS_BCDT>-FKLMG  * -1.
  1261.     ENDIF.
  1262.  
  1263.     "Thành tiền / Total
  1264.     <FS_BCDT>-TOTAL = <FS_BCDT>-NETWR + <FS_BCDT>-MWSBP.
  1265.  
  1266.     "Thành tiền theo VND/ Total (VND)
  1267.     <FS_BCDT>-TOTALVND = <FS_BCDT>-DOANHTHUVND + <FS_BCDT>-THUEVND.
  1268.  
  1269.     READ TABLE GT_TVKO WITH TABLE KEY VKORG = <FS_BCDT>-VKORG.
  1270.     IF SY-SUBRC = 0.
  1271.       READ TABLE GT_ADRC2 WITH KEY ADDRNUMBER = GT_TVKO-ADRNR BINARY SEARCH.
  1272.       IF SY-SUBRC = 0.
  1273.         <FS_BCDT>-MC_NAME1 = GT_ADRC2-NAME1.
  1274. *            CONCATENATE GT_ADRC2-NAME1 GT_ADRC2-NAME2 GT_ADRC2-NAME3 INTO <FS_BCDT>-MC_NAME1 SEPARATED BY SPACE."CHANGE BY SANGVT3 4/3/2016
  1275.       ENDIF.
  1276.     ENDIF.
  1277.  
  1278.     READ TABLE GT_TVTWT WITH TABLE KEY VTWEG = <FS_BCDT>-VTWEG.
  1279.     IF SY-SUBRC = 0.
  1280.       <FS_BCDT>-VTEXT3 = GT_TVTWT-VTEXT.
  1281.     ENDIF.
  1282.  
  1283.     READ TABLE GT_TVKBT WITH TABLE KEY VKBUR = <FS_BCDT>-VKBUR.
  1284.     IF SY-SUBRC = 0.
  1285.       <FS_BCDT>-BEZEI1 = GT_TVKBT-BEZEI.
  1286.     ENDIF.
  1287.  
  1288.     READ TABLE GT_TVGRT WITH TABLE KEY VKGRP = <FS_BCDT>-VKGRP.
  1289.     IF SY-SUBRC = 0.
  1290.       <FS_BCDT>-BEZEI2 = GT_TVGRT-BEZEI.
  1291.     ENDIF.
  1292.  
  1293.     READ TABLE GT_T171T WITH TABLE KEY BZIRK  = <FS_BCDT>-BZIRK_AUFT.
  1294.     IF SY-SUBRC = 0.
  1295.       <FS_BCDT>-BZTXT = GT_T171T-BZTXT.
  1296.     ENDIF.
  1297.  
  1298.     READ TABLE GT_T151T WITH TABLE KEY KDGRP = <FS_BCDT>-KDGRP.
  1299.     IF SY-SUBRC = 0.
  1300.       <FS_BCDT>-KTEXT = GT_T151T-KTEXT.
  1301.     ENDIF.
  1302.  
  1303. *     GET TEN KH (FIXED BY DATPT16 16.09.2014)
  1304.     READ TABLE GT_VBPA_FINAL INTO GS_VBPA_FINAL WITH KEY VBELN = <FS_BCDT>-VBELN BINARY SEARCH.
  1305.     IF SY-SUBRC = 0 .
  1306.       <FS_BCDT>-ADRNR = GS_VBPA_FINAL-ADRNR.
  1307.       <FS_BCDT>-MANAGER = GS_VBPA_FINAL-MANAGER.
  1308.       <FS_BCDT>-PERVE = GS_VBPA_FINAL-PERVE.
  1309.       <FS_BCDT>-PERVW = GS_VBPA_FINAL-PERVW.
  1310.       <FS_BCDT>-DOCEMPLOYEE = GS_VBPA_FINAL-DOCEMPLOYEE.
  1311.       <FS_BCDT>-PAYER_NAME = GS_VBPA_FINAL-PAYER_NAME.
  1312.       <FS_BCDT>-SOLD_NAME = GS_VBPA_FINAL-SOLD_NAME.
  1313.       <FS_BCDT>-BILL_NAME = GS_VBPA_FINAL-BILL_NAME.
  1314.       <FS_BCDT>-KUNNR = GS_VBPA_FINAL-KUNNR.
  1315.       <FS_BCDT>-KUNNR57 = GS_VBPA_FINAL-KUNNR57.
  1316.  
  1317.       "Updated by PHUCDT4 - 12.03.2016
  1318.       READ TABLE GT_ADR2 INTO GS_ADR2 WITH KEY KUNNR = <FS_BCDT>-KUNNR57 BINARY SEARCH.
  1319.       IF SY-SUBRC EQ '0'.
  1320.         <FS_BCDT>-TELNUMBER = GS_ADR2-TELNR_CALL.
  1321.         CLEAR:  GS_ADR2.
  1322.       ENDIF.
  1323.  
  1324.       <FS_BCDT>-KUNNR61 = GS_VBPA_FINAL-KUNNR61.
  1325.     ENDIF.
  1326.     READ TABLE GT_ADRC WITH KEY ADDRNUMBER = <FS_BCDT>-ADRNR BINARY SEARCH.
  1327.     IF SY-SUBRC = 0.
  1328.       CONCATENATE GT_ADRC-NAME2 GT_ADRC-NAME3 GT_ADRC-NAME4 INTO <FS_BCDT>-TENKH SEPARATED BY ' '.
  1329.       IF <FS_BCDT>-TENKH IS INITIAL.
  1330.         <FS_BCDT>-TENKH = GT_ADRC-NAME1.
  1331.       ENDIF.
  1332.     ENDIF.
  1333.  
  1334.     READ TABLE GT_VBAP WITH TABLE KEY VBELN = <FS_BCDT>-AUBEL POSNR = <FS_BCDT>-AUPOS.
  1335.     IF SY-SUBRC = 0.
  1336.       <FS_BCDT>-BEDAE = GT_VBAP-BEDAE.
  1337.     ENDIF.
  1338.  
  1339.     READ TABLE GT_PA0002 WITH KEY PERNR = <FS_BCDT>-PERVE BINARY SEARCH.
  1340.     IF SY-SUBRC = 0.
  1341.       CONCATENATE    GT_PA0002-NCHMC  GT_PA0002-VNAMC INTO  <FS_BCDT>-EMPLOYEE SEPARATED BY SPACE.
  1342.     ENDIF.
  1343.  
  1344.  
  1345.     READ TABLE GT_PA0002 WITH KEY PERNR = <FS_BCDT>-PERVW BINARY SEARCH.
  1346.     IF SY-SUBRC = 0.
  1347.       CONCATENATE    GT_PA0002-NCHMC  GT_PA0002-VNAMC INTO  <FS_BCDT>-PERSON SEPARATED BY SPACE.
  1348.     ENDIF.
  1349.  
  1350. *    "FI Document
  1351. *    READ TABLE GT_BKPF_FI INTO GS_BKPF_FI WITH KEY AWKEY = <FS_BCDT>-XBLNR1.
  1352. *        IF SY-SUBRC = 0.
  1353. *          <FS_BCDT>-BELNR1  = GS_BKPF_FI-BELNR.
  1354. *        ENDIF.
  1355.  
  1356.     READ TABLE GT_TVKTT WITH TABLE KEY KTGRD = <FS_BCDT>-KTGRD.
  1357.     IF SY-SUBRC = 0.
  1358.       <FS_BCDT>-VTEXT2 = GT_TVKTT-VTEXT.
  1359.     ENDIF.
  1360.  
  1361.     "CHI TIEU 72
  1362.     "get period year
  1363.     IF <FS_BCDT>-WERKS EQ <FS_BCDT>-BUKRS.
  1364.       CLEAR: LW_PERIOD, LW_YEAR.
  1365.       LW_PERIOD = <FS_BCDT>-FKDAT+4(2).
  1366.       LW_YEAR   = <FS_BCDT>-FKDAT(4).
  1367.       IF <FS_BCDT>-BEDAE EQ 'KSV' OR <FS_BCDT>-BEDAE IS INITIAL.
  1368.         IF <FS_BCDT>-MTART = 'Z53' OR <FS_BCDT>-MTART = 'Z21'.
  1369.           READ TABLE GT_GIATT WITH KEY  MATNR = <FS_BCDT>-MATNR
  1370.                                         BWTAR = ''
  1371.                                         BWKEY = <FS_BCDT>-WERKS
  1372.                                         BDATJ = LW_YEAR
  1373.                                         POPER = LW_PERIOD.
  1374.           IF SY-SUBRC = 0.
  1375.             <FS_BCDT>-GIATT = GT_GIATT-PVPRS.
  1376.           ENDIF.
  1377.  
  1378.         ELSE.
  1379.           READ TABLE GT_GIATT WITH KEY  MATNR = <FS_BCDT>-MATNR
  1380.                               BWTAR = '01.SANXUAT'
  1381.                               BWKEY = <FS_BCDT>-WERKS
  1382.                               BDATJ = LW_YEAR
  1383.                               POPER = LW_PERIOD.
  1384.           IF SY-SUBRC = 0.
  1385.             <FS_BCDT>-GIATT = GT_GIATT-PVPRS.
  1386.           ENDIF.
  1387.         ENDIF.
  1388.       ELSEIF <FS_BCDT>-BEDAE EQ 'KE' .
  1389.         IF <FS_BCDT>-MTART = 'Z53' OR <FS_BCDT>-MTART = 'Z21'.
  1390.           READ TABLE GT_GIATT WITH KEY  MATNR = <FS_BCDT>-MATNR
  1391.                     BWTAR = ''
  1392.                     BWKEY = <FS_BCDT>-WERKS
  1393.                     VBELN = <FS_BCDT>-AUBEL
  1394.                     BDATJ = LW_YEAR
  1395.                     POPER = LW_PERIOD.
  1396.           IF SY-SUBRC = 0.
  1397.             <FS_BCDT>-GIATT = GT_GIATT-PVPRS.
  1398.           ENDIF.
  1399. *          SELECT SINGLE PVPRS
  1400. *                 FROM CKMLCR
  1401. *                 INNER JOIN CKMLHD ON CKMLHD~KALNR = CKMLCR~KALNR
  1402. *                 INTO <FS_BCDT>-GIATT
  1403. *          WHERE  MATNR = <FS_BCDT>-MATNR
  1404. *            AND  BWTAR = ''
  1405. *            AND  BWKEY = <FS_BCDT>-WERKS
  1406. *            AND  VBELN = <FS_BCDT>-AUBEL
  1407. *            AND  CKMLCR~BDATJ = LW_YEAR
  1408. *            AND  CKMLCR~POPER = LW_PERIOD.
  1409.         ELSE.
  1410.           READ TABLE GT_GIATT WITH KEY  MATNR = <FS_BCDT>-MATNR
  1411.           BWTAR = '01.SANXUAT'
  1412.           BWKEY = <FS_BCDT>-WERKS
  1413.           VBELN = <FS_BCDT>-AUBEL
  1414.           BDATJ = LW_YEAR
  1415.           POPER = LW_PERIOD.
  1416.           IF SY-SUBRC = 0.
  1417.             <FS_BCDT>-GIATT = GT_GIATT-PVPRS.
  1418.           ENDIF.
  1419. *          SELECT SINGLE PVPRS
  1420. *                 FROM CKMLCR
  1421. *                 INNER JOIN CKMLHD ON CKMLHD~KALNR = CKMLCR~KALNR
  1422. *                 INTO <FS_BCDT>-GIATT
  1423. *          WHERE  MATNR = <FS_BCDT>-MATNR
  1424. *            AND  BWTAR = '01.SANXUAT'
  1425. *            AND  BWKEY = <FS_BCDT>-WERKS
  1426. *            AND  VBELN = <FS_BCDT>-AUBEL
  1427. *            AND  CKMLCR~BDATJ = LW_YEAR
  1428. *            AND  CKMLCR~POPER = LW_PERIOD.
  1429.         ENDIF.
  1430.       ENDIF.
  1431.  
  1432.       <FS_BCDT>-GIATT = <FS_BCDT>-GIATT * <FS_BCDT>-FKLMG.
  1433.     ELSE.
  1434.       <FS_BCDT>-GIATT = <FS_BCDT>-WAVWR2.
  1435.     ENDIF.
  1436.  
  1437. *    "(75) Lợi nhuận thực tế
  1438. *    READ TABLE LT_UPRIC INTO LS_UPRIC WITH KEY KNUMV = <FS_BCDT>-KNUMV KPOSN = <FS_BCDT>-POSNR.
  1439. *    IF SY-SUBRC = 0.
  1440. *      <FS_BCDT>-KMEIN = LS_UPRIC-KMEIN.
  1441. *      CLEAR: LS_UPRIC.
  1442. *    ENDIF.
  1443.  
  1444. *    READ TABLE GT_KONV WITH KEY KNUMV = <FS_BCDT>-KNUMV KPOSN = <FS_BCDT>-POSNR.
  1445. *    IF SY-SUBRC = 0.
  1446. *      <FS_BCDT>-KMEIN = GT_KONV-KMEIN.
  1447. *    ENDIF.
  1448.     CALL FUNCTION 'MD_CONVERT_MATERIAL_UNIT'
  1449.       EXPORTING
  1450.         I_MATNR              = <FS_BCDT>-MATNR
  1451.         I_IN_ME              = <FS_BCDT>-MEINS
  1452.         I_OUT_ME             = <FS_BCDT>-KMEIN
  1453.         I_MENGE              = <FS_BCDT>-FKLMG
  1454.       IMPORTING
  1455.         E_MENGE              = <FS_BCDT>-SLDVTBG
  1456.       EXCEPTIONS
  1457.         ERROR_IN_APPLICATION = 1
  1458.         ERROR                = 2
  1459.         OTHERS               = 3.
  1460.  
  1461. *     Cac chi tieu (51)-->(58) (Updated by TuanTHM 15.01.2015)
  1462.     READ TABLE GT_TSPAT WITH TABLE KEY SPART = <FS_BCDT>-SPART.
  1463.     IF SY-SUBRC = 0.
  1464.       <FS_BCDT>-SPART_D = GT_TSPAT-VTEXT.
  1465.     ENDIF.
  1466.  
  1467.     IF <FS_BCDT>-KLKG2 = ''.
  1468.       <FS_BCDT>-KLKG2 = <FS_BCDT>-QUANTITYKG1.
  1469.     ENDIF.
  1470.  
  1471. *    IF <FS_BCDT>-FKLMG NE 0.
  1472. *      <FS_BCDT>-UPRIC73 = <FS_BCDT>-KZWI2 / <FS_BCDT>-FKLMG.
  1473. *    ENDIF.
  1474.  
  1475. *    READ TABLE LT_UPRIC INTO LS_UPRIC WITH KEY KNUMV = <FS_BCDT>-KNUMV KPOSN = <FS_BCDT>-POSNR.
  1476. *    IF SY-SUBRC = 0.
  1477. *      <FS_BCDT>-KMEIN = LS_UPRIC-KMEIN.
  1478. *      "Fix bug
  1479. *      IF LS_UPRIC-KPEIN EQ 0.
  1480. *        LS_UPRIC-KPEIN = 1.
  1481. *      ENDIF.
  1482. *      <FS_BCDT>-UPRIC = LS_UPRIC-KBETR / LS_UPRIC-KPEIN.
  1483. *      READ TABLE GT_CURRENCY INTO GS_CURRENCY WITH KEY WAERS = LS_UPRIC-WAERS.
  1484. *      <FS_BCDT>-UPRIC = <FS_BCDT>-UPRIC * GS_CURRENCY-CURR_RATE.
  1485. *      <FS_BCDT>-UPRIC73 = <FS_BCDT>-UPRIC * <FS_BCDT>-UMVKN / <FS_BCDT>-UMVKZ.
  1486. *      CLEAR: LS_UPRIC.
  1487. *    ENDIF.
  1488.  
  1489.     READ TABLE GT_T001W WITH TABLE KEY WERKS = <FS_BCDT>-WERKS.
  1490.     IF SY-SUBRC = 0.
  1491.       <FS_BCDT>-WERKS_D = GT_T001W-NAME2.
  1492.     ENDIF.
  1493.     "Ten kho
  1494.     READ TABLE GT_T001L WITH TABLE KEY LGORT = <FS_BCDT>-LGORT WERKS = <FS_BCDT>-WERKS.
  1495.     IF SY-SUBRC = 0.
  1496.       <FS_BCDT>-LGOBE = GT_T001L-LGOBE.
  1497.     ENDIF.
  1498. *    TuanTHM end update.
  1499.     "vinhdt6--------
  1500.     "chi tieu 61
  1501.  
  1502.     " **Get IDOC
  1503.     LS_BORIDENT-OBJKEY = <FS_BCDT>-VBELN.
  1504.     LS_BORIDENT-OBJTYPE = 'VBRK'.
  1505.     CALL FUNCTION 'NREL_GET_NEIGHBOURHOOD'
  1506.       EXPORTING
  1507.         IS_OBJECT = LS_BORIDENT
  1508. *       IT_ROLERANGE =
  1509. *       IT_RELRANGE =
  1510. *       I_DEPTH   = 5
  1511. *       BYPASS_BUFFER = ' '
  1512. *                   IMPORTING
  1513. *       EP_EXIST_LINKS =
  1514.       TABLES
  1515. *       LINKS     =
  1516.         ROLES     = LT_RELROLES.
  1517.     READ TABLE LT_RELROLES INTO LS_RELROLES WITH KEY OBJTYPE = 'IDOC'.
  1518.     IF SY-SUBRC = 0 .
  1519.       <FS_BCDT>-DOCNUM = LS_RELROLES-OBJKEY.
  1520.     ENDIF.
  1521.     "Chi tieu 62
  1522.     READ TABLE GT_EDIDS WITH KEY DOCNUM = <FS_BCDT>-DOCNUM BINARY SEARCH.
  1523.     IF SY-SUBRC EQ 0.
  1524.       <FS_BCDT>-STAPA1 = GT_EDIDS-STAPA1.
  1525.     ENDIF.
  1526.  
  1527.     "bo sung chi tieu (69) = (23) - (68)
  1528.  
  1529.     <FS_BCDT>-LOINHUANVND = <FS_BCDT>-DOANHTHUVND - <FS_BCDT>-WAVWR2.
  1530.     <FS_BCDT>-LOINHUANTT = <FS_BCDT>-DOANHTHUVND - <FS_BCDT>-GIATT.
  1531.     "FI OUTBOUND
  1532.     READ TABLE GT_MKPF INTO GS_MKPF WITH KEY XBLNR = <FS_BCDT>-VGBEL.
  1533.     IF SY-SUBRC = 0 .
  1534.       CONCATENATE GS_MKPF-MBLNR GS_MKPF-MJAHR INTO <FS_BCDT>-AWKEY.
  1535.     ENDIF.
  1536.     <FS_BCDT>-AWKEY_ACC = <FS_BCDT>-VBELN.
  1537. *---CAM XOA
  1538.     "CT67 Expiration Date (Hạn dùng)
  1539. *    CALL FUNCTION 'ZCORE_FM_GET_CRTRT_MULTIVAL_MM'
  1540. *     EXPORTING
  1541. *       I_MATNR                        = <FS_BCDT>-MATNR
  1542. *       I_CHARG                        = <FS_BCDT>-CHARG
  1543. *       I_KLART                        = '023'
  1544. **       I_WERKS                        = <FS_BCDT>-WERKS
  1545. **       I_CLASS                        = 'Z_NL_TTY'
  1546. *     TABLES
  1547. *       IT_ATNAM                       = LT_ATNAM
  1548. *       IT_CHARACT                     = LT_CHARACT
  1549. *       IT_CHARNUM                     = LT_CHARNUM
  1550. *            .
  1551. *    READ TABLE LT_CHARNUM INTO LS_CHARNUM WITH KEY CHARACT = 'LOBM_VFDAT'.
  1552. *        IF SY-SUBRC = 0.
  1553. *          WRITE LS_CHARNUM-VALUE_FROM TO LW_DATE.
  1554. *          CONCATENATE LW_DATE+1(1) LW_DATE+3(7) INTO <FS_BCDT>-ZMODE67.
  1555. *        ENDIF.
  1556.  
  1557.     CLEAR:LW_ADRNR, LW_NAME1, LW_NAME2, LW_NAME3, LW_NAME4, LW_STLNR.
  1558.   ENDLOOP.
  1559.  
  1560. *  DELETE GT_BCDT WHERE DPREG NOT IN S_DPREG OR DPTBG NOT IN S_DPTBG.
  1561.  
  1562.   "TuanTHM update tham so "Sales Employee", "Person respons" & "Billing status".
  1563.   DELETE GT_BCDT WHERE PERVE NOT IN S_PERVE.
  1564. *  IF S_MATKL IS NOT INITIAL.
  1565. *    DELETE GT_BCDT WHERE MATKL NOT IN S_MATKL.
  1566. *  ENDIF.
  1567.  
  1568.   IF P_COM EQ 'X'.
  1569.     DELETE GT_BCDT WHERE FKSTO EQ 'X' OR SFAKN NE ''.
  1570.   ELSEIF P_CAN EQ 'X'.
  1571.     DELETE GT_BCDT WHERE FKSTO NE 'X' AND SFAKN EQ ''.
  1572.   ENDIF.
  1573.   "TuanTHM end update.
  1574.  
  1575.   PERFORM SELECT_BKPF_FI.
  1576.   SORT GT_BCDT BY VBELN ASCENDING.
  1577.   "PHÂN QUYỀN THEO Sales Orgnization
  1578.   LOOP AT GT_BCDT ASSIGNING <FS_BCDT>.
  1579.     READ TABLE GT_BKPF_FI INTO GS_BKPF_FI WITH KEY AWKEY = <FS_BCDT>-AWKEY BINARY SEARCH.
  1580.     IF SY-SUBRC = 0.
  1581.       <FS_BCDT>-BELNR = GS_BKPF_FI-BELNR.
  1582.     ENDIF.
  1583.     READ TABLE GT_BKPF INTO GS_BKPF_FI WITH KEY AWKEY = <FS_BCDT>-AWKEY_ACC BINARY SEARCH.
  1584.     IF SY-SUBRC = 0.
  1585.       <FS_BCDT>-BELNR1 = GS_BKPF_FI-BELNR.
  1586.       <FS_BCDT>-XBLNR1 = GS_BKPF_FI-XBLNR.
  1587.     ENDIF.
  1588.  
  1589. *    AUTHORITY-CHECK OBJECT 'V_VBRK_VKO'
  1590. *    ID 'ACTVT' FIELD '03'
  1591. *    ID 'VKORG' FIELD <FS_BCDT>-VKORG.
  1592. *    IF SY-SUBRC <> 0.
  1593. *      DELETE GT_BCDT WHERE VBELN = <FS_BCDT>-VBELN .
  1594. *    ENDIF.
  1595.     READ TABLE GT_TWEWT WITH TABLE KEY EXTWG = <FS_BCDT>-EXTWG.
  1596.     IF SY-SUBRC = 0.
  1597.       <FS_BCDT>-EWBEZ = GT_TWEWT-EWBEZ.
  1598.     ENDIF.
  1599.   ENDLOOP.
  1600.  
  1601. *  IF S_STAPA1 IS NOT INITIAL.
  1602. *    DELETE GT_BCDT WHERE STAPA1 NOT IN S_STAPA1.
  1603. *  ENDIF.
  1604. ENDFORM.
  1605. *&---------------------------------------------------------------------*
  1606. *&      Form  EXPORT_ALV
  1607. *&---------------------------------------------------------------------*
  1608. *       text
  1609. *----------------------------------------------------------------------*
  1610. FORM   EXPORT_ALV.
  1611.   PERFORM BUILD_FIELDCAT.
  1612.   PERFORM BUILD_LAYOUT.
  1613.  
  1614.   CALL FUNCTION 'REUSE_ALV_GRID_DISPLAY_LVC'
  1615.     EXPORTING
  1616.       I_CALLBACK_PROGRAM      = SY-REPID
  1617.       I_CALLBACK_TOP_OF_PAGE  = 'TOP_OF_PAGE'
  1618.       I_CALLBACK_USER_COMMAND = 'HANDLE_USER_COMMAND'
  1619.       IS_LAYOUT_LVC           = GS_LAYOUT
  1620.       IT_FIELDCAT_LVC         = GT_FIELDCAT
  1621.       IT_SORT_LVC             = GT_SORT
  1622.       I_SAVE                  = 'A'
  1623.     TABLES
  1624.       T_OUTTAB                = GT_BCDT
  1625.     EXCEPTIONS
  1626.       PROGRAM_ERROR           = 1
  1627.       OTHERS                  = 2.
  1628. ENDFORM.                    "EXPORT_ALV
  1629. *&---------------------------------------------------------------------*
  1630. *&      Form  BUILD_FIELDCAT
  1631. *&---------------------------------------------------------------------*
  1632. *       text
  1633. *----------------------------------------------------------------------*
  1634. FORM BUILD_FIELDCAT .
  1635.   CLEAR: GS_FIELDCAT, GT_FIELDCAT.
  1636.   ""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
  1637.   "" Base Unit / Product Hierarchy level 1 / Product Hierarchy level 2 / Product Hierarchy level 3 / Material’s purpose / Regist. No.
  1638.   ""requirement type/ SDT khach hang.
  1639. *  GS_FIELDCAT-FIELDNAME   = 'BUKRS'.
  1640. *  GS_FIELDCAT-JUST        = 'L'.
  1641. *  GS_FIELDCAT-REPTEXT     = 'Company Code'.
  1642. *  APPEND GS_FIELDCAT TO GT_FIELDCAT.
  1643. *  CLEAR GS_FIELDCAT.
  1644.  
  1645. *  GS_FIELDCAT-FIELDNAME   = 'TNDR_TRKID'.
  1646. *  GS_FIELDCAT-JUST        = 'L'.
  1647. *  GS_FIELDCAT-REPTEXT     = 'Commercial Invoice Number'.
  1648. *  GS_FIELDCAT-OUTPUTLEN   = '000035'.
  1649. *  GS_FIELDCAT-LOWERCASE   = 'X'.
  1650. *  APPEND GS_FIELDCAT TO GT_FIELDCAT.
  1651. *  CLEAR GS_FIELDCAT.
  1652.  
  1653.   GS_FIELDCAT-FIELDNAME   = 'MATNR'.
  1654.   GS_FIELDCAT-JUST        = 'L'.
  1655.   GS_FIELDCAT-NO_ZERO    = 'X'.
  1656.   GS_FIELDCAT-REPTEXT     = 'Material'.
  1657.   GS_FIELDCAT-OUTPUTLEN   = '000018'.
  1658.   GS_FIELDCAT-CONVEXIT    = 'MATN1'.
  1659.   APPEND GS_FIELDCAT TO GT_FIELDCAT.
  1660.   CLEAR GS_FIELDCAT.
  1661.  
  1662.   GS_FIELDCAT-FIELDNAME   = 'ARKTX'.
  1663.   GS_FIELDCAT-JUST        = 'L'.
  1664.   GS_FIELDCAT-REPTEXT     = 'Description '.
  1665.   GS_FIELDCAT-NO_ZERO     = 'X'.
  1666.   GS_FIELDCAT-OUTPUTLEN   = '000040'.
  1667.   GS_FIELDCAT-LOWERCASE   = 'X'.
  1668.   APPEND GS_FIELDCAT TO GT_FIELDCAT.
  1669.   CLEAR GS_FIELDCAT.
  1670.  
  1671. *  GS_FIELDCAT-FIELDNAME   = 'PRODH_DE'.
  1672. *  GS_FIELDCAT-JUST        = 'L'.
  1673. *  GS_FIELDCAT-REPTEXT     = 'Product Hierarchy '.
  1674. *  GS_FIELDCAT-OUTPUTLEN   = '000255'.
  1675. *  GS_FIELDCAT-LOWERCASE   = 'X'.
  1676. *  APPEND GS_FIELDCAT TO GT_FIELDCAT.
  1677. *  CLEAR GS_FIELDCAT.
  1678.  
  1679.  
  1680.   GS_FIELDCAT-FIELDNAME   = 'FKIMG'.
  1681.   GS_FIELDCAT-JUST        = 'R'.
  1682.   GS_FIELDCAT-REPTEXT     = 'Quantity (Sales Unit)'.
  1683.   GS_FIELDCAT-QUANTITY   =  'KG'.
  1684.   GS_FIELDCAT-OUTPUTLEN   = '000017'.
  1685.   APPEND GS_FIELDCAT TO GT_FIELDCAT.
  1686.   CLEAR GS_FIELDCAT.
  1687.  
  1688. *  GS_FIELDCAT-FIELDNAME   = 'FKLMG'.
  1689. *  GS_FIELDCAT-JUST        = 'R'.
  1690. *  GS_FIELDCAT-REPTEXT     = 'Quantity in Base Unit'.
  1691. *  GS_FIELDCAT-QUANTITY   =  'KIE'.
  1692. *  GS_FIELDCAT-OUTPUTLEN   = '000017'.
  1693. *  APPEND GS_FIELDCAT TO GT_FIELDCAT.
  1694. *  CLEAR GS_FIELDCAT.
  1695.  
  1696.   GS_FIELDCAT-FIELDNAME   = 'NETWR'.
  1697.   GS_FIELDCAT-JUST        = 'R'.
  1698.   GS_FIELDCAT-REPTEXT     = 'Net Value'.
  1699.   GS_FIELDCAT-CFIELDNAME  = 'WAERK'.
  1700.   GS_FIELDCAT-OUTPUTLEN   = '000021'.
  1701.   APPEND GS_FIELDCAT TO GT_FIELDCAT.
  1702.   CLEAR GS_FIELDCAT.
  1703.  
  1704.   GS_FIELDCAT-FIELDNAME   = 'MWSBP'.
  1705.   GS_FIELDCAT-JUST        = 'R'.
  1706.   GS_FIELDCAT-REPTEXT     = 'Tax '.
  1707.   GS_FIELDCAT-CFIELDNAME  = 'WAERK'.
  1708.   GS_FIELDCAT-OUTPUTLEN   = '000018'.
  1709. *  GS_FIELDCAT-DO_SUM      = 'X'.
  1710.   APPEND GS_FIELDCAT TO GT_FIELDCAT.
  1711.   CLEAR GS_FIELDCAT.
  1712.  
  1713.   GS_FIELDCAT-FIELDNAME   = 'TOTAL'.
  1714.   GS_FIELDCAT-JUST        = 'R'.
  1715.   GS_FIELDCAT-REPTEXT     = 'Total'.
  1716.   GS_FIELDCAT-CFIELDNAME  = 'WAERK'.
  1717.   GS_FIELDCAT-OUTPUTLEN   = '000018'.
  1718.   APPEND GS_FIELDCAT TO GT_FIELDCAT.
  1719.   CLEAR GS_FIELDCAT.
  1720.  
  1721.   GS_FIELDCAT-FIELDNAME   = 'WAVWR'.
  1722.   GS_FIELDCAT-JUST        = 'R'.
  1723.   GS_FIELDCAT-REPTEXT     = 'COGS '.
  1724.   GS_FIELDCAT-CFIELDNAME  = 'WAERK'.
  1725.   GS_FIELDCAT-OUTPUTLEN   = '000018'.
  1726.   APPEND GS_FIELDCAT TO GT_FIELDCAT.
  1727.   CLEAR GS_FIELDCAT.
  1728.  
  1729.   GS_FIELDCAT-FIELDNAME   = 'LOINHUAN'.
  1730.   GS_FIELDCAT-JUST        = 'R'.
  1731.   GS_FIELDCAT-REPTEXT     = 'Profit'.
  1732.   GS_FIELDCAT-CFIELDNAME  = 'WAERK'.
  1733.   GS_FIELDCAT-OUTPUTLEN   = '000018'.
  1734.   APPEND GS_FIELDCAT TO GT_FIELDCAT.
  1735.   CLEAR GS_FIELDCAT.
  1736.  
  1737.   GS_FIELDCAT-FIELDNAME   = '%LOINHUAN'.
  1738.   GS_FIELDCAT-JUST        = 'R'.
  1739.   GS_FIELDCAT-REPTEXT     = '% Profit '.
  1740.   GS_FIELDCAT-OUTPUTLEN   = '000018'.
  1741.   APPEND GS_FIELDCAT TO GT_FIELDCAT.
  1742.   CLEAR GS_FIELDCAT.
  1743.  
  1744.   GS_FIELDCAT-FIELDNAME   = 'DOANHTHUVND'.
  1745.   GS_FIELDCAT-JUST        = 'R'.
  1746.   GS_FIELDCAT-REPTEXT     = 'Net Value (VND) '.
  1747.   GS_FIELDCAT-CURRENCY    = 'VND'.
  1748.   GS_FIELDCAT-OUTPUTLEN   = '000021'.
  1749.   APPEND GS_FIELDCAT TO GT_FIELDCAT.
  1750.   CLEAR GS_FIELDCAT.
  1751.  
  1752.   GS_FIELDCAT-FIELDNAME   = 'THUEVND'.
  1753.   GS_FIELDCAT-JUST        = 'R'.
  1754.   GS_FIELDCAT-REPTEXT     = 'Tax (VND)'.
  1755.   GS_FIELDCAT-CURRENCY    = 'VND'.
  1756.   GS_FIELDCAT-OUTPUTLEN   = '000018'.
  1757.   APPEND GS_FIELDCAT TO GT_FIELDCAT.
  1758.   CLEAR GS_FIELDCAT.
  1759.  
  1760.   GS_FIELDCAT-FIELDNAME   = 'TOTALVND'.
  1761.   GS_FIELDCAT-JUST        = 'R'.
  1762.   GS_FIELDCAT-REPTEXT     = 'Total (VND)'.
  1763.   GS_FIELDCAT-CURRENCY    = 'VND'.
  1764.   GS_FIELDCAT-OUTPUTLEN   = '000021'.
  1765.   APPEND GS_FIELDCAT TO GT_FIELDCAT.
  1766.   CLEAR GS_FIELDCAT.
  1767.  
  1768.   GS_FIELDCAT-FIELDNAME   = 'VKORG'.
  1769.   GS_FIELDCAT-JUST        = 'C'.
  1770.   GS_FIELDCAT-REPTEXT     = 'Sales Organization '.
  1771.   APPEND GS_FIELDCAT TO GT_FIELDCAT.
  1772.   CLEAR GS_FIELDCAT.
  1773.  
  1774.   GS_FIELDCAT-FIELDNAME   = 'SOTEXT'.
  1775.   GS_FIELDCAT-JUST        = 'L'.
  1776.   GS_FIELDCAT-REPTEXT     = 'Sales Organization Name '.
  1777. *  GS_FIELDCAT-OUTPUTLEN   = '000025'.
  1778.   APPEND GS_FIELDCAT TO GT_FIELDCAT.
  1779.   CLEAR GS_FIELDCAT.
  1780.  
  1781.   GS_FIELDCAT-FIELDNAME   = 'VTWEG'.
  1782.   GS_FIELDCAT-JUST        = 'C'.
  1783.   GS_FIELDCAT-REPTEXT     = 'Distribution Channel'.
  1784.   APPEND GS_FIELDCAT TO GT_FIELDCAT.
  1785.   CLEAR GS_FIELDCAT.
  1786.  
  1787.   GS_FIELDCAT-FIELDNAME   = 'VTEXT3'.
  1788.   GS_FIELDCAT-JUST        = 'L'.
  1789.   GS_FIELDCAT-REPTEXT     = 'Distribution Channel Name '.
  1790.   GS_FIELDCAT-OUTPUTLEN   = '000020'.
  1791.   GS_FIELDCAT-LOWERCASE   = 'X'.
  1792.   APPEND GS_FIELDCAT TO GT_FIELDCAT.
  1793.   CLEAR GS_FIELDCAT.
  1794.  
  1795.   GS_FIELDCAT-FIELDNAME   = 'VKBUR '.
  1796.   GS_FIELDCAT-JUST        = 'C'.
  1797.   GS_FIELDCAT-REPTEXT     = 'Sales Office '.
  1798.   APPEND GS_FIELDCAT TO GT_FIELDCAT.
  1799.   CLEAR GS_FIELDCAT.
  1800.  
  1801.   GS_FIELDCAT-FIELDNAME   = 'BEZEI1'.
  1802.   GS_FIELDCAT-JUST        = 'L'.
  1803.   GS_FIELDCAT-REPTEXT     = 'Sales Office Name'.
  1804.   GS_FIELDCAT-OUTPUTLEN   = '000025'.
  1805.   GS_FIELDCAT-LOWERCASE   = 'X'.
  1806.   APPEND GS_FIELDCAT TO GT_FIELDCAT.
  1807.   CLEAR GS_FIELDCAT.
  1808.  
  1809.   GS_FIELDCAT-FIELDNAME   = 'VKGRP'.
  1810.   GS_FIELDCAT-JUST        = 'C'.
  1811.   GS_FIELDCAT-REPTEXT     = 'Sales Group '.
  1812.   APPEND GS_FIELDCAT TO GT_FIELDCAT.
  1813.   CLEAR GS_FIELDCAT.
  1814.  
  1815.   GS_FIELDCAT-FIELDNAME   = 'BEZEI2'.
  1816.   GS_FIELDCAT-JUST        = 'L'.
  1817.   GS_FIELDCAT-REPTEXT     = 'Sales Group Name '.
  1818.   GS_FIELDCAT-OUTPUTLEN   = '000020'.
  1819.   GS_FIELDCAT-LOWERCASE   = 'X'.
  1820.   APPEND GS_FIELDCAT TO GT_FIELDCAT.
  1821.   CLEAR GS_FIELDCAT.
  1822.  
  1823.   GS_FIELDCAT-FIELDNAME   = 'BZIRK_AUFT'.
  1824.   GS_FIELDCAT-JUST        = 'C'.
  1825.   GS_FIELDCAT-REPTEXT     = 'Sales District'.
  1826.   APPEND GS_FIELDCAT TO GT_FIELDCAT.
  1827.   CLEAR GS_FIELDCAT.
  1828.  
  1829.   GS_FIELDCAT-FIELDNAME   = 'BZTXT'.
  1830.   GS_FIELDCAT-JUST        = 'L'.
  1831.   GS_FIELDCAT-REPTEXT     = 'Sales District Name'.
  1832.   GS_FIELDCAT-OUTPUTLEN   = '000020'.
  1833.   GS_FIELDCAT-LOWERCASE   = 'X'.
  1834.   APPEND GS_FIELDCAT TO GT_FIELDCAT.
  1835.   CLEAR GS_FIELDCAT.
  1836.  
  1837.   GS_FIELDCAT-FIELDNAME   = 'EMPLOYEE'.
  1838.   GS_FIELDCAT-JUST        = 'L'.
  1839.   GS_FIELDCAT-REPTEXT     = 'Sales Employee'.
  1840.   GS_FIELDCAT-OUTPUTLEN   = '000100'.
  1841.   GS_FIELDCAT-LOWERCASE   = 'X'.
  1842.   APPEND GS_FIELDCAT TO GT_FIELDCAT.
  1843.   CLEAR GS_FIELDCAT.
  1844.  
  1845.   GS_FIELDCAT-FIELDNAME   = 'VBELN'.
  1846.   GS_FIELDCAT-JUST        = 'C'.
  1847.   GS_FIELDCAT-NO_ZERO     = 'X'.
  1848.   GS_FIELDCAT-REPTEXT     = 'Billing Document'.
  1849.   GS_FIELDCAT-CONVEXIT    = 'ALPHA'.
  1850.   APPEND GS_FIELDCAT TO GT_FIELDCAT.
  1851.   CLEAR GS_FIELDCAT.
  1852.  
  1853.   GS_FIELDCAT-FIELDNAME   = 'FKDAT'.
  1854.   GS_FIELDCAT-JUST        = 'C'.
  1855.   GS_FIELDCAT-REPTEXT     = 'Billing Date'.
  1856.   APPEND GS_FIELDCAT TO GT_FIELDCAT.
  1857.   CLEAR GS_FIELDCAT.
  1858.  
  1859.   GS_FIELDCAT-FIELDNAME   = 'BELNR1'.
  1860.   GS_FIELDCAT-JUST        = 'L'.
  1861.   GS_FIELDCAT-REPTEXT     = 'Accouting Document'.
  1862.   APPEND GS_FIELDCAT TO GT_FIELDCAT.
  1863.   CLEAR GS_FIELDCAT.
  1864.  
  1865.   GS_FIELDCAT-FIELDNAME   = 'WAERK'.
  1866.   GS_FIELDCAT-JUST        = 'C'.
  1867.   GS_FIELDCAT-REPTEXT     = 'Currency '.
  1868.   APPEND GS_FIELDCAT TO GT_FIELDCAT.
  1869.   CLEAR GS_FIELDCAT.
  1870.  
  1871.   GS_FIELDCAT-FIELDNAME   = 'KTGRD'.
  1872.   GS_FIELDCAT-JUST        = 'C'.
  1873.   GS_FIELDCAT-REPTEXT     = 'Customer Account Assignment Group '.
  1874.   APPEND GS_FIELDCAT TO GT_FIELDCAT.
  1875.   CLEAR GS_FIELDCAT.
  1876.  
  1877.   GS_FIELDCAT-FIELDNAME   = 'VTEXT2'.
  1878.   GS_FIELDCAT-JUST        = 'L'.
  1879.   GS_FIELDCAT-REPTEXT     = 'Customer Account Assignment Group Description '.
  1880.   GS_FIELDCAT-OUTPUTLEN   = '000020'.
  1881.   GS_FIELDCAT-LOWERCASE   = 'X'.
  1882.   APPEND GS_FIELDCAT TO GT_FIELDCAT.
  1883.   CLEAR GS_FIELDCAT.
  1884.  
  1885.   GS_FIELDCAT-FIELDNAME   = 'BSTKD'.
  1886.   GS_FIELDCAT-JUST        = 'L'.
  1887.   GS_FIELDCAT-REPTEXT     = 'PO Number'.
  1888.   GS_FIELDCAT-OUTPUTLEN   = '000035'.
  1889.   GS_FIELDCAT-LOWERCASE   = 'X'.
  1890.   APPEND GS_FIELDCAT TO GT_FIELDCAT.
  1891.   CLEAR GS_FIELDCAT.
  1892.  
  1893.   GS_FIELDCAT-FIELDNAME   = 'AUBEL'.
  1894.   GS_FIELDCAT-JUST        = 'C'.
  1895.   GS_FIELDCAT-REPTEXT     = 'Sales Document'.
  1896.   GS_FIELDCAT-CONVEXIT    = 'ALPHA'.
  1897.   APPEND GS_FIELDCAT TO GT_FIELDCAT.
  1898.   CLEAR GS_FIELDCAT.
  1899.  
  1900.   GS_FIELDCAT-FIELDNAME   = 'SPART'.
  1901.   GS_FIELDCAT-JUST        = 'R'.
  1902.   GS_FIELDCAT-REPTEXT     = 'Division'.
  1903.   APPEND GS_FIELDCAT TO GT_FIELDCAT.
  1904.   CLEAR GS_FIELDCAT.
  1905.  
  1906.   GS_FIELDCAT-FIELDNAME   = 'SPART_D'.
  1907.   GS_FIELDCAT-JUST        = 'L'.
  1908.   GS_FIELDCAT-REPTEXT     = 'Division Name'.
  1909.   APPEND GS_FIELDCAT TO GT_FIELDCAT.
  1910.   CLEAR GS_FIELDCAT.
  1911.  
  1912.   GS_FIELDCAT-FIELDNAME   = 'WERKS'.
  1913.   GS_FIELDCAT-JUST        = 'R'.
  1914.   GS_FIELDCAT-REPTEXT     = 'Plant'.
  1915.   APPEND GS_FIELDCAT TO GT_FIELDCAT.
  1916.   CLEAR GS_FIELDCAT.
  1917.  
  1918.   GS_FIELDCAT-FIELDNAME   = 'WERKS_D'.
  1919.   GS_FIELDCAT-JUST        = 'L'.
  1920.   GS_FIELDCAT-REPTEXT     = 'Plant Name'.
  1921.   APPEND GS_FIELDCAT TO GT_FIELDCAT.
  1922.   CLEAR GS_FIELDCAT.
  1923.  
  1924.   GS_FIELDCAT-FIELDNAME   = 'LGORT'.
  1925.   GS_FIELDCAT-JUST        = 'R'.
  1926.   GS_FIELDCAT-REPTEXT     = 'SLOC'.
  1927.   APPEND GS_FIELDCAT TO GT_FIELDCAT.
  1928.   CLEAR GS_FIELDCAT.
  1929.  
  1930.   GS_FIELDCAT-FIELDNAME   = 'LGOBE'.
  1931.   GS_FIELDCAT-JUST        = 'L'.
  1932.   GS_FIELDCAT-REPTEXT     = 'SLOC Name'.
  1933.   APPEND GS_FIELDCAT TO GT_FIELDCAT.
  1934.   CLEAR GS_FIELDCAT.
  1935.  
  1936.   GS_FIELDCAT-FIELDNAME   = 'FKSTO'.
  1937.   GS_FIELDCAT-JUST        = 'L'.
  1938.   GS_FIELDCAT-REPTEXT     = 'Cancel Status'.
  1939.   APPEND GS_FIELDCAT TO GT_FIELDCAT.
  1940.   CLEAR GS_FIELDCAT.
  1941.  
  1942.   GS_FIELDCAT-FIELDNAME   = 'SFAKN'.
  1943.   GS_FIELDCAT-JUST        = 'R'.
  1944.   GS_FIELDCAT-REPTEXT     = 'Cancelled billing'.
  1945.   APPEND GS_FIELDCAT TO GT_FIELDCAT.
  1946.   CLEAR GS_FIELDCAT.
  1947.  
  1948. *  GS_FIELDCAT-FIELDNAME   = 'DOCNUM'.
  1949. *  GS_FIELDCAT-JUST        = 'L'.
  1950. *  GS_FIELDCAT-REPTEXT     = 'IDOC'.
  1951. *  GS_FIELDCAT-LOWERCASE   = 'X'.
  1952. *  APPEND GS_FIELDCAT TO GT_FIELDCAT.
  1953. *  CLEAR GS_FIELDCAT.
  1954.  
  1955. *  GS_FIELDCAT-FIELDNAME   = 'STAPA1'.
  1956. *  GS_FIELDCAT-JUST        = 'L'.
  1957. *  GS_FIELDCAT-REPTEXT     = 'AP Invoice'.
  1958. *  GS_FIELDCAT-LOWERCASE   = 'X'.
  1959. *  APPEND GS_FIELDCAT TO GT_FIELDCAT.
  1960. *  CLEAR GS_FIELDCAT.
  1961.  
  1962.   GS_FIELDCAT-FIELDNAME   = 'BISMT'.
  1963.   GS_FIELDCAT-JUST        = 'L'.
  1964.   GS_FIELDCAT-REPTEXT     = 'Old material'.
  1965.   GS_FIELDCAT-LOWERCASE   = 'X'.
  1966.   APPEND GS_FIELDCAT TO GT_FIELDCAT.
  1967.   CLEAR GS_FIELDCAT.
  1968.  
  1969.   GS_FIELDCAT-FIELDNAME   = 'ERNAM'.
  1970.   GS_FIELDCAT-JUST        = 'L'.
  1971.   GS_FIELDCAT-REPTEXT     = 'User'.
  1972.   GS_FIELDCAT-LOWERCASE   = 'X'.
  1973.   APPEND GS_FIELDCAT TO GT_FIELDCAT.
  1974.   CLEAR GS_FIELDCAT.
  1975.  
  1976.   GS_FIELDCAT-FIELDNAME   = 'WADAT_IST'.
  1977.   GS_FIELDCAT-JUST        = 'C'.
  1978.   GS_FIELDCAT-REPTEXT     = 'Actual GI Date.'.
  1979.   APPEND GS_FIELDCAT TO GT_FIELDCAT.
  1980.   CLEAR GS_FIELDCAT.
  1981.  
  1982.   GS_FIELDCAT-FIELDNAME   = 'WAVWR2'.
  1983.   GS_FIELDCAT-JUST        = 'R'.
  1984.   GS_FIELDCAT-REPTEXT     = 'COGS (VND)'.
  1985.   GS_FIELDCAT-CURRENCY    = 'VND'.
  1986.   APPEND GS_FIELDCAT TO GT_FIELDCAT.
  1987.   CLEAR GS_FIELDCAT.
  1988.  
  1989.   GS_FIELDCAT-FIELDNAME   = 'LOINHUANVND'.
  1990.   GS_FIELDCAT-JUST        = 'R'.
  1991.   GS_FIELDCAT-REPTEXT     = 'Profit (VND)'.
  1992.   GS_FIELDCAT-CURRENCY    = 'VND'.
  1993.   APPEND GS_FIELDCAT TO GT_FIELDCAT.
  1994.   CLEAR GS_FIELDCAT.
  1995.  
  1996.   GS_FIELDCAT-FIELDNAME   = 'AUPOS'.
  1997.   GS_FIELDCAT-JUST        = 'C'.
  1998.   GS_FIELDCAT-REPTEXT     = 'SO Line '.
  1999.   APPEND GS_FIELDCAT TO GT_FIELDCAT.
  2000.   CLEAR GS_FIELDCAT.
  2001.  
  2002. *  GS_FIELDCAT-FIELDNAME   = 'BEDAE'.
  2003. *  GS_FIELDCAT-JUST        = 'C'.
  2004. *  GS_FIELDCAT-REPTEXT     = 'Requirement Type'.
  2005. *  APPEND GS_FIELDCAT TO GT_FIELDCAT.
  2006. *  CLEAR GS_FIELDCAT.
  2007.  
  2008. *  GS_FIELDCAT-FIELDNAME   = 'GIATT'.
  2009. *  GS_FIELDCAT-JUST        = 'R'.
  2010. *  GS_FIELDCAT-REPTEXT     = 'Real Price'.
  2011. *  GS_FIELDCAT-CURRENCY    = 'VND'.
  2012. *  APPEND GS_FIELDCAT TO GT_FIELDCAT.
  2013. *  CLEAR GS_FIELDCAT.
  2014.  
  2015. *  GS_FIELDCAT-FIELDNAME   = 'LOINHUANTT'.
  2016. *  GS_FIELDCAT-JUST        = 'R'.
  2017. *  GS_FIELDCAT-REPTEXT     = 'Real Profit'.
  2018. *  GS_FIELDCAT-CURRENCY    = 'VND'.
  2019. *  APPEND GS_FIELDCAT TO GT_FIELDCAT.
  2020. *  CLEAR GS_FIELDCAT.
  2021.  
  2022.   GS_FIELDCAT-FIELDNAME   = 'XBLNR1'.
  2023.   GS_FIELDCAT-JUST        = 'L'.
  2024.   GS_FIELDCAT-REPTEXT     = 'FI Document'.
  2025.   GS_FIELDCAT-CONVEXIT    = 'ALPHA'.
  2026.   APPEND GS_FIELDCAT TO GT_FIELDCAT.
  2027.   CLEAR GS_FIELDCAT.
  2028.  
  2029.   GS_FIELDCAT-FIELDNAME   = 'charg'.
  2030.   GS_FIELDCAT-JUST        = 'L'.
  2031.   GS_FIELDCAT-REPTEXT     = 'Batch (Số lô)'.
  2032.   GS_FIELDCAT-CONVEXIT    = 'ALPHA'.
  2033.   APPEND GS_FIELDCAT TO GT_FIELDCAT.
  2034.   CLEAR GS_FIELDCAT.
  2035.  
  2036.   GS_FIELDCAT-FIELDNAME   = 'KUNNR'.
  2037.   GS_FIELDCAT-JUST        = 'L'.
  2038.   GS_FIELDCAT-REPTEXT     = 'Payer Number'.
  2039.   GS_FIELDCAT-CONVEXIT    = 'ALPHA'.
  2040.   APPEND GS_FIELDCAT TO GT_FIELDCAT.
  2041.   CLEAR GS_FIELDCAT.
  2042.  
  2043.   GS_FIELDCAT-FIELDNAME   = 'PAYER_NAME'.
  2044.   GS_FIELDCAT-JUST        = 'L'.
  2045.   GS_FIELDCAT-REPTEXT     = 'Payer Name'.
  2046.   GS_FIELDCAT-CONVEXIT    = 'ALPHA'.
  2047.   APPEND GS_FIELDCAT TO GT_FIELDCAT.
  2048.   CLEAR GS_FIELDCAT.
  2049.  
  2050.   GS_FIELDCAT-FIELDNAME   = 'KUNNR57'.
  2051.   GS_FIELDCAT-JUST        = 'L'.
  2052.   GS_FIELDCAT-REPTEXT     = 'Sold to party Number'.
  2053.   GS_FIELDCAT-CONVEXIT    = 'ALPHA'.
  2054.   APPEND GS_FIELDCAT TO GT_FIELDCAT.
  2055.   CLEAR GS_FIELDCAT.
  2056.  
  2057.   GS_FIELDCAT-FIELDNAME   = 'SOLD_NAME'.
  2058.   GS_FIELDCAT-JUST        = 'L'.
  2059.   GS_FIELDCAT-REPTEXT     = 'Sold to party Name'.
  2060.   GS_FIELDCAT-CONVEXIT    = 'ALPHA'.
  2061.   APPEND GS_FIELDCAT TO GT_FIELDCAT.
  2062.   CLEAR GS_FIELDCAT.
  2063.  
  2064.   GS_FIELDCAT-FIELDNAME   = 'KUNNR61'.
  2065.   GS_FIELDCAT-JUST        = 'L'.
  2066.   GS_FIELDCAT-REPTEXT     = 'Bill to party Number'.
  2067.   GS_FIELDCAT-CONVEXIT    = 'ALPHA'.
  2068.   APPEND GS_FIELDCAT TO GT_FIELDCAT.
  2069.   CLEAR GS_FIELDCAT.
  2070.  
  2071.   GS_FIELDCAT-FIELDNAME   = 'BILL_NAME'.
  2072.   GS_FIELDCAT-JUST        = 'L'.
  2073.   GS_FIELDCAT-REPTEXT     = 'Bill to party Name'.
  2074.   GS_FIELDCAT-CONVEXIT    = 'ALPHA'.
  2075.   APPEND GS_FIELDCAT TO GT_FIELDCAT.
  2076.   CLEAR GS_FIELDCAT.
  2077.  
  2078.   GS_FIELDCAT-FIELDNAME   = 'MATKL'.
  2079.   GS_FIELDCAT-JUST        = 'L'.
  2080.   GS_FIELDCAT-REPTEXT     = 'Material Group'.
  2081.   GS_FIELDCAT-CONVEXIT    = 'ALPHA'.
  2082.   APPEND GS_FIELDCAT TO GT_FIELDCAT.
  2083.   CLEAR GS_FIELDCAT.
  2084.  
  2085. *  GS_FIELDCAT-FIELDNAME   = 'ZMODE67'.
  2086. *  GS_FIELDCAT-JUST        = 'L'.
  2087. *  GS_FIELDCAT-REPTEXT     = 'Expiration Date (Hạn dùng)'.
  2088. *  GS_FIELDCAT-DECIMALS_O  = '2'.
  2089. *  GS_FIELDCAT-OUTPUTLEN   = '000012'.
  2090. *  APPEND GS_FIELDCAT TO GT_FIELDCAT.
  2091. *  CLEAR GS_FIELDCAT.
  2092.  
  2093.  
  2094.   GS_FIELDCAT-FIELDNAME   = 'VRKME'.
  2095.   GS_FIELDCAT-JUST        = 'L'.
  2096.   GS_FIELDCAT-REPTEXT     = 'Sales Unit '.
  2097.   GS_FIELDCAT-DECIMALS_O  = '2'.
  2098.   GS_FIELDCAT-OUTPUTLEN   = '000008'.
  2099.   APPEND GS_FIELDCAT TO GT_FIELDCAT.
  2100.   CLEAR GS_FIELDCAT.
  2101.  
  2102.   GS_FIELDCAT-FIELDNAME   = 'BELNR'.
  2103.   GS_FIELDCAT-JUST        = 'L'.
  2104.   GS_FIELDCAT-REPTEXT     = 'FI – Outbound doc'.
  2105.   GS_FIELDCAT-DECIMALS_O  = '2'.
  2106.   GS_FIELDCAT-OUTPUTLEN   = '000010'.
  2107.   APPEND GS_FIELDCAT TO GT_FIELDCAT.
  2108.   CLEAR GS_FIELDCAT.
  2109.  
  2110.   GS_FIELDCAT-FIELDNAME   = 'VGPOS'.
  2111.   GS_FIELDCAT-JUST        = 'L'.
  2112.   GS_FIELDCAT-REPTEXT     = 'DO line'.
  2113.   GS_FIELDCAT-DECIMALS_O  = '2'.
  2114.   GS_FIELDCAT-OUTPUTLEN   = '000008'.
  2115.   APPEND GS_FIELDCAT TO GT_FIELDCAT.
  2116.   CLEAR GS_FIELDCAT.
  2117.  
  2118.   GS_FIELDCAT-FIELDNAME   = 'WGBEZ60'.
  2119.   GS_FIELDCAT-JUST        = 'L'.
  2120.   GS_FIELDCAT-REPTEXT     = 'Material Group'.
  2121.   GS_FIELDCAT-DECIMALS_O  = '2'.
  2122.   GS_FIELDCAT-OUTPUTLEN   = '000040'.
  2123.   APPEND GS_FIELDCAT TO GT_FIELDCAT.
  2124.   CLEAR GS_FIELDCAT.
  2125.  
  2126. *  GS_FIELDCAT-FIELDNAME   = 'MEINS'.
  2127. *  GS_FIELDCAT-JUST        = 'L'.
  2128. *  GS_FIELDCAT-REPTEXT     = 'Base Unit'.
  2129. *  GS_FIELDCAT-DECIMALS_O  = '2'.
  2130. *  GS_FIELDCAT-OUTPUTLEN   = '000003'.
  2131. *  APPEND GS_FIELDCAT TO GT_FIELDCAT.
  2132. *  CLEAR GS_FIELDCAT.
  2133.  
  2134.  
  2135.   GS_FIELDCAT-FIELDNAME   = 'UPRIC73'.
  2136.   GS_FIELDCAT-JUST        = 'R'.
  2137.   GS_FIELDCAT-REPTEXT     = 'Đơn giá bán '.
  2138.   GS_FIELDCAT-DECIMALS_O  = '2'.
  2139.   GS_FIELDCAT-CFIELDNAME  = 'WAERK'.
  2140.   GS_FIELDCAT-OUTPUTLEN   = '000013'.
  2141.   APPEND GS_FIELDCAT TO GT_FIELDCAT.
  2142.   CLEAR GS_FIELDCAT.
  2143.  
  2144.   GS_FIELDCAT-FIELDNAME   = 'vgbel'.
  2145.   GS_FIELDCAT-JUST        = 'L'.
  2146.   GS_FIELDCAT-REPTEXT     = 'Outbound Delivery'.
  2147.   GS_FIELDCAT-DECIMALS_O  = '2'.
  2148.   GS_FIELDCAT-OUTPUTLEN   = '000010'.
  2149.   APPEND GS_FIELDCAT TO GT_FIELDCAT.
  2150.   CLEAR GS_FIELDCAT.
  2151.  
  2152.   GS_FIELDCAT-FIELDNAME   = 'FKART'.
  2153.   GS_FIELDCAT-JUST        = 'C'.
  2154.   GS_FIELDCAT-REPTEXT     = 'Billing type'.
  2155.   GS_FIELDCAT-DECIMALS_O  = '2'.
  2156.   GS_FIELDCAT-OUTPUTLEN   = '000004'.
  2157.   APPEND GS_FIELDCAT TO GT_FIELDCAT.
  2158.   CLEAR GS_FIELDCAT.
  2159.  
  2160.   GS_FIELDCAT-FIELDNAME   = 'FKARTT'.
  2161.   GS_FIELDCAT-JUST        = 'L'.
  2162.   GS_FIELDCAT-REPTEXT     = 'Description Billing type'.
  2163.   GS_FIELDCAT-DECIMALS_O  = '2'.
  2164.   GS_FIELDCAT-OUTPUTLEN   = '000040'.
  2165.   APPEND GS_FIELDCAT TO GT_FIELDCAT.
  2166.   CLEAR GS_FIELDCAT.
  2167.  
  2168. *  GS_FIELDCAT-FIELDNAME   = 'prctr'.
  2169. *  GS_FIELDCAT-JUST        = 'L'.
  2170. *  GS_FIELDCAT-REPTEXT     = 'Profit Center'.
  2171. *  GS_FIELDCAT-DECIMALS_O  = '2'.
  2172. *  GS_FIELDCAT-OUTPUTLEN   = '000010'.
  2173. *  APPEND GS_FIELDCAT TO GT_FIELDCAT.
  2174. *  CLEAR GS_FIELDCAT.
  2175.  
  2176. *  GS_FIELDCAT-FIELDNAME   = 'PRODH1'.
  2177. *  GS_FIELDCAT-JUST        = 'L'.
  2178. *  GS_FIELDCAT-REPTEXT     = 'Product Hierarchy level 1'.
  2179. *  APPEND GS_FIELDCAT TO GT_FIELDCAT.
  2180. *  CLEAR GS_FIELDCAT.
  2181. *
  2182. *  GS_FIELDCAT-FIELDNAME   = 'PRODH2'.
  2183. *  GS_FIELDCAT-JUST        = 'L'.
  2184. *  GS_FIELDCAT-REPTEXT     = 'Product Hierarchy level 2'.
  2185. *  APPEND GS_FIELDCAT TO GT_FIELDCAT.
  2186. *  CLEAR GS_FIELDCAT.
  2187. *
  2188. *  GS_FIELDCAT-FIELDNAME   = 'PRODH3'.
  2189. *  GS_FIELDCAT-JUST        = 'L'.
  2190. *  GS_FIELDCAT-REPTEXT     = 'Product Hierarchy level 3'.
  2191. *  APPEND GS_FIELDCAT TO GT_FIELDCAT.
  2192. *  CLEAR GS_FIELDCAT.
  2193.  
  2194. *  GS_FIELDCAT-FIELDNAME   = 'TELNUMBER'.
  2195. *  GS_FIELDCAT-JUST        = 'L'.
  2196. *  GS_FIELDCAT-REPTEXT     = 'Số điện thoại khách hàng'.
  2197. *  GS_FIELDCAT-OUTPUTLEN   = '000020'.
  2198. *  GS_FIELDCAT-LOWERCASE   = 'X'.
  2199. *  APPEND GS_FIELDCAT TO GT_FIELDCAT.
  2200. *  CLEAR GS_FIELDCAT.
  2201.  
  2202. *  GS_FIELDCAT-FIELDNAME   = 'EWBEZ'.
  2203. *  GS_FIELDCAT-JUST        = 'L'.
  2204. *  GS_FIELDCAT-REPTEXT     = 'Material’s purpose'.
  2205. *  GS_FIELDCAT-OUTPUTLEN   = '000020'.
  2206. *  GS_FIELDCAT-LOWERCASE   = 'X'.
  2207. *  APPEND GS_FIELDCAT TO GT_FIELDCAT.
  2208. *  CLEAR GS_FIELDCAT.
  2209.  
  2210. *  GS_FIELDCAT-FIELDNAME   = 'WRKST'.
  2211. *  GS_FIELDCAT-JUST        = 'L'.
  2212. *  GS_FIELDCAT-REPTEXT     = 'Regis. No'.
  2213. *  GS_FIELDCAT-OUTPUTLEN   = '000020'.
  2214. *  GS_FIELDCAT-LOWERCASE   = 'X'.
  2215. *  APPEND GS_FIELDCAT TO GT_FIELDCAT.
  2216. *  CLEAR GS_FIELDCAT.
  2217.  
  2218. ENDFORM.
  2219. *&---------------------------------------------------------------------*
  2220. *&      Form  BUILD_LAYOUT
  2221. *&---------------------------------------------------------------------*
  2222. *       text
  2223. *----------------------------------------------------------------------*
  2224. FORM BUILD_LAYOUT .
  2225.   GS_LAYOUT-CWIDTH_OPT = 'X'.
  2226. ENDFORM.                    "BUILD_LAYOUT
  2227. *&---------------------------------------------------------------------*
  2228. *&      Form  TOP_OF_PAGE
  2229. *&---------------------------------------------------------------------*
  2230. *       text
  2231. *----------------------------------------------------------------------*
  2232. FORM TOP_OF_PAGE.
  2233.   DATA: LT_HEADER TYPE SLIS_T_LISTHEADER,
  2234.         LW_HEADER TYPE SLIS_LISTHEADER.
  2235.  
  2236.   LW_HEADER-TYP  = 'H'.
  2237.   LW_HEADER-INFO = 'BÁO CÁO DOANH THU BÁN HÀNG CHI TIẾT'.
  2238.   APPEND LW_HEADER TO LT_HEADER.
  2239.  
  2240.   CALL FUNCTION 'REUSE_ALV_COMMENTARY_WRITE'
  2241.     EXPORTING
  2242.       IT_LIST_COMMENTARY = LT_HEADER.
  2243. ENDFORM.                    "TOP_OF_PAGE
  2244. *&---------------------------------------------------------------------*
  2245. *&      Form  HANDLE_USER_COMMAND
  2246. *&---------------------------------------------------------------------*
  2247. FORM HANDLE_USER_COMMAND USING R_UCOMM     LIKE SY-UCOMM
  2248.                                RS_SELFIELD TYPE SLIS_SELFIELD.
  2249.   CASE R_UCOMM.
  2250.     WHEN'&IC1'. " Double Click Event
  2251.       READ TABLE GT_BCDT INTO GS_BCDT INDEX RS_SELFIELD-TABINDEX.
  2252.       SET PARAMETER ID : 'VF' FIELD GS_BCDT-VBELN.
  2253.       SET PARAMETER ID : 'BUK' FIELD GS_BCDT-WERKS.
  2254.       CALL TRANSACTION 'VF03' AND SKIP FIRST SCREEN.
  2255.   ENDCASE.
  2256. ENDFORM.                     "HANDLE_USER_COMMAND
  2257. *&---------------------------------------------------------------------*
  2258. *&      Form  F4_HELP_PERVE
  2259. *&---------------------------------------------------------------------*
  2260. *       text
  2261. *----------------------------------------------------------------------*
  2262. *  -->  p1        text
  2263. *  <--  p2        text
  2264. *----------------------------------------------------------------------*
  2265. FORM F4_HELP_PERVE .
  2266.   DATA: BEGIN OF LT_PERNR OCCURS 0,
  2267.           PERNR LIKE VBPA-PERNR,
  2268.         END OF LT_PERNR,
  2269.         BEGIN OF LT_PA0002 OCCURS 0,
  2270.           PERNR LIKE PA0002-PERNR,
  2271.           NCHMC LIKE PA0002-NCHMC,
  2272.           VNAMC LIKE PA0002-VNAMC,
  2273.         END OF LT_PA0002.
  2274.  
  2275.   SELECT PERNR
  2276.   INTO TABLE LT_PERNR
  2277.   FROM VBPA
  2278.   WHERE PARVW = 'VE'.
  2279.  
  2280.   IF LT_PERNR[] IS NOT INITIAL.
  2281.     SELECT PERNR NCHMC VNAMC
  2282.     INTO TABLE LT_PA0002
  2283.     FROM PA0002
  2284.     FOR ALL ENTRIES IN LT_PERNR
  2285.     WHERE PERNR = LT_PERNR-PERNR.
  2286.   ENDIF.
  2287.  
  2288.   SORT LT_PA0002 BY PERNR.
  2289.  
  2290.   CALL FUNCTION 'F4IF_INT_TABLE_VALUE_REQUEST'
  2291.     EXPORTING
  2292.       RETFIELD    = 'PERNR'
  2293.       DYNPPROG    = SY-REPID
  2294.       DYNPNR      = SY-DYNNR
  2295.       DYNPROFIELD = 'S_PERVE'
  2296.       VALUE_ORG   = 'S'
  2297.     TABLES
  2298.       VALUE_TAB   = LT_PA0002.
  2299. ENDFORM.                    " F4_HELP_PERVE
  2300. *&---------------------------------------------------------------------*
  2301. *&      Form  F4_HELP_PERVW
  2302. *&---------------------------------------------------------------------*
  2303. *       text
  2304. *----------------------------------------------------------------------*
  2305. *  -->  p1        text
  2306. *  <--  p2        text
  2307. *----------------------------------------------------------------------*
  2308. FORM F4_HELP_PERVW.
  2309.   DATA: BEGIN OF LT_PERNR OCCURS 0,
  2310.           PERNR LIKE VBPA-PERNR,
  2311.         END OF LT_PERNR,
  2312.         BEGIN OF LT_PA0002 OCCURS 0,
  2313.           PERNR LIKE PA0002-PERNR,
  2314.           NCHMC LIKE PA0002-NCHMC,
  2315.           VNAMC LIKE PA0002-VNAMC,
  2316.         END OF LT_PA0002.
  2317.  
  2318.   SELECT
  2319.     PERNR
  2320.   INTO TABLE LT_PERNR
  2321.   FROM VBPA
  2322.   WHERE PARVW = 'VW'.
  2323.   IF LT_PERNR[] IS NOT INITIAL.
  2324.  
  2325.     SELECT PERNR NCHMC VNAMC
  2326.     INTO TABLE LT_PA0002
  2327.     FROM PA0002
  2328.     FOR ALL ENTRIES IN LT_PERNR
  2329.     WHERE PERNR = LT_PERNR-PERNR.
  2330.  
  2331.   ENDIF.
  2332.  
  2333.   SORT LT_PA0002 BY PERNR.
  2334.  
  2335.   CALL FUNCTION 'F4IF_INT_TABLE_VALUE_REQUEST'
  2336.     EXPORTING
  2337.       RETFIELD    = 'PERNR'
  2338.       DYNPPROG    = SY-REPID
  2339.       DYNPNR      = SY-DYNNR
  2340.       DYNPROFIELD = 'S_PERVW'
  2341.       VALUE_ORG   = 'S'
  2342.     TABLES
  2343.       VALUE_TAB   = LT_PA0002.
  2344. ENDFORM.                    " F4_HELP_PERVW
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement