‎2007 Nov 28 4:24 PM
hi guys.....i have a requirement as below
my output is as per the database
example:
doc: ' tax1 ' tax2 ' tax3..........'taxn
009 ' 1% ' 0 ' 0............'..
009 ' 0 ' 2% ' 0............'...
009 ' 0 ' 0 ' 3%.........'....
the same document number has three different taxes or even more
so the requirement is to print all the taxes in one row for given document number
example:
docno: tax1 tax2 tax3..........taxn
009 1% 2% 3% ............n%
thank you in advance
Vikram.
‎2007 Nov 28 4:43 PM
Hi Vikram,
do like this
data: wa1 like line of wa,
lv_lines type i,
cnt type i.
descibe table itab lines lv_lines.
loop at itab into wa.
cnt = cnt + 1.
if wa-doc = wa1-doc.
delete itab from wa.
modify itab from wa.
endif.
if cnt = lv_lines.
exit.
endif.
wa1 = wa.
endloop.Regards,
Satish
‎2007 Nov 29 5:47 AM
hi satish this the code....if u get more clarity post a message...thank you for the helpful answer.....Vikram
*&---------------------------------------------------------------------*
*& Include ZJ_1ISTAD2
*&---------------------------------------------------------------------*
TABLES : BSET , "Tax data document segment
BKPF , "Accounting document header
bseg,
T001 , "Company Codes
T001W, "plant / branches
T005 , "Countries
T005U, "taxes region key : texts
T007A, "Tax keys
* t007b , "Taxation procedure in accounting
T007S, "Tax Code Names
* mara, "Material Master: General Data
EKBE, "History of Purchasing Document
VBFA, "Sales Document Flow
EKPO,
KNA1,
EKPA, "partner roles in purchasing
EKKO, "Purchasing Document Header
LFA1, "Vendor Master general selections
VBRP,
TVST,
SADR,
VBPA,
LIPS.
DATA : BEGIN OF REC OCCURS 100 ,
YMWSKZ LIKE BSET-MWSKZ , "tax code
YTXJCD LIKE BSET-TXJCD , "tax jurisdiction code
* ytext1 like t007s-text1 , "name of taxes on sales/pur
YEBELN LIKE EKBE-EBELN, "po/so document number
YVBELN LIKE VBRK-VBELN,
YBELNR LIKE BKPF-BELNR , "accounting doc. number
YBUDAT LIKE BKPF-BUDAT ,
YFROM LIKE T005U-BEZEI , "shipped from
YTO LIKE T005U-BEZEI, "shipped to
YHWBAS1 LIKE BSET-HWBAS, "tax base amt in local curr
YRATE1 LIKE BSET-HWSTE,
YHWSTE1 LIKE BSET-HWSTE , "tax amt in local currency
YRATE2 LIKE BSET-HWSTE,
YHWSTE2 LIKE BSET-HWSTE , "tax amt in local currency
YRATE3 LIKE BSET-HWSTE,
YHWSTE3 LIKE BSET-HWSTE, "tax mat in local currency
YRATE4 LIKE BSET-HWSTE,
YHWSTE4 LIKE BSET-HWSTE,
YRATE5 LIKE BSET-HWSTE,
YHWSTE5 LIKE BSET-HWSTE,
YRATE6 LIKE BSET-HWSTE,
YHWSTE6 LIKE BSET-HWSTE,
SEL ,
KBETR LIKE BSET-KBETR,
amount like bset-hwste,
name like lfa1-name1,
excise like BSET-HWSTE,
wrbtr like bseg-wrbtr,
END OF REC .
DATA: BEGIN OF X007A OCCURS 0.
INCLUDE STRUCTURE T007A.
DATA: END OF X007A.
DATA CTR TYPE I .
DATA TLINE TYPE I.
DATA CTR1 TYPE I .
DATA : CURSORFLD(40) , CURSORVAL(10) ,
CURR(3) VALUE 'INR'.
DATA: STXJCD LIKE BSET-TXJCD , "tax jurisdiction code
SFROM LIKE T005U-BEZEI,
STEXT1 LIKE T007S-TEXT1 . "name of taxes on sales/pur
data addr1_val like addr1_val.
data addr1_sel like addr1_sel.
data: s_bseg like bseg.
data: it_bseg type standard table of bseg.
data: s_lfa1 like lfa1.
*data: it_lfa1 type standard table of lfa1.
DATA: s_bset LIKE bset.
DATA: t_bset TYPE STANDARD TABLE OF bset.
DATA: s_bkpf LIKE bkpf.
DATA: t_bkpf TYPE STANDARD TABLE OF bkpf.
data: BEGIN OF REC1 OCCURS 100 ,
YMWSKZ LIKE BSET-MWSKZ , "tax code
YTXJCD LIKE BSET-TXJCD , "tax jurisdiction code
* ytext1 like t007s-text1 , "name of taxes on sales/pur
YEBELN LIKE EKBE-EBELN, "po/so document number
YVBELN LIKE VBRK-VBELN,
YBELNR LIKE BKPF-BELNR , "accounting doc. number
YBUDAT LIKE BKPF-BUDAT ,
YFROM LIKE T005U-BEZEI , "shipped from
YTO LIKE T005U-BEZEI, "shipped to
YHWBAS1 LIKE BSET-HWBAS, "tax base amt in local curr
YRATE1 LIKE BSET-HWSTE,
YHWSTE1 LIKE BSET-HWSTE , "tax amt in local currency
YRATE2 LIKE BSET-HWSTE,
YHWSTE2 LIKE BSET-HWSTE , "tax amt in local currency
YRATE3 LIKE BSET-HWSTE,
YHWSTE3 LIKE BSET-HWSTE, "tax mat in local currency
YRATE4 LIKE BSET-HWSTE,
YHWSTE4 LIKE BSET-HWSTE,
YRATE5 LIKE BSET-HWSTE,
YHWSTE5 LIKE BSET-HWSTE,
YRATE6 LIKE BSET-HWSTE,
YHWSTE6 LIKE BSET-HWSTE,
SEL ,
KBETR LIKE BSET-KBETR,
amount like bset-hwste,
name like lfa1-name1,
excise like BSET-HWSTE,
wrbtr like bseg-wrbtr,
END OF REC1 .
*----------------------------------------------------------------------
*The report lists all the documents liable for Sales/Purchase taxes *
* using the general company information. *
*----------------------------------------------------------------------
REPORT ZJ_1ISTAX2 MESSAGE-ID 8I LINE-SIZE 250 .
*----------------------------------------------------------------------
* Data / Tables *
*----------------------------------------------------------------------
INCLUDE ZJ_1ISTAD2 .
*----------------------------------------------------------------------
* Parameter and Select-Options *
*----------------------------------------------------------------------
* Report Type
*General Data
*SELECTION-SCREEN BEGIN OF BLOCK B2 WITH FRAME TITLE TEXT-002 .
*SELECT-OPTIONS :
* ZMWSKZ FOR BSET-MWSKZ NO-EXTENSION, " tax code
* ZTXJCD FOR BSET-TXJCD NO-EXTENSION. " tax jurisdication
*PARAMETERS:
* ZLST LIKE T685-KSCHL, " LST condition
* ZCST LIKE T685-KSCHL, " CST condition
* ZSETOFF LIKE T685-KSCHL. " Set Off condition
*SELECTION-SCREEN END OF BLOCK B2.
*SELECTION-SCREEN BEGIN OF BLOCK B3 WITH FRAME TITLE TEXT-003 .
*PARAMETERS:
* ZFROM LIKE T005S-BLAND , " Location shipped from
* ZTO LIKE T005S-BLAND. "location shipped to
*SELECTION-SCREEN END OF BLOCK B3.
*DATA t_KBETR(10) TYPE C.
*----------------------------------------------------------------------
* Selection Screen *
*----------------------------------------------------------------------
* validate tax conditions
*AT SELECTION-SCREEN ON BLOCK B2 .
PERFORM CHECK_CONDITIONS.
*----------------------------------------------------------------------
* Start-of-Selection *
*----------------------------------------------------------------------
START-OF-SELECTION.
GET BKPF.
if t005-kalsm is initial.
SELECT SINGLE * FROM T005 WHERE LAND1 = T001-LAND1 .
endif.
describe table x007a lines tline.
if tline = 0.
SELECT * FROM T007A INTO TABLE X007A WHERE KALSM = T005-KALSM . "AND
"MWSKZ IN ZMWSKZ.
endif.
* if BR_BUDAT = space.
*message e036 with text-033.
*ENDIF.
get bseg.
* Get the tax data for the selected accounting document
SELECT * FROM BSET
into s_bset
WHERE BUKRS = BKPF-BUKRS AND
BELNR = BKPF-BELNR AND
GJAHR = BKPF-GJAHR AND
buzei = bseg-buzei "AND
* MWSKZ IN ZMWSKZ AND
* TXJCD IN ZTXJCD "AND
* ( KSCHL = ZLST or
* KSCHL = ZCST or
* KSCHL = ZSETOFF )
.
*t_KBETR = S_BSET-KBETR / 10.
*MOVE T_KBETR TO REC-KBETR.
*SELECT WRBTR FROM BSEG INTO T_BSEG WHERE KTOSL = 'VS4' AND BELNR = s_bset-belnr.
* PERFORM PROCESS_DOC using s_bset.
APPEND s_bset TO t_bset.
APPEND bkpf TO t_bkpf.
append bseg to it_bseg.
ENDSELECT.
*----------------------------------------------------------------------
* End of Selection
*----------------------------------------------------------------------
END-OF-SELECTION.
CLEAR s_bset.
LOOP AT t_bset INTO s_bset.
PERFORM process_doc
USING s_bset.
ENDLOOP.
LOOP AT REC .
* IF NOT ZFROM IS INITIAL AND REC-YFROM NE ZFROM.
* DELETE REC.
* ENDIF.
* IF NOT ZTO IS INITIAL AND REC-YTO NE ZTO.
* DELETE REC.
* ENDIF.
ENDLOOP.
SET PF-STATUS 'J1ST' .
DESCRIBE TABLE REC LINES TLINE.
IF TLINE IS INITIAL.
MESSAGE I152(8I).
ENDIF.
SORT REC BY YBELNR .
*
LOOP AT REC.
* move rec-ytext1 to stext1.
* MOVE REC-YTXJCD TO STXJCD.
* MOVE REC-YFROM TO SFROM.
* AT NEW YMWSKZ.
* PERFORM TAX_TITLE.
* ENDAT.
* AT NEW YTXJCD.
* PERFORM JURISDICTION_TITLE.
* ENDAT.
**
*ON CHANGE OF REC-YBELNR.
*ULINE.
*ENDON.
PERFORM DISPLAY_ITEMS.
* AT END OF YTXJCD.
* PERFORM DISPLAY_TAX_TOTAL.
* ENDAT.
AT LAST.
PERFORM DISPLAY_GRAND_TOTAL.
ENDAT.
ENDLOOP.
TOP-OF-PAGE.
PERFORM SET_PAGE_TITLE.
*---------------------------------------------------------------------
* Line Selection
*---------------------------------------------------------------------
AT LINE-SELECTION.
PERFORM DISPLAY_DOC.
*----------------------------------------------------------------------
* Includes *
*----------------------------------------------------------------------
INCLUDE ZJ_1ISTAI2.
*&---------------------------------------------------------------------*
*& Include ZJ_1ISTAI1
*&---------------------------------------------------------------------*
*&---------------------------------------------------------------------*
*& Form GET_TAX_DESC
*&---------------------------------------------------------------------*
* Get the tax details from the tax code
*-----------------------------------------------------------------------
FORM get_tax_desc.
SELECT SINGLE * FROM t007s WHERE spras = sy-langu AND
kalsm = t005-kalsm AND
mwskz = rec-ymwskz . "tax code name
* move t007s-text1 to rec-ytext1 .
ENDFORM. " GET_TAX_DESC
*&---------------------------------------------------------------------*
*& Form for DISPLAY_ITEMS
*&---------------------------------------------------------------------*
* Write actual document line items. *
*----------------------------------------------------------------------*
DATA: BEGIN OF IT_LFA1 OCCURS 0,
LIFNR TYPE LFA1-LIFNR,
NAME1 TYPE LFA1-NAME1,
END OF IT_LFA1.
FORM display_items.
IF rec-sel NE 'X' .
ctr1 = ( ctr MOD 2 ) .
IF ctr1 = 0 .
FORMAT COLOR COL_NORMAL INTENSIFIED .
ELSE.
FORMAT COLOR COL_NORMAL INTENSIFIED OFF.
ENDIF.
WRITE : / rec-yebeln,
13 rec-ybelnr ,
30(38) REC-NAME ,
69(10) rec-wrbtr,
** 24 rec-ymwskz ,
** 28 rec-ytxjcd right-justified ,
** 32(10) rec-ybudat,
83(10) rec-ybudat,
** 47(04) rec-yfrom,
94(04) rec-yfrom,
** 52(04) rec-yto,
100(04) rec-yto,
** 57(15) rec-yhwbas1 CURRENCY curr,
106(14) rec-yhwbas1 CURRENCY curr,
** 74(5) rec-yrate1 CURRENCY curr,
121(5) rec-yrate1 CURRENCY curr,
** 80(15) rec-yhwste1 CURRENCY curr,
128(14) rec-yhwste1 CURRENCY curr,
** 97(5) rec-yrate2 CURRENCY curr,
144(5) rec-yrate2 CURRENCY curr,
** 103(15) rec-yhwste2 CURRENCY curr,
152(13) rec-yhwste2 CURRENCY curr,
** 119(5) rec-yrate3 CURRENCY curr,
167(5) rec-yrate3 CURRENCY curr,
174(10) rec-yhwste3 CURRENCY curr,
186(10) rec-yrate4 ,
198(10) rec-yhwste4,
210(5) REC-YRATE5,
217(10) REC-YHWSTE5,
228(5) REC-YRATE6,
240(10) REC-YHWSTE6.
** 195(10) REC-WRBTR.
** 136(5) itab-kbetr .
** 120(15) rec-yhwste3 CURRENCY curr.
** 131(5) rec-ykbetr CURRENCY curr.
** 136(6) rec-ywrbtr CURRENCY curr.
ctr = ctr + 1 .
*--------------------------------------------------------------------
* loop at itab.
* write /136(5) itab-kbetr.
* endloop.
*--------------------------------------------------------------------
ENDIF.
ENDFORM. " DISPLAY_ITEMS
*&---------------------------------------------------------------------*
*& Form DISPLAY_TAX_TOTAL
*&---------------------------------------------------------------------*
* Calculate and Display the total per tax code
**----------------------------------------------------------------------
*
FORM display_tax_total.
SUM.
FORMAT COLOR COL_TOTAL.
ULINE.
WRITE : / text-020, 57(15) rec-yhwbas1 CURRENCY curr, "TAX BASE
80(15) rec-yhwste1 CURRENCY curr,
103(15) rec-yhwste2 CURRENCY curr ,
125(15) rec-yhwste3 CURRENCY curr.
ULINE.
ENDFORM. " DISPLAY_TAX_TOTAL
*&---------------------------------------------------------------------*
*& Form DISPLAY_GRAND_TOTAL
*&---------------------------------------------------------------------*
* Calculate and display the total for all the tax codes.
**----------------------------------------------------------------------
*
FORM display_grand_total.
SUM.
FORMAT COLOR COL_TOTAL.
WRITE : / text-022 , 106(15) rec-yhwbas1 CURRENCY curr ,
128(15) rec-yhwste1 CURRENCY curr ,
152(15) rec-yhwste2 CURRENCY curr,
174(15) rec-yhwste3 CURRENCY curr,
198(15) rec-yhwste4 CURRENCY curr,
217(15) rec-yhwste5 CURRENCY curr,
240(15) rec-yhwste6 CURRENCY curr.
ENDFORM. " DISPLAY_GRAND_TOTAL
*&---------------------------------------------------------------------*
*& Form SET_PAGE_TITLE
*&---------------------------------------------------------------------*
* Give the page heading. *
*----------------------------------------------------------------------*
FORM set_page_title.
WRITE : / text-016 , t001-butxt , 70 text-017 , sy-datum .
WRITE : / text-018 ,
br_budat-low DD/MM/YYYY , text-019 ,
br_budat-high DD/MM/YYYY .
ULINE.
FORMAT COLOR COL_HEADING.
WRITE : 'Purchase' , 13'Document' , 30(38)'Vendor Name' , 69(10)'Amount' , 83(10)'Invoice' , 94(04)'Ship' , 100(04) 'Ship' ,
108(14)'Tax' , 121(5)'LST' , 130(14)'LST' , 144(5)'CST' , 154(13)'CST' , 167(5)'SetOff' , 176(10)'SetOff' ,
186(10)'Cess' , 200(10)'Cess' , 210(6)'Excise' , 219(10)'Excise' , 228(10)'Secondary' , 240(10)'Secondary'.
write : / 'Order No:' , 13'No:' , 83(10)'Date' , 94(04)'from' , 100(04)'to' , 108(14)'Base' , 121(5)'%age', 130(14)'Amount' ,
144(5)'%age' , 154(13)'Amount' , 167(5)'%age' , 176(10)'Amount' , 186(10)'%age' , 200(10)'Amount' , 210(5)'%age' , 219(10)'Amount' ,
228(10)'Cess %age' , 240(10)'CessAmount'.
ULINE.
ENDFORM. " SET_PAGE_TITLE
*&---------------------------------------------------------------------*
*& Form PROCESS_DOC
*&---------------------------------------------------------------------*
* Select the documents which are to be displayed . *
*----------------------------------------------------------------------*
FORM process_doc
USING s_bset STRUCTURE bset.
CLEAR rec .
MOVE s_bset-belnr TO rec-ybelnr .
READ TABLE t_bkpf INTO s_bkpf
WITH KEY bukrs = s_bset-bukrs
belnr = s_bset-belnr
gjahr = s_bset-gjahr.
MOVE s_bkpf-budat TO rec-ybudat.
IF s_bset-shkzg = 'H'.
s_bset-hwbas = s_bset-hwbas * -1.
s_bset-hwste = s_bset-hwste * -1.
ENDIF.
MOVE s_bset-hwbas TO rec-yhwbas1.
******************************************************
*&*& modified code &*
******************************************************
IF s_bset-kschl = 'JIPC'.
MOVE s_bset-hwste TO rec-yhwste2 .
COMPUTE rec-yrate2 = ( rec-yhwste2 / rec-yhwbas1 ) * 100.
ELSEIF s_bset-kschl = 'JAPS' OR s_bset-kschl = 'JAPL' .
MOVE s_bset-hwste TO rec-yhwste1 .
COMPUTE rec-yrate1 = ( rec-yhwste1 / rec-yhwbas1 ) * 100.
ELSEIF s_bset-kschl = 'JIPS'.
MOVE s_bset-hwste TO rec-yhwste3.
COMPUTE rec-yrate3 = ( rec-yhwste3 / rec-yhwbas1 ) * 100.
ELSEIF s_bset-kschl = 'JEC3' OR s_bset-kschl = 'JECP' OR s_bset-kschl = 'JECI' .
MOVE s_bset-hwste TO rec-yhwste4.
COMPUTE rec-yrate4 = ( rec-yhwste4 / rec-yhwbas1 ) * 100.
elseif s_bset-kschl = 'JSRT' OR s_bset-kschl = 'JAOP' OR s_bset-kschl = 'JSOP' OR s_bset-kschl = 'BASB' OR s_bset-kschl = 'JMOP' OR
s_bset-kschl = 'JMOQ' OR s_bset-kschl = 'JAOQ' OR s_bset-kschl = 'JSOQ' OR s_bset-kschl = 'JMIP' OR s_bset-kschl = 'JMIQ'
OR s_bset-kschl = 'JAIP' OR s_bset-kschl = 'JAIQ' OR s_bset-kschl = 'JSIP' OR s_bset-kschl = 'JSIQ' OR s_bset-kschl = 'JMX1'
OR s_bset-kschl = 'JAX1' OR s_bset-kschl = 'JSX1' OR s_bset-kschl = 'JMX2' OR s_bset-kschl = 'JAX2' OR s_bset-kschl = 'JSX2'.
MOVE S_BSET-HWSTE TO REC-YHWSTE5.
COMPUTE rec-yrate5 = ( rec-yhwste5 / rec-yhwbas1 ) * 100.
ELSEIF S_BSET-KSCHL = 'JA1X' .
MOVE S_BSET-HWSTE TO REC-YHWSTE6.
COMPUTE rec-yrate6 = ( rec-yhwste6 / rec-yhwbas1 ) * 100.
ENDIF.
*if s_bset-ktosl = 'VS4'.
* move s_bset-kbetr TO itab-kbetr.
* endif.
READ TABLE it_bseg INTO s_bseg
WITH KEY bukrs = s_bset-bukrs
belnr = s_bset-belnr
gjahr = s_bset-gjahr
KOART = 'K'.
MOVE s_bseg-WRBTR TO REC-WRBTR.
SELECT LIFNR
NAME1 FROM LFA1 INTO IT_LFA1 WHERE LIFNR = S_BSEG-LIFNR.
MOVE IT_LFA1-NAME1 TO REC-NAME.
ENDSELECT.
****************************************************************************
MOVE s_bset-mwskz TO rec-ymwskz .
MOVE s_bset-txjcd TO rec-ytxjcd .
READ TABLE x007a WITH KEY mwskz = rec-ymwskz.
PERFORM get_order_details.
PERFORM get_shipping_info.
APPEND rec.
ENDFORM. " PROCESS_DOC
*&---------------------------------------------------------------------*
*& Form DISPLAY_DOC
*&---------------------------------------------------------------------*
FORM display_doc.
GET CURSOR FIELD cursorfld VALUE cursorval .
IF cursorfld = 'REC-YBELNR' .
SET PARAMETER ID 'BLN' FIELD cursorval.
* set parameter id 'BUK' field zbukrs.
* set parameter id 'GJR' field zgjahr.
CALL TRANSACTION 'FB03' AND SKIP FIRST SCREEN.
ENDIF.
ENDFORM. " DISPLAY_DOC
*&---------------------------------------------------------------------*
*& Form GET_ORDER_DETAILS
*&---------------------------------------------------------------------*
* text *
*----------------------------------------------------------------------*
* --> p1 text
* <-- p2 text
*----------------------------------------------------------------------*
FORM get_order_details.
IF x007a-mwart = 'A'. "output tax take from sales order
IF s_bkpf-awtyp = 'VBRK'.
SELECT SINGLE * from vbrp WHERE
vbeln = s_bkpf-awkey.
IF sy-subrc EQ 0.
MOVE vbrp-aubel TO rec-yebeln.
MOVE s_bkpf-xblnr TO rec-yvbeln.
ENDIF.
ELSE.
SELECT SINGLE * FROM lips WHERE
vbeln = s_bkpf-xblnr. "retrieve sales order number
IF sy-subrc EQ 0.
MOVE lips-vgbel TO rec-yebeln.
MOVE s_bkpf-xblnr TO rec-yvbeln.
ENDIF.
ENDIF.
ELSEIF x007a-mwart = 'V'. "input tax take from purchase ord
IF s_bkpf-awtyp = 'RMRP'.
SELECT SINGLE * FROM ekbe WHERE
belnr = s_bkpf-awkey+0(10) AND
bewtp = 'Q'.
IF sy-subrc EQ 0.
MOVE ekbe-ebeln TO rec-yebeln.
ENDIF.
ELSE.
SELECT SINGLE * FROM ekbe WHERE
belnr = s_bkpf-belnr AND
bewtp = 'R'. "retrieve PO number
IF sy-subrc EQ 0.
MOVE ekbe-ebeln TO rec-yebeln.
ENDIF.
ENDIF.
ENDIF.
ENDFORM. " GET_ORDER_DETAILS
*&---------------------------------------------------------------------*
*& Form CHECK_CONDITIONS
*&---------------------------------------------------------------------*
*Check if the user has entered atlease one tax conditions *
*----------------------------------------------------------------------*
* --> p1 text
* <-- p2 text
*----------------------------------------------------------------------*
FORM check_conditions.
* IF zlst = space AND zcst = space AND zsetoff = space.
* MESSAGE e036 WITH text-030.
* ENDIF.
ENDFORM. " CHECK_CONDITIONS
*&---------------------------------------------------------------------*
*& Form TAX_TITLE
*&---------------------------------------------------------------------*
* text *
*----------------------------------------------------------------------*
* --> p1 text
* <-- p2 text
*----------------------------------------------------------------------*
FORM tax_title.
PERFORM get_tax_desc.
ctr = 0 .
FORMAT COLOR COL_NORMAL INTENSIFIED OFF.
WRITE : / text-014 , rec-ymwskz ,
15 t007s-text1.
ULINE.
FORMAT COLOR OFF.
ENDFORM. " TAX_TITLE
*&---------------------------------------------------------------------*
*& Form JURISDICTION_TITLE
*&---------------------------------------------------------------------*
* text *
*----------------------------------------------------------------------*
* --> p1 text
* <-- p2 text
*----------------------------------------------------------------------*
FORM jurisdiction_title.
FORMAT COLOR COL_NORMAL INTENSIFIED OFF.
WRITE : / text-015 , stxjcd.
ULINE.
FORMAT COLOR OFF.
ENDFORM. " JURISDICTION_TITLE
*&---------------------------------------------------------------------*
*& Form GET_SHIPPING_INFO
*&---------------------------------------------------------------------*
* text *
*----------------------------------------------------------------------*
* --> p1 text
* <-- p2 text
*----------------------------------------------------------------------*
FORM get_shipping_info.
IF x007a-mwart = 'V'. "Input Tax Purchase orders.
PERFORM input_shipfrom.
PERFORM input_shipto.
*
ELSEIF x007a-mwart = 'A'.
PERFORM output_shipfrom.
PERFORM output_shipto.
ENDIF.
ENDFORM. " GET_SHIPPING_INFO
*&---------------------------------------------------------------------*
*& Form LOCATION_SHIPFROM
*&---------------------------------------------------------------------*
* text *
*----------------------------------------------------------------------*
* --> p1 text
* <-- p2 text
*----------------------------------------------------------------------*
FORM location_shipfrom.
FORMAT COLOR COL_NORMAL INTENSIFIED OFF.
WRITE : / text-016 , sfrom.
ULINE.
FORMAT COLOR OFF.
ENDFORM. " LOCATION_SHIPFROM
*&---------------------------------------------------------------------*
*& Form INPUT_SHIPFROM
*&---------------------------------------------------------------------*
* text *
*----------------------------------------------------------------------*
* --> p1 text
* <-- p2 text
*----------------------------------------------------------------------*
FORM input_shipfrom.
*get location shipped from
SELECT SINGLE * FROM ekpa
WHERE parvw = 'LW' AND
ebeln = rec-yebeln.
IF sy-subrc EQ 0.
SELECT SINGLE * FROM lfa1
WHERE lifnr = ekpa-lifn2.
IF sy-subrc EQ 0.
MOVE lfa1-regio TO rec-yfrom.
ENDIF.
ELSE.
SELECT SINGLE * FROM ekko
WHERE ebeln = rec-yebeln.
IF sy-subrc EQ 0.
SELECT SINGLE * FROM lfa1
WHERE lifnr = ekko-lifnr.
IF sy-subrc EQ 0.
MOVE lfa1-regio TO rec-yfrom.
ENDIF.
ENDIF.
ENDIF.
ENDFORM. " INPUT_SHIPFROM
*&---------------------------------------------------------------------*
*& Form INPUT_SHIPTO
*&---------------------------------------------------------------------*
* text *
*----------------------------------------------------------------------*
* --> p1 text
* <-- p2 text
*----------------------------------------------------------------------*
FORM input_shipto.
* get location shipped to for Input tax
SELECT SINGLE * FROM ekpo WHERE ebeln = ekbe-ebeln.
IF ekpo-werks <> t001w-werks.
SELECT SINGLE * FROM t001w
WHERE werks = ekpo-werks.
IF sy-subrc EQ 0.
MOVE t001w-regio TO rec-yto.
ENDIF.
ELSE.
MOVE t001w-regio TO rec-yto.
ENDIF.
ENDFORM. " INPUT_SHIPTO
*&---------------------------------------------------------------------*
*& Form OUTPUT_SHIPFROM
*&---------------------------------------------------------------------*
* text
**----------------------------------------------------------------------
*
* --> p1 text
* <-- p2 text
*----------------------------------------------------------------------*
FORM output_shipfrom.
*ship from for sales from the shipping point of the plant
SELECT SINGLE * FROM vbrp
WHERE aubel = rec-yebeln .
IF sy-subrc EQ 0.
SELECT SINGLE * FROM tvst
WHERE vstel = vbrp-vstel.
IF sy-subrc EQ 0 AND tvst-adrnr NE space.
* SELECT SINGLE * FROM sadr
* WHERE adrnr EQ tvst-adrnr.
* IF sy-subrc EQ 0.
* MOVE sadr-regio TO rec-yfrom.
* ENDIF.
clear addr1_val.
clear addr1_sel.
addr1_sel-ADDRNUMBER = tvst-adrnr.
CALL FUNCTION 'ADDR_GET'
EXPORTING
address_selection = addr1_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 = 0.
move addr1_val-region to rec-yfrom.
ENDIF.
ELSE.
IF t001w-werks <> vbrp-werks. "address no not maintained
SELECT SINGLE * FROM t001w
WHERE werks = vbrp-werks.
ENDIF.
MOVE t001w-regio TO rec-yfrom.
ENDIF.
ENDIF.
ENDFORM. " OUTPUT_SHIPFROM
*&---------------------------------------------------------------------*
*& Form OUTPUT_SHIPTO
*&---------------------------------------------------------------------*
* text *
*----------------------------------------------------------------------*
* --> p1 text
* <-- p2 text
*----------------------------------------------------------------------*
FORM output_shipto.
* get ship to party information
SELECT SINGLE * FROM vbpa
WHERE vbeln = rec-yebeln AND
parvw = 'WE'.
IF sy-subrc = 0 AND vbpa-adrnr NE space.
* SELECT SINGLE * FROM sadr
* WHERE adrnr EQ vbpa-adrnr.
* IF sy-subrc EQ 0.
* MOVE sadr-regio TO rec-yto.
* ENDIF.
clear addr1_val.
clear addr1_sel.
addr1_sel-ADDRNUMBER = vbpa-adrnr.
CALL FUNCTION 'ADDR_GET'
EXPORTING
address_selection = addr1_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 = 0.
move addr1_val-region to rec-yto.
ENDIF.
ELSE.
*
SELECT SINGLE * FROM kna1 WHERE kunnr = vbpa-kunnr.
MOVE kna1-regio TO rec-yto.
ENDIF.
ENDFORM. " OUTPUT_SHIPTO
*ENDFORM.
‎2007 Nov 29 5:55 AM
data: begin of itab,
docno
tax
end of itab.
data: fl type c.
sort itab by docno.
loop at itab.
at new docno.
fl = 'X'.
endat.
if fl = 'X'.
write:/ itab-docno, itab-tax.
clear fl.
else.
write: itab-tax.
endif.
endloop.