Export Invoice

You might also like

Download as pdf or txt
Download as pdf or txt
You are on page 1of 27

Page 1 of 27

*&---------------------------------------------------------------------*
*& Report  ZSD_EXPORT_INVOICE
*&
*&---------------------------------------------------------------------*
*&
*&
*&---------------------------------------------------------------------*
*&---------------------------------------------------------------------*
*&---------------------------------------------------------------------*
*&'~'~'~'~'~'~'~'~'~'~'~'~'~'~'~'~'~'~'~'~'~'~'~'~'~'~'~'~'~'~'~'~'~'~*&
*&--------------------------------------------------------------------*&
*&  Program Name       : ZSD_EXPORT_INVOICE                           *&
*&  Transaction Code   : VF03                                         *&
*&  Module             : SD                                           *&
*&  Package            : ZABAP                                        *&
*&  Developed By       : SUDARSHAN GAIKWAD , MANOJ KUMAR              *&
*&  Transport Req      : SRDK900867                                   *&
*&  Program Type       : 1 - Executable                               *&
*&--------------------------------------------------------------------*&
*&  Object             : This is the Export Invoice Program           *&
*&                              program.                              *&
*&                                                                    *&
*&--------------------------------------------------------------------*&
*&'~'~'~'~'~'~'~'~'~'~'~'~'~'~'~'~'~'~'~'~'~'~'~'~'~'~'~'~'~'~'~'~'~'~*&

*------------------------------------------------------------------*
* Change History
*------------------------------------------------------------------*
*     Date   |   Programmer   |   Corr. #   |   Description
*            |                |             |
*            |                |             |
********************************************************************
REPORT  zsd_export_invoice.
************************************************************************
*        TABLE DECLARATION
************************************************************************

TABLES : vbrk,  "Billing Document: Header Data
         vbrp,  "Billing Document: Item Data
         t001w, "Plants/Branches
         lfa1,  "Vendor Master (General Section)
         eikp,  "Foreign Trade: Export/Import Header Data
         eipo,  "Foreign Trade: Export/Import: Item Data
         tvzbt, "Customers: Terms of Payment Texts
         vbkd,  "Sales Document: Business Data
         vbak,  "Sales Document: Header Data.
         adrc,  "Addresses (Business Address Services)
         nast,
         t012k. "House Bank Accounts

************************************************************************
*     DATA DECLARATION
************************************************************************
DATA: it_vbrk LIKE vbrk OCCURS 10 WITH HEADER LINE.

DATA: it_vbrp LIKE vbrp OCCURS 10 WITH HEADER LINE.

DATA: it_vbpa LIKE vbpa OCCURS 10 WITH HEADER LINE.

DATA: it_t001w LIKE t001w OCCURS 10 WITH HEADER LINE.

DATA: it_lfa1 LIKE lfa1 OCCURS 10 WITH HEADER LINE.

DATA: it_kna1 LIKE kna1 OCCURS 10 WITH HEADER LINE.

DATA: it_eikp LIKE eikp OCCURS 10 WITH HEADER LINE.

DATA: it_eipo LIKE eipo OCCURS 10 WITH HEADER LINE.

DATA: it_adrc LIKE adrc OCCURS 10 WITH HEADER LINE.

DATA: it_likp LIKE likp OCCURS 10 WITH HEADER LINE.

DATA: it_vbak LIKE vbrk OCCURS 10 WITH HEADER LINE.

DATA: it_vbap LIKE vbap OCCURS 10 WITH HEADER LINE.

DATA: it_tvzbt LIKE tvzbt OCCURS 10 WITH HEADER LINE.

DATA: it_vbkd LIKE vbkd OCCURS 10 WITH HEADER LINE.

DATA: it_konv LIKE konv OCCURS 10 WITH HEADER LINE.

DATA : it_header LIKE zexportinv_hdr OCCURS 10 WITH HEADER LINE.
DATA : wa_it_header1 LIKE zexportinv_hdr OCCURS 10 WITH HEADER LINE.

DATA : it_item LIKE zexportinv_item OCCURS 10 WITH HEADER LINE.
DATA: it_buff LIKE zsd_export_str OCCURS 10 WITH HEADER LINE.

*DATA: IT_BUFF LIKE ZSD_EXPORT_STR OCUURS 0 WITH HEADER LINE.
DATA : amountinword(200) TYPE c .
DATA : totsum1 LIKE pc207-betrg.

DATA: cust_kunnr LIKE kna1-kunnr,
      cust_addrno LIKE adrc-addrnumber,
      con_kunnr LIKE kna1-kunnr,
      con_addrno LIKE adrc-addrnumber.
DATA:  knumv1 LIKE vbrk-knumv.
DATA : totamount LIKE konv-kwert.
DATA : totamtinr LIKE konv-kwert.

mhtml:file://D:\Backup\SF\Program Source Code\Smart Forms\Export Invoice\SF - Expo... 09-12-2022


Page 2 of 27

DATA : totamtfr LIKE konv-kwert.
*DATA : TOTAMOUNT(20) TYPE N.
DATA : amt_no LIKE konv-kwert.
*DATA : AMT_NO(20) TYPE N.
*DATA : AMT_WORD TYPE STRING.
DATA : amt_word TYPE string.
DATA : amounttot TYPE string.
DATA : sfname  TYPE tdsfname,
       fm_name TYPE rs38l_fnam.
DATA : name LIKE thead-tdname.
DATA : line LIKE tline OCCURS 10 WITH HEADER LINE,
       gro_wei LIKE tline OCCURS 10 WITH HEADER LINE,
       chap_id LIKE tline OCCURS 10 WITH HEADER LINE,
       cha_name LIKE tline OCCURS 10 WITH HEADER LINE,
       transporter LIKE line-tdline.
DATA : unit LIKE vbrk-waerk.
DATA : qty_unit LIKE vbrp-vrkme.
DATA: gntgew LIKE vbrp-ntgew,
       gbrgew LIKE vbrp-brgew,
       lv_gw_total TYPE menge_d,
       lv_gw TYPE menge_d.

DATA wa_excise TYPE j_1iexchdr.

DATA: count TYPE i VALUE 1.
DATA : plant1 LIKE vbrp-werks.
DATA : docno LIKE vbrk-vbeln.
DATA: exporter(60) TYPE c.
DATA : temp(100) TYPE c.
DATA : ek02_cost LIKE konv-kwert,
      jeap_amt LIKE konv-kwert,
      jeaq_amt LIKE konv-kwert,
      jesp_amt LIKE konv-kwert,
      jesq_amt LIKE konv-kwert,
      pr00_cost LIKE konv-kwert,
      zkf2_amt LIKE konv-kwert,
      zkf3_amt LIKE konv-kwert,
      zhk2_amt LIKE konv-kwert,
      zhk3_amt LIKE konv-kwert,
      zsdf_amt LIKE konv-kwert,
      zsdp_amt LIKE konv-kwert,
      zshc_amt LIKE konv-kwert,
      zsi1_amt LIKE konv-kwert,
      zsi2_amt LIKE konv-kwert,
      zsm1_amt LIKE konv-kwert,
      zsm2_amt LIKE konv-kwert,
      zsp1_amt LIKE konv-kwert,
      zsp2_amt LIKE konv-kwert,
      zstf_amt LIKE konv-kwert,
      zstp_amt LIKE konv-kwert,
      vprs_amt LIKE konv-kwert,
      jexp_amt LIKE konv-kwert,
      ject_amt LIKE konv-kwert,
      jaix_amt LIKE konv-kwert,
      zhdf_amt LIKE konv-kwert,
      zhdp_amt LIKE konv-kwert,
      zhp1_amt LIKE konv-kwert,
      zhp2_amt LIKE konv-kwert,
      jivp_amt LIKE konv-kwert,
      jcst_amt LIKE konv-kwert,
      zhhc_amt LIKE konv-kwert,
      zhk1_amt LIKE konv-kwert,
      zhm1_amt LIKE konv-kwert,
      zhm2_amt LIKE konv-kwert,
      zhi8_amt LIKE konv-kwert,
      r100_amt LIKE konv-kwert,
      zhi9_amt LIKE konv-kwert,
      pack_amt LIKE konv-kwert,
      zhtf_amt LIKE konv-kwert,
      zhtp_amt LIKE konv-kwert,
      zhi1_amt LIKE konv-kwert,
      zhi2_amt LIKE konv-kwert.

DATA : total_duty LIKE konv-kwert,
       total_amt  LIKE konv-kwert,
       p_and_f LIKE konv-kwert,
       total_educess LIKE konv-kwert,
       total_edduty LIKE konv-kwert,
       total_shecess LIKE konv-kwert,
       total_discount LIKE konv-kwert,
       total LIKE konv-kwert,
       total_vat LIKE konv-kwert,
       total_cst LIKE konv-kwert,
       miss_charg LIKE konv-kwert,
       total_ass_val LIKE konv-kwert,
       freight LIKE konv-kwert,
       insurance LIKE konv-kwert,
       testing TYPE netwr_ak, " Added By Yograj
       inspection TYPE netwr_ak. " Added By Yograj

DATA : wa_snd TYPE zinv_snd.

DATA: tot_qty LIKE vbrp-fkimg,
      tot_rate LIKE konv-kbetr,
      tot_price LIKE konv-kbetr.
DATA: variable1 TYPE i.

DATA: string(200) TYPE c,
      stringamt(16) TYPE c,
      part1 TYPE string,
      part2 TYPE string,
      part3 TYPE string,

mhtml:file://D:\Backup\SF\Program Source Code\Smart Forms\Export Invoice\SF - Expo... 09-12-2022


Page 3 of 27

      part4 TYPE string,
      part5 TYPE string,
      part6 TYPE string,
      part7(14) TYPE c VALUE 'And',
      part8 TYPE string,
      part9(14) TYPE c VALUE '/100'.
DATA: a TYPE i.
a = 10.

gntgew = 0.
gbrgew = 0.

tot_qty = 0.
tot_rate = 0.
tot_price = 0.

************************************************************************
*           SELECTION-SCREEN
************************************************************************

*SELECTION-SCREEN:BEGIN OF BLOCK blk1 WITH FRAME TITLE text-001.
*
*SELECT-OPTIONS: docno FOR vbrk-vbeln NO-EXTENSION
*                                     NO INTERVALS.
*
*SELECTION-SCREEN:END OF BLOCK blk1.

FORM entry USING return_code us_screen.
  docno = nast-objky.

************************************************************************
*           START-OF-SELECTION.
************************************************************************
*sfname = 'ZSD_TAX_INV_SUD1'.
*sfname = 'ZSD_EXPORT_INVOICE'.
PERFORM initialization.

PERFORM fill_it_header.

PERFORM read_text.

PERFORM fill_it_item.

PERFORM call_form.

ENDFORM.                    "
*&---------------------------------------------------------------------*
*&      Form  FILL_IT_HEADER
*&---------------------------------------------------------------------*
*       text
*----------------------------------------------------------------------*
*  -->  p1        text
*  <--  p2        text
*----------------------------------------------------------------------*
FORM fill_it_header .

SELECT * FROM vbrk
INTO TABLE it_vbrk
WHERE vbeln = docno.
*           AND   FKART = 'ZBEX'
*                 OR FKART = 'ZBFS'.

LOOP AT it_vbrk WHERE vbeln = docno.

SELECT SINGLE xblnr
FROM bkpf
INTO it_header-gsi_inv
WHERE bukrs = 'SF01'
AND   blart = 'RV'
AND   awkey = it_vbrk-vbeln.

MOVE it_vbrk-vbeln TO it_header-docno.
MOVE it_vbrk-fkdat TO it_header-fkdat.
MOVE it_vbrk-zterm TO it_header-zterm.
MOVE it_vbrk-inco1 TO it_header-inco1.
MOVE it_vbrk-land1 TO it_header-land1.
MOVE it_vbrk-waerk TO it_header-waerk.
MOVE it_vbrk-kurrf TO it_header-exrate."Exchange Rate
MOVE it_vbrk-lcnum TO it_header-lcnum."LC Document No
APPEND it_header.
CLEAR it_header.
ENDLOOP.

LOOP AT it_header.

SELECT SINGLE werks matnr             "Plant
FROM vbrp
INTO (it_header-plant,it_header-exgood)
WHERE vbeln = it_header-docno.

