Good receipt without Invoice
Hi all
Let me know about Report for Goods receipt without Invoice for Purchase order? ie. PO pending for Invoice?
If anybody a report, pls send it to me. I have used 101-102, 105-106 movement types?
So any one send that reports?
Hi Muthu
I am sending you one source code regarding the Goods receipt without invoice.
Pls reward pts if help.
Regards
Deepanker.
FUNCTION zrfc_vcs_get_goodsreceipt.
*& Program Name : ZRFC_VCS_GET_GOODSRECEIPT *
*& Title : Function Module for getting the GOODSRECEIPT *
*& Details *
*& Author : M.Jayasree *
*& Create Date : 21/03/2007 *
*& Logical DB : None *
*& Program Type : FM *
*& SAP Release : 4.6 *
*& Description : This is a program used for retrieving the *
*& GOODSRECEIPT Details. *
*& REVISION LOG *
*& LOG# DATE AUTHOR *
*& 0000 21/03/2007 Jayasree.M *
Tables *
TABLES : mkpf,komv,mseg.
Data declarations *
DATA: lv_suc_date TYPE d,
lv_suc_time TYPE t,
lv_fileloc TYPE char40,
lv_filename TYPE char40,
lv_date TYPE d,
lv_time TYPE t,
lv_filepath TYPE string,
lv_error TYPE char50,
lv_fileloc1 TYPE char20,
lv_filename1 TYPE char40,
lv_filepath1 TYPE string,
lv_value TYPE zvcsconfig-zvalue,
lv_value_h TYPE zvcsconfig-zvalue,
lv_value1 TYPE zvcsconfig-zvalue,
lv_fileloc_d TYPE char40,
lv_filename_d TYPE char40,
lv_filepath_d TYPE string,
lv_value_d TYPE zvcsconfig-zvalue,
lv_fileloc_d1 TYPE char40,
lv_filename_d1 TYPE char40,
lv_filepath_d1 TYPE string,
lv_value_d1 TYPE zvcsconfig-zvalue,
lv_taxamt TYPE bseg-wrbtr,
lv_elikz TYPE mseg-elikz,
lv_waers TYPE mseg-waers,
lv_emlif TYPE mseg-emlif,
lv_dmbtr TYPE mseg-dmbtr,
lv_vkwrt TYPE mseg-vkwrt,
lv_menge_acc TYPE mseg-menge,
lv_ebeln TYPE ebeln,
lv_lifnr TYPE ekko-lifnr,
lv_wkurs TYPE ekko-wkurs,
lv_ekgrp TYPE ekko-ekgrp,
lv_bsart TYPE ekko-bsart,
lv_inco1 TYPE ekko-inco1,
lv_land1 TYPE lfa1-land1,
lv_eknam TYPE eknam,
lv_knumv TYPE ekko-knumv,
lv_lifnr_t TYPE komv-lifnr,
lv_kwert TYPE kwert,
lv_changenr TYPE cdchangenr,
lv_flag TYPE c,
lv_sum_a TYPE kwert,
lv_sum_a1 TYPE kwert,
lv_sum_a1_a TYPE kwert,
lv_sum_a_a TYPE kwert,
lv_count TYPE n,
lv_wempf TYPE wempf,
lv_add TYPE kwert,
lv_werks_p TYPE werks_d,
lv_maktx TYPE maktx,
lv_wemng TYPE wemng,
lv_ebelp_b TYPE ebelp,
lv_erfmg_b TYPE erfmg,
lv_menge_r TYPE menge_d,
lv_remng TYPE remng,
lv_rewrt TYPE rewrt,
lv_wrbtr TYPE wrbtr,
lv_mwskz TYPE mwskz,
lv_wmwst TYPE wmwst,
lv_lifnr_sc TYPE lifnr,
lv_pstyp TYPE pstyp,
lv_menge TYPE menge_d,
lv_budat TYPE budat,
lv_waers_bc TYPE waers,
lv_netwr_tbv TYPE netwr,
lv_wrbtr_ai TYPE wrbtr,
lv_sum TYPE rewrt,
lv_netpr_bv TYPE netpr,
lv_etenr TYPE etenr,
lv_bstyp TYPE bstyp,
lv_grtxt TYPE grtxt,
lv_ebelp TYPE ebelp,
lv_basicv TYPE netwr,
lv_smbln TYPE mseg-smbln,
lv_waers_c TYPE ekko-waers,
lv_kwert_a TYPE konv-kwert,
lv_knumv_a TYPE ekko-knumv,
lv_knumv_a_a TYPE ekko-knumv,
lv_netwr_a TYPE ekpo-netwr,
lv_netwr_a_a TYPE ekpo-netwr,
lv_kwert_a1 TYPE konv-kwert,
lv_knumv_a1 TYPE ekko-knumv,
lv_netwr_a1 TYPE ekpo-netwr,
lv_netwr_a1_a TYPE ekpo-netwr,
lv_knumv_a1_a TYPE ekko-knumv,
lv_sum_b TYPE konv-kwert,
lv_fwnav TYPE bset-fwste,
lv_sum_b_a TYPE konv-kwert,
lv_netpr_a TYPE ekpo-netpr,
lv_erfmg_add TYPE mseg-erfmg,
lv_erfmg_add_a TYPE mseg-erfmg,
lv_netpr_a_a TYPE ekpo-netpr,
lv_netpr_a1 TYPE ekpo-netpr,
lv_netpr_a1_a TYPE ekpo-netpr,
lv_erfmg_add1 TYPE mseg-erfmg,
lv_erfmg_add1_a TYPE mseg-erfmg,
lv_menge_inv TYPE menge_d,
lv_wrbtr_inv TYPE wrbtr,
lv_netpr_tax TYPE netpr,
lv_kwert_total TYPE konv-kwert,
lv_kwert_total_a TYPE konv-kwert,
lv_kwert_total_r TYPE konv-kwert,
lv_kwert_total_r_a TYPE konv-kwert,
lv_bukrs_tax TYPE bukrs,
lv_waers_tax TYPE waers,
lv_erfmg_ret TYPE mseg-erfmg,
lv_server TYPE tsle4-server,
lv_bwart_rev TYPE mseg-bwart,
lv_erfmg_rev1 TYPE mseg-erfmg,
lv_bukrs TYPE bukrs,
lv_land1_t TYPE land1,
lv_kalsm TYPE kalsm,
lv_text1 TYPE text1,
lv_netpr_tax1 TYPE netpr,
lv_netpr_tax1_r TYPE netpr,
lv_mwskz_r TYPE mwskz,
lv_mwskz_tax TYPE mwskz,
lv_taxamt_t TYPE bseg-wrbtr,
lv_tax_tot TYPE netpr,
lv_fwnav_tax TYPE bset-fwste,
lv_taxamt_t_r TYPE bseg-wrbtr,
lv_tax_tot_r TYPE netpr,
lv_fwnav_tax_r TYPE bset-fwste,
lv_bukrs_tax_r TYPE bukrs,
lv_waers_tax_r TYPE waers,
lv_mblnr_rev TYPE mblnr,
lv_erfmg_rej TYPE erfmg,
lv_budat_m TYPE budat,
lv_bldat_m TYPE bldat,
lv_year1(4),
lv_mth1(2),
lv_day1(2),
lv_base TYPE waers,
lv_base_t TYPE waers,
lv_waers_t TYPE waers,
lv_wkurs_b TYPE wkurs,
lv_stblg_re TYPE stblg,
lv_belnr TYPE belnr_d.
Structures *
Structures for storing the output HEADER file
TYPES: BEGIN OF t_fintab1,
mblnr(30) TYPE c, "GRNumber
ebeln(20) TYPE c, "PONumber
changenr(38) TYPE c, "POAmendmentNumber
lifnr(22) TYPE c, "SupplierCode
adr_code(20) TYPE c, "AddressCode
plt_code(22) TYPE c, "PlantCode
land1(3) TYPE c, "CountryCode
elikz(25) TYPE c, "GoodsReceiptStatus
waers(3) TYPE c, "CurrencyCode
wkurs(34) TYPE c, "ExchRateValue
server(100) TYPE c, "ERPSource
ekgrp(22) TYPE c, "BuyerCode
eknam(240) TYPE c, "BuyerName
bldat(20) TYPE c, "GoodsReceiptDate
bsart(25) TYPE c, "DocType
bsart_c(50) TYPE c, "ContractType
asnno(8) TYPE c, "ASNNo
asndate(20) TYPE c, "ASNDate
xblnr(16) TYPE c, "DCNo
dc_date(20) TYPE c, "DCDate
bktxt(25) TYPE c, "PreGRNo
pre_date(20) TYPE c, "PreGRDate
emlif(22) TYPE c, "ReceiverCode
re_name(240) TYPE c, "ReceiverName
lifnr_t(10) TYPE c, "ThreePLCode
inco1(8) TYPE c, "CommercialTerms
dmbtr(34) TYPE c, "TotalValue
vkwrt(34) TYPE c, "TotalBasicValue
kwert(34) TYPE c, "TotalAdditionalCharges
base(3) TYPE c, "BaseCurrencyCode
END OF t_fintab1.
Structures for storing the output HEADER for STATUS file
TYPES: BEGIN OF t_fintab_s,
mblnr(30) TYPE c, "GRNumber
ebeln(20) TYPE c, "PONumber
changenr(38) TYPE c, "POAmendmentNumber
lifnr(22) TYPE c, "SupplierCode
adr_code(20) TYPE c, "AddressCode
plt_code(22) TYPE c, "PlantCode
land1(3) TYPE c, "CountryCode
elikz(25) TYPE c, "GoodsReceiptStatus
waers(3) TYPE c, "CurrencyCode
wkurs(34) TYPE c, "ExchRateValue
server(100) TYPE c, "ERPSource
ekgrp(22) TYPE c, "BuyerCode
eknam(240) TYPE c, "BuyerName
bldat(20) TYPE c, "GoodsReceiptDate
bsart(25) TYPE c, "DocType
bsart_c(50) TYPE c, "ContractType
asnno(8) TYPE c, "ASNNo
asndate(20) TYPE c, "ASNDate
xblnr(16) TYPE c, "DCNo
dc_date(20) TYPE c, "DCDate
bktxt(25) TYPE c, "PreGRNo
pre_date(20) TYPE c, "PreGRDate
emlif(22) TYPE c, "ReceiverCode
re_name(240) TYPE c, "ReceiverName
lifnr_t(10) TYPE c, "ThreePLCode
inco1(8) TYPE c, "CommercialTerms
dmbtr(34) TYPE c, "TotalValue
vkwrt(34) TYPE c, "TotalBasicValue
kwert(34) TYPE c, "TotalAdditionalCharges
smbln TYPE mseg-smbln,"For reversal status
END OF t_fintab_s.
Structures for storing the output DETAIL file
TYPES: BEGIN OF t_fintab2,
zeile(22) TYPE c, "GRLineNumber
mblnr(30) TYPE c, "GRNumber
server(100) TYPE c, "ERPSource
ebelp(38) TYPE c, "POLineNumber
ebeln(20) TYPE c, "PONumber
changenr(38) TYPE c, "POAmendmentNumber
scheculenumber(38) TYPE c, "ScheduleNumber
meins(25) TYPE c, "UOM
lgort(22) TYPE c, "WarehouseCode
waers(3) TYPE c, "Currency Code
matnr(40) TYPE c, "PartNumber
maktx(240) TYPE c, "PartDescription
kostl(22) TYPE c, "CostCenterCode
bukrs(15) TYPE c, "CompanyCode
menge_i(22) TYPE c, "InspectedQuantity
wemng(22) TYPE c, "GRRecievedQuantity
menge_a(22) TYPE c, "GRAcceptedQuantity
menge_g(22) TYPE c, "GRRejectedQuantity
grrework(22) TYPE c, "GRReworkQuantity
menge_r(22) TYPE c, "GRReturnedQuantity
grund(25) TYPE c, "RejnReason
remng(22) TYPE c, "QuantityInvoiced
rewrt(34) TYPE c, "AmountInvoiced
wrbtr(34) TYPE c, "AmountPaid
mwskz_t(100) TYPE c, "TaxCode
wmwst_w(34) TYPE c, "TaxValue
lifnr_sc(22) TYPE c, "SupplierCode
adr_code(20) TYPE c, "AddressCode
taxdiscount(34) TYPE c, "TaxChargeDiscount
mwskz_v(22) TYPE c, "VATCode
wmwst_v(34) TYPE c, "VATValue
vatoption(1) TYPE c, "VATOption
kwert_i(34) TYPE c, "InspectionCost
pstyp(25) TYPE c, "IssueType
pendingschdqty(22) TYPE c, "PendingSchdQuantity
menge_o(22) TYPE c, "POOrderQty
erfmg(22) TYPE c, "MovedQty
tobemovedqty(22) TYPE c, "TobeMovedQty
balanceqty(22) TYPE c, "BalanceQty
netpr_bv(34) TYPE c, "BasicValue
kwert_a(34) TYPE c, "AdditionalCharges
budat_i(20) TYPE c, "InspectionDate
budat_m(20) TYPE c, "MovedDate
elikz(25) TYPE c, "GRItemStatus
budat_g(20) TYPE c, "GRRecdDate
END OF t_fintab2.
Structures for storing the MKPF
TYPES: BEGIN OF t_mkpf,
mblnr TYPE mkpf-mblnr,
budat TYPE mkpf-budat,
xblnr TYPE mkpf-xblnr,
bldat TYPE mkpf-bldat,
END OF t_mkpf.
Structures for storing the MSEG
TYPES: BEGIN OF t_mseg,
matnr TYPE mseg-matnr,
zeile TYPE mblpo,
menge TYPE menge_d,
meins TYPE mseg-meins,
lgort TYPE mseg-lgort,
mblnr TYPE mseg-mblnr,
bukrs TYPE mseg-bukrs,
ebeln TYPE bstnr,
ebelp TYPE ekpo-ebelp,
kostl TYPE mseg-kostl,
waers TYPE mseg-waers,
erfmg TYPE mseg-erfmg,
vkwrt TYPE mseg-vkwrt,
elikz TYPE mseg-elikz,
insmk TYPE mseg-insmk,
bwart TYPE mseg-bwart,
grund TYPE mseg-grund,
END OF t_mseg.
Structures for storing the log file
TYPES: BEGIN OF t_logfile,
desc TYPE char50,
END OF t_logfile.
Structures for storing the RSEG file
TYPES: BEGIN OF t_rseg,
menge TYPE menge_d,
wrbtr TYPE wrbtr,
END OF t_rseg.
TYPES: BEGIN OF t_add,
ebeln TYPE ebeln,
END OF t_add.
TYPES: BEGIN OF t_add1,
ebeln TYPE ebeln,
ebelp TYPE ebelp,
END OF t_add1.
TYPES: BEGIN OF t_total,
dmbtr TYPE dmbtr,
END OF t_total.
TYPES: BEGIN OF t_total1,
dmbtr TYPE dmbtr,
END OF t_total1.
TYPES: BEGIN OF t_basictotal,
erfmg TYPE erfmg,
END OF t_basictotal.
TYPES: BEGIN OF t_basic,
ebeln TYPE ebeln,
ebelp TYPE ebelp,
erfmg TYPE erfmg,
END OF t_basic.
TYPES: BEGIN OF t_zcond,
zcond1 TYPE kscha,
zcond2 TYPE kscha,
zcond3 TYPE kscha,
zcond4 TYPE kscha,
zcond5 TYPE kscha,
zcond6 TYPE kscha,
zcond7 TYPE kscha,
zcond8 TYPE kscha,
zcond9 TYPE kscha,
zcond10 TYPE kscha,
END OF t_zcond.
TYPES: BEGIN OF t_add_k,
kwert TYPE konv-kwert,
END OF t_add_k.
TYPES: BEGIN OF t_tax,
ebeln TYPE mseg-ebeln,
ebelp TYPE mseg-ebelp,
menge TYPE mseg-menge,
END OF t_tax.
TYPES: BEGIN OF t_mseg_m,
mblnr TYPE mblnr,
elikz TYPE elikz,
wempf TYPE wempf,
ebeln TYPE ebeln,
ebelp TYPE ebelp,
werks TYPE werks,
erfmg TYPE erfmg,
bwart TYPE bwart,
bukrs TYPE bukrs,
lfbnr TYPE lfbnr,
END OF t_mseg_m.
TYPES: BEGIN OF t_erfmg,
erfmg TYPE erfmg,
END OF t_erfmg.
Internal tables *
DATA: i_zrfcinfo LIKE zrfcinfo OCCURS 0 WITH HEADER LINE,
i_fintab1 TYPE TABLE OF t_fintab1 WITH HEADER LINE,
i_fintab_s TYPE TABLE OF t_fintab_s WITH HEADER LINE,
i_fintab2 TYPE TABLE OF t_fintab2 WITH HEADER LINE,
i_mkpf TYPE TABLE OF t_mkpf WITH HEADER LINE,
i_mseg TYPE TABLE OF t_mseg WITH HEADER LINE,
i_rseg TYPE TABLE OF t_rseg WITH HEADER LINE,
i_total TYPE TABLE OF t_total WITH HEADER LINE,
i_basictotal TYPE TABLE OF t_basictotal WITH HEADER LINE,
i_erfmg TYPE TABLE OF t_erfmg WITH HEADER LINE,
i_erfmg1 TYPE TABLE OF t_erfmg WITH HEADER LINE,
i_basic TYPE TABLE OF t_basic WITH HEADER LINE,
i_total1 TYPE TABLE OF t_total1 WITH HEADER LINE,
i_tax TYPE TABLE OF t_tax WITH HEADER LINE,
i_tax_r TYPE TABLE OF t_tax WITH HEADER LINE,
i_mseg_m TYPE TABLE OF t_mseg_m WITH HEADER LINE,
i_add TYPE TABLE OF t_add1 WITH HEADER LINE,
i_add_a TYPE TABLE OF t_add1 WITH HEADER LINE,
i_add1 TYPE TABLE OF t_add1 WITH HEADER LINE,
i_zcond TYPE TABLE OF t_zcond WITH HEADER LINE,
i_zcond_r TYPE TABLE OF t_zcond WITH HEADER LINE,
i_add_cond TYPE TABLE OF t_add_k WITH HEADER LINE,
i_add_cond_r TYPE TABLE OF t_add_k WITH HEADER LINE,
i_add_cond_r_a TYPE TABLE OF t_add_k WITH HEADER LINE,
i_zcond_a TYPE TABLE OF t_zcond WITH HEADER LINE,
i_add_cond_a TYPE TABLE OF t_add_k WITH HEADER LINE,
i_add1_a TYPE TABLE OF t_add1 WITH HEADER LINE,
i_zcond_r_a TYPE TABLE OF t_zcond WITH HEADER LINE,
i_logfile TYPE TABLE OF t_logfile WITH HEADER LINE,
i_fintab1_h TYPE TABLE OF t_fintab1 WITH HEADER LINE,
i_fintab2_h TYPE TABLE OF t_fintab2 WITH HEADER LINE.
DATA: BEGIN OF i_mwdat OCCURS 0.
INCLUDE STRUCTURE rtax1u15.
DATA: END OF i_mwdat.
DATA: BEGIN OF i_mwdat_t OCCURS 0.
INCLUDE STRUCTURE rtax1u15.
DATA: END OF i_mwdat_t.
DATA: BEGIN OF i_mwdat_t_r OCCURS 0.
INCLUDE STRUCTURE rtax1u15.
DATA: END OF i_mwdat_t_r.
Work areas *
DATA : wa_zrfcinfo TYPE zrfcinfo.
Get the last execution date/time from ZTABLE
SELECT *
FROM zrfcinfo
INTO TABLE i_zrfcinfo
WHERE
name = 'ZRFC_VCS_GET_GOODSRECEIPT' AND
status = '1'.
DESCRIBE TABLE i_zrfcinfo LINES sy-tabix.
Sort the table for retrieving the latest date/time
SORT i_zrfcinfo BY exc_date DESCENDING exc_time DESCENDING.
READ TABLE i_zrfcinfo INDEX 1.
IF sy-subrc = 0.
lv_suc_date = i_zrfcinfo-exc_date.
lv_suc_time = i_zrfcinfo-exc_time.
ENDIF.
Fetch the updated records from the table MKPF between the latest
*date/time
lv_suc_date = '20070529'.
SELECT mblnr
budat
xblnr
bldat
FROM mkpf
INTO TABLE i_mkpf
WHERE
cpudt GE lv_suc_date AND
cputm GE lv_suc_time.
HEADER
For multiple PO
IF NOT i_mkpf[] IS INITIAL.
SELECT mblnr
elikz
wempf
ebeln
ebelp
werks
erfmg
bwart
bukrs
lfbnr
FROM mseg
INTO TABLE i_mseg_m
FOR ALL ENTRIES IN i_mkpf
WHERE mblnr = i_mkpf-mblnr
and bwart NE '543'.
IF NOT lv_suc_date IS INITIAL.
SELECT mblnr
elikz
wempf
ebeln
ebelp
werks
erfmg
bwart
bukrs
FROM mseg
INTO TABLE i_mseg_m
FOR ALL ENTRIES IN i_mseg_m
WHERE mblnr = i_mseg_m-lfbnr
ENDIF.
ENDIF.
For Selecting the ERP Source
SELECT SINGLE server INTO lv_server FROM tsle4.
Appending all the fields to the output HEADER file layout
LOOP AT i_mseg_m.
MOVE-CORRESPONDING i_mseg_m TO i_fintab1.
CONCATENATE i_mseg_m-mblnr '-' i_mseg_m-ebeln '-' i_mseg_m-ebelp
INTO i_fintab1-mblnr.
CLEAR : lv_budat_m , lv_bldat_m .
For GR Date
SELECT SINGLE budat bldat INTO (lv_budat_m , lv_bldat_m) FROM mkpf
WHERE mblnr = i_mseg_m-mblnr.
IF sy-subrc = 0.
i_fintab1-bldat = lv_budat_m.
lv_year1 = lv_bldat_m+0(4).
lv_mth1 = lv_bldat_m+4(2).
lv_day1 = lv_bldat_m+6(2).
CONCATENATE lv_day1 '/' lv_mth1 '/' lv_year1 INTO i_fintab1-dc_date.
ENDIF.
Retrieve the base currency code
CLEAR lv_base.
SELECT SINGLE waers INTO lv_base FROM t001 WHERE bukrs =
i_mseg_m-bukrs.
IF sy-subrc = 0.
i_fintab1-base = lv_base.
ENDIF.
For the Receiver Name
i_fintab1-re_name = i_mseg_m-wempf.
For the Plant Code
i_fintab1-plt_code = i_mseg_m-werks.
For the ERP Source
i_fintab1-server = lv_server.
For The Address Code
i_fintab1-adr_code = 'A1'.
For the Quantity ( ebeln - PO number , Elelp - PO line number,
erfmg - Quantity, bwart - Movement type ).
SELECT ebeln ebelp erfmg INTO TABLE i_basic FROM mseg WHERE mblnr =
i_mseg_m-mblnr AND bwart NE '543' AND ebeln = i_mseg_m-ebeln AND
ebelp = i_mseg_m-ebelp.
CLEAR lv_basicv.
LOOP AT i_basic.
Retrieve from table EKPO (Po LineItem) for total basic value( netpr
- Net price )
SELECT SINGLE netpr
INTO lv_netwr_tbv
FROM ekpo WHERE ebeln = i_basic-ebeln
AND ebelp = i_basic-ebelp.
IF sy-subrc = 0.
lv_basicv = lv_basicv + i_basic-erfmg * lv_netwr_tbv.
ENDIF.
Retrieve the basic value for Reversal
SELECT erfmg INTO TABLE i_basictotal FROM mseg
WHERE ( bwart = '122' OR bwart = '124' OR bwart = '161' )
AND lfbnr = i_mseg_m-mblnr AND ebelp = i_basic-ebelp
AND ebeln = i_basic-ebeln.
LOOP AT i_basictotal.
lv_basicv = lv_basicv - ( i_basictotal-erfmg * lv_netwr_tbv ).
ENDLOOP.
ENDLOOP.
lv_basicv move to total basic value i.e i_fintab1-vkwrt
MOVE lv_basicv TO i_fintab1-vkwrt.
CONDENSE i_fintab1-vkwrt NO-GAPS.
Retrieve the total value from table MSEG ( GR Line item )
SELECT dmbtr INTO TABLE i_total FROM mseg
WHERE mblnr = i_mseg_m-mblnr AND ebeln = i_mseg_m-ebeln
AND ebelp = i_mseg_m-ebelp.
LOOP AT i_total.
lv_dmbtr = lv_dmbtr + i_total-dmbtr.
ENDLOOP.
Calculating the total value for reversal
SELECT dmbtr INTO TABLE i_total1 FROM mseg
WHERE ( bwart = '122' OR bwart = '124' OR bwart = '161' )
AND lfbnr = i_mseg_m-mblnr AND ebeln = i_mseg_m-ebeln
AND ebelp = i_mseg_m-ebelp .
LOOP AT i_total1.
lv_dmbtr = lv_dmbtr - i_total1-dmbtr.
ENDLOOP.
For getting the exchange Rate ( wkurs - Exchange Rate )
SELECT SINGLE wkurs INTO lv_wkurs_b FROM ekko
WHERE ebeln = i_mseg_m-ebeln .
IF sy-subrc = 0.
lv_dmbtr = lv_dmbtr / lv_wkurs_b.
ENDIF.
Calculate the tax
CLEAR : i_tax, lv_netpr_tax1 , lv_mwskz, lv_taxamt_t , lv_tax_tot ,
lv_fwnav_tax, lv_bukrs_tax , lv_waers_tax.
*****( menge - Quantity ).
SELECT ebeln ebelp menge FROM mseg INTO TABLE i_tax
WHERE mblnr = i_mseg_m-mblnr AND ebeln = i_mseg_m-ebeln
AND ebelp = i_mseg_m-ebelp.
LOOP AT i_tax.
( bukrs - Company Code , waers - Currency Key ).
SELECT SINGLE bukrs waers INTO (lv_bukrs_tax , lv_waers_tax)
FROM ekko WHERE ebeln = i_tax-ebeln.
*****( netpr - net price , mwskz - tax on sales).
SELECT SINGLE netpr mwskz INTO (lv_netpr_tax1 , lv_mwskz)
FROM ekpo WHERE ebeln = i_tax-ebeln AND ebelp = i_tax-ebelp.
IF sy-subrc = 0.
lv_taxamt_t = i_tax-menge * lv_netpr_tax1.
ENDIF.
IF NOT lv_mwskz IS INITIAL.
CALL FUNCTION 'CALCULATE_TAX_FROM_NET_AMOUNT'
EXPORTING
i_bukrs = lv_bukrs_tax
i_mwskz = lv_mwskz
i_waers = lv_waers_tax
i_wrbtr = lv_taxamt_t
IMPORTING
e_fwnav = lv_fwnav_tax
TABLES
t_mwdat = i_mwdat_t.
IF sy-subrc <> 0.
ENDIF.
ENDIF.
lv_tax_tot = lv_tax_tot + lv_fwnav_tax.
CLEAR lv_fwnav_tax.
ENDLOOP.
For reversal
CLEAR : i_tax_r, lv_netpr_tax1_r, lv_mwskz_r, lv_taxamt_t_r,
lv_tax_tot_r, lv_fwnav_tax_r, lv_bukrs_tax_r, lv_waers_tax_r
SELECT ebeln ebelp menge FROM mseg
INTO TABLE i_tax_r WHERE ( bwart = '122' OR bwart = '124' OR bwart =
'161' )
AND lfbnr = i_mseg_m-mblnr AND ebeln = i_mseg_m-ebeln
AND ebelp = i_mseg_m-ebelp.
LOOP AT i_tax_r.
SELECT SINGLE bukrs waers INTO (lv_bukrs_tax_r , lv_waers_tax_r)
FROM ekko WHERE ebeln = i_tax_r-ebeln.
SELECT SINGLE netpr mwskz INTO (lv_netpr_tax1_r , lv_mwskz_r)
FROM ekpo WHERE ebeln = i_tax_r-ebeln AND ebelp = i_tax_r-ebelp.
IF sy-subrc = 0.
lv_taxamt_t_r = i_tax_r-menge * lv_netpr_tax1_r.
ENDIF.
IF NOT lv_mwskz_r IS INITIAL.
CALL FUNCTION 'CALCULATE_TAX_FROM_NET_AMOUNT'
EXPORTING
i_bukrs = lv_bukrs_tax_r
i_mwskz = lv_mwskz_r
i_waers = lv_waers_tax_r
i_wrbtr = lv_taxamt_t_r
IMPORTING
e_fwnav = lv_fwnav_tax_r
TABLES
t_mwdat = i_mwdat_t_r.
IF sy-subrc <> 0.
ENDIF.
ENDIF.
lv_tax_tot_r = lv_tax_tot_r + lv_fwnav_tax_r.
CLEAR lv_fwnav_tax_r.
ENDLOOP.
Finally the Total value is moving to i_fintab-dmbtr
i_fintab1-dmbtr = lv_dmbtr + lv_tax_tot - lv_tax_tot_r.
CONDENSE i_fintab1-dmbtr NO-GAPS.
IF i_fintab1-dmbtr = ' '.
i_fintab1-dmbtr = '0.0000'.
ENDIF.
IF i_fintab1-vkwrt = ' '.
i_fintab1-vkwrt = '0.0000'.
ENDIF.
SELECT SINGLE mblnr INTO lv_mblnr_rev FROM mseg
WHERE ( bwart = '102' OR bwart = '104' OR bwart = '106' )
AND lfbnr = i_mseg_m-mblnr AND ebeln = i_mseg_m-ebeln
AND ebelp = i_mseg_m-ebelp.
IF sy-subrc = 0.
i_fintab1-elikz = 'Reversed'.
ELSEIF i_fintab1-elikz = 'X'.
i_fintab1-elikz = 'Completed'.
ELSEIF i_fintab1-elikz = ' '.
i_fintab1-elikz = 'NotCompleted'.
ENDIF.
Retrieve from table EKKO for Supplier Code , Exchange Rate,
Purchasing Group, Purchasing Document Type,
SELECT SINGLE lifnr
wkurs
ekgrp
bsart
inco1
knumv
waers
INTO (lv_lifnr , lv_wkurs, lv_ekgrp , lv_bsart ,
lv_inco1 , lv_knumv , lv_waers_c)
FROM ekko
WHERE ebeln = i_mseg_m-ebeln.
IF sy-subrc = 0.
i_fintab1-lifnr = lv_lifnr.
i_fintab1-ekgrp = lv_ekgrp.
i_fintab1-waers = lv_waers_c.
i_fintab1-bsart = lv_bsart.
i_fintab1-inco1 = lv_inco1.
i_fintab1-bsart_c = lv_bsart.
MOVE lv_wkurs TO i_fintab1-wkurs.
CONDENSE i_fintab1-wkurs NO-GAPS.
ENDIF.
Retreive for Land
SELECT SINGLE land1 INTO lv_land1 FROM lfa1 WHERE lifnr = lv_lifnr .
IF sy-subrc = 0.
i_fintab1-land1 = lv_land1.
ENDIF.
Retrieve from table T024 for BuyerCode
SELECT SINGLE eknam INTO lv_eknam FROM t024 WHERE ekgrp = lv_ekgrp.
IF sy-subrc = 0.
i_fintab1-eknam = lv_eknam.
ENDIF.
Retrieve from table KONV for AdditionalCharges
Retrieve PO Number, PO Line Number from GR Line Item
SELECT ebeln ebelp INTO TABLE i_add FROM mseg
WHERE mblnr = i_mseg_m-mblnr AND ebeln = i_mseg_m-ebeln
AND ebelp = i_mseg_m-ebelp.
DELETE ADJACENT DUPLICATES FROM i_add COMPARING ebeln ebelp .
LOOP AT i_add.
********( knumv - number of document condition )
SELECT SINGLE knumv INTO lv_knumv_a FROM ekko
WHERE ebeln = i_add-ebeln.
IF sy-subrc = 0.
CLEAR : i_zcond,i_add_cond[], lv_kwert_total.
SELECT zcond1
zcond2
zcond3
zcond4
zcond5
zcond6
zcond7
zcond8
zcond9
zcond10
FROM zvcs_con_config
INTO TABLE i_zcond
WHERE ( zid = '001' ) OR
( zid = '002' ) OR
( zid = '003' ) OR
( zid = '004' ) OR
( zid = '005' ).
LOOP AT i_zcond.
SELECT kwert APPENDING TABLE i_add_cond FROM konv
WHERE knumv = lv_knumv_a AND kposn = i_add-ebelp
AND ( ( kschl EQ i_zcond-zcond1 ) OR
( kschl EQ i_zcond-zcond2 ) OR
( kschl EQ i_zcond-zcond3 ) OR
( kschl EQ i_zcond-zcond4 ) OR
( kschl EQ i_zcond-zcond5 ) OR
( kschl EQ i_zcond-zcond6 ) OR
( kschl EQ i_zcond-zcond7 ) OR
( kschl EQ i_zcond-zcond8 ) OR
( kschl EQ i_zcond-zcond9 ) OR
( kschl EQ i_zcond-zcond10 ) ).
ENDLOOP.
CLEAR : lv_kwert_total.
LOOP AT i_add_cond.
lv_kwert_total = lv_kwert_total + i_add_cond-kwert.
ENDLOOP.
CLEAR : lv_sum_a.
IF sy-subrc = 0.
lv_sum_a = lv_sum_a + lv_kwert_total.
SELECT SINGLE netwr netpr INTO (lv_netwr_a , lv_netpr_a)
FROM ekpo WHERE ebeln = i_add-ebeln AND ebelp = i_add-ebelp.
SELECT SINGLE erfmg INTO lv_erfmg_add FROM mseg
WHERE mblnr = i_mseg_m-mblnr AND ebeln = i_add-ebeln
AND ebelp = i_add-ebelp.
lv_sum_b = lv_sum_b + ( lv_erfmg_add * lv_netpr_a ) *
lv_sum_a / lv_netwr_a .
ENDIF.
ENDIF.
CLEAR : lv_kwert_a, lv_knumv_a , lv_netwr_a , lv_netpr_a ,
lv_erfmg_add.
ENDLOOP.
CLEAR: lv_sum_a.
Retrieve the returned
SELECT ebeln ebelp INTO TABLE i_add1 FROM mseg
WHERE ( bwart = '122' OR bwart = '124' OR bwart = '161' )
AND lfbnr = i_mseg_m-mblnr AND ebeln = i_mseg_m-ebeln
AND ebelp = i_mseg_m-ebelp.
DELETE ADJACENT DUPLICATES FROM i_add1 COMPARING ebeln.
LOOP AT i_add1.
SELECT SINGLE knumv INTO lv_knumv_a1 FROM ekko
WHERE ebeln = i_add-ebeln.
IF sy-subrc = 0.
CLEAR : i_zcond_r,i_add_cond_r[], lv_kwert_total_r.
SELECT zcond1
zcond2
zcond3
zcond4
zcond5
zcond6
zcond7
zcond8
zcond9
zcond10
FROM zvcs_con_config
INTO TABLE i_zcond_r
WHERE ( zid = '001' ) OR
( zid = '002' ) OR
( zid = '003' ) OR
( zid = '004' ) OR
( zid = '005' ).
LOOP AT i_zcond_r.
SELECT kwert APPENDING TABLE i_add_cond_r FROM konv
WHERE knumv = lv_knumv_a1 AND kposn = i_add1-ebelp
AND ( ( kschl EQ i_zcond_r-zcond1 ) OR
( kschl EQ i_zcond_r-zcond2 ) OR
( kschl EQ i_zcond_r-zcond3 ) OR
( kschl EQ i_zcond_r-zcond4 ) OR
( kschl EQ i_zcond_r-zcond5 ) OR
( kschl EQ i_zcond_r-zcond6 ) OR
( kschl EQ i_zcond_r-zcond7 ) OR
( kschl EQ i_zcond_r-zcond8 ) OR
( kschl EQ i_zcond_r-zcond9 ) OR
( kschl EQ i_zcond_r-zcond10 ) ).
append i_add_cond.
ENDLOOP.
LOOP AT i_add_cond_r.
lv_kwert_total_r = lv_kwert_total_r + i_add_cond_r-kwert.
ENDLOOP.
IF sy-subrc = 0.
lv_sum_a1 = lv_sum_a1 + lv_kwert_total_r .
SELECT SINGLE netwr netpr INTO (lv_netwr_a1 , lv_netpr_a1)
FROM ekpo WHERE ebeln = i_add-ebeln.
CLEAR : i_erfmg.
SELECT erfmg INTO TABLE i_erfmg FROM mseg
WHERE ( bwart = '122' OR bwart = '124' OR bwart = '161' )
AND lfbnr = i_mseg_m-mblnr AND ebeln = i_mseg_m-ebeln
AND ebelp = i_mseg_m-ebelp.
Similar Messages
-
Report with open Purchase orders and open Goods Receipt (without invoices)
Dear All,
We require a report in purchasing which will show:
1. open purchase orders
2. open goods receipts
We do not want POs and GRs that have been created into invoices to be included in the report.
At the moment we tried ME2N with RECHNUNG in selection parameters but it includes invoices. We have tried other selection parameters and reports but the results are not helpful.
I have also checked SDN but there is no correct answer. Most of them specify the ME2N with RECHNUNG as a solution but this does not work for us.
Any help would be appreciated.
G.Hi,
Try ME2N, Select WE101....Also Select ALV
go to next screen....Go to change layout
Select to be deliverd(Qty) and Value, also to be invoice(Qty) & Value.
Hope Help U!
Regards,
Pardeep Malik -
Goods-receipt-based invoice verification default for material group
Hello experts,
I put by default the option Goods-receipt-based invoice verification when creating a purchase order by tcode ME21N. Now, I would like if possible to only insert the option Goods-receipt-based invoice verification by default for some material group. Is this possible? This behaviour needs to be automatic.
How can I achieve this behaviour?
Thanks in advance,
Best Regards,
JP
Edited by: Jeyakanthan A on Nov 20, 2011 11:11 PMDear JP,
In standard system this is not possible to default this indicator based on Material Group. This can be defaulted from Vendor Master record or Purchasing Info Record or Ticked Manually PO Item Details.
If you look to enhance you system to do this, I would not advisable you to go with this default option because there can be situation that you order some material without Material Master Record (Like a frame work Order) in that case you will not be able to do GR and there can be conflict.
You can create Material Group Info. record and default it from there, but again this for scenario where Material Master Record does not exists(Non Stock).
Hope you find this useful.
Regards,
Reetesh -
GR- Based IV - Goods receipt-based Invoice verification
Hi,
I am trying to make a new purchase order type all equal to the standart type. I only want an exception: the GR-based IV indicator must be, by default, off.
This indicator specifies that prevision has been made for goods -receipt base invoice verification.
So the goal is to have two kinds of purchase orders with a default GR-base IV indicator.
Best Regards
João FernandesHi Kore,
I forget to tell you one thing...in order to use the master record i must to change the info record...but i have to many materials...
Do you know some mean of clean de info record of all materials of a vendor?
Best Regards
João Fernandes -
No goods-receipt-based invoice verification
I need some guidance on a new process.
We are a north american company.
1- We create a PO to China and we unchecked the GR based IV flag
2- we send it...
3- When the stock is delivered to the China Port, we receive the invoice from the vendor and pay
4-6 weeks after we do the GR in our plant.
At GR time, if the quantity doesn't match what we ordered or paid, is there a way to control that?
What is the standard process to deal with quantity variance when the invoice is already paid?
Thank you!hi Luc,
Quantity differences between goods receipt and invoice receipt for a purchase order result in a balance on the GR/IR clearing account.
If the quantity invoiced is larger than the quantity received, the system then expects further goods receipts for this purchase order to clear the balance.
If the quantity received is larger than the quantity invoiced, the system then expects further invoices for this purchase order to clear the balance.
You can also clear differences for delivery costs.
If no more goods or invoices are to be received, you must clear the balance manually.
This can be done in different ways:
You can return the extra goods to the vendor.
You can cancel the invoice and post a corrected invoice or a credit memo for the surplus posted quantity.
You can clear the GR/IR clearing account manually.
Hope this Clear.
Anil patreddy -
Goods receipt without a purchase order
hellow experts,
I created a good receipt in MIGO with out a purchase order, the saving icon refuse to highlight i.e is not highlighted, so i cat save the goods receipt. I dont know if it has something to do with the configuration? if the system is configured not to accept a goods receipt without a PO.?. I will really appreciate if there is a way for me to make the save icon active, thanksThanks experts for your reply so far,
I would like to know the G/L account to assign to the good receipt without a purchace order, because most of the GL account I have tried from my list has been given me messages like, "it is not possible to post directly to this account", and some other errors
your contributions would be highly appreciated. Thanks -
Mistakenly reversed goods receipt after invoice posted
Hi experts,
I already post this question in EAM forum, but moved to here as I think I will get more useful replies.
I have a PO that was goods receipted and invoiced receipted. Later on, the GR was reversed, and now that entry needs to be reverse... We're having a negative value in our reports that should not be there.
What would be the way to fix this? Is it OK that the goods receipted may be reversed after invoice receipted.. i.e. after an invoice has been posted? In Tx. OMBZ the Mvt. 102 has "RevGR desp. IR" unchecked.
Kind Regards,
Andres.
Original thread: Reverse goods receipt after invoice posted.Just do a GR again for the PO and this should fix your problem. The original document and reversal documents will remain there with another GR document against PO.
Unless the payment against the invoice hasnt been made, your preceding documents can be changed. Once the payment has been made, you should not be able to change any preceding document.
Edited by: Afshad Irani on May 31, 2010 9:08 AM -
Reverse goods receipt after invoice posted
Hi experts,
I have a PO that was goods receipted and invoiced receipted (work was done). Someone has then un-goods receipted the PO, and now that entry needs to be reverse (the work order has status closed).
What would be the way to fix this? Re-open the work order? Is it OK that the goods receipted may be reversed after invoice receipted.. i.e. after an invoice has been posted?
I am starting to get familiar with this, so bear with me.
Regards,
Andres.Andres,
First check whether the PR/PO has been created within the workorder at Operation level or it is created outside the work order and just the account assignment in the PR/PO has been done to the workorder.
Since PO is the superior purchasing document and preceeds the PR , standard application dont have any dependancy between PO and work order..Dependency stops at PR release and when Quotation/PO has been created and released..So i dont think u need to undo TECO...
For any reversal of the material documents after posting, subsequent Fi document should be revresed only then reverse Goods movement becomes effective as it needs to update the stock levels and inventory value in the systemm.
However u need to check the way system has been configured and Mapped...
For better response please post this question in MM---Inventory management forum.....
If u r satisfied with this answer please close and rate..
Thanks,
Shaikh Murad.... -
Problem with the Posting Date of Goods Receipt or Invoice Receipt for PO
Hi All,
I am working on 2LIS_02_SCL - Purchasing Data (Schedule Line Level),
For our report, we should get the scheduled PO quantity,actual PO qty, Scheduled date and actual date in the report.
we are getting all these fields from the above extractor...
For a PO which is opened (Delivery Completion indicator not set) - we where getting all field as in ECC(ME23N)
But for a PO which is finished(Delivery completion indicator is set) - we where are getting actual GR qty,planned qty,planned or scheduled date at schedule line level.But we are not getting the Posting Date of Goods Receipt or Invoice Receipt for PO from history EKBE for all the schedule line.
ex:
for open PO
PO num item num schedule line Planned date actual date difference actual qty planned qty difference
450002432 10 1 01/10/2011 02/10/2011 1 day 100 100 0
2 02/10/2011 04/10/2011 2 days 200 400 200
3 03/10/2011 07/10/2011 4 days 300 300 0
For the same PO when it is Finished or completed(Delivery completion indicator is set)
PO num item num schedule line Planned date actual date difference actual qty planned qty difference
450002432 10 1 01/10/2011 07/10/2011 6 day 100 100 0
2 02/10/2011 07/10/2011 5 days 200 400 200
03/10/2011 07/10/2011 4 days 300 300 0
for all the schedule line its displaying the last posting date(i think its taking from EKKO table)
Is there any possibility to get that posting date history ....You can have multiple receipts against a PO schedule line, but this extractor is not meant to go to that level of granularity. Please try to use 2lis_02_sgr instead which provides goods receipts per PO schedule line.
-
How to post goods receipt without FI document number
Hi friends,
Is it possible to create a Good Receipt without creating any FI document number?
Regards,
G G ReddyHi Vikas,
Now i am doing Historical data migration project. for this project last 7 year data we will move to New sap systems. we will get the data from standard tables from the all module like FI/CO,MM and PS.
So in FI data i done through z program. in MM side previsiously only PO data only in the scope.but recently they added Good movements also. so whenever the MM consultant will do the Goods receipts the fi documents will come in to piture. it is duplicate data available twice.
Because I uploaded FI data which is linked to MM integration. so now my problem is whenever the MM Consultant wii upload the Goods Receipts, there is no Fi document happen. so please provide any soluation about this.
so please give me u r inputs on this
Edited by: sachinreddy on Dec 26, 2011 10:45 AM -
Dear experts!
Now, I'm getting some Issue about Good Receipt in MM module.
- The first, I created a material master with transaction code MM01.
- Second, I want to Good Receipt without PO for the Material with quantity is 40 and price is 12.000 per one.
I think I will create new movement type.
How do I have to do?
Help me, please!
Best regards Huy!Hi Huy,
You can use 501 movment type and make the field EXBWR- Ext. Amount in LC optional/editable in OMJJ. By doing so you will be able to enter the price and the Vendor and create a GR without PO. In this case it would hit the GR/IR account.
If you desire not to hit this account then you can either use 202 or you can create a Custom movment type similar to it and make the GL account field Optional. Then you can enter the GL account while doing the Goods Receipt.
Regards,
Kathir -
Can we goods receipt without material number and without PO?
Can we goods receipt without material number and without PO as consumption ?
I have case that no PO in SAP system (charge to cost center) but need to goods receipt in SAP system.
How should I do?
Thank you very muchHi
Go to MB1C enter 561 movement type (initial posting ) .
Material number is must.
It will be against profit center as it is goods receipt and stock value will be credited to our a/c .
Thanks
Ravi
Edited by: Ravikant Dewangan on Aug 11, 2009 8:38 PM -
Dear Expers,
A colleague of mine has done Good Receipt without cost when I go in Inventory posting the G/L Acct is missing because of this. How Can I rectify this... I have tried doing stock revaluation but its giving BK-PLEASE ENTER A PROFIT CENTER....even tho I put in the profit center I get the same error msg.
Thanks,
TitiHi,
Please check the Note 1099094 suggested by Johnson.
[https://websmp130.sap-ag.de/sap(bD1lbiZjPTAwMQ==)/bc/bsp/spn/sapnotes/index2.htm?numm=1099094]
Yes of course if you valuing by Moving average. its highly crucial to maintain and you do MR - material revaluation the issue is more the cost is increased. The cost will have increased.
( (Item price* qty) + (available item price * qty) ) / total quantity. Please do calulation it will all be correct to the value inthe system.
Please be careful with these type of transaction.
Regards,
Rakesh N -
How to do goods receipt without stock for a stock material? Is there a way to create a material document without stock posting?
in case you do a goods receipt to a third party order, it is just statistical and does not update your stock figures.
-
When doing goods receipt without po using mvt 501 wants to be able to put amount
when doing goods receipt without po using movement type 501 i want to be able to put the amount and dont want the amount to be coming from the moving average price in the material master.
Have you used MIGO...
I have tested that...
The Ext. Amount LC field is mandatory in MIGO for movement type 501...
Maybe you are looking for
-
I am currently sick with the flu and in my room I dont have a tv. I tried plugging my xbox one's hdmi into the hdmi port on my macbook pro late 2013 retina display. I even tried connecting the hdmi cable to a hdmi mini display mort converter and that
-
Can no longer access .mac, mail, msn messenger etc on wireless network
have a wireless network in our house through an airport. but .mac login page does not load, mail will not access my email and things like msn messenger just do not login. does not work on either my macbook, imac g5 or the g5 tower. no idea what is wr
-
IPhone not compatible with Apple camera adapter
FYI: I tried to use the little white Apple camera adapter with my Olympis and iPhone this morning. Got the "Accessory not compatible" message.
-
Animanted Menus, Buttons
Unless I'm missing something it would be great to have sub-menus that fade or slide in and out, as well as fading rollovers on buttons and links. I know there are some tricky workarounds to create similar effects but as far as I can see there's no ea
-
HT1386 the summary tab DOES NOT EXIST ON THE NEW (AND HORRIBLE) ITUNES SOFTWARE!
the summary tab DOES NOT show up ON THE NEW (AND HORRIBLE) ITUNES SOFTWARE! where the heck is it???