2014 Jan 23 5:12 AM
Hi Expert,
I Tried to make invoice but something is wrong so i canceled and again make new invoice for same billing doc.no. but there is prolem, report pic first invoice whose i canceld. i want that report pic new invoice...so plz guide me how to solve this problem.What logic can i use in report for picking new invoice no.
Thanks in advance.
2014 Jan 24 6:04 AM
Thank you so much Expert for your Support. Now problem solved.
Simply I add this field..
SELECT SINGLE exnum
exdat
remtime
exbed
ecs
exaddtax1
werks
STATUS "Added by atin
FROM j_1iexchdr
INTO CORRESPONDING FIELDS OF it_add
WHERE rdoc = it_add-vbeln
and STATUS = 'C'. "Added 24.01.2014.
2014 Jan 23 5:22 AM
You can use the version number or the GUID if it is uniquely generated.
2014 Jan 23 5:27 AM
Hi mayuri asrani,
Can you tell me plz in detail where we can use it ? and how ?
2014 Jan 23 5:42 AM
Hi,
I am unclear with your question! If your program is taking the cancel doduments in the program! May be you have restrict the code! to identify the cancel document check the status of VBRK-RFBSK.
E - Cancel ( restrict in your program NE E
2014 Jan 23 8:08 AM
Hi Kiran sir,
Yes actually i want to print invoice when it is created means when status is completed..I want to pass logic Check billing doc and status is'c' then its print invoice. But i am confused where i pass this logic. Its pic the value from j_1iexchdr table. Billing doc fields is RDOC. Please guide me expert where i need to pass this logic.
2014 Jan 23 8:23 AM
Hi Raj,
Have you using the standard print program or customized print program to print the form!
You need to check it in print program in RDOC only! can you provide us the more details
2014 Jan 23 9:10 AM
Hi Kiran sir,
Bellow is the complete code. Please guide me where i need to change ?
*&---------------------------------------------------------------------*
*& Report ZSD_TAX_INVOICE1
*&
*&---------------------------------------------------------------------*
*&
*&
*&---------------------------------------------------------------------*
REPORT zsd_tax_invoice_updated.
TABLES : vbrk, vbrp, vbap, konv, kona, t001t, t001u, nast, tvfk,t685t, kna1,vepo, pbim ,vbak.
TABLES: J_1IMOCUST.
DATA: C_J_1IEXCD TYPE J_1IMOCUST-J_1IEXCD,
C_J_1ICSTNO TYPE J_1IMOCUST-J_1ICSTNO,
C_KUNNR TYPE J_1IMOCUST-KUNNR,
C_J_1ILSTNO TYPE J_1IMOCUST-J_1ILSTNO,
C_J_1IEXDI TYPE J_1IMOCUST-J_1IEXDI,
C_J_1IEXCO TYPE J_1IMOCUST-J_1IEXCO.
DATA : BEGIN OF it_add OCCURS 0.
INCLUDE STRUCTURE zinv_add1_SERVIC.
DATA : END OF it_add.
DATA : BEGIN OF itab OCCURS 0.
INCLUDE STRUCTURE zinv_data1_SERVI.
DATA : END OF itab.
DATA : itab12 LIKE STANDARD TABLE OF itab WITH HEADER LINE.
DATA : fm_name TYPE rs38l_fnam.
DATA : total_quantity(15) TYPE p DECIMALS 3 ,
num(5) TYPE c,
kunag TYPE j_1iexchdr-kunag,
vbeln TYPE vbrk-vbeln,
rdoc TYPE j_1iexchdr-rdoc,
exdat TYPE j_1iexchdr-exdat,
cpudt TYPE j_1iexchdr-cpudt,
krt(15) TYPE p DECIMALS 2,
zpr(15) TYPE p DECIMALS 2,
krt1 TYPE konv-kawrt,
disc TYPE konv-kwert,
disc1(15) TYPE c,
vat2(15) TYPE c,
tot_assess TYPE konv-kawrt,
tot_assess1 TYPE konv-kwert,
kbetr(13) TYPE p DECIMALS 2,
v_kbetr1(13) TYPE p DECIMALS 4,
kpein LIKE konv-kpein,
abt TYPE konv-kbetr,
kbetr1 TYPE konv-kbetr,
kbetr2 TYPE konv-kbetr,
kbetr3 TYPE konv-kbetr,
kbetr4 TYPE konv-kbetr,
kwert4 LIKE konv-kwert,
total TYPE konv-kbetr,
rate(8) type p DECIMALS 2,
sub_tot(15) TYPE p DECIMALS 2,
sub_tot1(15) TYPE p DECIMALS 2,
sub_tot2(15) TYPE p DECIMALS 2, " p decimals 3,
vat(3) TYPE p DECIMALS 2,
exdt TYPE konv-kwert,
hcess TYPE konv-kwert,
cess TYPE konv-kwert,
gross TYPE konv-kwert,
cst TYPE konv-kwert,
edu_amt TYPE konv-kwert,
vbeln5 LIKE vbfa-vbeln,
invct(4) type c,
CHIDD(30) type c,
BONDT(50) type c.
DATA : rdoc3 LIKE j_1iexcdtl-rdoc3,
fkart LIKE vbrk-fkart.
DATA po_no LIKE ekko-ihrez.
DATA note LIKE eikp-text1.
DATA : prc_ed(5) TYPE p DECIMALS 3.
DATA : prc_ec(5) TYPE p DECIMALS 3.
DATA : prc_hec(5) TYPE p DECIMALS 3.
DATA : prc_vt(5) TYPE p DECIMALS 3.
DATA : sno(3) TYPE c.
DATA : flag(1) TYPE c.
DATA : flag1(1) TYPE c.
DATA : flag2(1) TYPE c.
DATA : total_amount TYPE konv-kwert.
DATA : total_ed TYPE konv-kwert.
DATA : total_acv TYPE konv-kwert.
DATA : total_ec TYPE konv-kwert.
DATA : total_hec TYPE konv-kwert.
DATA : total_d1 TYPE konv-kwert.
DATA : total_vt TYPE konv-kwert.
DATA : total_st TYPE konv-kwert.
DATA : total_sec TYPE konv-kwert.
DATA : total_sse TYPE konv-kwert.
DATA : total_cst TYPE konv-kwert.
DATA : total_lst TYPE konv-kwert.
DATA : total_lsr TYPE konv-kwert.
DATA : total_diff TYPE konv-kwert.
*DATA : sub_amt TYPE vbrp-netwr.
DATA : total_subamt TYPE konv-kwert.
DATA : total_duty TYPE konv-kwert.
DATA : total_duty1 TYPE konv-kwert.
DATA : cenvat TYPE p DECIMALS 2.
DATA : cenvat1 TYPE p DECIMALS 4.
DATA : total_amt TYPE konv-kwert.
DATA : total_samt TYPE vbrp-netwr.
DATA : price LIKE konv-kwert.
DATA : total_rate TYPE konv-kbetr.
DATA : total_pr TYPE konv-kwert.
DATA : temp_pr TYPE konv-kwert.
DATA : temp_pr1 TYPE konv-kwert.
DATA : dis TYPE konv-kwert.
DATA : lv_kunnr TYPE kna1-kunnr.
DATA : round_pr TYPE pc207-betrg.
DATA : round_pr1 TYPE pc207-betrg.
DATA : edu_words(200) TYPE c.
DATA : ecess_words1(200) TYPE c.
DATA : hecess_words1(200) TYPE c.
DATA : cst_vat(200) TYPE c.
DATA : gross_word(200) TYPE c.
DATA : spell1 LIKE spell.
DATA : round_amt TYPE p.
DATA : round_amt1 TYPE p.
DATA : amt1 TYPE pc207-betrg.
DATA : amt2 TYPE pc207-betrg.
DATA : amt5 TYPE pc207-betrg.
DATA : amt3 TYPE pc207-betrg.
DATA : amt4 TYPE pc207-betrg.
DATA : quan(8) TYPE p . " DECIMALS 3.
DATA : quan1(8) TYPE p . " DECIMALS 3.
DATA: tdname LIKE thead-tdname.
DATA: id LIKE thead-tdid ." VALUE '0001'.
DATA: htext TYPE thead.
DATA:BEGIN OF tlin OCCURS 50.
INCLUDE STRUCTURE tline.
DATA:END OF tlin.
DATA: text1(132) TYPE c. "tline-tdline.
DATA: text2(132) TYPE c. "tline-tdline.
DATA: text3(132) TYPE c. "tline-tdline.
DATA fr(3) TYPE p DECIMALS 2.
DATA vgbel TYPE vbrp-vgbel.
DATA qt(4) TYPE c .
DATA pos LIKE vepo-posnr.
DATA vemng LIKE vepo-vemng.
DATA waers(5) TYPE c.
*DATA kurrf(9) TYPE p DECIMALS 5 . "add dhar
DATA kkurs(10) TYPE p DECIMALS 5 .
DATA j_1ichid LIKE j_1imtchid-j_1ichid.
DATA j_1ipanno LIKE j_1imocust-j_1icstno.
DATA j_1iexcd LIKE j_1imocust-j_1iexcd.
DATA knumv LIKE vbrk-knumv.
DATA vbeln2 TYPE vbak-vbeln.
DATA vbeln4 TYPE vbfa-vbelv.
DATA vbelv1 TYPE vbfa-vbelv.
DATA bstdk LIKE vbak-bstnk.
DATA matnr LIKE vbrp-matnr.
DATA kbetr9 TYPE konv-kbetr.
DATA kwert9 TYPE konv-kwert.
DATA: kmrp(12) TYPE c.
DATA: kval(12) TYPE c.
DATA vbelv3 LIKE vbfa-vbelv.
DATA bezei LIKE t618t-bezei.
DATA mode LIKE eikp-expvz.
DATA matnr1 LIKE vbrp-matnr.
DATA labnk LIKE vblb-labnk.
*DATA are_no LIKE j_1iexcdtl-exnum.
*DATA are_date LIKE j_1iexcdtl-exdat.
DATA : a LIKE vekp-packvorschr, "like packkp-packnr ,"
b LIKE packkp-packnr,
d(25) TYPE c,
venum LIKE vekp-venum,
e LIKE packpo-trgqty.
DATA vemng1 LIKE vepo-vemng.
DATA rem(4) TYPE c.
DATA div(4) TYPE n .
DATA qt1(3) TYPE p DECIMALS 5.
***DATA: pal LIKE ZSD_PACK_UP-boxperpallet,
*** bq LIKE ZSD_PACK_UP-boxqty.
****************************************
* coding
AT SELECTION-SCREEN.
START-OF-SELECTION.
*&---------------------------------------------------------------------*
*& Form entry
*&---------------------------------------------------------------------*
* text
*----------------------------------------------------------------------*
* -->RETURN_CODE text
* -->US_SCREEN text
*&---------------------------------------------------------------------*
*& Form entry
*&---------------------------------------------------------------------*
* text
*----------------------------------------------------------------------*
* -->RETURN_CODE text
* -->US_SCREEN text
*----------------------------------------------------------------------*
FORM entry USING return_code us_screen.
DATA: retcode LIKE sy-subrc. "Returncode
DATA: xscreen(1) TYPE c. "Output on printer or screen
DATA: lf_retcode TYPE sy-subrc.
CLEAR retcode.
* CLEAR : itab.
* REFRESH : itab.
CLEAR : it_add.
CLEAR :num,krt,krt1, tot_assess, tot_assess1,kbetr,kpein,abt,kbetr1,kbetr2,kbetr3,kbetr4,kwert4,total,
sub_tot,vat,exdt,hcess,cess,gross,cst,edu_amt,vbeln5,round_amt,round_amt1,amt1,amt2,amt3,amt4,amt5,quan,tdname,id,htext,tlin,it_add,
text1,text2,fr,vgbel,qt,pos,vemng,waers,kkurs,j_1ichid,j_1ipanno,j_1iexcd,knumv,vbeln2,vbeln4,vbelv1,bstdk,matnr,kbetr9,kwert9,kmrp,kval,
vbelv3,bezei,mode,vemng1,rem,div,vat2.
xscreen = us_screen.
PERFORM processing USING us_screen
CHANGING lf_retcode.
IF lf_retcode NE 0.
return_code = 1.
ELSE.
return_code = 0.
ENDIF.
ENDFORM. "ENTRY
**&---------------------------------------------------------------------
**
**& Form PROCESSING
**&---------------------------------------------------------------------
**
** text
**----------------------------------------------------------------------
*
FORM processing USING proc_screen
CHANGING cf_retcode.
IF nast-objky+10 NE space.
nast-objky = nast-objky+16(10).
ELSE.
nast-objky = nast-objky.
ENDIF.
vbeln = nast-objky.
REFRESH itab[].
CLEAR itab.
DATA : EXNUM LIKE j_1iexchdr-EXNUM.
SELECT SINGLE exnum rdoc exdat cpudt cputm remtime
FROM j_1iexchdr INTO CORRESPONDING FIELDS OF it_add
WHERE rdoc = vbeln
and docyr = '2013'.
* exnum = p_exnum ."and vbeln = vbeln.
IF sy-subrc NE 0.
MESSAGE e303(me) WITH 'Excise Posting Not Done for' vbeln.
ENDIF.
SELECT SINGLE kunrg
vbeln
fkdat
fkart
regio
land1
kunrg
bukrs
zterm
erdat
erzet
xblnr
FROM vbrk INTO CORRESPONDING FIELDS OF it_add
WHERE vbeln = vbeln. " AND fkart IN ('ZF2I','ZF2A','ZF2H','ZF2C','JEX', 'ZF2S', 'ZE2A'). " Added on 10th Sep,09
IF sy-subrc <> 0.
SELECT SINGLE kunag
vbeln
fkdat
fkart
regio
land1
kunrg
bukrs
zterm
erdat
erzet
xblnr
FROM vbrk INTO CORRESPONDING FIELDS OF it_add
WHERE vbeln = vbeln. " AND fkart IN ('ZF2A','ZF2B','ZFOC','ZF2F','JEX', 'ZF2S')." Added on 10th Sep,09
ENDIF.
SELECT SINGLE exnum
exdat
remtime
exbed
ecs
exaddtax1
werks
FROM j_1iexchdr
INTO CORRESPONDING FIELDS OF it_add
WHERE rdoc = it_add-vbeln.
SELECT SINGLE j_1icstno j_1iexcd FROM j_1imocust INTO (j_1ipanno,j_1iexcd) WHERE kunnr IN (it_add-kunag,it_add-kunrg).
SELECT SINGLE kunnr
name1
name2
* adrnr
stras
ort01
pstlz
name3
regio
land1
telf1
stcd2 FROM kna1
INTO CORRESPONDING FIELDS OF it_add
WHERE kunnr = it_add-kunrg.
APPEND it_add.
DATA : BEGIN OF IT_ZTERM OCCURS 0.
INCLUDE STRUCTURE ZTERM1.
DATA : END OF IT_ZTERM.
DATA : BEGIN OF IT_KONV OCCURS 0,
KNUMV LIKE KONV-KNUMV,
KSCHL LIKE KONV-KSCHL,
KWERT LIKE KONV-KWERT,
VTEXT LIKE T685T-VTEXT,
END OF IT_KONV.
DATA : BEGIN OF IT_T685T OCCURS 0,
KSCHL LIKE T685T-KSCHL,
VTEXT LIKE T685T-VTEXT,
END OF IT_T685T.
DATA : BILLING TYPE VBRK-VBELN,
DOCTYPE TYPE VBRK-FKART,
DOCCONDITION TYPE VBRK-KNUMV.
DATA : TEXT LIKE TVZBT-VTEXT.
SELECT ZTERM
VTEXT INTO CORRESPONDING FIELDS OF TABLE IT_ZTERM FROM TVZBT WHERE
ZTERM = IT_ADD-ZTERM.
LOOP AT IT_ZTERM.
TEXT = IT_ZTERM-VTEXT+0(2).
ENDLOOP.
SELECT SINGLE VBELN
FKART
KNUMV INTO (BILLING, DOCTYPE, DOCCONDITION) FROM VBRK
WHERE VBELN = VBELN.
SELECT KNUMV
KSCHL
KWERT
KVSL1 INTO IT_KONV FROM KONV
WHERE KNUMV = DOCCONDITION AND
KSCHL <> 'PR00' AND
KVSL1 <> ' '.
COLLECT IT_KONV.
ENDSELECT.
SELECT KSCHL
VTEXT INTO TABLE IT_T685T FROM T685T FOR ALL ENTRIES IN IT_KONV WHERE
KSCHL = IT_KONV-KSCHL
AND SPRAS = 'EN'.
.
LOOP AT IT_KONV.
READ TABLE IT_T685T WITH KEY KSCHL = IT_KONV-KSCHL.
IT_KONV-VTEXT = IT_T685T-VTEXT.
MODIFY IT_KONV TRANSPORTING VTEXT.
ENDLOOP.
************************* ADDED BY RAJAT SHARMA 03.05.2011 FOR DIFFERENT CUSTOMER ************************
** 1) SAMSUNG
**** 2) MOSEURBEAR
*********************************************************************************************************
** TABLES: J_1IMOCUST.
**
** DATA: C_J_1ICSINO TYPE J_1IMOCUST-J_1ICSTNO,
** C_KUNNR TYPE J_1IMOCUST-KUNNR.
loop at it_add.
read table it_add with key kunnr = it_add-kunnr.
if sy-subrc = '0'.
select J_1IEXCD J_1ICSTNO J_1ILSTNO kunnr J_1Iexdi J_1IexCO from j_1imocust
into (C_J_1IEXCD , c_j_1icsTno , c_j_1ilstno , c_kunnr , C_J_1Iexdi , C_J_1IexCO )
where kunnr = it_add-kunnr.
ENDSELECT.
endif.
endloop.
**********************************************************************************************************
********************************************************************************************************
break sapbasis.
* ITEMS DETAILS
SELECT
matnr " MAT NO
arktx " TXTFORSALEORDER ITEM
fkimg " INVOICED QUANTITY
posnr " BILLING ITEM
werks
vrkme " BASIC UNIT
netwr " NET AMOUNT
pstyv " DOC TYPE
charg
vgbel
vgpos
aubel
aupos
meins
INTO CORRESPONDING FIELDS OF TABLE itab FROM vbrp
WHERE vbeln = it_add-vbeln
AND fkimg <> 0.
IF sy-subrc = 0.
ENDIF.
*ENDLOOP.
num = 0.
*SELECT SINGLE bdzei FROM pbim INTO tdname WHERE werks = it_add-werks AND matnr = itab-matnr.
SELECT SINGLE vgbel FROM vbrp INTO vgbel WHERE vbeln = it_add-rdoc.
DO 3 TIMES.
* LOOP AT itab.
id ='0001'.
IF sy-index = 2.
id ='0002'.
ENDIF.
IF sy-index = 3.
id ='0004'.
ENDIF.
tdname = vgbel .
CALL FUNCTION 'READ_TEXT'
EXPORTING
* CLIENT = SY-MANDT
id = id
language = 'E'
name = tdname " '0080000039'"
object = 'VBBK'
* ARCHIVE_HANDLE = 0
* LOCAL_CAT = ' '
IMPORTING
header = htext
TABLES
lines = tlin
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.
LOOP AT tlin.
IF tlin-tdline <> '' AND id = 0001. " AND tlin-tdline <> ''.
text1 = tlin-tdline.
ELSEIF tlin-tdline <> '' AND id = 0004.
text3 = tlin-tdline.
ELSEIF tlin-tdline <> '' AND id = 0002.
text2 = tlin-tdline.
ENDIF.
ENDLOOP.
* ENDLOOP.
ENDDO.
************************************************************************
* SELECT SINGLE vbelv FROM vbfa INTO vbelv1 WHERE vbeln = vbeln . " AND vbtyp_n = 'M' AND vbtyp_v = 'J'.
* SELECT SINGLE vbelv FROM vbfa INTO vbeln4 WHERE vbeln = vbelv1 AND vbtyp_n = 'R' AND vbtyp_v = 'J'.
SELECT SINGLE vbelv FROM vbfa INTO vbeln5 WHERE vbeln = it_add-vbeln.
SELECT SINGLE vbelv FROM vbfa INTO vbelv3 WHERE vbeln = vbeln5.
SELECT SINGLE kdmat FROM vbap INTO it_add-kdmat WHERE vbeln = vbelv3.
SELECT SINGLE expvz FROM eikp INTO mode WHERE refnr = it_add-vbeln.
SELECT SINGLE bezei FROM t618t INTO bezei WHERE expvz = mode AND spras = 'EN'.
************************************************************************
DATA DD(10) TYPE C.
SELECT SINGLE exnum exdat FROM j_1iexcdtl INTO (it_add-are_no,it_add-are_date) WHERE rdoc2 = it_add-exnum AND trntyp = 'ARE1'.
SELECT SINGLE exnum exdat FROM j_1iexcdtl
INTO (it_add-are_no,it_add-are_date)
WHERE rdoc2 = it_add-exnum AND trntyp = 'ARE3' and docyr = '2013'. "'2011'. " by kaushal on 01.04.2012
dd = it_add-are_no.
shift dd left deleting leading '0'.
SELECT SINGLE expind bondno FROM j_1iexchdr
INTO CORRESPONDING FIELDS OF it_add WHERE exnum = it_add-are_no AND trntyp = 'ARE1'.
IF it_add-expind = 'U'.
SELECT SINGLE bondnoex FROM j_1ibond INTO it_add-bondnoex
WHERE bondno = it_add-bondno ."AND zeile = '0001'.
CONCATENATE 'LUT Particular :' it_add-bondnoex INTO it_add-duty_debit .
ELSEIF it_add-expind = 'N'.
SELECT SINGLE rg23aser rdoc3 FROM j_1iexcdtl
INTO CORRESPONDING FIELDS OF it_add WHERE exnum = it_add-exnum.
CONCATENATE 'Duty Debit Particular :' it_add-rg23aser INTO it_add-duty_debit .
ENDIF.
****************************************************************************
tot_assess = 0.
disc = 0.
disc1 = 0.
flag2 = 1.
LOOP AT itab. "itab REQ ---MATNR ARKTX ANZPK QUANTITY(HUMV4) FKIMG KBETR KAWRT LABNK
num = num + 1.
SHIFT num LEFT DELETING LEADING '0'.
itab-num = num.
SELECT SINGLE kkurs waers FROM konv INTO (kkurs , waers)
WHERE knumv = itab-knumv
AND kposn = itab-posnr
and kschl = 'PR00'.
* SELECT SINGLE kkurs waers FROM konv INTO (kkurs,waers) WHERE knumv = itab-knumv
* AND kposn = itab-posnr
* AND kschl = 'ZPR0'.
*
* SELECT SINGLE anzpk FROM vbrp INTO CORRESPONDING FIELDS OF it_add
* WHERE vbeln = it_add-vbeln.
IF ITAB-WERKS = '1000'.
INVCT = 'B-37'.
CHIDD = 'PART OF MOBILE PHONE/ 85177090'.
BONDT = 'Bond 17/137/N-IV/2013-14 Dt. 24.12.13'. "'20/N IV/B17(WITH SECURITY) 08-09 DT.14.08.08'.Changed by atin 3rd jan
ELSEif ITAB-WERKS = '2000'.
INVCT = 'EOU'.
CHIDD = 'PART OF MOBILE PHONE/ 85177090'.
BONDT = 'Bond 02/B-17/N-V/Elentec/2013-14 Dt. 24.12.13'. "'01/BOND(B-17)2013-14DT.15.05.13'.Changed by atin 3rd jan
ELSEIF ITAB-WERKS = '2100'.
INVCT = 'DTA'.
CHIDD = 'TOC/ 85177090'.
ENDIF.
SELECT SINGLE anzpk
FROM likp INTO CORRESPONDING FIELDS OF itab
WHERE vbeln = itab-vgbel."vbeln = it_add-vbeln.
SELECT SINGLE knumv FROM vbrk INTO CORRESPONDING FIELDS OF itab
WHERE vbeln = it_add-vbeln.
*
* SELECT SINGLE knumv FROM vbrk INTO knumv
* WHERE vbeln = it_add-vbeln.
*
SELECT SINGLE vbeln bstnk FROM vbak INTO (vbeln2, bstdk) WHERE knumv = itab-knumv.
* SELECT vbeln FROM vbak INTO itab-vbeln9 WHERE knumv = itab-knumv.
SELECT SINGLE vbelv FROM vbfa INTO vbeln5 WHERE vbeln = it_add-vbeln.
SELECT SINGLE vbelv FROM vbfa INTO vbelv3 WHERE vbeln = vbeln5.
* SELECT SINGLE labnk vbrst FROM vblb INTO (itab-labnk,itab-vbrst) WHERE vbeln = vbelv3. "vbeln = it_add-vbeln .
SELECT SINGLE labnk vbrst FROM vblb INTO CORRESPONDING FIELDS OF itab
WHERE vbeln = itab-aubel AND posnr = itab-aupos. "vbeln = it_add-vbeln .
SELECT SINGLE
bstkd
INTO itab-bstkd FROM vbkd
WHERE vbeln = vbelv3. "vbelv1. "
IF sy-subrc <> 0.
SELECT SINGLE
bstkd
INTO itab-bstkd FROM vbkd
WHERE vbeln = vbeln5. "vbelv1. "
ENDIF.
SELECT posnr vemng venum FROM vepo INTO (pos,vemng,venum)
WHERE vbeln = itab-vgbel AND matnr = itab-matnr.
vemng1 = vemng1 + vemng.
SELECT SINGLE packvorschr FROM vekp INTO a WHERE venum = venum.
d = a.
SELECT SINGLE trgqty FROM packpo INTO e WHERE packnr = d AND paitemtype = 'I' .
ENDSELECT.
if e is initial.
SELECT SINGLE trgqty FROM packpo INTO e WHERE paitemtype = 'I' and matnr = itab-matnr.
endif.
*
itab-acnt = e.
quan = itab-fkimg.
itab-quan = quan.
SHIFT ITAB-quan LEFT DELETING LEADING '0'.
SHIFT itab-anzpk LEFT DELETING LEADING '0'.
SELECT SINGLE kkurs waers FROM konv INTO (kkurs , waers) WHERE knumv = itab-knumv
AND kposn = itab-posnr
and kschl = 'PR00'.
IF it_add-fkart = 'ZF2B'." or it_add-fkart = 'ZFOC'. " ADded on 14th Sep.
* " AND it_add-fkart <> 'ZF2A' AND it_add-fkart <> 'ZF2F' OR changed for zf2i,h,c
* it_add-fkart <> 'ZF2C' AND it_add-fkart <> 'ZF2I' AND it_add-fkart <> 'ZF2H'.
SELECT SINGLE kbetr kwert FROM konv INTO (kbetr9,kwert9)
WHERE knumv = itab-knumv
AND kposn = itab-posnr
AND kschl = 'ZMRP' . " EARLIER ZPR0
* AND kpein = '1'.
" AND kschl = 'ZPRO' ". creating prob here coz of kshcl ",'JEXP','ZECP','ZSCP','JVAT','JCST').
" AND kbetr <> 0.
SELECT SINGLE kbetr FROM konv INTO kbetr
WHERE knumv = itab-knumv
AND kposn = itab-posnr
AND kschl = 'PR00'.
ELSE. " it_add-fkart = 'ZF2C' OR it_add-fkart = 'ZF2I' OR it_add-fkart = 'ZF2H'.
SELECT SINGLE kbetr kpein FROM konv INTO (kbetr,kpein)
WHERE knumv = itab-knumv
AND kposn = itab-posnr
AND kschl = 'PR00'.
data v_kbetr(13) type p DECIMALS 4.
IF it_add-fkart = 'ZF2H' OR it_add-fkart = 'ZF2I' OR it_add-fkart = 'ZF2C'." Commented on 15sep or it_add-fkart = 'ZF2A'.
IF waers NE 'INR'
AND kpein <> 0.
** kbetr = ( kbetr * kkurs ) / kpein .
kbetr = ( kbetr / kpein ) * itab-quan .
v_kbetr = kbetr.
v_kbetr1 = ( v_kbetr * kkurs ) / itab-quan.
ENDIF.
ELSE.
* kbetr = ( kbetr * kkurs ) / kpein.
kbetr = ( kbetr / kpein ) * itab-quan .
v_kbetr = kbetr.
v_kbetr1 = ( v_kbetr ) / itab-quan.
ENDIF.
ENDIF.
IF waers NE 'INR'.
kbetr9 = kbetr9 * kkurs.
ENDIF.
kmrp = kbetr9.
IF waers NE 'INR'. "/////
kwert9 = kwert9 * kkurs.
ENDIF.
kval = kval + kwert9.
* IF waers NE 'INR'.
* kbetr = kbetr * kkurs. "////NOW
* ENDIF.
itab-rate = v_kbetr1.
SELECT SINGLE kawrt FROM konv INTO krt1 WHERE knumv = itab-knumv "earlier kawrt changed later for bottom amt
AND kposn = itab-posnr
AND kschl = 'JEXP'.
IF waers NE 'INR'.
krt1 = krt1 * kkurs.
ENDIF.
itab-krt1 = krt1 .
SELECT SINGLE kwert FROM konv INTO zpr WHERE knumv = itab-knumv
AND kposn = itab-posnr " changed for line item data
AND kschl = 'PR00'.
IF waers NE 'INR'.
zpr = zpr.
ENDIF.
itab-krt = zpr. "krt
tot_assess = tot_assess + krt1.
tot_assess1 = tot_assess1 + zpr.
DATA v_cov_fac type KKURS.
IF it_add-fkart = 'ZFOC'.
SELECT SINGLE kwert FROM konv INTO disc
WHERE kschl = 'JFCG' AND knumv = itab-knumv AND kposn = itab-posnr.
disc1 = disc1 + disc.
select SINGLE kkurs FROM konv INTO v_cov_fac
where kschl = 'ZPR0' AND KNUMV = ITAB-KNUMV AND KPOSN = ITAB-POSNR.
IF SY-SUBRC EQ 0.
DISC1 = DISC1 * KKURS.
ENDIF.
* aDDED ON 9th Sep-------End
ENDIF.
IF it_add-fkart = 'ZF2B' OR it_add-fkart = 'ZF2A' OR it_add-fkart = 'ZF2F' OR it_add-fkart = 'ZF2S'.
SELECT SINGLE kbetr kwert FROM konv INTO (kbetr4 ,kwert4) WHERE knumv = itab-knumv
AND kposn = itab-posnr
AND kschl IN ('JVAT','JCST').
vat2 = vat2 + kwert4.
CLEAR kwert4.
ELSE.
************
SELECT SINGLE kbetr kwert FROM konv INTO (kbetr4 ,kwert4) WHERE knumv = itab-knumv
AND kposn = itab-posnr
AND kschl IN ('JVAT','JCST').
* IF waers NE 'INR'.
* kbetr4 = kbetr4 * kkurs.
* ENDIF.
ENDIF.
vat = kbetr4 / 10.
* vat = vat / 100.
CLEAR kbetr.
IF it_add-fkart = 'ZF2F' OR it_add-fkart = 'ZF2A' OR it_add-fkart = 'ZF2B' OR it_add-fkart = 'ZF2S'.
cst = vat2.
ELSE.
cst = kwert4.
ENDIF.
SELECT SINGLE kwert FROM konv INTO abt
WHERE knumv = itab-knumv
AND kposn = itab-posnr
AND kschl = 'ZABT'. " FOR ABATEMENT
* AND kpein = '1'.
IF waers NE 'INR'.
abt = abt * kkurs.
ENDIF.
it_add-abt = it_add-abt + abt.
********
CLEAR :krt1,zpr,disc,abt.
MODIFY itab.
ENDLOOP. " ENDLOOP OF ITEM TABLE DATA
* itab12[] = itab[].
********************************************************************************
IF it_add-fkart = 'ZF2H'.
tot_assess = tot_assess1.
ENDIF.
********************************************************************************
CLEAR krt.
***************************************************************************************
* IF it_add-fkart = 'Z2FB'.
SELECT SINGLE j_1ichid FROM j_1imtchid INTO j_1ichid WHERE werks = it_add-werks AND matnr = itab-matnr.
* ENDIF.
* SELECT SINGLE kwert FROM konv INTO abt
* WHERE knumv = itab-knumv
* AND kposn = itab-posnr
* AND kschl = 'ZABT'. " FOR ABATEMENT
** AND kpein = '1'.
*
* IF waers NE 'INR'.
* abt = abt * kkurs.
* ENDIF.
* it_add-abt = it_add-abt + abt.
SELECT SINGLE kbetr FROM konv INTO kbetr1 WHERE knumv = itab-knumv
AND kposn = itab-posnr
AND kschl = 'JEXP'.
* IF waers NE 'INR'.
* kbetr1 = kbetr1 * kkurs.
* ENDIF.
exdt = kbetr1 / 10.
edu_amt = ( tot_assess * kbetr1 ) / 1000.
" total = total + kbetr.
" total = total + kbetr.
amt1 = edu_amt.
SELECT SINGLE kbetr kkurs FROM konv INTO (kbetr2,kkurs) WHERE knumv = itab-knumv
AND kposn = itab-posnr
AND kschl = 'ZECP'.
* IF waers NE 'INR'.
* kbetr2 = kbetr2 * kkurs.
* ENDIF.
cess = ( edu_amt * kbetr2 ) / 1000.
amt2 = cess .
SELECT SINGLE kbetr FROM konv INTO kbetr3 WHERE knumv = itab-knumv
AND kposn = itab-posnr
AND kschl = 'ZSCP'.
* IF waers NE 'INR'.
* kbetr3 = kbetr3 * kkurs.
* ENDIF.
hcess = ( edu_amt * kbetr3 ) / 1000.
amt5 = hcess .
" cess = total * '0.02' .
" hcess = total * '0.01' .
SELECT SINGLE rdoc3 FROM j_1iexcdtl INTO rdoc3 WHERE exnum = it_add-exnum.
IF it_add-fkart = 'ZF2H' OR it_add-fkart = 'ZF2I' OR it_add-fkart = 'ZF2C' .
rdoc3 = rdoc3+0(10).
SELECT SINGLE ihrez FROM ekko INTO po_no WHERE ebeln = rdoc3.
ENDIF.
****************************************************************
SORT itab12 BY labnk matnr.
itab12[] = itab[].
IF it_add-fkart = 'ZF2F'.
SORT itab BY matnr.
DELETE ADJACENT DUPLICATES FROM itab COMPARING matnr.
ELSE.
DELETE ADJACENT DUPLICATES FROM itab COMPARING matnr labnk.
ENDIF.
sno = 0.
IF it_add-fkart = 'ZF2C' OR it_add-fkart = 'ZF2H' OR it_add-fkart = 'ZF2I'.
tot_assess = 0.
ENDIF.
LOOP AT itab .
sno = sno + 1.
itab-num = sno.
LOOP AT itab12 WHERE matnr = itab-matnr AND labnk = itab-labnk.
quan1 = quan1 + itab12-quan.
IF it_add-fkart = 'ZF2B' OR it_add-fkart = 'ZF2A' OR it_add-fkart = 'ZF2F' OR it_add-fkart = 'ZF2S' .
krt = krt + itab12-krt.
ENDIF.
ENDLOOP.
IF it_add-fkart = 'ZF2B' OR it_add-fkart = 'ZF2A' OR it_add-fkart = 'ZF2F' OR it_add-fkart = 'ZF2S' .
itab-krt = krt.
ENDIF.
CLEAR krt.
itab-quan = quan1.
IF it_add-fkart = 'ZF2C' OR it_add-fkart = 'ZF2H' OR it_add-fkart = 'ZF2I' or it_add-fkart = 'JEX' or it_add-fkart = 'ZFOC' or it_add-fkart = 'ZF2A' or it_add-fkart = 'ZF2F' OR it_add-fkart = 'ZF2S'.
tot_assess = tot_assess + itab-krt.
ENDIF.
* SELECT boxperpallet boxqty FROM zsd_pack INTO (bp,bq) where matnr = itab-matnr.
MODIFY itab. " TRANSPORTING quan num qt krt.
CLEAR : itab,
quan1.
* pal,
* bq.
ENDLOOP.
************** IF it_add-fkart = 'ZF2C' OR it_add-fkart = 'ZF2H' OR it_add-fkart = 'ZF2I'.
************** sub_tot = tot_assess + edu_amt + cess + hcess .
************** ELSE.
************** sub_tot = tot_assess1 + edu_amt + cess + hcess . " NOW tot_assess1
**************
**************
************** ENDIF.
**************
sub_tot = tot_assess1 + edu_amt + CESS .
IF it_add-fkart = 'ZF2A'.
edu_amt = tot_assess1 * '0.04'.
CESS = tot_assess1 * '0.01' .
sub_tot = tot_assess1 + edu_amt + CESS .
endif.
IF it_add-fkart = 'ZF2S'.
Edu_amt = tot_assess1 * '0.00'.
CESS = tot_assess1 * '0.00' .
sub_tot = tot_assess1.
endif.
data : pp(8) type p.
IF it_add-fkart = 'ZF2A' OR it_add-fkart = 'ZF2S' or it_add-fkart = 'ZE2A' or it_add-fkart = 'ZE2S'.
****cst = tot_assess1 * '10.30' / 100. by kaushal on 17.03.2012
if IT_ADD-ARE_DATE >= '20120317'.
cst = tot_assess1 * '12.36' / 100. " by kaushal on 17.03.2012
else.
cst = tot_assess1 * '10.30' / 100.
endif.
if waers ne 'INR'.
pp = cst * KKURS.
ELSE.
pp = cst.
ENDIF.
amt2 = sub_tot.
ENDIF.
**DATA : sub_tot TYPE pc207-betrg.
LOOP AT IT_KONV.
SUB_TOT2 = SUB_TOT2 + it_konv-kwert.
ENDLOOP
.
SUB_TOT1 = SUB_TOT2 + tot_assess1.
AMT2 = SUB_TOT1 .
data: acct like spell.
*data: acct1 like spell-words.
if waers = 'INR'.
CALL FUNCTION 'HR_IN_CHG_INR_WRDS'
EXPORTING
amt_in_num = amt2
IMPORTING
amt_in_words = ecess_words1
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.
else.
CALL FUNCTION 'SPELL_AMOUNT'
EXPORTING
AMOUNT = amt2
CURRENCY = WAERS
* FILLER = ' '
LANGUAGE = SY-LANGU
IMPORTING
IN_WORDS = acct
* 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.
if waers ne 'INR'.
ecess_words1 = acct-word.
ENDIF.
endif.
DATA ERZET LIKE VBRK-ERZET .
*DATA ERZET LIKE VBRK-ERZET.
data:remtime like j_1iexchdr-remtime.
ERZET = ' ' .
LOOP AT IT_ADD.
EXNUM = IT_ADD-EXNUM.
*SHIFT EXNUM LEFT DELETING LEADING '0'.
ERZET = IT_ADD-ERZET.
* remtime = it_add-remtime.
ENDLOOP.
qt = 1.
SHIFT ITAB-quan LEFT DELETING LEADING '0'.
** loop at it_add.
** read table it_add with key kunnr = it_add-kunnr.
**
** if sy-subrc = '0'.
**
** select J_1ICSTNO kunnr from j_1imocust
** into (c_j_1icsTno , c_kunnr )
** where kunnr = it_add-kunnr.
** ENDSELECT.
** endif.
** endloop.
*break-point.
*LOOP AT ITAB.
read table itab with key werks = '1000'.
* IF ITAB-WERKS NE '1000'.
if sy-subrc = 0.
exnum = exnum+5(5).
*DD = DD+5(5).
endif.
read table itab with key werks = '2000'.
* IF ITAB-WERKS NE '1000'.
if sy-subrc = 0.
exnum = exnum+5(5).
DD = DD+5(5).
endif.
*ENDIF.
read table itab with key werks = '2100'.
* IF ITAB-WERKS NE '1000'.
if sy-subrc = 0.
exnum = exnum+5(5).
DD = DD+5(5).
ENDIF.
*ENDLOOP.
*loop at it_add.
*it_add-are_no = it_add-are_no+5(5).
*endloop.
CALL FUNCTION 'SSF_FUNCTION_MODULE_NAME'
EXPORTING
formname = 'ZSD_TAX'
* FORMNAME = 'ZSF_SD_TAX_INV_01'
* 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.
CALL FUNCTION fm_name
EXPORTING
remtime = remtime
exdt = exdt
cess = cess
hcess = hcess
sub_tot = sub_tot
edu_words = edu_words
ecess_words1 = ecess_words1
cst_vat = cst_vat
gross_word = gross_word
vat = vat
gross = gross
pp = pp
text1 = text1
text2 = text2
tot_assess = tot_assess
tot_assess1 = tot_assess1
edu_amt = edu_amt
fr = fr
vgbel = vgbel
j_1ichid = j_1ichid
j_1ipanno = j_1ipanno
j_1iexcd = j_1iexcd
hecess_words1 = hecess_words1
kmrp = kmrp
kval = kval
bezei = bezei
text3 = text3
po_no = po_no
note = note
disc1 = disc1
qt = qt
quan = quan
krt = krt
rate = rate
EXNUM = EXNUM
DD = DD
ERZET = ERZET
C_J_1IEXCD = C_J_1IEXCD
C_J_1ICSTNO = C_J_1ICSTNO
C_J_1IlSTNO = C_J_1ILSTNO
C_J_1IEXDI = C_J_1IEXDI "
C_J_1IEXCO = C_J_1IEXCO
sub_tot1 = sub_tot1 " EXCISE COMMESRATE
INVCT = INVCT
CHIDD = CHIDD
BONDT = BONDT
TEXT = TEXT
waers = waers
* ROUND_PR = ROUND_TOTL
* IMPORTING
* DOCUMENT_OUTPUT_INFO =
* JOB_OUTPUT_INFO =
* JOB_OUTPUT_OPTIONS =
TABLES
it_add = it_add
itab = itab
it_konv = it_konv
IT_ZTERM = IT_ZTERM
* 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.
REFRESH itab[].
CLEAR itab.
ENDFORM. "PROCESSING
************************************************************
2014 Jan 23 9:24 AM
2014 Jan 23 5:44 AM
Hi Raj,
If you using a query to fetch the Report.Check if you have mentioned Canceled='N' in your query.
Thanks
Merle
2014 Jan 24 3:47 AM
Dear Expert,
I am still waiting for the solution.....
Any one Here who can help me ??
2014 Jan 24 4:18 AM
Hi Raj,
I guess your code is going wrong!
- At the time of billing document creation and the excise document also creating internally
- Since RDOC is not a key field in J_1IEXCHDR table. So, Please provide me the screen shot ta for one RDOC how many EXNUM are showing in excise invoice table.
- Your coding is confusing and might me expecting some where wrong!
* If you observe the below select is it one to one relation ( RDOC = VEBELN ) check the table
SELECT SINGLE exnum rdoc exdat cpudt cputm remtime
FROM j_1iexchdr INTO CORRESPONDING FIELDS OF it_add
WHERE rdoc = vbeln
and docyr = '2013'.
* I understand that based on the partner function your selecting the query ( KUNAG, KUNRG) . Have you checked/DEBUG which VBELN is picking from the table.
SELECT SINGLE kunrg
vbeln
fkdat
fkart
regio
land1
kunrg
bukrs
zterm
erdat
erzet
xblnr
FROM vbrk INTO CORRESPONDING FIELDS OF it_add
WHERE vbeln = vbeln and
RFBSK NE 'E'.
IF you see the VBRK table the cancel document should like this, You should not pick the document. In debug check the document number and check the VBRK table.
IT_ADD is your driving table , apart from this I did't find any other issue.
2014 Jan 24 4:05 AM
Hi Raj,
if i'm not wrong you don't want cancel invoices in your report if this is your query the do following changes .
* in your select query add " RFBSK " field and put condition where RFBSK ne 'C'. Like as shown below.
SELECT SINGLE kunrg vbeln fkdat fkart RFBSK FROM vbrk INTO CORRESPONDING FIELDS OF it_add
WHERE vbeln = vbeln and RFBSK NE 'C'.
2014 Jan 24 6:04 AM
Thank you so much Expert for your Support. Now problem solved.
Simply I add this field..
SELECT SINGLE exnum
exdat
remtime
exbed
ecs
exaddtax1
werks
STATUS "Added by atin
FROM j_1iexchdr
INTO CORRESPONDING FIELDS OF it_add
WHERE rdoc = it_add-vbeln
and STATUS = 'C'. "Added 24.01.2014.