0% found this document useful (0 votes)
88 views27 pages

Export Invoice

This document contains source code for an export invoice program in ABAP. It includes data declarations for tables to store invoice header and item data, as well as fields for invoice totals, currency conversions, and text values. The start of selection routine performs initialization, fills the invoice header and item internal tables by reading from database tables, and calls a form to display the invoice data.

Uploaded by

YOGRAJSINH ZALA
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PDF, TXT or read online on Scribd
0% found this document useful (0 votes)
88 views27 pages

Export Invoice

This document contains source code for an export invoice program in ABAP. It includes data declarations for tables to store invoice header and item data, as well as fields for invoice totals, currency conversions, and text values. The start of selection routine performs initialization, fills the invoice header and item internal tables by reading from database tables, and calls a form to display the invoice data.

Uploaded by

YOGRAJSINH ZALA
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PDF, TXT or read online on Scribd
You are on page 1/ 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 = '[email protected]'.
    gs_reclist-copy = wa_email-copy_to.
    gs_reclist-rec_type = 'U'.
APPEND gs_reclist TO gt_reclist.
CLEAR : gs_reclist.

    gs_reclist-receiver = '[email protected]'.
    gs_reclist-copy = wa_email-copy_to.
    gs_reclist-rec_type = 'U'.
APPEND gs_reclist TO gt_reclist.
CLEAR : gs_reclist.

    gs_reclist-receiver = '[email protected]'.
    gs_reclist-copy = wa_email-copy_to.
    gs_reclist-rec_type = 'U'.
APPEND gs_reclist TO gt_reclist.
CLEAR : gs_reclist.

    gs_reclist-receiver = '[email protected]'.
    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