*----------------------------------------------------------------------* * 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
|
|