Professional Documents
Culture Documents
*& ZMR_105_FG_PURCHASE *
*&---------------------------------------------------------------------*
*&---------------------------------------------------------------------*
*& Objective : Vendorwise Monthwise Finished Goods Purchase Report *
*& Program : Updates Tables( ) Downloads data( ) Outputs List( )*
*& Functional Spec No: Not Provided *
*& Technical Spec No: *
*& Date Created : 28/06/2007 *
*& Author : Tapas Kundu *
*& Location : SIL/Kolkata *
*&---------------------------------------------------------------------*
*&---------------------------------------------------------------------*
*& Amendment History *
*&---------------------------------------------------------------------*
*& Who Change ID Reason *
*&---------------------------------------------------------------------*
*&---------------------------------------------------------------------*
REPORT ZMR_105_FG_PURCHASE NO STANDARD PAGE HEADING MESSAGE-ID ZMM.
TYPE-POOLS : SLIS, " For ALV Display.
VRM. " For parameter drop down lists.
**---------------------------------------------------------------------*
** T Y P E S **
**---------------------------------------------------------------------*
TYPES : BEGIN OF TY_MSEG,
MBLNR TYPE MBLNR, " Number of Material Document
MJAHR TYPE MJAHR, " Material Document Year
ZEILE TYPE MBLPO, " Item in Material Document
EBELN TYPE BSTNR, " Purchase Order Number
EBELP TYPE EBELP, " Item Number of Purchasing Document
MENGE TYPE MENGE_D, " Quantity
MEINS TYPE MEINS, " Base Unit of Measure
ERFMG TYPE ERFMG, " Quantity in Unit of Entry
ERFME TYPE ERFME, " Unit of Entry
DMBTR TYPE DMBTR, " Amount in Local Currency
MATNR TYPE MATNR, " Material Number
WERKS TYPE WERKS_D, " Plant
LIFNR TYPE ELIFN, " Vendor Account Number
BWART TYPE BWART, " Movement Type (Inventory Management)
MWSKZ TYPE MWSKZ, " Sales Tax Code
KONDM TYPE KONDM, " material Pricing group.
BSART TYPE ESART, " Purchasing Document Type
MSATZ TYPE MSATZ_F05L, " Tax rate
TAX_DMBTR TYPE DMBTR, " Amount in Local Currency
TOT_DMBTR TYPE DMBTR, " Amount in Local Currency
MARK(1) TYPE C,
END OF TY_MSEG.
TYPES : BEGIN OF TY_EKPO,
EBELN TYPE EBELN, " Purchasing Document Number
BEDAT TYPE EBDAT, " Purchasing Document Date
BSART TYPE ESART, " Purchasing Document Type
MWSKZ TYPE MWSKZ, " Sales Tax Code
END OF TY_EKPO.
TYPES: BEGIN OF TY_KONDM,
MATNR TYPE MATNR, " Material Number
KONDM TYPE KONDM, " Material Pricin
g Group . MVKE-KONDM
VTEXT TYPE BEZEI20, " Material Pricin
g Group Description . T178T-VTEXT
END OF TY_KONDM.
TYPES : BEGIN OF TY_MARA,
MATNR TYPE MATNR,
SPART TYPE SPART,
END OF TY_MARA.
TYPES : BEGIN OF TY_VENDOR,
LIFNR TYPE LIFNR,
NAME1 TYPE NAME1,
END OF TY_VENDOR.
TYPES : BEGIN OF TY_LIFNR,
LIFNR TYPE LIFNR,
END OF TY_LIFNR.
TYPES : BEGIN OF TY_OUTPUT,
BOX TYPE slis_fieldname, " ALV B
ox
LIFNR TYPE ELIFN,
NAME1 TYPE NAME1_GP,
TOT_DMBTR TYPE DMBTR,
MC_PM_DMBTR TYPE DMBTR, " MVKE-KONDM = 30 & 60
CD_PC_DMBTR TYPE DMBTR, " MVKE-KONDM = 70 & 50
AVCD_DMBTR TYPE DMBTR, " MVKE-KONDM = 10 MARA-SPAR
T = 10
VVCD_DMBTR TYPE DMBTR, " MVKE-KONDM = 10 MARA-SPAR
T = 20
ADVD_DMBTR TYPE DMBTR, " MVKE-KONDM = 20 MARA-SPAR
T = 10
VDVD_DMBTR TYPE DMBTR, " MVKE-KONDM = 20 MARA-SPAR
T = 20
MP3_DMBTR TYPE DMBTR, " MVKE-KONDM = 40
MT_DMBTR TYPE DMBTR, " MVKE-KONDM = 80
TOT_MENGE TYPE MENGE_D,
MC_PM_MENGE TYPE MENGE_D, " MVKE-KONDM = 30 & 60
CD_PC_MENGE TYPE MENGE_D, " MVKE-KONDM = 70 & 50
AVCD_MENGE TYPE MENGE_D, " MVKE-KONDM = 10 MARA-SP
ART = 10
VVCD_MENGE TYPE MENGE_D, " MVKE-KONDM = 10 MARA-SP
ART = 20
ADVD_MENGE TYPE MENGE_D, " MVKE-KONDM = 20 MARA-SP
ART = 10
VDVD_MENGE TYPE MENGE_D, " MVKE-KONDM = 20 MARA-SP
ART = 20
MP3_MENGE TYPE MENGE_D, " MVKE-KONDM = 40
MT_MENGE TYPE MENGE_D, " MVKE-KONDM = 80
END OF TY_OUTPUT.
TYPES : BEGIN OF TY_TAXTABLE.
INCLUDE STRUCTURE RTAX1U15.
TYPES : END OF TY_TAXTABLE.
*----------------------------------------------------------------------*
* C O N S T A N T S
*----------------------------------------------------------------------*
*CONSTANTS : C_TOP TYPE SLIS_FORMNAME VALUE 'TOP_OF_PAGES'.
* C_STAT TYPE SLIS_FORMNAME VALUE 'PF_STATUS_SET'.
*----------------------------------------------------------------------*
* D A T A
*----------------------------------------------------------------------*
* W O R K F I E L D S / W O R K A R E A
*----------------------------------------------------------------------*
* Variables for ALV display.
DATA : G_FLD TYPE SLIS_T_FIELDCAT_ALV, " Field Catalogue Internal tabl
e
L_FLD TYPE SLIS_FIELDCAT_ALV, " Field Catalogue Work Area
G_TOP TYPE SLIS_T_LISTHEADER, " Header ( Top of Page) Intern
al table
L_TOP TYPE SLIS_LISTHEADER, " Header ( Top of Page) Work A
rea
l_layout type slis_layout_alv, " Layout Work Area
G_SORT type slis_t_sortinfo_alv, " Sort Info Internal table
L_SORT type slis_sortinfo_alv, " Sort Info Work Area
G_EVNT TYPE SLIS_T_EVENT,
L_EVNT TYPE SLIS_ALV_EVENT.
DATA : V_REPID LIKE SY-REPID. " Program Name
DATA : MONAT1 TYPE MONAT, " Perid
LIFNR1 TYPE LIFNR, " Vendor
WERKS1 TYPE WERKS_D, " Plant
KONDM1 TYPE KONDM, " Material Pricing group
BUDAT1 TYPE BUDAT,
TMSATZ TYPE MSATZ_F05L, " Tax rate
Ed_MSATZ TYPE MSATZ_F05L, " Tax rate
Ex_MSATZ TYPE MSATZ_F05L, " Tax rate
CL_MSATZ TYPE MSATZ_F05L. " Tax rate
*----------------------------------------------------------------------*
* I N T E R N A L T A B L E S
*----------------------------------------------------------------------*
*Internal Table & Workarea for MKPF-MSEG.
DATA : IT_MSEG TYPE STANDARD TABLE OF TY_MSEG,
WA_MSEG TYPE TY_MSEG,
IT_EKPO TYPE STANDARD TABLE OF TY_EKPO,
WA_EKPO TYPE TY_EKPO,
IT_KONDM TYPE STANDARD TABLE OF TY_KONDM, " WITH UNIQUE
KEY MATNR,
WA_KONDM TYPE TY_KONDM,
IT_TAXTABLE TYPE STANDARD TABLE OF TY_TAXTABLE, " WITH U
NIQUE KEY MATNR,
WA_TAXTABLE TYPE TY_TAXTABLE,
IT_LIFNR TYPE STANDARD TABLE OF TY_LIFNR, "
WA_LIFNR TYPE TY_LIFNR,
IT_VENDOR TYPE STANDARD TABLE OF TY_VENDOR, " WITH UNIQU
E KEY MATNR,
WA_VENDOR TYPE TY_VENDOR,
IT_MARA TYPE STANDARD TABLE OF TY_MARA,
WA_MARA TYPE TY_MARA,
IT_OUTPUT TYPE STANDARD TABLE OF TY_OUTPUT,
WA_OUTPUT TYPE TY_OUTPUT.
*----------------------------------------------------------------------*
* SELECTION SCREENS
*----------------------------------------------------------------------*
SELECTION-SCREEN BEGIN OF BLOCK B2 WITH FRAME TITLE TEXT-002.
SELECT-OPTIONS : S_BUDAT FOR BUDAT1 OBLIGATORY.
SELECT-OPTIONS : S_LIFNR FOR LIFNR1 MATCHCODE OBJECT KRED. " Vender
No
SELECT-OPTIONS : S_WERKS FOR WERKS1 MATCHCODE OBJECT SH_T001W_EXTS. " Plant
SELECT-OPTIONS : S_KONDM FOR KONDM1 MATCHCODE OBJECT H_T178. " Materi
al Pricing Group
SELECTION-SCREEN END OF BLOCK B2.
*----------------------------------------------------------------------*
* Initialization *
*----------------------------------------------------------------------*
INITIALIZATION.
V_REPID = SY-REPID.
**----------------------------------------------------------------------
** At Selection Screen OUTPUT
**----------------------------------------------------------------------
*----------------------------------------------------------------------*
* Start of Selection *
*----------------------------------------------------------------------*
START-OF-SELECTION.
PERFORM FETCH_DATA.
PERFORM SET_EVENTS.
PERFORM LAYOUT.
PERFORM SET_FLD_CTL.
PERFORM DISPLAY.
*&---------------------------------------------------------------------*
*& Form FETCH_DATA
*&---------------------------------------------------------------------*
* text
*----------------------------------------------------------------------*
* --> p1 text
* <-- p2 text
*----------------------------------------------------------------------*
FORM FETCH_DATA .
* Fetching Goods Receipt.
SELECT B~MBLNR
B~MJAHR
B~ZEILE
B~EBELN
B~EBELP
B~MENGE
B~MEINS
B~ERFMG
B~ERFME
B~DMBTR
B~MATNR
B~WERKS
B~LIFNR
B~BWART
INTO CORRESPONDING FIELDS OF TABLE IT_MSEG
FROM MKPF AS A INNER JOIN MSEG AS B ON A~MBLNR = B~MBLNR
WHERE A~BUDAT IN S_BUDAT
AND B~LIFNR IN S_LIFNR
AND B~WERKS IN S_WERKS
AND B~BWART EQ '101'
AND A~VGART EQ 'WE'.
SELECT A~MATNR A~KONDM B~VTEXT INTO TABLE IT_KONDM
FROM MVKE AS A INNER JOIN T178T AS B ON A~KONDM EQ B~KONDM
WHERE A~VKORG EQ '1000' AND A~KONDM IN S_KONDM.
SORT IT_KONDM BY MATNR.
DELETE ADJACENT DUPLICATES FROM IT_KONDM.
SORT IT_KONDM BY MATNR.
* Fetching Purchase Orders.
SELECT A~EBELN A~BEDAT A~BSART B~MWSKZ
INTO TABLE IT_EKPO
FROM EKKO AS A INNER JOIN EKPO AS B ON A~EBELN = B~EBELN
WHERE A~BEDAT LE S_BUDAT-HIGH
AND A~BSART EQ 'NB'
AND B~WERKS IN S_WERKS.
SORT IT_EKPO BY EBELN.
DELETE ADJACENT DUPLICATES FROM IT_EKPO.
SORT IT_EKPO BY EBELN.
SELECT MATNR SPART FROM MARA INTO TABLE IT_MARA WHERE SPART NE ' '.
SORT IT_MARA BY MATNR.
SELECT LIFNR NAME1 from LFA1 INTO TABLE IT_VENDOR.
SORT IT_VENDOR BY LIFNR.
REFRESH IT_LIFNR.
LOOP AT IT_MSEG INTO WA_MSEG.
CLEAR WA_EKPO.
READ TABLE IT_EKPO INTO WA_EKPO WITH KEY EBELN = WA_MSEG-EBELN BINARY SEARCH
.
IF SY-SUBRC EQ 0.
CLEAR WA_KONDM.
READ TABLE IT_KONDM WITH KEY MATNR = WA_MSEG-MATNR INTO WA_KONDM BINARY SE
ARCH.
WA_MSEG-KONDM = WA_KONDM-KONDM.
WA_MSEG-MWSKZ = WA_EKPO-MWSKZ.
WA_MSEG-BSART = WA_EKPO-BSART.
CLEAR WA_LIFNR.
WA_LIFNR-LIFNR = WA_MSEG-LIFNR.
APPEND WA_LIFNR TO IT_LIFNR.
ELSE.
WA_MSEG-MARK = 'X'.
ENDIF.
MODIFY IT_MSEG FROM WA_MSEG.
ENDLOOP.
DELETE IT_MSEG WHERE MARK = 'X'.
SORT IT_LIFNR BY LIFNR.
DELETE ADJACENT DUPLICATES FROM IT_LIFNR.
SORT IT_MSEG BY LIFNR.