*    SELECT SINGLE adrnr              "Plant Address
*           FROM t001w
*           INTO it_header-adrnr
*           WHERE werks = it_header-plant.

SELECT SINGLE adrnr
INTO (it_header-adrnr)
FROM t001
WHERE bukrs = it_header-plant.

IF it_header-plant = 'SF02'.

mhtml:file://D:\Backup\SF\Program Source Code\Smart Forms\Export Invoice\SF - Expo... 09-12-2022


Page 4 of 27

      it_header-adrnr = '0000022452'.

ENDIF.

SELECT SINGLE aubel vgbel vrkme            "Sales Document No.,LOADING NO
FROM vbrp
INTO (it_header-oano,it_header-loadingno,it_header-vrkme)
WHERE vbeln = it_header-docno.

SELECT SINGLE bstkd bstdk           "Purchase order No.,date,Exporters Ref
FROM vbkd
INTO (it_header-pono,it_header-podate)
WHERE vbeln = it_header-oano.

***********************if vbkd has single pono and date

SELECT * FROM vbkd
INTO TABLE it_vbkd
WHERE vbeln = it_header-oano.
    variable1 = sy-dbcnt.

IF variable1 = 1.
SELECT SINGLE bstkd bstdk           "Purchase order No.,date,Exporters Ref
FROM vbkd
INTO (it_header-pono1,it_header-podate1)
WHERE vbeln = it_header-oano
AND posnr = ''.
ENDIF.
********************

SELECT SINGLE lcnum           "Financial doc. processing: Internal financial doc. number
FROM vbkd
INTO (it_header-lcnum)
WHERE vbeln = it_header-oano.

SELECT SINGLE baanr      "Financial document processing: External financial doc. no.
FROM akkb
INTO (it_header-baanr)
WHERE lcnum = it_header-lcnum
AND bafkt = 'O'.

********************************for our bank************vvvvvvvvvvvvvvvvvvvvvvvvvvvvvvv

SELECT SINGLE banks bankl      "Bank country key , Bank Keys
FROM akkb
INTO (it_header-bbanks,it_header-bbankl)
WHERE lcnum = it_header-lcnum
AND bafkt = 'B'.

SELECT SINGLE  banka stras ort01 swift            " Name of bank, House number and street, City, SWIFT Code for International Payments
FROM bnka
INTO (it_header-bbanka,it_header-bstras,it_header-bort01,it_header-bswift)
WHERE bankl = it_header-bbankl
AND banks = it_header-bbanks.

SELECT SINGLE bankn
FROM t012k
INTO (it_header-bankn)
WHERE bukrs = 'SF01'
AND hktid = it_header-bbankl.

*********************************^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^

********************************for notify party************vvvvvvvvvvvvvvvvvvvvvvvvvvvvvvv

SELECT SINGLE banks bankl      "Bank country key , Bank Keys
FROM akkb
INTO (it_header-abanks,it_header-abankl)
WHERE lcnum = it_header-lcnum
AND bafkt = 'A'.                                    " 'O' BY SAGAR, 'A' BY SRIRAM SIR

SELECT SINGLE  banka stras ort01 swift            " Name of bank, House number and street, City, SWIFT Code for International Payments
FROM bnka
INTO (it_header-abanka,it_header-astras,it_header-aort01,it_header-aswift)
WHERE bankl = it_header-abankl
AND banks = it_header-abanks.

*********************************^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^

* SELECT SINGLE BNAME SUBMI          "LICENCE NO,LICENCE DATE,ORDER DATE
*       FROM VBAK
*       INTO (it_header-ADVANCENO,it_header-DEPBNO)
*       WHERE VBELN = IT_HEADER-OANO.

SELECT SINGLE erdat zuonr   "ORDER DATE
FROM vbak
INTO (it_header-erdat,it_header-zuonr)
WHERE vbeln = it_header-oano.

* SELECT SINGLE IHREZ BSTKD_E BSTDK_E         "LICENCE NO,LICENCE DATE
*       FROM VBKD

mhtml:file://D:\Backup\SF\Program Source Code\Smart Forms\Export Invoice\SF - Expo... 09-12-2022


Page 5 of 27

*       INTO (it_header-IECNO,it_header-EPCGNO,it_header-EPCGDATE)
*       WHERE VBELN = IT_HEADER-OANO.

SELECT SINGLE name1 name2 name3 name4
FROM adrc
INTO (it_header-name1,it_header-name2,it_header-name3,it_header-name4)
WHERE addrnumber = it_header-adrnr.

SELECT SINGLE city1 city2 post_code1 street tel_number fax_number str_suppl2
FROM adrc
INTO (it_header-city1,it_header-city2,it_header-post_code1,it_header-street,it_header-tel_number,it_header-fax_number,it_header-
ael_email)
WHERE addrnumber = it_header-adrnr.

SELECT SINGLE tel_number  FROM adr2 INTO (it_header-tel_number) WHERE addrnumber = it_header-adrnr
AND   consnumber = '3'.

SELECT SINGLE tel_number  FROM adr2 INTO (it_header-fax_number) WHERE addrnumber = it_header-adrnr
AND   consnumber = '4'.
*SELECT SINGLE LANDX
*    FROM T005T
*    INTO (IT_HEADER-AELCOUNTRY)
*    WHERE LAND1 = IT_HEADER-ALAND AND SPRAS = 'EN'.
*

*
*,

* SELECT SINGLE EXPVZ ALAND    "MODE OF TRANSPORT (1,2,3)
*       FROM EIKP
*       INTO (it_header-EXPVZ,it_header-ALAND)
*       WHERE REFNR = IT_HEADER-DOCNO.

SELECT SINGLE expvz aland iever   "MODE OF TRANSPORT (1,2,3), pre carriage by
FROM eikp
INTO (it_header-expvz,it_header-aland,it_header-iever)
WHERE refnr = it_header-docno.

SELECT SINGLE bezei    "MODE OF TRANSPORT (1,2,3)
FROM t618t
INTO (it_header-bezei)
WHERE expvz = it_header-expvz AND
                land1 = it_header-aland AND
                spras = 'EN'.
* SELECT SINGLE vsart BOLNR  "Mode of Transport, Vehical No.
*       FROM LIKP
*       INTO (it_header-vsart,it_header-BOLNR)
*       WHERE vbeln = IT_HEADER-LOADINGNO.

SELECT SINGLE zolla azoll zollb ladel "PORT OF LOADING,PLACE OF RECIPT,PORT OF DISCHARGE,FINAL DESTN.
FROM eikp
INTO (it_header-zolla,it_header-azoll,it_header-zollb,it_header-ladel)
WHERE refnr = it_header-docno.

SELECT SINGLE bezei    "PORT OF LOADING
FROM t615t
INTO (it_header-bezei1)
WHERE zolla = it_header-zolla AND
                land1 = it_header-aland AND
                spras = 'EN'.

SELECT SINGLE bezei    "PLACE OF RECIPT
FROM t615t
INTO (it_header-bezei2)
WHERE zolla = it_header-azoll AND
                land1 = it_header-aland AND
                spras = 'EN'.

*    SELECT SINGLE bezei    "PORT OF DISCHARGE
*          FROM t615t
*          INTO (it_header-bezei3)
*          WHERE zolla = it_header-zollb AND
*                land1 = it_header-land1 AND
*                spras = 'EN'.

SELECT SINGLE kzabe kzgbe       "PORT OF DISCHARGE, pre carriage transport
FROM eikp
INTO (it_header-kzabe,it_header-kzgbe)
WHERE refnr = it_header-docno.

SELECT SINGLE landx    "COUNTRY OF ORIGIN
FROM t005t
INTO (it_header-landx)
WHERE land1 = it_header-aland AND
                spras = 'EN'.

SELECT SINGLE landx     "COUNTRY OF FINAL DESTINATION
FROM t005t
INTO (it_header-landx1)
WHERE land1 = it_header-land1 AND
                 spras = 'EN'.

TRANSLATE it_header-landx1 TO UPPER CASE.

SELECT SINGLE text1 text2 text3   "TEXT1 ,TEXT2 , TEXT3
FROM eikp
INTO (it_header-text1,it_header-text2,it_header-text3)
WHERE refnr = it_header-docno.

mhtml:file://D:\Backup\SF\Program Source Code\Smart Forms\Export Invoice\SF - Expo... 09-12-2022


Page 6 of 27

SELECT SINGLE vtext    "TERMS OF DELIVERY AND PAYMENT
FROM tvzbt
INTO (it_header-vtext)
WHERE zterm = it_header-zterm AND
                spras = 'EN'.

SELECT SINGLE lstel FROM likp
INTO it_header-lstel
WHERE vbeln = it_header-loadingno.

SELECT SINGLE vtext FROM tvlat
INTO it_header-vtext1
WHERE lstel = it_header-lstel
AND spras = 'EN'
AND vstel = it_header-plant.

SELECT SINGLE j_1iexrn FROM j_1imocomp
INTO it_header-j_1iexrn
WHERE werks = it_header-plant.

MODIFY it_header.
ENDLOOP.

PERFORM fill_it_vbpa.
PERFORM fill_it_adrc.
*PERFORM READ_MATERIAL_TEXT.

LOOP AT it_header.
    plant1 = it_header-plant.
* UNIT   = IT_HEADER-WAERK.
    qty_unit = it_header-vrkme.
ENDLOOP.
ENDFORM.                    " FILL_IT_HEADER

*&---------------------------------------------------------------------*
*&      Form  FILL_IT_VBPA
*&---------------------------------------------------------------------*
*       text
*----------------------------------------------------------------------*
*  -->  p1        text
*  <--  p2        text
*----------------------------------------------------------------------*
FORM fill_it_vbpa .
SELECT *
FROM vbpa
INTO TABLE it_vbpa
WHERE vbeln = docno.

LOOP AT it_header.
LOOP AT it_vbpa.

IF it_vbpa-parvw = 'AG'.

        cust_kunnr = it_vbpa-kunnr.

PERFORM get_addrno USING cust_kunnr.

READ TABLE it_kna1 WITH KEY kunnr = cust_kunnr.

        cust_addrno = it_kna1-adrnr.

PERFORM get_cust_addr USING cust_addrno.

READ TABLE it_adrc WITH KEY addrnumber = cust_addrno.

        it_header-custno = cust_kunnr.
        it_header-custname1 = it_adrc-name1.
        it_header-custname2 = it_adrc-name2.
        it_header-custname3 = it_adrc-name3.
        it_header-custname4 = it_adrc-name4.
        it_header-custcity1 = it_adrc-city1.
        it_header-custcity2 = it_adrc-city2.
        it_header-custpost_code1 = it_adrc-post_code1.
        it_header-custstreet = it_adrc-street.

*      PERFORM GET_CUSTEXCISE USING CUST_KUNNR.
*
*      READ TABLE IT_j_1imocust WITH KEY KUNNR = CUST_KUNNR.
*
*      IT_HEADER-CUSTVAT = IT_j_1imocust-J_1ILSTNO.
*      IT_HEADER-CUSTCST = IT_j_1imocust-J_1ICSTNO.
*      IT_HEADER-CUSTECC = IT_j_1imocust-J_1IEXCD.

ENDIF.

IF it_vbpa-parvw = 'WE'.

REFRESH it_kna1.
*      REFRESH IT_J_1IMOCUST.
REFRESH it_adrc.

        con_kunnr = it_vbpa-kunnr.

PERFORM get_con_addrno USING con_kunnr.

READ TABLE it_kna1 WITH KEY kunnr = con_kunnr.

        con_addrno = it_kna1-adrnr.

PERFORM get_con_addr USING con_addrno.

mhtml:file://D:\Backup\SF\Program Source Code\Smart Forms\Export Invoice\SF - Expo... 09-12-2022


Page 7 of 27

READ TABLE it_adrc WITH KEY addrnumber = con_addrno.

        it_header-conno = con_kunnr.
        it_header-conname1 = it_adrc-name1.
        it_header-conname2 = it_adrc-name2.
        it_header-conname3 = it_adrc-name3.
        it_header-conname4 = it_adrc-name4.
        it_header-concity1 = it_adrc-city1.
        it_header-concity2 = it_adrc-city2.
        it_header-conpost_code1 = it_adrc-post_code1.
        it_header-constreet = it_adrc-street.
        it_header-contel = it_adrc-tel_number.
        it_header-confax = it_adrc-fax_number.
        it_header-conemail = it_adrc-str_suppl2.

