elseif out_tab_list_1-fkart = 'ZPLD' or out_tab_list_1-fkart = 'ZPLE'.
invoiceheader-bstnk = out_tab_list_1-bstnk. "cpo
invoiceheader-vbeln = out_tab_list_1-vbelna. "so
invoiceheader-vbelnf = out_tab_list_1-vbeln ." BILLING
***GET SHIPPING DATE.
select single lfdat into invoiceheader-lfdat
from likp inner join lips
on likp~vbeln = lips~vbeln
where vgbel = out_tab_list_1-vbelna.
***sold to/billing to address
clear: vbpa, adrc, adrct, t005t.
select single * from vbpa where vbeln = out_tab_list_1-vbelna
and ( parvw = 'PY' or parvw = 'RG' ).
select single * from adrc where addrnumber = vbpa-adrnr .
select single * from kna1 where kunnr = vbpa-kunnr.
select single * from t005t
where land1 = adrc-country
and spras = 'E' .
invoiceheader-bill_to = vbpa-kunnr.
invoiceheader-adr2_name1 = adrc-name1.
invoiceheader-adr2_st = adrc-street.
invoiceheader-region = adrc-city1.
invoiceheader-adr2_supply = adrc-str_suppl1.
invoiceheader-adr2_post = adrc-post_code1.
invoiceheader-adr2_county = t005t-landx.
invoiceheader-stceg = kna1-stceg.
***get billing type
invoiceheader-fkart = out_tab_list_1-fkart.
***get HAWB
select single * from zpcesddninfo where vbeln =
out_tab_list_1-vbelnl.
invoiceheader-xblnr = zpcesddninfo-bol_no.
***ship to address
clear: vbpa, adrc, adrct, t005t.
select single * from vbpa
where vbeln = out_tab_list_1-vbelna and ( parvw = 'WE' or parvw
= 'SH' ) .
select single * from adrc where addrnumber = vbpa-adrnr.
select single * from adrct where addrnumber = vbpa-adrnr.
select single * from t005t
where land1 = adrc-country
and spras = 'E' .
invoiceheader-ship_to = adrc-name1.
invoiceheader-adr_name1 = adrc-name1.
invoiceheader-ship_adr = adrc-street.
invoiceheader-adr_adr1 = adrc-str_suppl1.
invoiceheader-adr_adr2 = adrc-str_suppl2.
invoiceheader-adr_adr3 = adrc-str_suppl3.
invoiceheader-adr_post = adrc-post_code1.
invoiceheader-adr_region = adrc-region.
invoiceheader-adr_county = t005t-landx.
invoiceheader-in_email = ''.
invoiceheader-telephone = adrc-tel_number.
invoiceheader-in_name = adrc-name1.
invoiceheader-in_fax = adrc-fax_number.
invoiceheader-in_city = adrc-city1.
append invoiceheader.
*********get invoice detail
clear: vbrp,zposnr.
select vbeln posnr matnr fkimg as enmng
into corresponding fields of table invoicedetail1
from vbrp where vbeln = out_tab_list_1-vbeln.
loop at invoicedetail1.
select * from zhhfg_pn_mapping
where fgmatnr = invoicedetail1-matnr
and datab <= out_tab_list_1-erdat
and datbi >= out_tab_list_1-erdat.
if sy-subrc = 0.
invoicedetail-vbeln = invoicedetail1-vbeln .
invoicedetail-posnr = invoicedetail1-posnr .
invoicedetail-matnr = zhhfg_pn_mapping-pnmatnr .
invoicedetail-maktx = invoicedetail1-maktx .
invoicedetail-bismt = invoicedetail1-bismt .
invoicedetail-kbetr = zhhfg_pn_mapping-netpr .
invoicedetail-enmng = invoicedetail1-enmng .
invoicedetail-netpr = invoicedetail1-netpr .
tqty = invoicedetail1-enmng .
append invoicedetail.
endif.
endselect.
if sy-subrc <> 0.
invoicedetail-vbeln = invoicedetail1-vbeln .
invoicedetail-posnr = invoicedetail1-posnr .
invoicedetail-matnr = invoicedetail1-matnr.
invoicedetail-maktx = invoicedetail1-maktx .
invoicedetail-bismt = invoicedetail1-bismt .
invoicedetail-kbetr = invoicedetail1-kbetr .
invoicedetail-enmng = invoicedetail1-enmng .
invoicedetail-netpr = invoicedetail1-netpr .
tqty = invoicedetail1-enmng .
append invoicedetail.
endif.
endloop.
*********GET Freight price
clear:zhhfg_pn_mapping.
select single * from zhhfg_pn_mapping
where fgmatnr = 'FREIGHT'
and datab <= out_tab_list_1-erdat
and datbi >= out_tab_list_1-erdat.
if sy-subrc = 0.
invoicedetail-vbeln = invoicedetail1-vbeln .
invoicedetail-posnr = invoicedetail1-posnr .
invoicedetail-matnr = zhhfg_pn_mapping-pnmatnr .
invoicedetail-maktx = 'FREIGHT COST'.
invoicedetail-bismt = 'FREIGHT' .
invoicedetail-kbetr = zhhfg_pn_mapping-netpr .
invoicedetail-enmng = tqty.
invoicedetail-netpr = zhhfg_pn_mapping-netpr .
append invoicedetail.
endif.
clear:tqty.
zposnr = 1.
loop at invoicedetail.
***GET MATERIAL DESCRIPTION
select single maktx into invoicedetail-maktx from makt
where matnr = invoicedetail-matnr and spras = 'EN'.
***GET CUSTOMER PN
select single bismt into invoicedetail-bismt from mara
where matnr = invoicedetail-matnr .
****GET PRICE
if invoicedetail-kbetr = 0.
select single * from vbrk where vbeln = out_tab_list_1-vbeln.
select single * from konv where knumv = vbrk-knumv
and kposn = invoicedetail-posnr
and kschl = 'PR00'.
invoicedetail-kbetr = konv-kbetr .
if konv-waers = 'USD'.
invoicedetail-netpr = invoicedetail-kbetr * invoicedetail-enmng.
elseif konv-waers <> ''.
t_intval = invoicedetail-kbetr .
call function 'CURRENCY_AMOUNT_SAP_TO_DISPLAY'
exporting
currency = konv-waers
amount_internal = t_intval
importing
amount_display = t_disval
exceptions
internal_error = 1
others = 2.
p_disval = t_disval.
call function 'READ_EXCHANGE_RATE'
exporting
date = out_tab_list_1-erdat
foreign_currency = 'USD'
local_currency = konv-waers
type_of_rate =
'M' " SAP standard exchange rates
importing
exchange_rate = t_er " exchange rates
foreign_factor = t_ff " foreign factor
local_factor = t_lf " local factor
valid_from_date = t_vfd.
if sy-subrc eq 0.
ld_erate = t_er / ( t_ff / t_lf ).
if ld_erate > 0.
p_disval = p_disval / ld_erate * konv-kpein.
else.
ld_erate = ld_erate * -1.
p_disval = p_disval / ld_erate * konv-kpein.
endif.
invoicedetail-kbetr = p_disval.
invoicedetail-netpr = invoicedetail-kbetr * invoicedetail-enmng.
endif.
endif.
invoicedetail-posnr = zposnr.
modify invoicedetail.
zposnr = zposnr + 1.
clear:vbrk,konv,t_intval,t_disval,p_disval,invoicedetail.
else.
invoicedetail-netpr = invoicedetail-kbetr * invoicedetail-enmng.
invoicedetail-posnr = zposnr.
modify invoicedetail.
zposnr = zposnr + 1.
endif.
endloop.
来自 “ ITPUB博客 ” ,链接:http://blog.itpub.net/14397246/viewspace-666222/,如需转载,请注明出处,否则将追究法律责任。
转载于:http://blog.itpub.net/14397246/viewspace-666222/