| *----------------------------------------------------------------------**              Print of an invoice by SAPscript                        *
 *----------------------------------------------------------------------*
 REPORT RVADIN01 LINE-COUNT 100 MESSAGE-ID VN.
 
 TABLES: KOMK,
 *        BKPF,           "   # fi ÔÞÚãÜÕÝâÐ - ÝÞÜÕà äÐÚâãàë
 BSEG,
 TCURT,                         " âÕÚáâ ÒÐÛîâë
 T683S,                         "áåÕÜÐ ÚÐÛìÚãÛïæØØ
 VBRP,                          " ßÞ×ØæØØ äÐÚâãàë
 VBRK,                          " ×ÐÓÞÛÞÒÞÚ äÐÚâãàë
 T001W,                         " ×ÐÒÞÔ
 KNVK,                          " àãÚÞÒÞÔØâÕÛì äØàÜë
 T189T,                         " ÝÐ×ÒÐÝØÕ ßàÕÙáÚãàÐÝâÐ
 TVZBT,                         " ÝÐ×ÒÐÝØÕ ãáÛÞÒØï ßÛÐâÕÖÐ
 MARM,                          " èâãÚ Ò ÚÞàÞÑÚÕ
 MVKE,                          " ¾º´¿
 KNB1,                          " hous bank
 KNA1,
 KNBK,
 BNKA,
 T006A,                         " âÕÚáâ µ¸
 *BNKA,           " ÔÞß ßÞÛï ÔÛï ÝÐ×ÒÐÝØï áÞÑáâÒÕÝÝÞÓÞ ÑÐÝÚÐ
 KOMP,           " Communicationarea for conditions
 *KOMP,                          " ÔÞß ßÞÛï ÔÛï ßÞÔÒÐÛÐ
 KOMVD,          " Communicationarea for conditions
 VBCO3,                         " Communicationarea for view
 VBDKR,                         " Headerview
 *VBDKR,                         " ÔÞßÞÛÝØâÕÛìÝëÕ ßÞÛï ÔÛï ÐÔàÕáÞÒ
 *addr1_val,
 addr1_val,
 VBDPR,                         " Itemview
 VBDRE,                         " ESRview
 CONF_OUT,                      " Configuration data
 EIPO,           " ²ÝÕèÝïï âÞàÓÞÒÛï: íÚáß/ØÜß: ÔÐÝÝëÕ ßÞ×ØæØØ
 SADR,                          "Addresses
 TVKO,                          "Sales organisation
 ADRS,                          "Communicationarea for Address
 T005,
 T012,                          " cÞÑáâÒÕÝÝëÙ ÑÐÝÚ
 T012K,                         " áçÕâ Ò áÞÑáâÒÕÝÝÞÜ ÑÐÝÚÕ
 T001,
 T001Z,
 T001G,                         "Company adress
 T005T,
 T007K,
 THEAD,
 SPELL.
 INCLUDE RVADTABL.
 
 * - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
 DATA: ACCDOC_GJAHR LIKE BKPF-GJAHR.
 DATA: RETCODE   LIKE SY-SUBRC.         "Returncode
 DATA: REPEAT(1) TYPE C.
 DATA: XSCREEN(1) TYPE C.               "Output on printer or screen
 DATA: XVBELN LIKE VBRK-VBELN.
 DATA: XPOSNR LIKE VBRL-POSNR.
 DATA: ITSUM LIKE KOMVD-KBETR,
 SAVE_KURSF like komk-kurrf,
 curtext like tcurt-ktext.
 DATA: ZNPR LIKE KOMVD-STUNR VALUE 0.   " ãàÞÒÕÝì æÕÝë
 *data: znvat like komvd-stunr value 0.  " ãàÞÒÕÝì ½´Á
 DATA: ZNNDF LIKE KOMVD-STUNR VALUE 0.  " ãàÞÒÕÝì ½³Á¼
 DATA: ZNTOTAL LIKE KOMVD-STUNR VALUE 0." ãàÞÒÕÝì ²áÕÓÞ á ½´Á
 *DATA: ZNEX LIKE KOMVD-STUNR VALUE 0.   " ãàÞÒÕÝì ÐÚæØ×Ð
 DATA: SEL LIKE ADDR1_SEL,
 SPELLN LIKE SPELL.
 DATA: S_PRICE LIKE KOMVD-KWERT VALUE 0." áãÜÜÐ áãÜÜÜ
 DATA: S_EXC LIKE KOMVD-KWERT VALUE 0.  " áãÜÜÐ ÐÚæØ×Ð
 DATA: S_VAT LIKE KOMVD-KWERT VALUE 0.  " áãÜÜÐ ÝÔá
 DATA: SS_VAT LIKE KOMVD-KWERT VALUE 0. " áãÜÜÐ ÒáÕÓÞ á ÝÔá
 DATA: S_NDF LIKE KOMVD-KWERT VALUE 0.  " áãÜÜÐ ½³Á¼
 DATA: S_NSP LIKE KOMVD-KWERT VALUE 0.  " áãÜÜÐ ½áß
 DATA: S_TOTAL LIKE KOMVD-KWERT VALUE 0." áãÜÜÐ ÒáÕÓÞ
 DATA: ADDRNUMBER LIKE SEL-ADDRNUMBER.
 DATA: BEGIN OF TVBDPR OCCURS 100.      "Internal table for items
 INCLUDE STRUCTURE VBDPR.
 DATA: END OF TVBDPR.
 
 DATA: BEGIN OF TKOMV OCCURS 50.
 INCLUDE STRUCTURE KOMV.
 DATA: END OF TKOMV.
 
 DATA: BEGIN OF TKOMVD OCCURS 50.
 INCLUDE STRUCTURE KOMVD.
 DATA: END OF TKOMVD.
 
 DATA: BEGIN OF *TKOMVD OCCURS 50.
 INCLUDE STRUCTURE KOMVD.
 DATA: END OF *TKOMVD.
 
 DATA: BEGIN OF HKOMV OCCURS 50.
 INCLUDE STRUCTURE KOMV.
 DATA: END OF HKOMV.
 
 DATA: BEGIN OF HKOMVD OCCURS 50.
 INCLUDE STRUCTURE KOMVD.
 DATA: END OF HKOMVD.
 
 DATA: BEGIN OF TKOMCON OCCURS 50.
 INCLUDE STRUCTURE CONF_OUT.
 DATA: END   OF TKOMCON.
 *-* 14.06.01
 TYPES: BEGIN OF TVATS,
 ZNVAT LIKE KOMVD-STUNR,  " ãàÞÒÕÝì ½´Á
 END   OF TVATS.
 DATA: TBVAT TYPE TVATS OCCURS 10 WITH HEADER LINE.
 DATA: TBNEX TYPE TVATS OCCURS 10 WITH HEADER LINE.
 DATA: BEGIN OF LINE OCCURS 0.          "ÁâàÞÚØ âÕÚáâÞÒ
 INCLUDE STRUCTURE TLINE.
 DATA: END OF LINE.
 DATA: ZVNAME LIKE THEAD-TDNAME.
 DATA: ZVID LIKE THEAD-TDID,
 svid like t001z-paval,
 ksvid like kna1-stcd3.
 DATA: NUM_LINE TYPE I, BEZNDS(1) TYPE C.
 *-* 14.06.01
 
 * - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
 
 DATA: PR_KAPPL(01)   TYPE C VALUE 'V'. "Application for pricing
 
 DATA: PRINT_MWSKZ.                     "Mehrwertsteuer-Kz drucken
 DATA: OWNBANK_BANKN  LIKE  T012K-BANKN,
 OWNBANK_BKONT  LIKE  T012K-BKONT,
 CL_BANKL  LIKE   KNBK-BANKL,
 CL_BANKN  LIKE   KNBK-BANKN,
 CL_BKONT  LIKE   KNBK-BKONT,
 CL_BANKA  LIKE   BNKA-BANKA,
 LAND_TEXT  LIKE   T005T-LANDX,
 REGIO_TEXT LIKE   T005U-BEZEI.
 data: addr_knag like addr1_val,
 addr_knwe like addr1_val.
 
 *DATA: G6(13) TYPE N, G1(13) TYPE C, G7(3) TYPE N,    "08.06.2001
 data: g6 type c, g1(13) type c, g7(3) type n,    "20.11.2002
 G2(3) TYPE C, G3(3) TYPE C, G4(3) TYPE C, G5(3) TYPE C,
 G11(3) TYPE C, G_ALANX(15), G_EXDAA(22), PR TYPE I,
 tx_it1(36), fkimg type p decimals 3.
 * - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
 
 FORM ENTRY USING RETURN_CODE US_SCREEN.
 
 CLEAR RETCODE.
 XSCREEN = US_SCREEN.
 PERFORM PROCESSING USING US_SCREEN.
 CASE RETCODE.
 WHEN 0.
 RETURN_CODE = 0.
 WHEN 3.
 RETURN_CODE = 3.
 WHEN OTHERS.
 RETURN_CODE = 1.
 ENDCASE.
 
 ENDFORM.
 
 *---------------------------------------------------------------------*
 *       FORM ENTRY_ESR                                                *
 *---------------------------------------------------------------------*
 *                                                                     *
 *---------------------------------------------------------------------*
 *                                                                     *
 *---------------------------------------------------------------------*
 FORM ENTRY_ESR USING RETURN_CODE US_SCREEN.
 
 CLEAR RETCODE.
 XSCREEN = US_SCREEN.
 PERFORM PROCESSING_ESR USING US_SCREEN.
 CASE RETCODE.
 WHEN 0.
 RETURN_CODE = 0.
 WHEN 3.
 RETURN_CODE = 3.
 WHEN OTHERS.
 RETURN_CODE = 1.
 ENDCASE.
 
 ENDFORM.
 *---------------------------------------------------------------------*
 *       FORM PROCESSING                                               *
 *---------------------------------------------------------------------*
 *       ........                                                      *
 *---------------------------------------------------------------------*
 *  -->  PROC_SCREEN                                                   *
 *---------------------------------------------------------------------*
 FORM PROCESSING USING PROC_SCREEN.
 CLEAR TX_IT1.
 PERFORM GET_DATA.
 IF VBDKR-UVALL NE SPACE OR VBDKR-UVALS NE SPACE OR
 VBDKR-UVPRS NE SPACE.
 IF PROC_SCREEN = SPACE.
 RETCODE = 3.
 IF VBDKR-UVALL NE SPACE OR VBDKR-UVALS NE SPACE.
 SYST-MSGNO = '201'.
 SYST-MSGID = 'VN'.
 SYST-MSGTY = 'I'.
 PERFORM PROTOCOL_UPDATE.
 ENDIF.
 IF VBDKR-UVPRS NE SPACE.
 SYST-MSGNO = '200'.
 SYST-MSGID = 'VN'.
 SYST-MSGTY = 'I'.
 PERFORM PROTOCOL_UPDATE.
 ENDIF.
 ELSE.
 IF VBDKR-UVALL NE SPACE OR VBDKR-UVALS NE SPACE.
 MESSAGE I201.
 ENDIF.
 IF VBDKR-UVPRS NE SPACE.
 MESSAGE I200.
 ENDIF.
 ENDIF.
 ENDIF.
 CHECK RETCODE = 0.
 *************
 ZVNAME = VBDKR-VBELN.                "½ÞÜÕà áçÕâ-äÐÚâãàë
 DO 2 TIMES.                          "¾ßàÕÔÕÛØ ÝÞÜÕà âÕÚáâÐ
 CASE SY-INDEX.
 WHEN 1. ZVID = '0013'.           "¿Þ ÔÞÚãÜÕÝâã ð
 WHEN 2. ZVID = '0014'.           "´ÐâÐ ÔÞÚãÜÕÝâÐ (Þâ)
 ENDCASE.
 CLEAR LINE. REFRESH LINE.
 CALL FUNCTION 'READ_TEXT'          "ÇØâÐÕÜ âÕÚáâ Ò áçÕâ-äÐÚâãàÕ
 EXPORTING
 ID         =  ZVID
 LANGUAGE   = NAST-SPRAS "'R'
 NAME       =  ZVNAME
 OBJECT     = 'VBBK'
 IMPORTING
 HEADER     = THEAD
 TABLES
 LINES      = LINE
 EXCEPTIONS OTHERS = 8.
 DESCRIBE TABLE LINE LINES NUM_LINE."¿àÞÒÕàì áÞÔÕàÖØÜÞÕ áâàÞÚØ
 IF NUM_LINE > 0.
 READ TABLE LINE INDEX 1.
 IF LINE-TDLINE <> SPACE.         "¾ßàÕÔÕÛÕÝØÕ ßÕàÕÜÕÝÝëå
 CASE SY-INDEX.                 "ÔÛï ÒëÒÞÔÐ :
 WHEN 1. SY-TVAR1 = LINE-TDLINE.     "¿Þ ÔÞÚãÜÕÝâã ð
 WHEN 2. SY-TVAR2 = LINE-TDLINE.     "´ÐâÐ ÔÞÚãÜÕÝâÐ (Þâ)
 ENDCASE.
 ENDIF.
 ENDIF.
 ENDDO.                               """""
 
 PERFORM FORM_OPEN USING PROC_SCREEN VBDKR-LAND1.
 CHECK RETCODE = 0.
 PERFORM PRICE_N.              " ÝÞÜÕà ãàÞÒÝï Ò áåÕÜÕ ÚÐÛìÚãÛïæØØ
 CHECK RETCODE = 0.
 PERFORM PRINT_RU.                    " ×ÐÓÞÛÞÒÞÚ àãááÚÞÙ äÐÚâãàë
 CHECK RETCODE = 0.
 PERFORM ITEM_PRINT.
 CHECK RETCODE = 0.
 PERFORM END_PRINT.
 CHECK RETCODE = 0.
 PERFORM FORM_CLOSE.
 CHECK RETCODE = 0.
 
 ENDFORM.
 
 *---------------------------------------------------------------------*
 *       FORM PROCESSING_ESR                                           *
 *---------------------------------------------------------------------*
 *       ........                                                      *
 *---------------------------------------------------------------------*
 *  -->  PROC_SCREEN                                                   *
 *---------------------------------------------------------------------*
 FORM PROCESSING_ESR USING PROC_SCREEN.
 
 PERFORM GET_DATA.
 PERFORM GET_DATA_ESR.
 CHECK RETCODE = 0.
 PERFORM FORM_OPEN USING PROC_SCREEN VBDKR-LAND1.
 CHECK RETCODE = 0.
 PERFORM START_FORM.
 CHECK RETCODE = 0.
 PERFORM PRICE_N.              " ÝÞÜÕà ãàÞÒÝï Ò áåÕÜÕ ÚÐÛìÚãÛïæØØ
 CHECK RETCODE = 0.
 PERFORM PRINT_RU.                    " ×ÐÓÞÛÞÒÞÚ àãááÚÞÙ äÐÚâãàë
 CHECK RETCODE = 0.
 PERFORM ITEM_PRINT.
 CHECK RETCODE = 0.
 PERFORM END_PRINT.
 CHECK RETCODE = 0.
 PERFORM FORM_CLOSE.
 CHECK RETCODE = 0.
 
 ENDFORM.
 
 
 ***********************************************************************
 *       S U B R O U T I N E S                                         *
 ***********************************************************************
 *---------------------------------------------------------------------*
 *       FORM CHECK_REPEAT                                             *
 *---------------------------------------------------------------------*
 *       A text is printed, if it is a repeat print for the document.  *
 *---------------------------------------------------------------------*
 
 FORM CHECK_REPEAT.
 
 CLEAR REPEAT.
 SELECT * INTO *NAST FROM NAST WHERE KAPPL = NAST-KAPPL
 AND   OBJKY = NAST-OBJKY
 AND   KSCHL = NAST-KSCHL
 AND   SPRAS = NAST-SPRAS
 AND   PARNR = NAST-PARNR
 AND   PARVW = NAST-PARVW
 AND   NACHA BETWEEN '1' AND '4'.
 CHECK *NAST-VSTAT = '1'.
 REPEAT = 'X'.
 EXIT.
 ENDSELECT.
 
 ENDFORM.
 
 
 *---------------------------------------------------------------------*
 *       FORM END_PRINT                                                *
 *---------------------------------------------------------------------*
 *                                                                     *
 *---------------------------------------------------------------------*
 
 FORM END_PRINT.
 *áãÜÜÐàÝÐï áâàÞÚÐ
 * call function 'CONTROL_FORM'
 *      exporting
 *           command = 'PROTECT'.
 
 *    IF VBDKR-LAND1 = 'KZ' and komk-hwaer ne komk-waerk.
 *      S_PRICE = S_PRICE * komk-kurrf.
 *      S_EXC   = S_EXC * komk-kurrf.
 *      S_VAT   = S_VAT * komk-kurrf.
 *      S_NSP   = S_NSP * komk-kurrf.
 *      S_TOTAL = S_TOTAL * komk-kurrf.
 *    ENDIF.
 
 * ²áÕÓÞ Ú ÞßÛÐâÕ
 *KOMP-KZWI1 = S_PRICE.  "net sum
 *KOMP-KZWI2 = S_EXC.    "excise sum
 *KOMP-KZWI3 = S_VAT.    "vat sum
 *KOMP-KZWI6 = S_NSP.    "nsp sum
 *KOMP-KZWI5 = SS_VAT.   "S_TOTAL total sum
 *KOMP-BONBA = S_TOTAL.  "total sum
 *  KOMP-BONBA = KOMP-KZWI4 + *KOMP-KZWI4.
 ************* 20.11.02
 IF VBDPR-SHKZG EQ 'X' OR VBDPR-SHKZG EQ 'B'.
 *KOMP-KZWI1 = - *KOMP-KZWI1.
 *KOMP-KZWI2 = - *KOMP-KZWI2.
 *KOMP-KZWI3 = - *KOMP-KZWI3.
 *KOMP-KZWI6 = - *KOMP-KZWI6.
 *KOMP-KZWI5 = - *KOMP-KZWI5.
 *KOMP-BONBA = - *KOMP-BONBA.
 ENDIF.
 ************* 20.11.02
 
 CLEAR G1. G1 = *KOMP-KZWI6.      "08.06.2001
 CLEAR G11.
 IF *KOMP-KZWI3 IS INITIAL AND BEZNDS = '-'.
 G11 = '--'.
 ENDIF.
 CALL FUNCTION 'WRITE_FORM'
 EXPORTING
 ELEMENT = 'SUM_LINE'.      " total sums
 
 PERFORM HEADER_PRICE_PRINT.          " header level discounts
 
 IF VBDKR-LAND1 = 'KZ' and komk-hwaer ne komk-waerk.
 
 CALL FUNCTION 'SPELL_AMOUNT'
 EXPORTING
 AMOUNT    = *KOMP-KZWI5
 CURRENCY  = komk-waerk     "Invoice currency
 FILLER    = ' '
 LANGUAGE  = NAST-SPRAS
 IMPORTING
 IN_WORDS  = SPELL
 EXCEPTIONS
 NOT_FOUND = 1
 TOO_LARGE = 2
 OTHERS    = 3.
 
 *KOMP-KZWI1   = *KOMP-KZWI1 * komk-kurrf.
 *KOMP-KZWI3   = *KOMP-KZWI3 * komk-kurrf.
 *KOMP-KZWI5   = *KOMP-KZWI5 * komk-kurrf.
 SAVE_KURSF = komk-kurrf.
 
 curtext = tcurt-ktext.
 
 CALL FUNCTION 'WRITE_FORM'
 EXPORTING
 ELEMENT = 'SUM_KURF'.      "total sum
 ENDIF.
 
 CALL FUNCTION 'SPELL_AMOUNT'
 EXPORTING
 AMOUNT    = *KOMP-KZWI5
 CURRENCY  = komk-hwaer     "Domestic currency
 FILLER    = ' '
 LANGUAGE  = NAST-SPRAS
 IMPORTING
 IN_WORDS  = SPELL
 EXCEPTIONS
 NOT_FOUND = 1
 TOO_LARGE = 2
 OTHERS    = 3.
 
 CALL FUNCTION 'SPELL_AMOUNT'
 EXPORTING
 AMOUNT    = *KOMP-KZWI3
 CURRENCY  = komk-hwaer     "Domestic currency
 FILLER    = ' '
 LANGUAGE  = NAST-SPRAS
 IMPORTING
 IN_WORDS  = SPELLN
 EXCEPTIONS
 NOT_FOUND = 1
 TOO_LARGE = 2
 OTHERS    = 3.
 
 CALL FUNCTION 'WRITE_FORM'
 EXPORTING
 ELEMENT = 'FOOT'.          " foot
 
 CALL FUNCTION 'CONTROL_FORM'
 EXPORTING
 COMMAND = 'ENDPROTECT'.
 
 IF SY-SUBRC NE 0.
 PERFORM PROTOCOL_UPDATE.
 ENDIF.
 
 ENDFORM.
 
 *---------------------------------------------------------------------*
 *       FORM FORM_CLOSE                                               *
 *---------------------------------------------------------------------*
 *       End of printing the form                                      *
 *---------------------------------------------------------------------*
 
 FORM FORM_CLOSE.
 
 CALL FUNCTION 'CLOSE_FORM'
 EXCEPTIONS
 OTHERS = 1.
 IF SY-SUBRC NE 0.
 RETCODE = SY-SUBRC.
 PERFORM PROTOCOL_UPDATE.
 ENDIF.
 SET COUNTRY SPACE.
 
 ENDFORM.
 
 *---------------------------------------------------------------------*
 *       FORM FORM_OPEN                                                *
 *---------------------------------------------------------------------*
 *       Start of printing the form                                    *
 *---------------------------------------------------------------------*
 *  -->  US_SCREEN  Output on screen                                   *
 *                  ' ' = Printer                                      *
 *                  'X' = Screen                                       *
 *  -->  US_COUNTRY County for telecommunication and SET COUNTRY       *
 *---------------------------------------------------------------------*
 
 FORM FORM_OPEN USING US_SCREEN US_COUNTRY.
 
 INCLUDE RVADOPFO.
 
 ENDFORM.
 
 *---------------------------------------------------------------------*
 *       FORM GET_DATA                                                 *
 *---------------------------------------------------------------------*
 *       General provision of data for the form                        *
 *---------------------------------------------------------------------*
 
 FORM GET_DATA.
 
 
 CALL FUNCTION 'RV_PRICE_PRINT_REFRESH'
 TABLES
 TKOMV = TKOMV.
 CLEAR KOMK.
 CLEAR KOMP.
 
 IF NAST-OBJKY+10(6) NE SPACE.
 VBCO3-VBELN = NAST-OBJKY+16(10).
 ELSE.
 VBCO3-VBELN = NAST-OBJKY.
 ENDIF.
 
 VBCO3-MANDT = SY-MANDT.
 VBCO3-SPRAS = NAST-SPRAS.
 VBCO3-KUNDE = NAST-PARNR.
 VBCO3-PARVW = NAST-PARVW.
 
 CALL FUNCTION 'RV_BILLING_PRINT_VIEW'
 EXPORTING
 COMWA = VBCO3
 IMPORTING
 KOPF  = VBDKR
 TABLES
 POS   = TVBDPR.
 PERFORM CHECK_REPEAT.
 PERFORM GET_HEADER_PRICES.
 
 ENDFORM.
 
 *---------------------------------------------------------------------*
 *       FORM GET_ITEM_PRICES                                          *
 *---------------------------------------------------------------------*
 *       In this routine the price data for the item is fetched from   *
 *       the database.                                                 *
 *---------------------------------------------------------------------*
 
 FORM GET_ITEM_PRICES.
 
 CLEAR: KOMP,
 TKOMV.
 
 IF KOMK-KNUMV NE VBDKR-KNUMV.
 CLEAR KOMK.
 KOMK-MANDT = SY-MANDT.
 KOMK-KALSM = VBDKR-KALSM.
 KOMK-FKART = VBDKR-FKART.
 KOMK-KAPPL = PR_KAPPL.
 IF VBDKR-KAPPL NE SPACE.
 KOMK-KAPPL = VBDKR-KAPPL.
 ENDIF.
 KOMK-WAERK = VBDKR-WAERK.
 KOMK-KNUMV = VBDKR-KNUMV.
 KOMK-VBTYP = VBDKR-VBTYP.
 ENDIF.
 KOMP-KPOSN = VBDPR-POSNR.
 
 CALL FUNCTION 'RV_PRICE_PRINT_ITEM'
 EXPORTING
 COMM_HEAD_I = KOMK
 COMM_ITEM_I = KOMP
 LANGUAGE    = NAST-SPRAS
 IMPORTING
 COMM_HEAD_E = KOMK
 COMM_ITEM_E = KOMP
 TABLES
 TKOMV       = TKOMV
 TKOMVD      = TKOMVD.
 
 ENDFORM.
 
 *---------------------------------------------------------------------*
 *       FORM GET_HEADER_PRICES                                        *
 *---------------------------------------------------------------------*
 *       In this routine the price data for the header is fetched from *
 *       the database.                                                 *
 *---------------------------------------------------------------------*
 
 FORM GET_HEADER_PRICES.
 
 IF KOMK-KNUMV NE VBDKR-KNUMV.
 CLEAR KOMK.
 KOMK-MANDT = SY-MANDT.
 KOMK-KALSM = VBDKR-KALSM.
 KOMK-FKART = VBDKR-FKART.
 KOMK-KAPPL = PR_KAPPL.
 IF VBDKR-KAPPL NE SPACE.
 KOMK-KAPPL = VBDKR-KAPPL.
 ENDIF.
 KOMK-WAERK = VBDKR-WAERK.
 KOMK-KNUMV = VBDKR-KNUMV.
 KOMK-VBTYP = VBDKR-VBTYP.
 KOMK-KNUMA = VBDKR-KNUMA.
 ENDIF.
 CALL FUNCTION 'RV_PRICE_PRINT_HEAD'
 EXPORTING
 COMM_HEAD_I = KOMK
 LANGUAGE    = NAST-SPRAS
 IMPORTING
 COMM_HEAD_E = KOMK
 COMM_MWSKZ  = PRINT_MWSKZ
 TABLES
 TKOMV       = TKOMV
 TKOMVD      = HKOMVD.
 
 ENDFORM.
 
 *---------------------------------------------------------------------*
 *       FORM HEADER_PRICE_PRINT                                       *
 *---------------------------------------------------------------------*
 *       Printout of the header prices                                 *
 *---------------------------------------------------------------------*
 
 FORM HEADER_PRICE_PRINT.
 
 LOOP AT HKOMVD.
 
 KOMVD = HKOMVD.
 IF PRINT_MWSKZ = SPACE.
 CLEAR KOMVD-MWSKZ.
 ENDIF.
 * ÔÕçÐâì ãáÛÞÒØÙ ÝÐ ãàÞÒÝÕ ×ÐÓÞÛÞÒÚÐ
 IF KOMVD-STUNR > 930 AND KOMVD-KWERT > 0.
 *      IF VBDKR-LAND1 = 'KZ' and komk-hwaer ne komk-waerk.
 *        KOMVD-KWERT = KOMVD-KWERT * komk-kurrf.
 *      ENDIF.
 CALL FUNCTION 'WRITE_FORM'
 EXPORTING
 ELEMENT = 'ITEM_LINE_PRICE_TEXT'.
 ENDIF.
 
 ENDLOOP.
 
 DESCRIBE TABLE HKOMVD LINES SY-TFILL.
 
 ENDFORM.
 
 *---------------------------------------------------------------------*
 *       FORM ITEM_PRICE_PRINT                                         *
 *---------------------------------------------------------------------*
 *       Printout of the item prices                                   *
 *---------------------------------------------------------------------*
 
 FORM ITEM_PRICE_PRINT.
 
 *°ÚæØ×
 LOOP AT TBNEX.
 LOOP AT TKOMVD.
 IF TKOMVD-KPOSN EQ TVBDPR-POSNR AND TKOMVD-STUNR EQ TBNEX-ZNVAT.
 *KOMP-KZWI2 = TKOMVD-KBETR.
 
 ENDIF.
 ENDLOOP.
 ENDLOOP.
 
 LOOP AT TBVAT.  " 14.06.01.
 PR = 0.   " 14.06.01.
 LOOP AT TKOMVD.
 KOMVD = TKOMVD.
 
 *½´Á
 IF TKOMVD-KPOSN EQ TVBDPR-POSNR AND TKOMVD-STUNR EQ TBVAT-ZNVAT.
 *       *KOMP-KZWI5 = KOMVD-KBETR.
 SY-TVAR0 = KOMVD-KBETR.
 *KOMP-BONBA = KOMP-KZWI3 + KOMVD-KWERT.    "²áÕÓÞ á ÝÔá
 SS_VAT = SS_VAT + *KOMP-BONBA.
 PR = 1.   " 14.06.01.
 ENDIF.
 
 ENDLOOP.
 IF PR = 1.  " 14.06.01.
 EXIT.
 ENDIF.
 ENDLOOP.   " 14.06.01.
 IF PR IS INITIAL.  "31.01.02
 *KOMP-BONBA = KOMP-KZWI3.
 SS_VAT = SS_VAT + *KOMP-BONBA.
 MESSAGE ID '9P' TYPE 'I' NUMBER '220' WITH VBDPR-POSNR VBDKR-BELNR.
 ENDIF.
 * âÕÚáâ Ú µ¸
 SELECT SINGLE * FROM T006A
 WHERE MSEHI EQ VBDPR-VRKME AND SPRAS EQ NAST-SPRAS . "'R'
 VBDPR-VRKME = T006A-MSEH3.
 ******* 18.09.01 ±Õ× ½´Á
 SELECT SINGLE * FROM T007K
 WHERE LAND1 = VBDKR-LAND1
 AND VERSION = 'PAY'
 AND   MWSKZ = KOMVD-MWSKZ.
 IF SY-SUBRC EQ 0.
 BEZNDS = '-'.
 ELSE.
 BEZNDS = '%'.
 ENDIF.
 ******* 18.09.01 ±Õ× ½´Á
 ************* 20.11.02
 FKIMG = VBDPR-FKIMG.
 IF VBDPR-SHKZG EQ 'X' OR VBDPR-SHKZG EQ 'B'.
 KOMP-KZWI3  = -  KOMP-KZWI3.
 KOMP-KZWI1  = -  KOMP-KZWI1.
 KOMP-KZWI5  = -  KOMP-KZWI5.
 KOMP-KZWI6  = -  KOMP-KZWI6.
 KOMP-KZWI4  = -  KOMP-KZWI4.
 *KOMP-BONBA = - *KOMP-BONBA.
 FKIMG = - FKIMG.
 ENDIF.
 ************* 20.11.02
 
 CLEAR G6.
 if komp-kzwi1 is initial. g6 = '-'. endif.  "20.11.2002
 *          g6 = komp-kzwi1.      "08.06.2001
 CLEAR G7. G7 = SY-TVAR0+12(3).  "08.06.2001
 CLEAR G2.
 IF VBDPR-VRKME IS INITIAL.     "08.06.2001
 G2 = '--'.
 ELSE.
 G2 = VBDPR-VRKME.
 ENDIF.
 CLEAR G3.
 IF VBDPR-FKIMG IS INITIAL.     "06.12.2001
 G3 = '-'.
 ENDIF.
 CLEAR G4. CLEAR G5.                       "06.12.01
 IF *KOMP-KZWI1 IS INITIAL.
 G4 = '-'.
 ENDIF.
 IF KOMP-KZWI3 IS INITIAL.
 G5 = '-'.
 ENDIF.
 CLEAR G_ALANX. CLEAR G_EXDAA.
 IF NOT VBDKR-ALANX IS INITIAL.
 G_ALANX = VBDKR-ALANX.
 ELSE.
 G_ALANX = '--'.
 ENDIF.
 IF NOT VBDKR-EXDAA IS INITIAL.
 G_EXDAA = VBDKR-EXDAA.
 ELSE.
 G_EXDAA = '   -----------------'.
 ENDIF.
 *-* 08.06.01
 
 CALL FUNCTION 'WRITE_FORM'
 EXPORTING
 ELEMENT = 'ITEM_LINE_PRICE_QUANTITY'.
 
 
 ENDFORM.
 
 *---------------------------------------------------------------------*
 *       FORM ITEM_PRINT                                               *
 *---------------------------------------------------------------------*
 *       Printout of the items                                         *
 *---------------------------------------------------------------------*
 
 FORM ITEM_PRINT.
 DATA LIN TYPE I.
 S_PRICE = 0.
 S_EXC = 0.
 S_VAT = 0.
 SS_VAT = 0.
 S_TOTAL = 0.
 CLEAR LIN.
 
 DESCRIBE TABLE TVBDPR LINES LIN.
 * ¿ÕçÐâì ßÞ×ØæØØ
 LOOP AT TVBDPR.
 IF LIN EQ SY-TABIX.
 CALL FUNCTION 'CONTROL_FORM'
 EXPORTING
 COMMAND = 'PROTECT'.
 ENDIF.
 VBDPR = TVBDPR.
 IF VBDKR-LAND1 = 'RU' OR VBDKR-LAND1 = 'KZ'.
 PERFORM GET_ITEM_IMPORTDATA.
 ENDIF.
 
 PERFORM GET_ITEM_PRICES.
 
 S_PRICE = S_PRICE + KOMP-KZWI3.
 S_EXC = S_EXC + KOMP-KZWI1.
 S_VAT = S_VAT + KOMP-KZWI5.
 S_NSP = S_NSP + KOMP-KZWI6.
 S_TOTAL = S_TOTAL + KOMP-KZWI4.
 clear SY-TVAR0.
 *    IF VBDKR-LAND1 = 'KZ' and komk-hwaer ne komk-waerk.
 *      KOMP-KZWI1 = KOMP-KZWI1 * komk-kurrf.
 *      KOMP-KZWI3 = KOMP-KZWI3 * komk-kurrf.
 *      KOMP-KZWI4 = KOMP-KZWI4 * komk-kurrf.
 *      KOMP-KZWI5 = KOMP-KZWI5 * komk-kurrf.
 *      KOMP-KZWI6 = KOMP-KZWI6 * komk-kurrf.
 *    ENDIF.
 
 *    CALL FUNCTION 'WRITE_FORM'
 *         EXPORTING
 *              ELEMENT = 'ITEM_LINE'.
 
 * ÆÕÝÐ Ø æÕÝÐ ×Ð ßàÞÔÐÖÝãî ÕÔØÝØæã
 *KOMP-KZWI1 = KOMP-KZWI3 /  VBDPR-FKIMG .
 
 PERFORM ITEM_PRICE_PRINT.
 ENDLOOP.
 
 IF SY-SUBRC NE 0.
 PERFORM PROTOCOL_UPDATE.
 ENDIF.
 
 ENDFORM.
 
 *---------------------------------------------------------------------*
 *       FORM PROTOCOL_UPDATE                                          *
 *---------------------------------------------------------------------*
 *       The messages are collected for the processing protocol.       *
 *---------------------------------------------------------------------*
 
 FORM PROTOCOL_UPDATE.
 
 CHECK XSCREEN = SPACE.
 CALL FUNCTION 'NAST_PROTOCOL_UPDATE'
 EXPORTING
 MSG_ARBGB = SYST-MSGID
 MSG_NR    = SYST-MSGNO
 MSG_TY    = SYST-MSGTY
 MSG_V1    = SYST-MSGV1
 MSG_V2    = SYST-MSGV2
 MSG_V3    = SYST-MSGV3
 MSG_V4    = SYST-MSGV4
 EXCEPTIONS
 OTHERS    = 1.
 
 ENDFORM.
 
 *&---------------------------------------------------------------------*
 *&      Form  GET_DATA_ESR
 *&---------------------------------------------------------------------*
 *       text                                                           *
 *----------------------------------------------------------------------*
 *  -->  p1        text
 *  <--  p2        text
 *----------------------------------------------------------------------*
 FORM GET_DATA_ESR.
 
 CALL FUNCTION 'SD_ESR_GET_DATA'
 EXPORTING
 VBDKR_BUKRS                   = VBDKR-BUKRS
 VBDKR_VKORG                   = VBDKR-VKORG
 KOMK_FKWRT                    = KOMK-FKWRT
 VBDKR_VBELN                   = VBDKR-VBELN
 VBDKR_KUNRG                   = VBDKR-KUNRG
 VBDKR_WAERK                   = VBDKR-WAERK
 CHANGING
 IVBDRE                        = VBDRE
 EXCEPTIONS
 T049E_NO_ENTRY                = 1
 T001_NO_ENTRY                 = 2
 BNKA_NO_ENTRY                 = 3
 SADR_NO_ENTRY                 = 4
 FKWRT_NOT_VALID               = 5
 ESR_DIGITS_TO_CHECK_NOT_VALID = 6
 ESR_CHECK_METHOD_NOT_VALID    = 7
 OTHERS                        = 8.
 
 IF SY-SUBRC NE 0.
 RETCODE = SY-SUBRC.
 PERFORM PROTOCOL_UPDATE.
 ENDIF.
 
 ENDFORM.                               " GET_DATA_ESR
 *&---------------------------------------------------------------------*
 *&      Form  START_FORM
 *&---------------------------------------------------------------------*
 *       text                                                           *
 *----------------------------------------------------------------------*
 *  -->  p1        text
 *  <--  p2        text
 *----------------------------------------------------------------------*
 FORM START_FORM.
 
 DATA : STARTSEITE(8) TYPE C VALUE 'FIRSTBSR'.
 DATA : SPRACHE LIKE SY-LANGU.
 
 IF VBDRE-VERFA = '04' OR VBDRE-VERFA = '08'.
 
 CALL FUNCTION 'START_FORM'
 EXPORTING
 *             ARCHIVE_INDEX = ' '
 *             FORM          = ' '
 *             LANGUAGE      = ' '
 STARTPAGE     = STARTSEITE
 *             PROGRAM       = ' '
 IMPORTING
 LANGUAGE      = SPRACHE
 EXCEPTIONS
 FORM          = 1
 FORMAT        = 2
 UNENDED       = 3
 UNOPENED      = 4
 UNUSED        = 5
 OTHERS        = 6.
 IF SY-SUBRC NE 0.
 RETCODE = SY-SUBRC.
 PERFORM PROTOCOL_UPDATE.
 ENDIF.
 
 ENDIF.
 
 ENDFORM.                               " START_OPEN
 
 ************************************************************************
 *           form PRINT_RU
 ************************************************************************
 FORM PRINT_RU.
 *********************************************************************
 *        °ÔàÕá ±µ
 *********************************************************************
 * ð FI ÔÞÚãÜÕÝâÐ
 SELECT SINGLE BELNR GJAHR WAERS KURSF HWAER FROM BKPF
 INTO (VBDKR-BELNR, ACCDOC_GJAHR,
 komk-waerk, komk-kurrf, komk-hwaer)
 WHERE awtyp eq 'VBRK'
 and AWKEY EQ VBDKR-VBELN.
 * âÕÚáâ ÒÐÛîâë
 SELECT SINGLE * FROM TCURT
 WHERE WAERS EQ VBDKR-WAERK AND SPRAS EQ NAST-SPRAS. "SY-LANGU.
 *
 SELECT SINGLE ADRNR FROM T001 INTO SEL-ADDRNUMBER
 WHERE BUKRS EQ VBDKR-BUKRS.
 * ÐÔàÕá ±µ
 clear addr1_val.
 sel-nation = 'R'.
 CALL FUNCTION 'ADDR_GET'
 EXPORTING
 ADDRESS_SELECTION = SEL
 IMPORTING
 address_value     = addr1_val
 EXCEPTIONS
 PARAMETER_ERROR   = 1
 ADDRESS_NOT_EXIST = 2
 VERSION_NOT_EXIST = 3
 INTERNAL_ERROR    = 4
 OTHERS            = 5.
 if sy-subrc ne 0.
 clear sel-nation.
 CALL FUNCTION 'ADDR_GET'
 *  CALL FUNCTION 'J_3RF_ADDR_GET'
 EXPORTING
 ADDRESS_SELECTION = SEL
 *            I_BUKRS           = VBDKR-BUKRS
 IMPORTING
 address_value     = addr1_val
 EXCEPTIONS
 PARAMETER_ERROR   = 1
 ADDRESS_NOT_EXIST = 2
 VERSION_NOT_EXIST = 3
 INTERNAL_ERROR    = 4
 OTHERS            = 5.
 endif.
 
 *ADDR1_VAL-NAME1  = ADDR1_VAL-NAME1.
 *ADDR1_VAL-NAME2  = ADDR1_VAL-NAME2.
 *ADDR1_VAL-NAME3  = ADDR1_VAL-NAME3.
 *ADDR1_VAL-POST_CODE1 = ADDR1_VAL-POST_CODE1.   "pstlz.
 *ADDR1_VAL-CITY1 = ADDR1_VAL-CITY1.        "ort01.
 *ADDR1_VAL-CITY2 = ADDR1_VAL-CITY2.        "ort02.
 *ADDR1_VAL-STREET = ADDR1_VAL-STREET.       "stras.
 *ADDR1_VAL-HOUSE_NUM1 = ADDR1_VAL-HOUSE_NUM1.  "
 *ADDR1_VAL-TEL_NUMBER = ADDR1_VAL-TEL_NUMBER.   "telf1.
 * ¸½½, ¾º¿¾, ¾º¾½Å ¿ÞáâÐÒéØÚÐ
 IF VBDKR-LAND1 = 'RU'.
 select  single paval from t001z into *vbdkr-stceg
 WHERE BUKRS EQ VBDKR-BUKRS AND PARTY EQ 'SAPR01'.
 select  single paval from t001z into *vbdkr-stceg_t001
 WHERE BUKRS EQ VBDKR-BUKRS AND PARTY EQ 'SAPR10'.
 ELSEIF VBDKR-LAND1 = 'KZ'.
 SELECT  SINGLE PAVAL FROM T001Z INTO *VBDKR-STCEG_T001
 WHERE BUKRS EQ VBDKR-BUKRS AND PARTY EQ 'SAPKZ1'.
 select  single paval from t001z into svid
 where bukrs eq vbdkr-bukrs and party eq 'SAPK31'.
 * bank data definition
 PERFORM READ_OWNBANKDATA_KZ.
 PERFORM READ_CLIENTBANKDATA_KZ.
 ENDIF.
 ********************************
 ADDRNUMBER = SEL-ADDRNUMBER.
 IF VBDKR-LAND1 = 'RU'.
 CLEAR SEL. clear addr1_val.   "CLEAR SADR.
 ENDIF.
 * °ÔàÕá ×ÐÒÞÔÐ  (Óàã×ÞÞâßàÐÒØâÕÛï)
 SELECT SINGLE B~ADRNR  INTO SEL-ADDRNUMBER
 FROM       VBRP    AS     A
 INNER JOIN T001W   AS     B
 ON  A~MANDT  = B~MANDT
 AND A~WERKS  = B~WERKS
 WHERE A~VBELN EQ VBDKR-VBELN.
 *  IF NOT SEL-ADDRNUMBER IS INITIAL OR SEL-ADDRNUMBER EQ ADDRNUMBER.
 IF NOT SEL-ADDRNUMBER IS INITIAL and SEL-ADDRNUMBER ne ADDRNUMBER.
 clear addr1_val.
 sel-nation = 'R'.
 CALL FUNCTION 'ADDR_GET'
 EXPORTING
 ADDRESS_SELECTION = SEL
 IMPORTING
 address_value     = addr1_val
 EXCEPTIONS
 PARAMETER_ERROR   = 1
 ADDRESS_NOT_EXIST = 2
 VERSION_NOT_EXIST = 3
 INTERNAL_ERROR    = 4
 OTHERS            = 5.
 if sy-subrc ne 0.
 clear sel-nation.
 CALL FUNCTION 'ADDR_GET'
 *    CALL FUNCTION 'J_3RF_ADDR_GET'
 EXPORTING
 ADDRESS_SELECTION = SEL
 *              I_BUKRS           = VBDKR-BUKRS
 IMPORTING
 address_value     = addr1_val
 EXCEPTIONS
 PARAMETER_ERROR   = 1
 ADDRESS_NOT_EXIST = 2
 VERSION_NOT_EXIST = 3
 INTERNAL_ERROR    = 4
 OTHERS            = 5.
 endif.
 ENDIF.
 
 * ÂÕÛÕäÞÝ Ø ¸½½ ßÞÚãßÐâÕÛï
 select single adrnr stcd1 stcd3 from kna1 into
 (sel-addrnumber, vbdkr-stceg, ksvid)
 WHERE KUNNR EQ VBDKR-KUNAG.
 * buyer address
 clear addr_knag.
 sel-nation = 'R'.
 CALL FUNCTION 'ADDR_GET'
 EXPORTING
 ADDRESS_SELECTION = SEL
 IMPORTING
 address_value     = addr_knag
 EXCEPTIONS
 PARAMETER_ERROR   = 1
 ADDRESS_NOT_EXIST = 2
 VERSION_NOT_EXIST = 3
 INTERNAL_ERROR    = 4
 OTHERS            = 5.
 if sy-subrc ne 0.
 clear sel-nation.
 CALL FUNCTION 'ADDR_GET'
 EXPORTING
 ADDRESS_SELECTION = SEL
 IMPORTING
 address_value     = addr_knag
 EXCEPTIONS
 PARAMETER_ERROR   = 1
 ADDRESS_NOT_EXIST = 2
 VERSION_NOT_EXIST = 3
 INTERNAL_ERROR    = 4
 OTHERS            = 5.
 endif.
 * ship-to party address
 clear addr_knwe.
 sel-addrnumber = vbdkr-adrnr_we.
 sel-nation = 'R'.
 CALL FUNCTION 'ADDR_GET'
 EXPORTING
 ADDRESS_SELECTION = SEL
 IMPORTING
 address_value     = addr_knwe
 EXCEPTIONS
 PARAMETER_ERROR   = 1
 ADDRESS_NOT_EXIST = 2
 VERSION_NOT_EXIST = 3
 INTERNAL_ERROR    = 4
 OTHERS            = 5.
 if sy-subrc ne 0.
 clear sel-nation.
 CALL FUNCTION 'ADDR_GET'
 EXPORTING
 ADDRESS_SELECTION = SEL
 IMPORTING
 address_value     = addr_knwe
 EXCEPTIONS
 PARAMETER_ERROR   = 1
 ADDRESS_NOT_EXIST = 2
 VERSION_NOT_EXIST = 3
 INTERNAL_ERROR    = 4
 OTHERS            = 5.
 endif.
 * ¸½½ Óàã×ÞßÞÛãçÐâÕÛï
 IF VBDKR-LAND1 = 'KZ'.
 SELECT SINGLE STCD1 FROM KNA1 INTO *VBDKR-STCEG
 WHERE KUNNR EQ VBDKR-KUNWE.
 ENDIF.
 IF VBDKR-LAND1_WE = 'KZ'.
 * ¿ãÝÚâ ÝÐ×ÝÐçÕÝØï ßÞáâÐÒÛïÕÜëå âÞÒÐàÞÒ(àÐÑÞâ, ãáÛãÓ)
 SELECT   SINGLE  LANDX FROM  T005T
 INTO LAND_TEXT
 WHERE  SPRAS  = NAST-SPRAS  "SY-LANGU
 AND    LAND1  = VBDKR-LAND1_WE.
 
 SELECT  SINGLE BEZEI FROM  T005U
 INTO REGIO_TEXT
 WHERE  SPRAS  = NAST-SPRAS  "SY-LANGU
 AND    LAND1  = VBDKR-LAND1_WE
 AND    BLAND  = VBDKR-REGIO_WE.
 
 ENDIF.
 ENDFORM.
 ************************************************************************
 * ¾ßàÕÔÕÛïÕâ ÝÞÜÕà ãàÞÒÝï áåÕÜë ÚÐÛìÚãÛïæØØ, Ò ÚÞâÞàÞÜ ãáâÐÝÞÒÛÕÝÐ
 *  áÞÞâÒÕâáâÒãîéÐï ßàÞÜÕÖãâÞçÝÐï áãÜÜÐ
 ************************************************************************
 FORM PRICE_N.
 CLEAR TBVAT. REFRESH TBVAT.  " 14.06.01
 CLEAR TBNEX. REFRESH TBNEX.
 SELECT SINGLE * FROM VBRK
 WHERE VBELN EQ VBDKR-VBELN.
 
 SELECT   * FROM T683S
 WHERE KALSM EQ VBRK-KALSM AND KVEWE EQ 'A' AND  KAPPL   EQ 'V'.
 
 IF T683S-KZWIW EQ '5'.
 TBVAT-ZNVAT = T683S-STUNR.
 APPEND TBVAT.
 ELSEIF T683S-KZWIW EQ '1'.
 TBNEX-ZNVAT = T683S-STUNR.
 APPEND TBNEX.
 ENDIF.
 *WRITE : / VBRK-VBELN, VBRK-KALSM, T683S-STUNR, T683S-ZAEHK,
 ENDSELECT.
 *  ßÕçÐâì èÐßÚØ âÐÑÛØæë
 CALL FUNCTION 'WRITE_FORM'
 EXPORTING
 ELEMENT = 'HEADER_LINE'.
 
 ENDFORM.
 *---------------------------------------------------------------------*
 *      Form  GET_ITEM_IMPORTDATA
 *---------------------------------------------------------------------*
 *  áâàÐÝÐ ßàÞØáåÞÖÔÕÝØï ÜÐâÕàØÐÛÐ, ÝÞÜÕà Óàã×ÞÒÞÙ âÐÜÞÖÕÝÞÙ ÔÕÚÛÐàÐæØØ
 *----------------------------------------------------------------------*
 FORM GET_ITEM_IMPORTDATA.
 SELECT  SINGLE C~HERKL C~VORDA C~VORNU C~TEXT3 D~LANDX
 INTO (VBDKR-HERKL, VBDKR-VORDA, VBDKR-EXDAA, VBDKR-TEXT3, VBDKR-ALANX)
 FROM        VBRK   AS     A
 
 INNER JOIN  EIPO   AS     C
 ON  A~MANDT  = C~MANDT
 AND  A~EXNUM  = C~EXNUM
 
 INNER JOIN   T005T      AS D
 ON       A~MANDT =  D~MANDT
 AND    C~HERKL =  D~LAND1
 WHERE  A~VBELN  = VBDKR-VBELN
 AND    C~EXPOS  = VBDPR-POSNR
 AND    D~SPRAS  =  SY-LANGU . "NAST-SPRAS
 IF VBDKR-EXDAA IS INITIAL.
 VBDKR-EXDAA = VBDKR-TEXT3.
 ENDIF.
 CONDENSE VBDKR-EXDAA NO-GAPS.
 
 IF VBDKR-HERKL = ' '.
 VBDKR-HERKL = 'RU'.
 ENDIF.
 
 ENDFORM.                               " GET_ITEM_IMPORTDATA
 *---------------------------------------------------------------------*
 *      Form  READ_OWNBANKDATA_KZ
 *---------------------------------------------------------------------*
 *     bank definition for Kazakhstan company cod
 *----------------------------------------------------------------------*
 FORM READ_OWNBANKDATA_KZ.
 CLEAR: T012, T012K, BNKA.
 IF  NOT VBDKR-BELNR IS INITIAL.
 SELECT  SINGLE  * FROM  BSEG
 WHERE  BUKRS  = VBDKR-BUKRS
 AND    BELNR  = VBDKR-BELNR
 AND    GJAHR  = ACCDOC_GJAHR
 AND    NOT HBKID = ' ' .
 IF SY-SUBRC = 0.
 SELECT SINGLE * FROM T012
 WHERE  BUKRS       = VBDKR-BUKRS
 AND  HBKID       = BSEG-HBKID.
 *
 SELECT SINGLE * FROM T012K
 WHERE  BUKRS       = T012-BUKRS
 AND    HBKID       = T012-HBKID
 AND    WAERS       = VBDKR-WAERK.
 
 ELSE.
 SELECT  * FROM T012
 WHERE  BUKRS       = VBDKR-BUKRS.
 *
 SELECT SINGLE * FROM T012K
 WHERE  BUKRS       = T012-BUKRS
 AND    HBKID       = T012-HBKID
 AND    WAERS       = VBDKR-WAERK.
 CHECK SY-SUBRC = 0.
 EXIT.
 ENDSELECT.
 * list of banks input
 ENDIF.
 ELSE.
 SELECT  * FROM T012
 WHERE  BUKRS       = VBDKR-BUKRS.
 *
 SELECT SINGLE * FROM T012K
 WHERE  BUKRS       = T012-BUKRS
 AND    HBKID       = T012-HBKID
 AND    WAERS       = VBDKR-WAERK.
 ENDSELECT.
 ENDIF.
 * bank name
 IF NOT T012K-BANKN IS INITIAL.
 MOVE T012K-BANKN TO OWNBANK_BANKN.
 MOVE T012K-BKONT TO OWNBANK_BKONT.
 SELECT  SINGLE * FROM  BNKA
 WHERE  BANKS  = T012-BANKS
 AND    BANKL  = T012-BANKL.
 *banka - bank name
 *BNKA = BNKA.
 ENDIF.
 ENDFORM.                               " READ_OWNBANKDATA_KZ
 *---------------------------------------------------------------------*
 *      Form  READ_CLIENTBANKDATA_KZ
 *---------------------------------------------------------------------*
 *      Bank name definition for client data
 *----------------------------------------------------------------------*
 FORM READ_CLIENTBANKDATA_KZ.
 CLEAR: T012, T012K, BNKA.
 SELECT SINGLE   A~BANKL   A~BANKN   A~BKONT   B~BANKA
 INTO   (CL_BANKL, CL_BANKN, CL_BKONT, CL_BANKA)
 FROM  KNBK   AS     A
 INNER JOIN   BNKA   AS     B
 ON  A~MANDT  =  B~MANDT
 AND  A~BANKS  =  B~BANKS
 AND  A~BANKL  =  B~BANKL
 WHERE  A~KUNNR  =  VBDKR-KUNRG
 AND    A~BANKS  =  VBDKR-LAND1.
 *banka - bank name
 
 
 ENDFORM.                               " READ_CLIENTBANKDATA_KZ
 
 
 
						
							|   |  |