*      PERFORM GET_CONEXCISE USING CON_KUNNR.

*      READ TABLE IT_j_1imocust WITH KEY KUNNR = CON_KUNNR.
*
*      IT_HEADER-CONVAT = IT_j_1imocust-J_1ILSTNO.
*      IT_HEADER-CONCST = IT_j_1imocust-J_1ICSTNO.
*      IT_HEADER-CONECC = IT_j_1imocust-J_1IEXCD.
*
ENDIF.

ENDLOOP.
MODIFY it_header.
ENDLOOP.

ENDFORM.                    " FILL_IT_VBPA

*&---------------------------------------------------------------------*
*&      Form  FILL_IT_ADRC
*&---------------------------------------------------------------------*
*       text
*----------------------------------------------------------------------*
*  -->  p1        text
*  <--  p2        text
*----------------------------------------------------------------------*
FORM fill_it_adrc .
SELECT * FROM adrc
INTO TABLE it_adrc
WHERE addrnumber = it_header-adrnr.
ENDFORM.                    " FILL_IT_ADRC
*&---------------------------------------------------------------------*
*&      Form  GET_ADDRNO
*&---------------------------------------------------------------------*
*       text
*----------------------------------------------------------------------*
*      -->P_CUST_KUNNR  text
*----------------------------------------------------------------------*
FORM get_addrno  USING    p_cust_kunnr.
SELECT *
FROM kna1 INTO TABLE it_kna1
WHERE kunnr = p_cust_kunnr.

ENDFORM.                    " GET_ADDRNO

*&---------------------------------------------------------------------*
*&      Form  GET_CUST_ADDR
*&---------------------------------------------------------------------*
*       text
*----------------------------------------------------------------------*
*      -->P_CUST_ADDRNO  text
*----------------------------------------------------------------------*
FORM get_cust_addr  USING    p_cust_addrno.
SELECT *
FROM adrc INTO TABLE it_adrc
WHERE addrnumber = p_cust_addrno.

ENDFORM.                    " GET_CUST_ADDR

*&---------------------------------------------------------------------*
*&      Form  GET_CON_ADDRNO
*&---------------------------------------------------------------------*
*       text
*----------------------------------------------------------------------*
*      -->P_CON_KUNNR  text
*----------------------------------------------------------------------*
FORM get_con_addrno  USING    p_con_kunnr.
SELECT *
FROM kna1 INTO TABLE it_kna1
WHERE kunnr = p_con_kunnr.

ENDFORM.                    " GET_CON_ADDRNO

*&---------------------------------------------------------------------*
*&      Form  GET_CON_ADDR
*&---------------------------------------------------------------------*
*       text
*----------------------------------------------------------------------*
*      -->P_CON_ADDRNO  text
*----------------------------------------------------------------------*
FORM get_con_addr  USING    p_con_addrno.
SELECT *
FROM adrc INTO TABLE it_adrc
WHERE addrnumber = p_con_addrno.

ENDFORM.                    " GET_CON_ADDR

*&---------------------------------------------------------------------*

mhtml:file://D:\Backup\SF\Program Source Code\Smart Forms\Export Invoice\SF - Expo... 09-12-2022


Page 8 of 27

*&      Form  FILL_IT_ITEM
*&---------------------------------------------------------------------*
*       text
*----------------------------------------------------------------------*
*  -->  p1        text
*  <--  p2        text
*----------------------------------------------------------------------*
FORM fill_it_item .

  knumv1 = it_vbrk-knumv.

PERFORM fill_it_konv USING knumv1.

READ TABLE it_vbrk INDEX 1.

SELECT *
FROM vbrp
INTO TABLE it_vbrp
FOR ALL ENTRIES IN it_vbrk
WHERE vbeln = it_vbrk-vbeln AND
                  posar <> 'C' AND
                  matkl <> '1034'.

LOOP AT it_vbrp WHERE vbeln = it_vbrk-vbeln AND
                  posar <> 'C' AND
                  matkl <> '1034'.
MOVE count TO it_item-srno.
MOVE it_vbrp-matnr TO it_item-matnr.
MOVE it_vbrp-arktx TO it_item-arktx.
MOVE it_vbrp-fkimg TO it_item-fkimg.
MOVE it_vbrp-vrkme TO it_item-vrkme.
MOVE it_vbrp-posnr TO it_item-posnr.
MOVE it_vbrp-kursk TO it_item-kursk.
MOVE it_vbrp-aubel TO it_item-aubel.

IF it_vbrp-aupos > 0.
      it_vbrp-aupos = it_vbrp-aupos / 10.

CALL FUNCTION 'CONVERSION_EXIT_ALPHA_OUTPUT'
EXPORTING
input  = it_vbrp-aupos
IMPORTING
output = it_item-aupos.
ENDIF.

MOVE it_vbrp-vbelv TO it_item-vbelv.
MOVE it_vbrp-posnv TO it_item-posnv.
MOVE it_vbrp-vgbel TO it_item-vgbel.
MOVE it_vbrp-vgpos TO it_item-vgpos.
MOVE it_vbrp-brgew TO it_item-brgew.
MOVE it_vbrp-ntgew TO it_item-ntgew.

    gntgew = gntgew + it_vbrp-ntgew.
    gbrgew = gbrgew + it_vbrp-brgew.

IF gro_wei-tdline IS NOT INITIAL.
      lv_gw = gro_wei-tdline.
      lv_gw_total = lv_gw + gntgew.
ENDIF.

count = count + 1.

SELECT SINGLE kdmat
FROM vbap
INTO (it_item-kdmat )
WHERE vbeln = it_vbrp-aubel
AND matnr = it_vbrp-matnr
AND posnr = it_vbrp-posnr.
APPEND it_item.
*    CLEAR it_item.
ENDLOOP.
******************************************************for taking distinct invoice no   v
SELECT DISTINCT aubel
FROM vbrp
INTO it_buff
WHERE vbeln = docno.
APPEND it_buff.
ENDSELECT.
CLEAR it_buff.

CONCATENATE LINES OF it_buff INTO temp SEPARATED BY ' / '.

*loop at it_item.
*   move it_buff-abc to it_item-exporef.
*    modify it_item.
*endloop.
******************************************************manoj                            ^
*LOOP AT IT_ITEM.
* LOOP AT IT_HEADER.
*
* DATA : TEMP_VGBEL LIKE VBRK-VBELN.
* DATA :
*
* CONCATENATE IT_HEADER-LOADINGNO IT_ITEM-POSNR INTO IT_ITEM-VGBEL_POS.
*
*MODIFY IT_ITEM.
*
*ENDLOOP.
*ENDLOOP.

mhtml:file://D:\Backup\SF\Program Source Code\Smart Forms\Export Invoice\SF - Expo... 09-12-2022


Page 9 of 27

LOOP AT it_item.

LOOP AT it_konv WHERE kposn = it_item-posnr.

IF it_konv-kschl = 'PR00'.

unit = it_konv-waers.
IF unit = 'JPY'.
          it_item-kbetr = it_konv-kbetr * 100.
ELSE.
          it_item-kbetr = it_konv-kbetr.
ENDIF.
        it_item-kpein = it_konv-kpein.

*        it_item-kbetr = it_item-kbetr / it_item-kursk.         "modify by manoj on 180308

        it_item-kwert = it_konv-kwert.

unit = it_konv-waers.

MODIFY it_item.
*        CLEAR it_item.
ENDIF.
ENDLOOP.
ENDLOOP.
************************************************************************************************
*************************************************************START BY MANOJ
DATA : it_item1 LIKE it_item OCCURS 0 WITH HEADER LINE.
DATA : cnt(3)." TYPE NUM .
DATA date(6).
*----------------------------------------------------------------------*
cnt = 0.

*LOOP AT IT_item.
*  MOVE-CORRESPONDING IT_item TO IT_item1.
*  APPEND IT_item1.
*ENDLOOP.
*
*  LOOP AT IT_item1.
*    DELETE ADJACENT DUPLICATES FROM IT_item1 COMPARING AUBEL .
*    MODIFY IT_item1.
*  ENDLOOP.
*
*SORT IT_item BY AUBEL.
*
*  LOOP AT IT_item1.
*    ON CHANGE OF IT_item-AUBEL.
*    cnt = 0.
*    LOOP AT IT_item where AUBEL = IT_item1-AUBEL.
*        cnt = cnt + 1.
*        IF cnt > 1.
*          it_item-AUBEL = ' '.
*          MODIFY IT_item.
*        ENDIF.
*    ENDLOOP.
*  ENDON.
*  ENDLOOP.

*********************************************ADD BY MANOJ
CLEAR it_item.
LOOP AT it_item.
*ON CHANGE OF it_item-aubel.
*    SELECT  bstkd bstdk           "Purchase order No.,date,Exporters Ref
*               FROM vbkd
*               INTO (it_item-bstkd,it_item-bstdk)
*               WHERE vbeln = it_item-aubel
*               AND posnr = it_item-posnv.
*    ENDSELECT.
*    MODIFY it_item.
**endon.
*  ENDLOOP.
DATA: wa_vbkd TYPE vbkd.
SELECT SINGLE * FROM vbkd INTO wa_vbkd
WHERE
      vbeln = it_item-aubel AND
      posnr = it_item-aupos.

IF sy-subrc = 4.
SELECT SINGLE * FROM vbkd INTO wa_vbkd
WHERE
        vbeln = it_item-aubel AND
        posnr = ''.
ENDIF.
    it_item-bstkd = wa_vbkd-bstkd.
    it_item-bstdk = wa_vbkd-bstdk.

MODIFY it_item.
ENDLOOP.
CLEAR it_item.

********************************Addition for other charges*****************
  zkf2_amt = 0.
  zkf3_amt = 0.
  zsdf_amt = 0.
  zsdp_amt = 0.
  zshc_amt = 0.
  zsi1_amt = 0.
  zsi2_amt = 0.
  zsm1_amt = 0.
  zsm2_amt = 0.
  zsp1_amt = 0.

mhtml:file://D:\Backup\SF\Program Source Code\Smart Forms\Export Invoice\SF - Expo... 09-12-2022


Page 10 of 27

  zsp2_amt = 0.
  zstf_amt = 0.
  vprs_amt = 0.
  jexp_amt = 0.
  ject_amt = 0.
  jaix_amt = 0.
  zhdf_amt = 0.
  zhdp_amt = 0.
  zhp1_amt = 0.
  zhp2_amt = 0.
  zhhc_amt = 0.
  zhk3_amt = 0.
  zhm1_amt = 0.
  r100_amt = 0.
LOOP AT it_header.

LOOP AT it_konv WHERE knumv = it_vbrk-knumv.

IF it_konv-kschl = 'ZKF2' AND it_konv-kposn <> ' '.
        it_header-zkf2_perc = it_konv-kbetr / 10.

        it_header-zkf2_amt = it_konv-kwert .

        zkf2_amt = zkf2_amt + it_header-zkf2_amt.
ENDIF.

IF it_konv-kschl = 'ZKF3' AND it_konv-kposn <> ' '.

        it_header-zkf3_perc = it_konv-kbetr / 10.

        it_header-zkf3_amt = it_konv-kwert .

        zkf3_amt = zkf3_amt + it_header-zkf3_amt.

ENDIF.

IF it_konv-kschl = 'ZHK2' AND it_konv-kposn <> ' '. " Hardik
        it_header-zhk2_perc = it_konv-kbetr / 10.

        it_header-zhk2_amt = it_konv-kwert .

        zkf2_amt = zhk2_amt + it_header-zhk2_amt.
ENDIF.

IF it_konv-kschl = 'ZHK3' AND it_konv-kposn <> ' '. " Hardik
        it_header-zhk3_perc = it_konv-kbetr / 10.

        it_header-zhk3_amt = it_konv-kwert .

        zhk3_amt = zhk3_amt + it_header-zhk3_amt.
ENDIF.
******************************Freight********************************

IF it_konv-kschl = 'ZHK1' AND it_konv-kposn <> ' '. " Yograj
        it_header-zhk1_perc = it_konv-kbetr / 10.

        it_header-zhk1_amt = it_konv-kwert .

        zhk1_amt = zhk1_amt + it_header-zhk1_amt.
ENDIF.

