2007 Jan 04 7:10 AM
************************************************************************
*
TITLE : ZMLPOR(PURCHASE ORDER)
AUTHOR : Srinivas. G, OAK BROOK TECHNOLOGIES
DATE : 15 JUN 2003
MODIFIED BY : P.PATHY OBT
DATE OF LAST MODIFICATION : 09.04.03
TYPE : ON-LINE
VERSION : 1.0
FREQUENCY : As and when required
Running Time : Short
Spec :
Copied From : N/A
Called From : N/A
Transaction : N/A
Function Keys : N/A
Logical DB : N/A
Special Processing : N/A
PURPOSE : TO PRINT PURCHASE ORDER
History : : MODIFIED AS PER CLIENT REQUIREMENT
***********************************************************************
Modified By : Rajasekhar
Date of last Modification : 14.08.2003
Procedure Followed
Condition Type Meaning Procedure
a) PBXX Gross Price
b) ZD21 Discount Deduct this amount from Gross
Price
c) ZPF1 P&F Add this amount to b
d) JM01 Excise Add this amount to c
e) NAVS Sales Tax Add this amount to d
f) ZF20 Freight Add this amount to e
g) ZI20 Insurance Calculate this by deducting
Excise from e
************************************************************************
REPORT zmlpor MESSAGE-ID z115.
TABLES : ekko,ekpo,lfa1,t005t,konv,t052u,komk,t005,komp,eket,tinct,
eban,mdsb,makt,mara,tcurt,t006,t005u,adrc,KOMV.
DATA : w_rate LIKE konv-kbetr.
DATA : w_discnt LIKE konv-kbetr.
DATA : w_tdiscnt LIKE konv-kbetr.
DATA : w_ed LIKE konv-kbetr.
DATA : w_ted LIKE konv-kbetr.
DATA : w_tax LIKE konv-kbetr.
DATA : w_ttax LIKE konv-kbetr.
DATA : w_subtot LIKE konv-kbetr.
DATA : w_pf LIKE konv-kbetr.
DATA : w_tpf LIKE konv-kbetr.
DATA : w_others LIKE konv-kbetr.
DATA : w_tothers LIKE konv-kbetr.
DATA : w_total LIKE konv-kbetr.
DATA : w_total1 TYPE p DECIMALS 0.
DATA : w_state LIKE t005u-bezei,
w_cty LIKE t005t-landx.
DATA : w_sno TYPE i.
*****Variables to calculate percentages ******
DATA : w_disrt TYPE p DECIMALS 2.
DATA : w_pfrt TYPE p DECIMALS 2.
DATA : w_edrt TYPE p DECIMALS 2.
DATA : w_taxrt1 TYPE p DECIMALS 0.
DATA : w_taxrt TYPE p DECIMALS 0.
DATA : w_scrt TYPE p DECIMALS 0.
DATA : w_othersrt TYPE p DECIMALS 2.
DATA : w_rtflag(1).
DATA : w_imppotot TYPE p DECIMALS 2.
DATA : w_impltot TYPE p DECIMALS 2.
DATA : w_curr LIKE ekko-waers.
DATA : w_cur(15).
DATA : w_den LIKE konv-kbetr.
DATA : w_conval LIKE konv-kbetr.
DATA : w_scvar TYPE p DECIMALS 2.
*****End of variables*********
*****ADDED ON 11.02.03**********
DATA : i_komv TYPE STANDARD TABLE OF komv WITH HEADER LINE.
DATA : i_mepo1320 TYPE STANDARD TABLE OF meposchedule WITH HEADER LINE.
DATA: w_matpotext(40).
DATA : BEGIN OF i_stab OCCURS 0,
menge LIKE mepo1320-menge,
uzeit LIKE mepo1320-uzeit,
END OF i_stab.
DATA : w_etax LIKE konv-kbetr.
DATA : w_eces LIKE konv-kwert.
DATA : w_freight LIKE konv-kbetr.
DATA : w_ins LIKE konv-kbetr.
DATA : w_instal LIKE konv-kbetr.
DATA : w_eindt LIKE eket-eindt.
*****END 11.02.03**************
DATA : w_words(200).
DATA : w_wort(200).
DATA : w_text LIKE ekpo-txz01.
***READ TEXT FOR INSTRUCTIONS
DATA: tname1 LIKE thead-tdname.
DATA: mattext1 LIKE tline OCCURS 0 WITH HEADER LINE.
DATA: i_text(255).
DATA: mattext2 LIKE tline OCCURS 0 WITH HEADER LINE.
DATA: i_text1(255).
***
DATA: refname LIKE thead-tdname.
DATA: reftext LIKE tline OCCURS 0 WITH HEADER LINE.
DATA: w_reftext(50).
DATA: w_word1(30).
DATA: w_word2(30).
DATA: w_word3(30).
DATA: w_var1(5).
DATA: w_var2(5).
Added on 06.06.03. to Add Item Text ****
DATA: BEGIN OF i_itab OCCURS 0,
W_EINDT LIKE EKET-EINDT,
w_text(132),
END OF i_itab.
DATA: w_cnt TYPE i.
DATA: mattext3 LIKE tline OCCURS 0 WITH HEADER LINE.
DATA: tname3 LIKE thead-tdname.
*******End of Add ********
********Added on 26.05.2003*****
DATA: bezei LIKE tinct-bezei.
DATA: cnt TYPE i VALUE 1.
*******Added on 19.08.2003**********
DATA: w_cf.
***********
SELECTION-SCREEN BEGIN OF BLOCK blk WITH FRAME TITLE tit.
PARAMETERS : p_docno LIKE ekko-ebeln.
SELECTION-SCREEN END OF BLOCK blk.
INITIALIZATION.
tit = 'Selection Block'.
AT SELECTION-SCREEN.
SELECT SINGLE * FROM ekko WHERE ebeln = p_docno
AND bstyp = 'F'.
IF sy-subrc NE 0.
MESSAGE e000 WITH p_docno.
ENDIF.
START-OF-SELECTION.
PERFORM getdata.
PERFORM openform.
PERFORM writeform.
PERFORM closeform.
----
FORM GETDATA *
----
........ *
----
FORM getdata.
MOVE p_docno TO refname.
PERFORM reftext.
SELECT SINGLE * FROM ekko WHERE ebeln = p_docno
AND bstyp = 'F'.
SELECT SINGLE * FROM tcurt WHERE spras = 'E'
AND waers = ekko-waers.
w_curr = ekko-waers.
w_cur = tcurt-ktext.
SELECT SINGLE * FROM lfa1 WHERE lifnr = ekko-lifnr.
SELECT SINGLE * FROM adrc WHERE addrnumber = lfa1-adrnr.
SELECT SINGLE * FROM t005t WHERE land1 = lfa1-land1
AND spras = 'E'.
SELECT SINGLE * FROM t052u WHERE spras = 'E' AND zterm = ekko-zterm.
SELECT SINGLE * FROM t005
WHERE land1 = ekko-lands.
SELECT SINGLE * FROM t005u
WHERE spras = 'E'
AND land1 = lfa1-land1
AND bland = lfa1-regio.
w_state = t005u-bezei.
w_cty = t005t-landx.
TRANSLATE w_state TO UPPER CASE.
TRANSLATE w_cty TO UPPER CASE.
komk-kalsm = t005-kalsm.
komk-prsdt = ekko-bedat.
komk-ekorg = ekko-ekorg.
komk-mandt = ekko-mandt.
komk-aland = ekko-lands.
komk-bukrs = ekko-bukrs.
komk-hwaer = ekko-waers.
komk-waerk = ekko-waers.
komk-lifnr = ekko-lifnr.
komk-kappl = 'TX'.
ENDFORM.
----
FORM OPENFORM *
----
........ *
----
FORM openform.
CALL FUNCTION 'OPEN_FORM'
EXPORTING
form = 'YMS_MLPOR'
language = sy-langu.
ENDFORM.
----
FORM WRITEFORM *
----
........ *
----
FORM writeform.
PERFORM pono.
PERFORM address.
PERFORM ref.
PERFORM items.
PERFORM PF.
PERFORM total.
PERFORM words.
PERFORM basis.
PERFORM terms.
PERFORM schedule.
PERFORM instructions.
SELECT SINGLE * FROM eket WHERE ebeln = p_docno AND etenr EQ '2'.
IF EKET-ETENR EQ '2'.
W_DELFLAG = 'Y'.
ENDIF.
ENDSELECT.
*
IF W_DELFLAG EQ 'Y'.
IF sy-subrc EQ 0.
PERFORM new_form.
PERFORM del_schedule.
ENDIF.
ENDFORM.
----
FORM CLOSEFORM *
----
........ *
----
FORM closeform.
CALL FUNCTION 'CLOSE_FORM'
EXCEPTIONS
unopened = 1
bad_pageformat_for_print = 2
send_error = 3
spool_error = 4
OTHERS = 5.
ENDFORM.
----
FORM PONO *
----
........ *
----
FORM pono.
CALL FUNCTION 'WRITE_FORM'
EXPORTING
element = 'PONO'
window = 'PONO'.
ENDFORM.
----
FORM ADDRESS *
----
........ *
----
FORM address.
CALL FUNCTION 'WRITE_FORM'
EXPORTING
element = 'ADDRESS'
window = 'ADDRESS'.
ENDFORM.
----
FORM REF *
----
........ *
----
FORM ref.
CALL FUNCTION 'WRITE_FORM'
EXPORTING
element = 'REF'
window = 'REF'.
ENDFORM.
----
FORM ITEMS *
----
........ *
----
FORM items.
SELECT * FROM ekpo WHERE ebeln = ekko-ebeln AND
loekz EQ ''.
*SELECT SINGLE * FROM T006 WHERE MSEHI = EKPO-MEINS.
*READ TABLE I_MEPO1320 WITH KEY EBELN = EKPO-EBELN
EBELP = EKPO-EBELP.
I_STAB-MENGE = I_MEPO1320-MENGE.
I_STAB-UZEIT = I_MEPO1320-UZEIT.
*APPEND I_STAB.
*CLEAR I_STAB .
komk-txjcd = ekpo-txjcd.
komk-mwskz = ekpo-mwskz.
komp-kposn = ekpo-ebelp.
komp-werks = ekpo-werks.
komp-matnr = ekpo-matnr.
komp-matkl = ekpo-matkl.
komp-meins = ekpo-meins.
komp-mglme = ekpo-menge.
komp-wrbtr = ekpo-netwr.
komp-mwskz = ekpo-mwskz.
komp-mtart = ekpo-mtart.
CALL FUNCTION 'PRICING'
EXPORTING
calculation_type = 'B'
comm_head_i = komk
comm_item_i = komp
IMPORTING
comm_head_e = komk
comm_item_e = komp
TABLES
tkomv = i_komv.
CLEAR : w_disrt,w_pfrt,w_edrt,w_taxrt,w_othersrt,w_rtflag,
w_taxrt1,w_den,w_tax.
******************SHANKAR ECESS**********************************
SELECT SINGLE * FROM konv WHERE knumv = ekko-knumv
AND kposn = ekpo-ebelp
AND kschl = 'JEC1'.
IF sy-subrc EQ 0.
W_TAXRT = KONV-KBETR / 10.
w_eces = w_eces + konv-kwert.
ENDIF.
*******************************************************************
PERFORM cond_vals.
IF w_disrt EQ 0 AND w_pfrt EQ 0 AND w_edrt EQ 0 AND
w_taxrt EQ 0 .
W_TAXRT EQ 0 AND W_OTHERSRT EQ 0.
CLEAR w_rtflag.
ELSE.
w_rtflag = 'Y'.
ENDIF.
W_TEXT = EKPO-TXZ01.
CONDENSE W_TEXT no-gaps.
PERFORM itemtext.
IF ekko-waers EQ 'INR'.
CALL FUNCTION 'WRITE_FORM'
EXPORTING
element = 'MAIN'
window = 'MAIN'
EXCEPTIONS
element = 1
function = 2
type = 3
unopened = 4
unstarted = 5
window = 6
bad_pageformat_for_print = 7
spool_error = 8
OTHERS = 9.
cnt = cnt + 1.
ELSE.
CALL FUNCTION 'WRITE_FORM'
EXPORTING
element = 'MAIN2'
window = 'MAIN'
EXCEPTIONS
element = 1
function = 2
type = 3
unopened = 4
unstarted = 5
window = 6
bad_pageformat_for_print = 7
spool_error = 8
OTHERS = 9.
cnt = cnt + 1.
ENDIF.
LOOP AT i_itab.
CALL FUNCTION 'WRITE_FORM'
EXPORTING
element = 'ITEXT'
window = 'MAIN'
EXCEPTIONS
element = 1
function = 2
type = 3
unopened = 4
unstarted = 5
window = 6
bad_pageformat_for_print = 7
spool_error = 8
OTHERS = 9.
ENDLOOP.
IF ekko-bsart EQ 'SC' AND ekpo-pstyp EQ '3'.
CALL FUNCTION 'WRITE_FORM'
EXPORTING
element = 'SUB_CONTRACT_TEXT'
window = 'MAIN'
EXCEPTIONS
element = 1
function = 2
type = 3
unopened = 4
unstarted = 5
window = 6
bad_pageformat_for_print = 7
spool_error = 8
OTHERS = 9.
SELECT * FROM mdsb WHERE ebeln = ekpo-ebeln
AND ebelp = ekpo-ebelp.
SELECT SINGLE * FROM makt WHERE matnr = mdsb-matnr.
CALL FUNCTION 'WRITE_FORM'
EXPORTING
element = 'SUB_CONTRACT_ITEMS'
window = 'MAIN'
EXCEPTIONS
element = 1
function = 2
type = 3
unopened = 4
unstarted = 5
window = 6
bad_pageformat_for_print = 7
spool_error = 8
OTHERS = 9.
ENDSELECT.
ENDIF.
ENDSELECT.
CLEAR W_EINDT.
CLEAR cnt.
ENDFORM.
----
FORM PF *
----
........ *
----
FORM pf.
CALL FUNCTION 'WRITE_FORM'
EXPORTING
element = 'PF'
window = 'PF'.
ENDFORM.
----
FORM TOTAL *
----
........ *
----
FORM total.
IF w_curr NE 'INR'.
w_total = w_imppotot.
ENDIF.
w_total1 = w_total.
w_total = w_total1.
CALL FUNCTION 'WRITE_FORM'
EXPORTING
element = 'TOTAL'
window = 'TOTAL'.
ENDFORM.
----
FORM WORDS *
----
........ *
----
FORM words.
PERFORM spellamount.
CALL FUNCTION 'WRITE_FORM'
EXPORTING
element = 'WORDS'
window = 'WORDS'.
ENDFORM.
----
FORM BASIS *
----
........ *
----
FORM basis.
SELECT SINGLE * FROM tinct WHERE spras = 'E' AND inco1 = ekko-inco1.
CALL FUNCTION 'WRITE_FORM'
EXPORTING
element = 'BASIS'
window = 'BASIS'.
*clear tinct.
ENDFORM.
----
FORM TERMS *
----
........ *
----
FORM terms.
tname1 = ekko-ebeln.
CALL FUNCTION 'READ_TEXT'
EXPORTING
client = sy-mandt
id = 'F06'
language = 'E'
name = tname1
object = 'EKKO'
ARCHIVE_HANDLE = 0
LOCAL_CAT = ' '
IMPORTING
HEADER =
TABLES
lines = mattext1
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 EQ 0.
LOOP AT mattext1.
CONCATENATE i_text mattext1-tdline INTO i_text SEPARATED BY space.
CONDENSE i_text.
ENDLOOP.
ELSE.
i_text = ''.
ENDIF.
CALL FUNCTION 'WRITE_FORM'
EXPORTING
element = 'TERMS'
window = 'TERMS'.
ENDFORM.
----
FORM REFTEXT *
----
........ *
----
FORM reftext.
CALL FUNCTION 'READ_TEXT'
EXPORTING
client = sy-mandt
id = 'F01'
language = 'E'
name = refname
object = 'EKKO'
ARCHIVE_HANDLE = 0
LOCAL_CAT = ' '
IMPORTING
HEADER =
TABLES
lines = reftext
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 reftext.
CONCATENATE w_reftext reftext-tdline INTO w_reftext
SEPARATED BY space.
CONDENSE w_reftext.
ENDLOOP.
w_word1 = w_reftext+20(30).
SPLIT w_word1 AT ' ' INTO w_word2 w_word3.
w_word1 = w_reftext+0(20).
ENDFORM.
----
FORM SCHEDULE *
----
........ *
----
FORM schedule.
*clear : MATTEXT1,I_TEXT.
CALL FUNCTION 'READ_TEXT'
EXPORTING
client = sy-mandt
id = 'F05'
language = 'E'
name = tname1
object = 'EKKO'
ARCHIVE_HANDLE = 0
LOCAL_CAT = ' '
IMPORTING
HEADER =
TABLES
lines = mattext2
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 mattext2.
CONCATENATE i_text1 mattext2-tdline INTO i_text1 SEPARATED BY space.
CONDENSE i_text1.
ENDLOOP.
CALL FUNCTION 'WRITE_FORM'
EXPORTING
element = 'SCHEDULE'
window = 'SCHEDULE'.
ENDFORM.
----
FORM INSTRUCTIONS *
----
........ *
----
FORM instructions.
CALL FUNCTION 'WRITE_FORM'
EXPORTING
element = 'INSTRUCT'
window = 'INSTRUCT'.
ENDFORM.
----
FORM ITEMTEXT *
----
........ *
----
FORM itemtext.
REFRESH : mattext3,i_itab.
CLEAR : w_matpotext.
CONCATENATE ekpo-ebeln ekpo-ebelp INTO tname3.
CALL FUNCTION 'READ_TEXT'
EXPORTING
CLIENT = SY-MANDT
id = 'F03'
language = 'E'
name = tname3
object = 'EKPO'
ARCHIVE_HANDLE = 0
IMPORTING
HEADER =
TABLES
lines = mattext3
EXCEPTIONS
id = 1
language = 2
name = 3
not_found = 4
object = 5
reference_check = 6
wrong_access_to_archive = 7
OTHERS = 8.
LOOP AT mattext3.
w_cnt = w_cnt + 1.
READ TABLE mattext3 INDEX w_cnt.
i_itab-w_text = mattext3-tdline.
***SANKAR FOR DELVIERY DATE**************
SELECT SINGLE EINDT INTO I_ITAB-W_EINDT FROM EKET WHERE
EBELN = EKPO-EBELN AND EBELP = EKPO-EBELP.
APPEND i_itab.
CLEAR i_itab.
CONCATENATE W_MATPOTEXT MATTEXT3-TDLINE INTO W_MATPOTEXT
SEPARATED BY SPACE.
CONDENSE W_MATPOTEXT.
ENDLOOP.
IF I_ITAB[] IS INITIAL.
SELECT EINDT INTO I_ITAB-W_EINDT FROM EKET WHERE
EBELN = EKPO-EBELN AND EBELP = EKPO-EBELP.
*COUNT = COUNT + 1
APPEND I_ITAB.
ENDSELECT.
*ELSE.
*SELECT EINDT INTO I_ITAB-W_EINDT FROM EKET WHERE
EBELN = EKPO-EBELN AND EBELP = EKPO-EBELP.
*COUNT = COUNT + 1.
*MODIFY I_ITAB-W_EINDT INDEX COUNT.
*ENDSELECT.
ENDIF.
***SANKAR FOR DELVIERY DATE**************
ENDFORM.
----
FORM COND_VALS *
----
........ *
----
FORM cond_vals.
CLEAR : w_rate,w_ed,w_discnt,w_tax,w_subtot,w_pf,w_others,w_pf,w_ins,
w_impltot.
CLEAR : w_freight,w_etax, w_cf, w_impltot,w_eces.
********BASIC PRICE CALCULATION*************
SELECT SINGLE * FROM konv WHERE knumv = ekko-knumv
AND kposn = ekpo-ebelp
AND kschl IN ('PBXX','PB00','ZP20','ZP21').
IF sy-subrc EQ 0.
w_rate = konv-kbetr.
w_impltot = konv-kwert.
IF konv-waers EQ 'JPY'.
w_rate = w_rate * 100.
w_impltot = w_impltot * 100.
ELSEIF konv-waers EQ 'EUR'.
w_rate = w_rate / 10.
w_impltot = w_impltot / 10.
ENDIF.
w_imppotot = w_imppotot + w_impltot.
ENDIF.
********END OF BASIC PRICE CALCULATION*************
*******P&F CALCULATION***********************
SELECT * FROM konv WHERE knumv = ekko-knumv
AND kposn = ekpo-ebelp
AND ( ( kschl = 'ZPF1' AND kschl = 'ZPF2' )
AND ( kschl = 'ZPF1' OR kschl = 'ZPF2' ).
IF sy-subrc EQ 0.
IF w_pfrt EQ 0.
w_pfrt = konv-kbetr / 10.
ENDIF.
w_pf = w_pf + konv-kwert.
ENDIF.
ENDSELECT.
*******END OF P&F CALCULATION***********************
*******OTHERS CALCULATION***********************
SELECT SINGLE * FROM konv WHERE knumv = ekko-knumv
AND kposn = ekpo-ebelp
AND kschl = 'ZO23'.
IF sy-subrc EQ 0.
w_othersrt = konv-kbetr / 10.
w_others = konv-kwert.
ENDIF.
*******END OF OTHERS CALCULATION***********************
*******INSTALLATION CALCULATION***********************
SELECT SINGLE * FROM konv WHERE knumv = ekko-knumv
AND kposn = ekpo-ebelp
AND kschl = 'ZO21'.
IF sy-subrc EQ 0.
W_INSTAL = KONV-KBETR.
w_instal = konv-kwert.
w_others = w_others + w_instal.
ENDIF.
*******END OF OTHERS CALCULATION***********************
*******ENTRY TAX CALCULATION*********************
SELECT SINGLE * FROM konv WHERE knumv = ekko-knumv
AND kposn = ekpo-ebelp
AND kschl = 'ZS00'.
IF sy-subrc EQ 0.
W_TAXRT = KONV-KBETR / 10.
w_etax = konv-kwert.
ENDIF.
*******END OF ENTRY TAX CALCULATION*********************
******fREIGHT CALCULATION****************************
SELECT SINGLE * FROM konv WHERE knumv = ekko-knumv
AND kposn = ekpo-ebelp
AND kschl = 'ZF20'
AND kbetr NE 0.
*
IF sy-subrc EQ 0.
IF konv-kbetr EQ 0. "Percentage
SELECT SINGLE * FROM konv WHERE knumv = ekko-knumv
AND kposn = ekpo-ebelp
AND kschl = 'ZF21'.
ENDIF.
ELSE.
SELECT SINGLE * FROM konv WHERE knumv = ekko-knumv
AND kposn = ekpo-ebelp
AND kschl = 'ZF21'.
ENDIF.
w_freight = konv-kwert.
SELECT SINGLE * FROM konv WHERE knumv = ekko-knumv
AND kposn = ekpo-ebelp
AND kschl = 'ZF20'.
if sy-subrc eq 0.
w_freight = w_freight + konv-kwert.
endif.
********Added By Rajasekhar
w_othersrt = w_othersrt + ( konv-kbetr / 10 ). "MRS
w_others = w_others + w_freight. "MRS
******END OF fREIGHT CALCULATION****************************
*****INSURANCE CALCULATION**********************************
SELECT SINGLE * FROM konv WHERE knumv = ekko-knumv
AND kposn = ekpo-ebelp
AND kschl = 'ZI20'.
IF sy-subrc EQ 0.
W_INS = KONV-KBETR.
w_ins = konv-kwert.
w_othersrt = w_othersrt + ( konv-kwert / 10 ). "MRS
w_others = w_others + w_ins. "MRS
ENDIF.
*****END OF INSURANCE CALCULATION****************************
*****EXCISE DUTY CALCULATION**********************************
READ TABLE i_komv WITH KEY kposn = ekPo-ebelp kschl = 'JMO1'.
IF sy-subrc EQ 0.
w_ed = i_komv-kwert.
w_edrt = i_komv-kbetr / 10.
ENDIF.
*******CESS VALUE CALCULATION BY SANKAR*******************
READ TABLE i_komv WITH KEY kposn = ekPo-ebelp KSCHL = 'JMO1'.
IF sy-subrc EQ 0.
w_eCES = i_komv-kwert + w_ed.
w_edrt = i_komv-kbetr / 10.
ENDIF.
w_ted = w_ted + w_eces .
ENDIF.
ENDIF.
ENDLOOP.
******END OF EXCISE DUTY CALCULATION**********************************
*****SALES TAX CALCULATION*******************************************
READ TABLE i_komv WITH KEY kposn = ekpo-ebelp
kschl = 'JIP4'.
IF sy-subrc EQ 0.
w_scrt = i_komv-kbetr / 10.
ENDIF.
w_tax = ekpo-navnw.
w_den = ekpo-netwr + w_ed.
IF w_den NE 0.
w_scvar = w_tax * 100 / w_den.
w_taxrt1 = w_scvar .
w_scrt = ( w_scvar - w_taxrt1 ) * 100 / w_taxrt1.
w_scrt = w_scvar.
ENDIF.
w_taxrt = w_taxrt1.
MOVE w_taxrt TO w_var1.
CONCATENATE w_var1 '%' INTO w_var1.
MOVE w_scrt TO w_var2.
CONCATENATE w_var2 '%' INTO w_var2.
**To get (3% + 5% = 3.15%)**
w_scrt = w_scrt * w_taxrt / 100 .
w_taxrt = w_taxrt + w_scrt.
**End of code*********
********************
w_ttax = w_ttax + w_tax.
*****END SALES TAX CALCULATION***************************************
******DISCOUNT CALCULATION******************************************
SELECT SINGLE * FROM konv WHERE knumv = ekko-knumv
AND kposn = ekpo-ebelp
AND kschl = 'ZD21'.
IF sy-subrc EQ 0.
w_disrt = konv-kbetr / 10.
IF w_disrt LT 0.
w_disrt = w_disrt * -1.
ENDIF.
w_discnt = konv-kwert.
IF w_discnt LT 0.
w_discnt = w_discnt * -1.
ENDIF.
ENDIF.
w_tdiscnt = w_tdiscnt + w_discnt.
***********END OF DISCOUNT CALCULATION****************************
************DELIVERY SCHEDULE CALCULATION************************+
IF w_eindt NE ''.
SELECT SINGLE * FROM eket WHERE ebeln = p_docno AND ebelp = ekpo-ebelp.
IF sy-subrc EQ 0.
w_eindt = eket-eindt.
ENDIF.
ENDIF.
***********END OF DELIVERY SCHEDULE**************************
C & F Calculation ***********Rajasekhar******
SELECT SINGLE * FROM konv WHERE knumv = ekko-knumv
AND kposn = ekpo-ebelp
AND kschl = 'ZC23'.
IF sy-subrc EQ 0.
w_cf = 'Y'.
w_others = w_others + ( konv-kbetr / 10 ).
ENDIF.
IF ekpo-bpumz NE 0 AND ekpo-bpumn NE 0.
w_subtot = ekpo-menge * w_rate * ekpo-bpumz - w_discnt +
w_ed + w_tax + w_pf + w_others + w_eces .
ELSE.
w_subtot = ekpo-menge * w_rate - w_discnt + w_ed + w_tax + w_pf +
w_others + w_eces .
ENDIF.
w_total = w_total + w_subtot.
IF w_cf = 'Y'.
w_impltot = w_subtot.
w_imppotot = w_total.
ENDIF.
ENDFORM.
----
FORM NEW_FORM *
----
........ *
----
FORM new_form.
CALL FUNCTION 'END_FORM'
IMPORTING
RESULT =
EXCEPTIONS
UNOPENED = 1
BAD_PAGEFORMAT_FOR_PRINT = 2
SPOOL_ERROR = 3
OTHERS = 4
.
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 'START_FORM'
EXPORTING
ARCHIVE_INDEX =
form = 'YMS_MLPOR'
LANGUAGE = ' '
STARTPAGE = ' '
PROGRAM = ' '
MAIL_APPL_OBJECT =
IMPORTING
LANGUAGE =
EXCEPTIONS
FORM = 1
FORMAT = 2
UNENDED = 3
UNOPENED = 4
UNUSED = 5
SPOOL_ERROR = 6
OTHERS = 7
.
IF sy-subrc <> 0.
MESSAGE ID SY-MSGID TYPE SY-MSGTY NUMBER SY-MSGNO
WITH SY-MSGV1 SY-MSGV2 SY-MSGV3 SY-MSGV4.
ENDIF.
ENDFORM.
----
FORM DEL_SCHEDULE *
----
........ *
----
FORM del_schedule.
CALL FUNCTION 'WRITE_FORM'
EXPORTING
element = 'ADDRESS'
window = 'ADDRESS'.
CALL FUNCTION 'WRITE_FORM'
EXPORTING
element = 'PONO'
window = 'PONO'.
CALL FUNCTION 'WRITE_FORM'
EXPORTING
element = 'DEL_TEXT'
window = 'MAIN'.
SELECT * FROM eket WHERE ebeln = p_docno.
SELECT SINGLE * FROM ekpo WHERE ebeln = eket-ebeln
AND ebelp = eket-ebelp.
w_sno = w_sno + 1.
CALL FUNCTION 'WRITE_FORM'
EXPORTING
element = 'DEL_SCHEDULE'
window = 'MAIN'.
ENDSELECT.
ENDFORM.
----
FORM SPELLAMOUNT *
----
........ *
----
FORM spellamount.
*if w_curr ne 'INR'.
w_total = w_imppotot.
*endif.
w_total1 = w_total.
w_total = w_total1.
CALL FUNCTION 'ZSPELLAMOUNT'
EXPORTING
amount = w_total
IMPORTING
words = w_words
wort = w_wort
EXCEPTIONS
exceed = 1
OTHERS = 2.
ENDFORM.
************************************************************************
*
TITLE : ZMLPOR(PURCHASE ORDER)
AUTHOR : Srinivas. G, OAK BROOK TECHNOLOGIES
DATE : 15 JUN 2003
MODIFIED BY : P.PATHY OBT
DATE OF LAST MODIFICATION : 09.04.03
TYPE : ON-LINE
VERSION : 1.0
FREQUENCY : As and when required
Running Time : Short
Spec :
Copied From : N/A
Called From : N/A
Transaction : N/A
Function Keys : N/A
Logical DB : N/A
Special Processing : N/A
PURPOSE : TO PRINT PURCHASE ORDER
History : : MODIFIED AS PER CLIENT REQUIREMENT
***********************************************************************
Modified By : Rajasekhar
Date of last Modification : 14.08.2003
Procedure Followed
Condition Type Meaning Procedure
a) PBXX Gross Price
b) ZD21 Discount Deduct this amount from Gross
Price
c) ZPF1 P&F Add this amount to b
d) JM01 Excise Add this amount to c
e) NAVS Sales Tax Add this amount to d
f) ZF20 Freight Add this amount to e
g) ZI20 Insurance Calculate this by deducting
Excise from e
************************************************************************
REPORT zmlpor MESSAGE-ID z115.
TABLES : ekko,ekpo,lfa1,t005t,konv,t052u,komk,t005,komp,eket,tinct,
eban,mdsb,makt,mara,tcurt,t006,t005u,adrc,KOMV.
DATA : w_rate LIKE konv-kbetr.
DATA : w_discnt LIKE konv-kbetr.
DATA : w_tdiscnt LIKE konv-kbetr.
DATA : w_ed LIKE konv-kbetr.
DATA : w_ted LIKE konv-kbetr.
DATA : w_tax LIKE konv-kbetr.
DATA : w_ttax LIKE konv-kbetr.
DATA : w_subtot LIKE konv-kbetr.
DATA : w_pf LIKE konv-kbetr.
DATA : w_tpf LIKE konv-kbetr.
DATA : w_others LIKE konv-kbetr.
DATA : w_tothers LIKE konv-kbetr.
DATA : w_total LIKE konv-kbetr.
DATA : w_total1 TYPE p DECIMALS 0.
DATA : w_state LIKE t005u-bezei,
w_cty LIKE t005t-landx.
DATA : w_sno TYPE i.
*****Variables to calculate percentages ******
DATA : w_disrt TYPE p DECIMALS 2.
DATA : w_pfrt TYPE p DECIMALS 2.
DATA : w_edrt TYPE p DECIMALS 2.
DATA : w_taxrt1 TYPE p DECIMALS 0.
DATA : w_taxrt TYPE p DECIMALS 0.
DATA : w_scrt TYPE p DECIMALS 0.
DATA : w_othersrt TYPE p DECIMALS 2.
DATA : w_rtflag(1).
DATA : w_imppotot TYPE p DECIMALS 2.
DATA : w_impltot TYPE p DECIMALS 2.
DATA : w_curr LIKE ekko-waers.
DATA : w_cur(15).
DATA : w_den LIKE konv-kbetr.
DATA : w_conval LIKE konv-kbetr.
DATA : w_scvar TYPE p DECIMALS 2.
*****End of variables*********
*****ADDED ON 11.02.03**********
DATA : i_komv TYPE STANDARD TABLE OF komv WITH HEADER LINE.
DATA : i_mepo1320 TYPE STANDARD TABLE OF meposchedule WITH HEADER LINE.
DATA: w_matpotext(40).
DATA : BEGIN OF i_stab OCCURS 0,
menge LIKE mepo1320-menge,
uzeit LIKE mepo1320-uzeit,
END OF i_stab.
DATA : w_etax LIKE konv-kbetr.
DATA : w_eces LIKE konv-kwert.
DATA : w_freight LIKE konv-kbetr.
DATA : w_ins LIKE konv-kbetr.
DATA : w_instal LIKE konv-kbetr.
DATA : w_eindt LIKE eket-eindt.
*****END 11.02.03**************
DATA : w_words(200).
DATA : w_wort(200).
DATA : w_text LIKE ekpo-txz01.
***READ TEXT FOR INSTRUCTIONS
DATA: tname1 LIKE thead-tdname.
DATA: mattext1 LIKE tline OCCURS 0 WITH HEADER LINE.
DATA: i_text(255).
DATA: mattext2 LIKE tline OCCURS 0 WITH HEADER LINE.
DATA: i_text1(255).
***
DATA: refname LIKE thead-tdname.
DATA: reftext LIKE tline OCCURS 0 WITH HEADER LINE.
DATA: w_reftext(50).
DATA: w_word1(30).
DATA: w_word2(30).
DATA: w_word3(30).
DATA: w_var1(5).
DATA: w_var2(5).
Added on 06.06.03. to Add Item Text ****
DATA: BEGIN OF i_itab OCCURS 0,
W_EINDT LIKE EKET-EINDT,
w_text(132),
END OF i_itab.
DATA: w_cnt TYPE i.
DATA: mattext3 LIKE tline OCCURS 0 WITH HEADER LINE.
DATA: tname3 LIKE thead-tdname.
*******End of Add ********
********Added on 26.05.2003*****
DATA: bezei LIKE tinct-bezei.
DATA: cnt TYPE i VALUE 1.
*******Added on 19.08.2003**********
DATA: w_cf.
***********
SELECTION-SCREEN BEGIN OF BLOCK blk WITH FRAME TITLE tit.
PARAMETERS : p_docno LIKE ekko-ebeln.
SELECTION-SCREEN END OF BLOCK blk.
INITIALIZATION.
tit = 'Selection Block'.
AT SELECTION-SCREEN.
SELECT SINGLE * FROM ekko WHERE ebeln = p_docno
AND bstyp = 'F'.
IF sy-subrc NE 0.
MESSAGE e000 WITH p_docno.
ENDIF.
START-OF-SELECTION.
PERFORM getdata.
PERFORM openform.
PERFORM writeform.
PERFORM closeform.
----
FORM GETDATA *
----
........ *
----
FORM getdata.
MOVE p_docno TO refname.
PERFORM reftext.
SELECT SINGLE * FROM ekko WHERE ebeln = p_docno
AND bstyp = 'F'.
SELECT SINGLE * FROM tcurt WHERE spras = 'E'
AND waers = ekko-waers.
w_curr = ekko-waers.
w_cur = tcurt-ktext.
SELECT SINGLE * FROM lfa1 WHERE lifnr = ekko-lifnr.
SELECT SINGLE * FROM adrc WHERE addrnumber = lfa1-adrnr.
SELECT SINGLE * FROM t005t WHERE land1 = lfa1-land1
AND spras = 'E'.
SELECT SINGLE * FROM t052u WHERE spras = 'E' AND zterm = ekko-zterm.
SELECT SINGLE * FROM t005
WHERE land1 = ekko-lands.
SELECT SINGLE * FROM t005u
WHERE spras = 'E'
AND land1 = lfa1-land1
AND bland = lfa1-regio.
w_state = t005u-bezei.
w_cty = t005t-landx.
TRANSLATE w_state TO UPPER CASE.
TRANSLATE w_cty TO UPPER CASE.
komk-kalsm = t005-kalsm.
komk-prsdt = ekko-bedat.
komk-ekorg = ekko-ekorg.
komk-mandt = ekko-mandt.
komk-aland = ekko-lands.
komk-bukrs = ekko-bukrs.
komk-hwaer = ekko-waers.
komk-waerk = ekko-waers.
komk-lifnr = ekko-lifnr.
komk-kappl = 'TX'.
ENDFORM.
----
FORM OPENFORM *
----
........ *
----
FORM openform.
CALL FUNCTION 'OPEN_FORM'
EXPORTING
form = 'YMS_MLPOR'
language = sy-langu.
ENDFORM.
----
FORM WRITEFORM *
----
........ *
----
FORM writeform.
PERFORM pono.
PERFORM address.
PERFORM ref.
PERFORM items.
PERFORM PF.
PERFORM total.
PERFORM words.
PERFORM basis.
PERFORM terms.
PERFORM schedule.
PERFORM instructions.
SELECT SINGLE * FROM eket WHERE ebeln = p_docno AND etenr EQ '2'.
IF EKET-ETENR EQ '2'.
W_DELFLAG = 'Y'.
ENDIF.
ENDSELECT.
*
IF W_DELFLAG EQ 'Y'.
IF sy-subrc EQ 0.
PERFORM new_form.
PERFORM del_schedule.
ENDIF.
ENDFORM.
----
FORM CLOSEFORM *
----
........ *
----
FORM closeform.
CALL FUNCTION 'CLOSE_FORM'
EXCEPTIONS
unopened = 1
bad_pageformat_for_print = 2
send_error = 3
spool_error = 4
OTHERS = 5.
ENDFORM.
----
FORM PONO *
----
........ *
----
FORM pono.
CALL FUNCTION 'WRITE_FORM'
EXPORTING
element = 'PONO'
window = 'PONO'.
ENDFORM.
----
FORM ADDRESS *
----
........ *
----
FORM address.
CALL FUNCTION 'WRITE_FORM'
EXPORTING
element = 'ADDRESS'
window = 'ADDRESS'.
ENDFORM.
----
FORM REF *
----
........ *
----
FORM ref.
CALL FUNCTION 'WRITE_FORM'
EXPORTING
element = 'REF'
window = 'REF'.
ENDFORM.
----
FORM ITEMS *
----
........ *
----
FORM items.
SELECT * FROM ekpo WHERE ebeln = ekko-ebeln AND
loekz EQ ''.
*SELECT SINGLE * FROM T006 WHERE MSEHI = EKPO-MEINS.
*READ TABLE I_MEPO1320 WITH KEY EBELN = EKPO-EBELN
EBELP = EKPO-EBELP.
I_STAB-MENGE = I_MEPO1320-MENGE.
I_STAB-UZEIT = I_MEPO1320-UZEIT.
*APPEND I_STAB.
*CLEAR I_STAB .
komk-txjcd = ekpo-txjcd.
komk-mwskz = ekpo-mwskz.
komp-kposn = ekpo-ebelp.
komp-werks = ekpo-werks.
komp-matnr = ekpo-matnr.
komp-matkl = ekpo-matkl.
komp-meins = ekpo-meins.
komp-mglme = ekpo-menge.
komp-wrbtr = ekpo-netwr.
komp-mwskz = ekpo-mwskz.
komp-mtart = ekpo-mtart.
CALL FUNCTION 'PRICING'
EXPORTING
calculation_type = 'B'
comm_head_i = komk
comm_item_i = komp
IMPORTING
comm_head_e = komk
comm_item_e = komp
TABLES
tkomv = i_komv.
CLEAR : w_disrt,w_pfrt,w_edrt,w_taxrt,w_othersrt,w_rtflag,
w_taxrt1,w_den,w_tax.
******************SHANKAR ECESS**********************************
SELECT SINGLE * FROM konv WHERE knumv = ekko-knumv
AND kposn = ekpo-ebelp
AND kschl = 'JEC1'.
IF sy-subrc EQ 0.
W_TAXRT = KONV-KBETR / 10.
w_eces = w_eces + konv-kwert.
ENDIF.
*******************************************************************
PERFORM cond_vals.
IF w_disrt EQ 0 AND w_pfrt EQ 0 AND w_edrt EQ 0 AND
w_taxrt EQ 0 .
W_TAXRT EQ 0 AND W_OTHERSRT EQ 0.
CLEAR w_rtflag.
ELSE.
w_rtflag = 'Y'.
ENDIF.
W_TEXT = EKPO-TXZ01.
CONDENSE W_TEXT no-gaps.
PERFORM itemtext.
IF ekko-waers EQ 'INR'.
CALL FUNCTION 'WRITE_FORM'
EXPORTING
element = 'MAIN'
window = 'MAIN'
EXCEPTIONS
element = 1
function = 2
type = 3
unopened = 4
unstarted = 5
window = 6
bad_pageformat_for_print = 7
spool_error = 8
OTHERS = 9.
cnt = cnt + 1.
ELSE.
CALL FUNCTION 'WRITE_FORM'
EXPORTING
element = 'MAIN2'
window = 'MAIN'
EXCEPTIONS
element = 1
function = 2
type = 3
unopened = 4
unstarted = 5
window = 6
bad_pageformat_for_print = 7
spool_error = 8
OTHERS = 9.
cnt = cnt + 1.
ENDIF.
LOOP AT i_itab.
CALL FUNCTION 'WRITE_FORM'
EXPORTING
element = 'ITEXT'
window = 'MAIN'
EXCEPTIONS
element = 1
function = 2
type = 3
unopened = 4
unstarted = 5
window = 6
bad_pageformat_for_print = 7
spool_error = 8
OTHERS = 9.
ENDLOOP.
IF ekko-bsart EQ 'SC' AND ekpo-pstyp EQ '3'.
CALL FUNCTION 'WRITE_FORM'
EXPORTING
element = 'SUB_CONTRACT_TEXT'
window = 'MAIN'
EXCEPTIONS
element = 1
function = 2
type = 3
unopened = 4
unstarted = 5
window = 6
bad_pageformat_for_print = 7
spool_error = 8
OTHERS = 9.
SELECT * FROM mdsb WHERE ebeln = ekpo-ebeln
AND ebelp = ekpo-ebelp.
SELECT SINGLE * FROM makt WHERE matnr = mdsb-matnr.
CALL FUNCTION 'WRITE_FORM'
EXPORTING
element = 'SUB_CONTRACT_ITEMS'
window = 'MAIN'
EXCEPTIONS
element = 1
function = 2
type = 3
unopened = 4
unstarted = 5
window = 6
bad_pageformat_for_print = 7
spool_error = 8
OTHERS = 9.
ENDSELECT.
ENDIF.
ENDSELECT.
CLEAR W_EINDT.
CLEAR cnt.
ENDFORM.
----
FORM PF *
----
........ *
----
FORM pf.
CALL FUNCTION 'WRITE_FORM'
EXPORTING
element = 'PF'
window = 'PF'.
ENDFORM.
----
FORM TOTAL *
----
........ *
----
FORM total.
IF w_curr NE 'INR'.
w_total = w_imppotot.
ENDIF.
w_total1 = w_total.
w_total = w_total1.
CALL FUNCTION 'WRITE_FORM'
EXPORTING
element = 'TOTAL'
window = 'TOTAL'.
ENDFORM.
----
FORM WORDS *
----
........ *
----
FORM words.
PERFORM spellamount.
CALL FUNCTION 'WRITE_FORM'
EXPORTING
element = 'WORDS'
window = 'WORDS'.
ENDFORM.
----
FORM BASIS *
----
........ *
----
FORM basis.
SELECT SINGLE * FROM tinct WHERE spras = 'E' AND inco1 = ekko-inco1.
CALL FUNCTION 'WRITE_FORM'
EXPORTING
element = 'BASIS'
window = 'BASIS'.
*clear tinct.
ENDFORM.
----
FORM TERMS *
----
........ *
----
FORM terms.
tname1 = ekko-ebeln.
CALL FUNCTION 'READ_TEXT'
EXPORTING
client = sy-mandt
id = 'F06'
language = 'E'
name = tname1
object = 'EKKO'
ARCHIVE_HANDLE = 0
LOCAL_CAT = ' '
IMPORTING
HEADER =
TABLES
lines = mattext1
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 EQ 0.
LOOP AT mattext1.
CONCATENATE i_text mattext1-tdline INTO i_text SEPARATED BY space.
CONDENSE i_text.
ENDLOOP.
ELSE.
i_text = ''.
ENDIF.
CALL FUNCTION 'WRITE_FORM'
EXPORTING
element = 'TERMS'
window = 'TERMS'.
ENDFORM.
----
FORM REFTEXT *
----
........ *
----
FORM reftext.
CALL FUNCTION 'READ_TEXT'
EXPORTING
client = sy-mandt
id = 'F01'
language = 'E'
name = refname
object = 'EKKO'
ARCHIVE_HANDLE = 0
LOCAL_CAT = ' '
IMPORTING
HEADER =
TABLES
lines = reftext
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 reftext.
CONCATENATE w_reftext reftext-tdline INTO w_reftext
SEPARATED BY space.
CONDENSE w_reftext.
ENDLOOP.
w_word1 = w_reftext+20(30).
SPLIT w_word1 AT ' ' INTO w_word2 w_word3.
w_word1 = w_reftext+0(20).
ENDFORM.
----
FORM SCHEDULE *
----
........ *
----
FORM schedule.
*clear : MATTEXT1,I_TEXT.
CALL FUNCTION 'READ_TEXT'
EXPORTING
client = sy-mandt
id = 'F05'
language = 'E'
name = tname1
object = 'EKKO'
ARCHIVE_HANDLE = 0
LOCAL_CAT = ' '
IMPORTING
HEADER =
TABLES
lines = mattext2
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 mattext2.
CONCATENATE i_text1 mattext2-tdline INTO i_text1 SEPARATED BY space.
CONDENSE i_text1.
ENDLOOP.
CALL FUNCTION 'WRITE_FORM'
EXPORTING
element = 'SCHEDULE'
window = 'SCHEDULE'.
ENDFORM.
----
FORM INSTRUCTIONS *
----
........ *
----
FORM instructions.
CALL FUNCTION 'WRITE_FORM'
EXPORTING
element = 'INSTRUCT'
window = 'INSTRUCT'.
ENDFORM.
----
FORM ITEMTEXT *
----
........ *
----
FORM itemtext.
REFRESH : mattext3,i_itab.
CLEAR : w_matpotext.
CONCATENATE ekpo-ebeln ekpo-ebelp INTO tname3.
CALL FUNCTION 'READ_TEXT'
EXPORTING
CLIENT = SY-MANDT
id = 'F03'
language = 'E'
name = tname3
object = 'EKPO'
ARCHIVE_HANDLE = 0
IMPORTING
HEADER =
TABLES
lines = mattext3
EXCEPTIONS
id = 1
language = 2
name = 3
not_found = 4
object = 5
reference_check = 6
wrong_access_to_archive = 7
OTHERS = 8.
LOOP AT mattext3.
w_cnt = w_cnt + 1.
READ TABLE mattext3 INDEX w_cnt.
i_itab-w_text = mattext3-tdline.
***SANKAR FOR DELVIERY DATE**************
SELECT SINGLE EINDT INTO I_ITAB-W_EINDT FROM EKET WHERE
EBELN = EKPO-EBELN AND EBELP = EKPO-EBELP.
APPEND i_itab.
CLEAR i_itab.
CONCATENATE W_MATPOTEXT MATTEXT3-TDLINE INTO W_MATPOTEXT
SEPARATED BY SPACE.
CONDENSE W_MATPOTEXT.
ENDLOOP.
IF I_ITAB[] IS INITIAL.
SELECT EINDT INTO I_ITAB-W_EINDT FROM EKET WHERE
EBELN = EKPO-EBELN AND EBELP = EKPO-EBELP.
*COUNT = COUNT + 1
APPEND I_ITAB.
ENDSELECT.
*ELSE.
*SELECT EINDT INTO I_ITAB-W_EINDT FROM EKET WHERE
EBELN = EKPO-EBELN AND EBELP = EKPO-EBELP.
*COUNT = COUNT + 1.
*MODIFY I_ITAB-W_EINDT INDEX COUNT.
*ENDSELECT.
ENDIF.
***SANKAR FOR DELVIERY DATE**************
ENDFORM.
----
FORM COND_VALS *
----
........ *
----
FORM cond_vals.
CLEAR : w_rate,w_ed,w_discnt,w_tax,w_subtot,w_pf,w_others,w_pf,w_ins,
w_impltot.
CLEAR : w_freight,w_etax, w_cf, w_impltot,w_eces.
********BASIC PRICE CALCULATION*************
SELECT SINGLE * FROM konv WHERE knumv = ekko-knumv
AND kposn = ekpo-ebelp
AND kschl IN ('PBXX','PB00','ZP20','ZP21').
IF sy-subrc EQ 0.
w_rate = konv-kbetr.
w_impltot = konv-kwert.
IF konv-waers EQ 'JPY'.
w_rate = w_rate * 100.
w_impltot = w_impltot * 100.
ELSEIF konv-waers EQ 'EUR'.
w_rate = w_rate / 10.
w_impltot = w_impltot / 10.
ENDIF.
w_imppotot = w_imppotot + w_impltot.
ENDIF.
********END OF BASIC PRICE CALCULATION*************
*******P&F CALCULATION***********************
SELECT * FROM konv WHERE knumv = ekko-knumv
AND kposn = ekpo-ebelp
AND ( ( kschl = 'ZPF1' AND kschl = 'ZPF2' )
AND ( kschl = 'ZPF1' OR kschl = 'ZPF2' ).
IF sy-subrc EQ 0.
IF w_pfrt EQ 0.
w_pfrt = konv-kbetr / 10.
ENDIF.
w_pf = w_pf + konv-kwert.
ENDIF.
ENDSELECT.
*******END OF P&F CALCULATION***********************
*******OTHERS CALCULATION***********************
SELECT SINGLE * FROM konv WHERE knumv = ekko-knumv
AND kposn = ekpo-ebelp
AND kschl = 'ZO23'.
IF sy-subrc EQ 0.
w_othersrt = konv-kbetr / 10.
w_others = konv-kwert.
ENDIF.
*******END OF OTHERS CALCULATION***********************
*******INSTALLATION CALCULATION***********************
SELECT SINGLE * FROM konv WHERE knumv = ekko-knumv
AND kposn = ekpo-ebelp
AND kschl = 'ZO21'.
IF sy-subrc EQ 0.
W_INSTAL = KONV-KBETR.
w_instal = konv-kwert.
w_others = w_others + w_instal.
ENDIF.
*******END OF OTHERS CALCULATION***********************
*******ENTRY TAX CALCULATION*********************
SELECT SINGLE * FROM konv WHERE knumv = ekko-knumv
AND kposn = ekpo-ebelp
AND kschl = 'ZS00'.
IF sy-subrc EQ 0.
W_TAXRT = KONV-KBETR / 10.
w_etax = konv-kwert.
ENDIF.
*******END OF ENTRY TAX CALCULATION*********************
******fREIGHT CALCULATION****************************
SELECT SINGLE * FROM konv WHERE knumv = ekko-knumv
AND kposn = ekpo-ebelp
AND kschl = 'ZF20'
AND kbetr NE 0.
*
IF sy-subrc EQ 0.
IF konv-kbetr EQ 0. "Percentage
SELECT SINGLE * FROM konv WHERE knumv = ekko-knumv
AND kposn = ekpo-ebelp
AND kschl = 'ZF21'.
ENDIF.
ELSE.
SELECT SINGLE * FROM konv WHERE knumv = ekko-knumv
AND kposn = ekpo-ebelp
AND kschl = 'ZF21'.
ENDIF.
w_freight = konv-kwert.
SELECT SINGLE * FROM konv WHERE knumv = ekko-knumv
AND kposn = ekpo-ebelp
AND kschl = 'ZF20'.
if sy-subrc eq 0.
w_freight = w_freight + konv-kwert.
endif.
********Added By Rajasekhar
w_othersrt = w_othersrt + ( konv-kbetr / 10 ). "MRS
w_others = w_others + w_freight. "MRS
******END OF fREIGHT CALCULATION****************************
*****INSURANCE CALCULATION**********************************
SELECT SINGLE * FROM konv WHERE knumv = ekko-knumv
AND kposn = ekpo-ebelp
AND kschl = 'ZI20'.
IF sy-subrc EQ 0.
W_INS = KONV-KBETR.
w_ins = konv-kwert.
w_othersrt = w_othersrt + ( konv-kwert / 10 ). "MRS
w_others = w_others + w_ins. "MRS
ENDIF.
*****END OF INSURANCE CALCULATION****************************
*****EXCISE DUTY CALCULATION**********************************
READ TABLE i_komv WITH KEY kposn = ekPo-ebelp kschl = 'JMO1'.
IF sy-subrc EQ 0.
w_ed = i_komv-kwert.
w_edrt = i_komv-kbetr / 10.
ENDIF.
*******CESS VALUE CALCULATION BY SANKAR*******************
READ TABLE i_komv WITH KEY kposn = ekPo-ebelp KSCHL = 'JMO1'.
IF sy-subrc EQ 0.
w_eCES = i_komv-kwert + w_ed.
w_edrt = i_komv-kbetr / 10.
ENDIF.
w_ted = w_ted + w_eces .
ENDIF.
ENDIF.
ENDLOOP.
******END OF EXCISE DUTY CALCULATION**********************************
*****SALES TAX CALCULATION*******************************************
READ TABLE i_komv WITH KEY kposn = ekpo-ebelp
kschl = 'JIP4'.
IF sy-subrc EQ 0.
w_scrt = i_komv-kbetr / 10.
ENDIF.
w_tax = ekpo-navnw.
w_den = ekpo-netwr + w_ed.
IF w_den NE 0.
w_scvar = w_tax * 100 / w_den.
w_taxrt1 = w_scvar .
w_scrt = ( w_scvar - w_taxrt1 ) * 100 / w_taxrt1.
w_scrt = w_scvar.
ENDIF.
w_taxrt = w_taxrt1.
MOVE w_taxrt TO w_var1.
CONCATENATE w_var1 '%' INTO w_var1.
MOVE w_scrt TO w_var2.
CONCATENATE w_var2 '%' INTO w_var2.
**To get (3% + 5% = 3.15%)**
w_scrt = w_scrt * w_taxrt / 100 .
w_taxrt = w_taxrt + w_scrt.
**End of code*********
********************
w_ttax = w_ttax + w_tax.
*****END SALES TAX CALCULATION***************************************
******DISCOUNT CALCULATION******************************************
SELECT SINGLE * FROM konv WHERE knumv = ekko-knumv
AND kposn = ekpo-ebelp
AND kschl = 'ZD21'.
IF sy-subrc EQ 0.
w_disrt = konv-kbetr / 10.
IF w_disrt LT 0.
w_disrt = w_disrt * -1.
ENDIF.
w_discnt = konv-kwert.
IF w_discnt LT 0.
w_discnt = w_discnt * -1.
ENDIF.
ENDIF.
w_tdiscnt = w_tdiscnt + w_discnt.
***********END OF DISCOUNT CALCULATION****************************
************DELIVERY SCHEDULE CALCULATION************************+
IF w_eindt NE ''.
SELECT SINGLE * FROM eket WHERE ebeln = p_docno AND ebelp = ekpo-ebelp.
IF sy-subrc EQ 0.
w_eindt = eket-eindt.
ENDIF.
ENDIF.
***********END OF DELIVERY SCHEDULE**************************
C & F Calculation ***********Rajasekhar******
SELECT SINGLE * FROM konv WHERE knumv = ekko-knumv
AND kposn = ekpo-ebelp
AND kschl = 'ZC23'.
IF sy-subrc EQ 0.
w_cf = 'Y'.
w_others = w_others + ( konv-kbetr / 10 ).
ENDIF.
IF ekpo-bpumz NE 0 AND ekpo-bpumn NE 0.
w_subtot = ekpo-menge * w_rate * ekpo-bpumz - w_discnt +
w_ed + w_tax + w_pf + w_others + w_eces .
ELSE.
w_subtot = ekpo-menge * w_rate - w_discnt + w_ed + w_tax + w_pf +
w_others + w_eces .
ENDIF.
w_total = w_total + w_subtot.
IF w_cf = 'Y'.
w_impltot = w_subtot.
w_imppotot = w_total.
ENDIF.
ENDFORM.
----
FORM NEW_FORM *
----
........ *
----
FORM new_form.
CALL FUNCTION 'END_FORM'
IMPORTING
RESULT =
EXCEPTIONS
UNOPENED = 1
BAD_PAGEFORMAT_FOR_PRINT = 2
SPOOL_ERROR = 3
OTHERS = 4
.
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 'START_FORM'
EXPORTING
ARCHIVE_INDEX =
form = 'YMS_MLPOR'
LANGUAGE = ' '
STARTPAGE = ' '
PROGRAM = ' '
MAIL_APPL_OBJECT =
IMPORTING
LANGUAGE =
EXCEPTIONS
FORM = 1
FORMAT = 2
UNENDED = 3
UNOPENED = 4
UNUSED = 5
SPOOL_ERROR = 6
OTHERS = 7
.
IF sy-subrc <> 0.
MESSAGE ID SY-MSGID TYPE SY-MSGTY NUMBER SY-MSGNO
WITH SY-MSGV1 SY-MSGV2 SY-MSGV3 SY-MSGV4.
ENDIF.
ENDFORM.
----
FORM DEL_SCHEDULE *
----
........ *
----
FORM del_schedule.
CALL FUNCTION 'WRITE_FORM'
EXPORTING
element = 'ADDRESS'
window = 'ADDRESS'.
CALL FUNCTION 'WRITE_FORM'
EXPORTING
element = 'PONO'
window = 'PONO'.
CALL FUNCTION 'WRITE_FORM'
EXPORTING
element = 'DEL_TEXT'
window = 'MAIN'.
SELECT * FROM eket WHERE ebeln = p_docno.
SELECT SINGLE * FROM ekpo WHERE ebeln = eket-ebeln
AND ebelp = eket-ebelp.
w_sno = w_sno + 1.
CALL FUNCTION 'WRITE_FORM'
EXPORTING
element = 'DEL_SCHEDULE'
window = 'MAIN'.
ENDSELECT.
ENDFORM.
----
FORM SPELLAMOUNT *
----
........ *
----
FORM spellamount.
*if w_curr ne 'INR'.
w_total = w_imppotot.
*endif.
w_total1 = w_total.
w_total = w_total1.
CALL FUNCTION 'ZSPELLAMOUNT'
EXPORTING
amount = w_total
IMPORTING
words = w_words
wort = w_wort
EXCEPTIONS
exceed = 1
OTHERS = 2.
ENDFORM.
2007 Jan 04 7:12 AM
| User | Count |
|---|---|
| 3 | |
| 1 | |
| 1 | |
| 1 | |
| 1 | |
| 1 | |
| 1 | |
| 1 | |
| 1 | |
| 1 |