| ABAP Function Example - HR_IN_CHG_INR_WRDS
I was asked to create a custom invoice in sap scripts,which is completed now, the value was supposed to be converted in words, so I used the FM * CALL FUNCTION 'HR_IN_CHG_INR_WRDS'. By: Walia This function module is the right one. I have also made a program
for the credit note. I have used this function module.
*&---------------------------------------------------------------------*
*& Report ZFI_CREDIT_NOTE_CREATION
*&
*&---------------------------------------------------------------------*
REPORT ZFI_CREDIT_NOTE_CREATION NO STANDARD PAGE HEADING LINE-SIZE 120 line-count 72
message-id zvarun.
tables : vbrk,vbrp,kna1,konv,spell ,bsak.
data : camt like bsak-dmbtr.
data : begin of itab occurs 0,
vbeln like vbrk-vbeln,
fkdat like vbrk-fkdat,
xblnr like vbrk-xblnr,
knumv like vbrk-knumv,
kunrg like vbrk-kunrg,
matnr like vbrp-matnr,
arktx like vbrp-arktx,
fkimg like vbrp-fkimg,
posnr like vbrp-posnr,
end of itab.
data : begin of itab1 occurs 0,
knumv like konv-knumv,
kposn like konv-kposn,
kschl like konv-kschl,
kawrt like konv-kawrt,
kwert like konv-kwert,
KBETR LIKE KONV-KBETR,
end of itab1.
data : qty like vbrp-fkimg.
*data : tot type p decimals 2.
*data : tot1 type p decimals 2.
*data : tot2 type p decimals 2.
*data : tot3 type p decimals 2.
*data : tot like konv-kawrt.
data : sub_tot like konv-kawrt.
DATA : TOT2 LIKE KONV-KAWRT.
*DATA : TOT3 LIKE KONV-KAWRT.
*data : tot_wsp(15) type p.
data : tot_wsp(15) type p decimals 2.
data : unit_wsp like konv-kawrt.
data : tot_cst like konv-kWERT.
data : tot_VAT like konv-kWERT.
*data : unit_cst like konv-kawrt.
data : h_vbeln like vbrk-vbeln.
DATA : UNIT_MRP LIKE KONV-KBETR.
data line_no(3) type n.
data : credit_amt like konv-kwert.
DATA : cnt type i.
data amt_word like spell-word.
data : v_i_amount TYPE PC207-BETRG.
data : i_value like konv-kwert.
data : amt_in_words(255) TYPE c,
tmp_amt type TDSYMVALUE.
data : spell_fig(80).
DATA : VAT_AMT LIKE KONV-KWERT.
DATA : AMT LIKE KONV-KWERT.
selection-screen : begin of block blk1 with frame title text-001.
select-options : vbeln for vbrk-vbeln obligatory.
selection-screen : end of block blk1.
at selection-screen.
select * from vbrk where vbeln in vbeln.
endselect.
if sy-subrc ne 0.
message e999 with 'Docoment No does not exist....check'.
endif.
start-of-selection.
refresh : itab.
clear : itab.
select a~vbeln a~fkdat a~xblnr a~kunrg a~knumv
b~matnr b~arktx b~fkimg b~posnr
into corresponding fields of table itab from
vbrk as a inner join vbrp as b
on a~vbeln = b~vbeln
where a~vbeln in vbeln.
sort itab by vbeln xblnr knumv matnr.
loop at itab.
* LOOP AT ITAB.
unit_wsp = 0.
tot_wsp = 0.
tot_cst = 0.
UNIT_MRP = 0.
refresh : itab1.
clear : itab1.
select knumv kposn kschl kawrt kwert KBETR from konv into table itab1
where knumv = itab-knumv and
kposn = itab-posnr and
kschl in ('ZVAT','ZCST','ZWSP','ZMRP').
sort itab1 by knumv.
loop at itab1.
CASE ITAB1-KSCHL.
WHEN 'ZWSP'.
unit_wsp = itab1-kawrt / itab-fkimg.
tot_wsp = itab1-kawrt.
WHEN 'ZMRP'.
UNIT_MRP = ITAB1-KBETR.
WHEN 'ZCST'.
tot_cst = itab1-kwert.
WHEN 'ZVAT'.
TOT_VAT = ITAB1-KWERT.
ENDCASE.
ENDLOOP.
qty = qty + itab-fkimg.
tot2 = tot2 + tot_wsp .
sub_tot = tot2 + tot_cst + tot_vat.
* refresh : itab1.
* clear : itab1.
* select knumv kposn kschl kawrt kwert KBETR from konv into table itab1
* where knumv = itab-knumv and
* kposn = itab-posnr and
* kschl in ('ZVAT','ZCST','ZWSP','ZMRP').
* sort itab1 by knumv.
*
* loop at itab1.
* CASE ITAB1-KSCHL.
*when 'ZWSP' or 'ZVAT' OR 'ZCST'.
* credit_amt = credit_amt + ITAB1-KWERT.
** when 'ZVAT'.
** credit_amt = credit_amt + ITAB1-KWERT.
*
* ENDCASE.
endloop.
* ENDLOOP.
line_no = 0.
new-page.
skip 1.
write : /5(115) 'TEST RETAIL LIMITED ' centered.
write : /5(115) 'Test Unit ' centered.
write : /5(115) 'PHASE IV ' centered.
write : /5(115) 'E-MAIL : info@yourdomain.in' centered.
SKIP 1.
write : 2(118) SY-Uline.
write : /5(115) 'CREDIT NOTE' centered.
* line_no = 10.
data : fig1(70),
fig2(20),
fig3(20).
tmp_amt = sub_tot.
v_i_amount = tmp_amt.
call function 'HR_IN_CHG_INR_WRDS'
exporting
amt_in_num = v_i_amount
IMPORTING
AMT_IN_WORDS = amt_in_words
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.
move space to spell_fig.
split amt_in_words at 'Rupees' into fig1 fig2 .
concatenate fig1 'AND' fig2 'Only*' into spell_fig separated by space.
*camt = credit_amt.
* call function 'ZSPELL_AMOUNT'
* exporting
* amount = camt
* currency = 'INR'
* filler = ' '
* language = sy-langu
* importing
* in_words = spell
* exceptions
* not_found = 1
* too_large = 2
* others = 3.
*
* concatenate : spell-word 'AND' spell-decword 'PAISE'
* into spell-word separated by ' '.
* write spell-word to amt_word.
select single * from kna1 where kunnr = itab-kunrg.
write :/2(10) kna1-kunnr,
20(35) kna1-name1,
90(15) 'CREDIT NOTE NO.',
106(10) itab-vbeln.
write :/19(35) kna1-stras,
90(15) 'DATE',
106(10) ITAB-FKDAT.
write :/20(20) kna1-ort01,
(10) kna1-pstlz.
write : /20(3) 'PH:',
24(16) KNA1-TELF1,
41(4) 'FAX:',
46(30) KNA1-TELFX.
skip 2.
write : /1 'Dear Sir,'.
skip 1.
write : /20(45) 'We advise having Credited your account with a ',
(11) 'sum of Rs. ',
(15) sub_tot.
write : /1(1) '(',
2(78) spell_fig,
80(1) ')'.
write : /1 ' towards sale return as per particulars given below : '.
skip 3.
write : 2(118) sy-uline.
write : /3(10) 'ARTICLE NO',
22(20) 'ARTICLE DESCRIPTION',
53(10) 'QUANTITY',
69(3) 'MRP',
86(3) 'WSP',
100(9) 'TOTAL WSP'.
WRITE : /67(8) 'per UNIT',
84(8) 'per UNIT',
101(6) 'in Rs.'.
WRITE : /2(118) SY-ULINE.
skip.
* line_no = line_no + 4.
LOOP AT ITAB.
unit_wsp = 0.
tot_wsp = 0.
tot_cst = 0.
UNIT_MRP = 0.
refresh : itab1.
clear : itab1.
select knumv kposn kschl kawrt kwert KBETR from konv into table itab1
where knumv = itab-knumv and
kposn = itab-posnr and
kschl in ('ZVAT','ZCST','ZWSP','ZMRP').
sort itab1 by knumv.
loop at itab1.
CASE ITAB1-KSCHL.
WHEN 'ZWSP'.
unit_wsp = itab1-kawrt / itab-fkimg.
tot_wsp = itab1-kawrt.
WHEN 'ZMRP'.
UNIT_MRP = ITAB1-KBETR.
WHEN 'ZCST'.
tot_cst = itab1-kwert.
WHEN 'ZVAT'.
TOT_VAT = ITAB1-KWERT.
ENDCASE.
ENDLOOP.
write : /2(18) itab-matnr,
(25) itab-arktx,
(13) itab-fkimg,
65(11) UNIT_MRP,
(15) unit_wsp,
(15) tot_wsp.
*** line_no = line_no + 1.
*** if line_no > 68.
*** write :/60(10) '___CONT___'.
*** skip 3.
* line_no = 1.
*** endif.
* cnt = cnt + 1.
endloop.
* qty = qty + itab-fkimg.
* tot2 = tot2 + tot_wsp .
* sub_tot = tot2 + tot_cst + tot_vat.
* IF CNT > 1.
skip 2.
WRITE : /47(13) QTY.
write : /2(140) sy-uline.
write : /50 'Total WSP :',
93(15) tot2.
WRITE :/50 'Sale Return Amount :',
93(15) tot2.
write :/50 'VAT :',
93(15) tot_vat.
WRITE :/50 'C.S.T :',
93(15) tot_cst.
WRITE :/50 'Net Amount :',
93(15) sub_tot.
* write :/50 'Rounding off :'.
* write :/50 'Net Amount :'.
*ENDIF.
SKIP 3.
CLEAR : TOT2,TOT_VAT,TOT_CST,SUB_TOT.
clear credit_amt.
More Abapers Questions: ABAP Books ListABAP/4 Certification, Programming and Object Oriented Programming Books Smart Forms
ABAP Menu:
Return to Index:-
(c) www.gotothings.com All material on this site is Copyright.
|