IF it_konv-kschl = 'ZHK2' AND it_konv-kposn <> ' '. " Yograj
        it_header-zhk2_perc = it_konv-kbetr / 10.

        it_header-zhk2_amt = it_konv-kwert .

        zhk2_amt = zhk2_amt + it_header-zhk2_amt.
ENDIF.
**********************************************************************
*

IF it_konv-kschl = 'ZSDF' AND it_konv-kposn <> ' '.

        it_header-zsdf_perc = it_konv-kbetr / 10.

        it_header-zsdf_amt = it_konv-kwert .

        zsdf_amt = zsdf_amt + it_header-zsdf_amt.

ENDIF.

IF it_konv-kschl = 'ZHDF' AND it_konv-kposn <> ' '.                   "Discount fix at Header Level

        it_header-zhdf_perc = it_konv-kbetr / 10.

        it_header-zhdf_amt = it_konv-kwert .

        zhdf_amt = zhdf_amt + it_header-zhdf_amt.

ENDIF.

IF it_konv-kschl = 'ZHDP' AND it_konv-kposn <> ' '.                   "Discount fix at Header level %

        it_header-zhdp_perc = it_konv-kbetr / 10.

        it_header-zhdp_amt = it_konv-kwert .

        zhdp_amt = zhdp_amt + it_header-zhdp_amt.

ENDIF.

IF it_konv-kschl = 'ZSDP' AND it_konv-kposn <> ' '.

mhtml:file://D:\Backup\SF\Program Source Code\Smart Forms\Export Invoice\SF - Expo... 09-12-2022


Page 11 of 27

        it_header-zsdp_perc = it_konv-kbetr / 10.

        it_header-zsdp_amt = it_konv-kwert .

        zsdp_amt = zsdp_amt + it_header-zsdp_amt.

ENDIF.

IF it_konv-kschl = 'ZSHC' AND it_konv-kposn <> ' '.

        it_header-zshc_perc = it_konv-kbetr / 10.

        it_header-zshc_amt = it_konv-kwert .

        zshc_amt = zshc_amt + it_header-zshc_amt.

ENDIF.

IF it_konv-kschl = 'ZSI1' AND it_konv-kposn <> ' '.

        it_header-zsi1_perc = it_konv-kbetr / 10.

        it_header-zsi1_amt = it_konv-kwert .

        zsi1_amt = zsi1_amt + it_header-zsi1_amt.

ENDIF.

IF it_konv-kschl = 'ZSI2' AND it_konv-kposn <> ' '.

        it_header-zsi2_perc = it_konv-kbetr / 10.

        it_header-zsi2_amt = it_konv-kwert .

        zsi2_amt = zsi2_amt + it_header-zsi2_amt.

ENDIF.

IF it_konv-kschl = 'ZSM1' AND it_konv-kposn <> ' '.

        it_header-zsm1_perc = it_konv-kbetr / 10.

        it_header-zsm1_amt = it_konv-kwert .

        zsm1_amt = zsm1_amt + it_header-zsm1_amt.

ENDIF.

IF it_konv-kschl = 'ZSM2' AND it_konv-kposn <> ' '.

        it_header-zsm2_perc = it_konv-kbetr / 10.

        it_header-zsm2_amt = it_konv-kwert .

        zsm2_amt = zsm2_amt + it_header-zsm2_amt.

ENDIF.

IF it_konv-kschl = 'ZSP1' AND it_konv-kposn <> ' '.

        it_header-zsp1_perc = it_konv-kbetr / 10.

        it_header-zsp1_amt = it_konv-kwert .

        zsp1_amt = zsp1_amt + it_header-zsp1_amt.

ENDIF.

IF it_konv-kschl = 'ZSP2' AND it_konv-kposn <> ' '.

        it_header-zsp2_perc = it_konv-kbetr / 10.

        it_header-zsp2_amt = it_konv-kwert .

        zsp2_amt = zsp2_amt + it_header-zsp2_amt.

ENDIF.

IF it_konv-kschl = 'ZHP1' AND it_konv-kposn <> ' '.

        it_header-zhp1_perc = it_konv-kbetr / 10.

        it_header-zhp1_amt = it_konv-kwert .

        zhp1_amt = zhp1_amt + it_header-zhp1_amt.

ENDIF.

IF it_konv-kschl = 'ZHP2' AND it_konv-kposn <> ' '.

        it_header-zhp2_perc = it_konv-kbetr / 10.

        it_header-zhp2_amt = it_konv-kwert .

        zhp2_amt = zhp2_amt + it_header-zhp2_amt.

ENDIF.

IF it_konv-kschl = 'ZSTF' AND it_konv-kposn <> ' '.

        it_header-zstf_perc = it_konv-kbetr / 10.

mhtml:file://D:\Backup\SF\Program Source Code\Smart Forms\Export Invoice\SF - Expo... 09-12-2022


Page 12 of 27

        it_header-zstf_amt = it_konv-kwert .

        zstf_amt = zstf_amt + it_header-zstf_amt.

ENDIF.

IF it_konv-kschl = 'ZSTP'  AND it_konv-kposn <> ' '.

        it_header-zstp_perc = it_konv-kbetr / 10.

        it_header-zstp_amt = it_konv-kwert .

        zstp_amt = zstp_amt + it_header-zstp_amt.
ENDIF.

*      IF it_konv-kschl = 'ZHK3'  AND it_konv-kposn <> ' '.                  "MANOJ
*
*        it_header-zhk3_perc = it_konv-kbetr / 10.
*
*        it_header-zhk3_amt = it_konv-kwert .
*
*        zhk3_amt = zhk3_amt + it_header-zhk3_amt.
*      ENDIF.

IF it_konv-kschl = 'ZHK2'  AND it_konv-kposn <> ' '.                  " Hardik

        it_header-zhk2_perc = it_konv-kbetr / 10.

        it_header-zhk2_amt = it_konv-kwert .

        zhk2_amt = zhk2_amt + it_header-zhk2_amt.
ENDIF.
*
IF it_konv-kschl = 'ZHM1'  AND it_konv-kposn <> ' '.            "MANOJ

        it_header-zhm1_perc = it_konv-kbetr / 10.

        it_header-zhm1_amt = it_konv-kwert .

        zhm1_amt = zhm1_amt + it_header-zhm1_amt.

ENDIF.

IF it_konv-kschl = 'ZHM2'  AND it_konv-kposn <> ' '.            "MANOJ

        it_header-zhm2_perc = it_konv-kbetr / 10.

        it_header-zhm2_amt = it_konv-kwert .

        zhm2_amt = zhm2_amt + it_header-zhm2_amt.

ENDIF.

IF it_konv-kschl = 'ZHI8'  AND it_konv-kposn <> ' '.            "MANOJ

        it_header-zhi8_perc = it_konv-kbetr / 10.

        it_header-zhi8_amt = it_konv-kwert .

        zhi8_amt = zhi8_amt + it_header-zhi8_amt.

ENDIF.

IF it_konv-kschl = 'R100'  AND it_konv-kposn <> ' '.

        it_header-r100_perc = it_konv-kbetr / 10.

        it_header-r100_amt = it_konv-kwert .

        r100_amt = r100_amt + it_header-r100_amt.

ENDIF.

IF it_konv-kschl = 'ZHI9'  AND it_konv-kposn <> ' '.            "MANOJ

        it_header-zhi9_perc = it_konv-kbetr / 10.

        it_header-zhi9_amt = it_konv-kwert .

        zhi9_amt = zhi9_amt + it_header-zhi9_amt.

ENDIF.

IF it_konv-kschl = 'ZHTF'  AND it_konv-kposn <> ' '.            "Hardik

        it_header-zhtf_perc = it_konv-kbetr / 10.

        it_header-zhtf_amt = it_konv-kwert .

        zhtf_amt = zhtf_amt + it_header-zhtf_amt.

ENDIF.

IF it_konv-kschl = 'ZHTP'  AND it_konv-kposn <> ' '.            "Hardik

        it_header-zhtp_perc = it_konv-kbetr / 10.

        it_header-zhtp_amt = it_konv-kwert .

        zhtp_amt = zhtp_amt + it_header-zhtp_amt.

mhtml:file://D:\Backup\SF\Program Source Code\Smart Forms\Export Invoice\SF - Expo... 09-12-2022


Page 13 of 27

ENDIF.

IF it_konv-kschl = 'ZHI1'  AND it_konv-kposn <> ' '.            "Hardik

        it_header-zhi1_perc = it_konv-kbetr / 10.

        it_header-zhi1_amt = it_konv-kwert .

        zhi1_amt = zhi1_amt + it_header-zhi1_amt.

ENDIF.

IF it_konv-kschl = 'ZHI2'  AND it_konv-kposn <> ' '.            "Hardik

        it_header-zhi2_perc = it_konv-kbetr / 10.

        it_header-zhi2_amt = it_konv-kwert .

        zhi2_amt = zhi2_amt + it_header-zhi2_amt.

ENDIF.

MODIFY it_header.
ENDLOOP.
ENDLOOP.

LOOP AT it_header.
    it_header-gntgew = gntgew.
    it_header-gbrgew = gbrgew.
MODIFY it_header.
ENDLOOP.

  testing =  zhtf_amt + zhtp_amt + zstp_amt + zstf_amt.
  total_discount = zhdf_amt + zhdp_amt + zsdf_amt + zsdp_amt . "+ R100_AMT.
  inspection = zsi1_amt + zsi2_amt + zhi1_amt + zhi2_amt.
  insurance = zhi8_amt + zhi9_amt.
  freight = zkf2_amt + zkf3_amt + zhk3_amt + zhk1_amt + zhk2_amt.
  pack_amt = zhp1_amt + zhp2_amt + zsp1_amt + zsp2_amt.
  miss_charg = zsm1_amt + zsm2_amt +  zhm1_amt + zhm2_amt.
*  miss_charg = zsm1_amt + zsm2_amt + zstf_amt + zstp_amt + zshc_amt + zsdf_amt + zhp1_amt + zhp2_amt + zsp1_amt + zsp2_amt + zhhc_amt + zshc_amt + zhm1_amt
*P_AND_F = ZHP1_AMT + ZHP2_AMT + ZSP1_AMT + ZSP2_AMT + ZHHC_AMT + ZSHC_AMT. " zsi1_amt + zsi1_amt
************************************************addition for other charges**************

******************************total amount of freifgt and misc.
*totalamtfr = freight + Miss_charg.
*************************************************************

LOOP AT it_item.
IF ( it_item-fkimg <> ' ' ) AND ( it_item-kwert <> ' ' ).
      it_item-total = it_item-fkimg * ( it_item-kbetr / it_item-kpein ).
MODIFY it_item.
*      CLEAR it_item.
ENDIF.
ENDLOOP.
***************************

CLEAR it_item.
LOOP AT it_item.
    tot_qty = tot_qty + it_item-fkimg.          "total quantity
    tot_rate = tot_rate + it_item-kbetr.        " total rate
    tot_price = tot_price + it_item-total.      " total price
ENDLOOP.

**********************

SELECT *  "Customer Material No
FROM vbap
INTO TABLE it_vbap
WHERE vbeln = it_vbrp-aubel.

*  LOOP AT it_item.
*
*    LOOP AT it_vbap WHERE vbeln = it_vbrp-aubel AND matnr = it_item-matnr AND posnr = it_item-posnr.
*
*      MOVE it_vbap-kdmat TO it_item-kdmat.
*
*      MODIFY it_item.
*
*    ENDLOOP.
*  ENDLOOP.

SELECT *
FROM likp
INTO TABLE it_likp
WHERE vbeln = it_vbrp-vgbel.

LOOP AT it_item.
LOOP AT it_likp WHERE vbeln = it_vbrp-vgbel.
MOVE it_likp-anzpk TO it_item-anzpk.
MODIFY it_item.
ENDLOOP.
ENDLOOP.

mhtml:file://D:\Backup\SF\Program Source Code\Smart Forms\Export Invoice\SF - Expo... 09-12-2022


Page 14 of 27

LOOP AT it_item.

    totamount = totamount + it_item-total.

ENDLOOP.

  totamount =  totamount + freight + miss_charg + insurance + r100_amt + total_discount + testing + inspection + pack_amt.

*******************************************************************************
  stringamt = totamount.
SPLIT stringamt AT '.' INTO part5 part6.

*****************************************************************************

  amt_no = totamount.
*   amt_no = PART1.

PERFORM amt_in_words USING amt_no.

PERFORM conversion.

* IT_HEADER-ED_WORDS = AMT_WORD.
ENDFORM.                    " FILL_IT_ITEM
*&---------------------------------------------------------------------*
*&      Form  FILL_IT_KONV
*&---------------------------------------------------------------------*
*       text
*----------------------------------------------------------------------*
*      -->P_KNUMV1  text
*----------------------------------------------------------------------*
FORM fill_it_konv  USING    p_knumv1.

SELECT *
FROM konv
INTO TABLE it_konv
WHERE knumv = p_knumv1.

ENDFORM.                    " FILL_IT_KONV
*&---------------------------------------------------------------------*
*&      Form  CALL_FORM
*&---------------------------------------------------------------------*
*       text
*----------------------------------------------------------------------*
*  -->  p1        text
*  <--  p2        text
*----------------------------------------------------------------------*
FORM call_form .

SELECT SINGLE sform
INTO sfname
FROM     tnapr
*        WHERE    kschl = 'ZEXP'
WHERE    kschl = nast-kschl
AND      nacha = '1'
AND      kappl = 'V3'.

CALL FUNCTION 'SSF_FUNCTION_MODULE_NAME'
EXPORTING
      formname           = sfname
*     VARIANT            = ' '
*     DIRECT_CALL        = ' '
IMPORTING
      fm_name            = fm_name
EXCEPTIONS
      no_form            = 1
      no_function_module = 2
OTHERS             = 3.
IF sy-subrc <> 0.
MESSAGE ID sy-msgid TYPE sy-msgty NUMBER sy-msgno
WITH sy-msgv1 sy-msgv2 sy-msgv3 sy-msgv4.
ENDIF.

LOOP AT it_header.
IF it_header-fkdat GE '20171218'." Effected Date
SELECT SINGLE * FROM zinv_snd INTO wa_snd WHERE vbeln = it_header-docno.
IF sy-subrc <> 0 AND wa_snd-zestatus <> 'X'.
PERFORM f_send_email.
ENDIF.
ENDIF.
ENDLOOP.

CALL FUNCTION fm_name
EXPORTING
*   ARCHIVE_INDEX              =
*   ARCHIVE_INDEX_TAB          =
*   ARCHIVE_PARAMETERS         =
*   CONTROL_PARAMETERS         = w_ctrlop
*   MAIL_APPL_OBJ              =
*   MAIL_RECIPIENT             =
*   MAIL_SENDER                =
*   OUTPUT_OPTIONS             =
*   USER_SETTINGS              = 'X'
      wa_it_buff1                = it_buff
      wa_it_header1              = it_header
      totamount                  = totamount

mhtml:file://D:\Backup\SF\Program Source Code\Smart Forms\Export Invoice\SF - Expo... 09-12-2022


Page 15 of 27

      amt_word                   = amt_word
      plant1                     = plant1
unit                       = unit
      qty_unit                   = qty_unit
      miss_charg                 = miss_charg
      freight                    = freight
      temp                       = temp
      insurance                  = insurance
      tot_qty                    = tot_qty
      tot_rate                   = tot_rate
      tot_price                  = tot_price
      total_discount             = total_discount
      testing                    = testing
      inspection                 = inspection
      pack_amt                   = pack_amt
      lv_gw                      = lv_gw_total
* IMPORTING
*   DOCUMENT_OUTPUT_INFO       =
*   JOB_OUTPUT_INFO            =
*   JOB_OUTPUT_OPTIONS         =
TABLES
      it_header                  =  it_header
      it_item                    = it_item
      it_buff                    = it_buff
* EXCEPTIONS
*   FORMATTING_ERROR           = 1
*   INTERNAL_ERROR             = 2
*   SEND_ERROR                 = 3
*   USER_CANCELED              = 4
*   OTHERS                     = 5
.
IF sy-subrc <> 0.
* MESSAGE ID SY-MSGID TYPE SY-MSGTY NUMBER SY-MSGNO
*         WITH SY-MSGV1 SY-MSGV2 SY-MSGV3 SY-MSGV4.
ENDIF.

CLEAR  it_header.
CLEAR it_item.
CLEAR it_vbrk.
CLEAR it_vbrp.
CLEAR it_vbpa.
CLEAR it_t001w.
CLEAR it_lfa1.
CLEAR it_kna1.
CLEAR it_eikp.
CLEAR it_eipo.
CLEAR it_adrc.
CLEAR it_likp.
CLEAR it_vbak.
CLEAR it_vbap.
CLEAR it_tvzbt.
CLEAR it_vbkd.
CLEAR it_konv.

CLEAR  it_header[].
CLEAR it_item[].
CLEAR it_vbrk[].
CLEAR it_vbrp[].
CLEAR it_vbpa[].
CLEAR it_t001w[].
CLEAR it_lfa1[].
CLEAR it_kna1[].
CLEAR it_eikp[].
CLEAR it_eipo[].
CLEAR it_adrc[].
CLEAR it_likp[].
CLEAR it_vbak[].
CLEAR it_vbap[].
CLEAR it_tvzbt[].
CLEAR it_vbkd[].
CLEAR it_konv[].

CLEAR total_duty .
CLEAR total_amt  .
CLEAR p_and_f .
CLEAR total_educess .
CLEAR total_edduty .
CLEAR total_shecess .
CLEAR total_discount .
CLEAR total .
CLEAR total_vat .
CLEAR total_cst .
CLEAR miss_charg .
CLEAR total_ass_val .
CLEAR freight .
CLEAR insurance.
CLEAR tot_qty.
CLEAR tot_rate.
CLEAR tot_price.

ENDFORM.                    " CALL_FORM
*&---------------------------------------------------------------------*
*&      Form  AMT_IN_WORDS
*&---------------------------------------------------------------------*
*       text
*----------------------------------------------------------------------*
*      -->P_AMT_NO  text
*----------------------------------------------------------------------*
FORM amt_in_words  USING    p_amt_no.

*LOOP AT IT_ITEM.

mhtml:file://D:\Backup\SF\Program Source Code\Smart Forms\Export Invoice\SF - Expo... 09-12-2022


Page 16 of 27

*  CALL FUNCTION 'ZIN_SPELL_AMOUNT'
*    EXPORTING
*      P_NUMBER           = P_AMT_NO
*    IMPORTING
*      AMTWORD            = AMT_WORD
*    EXCEPTIONS
*      AMOUNT_NOT_ENTERED = 1
*      OTHERS             = 2.
*  IF SY-SUBRC <> 0.
*    MESSAGE ID SY-MSGID TYPE SY-MSGTY NUMBER SY-MSGNO
*            WITH SY-MSGV1 SY-MSGV2 SY-MSGV3 SY-MSGV4.
*  ENDIF.

*  CALL FUNCTION 'SPELL_AMOUNT'
*    EXPORTING
*      amount    = p_amt_no
*      currency  = unit
*      filler    = space
*      language  = sy-langu
*    IMPORTING
*      in_words  = amt_word
*    EXCEPTIONS
*      not_found = 1
*      too_large = 2
*      OTHERS    = 3.
*  IF sy-subrc <> 0.
*    MESSAGE ID sy-msgid TYPE sy-msgty NUMBER sy-msgno
*            WITH sy-msgv1 sy-msgv2 sy-msgv3 sy-msgv4.
*  ENDIF.

  totsum1 = p_amt_no.
CALL FUNCTION 'HR_IN_CHG_INR_WRDS'
EXPORTING
      amt_in_num         = totsum1
IMPORTING
      amt_in_words       = amountinword
EXCEPTIONS
      data_type_mismatch = 1
OTHERS             = 2.
IF sy-subrc <> 0.
MESSAGE ID sy-msgid TYPE sy-msgty NUMBER sy-msgno
WITH sy-msgv1 sy-msgv2 sy-msgv3 sy-msgv4.
ENDIF.
*  AMT_WORD = AMOUNTINWORD  .
********************************************************************************* 1138

  string = amountinword.
SPLIT string AT 'Rupees' INTO part1 part2 .
SPLIT part2 AT 'Paise' INTO part3 part4 .

CONCATENATE part1 part7 part6 part9 INTO part8 SEPARATED BY ' '.
  amt_word = part8.

*ENDLOOP.

ENDFORM.                    " AMT_IN_WORDS
*&---------------------------------------------------------------------*
*&      Form  READ_MATERIAL_TEXT
*&---------------------------------------------------------------------*
*       text
*----------------------------------------------------------------------*
*  -->  p1        text
*  <--  p2        text
*----------------------------------------------------------------------*
*FORM READ_MATERIAL_TEXT .
*
*NAME = IT_HEADER-LOADINGNO.
*
*  SELECT COUNT( * )
*         FROM STXH
*         WHERE TDOBJECT = 'VBBK' AND
*               TDNAME = NAME AND
*               TDID = '0001' AND
*               TDSPRAS = 'E'.
*
**  IF SY-SUBRC = 0.
*
*  CALL FUNCTION 'READ_TEXT'
*    EXPORTING
*     CLIENT                        = SY-MANDT
*      ID                            = '0001'
*      LANGUAGE                      = 'E'
*      NAME                          = NAME
*      OBJECT                        = 'VBBK'
*    TABLES
*      LINES                         = LINE
*   EXCEPTIONS
*     ID                            = 1
*     LANGUAGE                      = 2
*     NAME                          = 3
*     NOT_FOUND                     = 4
*     OBJECT                        = 5
*     REFERENCE_CHECK               = 6
*     WRONG_ACCESS_TO_ARCHIVE       = 7
*     OTHERS                        = 8
*            .
*  IF SY-SUBRC <> 0.
*  MESSAGE ID SY-MSGID TYPE SY-MSGTY NUMBER SY-MSGNO
*         WITH SY-MSGV1 SY-MSGV2 SY-MSGV3 SY-MSGV4.
*  ENDIF.

mhtml:file://D:\Backup\SF\Program Source Code\Smart Forms\Export Invoice\SF - Expo... 09-12-2022


Page 17 of 27

** ENDIF.
*  LOOP AT LINE where tdline <> ''.
*    TRANSPORTER = LINE-TDLINE.
*  ENDLOOP.
*CLEAR LINE[]. CLEAR LINE.
*ENDFORM.                    " READ_MATERIAL_TEXT
*&---------------------------------------------------------------------*
*&      Form  CONVERSION
*&---------------------------------------------------------------------*
*       text
*----------------------------------------------------------------------*
*  -->  p1        text
*  <--  p2        text
*----------------------------------------------------------------------*
FORM conversion .
LOOP AT it_item.
CALL FUNCTION 'CONVERSION_EXIT_ALPHA_OUTPUT'
EXPORTING
input  = it_item-anzpk
IMPORTING
output = it_item-anzpk.
CALL FUNCTION 'CONVERSION_EXIT_ALPHA_OUTPUT'
EXPORTING
input  = it_item-srno
IMPORTING
output = it_item-srno.

MODIFY it_item.
*    CLEAR it_item.
ENDLOOP.

ENDFORM.                    " CONVERSION
*&---------------------------------------------------------------------*
*&      Form  INITIALIZATION
*&---------------------------------------------------------------------*
*       text
*----------------------------------------------------------------------*
*  -->  p1        text
*  <--  p2        text
*----------------------------------------------------------------------*
FORM initialization .

CLEAR  it_header.
CLEAR it_item.
CLEAR it_vbrk.
CLEAR it_vbrp.
CLEAR it_vbpa.
CLEAR it_t001w.
CLEAR it_lfa1.
CLEAR it_kna1.
CLEAR it_eikp.
CLEAR it_eipo.
CLEAR it_adrc.
CLEAR it_likp.
CLEAR it_vbak.
CLEAR it_vbap.
CLEAR it_tvzbt.
CLEAR it_vbkd.
CLEAR it_konv.

CLEAR  it_header[].
CLEAR it_item[].
CLEAR it_vbrk[].
CLEAR it_vbrp[].
CLEAR it_vbpa[].
CLEAR it_t001w[].
CLEAR it_lfa1[].
CLEAR it_kna1[].
CLEAR it_eikp[].
CLEAR it_eipo[].
CLEAR it_adrc[].
CLEAR it_likp[].
CLEAR it_vbak[].
CLEAR it_vbap[].
CLEAR it_tvzbt[].
CLEAR it_vbkd[].
CLEAR it_konv[].

CLEAR totamount.

ENDFORM.                    " INITIALIZATION
*&---------------------------------------------------------------------*
*&      Form  READ_TEXT
*&---------------------------------------------------------------------*
*       text
*----------------------------------------------------------------------*
*  -->  p1        text
*  <--  p2        text
*----------------------------------------------------------------------*
FORM read_text .

DATA : name LIKE stxh-tdname,
          name1 LIKE stxh-tdname.

LOOP AT it_header.

    name = it_header-loadingno.
    name1 = it_header-docno.

SELECT COUNT( * ) FROM stxh
WHERE tdobject = 'VBBK'
AND   tdname   = name

mhtml:file://D:\Backup\SF\Program Source Code\Smart Forms\Export Invoice\SF - Expo... 09-12-2022


Page 18 of 27

AND   tdid     = 'ZEPC'
AND   tdspras  = 'EN'.

IF sy-subrc = 0.
CALL FUNCTION 'READ_TEXT'
EXPORTING
*    CLIENT                        = SY-MANDT
id                            = 'ZEPC'         " EPCG Licence No
language                      = 'E'
          name                          = name
          object                        = 'VBBK'
*    ARCHIVE_HANDLE                = 0
*    LOCAL_CAT                     = ' '
*  IMPORTING
*    HEADER                        =
TABLES
lines                         = line
EXCEPTIONS
id                            = 1
language                      = 2
         name                          = 3
         not_found                     = 4
         object                        = 5
         reference_check               = 6
         wrong_access_to_archive       = 7
OTHERS                        = 8
.
IF sy-subrc <> 0.
MESSAGE ID sy-msgid TYPE sy-msgty NUMBER sy-msgno
WITH sy-msgv1 sy-msgv2 sy-msgv3 sy-msgv4.
ENDIF.
ENDIF.
LOOP AT line WHERE tdline <> ''.
      it_header-epcgno = line-tdline.
ENDLOOP.
CLEAR line[]. CLEAR line.

SELECT COUNT( * ) FROM stxh
WHERE tdobject = 'VBBK'
AND   tdname   = name
AND   tdid     = 'ZEPD'
AND   tdspras  = 'EN'.

IF sy-subrc = 0.
CALL FUNCTION 'READ_TEXT'
EXPORTING
*    CLIENT                        = SY-MANDT
id                            = 'ZEPD'         " EPCG Licence Date
language                      = 'E'
          name                          = name
          object                        = 'VBBK'
*    ARCHIVE_HANDLE                = 0
*    LOCAL_CAT                     = ' '
*  IMPORTING
*    HEADER                        =
TABLES
lines                         = line
EXCEPTIONS
id                            = 1
language                      = 2
         name                          = 3
         not_found                     = 4
         object                        = 5
         reference_check               = 6
         wrong_access_to_archive       = 7
OTHERS                        = 8
.
IF sy-subrc <> 0.
MESSAGE ID sy-msgid TYPE sy-msgty NUMBER sy-msgno
WITH sy-msgv1 sy-msgv2 sy-msgv3 sy-msgv4.
ENDIF.
ENDIF.
LOOP AT line WHERE tdline <> ''.
      it_header-epcgdate = line-tdline.
ENDLOOP.
CLEAR line[]. CLEAR line.

SELECT COUNT( * ) FROM stxh
WHERE tdobject = 'VBBK'
AND   tdname   = name
AND   tdid     = 'ZDEP'
AND   tdspras  = 'EN'.

IF sy-subrc = 0.
CALL FUNCTION 'READ_TEXT'
EXPORTING
*    CLIENT                        = SY-MANDT
id                            = 'ZDEP'         " DEPB Licence No
language                      = 'E'
          name                          = name
          object                        = 'VBBK'
*    ARCHIVE_HANDLE                = 0
*    LOCAL_CAT                     = ' '
*  IMPORTING
*    HEADER                        =
TABLES
lines                         = line
EXCEPTIONS
id                            = 1
language                      = 2
         name                          = 3
         not_found                     = 4
         object                        = 5

mhtml:file://D:\Backup\SF\Program Source Code\Smart Forms\Export Invoice\SF - Expo... 09-12-2022


Page 19 of 27

         reference_check               = 6
         wrong_access_to_archive       = 7
OTHERS                        = 8
.
IF sy-subrc <> 0.
MESSAGE ID sy-msgid TYPE sy-msgty NUMBER sy-msgno
WITH sy-msgv1 sy-msgv2 sy-msgv3 sy-msgv4.
ENDIF.
ENDIF.
LOOP AT line WHERE tdline <> ''.
      it_header-depbno = line-tdline.
ENDLOOP.
CLEAR line[]. CLEAR line.

SELECT COUNT( * ) FROM stxh
WHERE tdobject = 'VBBK'
AND   tdname   = name
AND   tdid     = 'ZADV'
AND   tdspras  = 'EN'.

IF sy-subrc = 0.
CALL FUNCTION 'READ_TEXT'
EXPORTING
*    CLIENT                        = SY-MANDT
id                            = 'ZADV'         " Advanced Licence No
language                      = 'E'
          name                          = name
          object                        = 'VBBK'
*    ARCHIVE_HANDLE                = 0
*    LOCAL_CAT                     = ' '
*  IMPORTING
*    HEADER                        =
TABLES
lines                         = line
EXCEPTIONS
id                            = 1
language                      = 2
         name                          = 3
         not_found                     = 4
         object                        = 5
         reference_check               = 6
         wrong_access_to_archive       = 7
OTHERS                        = 8
.
IF sy-subrc <> 0.
MESSAGE ID sy-msgid TYPE sy-msgty NUMBER sy-msgno
WITH sy-msgv1 sy-msgv2 sy-msgv3 sy-msgv4.
ENDIF.
ENDIF.
LOOP AT line WHERE tdline <> ''.
      it_header-advanceno = line-tdline.
ENDLOOP.
CLEAR line[]. CLEAR line.

SELECT COUNT( * ) FROM stxh
WHERE tdobject = 'VBBK'
AND   tdname   = name
AND   tdid     = 'ZADV'
AND   tdspras  = 'EN'.

IF sy-subrc = 0.
CALL FUNCTION 'READ_TEXT'
EXPORTING
*    CLIENT                        = SY-MANDT
id                            = 'ZADV'         " Advanced Licence No
language                      = 'E'
          name                          = name
          object                        = 'VBBK'
*    ARCHIVE_HANDLE                = 0
*    LOCAL_CAT                     = ' '
*  IMPORTING
*    HEADER                        =
TABLES
lines                         = line
EXCEPTIONS
id                            = 1
language                      = 2
         name                          = 3
         not_found                     = 4
         object                        = 5
         reference_check               = 6
         wrong_access_to_archive       = 7
OTHERS                        = 8
.
IF sy-subrc <> 0.
MESSAGE ID sy-msgid TYPE sy-msgty NUMBER sy-msgno
WITH sy-msgv1 sy-msgv2 sy-msgv3 sy-msgv4.
ENDIF.
ENDIF.

LOOP AT line WHERE tdline <> ''.
      it_header-nopackages = line-tdline.
ENDLOOP.
CLEAR line[]. CLEAR line.

SELECT COUNT( * ) FROM stxh
WHERE tdobject = 'VBBK'
AND   tdname   = name1
AND   tdid     = 'ZF03'
AND   tdspras  = 'EN'.

mhtml:file://D:\Backup\SF\Program Source Code\Smart Forms\Export Invoice\SF - Expo... 09-12-2022


Page 20 of 27

IF sy-subrc = 0.
CALL FUNCTION 'READ_TEXT'
EXPORTING
*    CLIENT                        = SY-MANDT
id                            = 'ZF03'         " NO OF PACKAGES
language                      = 'E'
          name                          = name1
          object                        = 'VBBK'
*    ARCHIVE_HANDLE                = 0
*    LOCAL_CAT                     = ' '
*  IMPORTING
*    HEADER                        =
TABLES
lines                         = line
EXCEPTIONS
id                            = 1
language                      = 2
         name                          = 3
         not_found                     = 4
         object                        = 5
         reference_check               = 6
         wrong_access_to_archive       = 7
OTHERS                        = 8
.
IF sy-subrc <> 0.
MESSAGE ID sy-msgid TYPE sy-msgty NUMBER sy-msgno
WITH sy-msgv1 sy-msgv2 sy-msgv3 sy-msgv4.
ENDIF.
ENDIF.
LOOP AT line WHERE tdline <> ''.
      it_header-nopackages = line-tdline.
ENDLOOP.

SELECT COUNT( * ) FROM stxh
WHERE tdobject = 'VBBK'
AND   tdname   = name1
AND   tdid     = 'ZF04'
AND   tdspras  = 'EN'.

IF sy-subrc = 0.

CALL FUNCTION 'READ_TEXT'
EXPORTING
*    CLIENT                        = SY-MANDT
id                            = 'ZF04'         " KIND PACKAGES
language                      = 'E'
            name                          = name1
            object                        = 'VBBK'
*    ARCHIVE_HANDLE                = 0
*    LOCAL_CAT                     = ' '
*  IMPORTING
*    HEADER                        =
TABLES
lines                         = line
EXCEPTIONS
id                            = 1
language                      = 2
           name                          = 3
           not_found                     = 4
           object                        = 5
           reference_check               = 6
           wrong_access_to_archive       = 7
OTHERS                        = 8
.
IF sy-subrc <> 0.
MESSAGE ID sy-msgid TYPE sy-msgty NUMBER sy-msgno
WITH sy-msgv1 sy-msgv2 sy-msgv3 sy-msgv4.
ENDIF.
ENDIF.
LOOP AT line WHERE tdline <> ''.
      it_header-kindpackages = line-tdline.
ENDLOOP.
CLEAR line[]. CLEAR line.

SELECT COUNT( * ) FROM stxh
WHERE tdobject = 'VBBK'
AND   tdname   = name1
AND   tdid     = 'ZF07'
AND   tdspras  = 'EN'.

IF sy-subrc = 0.

CALL FUNCTION 'READ_TEXT'
EXPORTING
*    CLIENT                        = SY-MANDT
id                            = 'ZF07'         " STAINLESS
language                      = 'E'
            name                          = name1
            object                        = 'VBBK'
*    ARCHIVE_HANDLE                = 0
*    LOCAL_CAT                     = ' '
*  IMPORTING
*    HEADER                        =
TABLES
lines                         = line
EXCEPTIONS
id                            = 1
language                      = 2
           name                          = 3
           not_found                     = 4
           object                        = 5

mhtml:file://D:\Backup\SF\Program Source Code\Smart Forms\Export Invoice\SF - Expo... 09-12-2022


Page 21 of 27

           reference_check               = 6
           wrong_access_to_archive       = 7
OTHERS                        = 8
.
IF sy-subrc <> 0.
MESSAGE ID sy-msgid TYPE sy-msgty NUMBER sy-msgno
WITH sy-msgv1 sy-msgv2 sy-msgv3 sy-msgv4.
ENDIF.
ENDIF.
LOOP AT line WHERE tdline <> ''.
      it_header-stainless = line-tdline.
ENDLOOP.
CLEAR line[]. CLEAR line.

SELECT COUNT( * ) FROM stxh
WHERE tdobject = 'VBBK'
AND   tdname   = name1
AND   tdid     = 'ZF07'
AND   tdspras  = 'EN'.

IF sy-subrc = 0.

CALL FUNCTION 'READ_TEXT'
EXPORTING
*    CLIENT                        = SY-MANDT
id                            = 'ZF08'         " DEPB
language                      = 'E'
            name                          = name1
            object                        = 'VBBK'
*    ARCHIVE_HANDLE                = 0
*    LOCAL_CAT                     = ' '
*  IMPORTING
*    HEADER                        =
TABLES
lines                         = line
EXCEPTIONS
id                            = 1
language                      = 2
           name                          = 3
           not_found                     = 4
           object                        = 5
           reference_check               = 6
           wrong_access_to_archive       = 7
OTHERS                        = 8
.
IF sy-subrc <> 0.
MESSAGE ID sy-msgid TYPE sy-msgty NUMBER sy-msgno
WITH sy-msgv1 sy-msgv2 sy-msgv3 sy-msgv4.
ENDIF.
ENDIF.
LOOP AT line WHERE tdline <> ''.
      it_header-depb = line-tdline.
ENDLOOP.
CLEAR line[]. CLEAR line.

*********STAINLESS
*********DEPB
SELECT COUNT( * ) FROM stxh
WHERE tdobject = 'VBBK'
AND   tdname   = name1
AND   tdid     = 'ZF09'
AND   tdspras  = 'EN'.

IF sy-subrc = 0.

CALL FUNCTION 'READ_TEXT'
EXPORTING
*    CLIENT                        = SY-MANDT
id                            = 'ZF09'         " bank
language                      = 'E'
            name                          = name1
            object                        = 'VBBK'
*    ARCHIVE_HANDLE                = 0
*    LOCAL_CAT                     = ' '
*  IMPORTING
*    HEADER                        =
TABLES
lines                         = line
EXCEPTIONS
id                            = 1
language                      = 2
           name                          = 3
           not_found                     = 4
           object                        = 5
           reference_check               = 6
           wrong_access_to_archive       = 7
OTHERS                        = 8
.
IF sy-subrc <> 0.
MESSAGE ID sy-msgid TYPE sy-msgty NUMBER sy-msgno
WITH sy-msgv1 sy-msgv2 sy-msgv3 sy-msgv4.
ENDIF.
ENDIF.
LOOP AT line WHERE tdline <> ''.
      it_header-bank = line-tdline.
ENDLOOP.

*********Gross Weight
SELECT COUNT( * ) FROM stxh
WHERE tdobject = 'VBBK'
AND   tdname   = name1
AND   tdid     = 'ZF12'

mhtml:file://D:\Backup\SF\Program Source Code\Smart Forms\Export Invoice\SF - Expo... 09-12-2022


Page 22 of 27

AND   tdspras  = 'EN'.

IF sy-subrc = 0.

CALL FUNCTION 'READ_TEXT'
EXPORTING
*    CLIENT                        = SY-MANDT
id                            = 'ZF12'         " Gross Weight
language                      = 'E'
            name                          = name1
            object                        = 'VBBK'
*    ARCHIVE_HANDLE                = 0
*    LOCAL_CAT                     = ' '
*  IMPORTING
*    HEADER                        =
TABLES
lines                         = gro_wei
EXCEPTIONS
id                            = 1
language                      = 2
           name                          = 3
           not_found                     = 4
           object                        = 5
           reference_check               = 6
           wrong_access_to_archive       = 7
OTHERS                        = 8
.
IF sy-subrc <> 0.
MESSAGE ID sy-msgid TYPE sy-msgty NUMBER sy-msgno
WITH sy-msgv1 sy-msgv2 sy-msgv3 sy-msgv4.
ENDIF.
ENDIF.
LOOP AT gro_wei WHERE tdline <> ''.
      it_header-gross_weight = gro_wei-tdline.
ENDLOOP.

*********    Chapter ID ***************************************

SELECT COUNT( * ) FROM stxh
WHERE tdobject = 'VBBK'
AND   tdname   = name1
AND   tdid     = 'ZF13'
AND   tdspras  = 'EN'.

IF sy-subrc = 0.

CALL FUNCTION 'READ_TEXT'
EXPORTING
*    CLIENT                        = SY-MANDT
id                            = 'ZF13'         " Chapter ID
language                      = 'E'
            name                          = name1
            object                        = 'VBBK'
*    ARCHIVE_HANDLE                = 0
*    LOCAL_CAT                     = ' '
*  IMPORTING
*    HEADER                        =
TABLES
lines                         = chap_id
EXCEPTIONS
id                            = 1
language                      = 2
           name                          = 3
           not_found                     = 4
           object                        = 5
           reference_check               = 6
           wrong_access_to_archive       = 7
OTHERS                        = 8
.
IF sy-subrc <> 0.
MESSAGE ID sy-msgid TYPE sy-msgty NUMBER sy-msgno
WITH sy-msgv1 sy-msgv2 sy-msgv3 sy-msgv4.
ENDIF.
ENDIF.
LOOP AT chap_id WHERE tdline <> ''.
      it_header-chapter_id = chap_id-tdline.
ENDLOOP.

IF it_header-chapter_id IS INITIAL.
      it_header-chapter_id = '732690-15'.
ENDIF.

**User will not allowed if CHA name is not Mentioned.**
**This validation valid only if Bocument created after 09.02.2018**

IF it_header-fkdat >= '20180209'.

SELECT COUNT( * ) FROM stxh
WHERE tdobject = 'VBBK'
AND   tdname   = name1
AND   tdid     = 'ZF14' "CHA Name
AND   tdspras  = 'EN'.

IF sy-subrc = 0.
CALL FUNCTION 'READ_TEXT'
EXPORTING
client                  = sy-mandt
id                      = 'ZF14'
language                = sy-langu
            name                    = name1
            object                  = 'VBBK'
TABLES
lines                   = cha_name

mhtml:file://D:\Backup\SF\Program Source Code\Smart Forms\Export Invoice\SF - Expo... 09-12-2022


Page 23 of 27

EXCEPTIONS
id                      = 1
language                = 2
            name                    = 3
            not_found               = 4
            object                  = 5
            reference_check         = 6
            wrong_access_to_archive = 7
OTHERS                  = 8.
IF sy-subrc <> 0.
MESSAGE 'Enter CHA Name in Header Text' TYPE 'E'.
ENDIF.

ELSE.
IF sy-subrc <> 0.
MESSAGE 'Enter CHA Name in Header Text' TYPE 'E'.
ENDIF.
ENDIF.
ENDIF.
******************
*SELECT COUNT( * ) FROM stxh
*                 WHERE tdobject = 'VBBK'
*                 AND   tdname   = name1
*                 AND   tdid     = 'ZF10'
*                 AND   tdspras  = 'EN'.
*
*    IF sy-subrc = 0.
*
*      CALL FUNCTION 'READ_TEXT'
*          EXPORTING
**    CLIENT                        = SY-MANDT
*            id                            = 'ZF10'         " remarks as per lc
*            language                      = 'E'
*            name                          = name1
*            object                        = 'VBBK'
**    ARCHIVE_HANDLE                = 0
**    LOCAL_CAT                     = ' '
**  IMPORTING
**    HEADER                        =
*          TABLES
*            lines                         = line
*         EXCEPTIONS
*           id                            = 1
*           language                      = 2
*           name                          = 3
*           not_found                     = 4
*           object                        = 5
*           reference_check               = 6
*           wrong_access_to_archive       = 7
*           OTHERS                        = 8
*                  .
*      IF sy-subrc <> 0.
*        MESSAGE ID sy-msgid TYPE sy-msgty NUMBER sy-msgno
*                WITH sy-msgv1 sy-msgv2 sy-msgv3 sy-msgv4.
*      ENDIF.
*    ENDIF.
*    LOOP AT line WHERE tdline <> ''.
*      it_header-remarks = line-tdline.
*    ENDLOOP.

MODIFY it_header.

ENDLOOP.
*****************
*data: a type i.
*a = 10.

*loop at it_header.
*do 10 times.
*SELECT COUNT( * ) FROM stxh
*                 WHERE tdobject = 'VBBK'
*                 AND   tdname   = name1
*                 AND   tdid     = 'ZF10'
*                 AND   tdspras  = 'EN'.
*
*    IF sy-subrc = 0.
*
*      CALL FUNCTION 'READ_TEXT'
*          EXPORTING
**    CLIENT                        = SY-MANDT
*            id                            = 'ZF10'         " remarks as per lc
*            language                      = 'E'
*            name                          = name1
*            object                        = 'VBBK'
**    ARCHIVE_HANDLE                = 0
**    LOCAL_CAT                     = ' '
**  IMPORTING
**    HEADER                        =
*          TABLES
*            lines                         = line
*         EXCEPTIONS
*           id                            = 1
*           language                      = 2
*           name                          = 3
*           not_found                     = 4
*           object                        = 5
*           reference_check               = 6
*           wrong_access_to_archive       = 7
*           OTHERS                        = 8
*                  .
*      IF sy-subrc <> 0.
*        MESSAGE ID sy-msgid TYPE sy-msgty NUMBER sy-msgno
*                WITH sy-msgv1 sy-msgv2 sy-msgv3 sy-msgv4.

mhtml:file://D:\Backup\SF\Program Source Code\Smart Forms\Export Invoice\SF - Expo... 09-12-2022


Page 24 of 27

*      ENDIF.
*    ENDIF.
*    LOOP AT line WHERE tdline <> ''.
*      it_header-remarks = line-tdline.
*    ENDLOOP.
*
*
*enddo.
* MODIFY it_header.
*endloop.
*******************************

*LOOP AT IT_HEADER.
*   IT_HEADER-GBRGEW = IT_HEADER-GNTGEW + ( it_header-nopackages * 50 ).
*        MODIFY IT_HEADER.
*ENDLOOP.
*

ENDFORM.                    " READ_TEXT
*&---------------------------------------------------------------------*
*&      Form  F_SEND_EMAIL
*&---------------------------------------------------------------------*
*       text
*----------------------------------------------------------------------*
*  -->  p1        text
*  <--  p2        text
*----------------------------------------------------------------------*
FORM f_send_email .
DATA : gc_text(11) TYPE c VALUE 'Form Output',
          gc_tst(25) TYPE c VALUE 'Invoice Details',
          gc_subject(50) TYPE c.
DATA:
  gs_ctrlop TYPE ssfctrlop, " Smart Forms: Control structure
  gs_outopt TYPE ssfcompop, " SAP Smart Forms: Smart Composer (transfer) options
  gs_otfdata TYPE ssfcrescl, " Smart Forms: Return value at end of form printing
  gt_otf TYPE TABLE OF itcoo, " OTF Structure
  gv_bin_filesize TYPE i, " Store the file size
  gt_pdf_tab TYPE TABLE OF tline, " SAPscript: Text Lines
  gs_docdata TYPE sodocchgi1, " Data of an object which can be changed
  gt_reclist TYPE TABLE OF somlreci1, " SAPoffice: Structure of the API Recipient List
  gs_reclist TYPE somlreci1, " SAPoffice: Structure of the API Recipient List
  gs_objbin TYPE solisti1, " SAPoffice: Single List with Column Length 255
  gs_message TYPE solisti1 OCCURS 0 WITH HEADER LINE, " SAPoffice: Single List with Column Length 255
  gs_subject TYPE sodocchgi1-obj_descr,
gs_pdf_tab TYPE tline, " Workarea for SAP Script Text Lines
  gv_pos TYPE i,
  gv_len TYPE i,
  gt_objbin TYPE TABLE OF solisti1, " SAPoffice: Single List with Column Length 255
  gv_tab_lines TYPE i,
  gs_objpack TYPE sopcklsti1, " SAPoffice: Description of Imported Object Components
  gt_objpack TYPE TABLE OF sopcklsti1. " SAPoffice: Description of Imported Object Components
  gs_ctrlop-getotf = 'X'.
  gs_ctrlop-device = 'PRINTER'.
  gs_ctrlop-preview = ''.
  gs_ctrlop-no_dialog = 'X'.
  gs_outopt-tddest = 'LOCL'.
DATA:wa_objhead TYPE soli_tab,
    w_ctrlop TYPE ssfctrlop,
    w_compop TYPE ssfcompop,
    w_return TYPE ssfcrescl,
    wa_doc_chng TYPE sodocchgi1,
    w_data TYPE sodocchgi1,
    mailtxt LIKE solisti1 OCCURS  0 WITH HEADER LINE ,
      lv_sub TYPE char50,
    wa_buffer TYPE string. "To convert from 132 to 255
*  gv_bin_filesize type i, " Store the file size
*  gt_pdf_tab type table of tline. " SAPscript: Text Lines
  w_ctrlop-getotf = 'X'.
  w_ctrlop-preview = 'X'.
  w_ctrlop-no_dialog = 'X'.
  w_compop-tdnoprev = 'X'.

DATA: it_email TYPE TABLE OF ysend_email,
        wa_email TYPE          ysend_email.

*data :

DATA : gt_object_header TYPE STANDARD TABLE OF solisti1.

DATA: sf_name TYPE tdsfname.
DATA : m_sub TYPE so_obj_des.
*  DATA gt_otf TYPE TABLE OF itcoo. " OTF Structure
"""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""
CLEAR gt_reclist[].
  gs_reclist-rec_type = 'U'.
APPEND gs_reclist TO gt_reclist.
CLEAR : gs_reclist.
**********************************************************************

CALL FUNCTION fm_name
EXPORTING
*   ARCHIVE_INDEX              =
*   ARCHIVE_INDEX_TAB          =
*   ARCHIVE_PARAMETERS         =
   control_parameters         = w_ctrlop
*   MAIL_APPL_OBJ              =
*   MAIL_RECIPIENT             =
*   MAIL_SENDER                =

mhtml:file://D:\Backup\SF\Program Source Code\Smart Forms\Export Invoice\SF - Expo... 09-12-2022


Page 25 of 27

   output_options             = w_compop
*   USER_SETTINGS              = 'X'
      wa_it_buff1                = it_buff
      wa_it_header1              = it_header
      totamount                  = totamount
      amt_word                   = amt_word
      plant1                     = plant1
unit                       = unit
      qty_unit                   = qty_unit
      miss_charg                 = miss_charg
      freight                    = freight
      temp                       = temp
      insurance                  = insurance
      tot_qty                    = tot_qty
      tot_rate                   = tot_rate
      tot_price                  = tot_price
      total_discount             = total_discount
      testing                    = testing
      inspection                 = inspection
      pack_amt                   = pack_amt
      lv_gw                      = lv_gw_total
IMPORTING
*   DOCUMENT_OUTPUT_INFO       =
   job_output_info            = gs_otfdata
*   JOB_OUTPUT_OPTIONS         =
TABLES
      it_header                  =  it_header
      it_item                    = it_item
      it_buff                    = it_buff
* EXCEPTIONS
*   FORMATTING_ERROR           = 1
*   INTERNAL_ERROR             = 2
*   SEND_ERROR                 = 3
*   USER_CANCELED              = 4
*   OTHERS                     = 5
.
IF sy-subrc <> 0.
* MESSAGE ID SY-MSGID TYPE SY-MSGTY NUMBER SY-MSGNO
*         WITH SY-MSGV1 SY-MSGV2 SY-MSGV3 SY-MSGV4.
ENDIF.

**********************************************************************
CLEAR gt_otf[].
  gt_otf[] = gs_otfdata-otfdata[].
* Convert the OTF DATA to SAP Script Text lines
CALL FUNCTION 'CONVERT_OTF'
EXPORTING
format                = 'PDF'
      max_linewidth         = 132
IMPORTING
      bin_filesize          = gv_bin_filesize
TABLES
      otf                   = gt_otf
lines                 = gt_pdf_tab
EXCEPTIONS
      err_max_linewidth     = 1
      err_format            = 2
      err_conv_not_possible = 3
      err_bad_otf           = 4
OTHERS                = 5.

IF sy-subrc <> 0.
MESSAGE ID sy-msgid TYPE sy-msgty NUMBER sy-msgno
WITH sy-msgv1 sy-msgv2 sy-msgv3 sy-msgv4.
ENDIF.
"""""""""""""""" Get the Vendor Email Address. """"""""""""""""""""""""""

SELECT * FROM ysend_email INTO TABLE it_email WHERE werks = it_header-plant
AND   programm = sy-repid.

LOOP AT it_email INTO wa_email.
    gs_reclist-receiver = wa_email-email_id.
    gs_reclist-copy = wa_email-copy_to.
    gs_reclist-rec_type = 'U'.
APPEND gs_reclist TO gt_reclist.
CLEAR : gs_reclist.
ENDLOOP.
***....Against LC Doc will send to Following person
IF it_header-lcnum IS NOT INITIAL.
    gs_reclist-receiver = 'ac@sanghviforge.com'.
    gs_reclist-copy = wa_email-copy_to.
    gs_reclist-rec_type = 'U'.
APPEND gs_reclist TO gt_reclist.
CLEAR : gs_reclist.

    gs_reclist-receiver = 'accounts@sanghviforge.com'.
    gs_reclist-copy = wa_email-copy_to.
    gs_reclist-rec_type = 'U'.
APPEND gs_reclist TO gt_reclist.
CLEAR : gs_reclist.

    gs_reclist-receiver = 'banking@sanghviforge.com'.
    gs_reclist-copy = wa_email-copy_to.
    gs_reclist-rec_type = 'U'.
APPEND gs_reclist TO gt_reclist.
CLEAR : gs_reclist.

    gs_reclist-receiver = 'vrd@sanghviforge.com'.
    gs_reclist-copy = wa_email-copy_to.
    gs_reclist-rec_type = 'U'.
APPEND gs_reclist TO gt_reclist.

mhtml:file://D:\Backup\SF\Program Source Code\Smart Forms\Export Invoice\SF - Expo... 09-12-2022


Page 26 of 27

CLEAR : gs_reclist.
ENDIF.
***....Against LC Doc will send to above person

CLEAR : gs_objbin, gs_pdf_tab.
LOOP AT gt_pdf_tab INTO gs_pdf_tab.
    gv_pos = 255 - gv_len.
IF gv_pos > 134. "length of pdf_table
      gv_pos = 134.
ENDIF.
    gs_objbin+gv_len = gs_pdf_tab(gv_pos).
    gv_len = gv_len + gv_pos.
IF gv_len = 255. "length of out (contents_bin)
APPEND gs_objbin TO gt_objbin.
CLEAR: gs_objbin, gv_len.
IF gv_pos < 134.
        gs_objbin = gs_pdf_tab+gv_pos.
        gv_len = 134 - gv_pos.
ENDIF.
ENDIF.
ENDLOOP.
IF gv_len > 0.
APPEND gs_objbin TO gt_objbin.
ENDIF.

**************************************************************

CLEAR gs_docdata.
  gs_docdata-obj_name = gc_tst.

CONCATENATE it_header-plant '- Dispatch of' it_header-conname1 INTO gc_subject SEPARATED BY ' '.
  gs_docdata-obj_descr = gc_subject.

IF mailtxt[] IS INITIAL.
    mailtxt-line = '<HTML><BODY>'.
APPEND mailtxt.

    mailtxt-line  = '<head>'.
APPEND mailtxt.

    mailtxt-line  = '<title>BOM, Routing & Costing Pending</title>'.
APPEND mailtxt.
    mailtxt-line = '<meta http-equiv="Content-Type" content="text/html;'.
APPEND mailtxt.
    mailtxt-line  = 'charset=iso-8859-1">'.
APPEND mailtxt.
    mailtxt-line  = '</head>'.
APPEND mailtxt.

    mailtxt-line = '<font size="3">Dear Sir/Madam,'.
APPEND mailtxt.
    mailtxt-line = ' '.
APPEND mailtxt.
    mailtxt-line = '<BR><BR>This is to inform you that dispatch of '.
APPEND mailtxt.
CONCATENATE '<B>' it_header-conname1 '</B>' INTO mailtxt-line SEPARATED BY ' '.
APPEND mailtxt.
    mailtxt-line = ' has been successfully completed.'.
APPEND mailtxt.

    mailtxt-line = '<BR><BR>Summarized Information of dispatch is mentioned Below:'.
APPEND mailtxt.

    mailtxt-line = '<BR><BR><table>'.
APPEND mailtxt.

CONCATENATE '<TR font size="3"><TD>Invoice Number<TD>:</TD><TD>' it_header-docno '</TD></TR>'INTO mailtxt-line.
APPEND mailtxt.

CONCATENATE '<TR font size="3"><TD>Delivery Challan<TD>:</TD><TD>' it_header-loadingno '</TD></TR>'INTO mailtxt-line.
APPEND mailtxt.

CONCATENATE '<TR font size="3"><TD>PO Number<TD>:</TD><TD>' it_header-pono '</TD></TR>'INTO mailtxt-line.
APPEND mailtxt.

CONCATENATE '<TR font size="3"><TD>Sales Order<TD>:</TD><TD>' it_header-oano '</TD></TR>'INTO mailtxt-line.
APPEND mailtxt.

CONCATENATE '<TR font size="3"><TD>Total Amount in' unit '<TD>:</TD><TD>'  INTO mailtxt-line SEPARATED BY ' '.
APPEND mailtxt.

    mailtxt-line = totamount.
APPEND mailtxt.

    mailtxt-line = '</TD></TR>'.
APPEND mailtxt.

    totamtinr = totamount * it_header-exrate.

    mailtxt-line = '<TR font size="3"><TD>Total Amount in INR<TD>:</TD><TD>'.
APPEND mailtxt.

    mailtxt-line = totamtinr.
APPEND mailtxt.

    mailtxt-line = '</TD></TR>'.
APPEND mailtxt.
    mailtxt-line = '</table>'.

mhtml:file://D:\Backup\SF\Program Source Code\Smart Forms\Export Invoice\SF - Expo... 09-12-2022


Page 27 of 27

APPEND mailtxt.

    mailtxt-line = '<BR><BR>For more details please find attached invoice copy.'.
APPEND mailtxt.

    mailtxt-line = '<BR><BR>Regards,'.
APPEND mailtxt.
    mailtxt-line = '<BR>Dispatch Team'.
APPEND mailtxt.
    mailtxt-line = '<BR>Sanghvi Forging & Engineering Ltd </font>'.
APPEND mailtxt.

    mailtxt-line = '<BR><BR><P1>*This is system generated mail, please do not reply.</P1>'.
APPEND mailtxt.
ENDIF.
DESCRIBE TABLE mailtxt LINES gv_tab_lines.
READ TABLE mailtxt INDEX gv_tab_lines.

CLEAR gs_objpack.
REFRESH gt_objpack.

  gs_objpack-transf_bin = space.
  gs_objpack-head_start = 1.
  gs_objpack-head_num = 0.
  gs_objpack-body_start = 1.
DESCRIBE TABLE mailtxt LINES gs_objpack-body_num.

  gs_objpack-doc_type = 'HTML'.

APPEND gs_objpack TO gt_objpack.

* Filling the details in SAPoffice: Description of Imported Object Components table
DESCRIBE TABLE gt_objbin LINES gv_tab_lines.
CLEAR gs_objbin.
READ TABLE gt_objbin INTO gs_objbin INDEX gv_tab_lines.

IF sy-subrc = 0.

    gs_objpack-doc_size = ( gv_tab_lines - 1 ) * 255 + strlen( gs_objbin ).
    gs_objpack-transf_bin = 'X'.
    gs_objpack-head_start = 1.
    gs_objpack-head_num = 0.
    gs_objpack-body_start = 1.
    gs_objpack-body_num = gv_tab_lines.
    gs_objpack-doc_type = 'PDF'.
    gs_objpack-obj_name = 'ATTACHMENT'.

CONCATENATE 'Invoice-' it_header-docno INTO gs_objpack-obj_descr SEPARATED BY ' '.
APPEND gs_objpack TO gt_objpack.
ENDIF.
SORT gt_reclist BY receiver.                                                       """""""""""" added lbs 23032015
DELETE ADJACENT DUPLICATES FROM gt_reclist[] COMPARING receiver rec_type  .

* Sending the Form Output in the PDF format to email
CALL FUNCTION 'SO_NEW_DOCUMENT_ATT_SEND_API1'
EXPORTING
      document_data              = gs_docdata
      put_in_outbox              = 'X'
      commit_work                = 'X'
TABLES
      packing_list               = gt_objpack
      contents_bin               = gt_objbin
      contents_txt               = mailtxt
      receivers                  = gt_reclist
EXCEPTIONS
      too_many_receivers         = 1
      document_not_sent          = 2
      document_type_not_exist    = 3
      operation_no_authorization = 4
      parameter_error            = 5
      x_error                    = 6
      enqueue_error              = 7
OTHERS                     = 8.
IF sy-subrc <> 0.
MESSAGE ID sy-msgid TYPE sy-msgty NUMBER sy-msgno
WITH sy-msgv1 sy-msgv2 sy-msgv3 sy-msgv4.
ELSE.
*    MESSAGE 'Invoice Sent Successfully.' TYPE 'I'.
    wa_snd-vbeln = it_header-docno.
    wa_snd-zestatus = 'X'.
MODIFY zinv_snd FROM wa_snd.
CLEAR wa_snd.
ENDIF.
ENDFORM.                    " F_SEND_EMAIL

mhtml:file://D:\Backup\SF\Program Source Code\Smart Forms\Export Invoice\SF - Expo... 09-12-2022

You might also like