Go on link..

link us with ...

Showing posts with label inward movement. Show all posts
Showing posts with label inward movement. Show all posts

Tuesday, December 21, 2010

STOs del note quality lt received quality

*&---------------------------------------------------------------------*
*& Report ZVVF_MR025_WEIGHBRIDGE_STOLIST *
*&---------------------------------------------------------------------*

REPORT ZVVF_MR025_WEIGHBRIDGE_STOLIST no standard page heading line-size
110 MESSAGE-ID ZMM .

*----------------------------------------------------------------------
** Module Sales *
*----------------------------------------------------------------------
** Objective: Report of STOs having Delivery Note Qty
**less than Received Qty
** Program : Updates tables ( ) Download data ( )
** Output Lists (X) ALV
**
** Technical Spec No :VVF_TS07_MM025_WB_STO_V1.0
** Date Created :
** Author :
** Location :
**---------------------------------------------------------------------*
* External Dependencies
**---------------------------------------------------------------------*
*
**---------------------------------------------------------------------*
* Amendment History
**---------------------------------------------------------------------*
* Who Change ID Reason
*** ¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯
*---------------------------------------------------------------------**
* Type-pools
*----------------------------------------------------------------------*
TYPE-POOLS : slis.
*---------------------------------------------------------------------*
**TABLES :
*---------------------------------------------------------------------*
TABLES : ZVVF_MT25_BRIDG1, " Weigh Bridge Posted POs Details
ekpo, " Purchasing Document Item
MKPF. " Header: Material Document

*---------------------------------------------------------------------*
**CONSTANTS :
*---------------------------------------------------------------------*
*--- For ALV ----*
CONSTANTS: c_top_of_page_db TYPE slis_formname VALUE 'TOP_OF_PAGE_DB'.

*---------------------------------------------------------------------*
**DATA :
*---------------------------------------------------------------------*
DATA : W_REPID LIKE SY-REPID,
W_ANS type n,
w_ok like sy-ucomm,
W_MODE LIKE CTU_PARAMS-DISMODE.

*---------------------------------------------------------------------*
**INTERNAL TABLES :
*---------------------------------------------------------------------*
*--- For ALV ----*
DATA: it_list_top_of_page TYPE slis_t_listheader,
it_events TYPE slis_t_event,
it_fieldcat TYPE slis_t_fieldcat_alv.
*---------------*
DATA: IT_PODAT TYPE TABLE OF ZVVF_MT25_BRIDG1 WITH HEADER LINE.
*---------------------------------------------------------------------*
**WORK AREAS
*---------------------------------------------------------------------*
DATA: WA_PODAT LIKE LINE OF IT_PODAT,
WA_layout TYPE slis_layout_alv. " For ALV

*---------------------------------------------------------------------*
**SELECTION SCREEN
*---------------------------------------------------------------------*
SELECTION-SCREEN BEGIN OF BLOCK MAIN WITH FRAME TITLE TEXT-001.
select-options : so_DATE for MKPF-BUDAT obligatory.
SELECTION-SCREEN END OF BLOCK MAIN .

*---------------------------------------------------------------------*
**INITIALIZATION :
*---------------------------------------------------------------------*
INITIALIZATION.

w_repid = SY-REPID.
*---------------------------------------------------------------------*
**AT SELECTION SCREEN :
*---------------------------------------------------------------------*
AT SELECTION-SCREEN.
PERFORM Check_DATA.

*---------------------------------------------------------------------*
**START OF SELECTION :
*---------------------------------------------------------------------*
START-OF-SELECTION.

LOOP AT IT_podat INTO WA_podat.
PERFORM MATNR_FORMAT.
MODIFY IT_podat FROM WA_podat TRANSPORTING MATNR.
endloop.

*---------------------------------------------------------------------*
**END OF SELECTION :
*---------------------------------------------------------------------*
END-OF-SELECTION.

PERFORM fieldcat_init USING it_fieldcat[].
PERFORM eventtab_build USING it_events[].
PERFORM comment_build USING it_list_top_of_page[].
PERFORM layout_build USING WA_layout.
PERFORM write_alv_grid.

*&---------------------------------------------------------------------*
*& Form Check_DATA
*&---------------------------------------------------------------------*
FORM Check_DATA.

**SELECT POS having Delivery Note Qty
**less than Received Qty


select * from ZVVF_MT25_BRIDG1 into corresponding fields of table
it_podat where BUDAT in so_DATE .

loop at it_podat into wa_podat.
if not wa_podat-lsmng lt wa_podat-menge.
delete it_podat index sy-tabix.
endif.
endloop.


IF it_podat[] is initial.
MESSAGE E005.
ENDIF.
endform. "Check_DATA

*&--------------------------------------------------------------------*
*& Form fieldcat_init
*&--------------------------------------------------------------------*
* text
*---------------------------------------------------------------------*
* -->IT_FIELDCATtext
*---------------------------------------------------------------------*
FORM fieldcat_init USING lt_fieldcat TYPE slis_t_fieldcat_alv.
DATA : wa_fieldcat TYPE slis_fieldcat_alv.
DATA :w_pos TYPE i VALUE 0.


w_pos = w_pos + 1.
CLEAR wa_fieldcat.
wa_fieldcat-col_pos = w_pos.
wa_fieldcat-tabname = 'IT_PODAT'.
wa_fieldcat-fieldname = 'WERKS'.
wa_fieldcat-seltext_m = 'Plant'.
wa_fieldcat-emphasize = 'C410'.
wa_fieldcat-outputlen = '15'.
APPEND wa_fieldcat TO lt_fieldcat.

w_pos = w_pos + 1.
CLEAR wa_fieldcat.
wa_fieldcat-col_pos = w_pos.
wa_fieldcat-tabname = 'IT_PODAT'.
wa_fieldcat-fieldname = 'EBELN'.
wa_fieldcat-seltext_m = 'PO No.'.
wa_fieldcat-emphasize = 'C410'.
wa_fieldcat-outputlen = '15'.
APPEND wa_fieldcat TO lt_fieldcat.


w_pos = w_pos + 1.
CLEAR wa_fieldcat.
wa_fieldcat-col_pos = w_pos.
wa_fieldcat-tabname = 'IT_PODAT'.
wa_fieldcat-fieldname = 'EBELP'.
wa_fieldcat-seltext_m = 'PO Item'.
wa_fieldcat-emphasize = 'C410'.
wa_fieldcat-outputlen = '15'.
APPEND wa_fieldcat TO lt_fieldcat.

w_pos = w_pos + 1.
CLEAR wa_fieldcat.
wa_fieldcat-col_pos = w_pos.
wa_fieldcat-tabname = 'IT_PODAT'.
wa_fieldcat-fieldname = 'MATNR'.
wa_fieldcat-seltext_m = 'Material'.
wa_fieldcat-emphasize = 'C410'.
wa_fieldcat-outputlen = '15'.
APPEND wa_fieldcat TO lt_fieldcat.

w_pos = w_pos + 1.
CLEAR wa_fieldcat.
wa_fieldcat-col_pos = w_pos.
wa_fieldcat-tabname = 'IT_PODAT'.
wa_fieldcat-fieldname = 'LSMNG'.
wa_fieldcat-seltext_m = 'Delivered Qty.'.
wa_fieldcat-do_sum = 'X'.
wa_fieldcat-emphasize = 'C410'.
wa_fieldcat-outputlen = '15'.
APPEND wa_fieldcat TO lt_fieldcat.


w_pos = w_pos + 1.
CLEAR wa_fieldcat.
wa_fieldcat-col_pos = w_pos.
wa_fieldcat-tabname = 'IT_PODAT'.
wa_fieldcat-fieldname = 'MENGE'.
wa_fieldcat-seltext_m = 'Received Qty.'.
wa_fieldcat-do_sum = 'X'.
wa_fieldcat-emphasize = 'C410'.
wa_fieldcat-outputlen = '15'.
APPEND wa_fieldcat TO lt_fieldcat.

w_pos = w_pos + 1.
CLEAR wa_fieldcat.
wa_fieldcat-col_pos = w_pos.
wa_fieldcat-tabname = 'IT_PODAT'.
wa_fieldcat-fieldname = 'MEINS'.
wa_fieldcat-seltext_m = 'UOM'.
wa_fieldcat-emphasize = 'C410'.
wa_fieldcat-outputlen = '5'.
APPEND wa_fieldcat TO lt_fieldcat.


* w_pos = w_pos + 1.
* CLEAR wa_fieldcat.
* wa_fieldcat-col_pos = w_pos.
* wa_fieldcat-tabname = 'IT_PODAT'.
* wa_fieldcat-fieldname = 'ZBLCK'.
* wa_fieldcat-seltext_m = 'Block Memo'.
* wa_fieldcat-emphasize = 'C410'.
* wa_fieldcat-outputlen = '1'.
* wa_fieldcat-checkbox = 'X'.
* APPEND wa_fieldcat TO lt_fieldcat.
*
* w_pos = w_pos + 1.
* CLEAR wa_fieldcat.
* wa_fieldcat-col_pos = w_pos.
* wa_fieldcat-tabname = 'IT_PODAT'.
* wa_fieldcat-fieldname = 'ZPOST'.
* wa_fieldcat-seltext_m = 'Post Memo'.
* wa_fieldcat-emphasize = 'C410'.
* wa_fieldcat-outputlen = '1'.
* wa_fieldcat-checkbox = 'X'.
* APPEND wa_fieldcat TO lt_fieldcat.

ENDFORM. " fieldcat_init

*&---------------------------------------------------------------------*
*& Form eventtab_build
*&---------------------------------------------------------------------*
* text
*----------------------------------------------------------------------*
* -->P_it_EVENTS[] text
*----------------------------------------------------------------------*
FORM eventtab_build USING lt_events TYPE slis_t_event.
DATA: wa_event TYPE slis_alv_event.
DATA: c_top_of_page TYPE slis_formname.

c_top_of_page = c_top_of_page_db.

CALL FUNCTION 'REUSE_ALV_EVENTS_GET'
EXPORTING
i_list_type = 0
IMPORTING
et_events = lt_events.
READ TABLE lt_events WITH KEY name = slis_ev_top_of_page
INTO wa_event.
IF sy-subrc <> 0.
MOVE c_top_of_page TO wa_event-form.
APPEND wa_event TO lt_events.
ELSE.
MOVE c_top_of_page TO wa_event-form.
MODIFY lt_events FROM wa_event INDEX sy-tabix .
ENDIF.

ENDFORM. " eventtab_build

*&---------------------------------------------------------------------*
*& Form comment_build
*&---------------------------------------------------------------------*
* text
*----------------------------------------------------------------------*
* -->P_it_LIST_TOP_OF_PAGE[] text
*----------------------------------------------------------------------*
FORM comment_build USING lt_top_of_page TYPE slis_t_listheader.
DATA: wa_line TYPE slis_listheader.
CLEAR wa_line.
wa_line-typ = 'H'.
wa_line-info = 'VVF LTD. Mumbai'.
APPEND wa_line TO lt_top_of_page.

wa_line-typ = 'H'.
wa_line-info = SY-ULINE.
APPEND wa_line TO lt_top_of_page.

wa_line-typ = 'H'.
wa_line-info =
'List of POs having Delivered Qty Less than Received Qty'.
APPEND wa_line TO lt_top_of_page.

ENDFORM. " comment_build

*&---------------------------------------------------------------------*
*& Form layout_build
*&---------------------------------------------------------------------*
* text
*----------------------------------------------------------------------*
* -->P_WA_layout text
*----------------------------------------------------------------------*
FORM layout_build USING wa_layout TYPE slis_layout_alv.
wa_layout-zebra = 'X'.
wa_layout-colwidth_optimize = 'X'.
wa_layout-no_totalline = 'X'.
* wa_layout-edit = 'X'.
ENDFORM. " layout_build

*&---------------------------------------------------------------------*
*& Form write_alv_grid
*&---------------------------------------------------------------------*
* text
*----------------------------------------------------------------------*
* --> p1 text
* <-- p2 text *----------------------------------------------------------------------* FORM write_alv_grid. CALL FUNCTION 'REUSE_ALV_GRID_DISPLAY' EXPORTING i_callback_program = w_repid i_callback_user_command = 'USER_COMMAND' i_callback_PF_STATUS_SET = 'PF_STATUS' i_background_id = 'ALV_BACKGROUND' I_CALLBACK_TOP_OF_PAGE = c_top_of_page_db is_layout = WA_layout it_fieldcat = it_fieldcat[] it_events = it_events[] i_save = 'A' * I_DEFAULT = 'X' TABLES t_outtab = IT_PODAT EXCEPTIONS program_error = 1 OTHERS = 2. IF sy-subrc <> 0.
MESSAGE ID sy-msgid TYPE sy-msgty NUMBER sy-msgno
WITH sy-msgv1 sy-msgv2 sy-msgv3 sy-msgv4.
ENDIF.





ENDFORM. " write_alv_grid

*&---------------------------------------------------------------------*
*& Form PF_STATUS
*&---------------------------------------------------------------------*
* text
*----------------------------------------------------------------------*
FORM PF_STATUS using extab type slis_t_extab.

SET PF-STATUS 'ZSTANDARD1'
.

ENDFORM. "PF_STATUS
*&---------------------------------------------------------------------*
*& Form USER_COMMAND
*&---------------------------------------------------------------------*
* text
*----------------------------------------------------------------------*
FORM USER_COMMAND using OK_CODE type SY-UCOMM
RS_SELFIELD TYPE SLIS_SELFIELD.

IF OK_CODE = '&DATA_SAVE'.
***blocking memo
LOOP AT IT_PODAT INTO WA_PODAT .

UPDATE ZVVF_MT25_BRIDGE SET
ZBLCK = WA_PODAT-ZBLCK
WHERE EBELN = WA_PODAT-EBELN AND
EBELP = WA_PODAT-EBELP .

ENDLOOP.

IF SY-SUBRC = 0.
MESSAGE S131.
set screen 0.
leave screen.
ENDIF.

***when back leave screen
ELSEIF OK_CODE = 'OUT'.
CALL FUNCTION 'POPUP_TO_CONFIRM'
EXPORTING
TITLEBAR = text-003
TEXT_QUESTION = text-004
DEFAULT_BUTTON = '2'
DISPLAY_CANCEL_BUTTON = ' '
IMPORTING
ANSWER = w_ans
EXCEPTIONS
TEXT_NOT_FOUND = 1
OTHERS = 2.
IF w_ans = '1'.
set screen 0.
leave screen.
ELSE.
leave screen.
ENDIF.
endif.
ENDFORM. "USER_COMMAND
*---------------------------------------------------------------------*
* FORM TOP_OF_PAGE_DB *
*---------------------------------------------------------------------*
* ........ *
*---------------------------------------------------------------------*
FORM TOP_OF_PAGE_DB.
*
CALL FUNCTION 'REUSE_ALV_COMMENTARY_WRITE'
EXPORTING
it_list_commentary = it_list_top_of_page
i_logo = ' '.
ENDFORM. "top_of_page_db

*&--------------------------------------------------------------------*
*& Form MATNR_FORMAT
*&--------------------------------------------------------------------*
* MATNR FORMAT
*---------------------------------------------------------------------*
FORM MATNR_FORMAT.
CALL FUNCTION 'CONVERSION_EXIT_ALPHA_OUTPUT'
EXPORTING
INPUT = WA_podat-MATNR
IMPORTING
OUTPUT = WA_podat-MATNR.
ENDFORM.

Display Posted PO using inward movement

*&---------------------------------------------------------------------*
*& Report ZVVF_MR025_WEIGHBRIDGE_DISPLAY *
*&---------------------------------------------------------------------*

REPORT ZVVF_MR025_WEIGHBRIDGE_DISPLAY no standard page heading line-size
110 MESSAGE-ID ZMM .

*----------------------------------------------------------------------
** Module Sales *
*----------------------------------------------------------------------
** Objective: Display Posted POs
** Program : Updates tables ( ) Download data ( )
** Output Lists (X) ALV
**
** Technical Spec No :
** Date Created :
** Author :
** Location :
**---------------------------------------------------------------------*
* External Dependencies
**---------------------------------------------------------------------*
*
**---------------------------------------------------------------------*
* Amendment History
**---------------------------------------------------------------------*
* Who Change ID Reason
*** ¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯
*---------------------------------------------------------------------**
* Type-pools
*----------------------------------------------------------------------*
TYPE-POOLS : slis.
*---------------------------------------------------------------------*
**TABLES :
*---------------------------------------------------------------------*
TABLES : ZVVF_MT25_BRIDG1, " Weigh Bridge Posted POs Details
ekpo, " Purchasing Document Item
MKPF. " Header: Material Document
*---------------------------------------------------------------------*
**CONSTANTS :
*---------------------------------------------------------------------*
*--- For ALV ----*
CONSTANTS: c_top_of_page_db TYPE slis_formname VALUE 'TOP_OF_PAGE_DB'.

*---------------------------------------------------------------------*
**DATA :
*---------------------------------------------------------------------*
DATA : W_REPID LIKE SY-REPID,
W_ANS type n,
w_ok like sy-ucomm,
W_MODE LIKE CTU_PARAMS-DISMODE.

*---------------------------------------------------------------------*
**INTERNAL TABLES :
*---------------------------------------------------------------------*
*--- For ALV ----*
DATA: it_list_top_of_page TYPE slis_t_listheader,
it_events TYPE slis_t_event,
it_fieldcat TYPE slis_t_fieldcat_alv.
*---------------*
DATA: IT_PODAT TYPE TABLE OF ZVVF_MT25_BRIDG1 WITH HEADER LINE.
*---------------------------------------------------------------------*
**WORK AREAS
*---------------------------------------------------------------------*
DATA: WA_PODAT LIKE LINE OF IT_PODAT,
WA_layout TYPE slis_layout_alv. " For ALV

*---------------------------------------------------------------------*
**SELECTION SCREEN
*---------------------------------------------------------------------*
SELECTION-SCREEN BEGIN OF BLOCK MAIN WITH FRAME TITLE TEXT-001.
select-options : so_DATE for MKPF-BUDAT obligatory.
SELECTION-SCREEN END OF BLOCK MAIN .

*---------------------------------------------------------------------*
**INITIALIZATION :
*---------------------------------------------------------------------*
INITIALIZATION.

w_repid = SY-REPID.
*---------------------------------------------------------------------*
**AT SELECTION SCREEN :
*---------------------------------------------------------------------*
AT SELECTION-SCREEN.
PERFORM Check_DATA.

*---------------------------------------------------------------------*
**START OF SELECTION :
*---------------------------------------------------------------------*
START-OF-SELECTION.
LOOP AT IT_podat INTO WA_podat.
PERFORM MATNR_FORMAT.
MODIFY IT_podat FROM WA_podat TRANSPORTING MATNR.
endloop.

*---------------------------------------------------------------------*
**END OF SELECTION :
*---------------------------------------------------------------------*
END-OF-SELECTION.

PERFORM fieldcat_init USING it_fieldcat[].
PERFORM eventtab_build USING it_events[].
PERFORM comment_build USING it_list_top_of_page[].
PERFORM layout_build USING WA_layout.
PERFORM write_alv_grid.

*&---------------------------------------------------------------------*
*& Form Check_DATA
*&---------------------------------------------------------------------*
FORM Check_DATA.

**Select all PO which are posted

select * from ZVVF_MT25_BRIDG1 into corresponding fields of table
it_podat where
BUDAT in so_DATE AND
Zpost = 'X' .
IF SY-SUBRC NE 0.
MESSAGE E005.
ENDIF.
endform. "Check_DATA

*&--------------------------------------------------------------------*
*& Form fieldcat_init
*&--------------------------------------------------------------------*
* text
*---------------------------------------------------------------------*
* -->IT_FIELDCATtext
*---------------------------------------------------------------------*
FORM fieldcat_init USING lt_fieldcat TYPE slis_t_fieldcat_alv.
DATA : wa_fieldcat TYPE slis_fieldcat_alv.
DATA :w_pos TYPE i VALUE 0.


w_pos = w_pos + 1.
CLEAR wa_fieldcat.
wa_fieldcat-col_pos = w_pos.
wa_fieldcat-tabname = 'IT_PODAT'.
wa_fieldcat-fieldname = 'BWART'.
wa_fieldcat-seltext_m = 'Movement Type'.
wa_fieldcat-emphasize = 'C410'.
wa_fieldcat-outputlen = '15'.
APPEND wa_fieldcat TO lt_fieldcat.

w_pos = w_pos + 1.
CLEAR wa_fieldcat.
wa_fieldcat-col_pos = w_pos.
wa_fieldcat-tabname = 'IT_PODAT'.
wa_fieldcat-fieldname = 'EBELN'.
wa_fieldcat-seltext_m = 'PO No.'.
wa_fieldcat-emphasize = 'C410'.
wa_fieldcat-outputlen = '15'.
APPEND wa_fieldcat TO lt_fieldcat.


w_pos = w_pos + 1.
CLEAR wa_fieldcat.
wa_fieldcat-col_pos = w_pos.
wa_fieldcat-tabname = 'IT_PODAT'.
wa_fieldcat-fieldname = 'EBELP'.
wa_fieldcat-seltext_m = 'PO Item'.
wa_fieldcat-emphasize = 'C410'.
wa_fieldcat-outputlen = '15'.
APPEND wa_fieldcat TO lt_fieldcat.

w_pos = w_pos + 1.
CLEAR wa_fieldcat.
wa_fieldcat-col_pos = w_pos.
wa_fieldcat-tabname = 'IT_PODAT'.
wa_fieldcat-fieldname = 'ZSLIPNO'.
wa_fieldcat-seltext_m = 'Slip No.'.
wa_fieldcat-emphasize = 'C410'.
wa_fieldcat-outputlen = '15'.
APPEND wa_fieldcat TO lt_fieldcat.

w_pos = w_pos + 1.
CLEAR wa_fieldcat.
wa_fieldcat-col_pos = w_pos.
wa_fieldcat-tabname = 'IT_PODAT'.
wa_fieldcat-fieldname = 'YYEAR'.
wa_fieldcat-seltext_m = 'Posted Year'.
wa_fieldcat-emphasize = 'C410'.
wa_fieldcat-outputlen = '15'.
APPEND wa_fieldcat TO lt_fieldcat.

w_pos = w_pos + 1.
CLEAR wa_fieldcat.
wa_fieldcat-col_pos = w_pos.
wa_fieldcat-tabname = 'IT_PODAT'.
wa_fieldcat-fieldname = 'MATNR'.
wa_fieldcat-seltext_m = 'Material'.
wa_fieldcat-emphasize = 'C410'.
wa_fieldcat-outputlen = '15'.
APPEND wa_fieldcat TO lt_fieldcat.


w_pos = w_pos + 1.
CLEAR wa_fieldcat.
wa_fieldcat-col_pos = w_pos.
wa_fieldcat-tabname = 'IT_PODAT'.
wa_fieldcat-fieldname = 'LIFNR'.
wa_fieldcat-seltext_m = 'Vendor Acc.'.
wa_fieldcat-emphasize = 'C410'.
wa_fieldcat-outputlen = '15'.
APPEND wa_fieldcat TO lt_fieldcat.

w_pos = w_pos + 1.
CLEAR wa_fieldcat.
wa_fieldcat-col_pos = w_pos.
wa_fieldcat-tabname = 'IT_PODAT'.
wa_fieldcat-fieldname = 'WERKS'.
wa_fieldcat-seltext_m = 'Plant'.
wa_fieldcat-emphasize = 'C410'.
wa_fieldcat-outputlen = '15'.
APPEND wa_fieldcat TO lt_fieldcat.

w_pos = w_pos + 1.
CLEAR wa_fieldcat.
wa_fieldcat-col_pos = w_pos.
wa_fieldcat-tabname = 'IT_PODAT'.
wa_fieldcat-fieldname = 'FRBNR'.
wa_fieldcat-seltext_m = 'Truck No.'.
wa_fieldcat-emphasize = 'C410'.
wa_fieldcat-outputlen = '15'.
APPEND wa_fieldcat TO lt_fieldcat.


w_pos = w_pos + 1.
CLEAR wa_fieldcat.
wa_fieldcat-col_pos = w_pos.
wa_fieldcat-tabname = 'IT_PODAT'.
wa_fieldcat-fieldname = 'XBLNR'.
wa_fieldcat-seltext_m = 'Delivery/LR No.'.
wa_fieldcat-emphasize = 'C410'.
wa_fieldcat-outputlen = '15'.
APPEND wa_fieldcat TO lt_fieldcat.

w_pos = w_pos + 1.
CLEAR wa_fieldcat.
wa_fieldcat-col_pos = w_pos.
wa_fieldcat-tabname = 'IT_PODAT'.
wa_fieldcat-fieldname = 'BKTXT'.
wa_fieldcat-seltext_m = 'Bill of Lading'.
wa_fieldcat-do_sum = 'X'.
wa_fieldcat-emphasize = 'C410'.
wa_fieldcat-outputlen = '15'.
APPEND wa_fieldcat TO lt_fieldcat.

w_pos = w_pos + 1.
CLEAR wa_fieldcat.
wa_fieldcat-col_pos = w_pos.
wa_fieldcat-tabname = 'IT_PODAT'.
wa_fieldcat-fieldname = 'LSMNG'.
wa_fieldcat-seltext_m = 'Delivered Qty.'.
wa_fieldcat-do_sum = 'X'.
wa_fieldcat-emphasize = 'C410'.
wa_fieldcat-outputlen = '15'.
APPEND wa_fieldcat TO lt_fieldcat.


w_pos = w_pos + 1.
CLEAR wa_fieldcat.
wa_fieldcat-col_pos = w_pos.
wa_fieldcat-tabname = 'IT_PODAT'.
wa_fieldcat-fieldname = 'GMEINS'.
wa_fieldcat-seltext_m = 'Gross Wt.'.
wa_fieldcat-emphasize = 'C410'.
wa_fieldcat-outputlen = '15'.
APPEND wa_fieldcat TO lt_fieldcat.

w_pos = w_pos + 1.
CLEAR wa_fieldcat.
wa_fieldcat-col_pos = w_pos.
wa_fieldcat-tabname = 'IT_PODAT'.
wa_fieldcat-fieldname = 'TMEINS'.
wa_fieldcat-seltext_m = 'Tare Wt.'.
wa_fieldcat-emphasize = 'C410'.
wa_fieldcat-outputlen = '15'.
APPEND wa_fieldcat TO lt_fieldcat.

w_pos = w_pos + 1.
CLEAR wa_fieldcat.
wa_fieldcat-col_pos = w_pos.
wa_fieldcat-tabname = 'IT_PODAT'.
wa_fieldcat-fieldname = 'MENGE'.
wa_fieldcat-seltext_m = 'Net Wt.'.
wa_fieldcat-do_sum = 'X'.
wa_fieldcat-emphasize = 'C410'.
wa_fieldcat-outputlen = '15'.
APPEND wa_fieldcat TO lt_fieldcat.


w_pos = w_pos + 1.
CLEAR wa_fieldcat.
wa_fieldcat-col_pos = w_pos.
wa_fieldcat-tabname = 'IT_PODAT'.
wa_fieldcat-fieldname = 'MEINS'.
wa_fieldcat-seltext_m = 'UOM'.
wa_fieldcat-emphasize = 'C410'.
wa_fieldcat-outputlen = '5'.
APPEND wa_fieldcat TO lt_fieldcat.

w_pos = w_pos + 1.
CLEAR wa_fieldcat.
wa_fieldcat-col_pos = w_pos.
wa_fieldcat-tabname = 'IT_PODAT'.
wa_fieldcat-fieldname = 'NAME1'.
wa_fieldcat-seltext_m = 'Transporter'.
wa_fieldcat-emphasize = 'C410'.
wa_fieldcat-outputlen = '20'.
APPEND wa_fieldcat TO lt_fieldcat.

w_pos = w_pos + 1.
CLEAR wa_fieldcat.
wa_fieldcat-col_pos = w_pos.
wa_fieldcat-tabname = 'IT_PODAT'.
wa_fieldcat-fieldname = 'GRUND'.
wa_fieldcat-seltext_m = 'Reason for Movement'.
wa_fieldcat-emphasize = 'C410'.
wa_fieldcat-outputlen = '15'.
APPEND wa_fieldcat TO lt_fieldcat.



ENDFORM. " fieldcat_init

*&---------------------------------------------------------------------*
*& Form eventtab_build
*&---------------------------------------------------------------------*
* text
*----------------------------------------------------------------------*
* -->P_it_EVENTS[] text
*----------------------------------------------------------------------*
FORM eventtab_build USING lt_events TYPE slis_t_event.
DATA: wa_event TYPE slis_alv_event.
DATA: c_top_of_page TYPE slis_formname.

c_top_of_page = c_top_of_page_db.

CALL FUNCTION 'REUSE_ALV_EVENTS_GET'
EXPORTING
i_list_type = 0
IMPORTING
et_events = lt_events.
READ TABLE lt_events WITH KEY name = slis_ev_top_of_page
INTO wa_event.
IF sy-subrc <> 0.
MOVE c_top_of_page TO wa_event-form.
APPEND wa_event TO lt_events.
ELSE.
MOVE c_top_of_page TO wa_event-form.
MODIFY lt_events FROM wa_event INDEX sy-tabix .
ENDIF.

ENDFORM. " eventtab_build

*&---------------------------------------------------------------------*
*& Form comment_build
*&---------------------------------------------------------------------*
* text
*----------------------------------------------------------------------*
* -->P_it_LIST_TOP_OF_PAGE[] text
*----------------------------------------------------------------------*
FORM comment_build USING lt_top_of_page TYPE slis_t_listheader.
DATA: wa_line TYPE slis_listheader.
CLEAR wa_line.
wa_line-typ = 'H'.
wa_line-info = 'VVF LTD. Mumbai'.
APPEND wa_line TO lt_top_of_page.

wa_line-typ = 'H'.
wa_line-info = SY-ULINE.
APPEND wa_line TO lt_top_of_page.

wa_line-typ = 'H'.
wa_line-info = 'Display Posted POs'.
APPEND wa_line TO lt_top_of_page.

ENDFORM. " comment_build

*&---------------------------------------------------------------------*
*& Form layout_build
*&---------------------------------------------------------------------*
* text
*----------------------------------------------------------------------*
* -->P_WA_layout text
*----------------------------------------------------------------------*
FORM layout_build USING wa_layout TYPE slis_layout_alv.
wa_layout-zebra = 'X'.
wa_layout-colwidth_optimize = 'X'.
wa_layout-no_totalline = 'X'.
* wa_layout-edit = 'X'.
ENDFORM. " layout_build

*&---------------------------------------------------------------------*
*& Form write_alv_grid
*&---------------------------------------------------------------------*
* text
*----------------------------------------------------------------------*
* --> p1 text
* <-- p2 text *----------------------------------------------------------------------* FORM write_alv_grid. CALL FUNCTION 'REUSE_ALV_GRID_DISPLAY' EXPORTING i_callback_program = w_repid * i_callback_user_command = 'USER_COMMAND' * i_callback_PF_STATUS_SET = 'PF_STATUS' i_background_id = 'ALV_BACKGROUND' I_CALLBACK_TOP_OF_PAGE = c_top_of_page_db is_layout = WA_layout it_fieldcat = it_fieldcat[] it_events = it_events[] * i_save = 'A' * I_DEFAULT = 'X' TABLES t_outtab = IT_PODAT EXCEPTIONS program_error = 1 OTHERS = 2. IF sy-subrc <> 0.
MESSAGE ID sy-msgid TYPE sy-msgty NUMBER sy-msgno
WITH sy-msgv1 sy-msgv2 sy-msgv3 sy-msgv4.
ENDIF.


ENDFORM. " write_alv_grid

*---------------------------------------------------------------------*
* FORM TOP_OF_PAGE_DB *
*---------------------------------------------------------------------*
* ........ *
*---------------------------------------------------------------------*
FORM TOP_OF_PAGE_DB.
*
CALL FUNCTION 'REUSE_ALV_COMMENTARY_WRITE'
EXPORTING
it_list_commentary = it_list_top_of_page
i_logo = ' '.
ENDFORM. "top_of_page_db

*&--------------------------------------------------------------------*
*& Form MATNR_FORMAT
*&--------------------------------------------------------------------*
* MATNR FORMAT
*---------------------------------------------------------------------*
FORM MATNR_FORMAT.
CALL FUNCTION 'CONVERSION_EXIT_ALPHA_OUTPUT'
EXPORTING
INPUT = WA_podat-MATNR
IMPORTING
OUTPUT = WA_podat-MATNR.
ENDFORM.

unblock PO from goods movement using inward movement

*&---------------------------------------------------------------------*
*& Report ZVVF_MR025_WEIGHBRIDGE_UNBLOCK *
*&---------------------------------------------------------------------*

REPORT ZVVF_MR025_WEIGHBRIDGE_UNBLOCK no standard page heading line-size
110 MESSAGE-ID ZMM .

*----------------------------------------------------------------------
** Module Sales *
*----------------------------------------------------------------------
** Objective: UnBlock PO For Posting Movement
** Program : Updates tables ( ) Download data ( )
** Output Lists (X) ALV
**
** Technical Spec No :
** Date Created :
** Author :
** Location :
**---------------------------------------------------------------------*
* External Dependencies
**---------------------------------------------------------------------*
*
**---------------------------------------------------------------------*
* Amendment History
**---------------------------------------------------------------------*
* Who Change ID Reason
*** ¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯
*---------------------------------------------------------------------**
* Type-pools
*----------------------------------------------------------------------*
TYPE-POOLS : slis.
*---------------------------------------------------------------------*
**TABLES :
*---------------------------------------------------------------------*
TABLES : ZVVF_MT25_BRIDGE, " Weigh Bridge PO Details
ekpo, " Purchasing Document Item
MKPF. " Header: Material Document

*---------------------------------------------------------------------*
**CONSTANTS :
*---------------------------------------------------------------------*
*--- For ALV ----*
CONSTANTS: c_top_of_page_db TYPE slis_formname VALUE 'TOP_OF_PAGE_DB'.

*---------------------------------------------------------------------*
**DATA :
*---------------------------------------------------------------------*
DATA : W_REPID LIKE SY-REPID,
W_ANS type n,
w_ok like sy-ucomm,
W_MODE LIKE CTU_PARAMS-DISMODE.

*---------------------------------------------------------------------*
**INTERNAL TABLES :
*---------------------------------------------------------------------*
*--- For ALV ----*
DATA: it_list_top_of_page TYPE slis_t_listheader,
it_events TYPE slis_t_event,
it_fieldcat TYPE slis_t_fieldcat_alv.
*---------------*
DATA: IT_PODAT TYPE TABLE OF ZVVF_MT25_BRIDGE WITH HEADER LINE.
*---------------------------------------------------------------------*
**WORK AREAS
*---------------------------------------------------------------------*
DATA: WA_PODAT LIKE LINE OF IT_PODAT,
WA_layout TYPE slis_layout_alv. " For ALV

*---------------------------------------------------------------------*
**SELECTION SCREEN
*---------------------------------------------------------------------*
SELECTION-SCREEN BEGIN OF BLOCK MAIN WITH FRAME TITLE TEXT-001.
select-options : so_date for mkpf-budat obligatory.
SELECTION-SCREEN END OF BLOCK MAIN .

*---------------------------------------------------------------------*
**INITIALIZATION :
*---------------------------------------------------------------------*
INITIALIZATION.

w_repid = SY-REPID.
*---------------------------------------------------------------------*
**AT SELECTION SCREEN :
*---------------------------------------------------------------------*
AT SELECTION-SCREEN.
PERFORM Check_DATA.

*---------------------------------------------------------------------*
**START OF SELECTION :
*---------------------------------------------------------------------*
START-OF-SELECTION.

LOOP AT IT_podat INTO WA_podat.
PERFORM MATNR_FORMAT.
MODIFY IT_podat FROM WA_podat TRANSPORTING MATNR.
endloop.

*---------------------------------------------------------------------*
**END OF SELECTION :
*---------------------------------------------------------------------*
END-OF-SELECTION.

PERFORM fieldcat_init USING it_fieldcat[].
PERFORM eventtab_build USING it_events[].
PERFORM comment_build USING it_list_top_of_page[].
PERFORM layout_build USING WA_layout.
PERFORM write_alv_grid.

*&---------------------------------------------------------------------*
*& Form Check_DATA
*&---------------------------------------------------------------------*
FORM Check_DATA.

**Select all PO which are blocked and not yet posted

select * from ZVVF_MT25_BRIDGE into corresponding fields of table
it_podat where
budat in so_date AND
Zpost NE 'X' and
zblck = 'X'.
IF SY-SUBRC NE 0.
MESSAGE E005.
ENDIF.
endform. "Check_DATA

*&--------------------------------------------------------------------*
*& Form fieldcat_init
*&--------------------------------------------------------------------*
* text
*---------------------------------------------------------------------*
* -->IT_FIELDCATtext
*---------------------------------------------------------------------*
FORM fieldcat_init USING lt_fieldcat TYPE slis_t_fieldcat_alv.
DATA : wa_fieldcat TYPE slis_fieldcat_alv.
DATA :w_pos TYPE i VALUE 0.



w_pos = w_pos + 1.
CLEAR wa_fieldcat.
wa_fieldcat-col_pos = w_pos.
wa_fieldcat-tabname = 'IT_PODAT'.
wa_fieldcat-fieldname = 'ZBLCK'.
wa_fieldcat-seltext_m = 'Block Memo'.
wa_fieldcat-emphasize = 'C410'.
wa_fieldcat-outputlen = '1'.
wa_fieldcat-checkbox = 'X'.
wa_fieldcat-EDIT = 'X'.
APPEND wa_fieldcat TO lt_fieldcat.

w_pos = w_pos + 1.
CLEAR wa_fieldcat.
wa_fieldcat-col_pos = w_pos.
wa_fieldcat-tabname = 'IT_PODAT'.
wa_fieldcat-fieldname = 'BWART'.
wa_fieldcat-seltext_m = 'Movement Type'.
wa_fieldcat-emphasize = 'C410'.
wa_fieldcat-outputlen = '15'.
APPEND wa_fieldcat TO lt_fieldcat.

w_pos = w_pos + 1.
CLEAR wa_fieldcat.
wa_fieldcat-col_pos = w_pos.
wa_fieldcat-tabname = 'IT_PODAT'.
wa_fieldcat-fieldname = 'EBELN'.
wa_fieldcat-seltext_m = 'PO No.'.
wa_fieldcat-emphasize = 'C410'.
wa_fieldcat-outputlen = '15'.
APPEND wa_fieldcat TO lt_fieldcat.


w_pos = w_pos + 1.
CLEAR wa_fieldcat.
wa_fieldcat-col_pos = w_pos.
wa_fieldcat-tabname = 'IT_PODAT'.
wa_fieldcat-fieldname = 'EBELP'.
wa_fieldcat-seltext_m = 'PO Item'.
wa_fieldcat-emphasize = 'C410'.
wa_fieldcat-outputlen = '15'.
APPEND wa_fieldcat TO lt_fieldcat.

w_pos = w_pos + 1.
CLEAR wa_fieldcat.
wa_fieldcat-col_pos = w_pos.
wa_fieldcat-tabname = 'IT_PODAT'.
wa_fieldcat-fieldname = 'MATNR'.
wa_fieldcat-seltext_m = 'Material'.
wa_fieldcat-emphasize = 'C410'.
wa_fieldcat-outputlen = '15'.
APPEND wa_fieldcat TO lt_fieldcat.


w_pos = w_pos + 1.
CLEAR wa_fieldcat.
wa_fieldcat-col_pos = w_pos.
wa_fieldcat-tabname = 'IT_PODAT'.
wa_fieldcat-fieldname = 'LIFNR'.
wa_fieldcat-seltext_m = 'Vendor Acc.'.
wa_fieldcat-emphasize = 'C410'.
wa_fieldcat-outputlen = '15'.
APPEND wa_fieldcat TO lt_fieldcat.

w_pos = w_pos + 1.
CLEAR wa_fieldcat.
wa_fieldcat-col_pos = w_pos.
wa_fieldcat-tabname = 'IT_PODAT'.
wa_fieldcat-fieldname = 'WERKS'.
wa_fieldcat-seltext_m = 'Plant'.
wa_fieldcat-emphasize = 'C410'.
wa_fieldcat-outputlen = '15'.
APPEND wa_fieldcat TO lt_fieldcat.



w_pos = w_pos + 1.
CLEAR wa_fieldcat.
wa_fieldcat-col_pos = w_pos.
wa_fieldcat-tabname = 'IT_PODAT'.
wa_fieldcat-fieldname = 'LGORT'.
wa_fieldcat-seltext_m = 'Storage Location'.
wa_fieldcat-emphasize = 'C410'.
wa_fieldcat-outputlen = '15'.
APPEND wa_fieldcat TO lt_fieldcat.


w_pos = w_pos + 1.
CLEAR wa_fieldcat.
wa_fieldcat-col_pos = w_pos.
wa_fieldcat-tabname = 'IT_PODAT'.
wa_fieldcat-fieldname = 'FRBNR'.
wa_fieldcat-seltext_m = 'Truck No.'.
wa_fieldcat-emphasize = 'C410'.
wa_fieldcat-outputlen = '15'.
APPEND wa_fieldcat TO lt_fieldcat.


w_pos = w_pos + 1.
CLEAR wa_fieldcat.
wa_fieldcat-col_pos = w_pos.
wa_fieldcat-tabname = 'IT_PODAT'.
wa_fieldcat-fieldname = 'XBLNR'.
wa_fieldcat-seltext_m = 'Delivery/LR No.'.
wa_fieldcat-emphasize = 'C410'.
wa_fieldcat-outputlen = '15'.
APPEND wa_fieldcat TO lt_fieldcat.

w_pos = w_pos + 1.
CLEAR wa_fieldcat.
wa_fieldcat-col_pos = w_pos.
wa_fieldcat-tabname = 'IT_PODAT'.
wa_fieldcat-fieldname = 'BKTXT'.
wa_fieldcat-seltext_m = 'Bill of Lading'.
wa_fieldcat-do_sum = 'X'.
wa_fieldcat-emphasize = 'C410'.
wa_fieldcat-outputlen = '15'.
APPEND wa_fieldcat TO lt_fieldcat.


w_pos = w_pos + 1.
CLEAR wa_fieldcat.
wa_fieldcat-col_pos = w_pos.
wa_fieldcat-tabname = 'IT_PODAT'.
wa_fieldcat-fieldname = 'LSMNG'.
wa_fieldcat-seltext_m = 'Delivered Qty.'.
wa_fieldcat-do_sum = 'X'.
wa_fieldcat-emphasize = 'C410'.
wa_fieldcat-outputlen = '15'.
APPEND wa_fieldcat TO lt_fieldcat.

w_pos = w_pos + 1.
CLEAR wa_fieldcat.
wa_fieldcat-col_pos = w_pos.
wa_fieldcat-tabname = 'IT_PODAT'.
wa_fieldcat-fieldname = 'GMEINS'.
wa_fieldcat-seltext_m = 'Gross Wt.'.
wa_fieldcat-emphasize = 'C410'.
wa_fieldcat-outputlen = '15'.
APPEND wa_fieldcat TO lt_fieldcat.

w_pos = w_pos + 1.
CLEAR wa_fieldcat.
wa_fieldcat-col_pos = w_pos.
wa_fieldcat-tabname = 'IT_PODAT'.
wa_fieldcat-fieldname = 'TMEINS'.
wa_fieldcat-seltext_m = 'Tare Wt.'.
wa_fieldcat-emphasize = 'C410'.
wa_fieldcat-outputlen = '15'.
APPEND wa_fieldcat TO lt_fieldcat.

w_pos = w_pos + 1.
CLEAR wa_fieldcat.
wa_fieldcat-col_pos = w_pos.
wa_fieldcat-tabname = 'IT_PODAT'.
wa_fieldcat-fieldname = 'MENGE'.
wa_fieldcat-seltext_m = 'Net Wt.'.
wa_fieldcat-do_sum = 'X'.
wa_fieldcat-emphasize = 'C410'.
wa_fieldcat-outputlen = '15'.
APPEND wa_fieldcat TO lt_fieldcat.

w_pos = w_pos + 1.
CLEAR wa_fieldcat.
wa_fieldcat-col_pos = w_pos.
wa_fieldcat-tabname = 'IT_PODAT'.
wa_fieldcat-fieldname = 'GRUND'.
wa_fieldcat-seltext_m = 'Reason for Movement'.
wa_fieldcat-emphasize = 'C410'.
wa_fieldcat-outputlen = '15'.
APPEND wa_fieldcat TO lt_fieldcat.

w_pos = w_pos + 1.
CLEAR wa_fieldcat.
wa_fieldcat-col_pos = w_pos.
wa_fieldcat-tabname = 'IT_PODAT'.
wa_fieldcat-fieldname = 'MEINS'.
wa_fieldcat-seltext_m = 'UOM'.
wa_fieldcat-emphasize = 'C410'.
wa_fieldcat-outputlen = '5'.
APPEND wa_fieldcat TO lt_fieldcat.

w_pos = w_pos + 1.
CLEAR wa_fieldcat.
wa_fieldcat-col_pos = w_pos.
wa_fieldcat-tabname = 'IT_PODAT'.
wa_fieldcat-fieldname = 'NAME1'.
wa_fieldcat-seltext_m = 'Transporter'.
wa_fieldcat-emphasize = 'C410'.
wa_fieldcat-outputlen = '20'.
APPEND wa_fieldcat TO lt_fieldcat.

w_pos = w_pos + 1.
CLEAR wa_fieldcat.
wa_fieldcat-col_pos = w_pos.
wa_fieldcat-tabname = 'IT_PODAT'.
wa_fieldcat-fieldname = 'ZTEXT'.
wa_fieldcat-seltext_m = 'Block Reason'.
wa_fieldcat-emphasize = 'C410'.
wa_fieldcat-outputlen = '20'.
APPEND wa_fieldcat TO lt_fieldcat.


ENDFORM. " fieldcat_init

*&---------------------------------------------------------------------*
*& Form eventtab_build
*&---------------------------------------------------------------------*
* text
*----------------------------------------------------------------------*
* -->P_it_EVENTS[] text
*----------------------------------------------------------------------*
FORM eventtab_build USING lt_events TYPE slis_t_event.
DATA: wa_event TYPE slis_alv_event.
DATA: c_top_of_page TYPE slis_formname.

c_top_of_page = c_top_of_page_db.

CALL FUNCTION 'REUSE_ALV_EVENTS_GET'
EXPORTING
i_list_type = 0
IMPORTING
et_events = lt_events.
READ TABLE lt_events WITH KEY name = slis_ev_top_of_page
INTO wa_event.
IF sy-subrc <> 0.
MOVE c_top_of_page TO wa_event-form.
APPEND wa_event TO lt_events.
ELSE.
MOVE c_top_of_page TO wa_event-form.
MODIFY lt_events FROM wa_event INDEX sy-tabix .
ENDIF.

ENDFORM. " eventtab_build

*&---------------------------------------------------------------------*
*& Form comment_build
*&---------------------------------------------------------------------*
* text
*----------------------------------------------------------------------*
* -->P_it_LIST_TOP_OF_PAGE[] text
*----------------------------------------------------------------------*
FORM comment_build USING lt_top_of_page TYPE slis_t_listheader.
DATA: wa_line TYPE slis_listheader.
CLEAR wa_line.
wa_line-typ = 'H'.
wa_line-info = 'VVF LTD. Mumbai'.
APPEND wa_line TO lt_top_of_page.

wa_line-typ = 'H'.
wa_line-info = SY-ULINE.
APPEND wa_line TO lt_top_of_page.

wa_line-typ = 'H'.
wa_line-info = 'UnBlock PO For Posting Movement'.
APPEND wa_line TO lt_top_of_page.

ENDFORM. " comment_build

*&---------------------------------------------------------------------*
*& Form layout_build
*&---------------------------------------------------------------------*
* text
*----------------------------------------------------------------------*
* -->P_WA_layout text
*----------------------------------------------------------------------*
FORM layout_build USING wa_layout TYPE slis_layout_alv.
wa_layout-zebra = 'X'.
wa_layout-colwidth_optimize = 'X'.
wa_layout-no_totalline = 'X'.
* wa_layout-edit = 'X'.
ENDFORM. " layout_build

*&---------------------------------------------------------------------*
*& Form write_alv_grid
*&---------------------------------------------------------------------*
* text
*----------------------------------------------------------------------*
* --> p1 text
* <-- p2 text *----------------------------------------------------------------------* FORM write_alv_grid. CALL FUNCTION 'REUSE_ALV_GRID_DISPLAY' EXPORTING i_callback_program = w_repid i_callback_user_command = 'USER_COMMAND' i_callback_PF_STATUS_SET = 'PF_STATUS' i_background_id = 'ALV_BACKGROUND' I_CALLBACK_TOP_OF_PAGE = c_top_of_page_db is_layout = WA_layout it_fieldcat = it_fieldcat[] it_events = it_events[] i_save = 'A' * I_DEFAULT = 'X' TABLES t_outtab = IT_PODAT EXCEPTIONS program_error = 1 OTHERS = 2. IF sy-subrc <> 0.
MESSAGE ID sy-msgid TYPE sy-msgty NUMBER sy-msgno
WITH sy-msgv1 sy-msgv2 sy-msgv3 sy-msgv4.
ENDIF.





ENDFORM. " write_alv_grid

*&---------------------------------------------------------------------*
*& Form PF_STATUS
*&---------------------------------------------------------------------*
* text
*----------------------------------------------------------------------*
FORM PF_STATUS using extab type slis_t_extab.

SET PF-STATUS 'ZSTANDARD1'
.

ENDFORM. "PF_STATUS
*&---------------------------------------------------------------------*
*& Form USER_COMMAND
*&---------------------------------------------------------------------*
* text
*----------------------------------------------------------------------*
FORM USER_COMMAND using OK_CODE type SY-UCOMM
RS_SELFIELD TYPE SLIS_SELFIELD.

IF OK_CODE = '&DATA_SAVE'.
***blocking memo
LOOP AT IT_PODAT INTO WA_PODAT .

UPDATE ZVVF_MT25_BRIDGE SET
ZBLCK = WA_PODAT-ZBLCK
WHERE EBELN = WA_PODAT-EBELN AND
EBELP = WA_PODAT-EBELP .

ENDLOOP.

IF SY-SUBRC = 0.
MESSAGE S132.
set screen 0.
leave screen.
ENDIF.

***when back leave screen
ELSEIF OK_CODE = 'OUT'.
CALL FUNCTION 'POPUP_TO_CONFIRM'
EXPORTING
TITLEBAR = text-003
TEXT_QUESTION = text-004
DEFAULT_BUTTON = '2'
DISPLAY_CANCEL_BUTTON = ' '
IMPORTING
ANSWER = w_ans
EXCEPTIONS
TEXT_NOT_FOUND = 1
OTHERS = 2.
IF w_ans = '1'.
set screen 0.
leave screen.
ELSE.
leave screen.
ENDIF.
endif.
ENDFORM. "USER_COMMAND
*---------------------------------------------------------------------*
* FORM TOP_OF_PAGE_DB *
*---------------------------------------------------------------------*
* ........ *
*---------------------------------------------------------------------*
FORM TOP_OF_PAGE_DB.
*
CALL FUNCTION 'REUSE_ALV_COMMENTARY_WRITE'
EXPORTING
it_list_commentary = it_list_top_of_page
i_logo = ' '.
ENDFORM. "top_of_page_db

*&--------------------------------------------------------------------*
*& Form MATNR_FORMAT
*&--------------------------------------------------------------------*
* MATNR FORMAT
*---------------------------------------------------------------------*
FORM MATNR_FORMAT.
CALL FUNCTION 'CONVERSION_EXIT_ALPHA_OUTPUT'
EXPORTING
INPUT = WA_podat-MATNR
IMPORTING
OUTPUT = WA_podat-MATNR.
ENDFORM.

Block PO from goods movement in inward movement

*&---------------------------------------------------------------------*
*& Report ZVVF_MR025_WEIGHBRIDGE_MMBLOCK *
*&---------------------------------------------------------------------*

REPORT ZVVF_MR025_WEIGHBRIDGE_MMBLOCK no standard page heading line-size
110 MESSAGE-ID ZMM .

*----------------------------------------------------------------------
** Module Sales *
*----------------------------------------------------------------------
** Objective: Block PO from Posting Movement
** Program : Updates tables ( ) Download data ( )
** Output Lists (X) ALV
**
** Technical Spec No :
** Date Created :
** Author :
** Location :
**---------------------------------------------------------------------*
* External Dependencies
**---------------------------------------------------------------------*
*
**---------------------------------------------------------------------*
* Amendment History
**---------------------------------------------------------------------*
* Who Change ID Reason
*** ¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯
*---------------------------------------------------------------------**
* Type-pools
*----------------------------------------------------------------------*
TYPE-POOLS : slis.
*---------------------------------------------------------------------*
**TABLES :
*---------------------------------------------------------------------*
TABLES : ZVVF_MT25_BRIDGE, " Weigh Bridge PO Details
ekpo, " Purchasing Document Item
MKPF. " Header: Material Document

*---------------------------------------------------------------------*
**CONSTANTS :
*---------------------------------------------------------------------*
*--- For ALV ----*
CONSTANTS: c_top_of_page_db TYPE slis_formname VALUE 'TOP_OF_PAGE_DB'.

*---------------------------------------------------------------------*
**DATA :
*---------------------------------------------------------------------*
DATA : W_REPID LIKE SY-REPID,
W_ANS type n,
w_ok like sy-ucomm,
W_MODE LIKE CTU_PARAMS-DISMODE.

*---------------------------------------------------------------------*
**INTERNAL TABLES :
*---------------------------------------------------------------------*
*--- For ALV ----*
DATA: it_list_top_of_page TYPE slis_t_listheader,
it_events TYPE slis_t_event,
it_fieldcat TYPE slis_t_fieldcat_alv.
*---------------*
DATA: IT_PODAT TYPE TABLE OF ZVVF_MT25_BRIDGE WITH HEADER LINE.
*---------------------------------------------------------------------*
**WORK AREAS
*---------------------------------------------------------------------*
DATA: WA_PODAT LIKE LINE OF IT_PODAT,
WA_layout TYPE slis_layout_alv. " For ALV

*---------------------------------------------------------------------*
**SELECTION SCREEN
*---------------------------------------------------------------------*
SELECTION-SCREEN BEGIN OF BLOCK MAIN WITH FRAME TITLE TEXT-001.
select-options : so_DATE for MKPF-BUDAT obligatory.
SELECTION-SCREEN END OF BLOCK MAIN .

*---------------------------------------------------------------------*
**INITIALIZATION :
*---------------------------------------------------------------------*
INITIALIZATION.

w_repid = SY-REPID.
*---------------------------------------------------------------------*
**AT SELECTION SCREEN :
*---------------------------------------------------------------------*
AT SELECTION-SCREEN.
PERFORM Check_DATA.

*---------------------------------------------------------------------*
**START OF SELECTION :
*---------------------------------------------------------------------*
START-OF-SELECTION.

LOOP AT IT_podat INTO WA_podat.
PERFORM MATNR_FORMAT.
MODIFY IT_podat FROM WA_podat TRANSPORTING MATNR.
endloop.

*---------------------------------------------------------------------*
**END OF SELECTION :
*---------------------------------------------------------------------*
END-OF-SELECTION.

PERFORM fieldcat_init USING it_fieldcat[].
PERFORM eventtab_build USING it_events[].
PERFORM comment_build USING it_list_top_of_page[].
PERFORM layout_build USING WA_layout.
PERFORM write_alv_grid.

*&---------------------------------------------------------------------*
*& Form Check_DATA
*&---------------------------------------------------------------------*
FORM Check_DATA.

**Select all PO which are not yet posted and Blocked

select * from ZVVF_MT25_BRIDGE into corresponding fields of table
it_podat where
BUDAT in so_DATE AND
Zpost NE 'X' and
zblck = ' '.
IF SY-SUBRC NE 0.
MESSAGE E005.
ENDIF.
endform. "Check_DATA

*&--------------------------------------------------------------------*
*& Form fieldcat_init
*&--------------------------------------------------------------------*
* text
*---------------------------------------------------------------------*
* -->IT_FIELDCATtext
*---------------------------------------------------------------------*
FORM fieldcat_init USING lt_fieldcat TYPE slis_t_fieldcat_alv.
DATA : wa_fieldcat TYPE slis_fieldcat_alv.
DATA :w_pos TYPE i VALUE 0.



w_pos = w_pos + 1.
CLEAR wa_fieldcat.
wa_fieldcat-col_pos = w_pos.
wa_fieldcat-tabname = 'IT_PODAT'.
wa_fieldcat-fieldname = 'ZBLCK'.
wa_fieldcat-seltext_m = 'Block Memo'.
wa_fieldcat-emphasize = 'C410'.
wa_fieldcat-outputlen = '1'.
wa_fieldcat-checkbox = 'X'.
wa_fieldcat-EDIT = 'X'.
APPEND wa_fieldcat TO lt_fieldcat.

w_pos = w_pos + 1.
CLEAR wa_fieldcat.
wa_fieldcat-col_pos = w_pos.
wa_fieldcat-tabname = 'IT_PODAT'.
wa_fieldcat-fieldname = 'BWART'.
wa_fieldcat-seltext_m = 'Movement Type'.
wa_fieldcat-emphasize = 'C410'.
wa_fieldcat-outputlen = '15'.
APPEND wa_fieldcat TO lt_fieldcat.

w_pos = w_pos + 1.
CLEAR wa_fieldcat.
wa_fieldcat-col_pos = w_pos.
wa_fieldcat-tabname = 'IT_PODAT'.
wa_fieldcat-fieldname = 'EBELN'.
wa_fieldcat-seltext_m = 'PO No.'.
wa_fieldcat-emphasize = 'C410'.
wa_fieldcat-outputlen = '15'.
APPEND wa_fieldcat TO lt_fieldcat.


w_pos = w_pos + 1.
CLEAR wa_fieldcat.
wa_fieldcat-col_pos = w_pos.
wa_fieldcat-tabname = 'IT_PODAT'.
wa_fieldcat-fieldname = 'EBELP'.
wa_fieldcat-seltext_m = 'PO Item'.
wa_fieldcat-emphasize = 'C410'.
wa_fieldcat-outputlen = '15'.
APPEND wa_fieldcat TO lt_fieldcat.

w_pos = w_pos + 1.
CLEAR wa_fieldcat.
wa_fieldcat-col_pos = w_pos.
wa_fieldcat-tabname = 'IT_PODAT'.
wa_fieldcat-fieldname = 'MATNR'.
wa_fieldcat-seltext_m = 'Material'.
wa_fieldcat-emphasize = 'C410'.
wa_fieldcat-outputlen = '15'.
APPEND wa_fieldcat TO lt_fieldcat.


w_pos = w_pos + 1.
CLEAR wa_fieldcat.
wa_fieldcat-col_pos = w_pos.
wa_fieldcat-tabname = 'IT_PODAT'.
wa_fieldcat-fieldname = 'LIFNR'.
wa_fieldcat-seltext_m = 'Vendor Acc.'.
wa_fieldcat-emphasize = 'C410'.
wa_fieldcat-outputlen = '15'.
APPEND wa_fieldcat TO lt_fieldcat.

w_pos = w_pos + 1.
CLEAR wa_fieldcat.
wa_fieldcat-col_pos = w_pos.
wa_fieldcat-tabname = 'IT_PODAT'.
wa_fieldcat-fieldname = 'WERKS'.
wa_fieldcat-seltext_m = 'Plant'.
wa_fieldcat-emphasize = 'C410'.
wa_fieldcat-outputlen = '15'.
APPEND wa_fieldcat TO lt_fieldcat.



w_pos = w_pos + 1.
CLEAR wa_fieldcat.
wa_fieldcat-col_pos = w_pos.
wa_fieldcat-tabname = 'IT_PODAT'.
wa_fieldcat-fieldname = 'LGORT'.
wa_fieldcat-seltext_m = 'Storage Location'.
wa_fieldcat-emphasize = 'C410'.
wa_fieldcat-outputlen = '15'.
APPEND wa_fieldcat TO lt_fieldcat.


w_pos = w_pos + 1.
CLEAR wa_fieldcat.
wa_fieldcat-col_pos = w_pos.
wa_fieldcat-tabname = 'IT_PODAT'.
wa_fieldcat-fieldname = 'FRBNR'.
wa_fieldcat-seltext_m = 'Truck No.'.
wa_fieldcat-emphasize = 'C410'.
wa_fieldcat-outputlen = '15'.
APPEND wa_fieldcat TO lt_fieldcat.


w_pos = w_pos + 1.
CLEAR wa_fieldcat.
wa_fieldcat-col_pos = w_pos.
wa_fieldcat-tabname = 'IT_PODAT'.
wa_fieldcat-fieldname = 'XBLNR'.
wa_fieldcat-seltext_m = 'Delivery/LR No.'.
wa_fieldcat-emphasize = 'C410'.
wa_fieldcat-outputlen = '15'.
APPEND wa_fieldcat TO lt_fieldcat.

w_pos = w_pos + 1.
CLEAR wa_fieldcat.
wa_fieldcat-col_pos = w_pos.
wa_fieldcat-tabname = 'IT_PODAT'.
wa_fieldcat-fieldname = 'BKTXT'.
wa_fieldcat-seltext_m = 'Bill of Lading'.
wa_fieldcat-do_sum = 'X'.
wa_fieldcat-emphasize = 'C410'.
wa_fieldcat-outputlen = '15'.
APPEND wa_fieldcat TO lt_fieldcat.


w_pos = w_pos + 1.
CLEAR wa_fieldcat.
wa_fieldcat-col_pos = w_pos.
wa_fieldcat-tabname = 'IT_PODAT'.
wa_fieldcat-fieldname = 'LSMNG'.
wa_fieldcat-seltext_m = 'Delivered Qty.'.
wa_fieldcat-do_sum = 'X'.
wa_fieldcat-emphasize = 'C410'.
wa_fieldcat-outputlen = '15'.
APPEND wa_fieldcat TO lt_fieldcat.

w_pos = w_pos + 1.
CLEAR wa_fieldcat.
wa_fieldcat-col_pos = w_pos.
wa_fieldcat-tabname = 'IT_PODAT'.
wa_fieldcat-fieldname = 'GMEINS'.
wa_fieldcat-seltext_m = 'Gross Wt.'.
wa_fieldcat-emphasize = 'C410'.
wa_fieldcat-outputlen = '15'.
APPEND wa_fieldcat TO lt_fieldcat.

w_pos = w_pos + 1.
CLEAR wa_fieldcat.
wa_fieldcat-col_pos = w_pos.
wa_fieldcat-tabname = 'IT_PODAT'.
wa_fieldcat-fieldname = 'TMEINS'.
wa_fieldcat-seltext_m = 'Tare Wt.'.
wa_fieldcat-emphasize = 'C410'.
wa_fieldcat-outputlen = '15'.
APPEND wa_fieldcat TO lt_fieldcat.

w_pos = w_pos + 1.
CLEAR wa_fieldcat.
wa_fieldcat-col_pos = w_pos.
wa_fieldcat-tabname = 'IT_PODAT'.
wa_fieldcat-fieldname = 'MENGE'.
wa_fieldcat-seltext_m = 'Net Wt.'.
wa_fieldcat-do_sum = 'X'.
wa_fieldcat-emphasize = 'C410'.
wa_fieldcat-outputlen = '15'.
APPEND wa_fieldcat TO lt_fieldcat.

w_pos = w_pos + 1.
CLEAR wa_fieldcat.
wa_fieldcat-col_pos = w_pos.
wa_fieldcat-tabname = 'IT_PODAT'.
wa_fieldcat-fieldname = 'GRUND'.
wa_fieldcat-seltext_m = 'Reason for Movement'.
wa_fieldcat-emphasize = 'C410'.
wa_fieldcat-outputlen = '15'.
APPEND wa_fieldcat TO lt_fieldcat.

w_pos = w_pos + 1.
CLEAR wa_fieldcat.
wa_fieldcat-col_pos = w_pos.
wa_fieldcat-tabname = 'IT_PODAT'.
wa_fieldcat-fieldname = 'MEINS'.
wa_fieldcat-seltext_m = 'UOM'.
wa_fieldcat-emphasize = 'C410'.
wa_fieldcat-outputlen = '5'.
APPEND wa_fieldcat TO lt_fieldcat.

w_pos = w_pos + 1.
CLEAR wa_fieldcat.
wa_fieldcat-col_pos = w_pos.
wa_fieldcat-tabname = 'IT_PODAT'.
wa_fieldcat-fieldname = 'NAME1'.
wa_fieldcat-seltext_m = 'Transporter'.
wa_fieldcat-emphasize = 'C410'.
wa_fieldcat-outputlen = '20'.
APPEND wa_fieldcat TO lt_fieldcat.



ENDFORM. " fieldcat_init

*&---------------------------------------------------------------------*
*& Form eventtab_build
*&---------------------------------------------------------------------*
* text
*----------------------------------------------------------------------*
* -->P_it_EVENTS[] text
*----------------------------------------------------------------------*
FORM eventtab_build USING lt_events TYPE slis_t_event.
DATA: wa_event TYPE slis_alv_event.
DATA: c_top_of_page TYPE slis_formname.

c_top_of_page = c_top_of_page_db.

CALL FUNCTION 'REUSE_ALV_EVENTS_GET'
EXPORTING
i_list_type = 0
IMPORTING
et_events = lt_events.
READ TABLE lt_events WITH KEY name = slis_ev_top_of_page
INTO wa_event.
IF sy-subrc <> 0.
MOVE c_top_of_page TO wa_event-form.
APPEND wa_event TO lt_events.
ELSE.
MOVE c_top_of_page TO wa_event-form.
MODIFY lt_events FROM wa_event INDEX sy-tabix .
ENDIF.

ENDFORM. " eventtab_build

*&---------------------------------------------------------------------*
*& Form comment_build
*&---------------------------------------------------------------------*
* text
*----------------------------------------------------------------------*
* -->P_it_LIST_TOP_OF_PAGE[] text
*----------------------------------------------------------------------*
FORM comment_build USING lt_top_of_page TYPE slis_t_listheader.
DATA: wa_line TYPE slis_listheader.
CLEAR wa_line.
wa_line-typ = 'H'.
wa_line-info = 'VVF LTD. Mumbai'.
APPEND wa_line TO lt_top_of_page.

wa_line-typ = 'H'.
wa_line-info = SY-ULINE.
APPEND wa_line TO lt_top_of_page.

wa_line-typ = 'H'.
wa_line-info = 'Block PO from Posting Movement'.
APPEND wa_line TO lt_top_of_page.

ENDFORM. " comment_build

*&---------------------------------------------------------------------*
*& Form layout_build
*&---------------------------------------------------------------------*
* text
*----------------------------------------------------------------------*
* -->P_WA_layout text
*----------------------------------------------------------------------*
FORM layout_build USING wa_layout TYPE slis_layout_alv.
wa_layout-zebra = 'X'.
wa_layout-colwidth_optimize = 'X'.
wa_layout-no_totalline = 'X'.
* wa_layout-edit = 'X'.
ENDFORM. " layout_build

*&---------------------------------------------------------------------*
*& Form write_alv_grid
*&---------------------------------------------------------------------*
* text
*----------------------------------------------------------------------*
* --> p1 text
* <-- p2 text *----------------------------------------------------------------------* FORM write_alv_grid. CALL FUNCTION 'REUSE_ALV_GRID_DISPLAY' EXPORTING i_callback_program = w_repid i_callback_user_command = 'USER_COMMAND' i_callback_PF_STATUS_SET = 'PF_STATUS' i_background_id = 'ALV_BACKGROUND' I_CALLBACK_TOP_OF_PAGE = c_top_of_page_db is_layout = WA_layout it_fieldcat = it_fieldcat[] it_events = it_events[] i_save = 'A' * I_DEFAULT = 'X' TABLES t_outtab = IT_PODAT EXCEPTIONS program_error = 1 OTHERS = 2. IF sy-subrc <> 0.
MESSAGE ID sy-msgid TYPE sy-msgty NUMBER sy-msgno
WITH sy-msgv1 sy-msgv2 sy-msgv3 sy-msgv4.
ENDIF.





ENDFORM. " write_alv_grid

*&---------------------------------------------------------------------*
*& Form PF_STATUS
*&---------------------------------------------------------------------*
* text
*----------------------------------------------------------------------*
FORM PF_STATUS using extab type slis_t_extab.

SET PF-STATUS 'ZSTANDARD1'
.

ENDFORM. "PF_STATUS
*&---------------------------------------------------------------------*
*& Form USER_COMMAND
*&---------------------------------------------------------------------*
* text
*----------------------------------------------------------------------*
FORM USER_COMMAND using OK_CODE type SY-UCOMM
RS_SELFIELD TYPE SLIS_SELFIELD.

IF OK_CODE = '&DATA_SAVE'.
***blocking memo
LOOP AT IT_PODAT INTO WA_PODAT .

UPDATE ZVVF_MT25_BRIDGE SET
ZBLCK = WA_PODAT-ZBLCK
WHERE EBELN = WA_PODAT-EBELN AND
EBELP = WA_PODAT-EBELP .

ENDLOOP.

IF SY-SUBRC = 0.
MESSAGE S131.
set screen 0.
leave screen.
ENDIF.

***when back leave screen
ELSEIF OK_CODE = 'OUT'.
CALL FUNCTION 'POPUP_TO_CONFIRM'
EXPORTING
TITLEBAR = text-003
TEXT_QUESTION = text-004
DEFAULT_BUTTON = '2'
DISPLAY_CANCEL_BUTTON = ' '
IMPORTING
ANSWER = w_ans
EXCEPTIONS
TEXT_NOT_FOUND = 1
OTHERS = 2.
IF w_ans = '1'.
set screen 0.
leave screen.
ELSE.
leave screen.
ENDIF.
endif.
ENDFORM. "USER_COMMAND
*---------------------------------------------------------------------*
* FORM TOP_OF_PAGE_DB *
*---------------------------------------------------------------------*
* ........ *
*---------------------------------------------------------------------*
FORM TOP_OF_PAGE_DB.
*
CALL FUNCTION 'REUSE_ALV_COMMENTARY_WRITE'
EXPORTING
it_list_commentary = it_list_top_of_page
i_logo = ' '.
ENDFORM. "top_of_page_db

*&--------------------------------------------------------------------*
*& Form MATNR_FORMAT
*&--------------------------------------------------------------------*
* MATNR FORMAT
*---------------------------------------------------------------------*
FORM MATNR_FORMAT.
CALL FUNCTION 'CONVERSION_EXIT_ALPHA_OUTPUT'
EXPORTING
INPUT = WA_podat-MATNR
IMPORTING
OUTPUT = WA_podat-MATNR.
ENDFORM.

Bapi posting goods movement using inward movement

*&---------------------------------------------------------------------*
*& Report ZVVF_MR025_WEIGHBRIDGE_GR
*&---------------------------------------------------------------------*

REPORT ZVVF_MR025_WEIGHBRIDGE_GR NO STANDARD PAGE HEADING LINE-SIZE 110
MESSAGE-ID ZMM .

*----------------------------------------------------------------------
** Module Sales *
*----------------------------------------------------------------------
** Objective: Posting Goods Movement
** Program : Updates tables (X) Download data ( )
** Output Lists (X) ALV
**
** Technical Spec No :
** Date Created :
** Author :
** Location :
**---------------------------------------------------------------------*
* External Dependencies
**---------------------------------------------------------------------*
*
**---------------------------------------------------------------------*
* Amendment History
**---------------------------------------------------------------------*
* Who Change ID Reason
*** ¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯
*---------------------------------------------------------------------**
* Type-pools
*----------------------------------------------------------------------*
TYPE-POOLS : SLIS.
*---------------------------------------------------------------------*
**TABLES :
*---------------------------------------------------------------------*
TABLES : ZVVF_MT25_BRIDGE. " Weigh Bridge Down Loaded Details
*---------------------------------------------------------------------*
**CONSTANTS :
*---------------------------------------------------------------------*
*--- For ALV ----*
CONSTANTS: C_TOP_OF_PAGE_DB TYPE SLIS_FORMNAME VALUE 'TOP_OF_PAGE_DB',
C_TCODE TYPE SY-TCODE VALUE 'ZMR025_POST1'.
*---------------------------------------------------------------------*
**TYPES :
*---------------------------------------------------------------------*
DATA : BEGIN OF TY_DETAIL,
PO_NUMBER TYPE BAPI2017_GM_ITEM_CREATE-PO_NUMBER,
PO_ITEM TYPE BAPI2017_GM_ITEM_CREATE-PO_ITEM,
MATERIAL TYPE BAPI2017_GM_ITEM_CREATE-MATERIAL,
VENDOR TYPE BAPI2017_GM_ITEM_CREATE-VENDOR,
PLANT TYPE BAPI2017_GM_ITEM_CREATE-PLANT,
STGE_LOC TYPE BAPI2017_GM_ITEM_CREATE-STGE_LOC,
MOVE_TYPE TYPE BAPI2017_GM_ITEM_CREATE-MOVE_TYPE,
ENTRY_QNT TYPE BAPI2017_GM_ITEM_CREATE-ENTRY_QNT,
ENTRY_UOM TYPE BAPI2017_GM_ITEM_CREATE-ENTRY_UOM,
ENTRY_UOM_ISO TYPE BAPI2017_GM_ITEM_CREATE-ENTRY_UOM_ISO,
MVT_IND TYPE BAPI2017_GM_ITEM_CREATE-MVT_IND,
ITEM_TEXT TYPE BAPI2017_GM_ITEM_CREATE-ITEM_TEXT,
VENDRBATCH TYPE BAPI2017_GM_ITEM_CREATE-VENDRBATCH,
ST_UN_QTYY_1 TYPE BAPI2017_GM_ITEM_CREATE-ST_UN_QTYY_1,
QUANTITY TYPE BAPI2017_GM_ITEM_CREATE-QUANTITY,
PO_PR_QNT TYPE BAPI2017_GM_ITEM_CREATE-PO_PR_QNT,
IND_PROPOSE_QUANX TYPE BAPI2017_GM_ITEM_CREATE-IND_PROPOSE_QUANX,
BASE_UOM TYPE BAPI2017_GM_ITEM_CREATE-BASE_UOM.
DATA : END OF TY_DETAIL.

*---------------------------------------------------------------------*
**DATA :
*---------------------------------------------------------------------*
DATA : W_REPID LIKE SY-REPID,
W_ANS TYPE N,
W_OK LIKE SY-UCOMM,
W_SGTXT LIKE MSEG-SGTXT,
W_INPUT LIKE MSEG-MATNR,
W_CNT TYPE N,
W_CNT1 TYPE N,
W_IDX LIKE SY-INDEX,
W_QTY LIKE MSEG-MENGE,
W_MENGE LIKE MSEG-MENGE.
*---------------------------------------------------------------------*
**INTERNAL TABLES :
*---------------------------------------------------------------------*
*--- For ALV ----*
DATA: IT_LIST_TOP_OF_PAGE TYPE SLIS_T_LISTHEADER,
IT_EVENTS TYPE SLIS_T_EVENT,
IT_FIELDCAT TYPE SLIS_T_FIELDCAT_ALV.
*---------------*
DATA: IT_PODAT TYPE TABLE OF ZVVF_MT25_BRIDGE WITH HEADER LINE.
DATA : IT_BAPI_HEADER TYPE STANDARD TABLE OF BAPI2017_GM_HEAD_01 WITH
HEADER LINE.
DATA : IT_BAPI_DETAIL TYPE STANDARD TABLE OF BAPI2017_GM_ITEM_CREATE
WITH HEADER LINE.
DATA : MD_NUMBER TYPE MBLNR.

DATA: BEGIN OF ITABRES OCCURS 0.
INCLUDE STRUCTURE BAPIRET2.
DATA: END OF ITABRES.

DATA: BEGIN OF IT_MSG OCCURS 0.
INCLUDE STRUCTURE BAPIRET2.
DATA: END OF IT_MSG.

DATA : IT_DETAIL LIKE STANDARD TABLE OF TY_DETAIL WITH HEADER LINE.

DATA: BEGIN OF IT_BATCH OCCURS 0,
CHARG LIKE LIPS-CHARG,
LFIMG LIKE LIPS-LFIMG,
END OF IT_BATCH.
*---------------------------------------------------------------------*
**WORK AREAS
*---------------------------------------------------------------------*
DATA: WA_PODAT LIKE LINE OF IT_PODAT,
WA_PODAT1 TYPE ZVVF_MT25_BRIDG1,
WA_LAYOUT TYPE SLIS_LAYOUT_ALV. " For ALV

*---------------------------------------------------------------------*
**SELECTION SCREEN
*---------------------------------------------------------------------*
*---------------------------------------------------------------------*
**INITIALIZATION :
*---------------------------------------------------------------------*
INITIALIZATION.

W_REPID = SY-REPID.
*---------------------------------------------------------------------*
**AT SELECTION SCREEN :
*---------------------------------------------------------------------*
AT SELECTION-SCREEN.

*---------------------------------------------------------------------*
**START OF SELECTION :
*---------------------------------------------------------------------*
START-OF-SELECTION.
PERFORM CHECK_DATA.

LOOP AT IT_PODAT INTO WA_PODAT.
PERFORM MATNR_FORMAT USING WA_PODAT-MATNR.
PERFORM MATNR_FORMAT USING WA_PODAT-LIFNR.
MODIFY IT_PODAT FROM WA_PODAT TRANSPORTING MATNR LIFNR.
ENDLOOP.
CLEAR W_INPUT.

*---------------------------------------------------------------------*
**END OF SELECTION :
*---------------------------------------------------------------------*
END-OF-SELECTION.

PERFORM FIELDCAT_INIT USING IT_FIELDCAT[].
PERFORM EVENTTAB_BUILD USING IT_EVENTS[].
PERFORM COMMENT_BUILD USING IT_LIST_TOP_OF_PAGE[].
PERFORM LAYOUT_BUILD USING WA_LAYOUT.
PERFORM WRITE_ALV_GRID.

EXPORT IT_MSG TO MEMORY ID 'ZVV7'.
CALL TRANSACTION C_TCODE .
LEAVE PROGRAM.

*&---------------------------------------------------------------------*
*& Form Check_DATA
*&---------------------------------------------------------------------*
* Check DATA
*----------------------------------------------------------------------*
FORM CHECK_DATA.

**Select all PO which not yet posted
SELECT * FROM ZVVF_MT25_BRIDGE INTO CORRESPONDING FIELDS OF TABLE
IT_PODAT WHERE ZPOST NE 'X' AND ZBLCK NE 'X'.
IF SY-SUBRC NE 0.
MESSAGE E005.
ENDIF.
ENDFORM. "Check_DATA


*&--------------------------------------------------------------------*
*& Form fieldcat_init
*&--------------------------------------------------------------------*
* text
*---------------------------------------------------------------------*
* -->IT_FIELDCATtext
*---------------------------------------------------------------------*
FORM FIELDCAT_INIT USING LT_FIELDCAT TYPE SLIS_T_FIELDCAT_ALV.
DATA : WA_FIELDCAT TYPE SLIS_FIELDCAT_ALV.
DATA :W_POS TYPE I VALUE 0.

W_POS = W_POS + 1.
CLEAR WA_FIELDCAT.
WA_FIELDCAT-COL_POS = W_POS.
WA_FIELDCAT-TABNAME = 'IT_PODAT'.
WA_FIELDCAT-FIELDNAME = 'ZPOST'.
WA_FIELDCAT-SELTEXT_M = 'Post GR'.
WA_FIELDCAT-EMPHASIZE = 'C410'.
WA_FIELDCAT-OUTPUTLEN = '1'.
WA_FIELDCAT-CHECKBOX = 'X'.
WA_FIELDCAT-EDIT = 'X'.
APPEND WA_FIELDCAT TO LT_FIELDCAT.

W_POS = W_POS + 1.
CLEAR WA_FIELDCAT.
WA_FIELDCAT-COL_POS = W_POS.
WA_FIELDCAT-TABNAME = 'IT_PODAT'.
WA_FIELDCAT-FIELDNAME = 'BWART'.
WA_FIELDCAT-SELTEXT_M = 'Movement Type'.
WA_FIELDCAT-EMPHASIZE = 'C410'.
WA_FIELDCAT-OUTPUTLEN = '15'.
APPEND WA_FIELDCAT TO LT_FIELDCAT.

W_POS = W_POS + 1.
CLEAR WA_FIELDCAT.
WA_FIELDCAT-COL_POS = W_POS.
WA_FIELDCAT-TABNAME = 'IT_PODAT'.
WA_FIELDCAT-FIELDNAME = 'EBELN'.
WA_FIELDCAT-SELTEXT_M = 'PO No.'.
WA_FIELDCAT-EMPHASIZE = 'C410'.
WA_FIELDCAT-OUTPUTLEN = '15'.
APPEND WA_FIELDCAT TO LT_FIELDCAT.


W_POS = W_POS + 1.
CLEAR WA_FIELDCAT.
WA_FIELDCAT-COL_POS = W_POS.
WA_FIELDCAT-TABNAME = 'IT_PODAT'.
WA_FIELDCAT-FIELDNAME = 'EBELP'.
WA_FIELDCAT-SELTEXT_M = 'PO Item'.
WA_FIELDCAT-EMPHASIZE = 'C410'.
WA_FIELDCAT-OUTPUTLEN = '15'.
APPEND WA_FIELDCAT TO LT_FIELDCAT.

W_POS = W_POS + 1.
CLEAR WA_FIELDCAT.
WA_FIELDCAT-COL_POS = W_POS.
WA_FIELDCAT-TABNAME = 'IT_PODAT'.
WA_FIELDCAT-FIELDNAME = 'ZSLIPNO'.
WA_FIELDCAT-SELTEXT_M = 'Slip No.'.
WA_FIELDCAT-EMPHASIZE = 'C410'.
WA_FIELDCAT-OUTPUTLEN = '15'.
APPEND WA_FIELDCAT TO LT_FIELDCAT.

W_POS = W_POS + 1.
CLEAR WA_FIELDCAT.
WA_FIELDCAT-COL_POS = W_POS.
WA_FIELDCAT-TABNAME = 'IT_PODAT'.
WA_FIELDCAT-FIELDNAME = 'MATNR'.
WA_FIELDCAT-SELTEXT_M = 'Material'.
WA_FIELDCAT-EMPHASIZE = 'C410'.
WA_FIELDCAT-OUTPUTLEN = '15'.
APPEND WA_FIELDCAT TO LT_FIELDCAT.


W_POS = W_POS + 1.
CLEAR WA_FIELDCAT.
WA_FIELDCAT-COL_POS = W_POS.
WA_FIELDCAT-TABNAME = 'IT_PODAT'.
WA_FIELDCAT-FIELDNAME = 'LIFNR'.
WA_FIELDCAT-SELTEXT_M = 'Vendor Acc.'.
WA_FIELDCAT-EMPHASIZE = 'C410'.
WA_FIELDCAT-OUTPUTLEN = '15'.
APPEND WA_FIELDCAT TO LT_FIELDCAT.

W_POS = W_POS + 1.
CLEAR WA_FIELDCAT.
WA_FIELDCAT-COL_POS = W_POS.
WA_FIELDCAT-TABNAME = 'IT_PODAT'.
WA_FIELDCAT-FIELDNAME = 'WERKS'.
WA_FIELDCAT-SELTEXT_M = 'Plant'.
WA_FIELDCAT-EMPHASIZE = 'C410'.
WA_FIELDCAT-OUTPUTLEN = '15'.
APPEND WA_FIELDCAT TO LT_FIELDCAT.

W_POS = W_POS + 1.
CLEAR WA_FIELDCAT.
WA_FIELDCAT-COL_POS = W_POS.
WA_FIELDCAT-TABNAME = 'IT_PODAT'.
WA_FIELDCAT-FIELDNAME = 'FRBNR'.
WA_FIELDCAT-SELTEXT_M = 'Truck No.'.
WA_FIELDCAT-EMPHASIZE = 'C410'.
WA_FIELDCAT-OUTPUTLEN = '15'.
APPEND WA_FIELDCAT TO LT_FIELDCAT.


W_POS = W_POS + 1.
CLEAR WA_FIELDCAT.
WA_FIELDCAT-COL_POS = W_POS.
WA_FIELDCAT-TABNAME = 'IT_PODAT'.
WA_FIELDCAT-FIELDNAME = 'XBLNR'.
WA_FIELDCAT-SELTEXT_M = 'Delivery/LR No.'.
WA_FIELDCAT-EMPHASIZE = 'C410'.
WA_FIELDCAT-OUTPUTLEN = '15'.
APPEND WA_FIELDCAT TO LT_FIELDCAT.

W_POS = W_POS + 1.
CLEAR WA_FIELDCAT.
WA_FIELDCAT-COL_POS = W_POS.
WA_FIELDCAT-TABNAME = 'IT_PODAT'.
WA_FIELDCAT-FIELDNAME = 'BKTXT'.
WA_FIELDCAT-SELTEXT_M = 'Bill of Lading'.
WA_FIELDCAT-DO_SUM = 'X'.
WA_FIELDCAT-EMPHASIZE = 'C410'.
WA_FIELDCAT-OUTPUTLEN = '15'.
APPEND WA_FIELDCAT TO LT_FIELDCAT.

W_POS = W_POS + 1.
CLEAR WA_FIELDCAT.
WA_FIELDCAT-COL_POS = W_POS.
WA_FIELDCAT-TABNAME = 'IT_PODAT'.
WA_FIELDCAT-FIELDNAME = 'LSMNG'.
WA_FIELDCAT-SELTEXT_M = 'Delivered Qty.'.
WA_FIELDCAT-DO_SUM = 'X'.
WA_FIELDCAT-EMPHASIZE = 'C410'.
WA_FIELDCAT-OUTPUTLEN = '15'.
APPEND WA_FIELDCAT TO LT_FIELDCAT.


W_POS = W_POS + 1.
CLEAR WA_FIELDCAT.
WA_FIELDCAT-COL_POS = W_POS.
WA_FIELDCAT-TABNAME = 'IT_PODAT'.
WA_FIELDCAT-FIELDNAME = 'GMEINS'.
WA_FIELDCAT-SELTEXT_M = 'Gross Wt.'.
WA_FIELDCAT-EMPHASIZE = 'C410'.
WA_FIELDCAT-OUTPUTLEN = '15'.
APPEND WA_FIELDCAT TO LT_FIELDCAT.

W_POS = W_POS + 1.
CLEAR WA_FIELDCAT.
WA_FIELDCAT-COL_POS = W_POS.
WA_FIELDCAT-TABNAME = 'IT_PODAT'.
WA_FIELDCAT-FIELDNAME = 'TMEINS'.
WA_FIELDCAT-SELTEXT_M = 'Tare Wt.'.
WA_FIELDCAT-EMPHASIZE = 'C410'.
WA_FIELDCAT-OUTPUTLEN = '15'.
APPEND WA_FIELDCAT TO LT_FIELDCAT.

W_POS = W_POS + 1.
CLEAR WA_FIELDCAT.
WA_FIELDCAT-COL_POS = W_POS.
WA_FIELDCAT-TABNAME = 'IT_PODAT'.
WA_FIELDCAT-FIELDNAME = 'MENGE'.
WA_FIELDCAT-SELTEXT_M = 'Net Wt.'.
WA_FIELDCAT-DO_SUM = 'X'.
WA_FIELDCAT-EMPHASIZE = 'C410'.
WA_FIELDCAT-OUTPUTLEN = '15'.
APPEND WA_FIELDCAT TO LT_FIELDCAT.


W_POS = W_POS + 1.
CLEAR WA_FIELDCAT.
WA_FIELDCAT-COL_POS = W_POS.
WA_FIELDCAT-TABNAME = 'IT_PODAT'.
WA_FIELDCAT-FIELDNAME = 'MEINS'.
WA_FIELDCAT-SELTEXT_M = 'UOM'.
WA_FIELDCAT-EMPHASIZE = 'C410'.
WA_FIELDCAT-OUTPUTLEN = '5'.
APPEND WA_FIELDCAT TO LT_FIELDCAT.

W_POS = W_POS + 1.
CLEAR WA_FIELDCAT.
WA_FIELDCAT-COL_POS = W_POS.
WA_FIELDCAT-TABNAME = 'IT_PODAT'.
WA_FIELDCAT-FIELDNAME = 'NAME1'.
WA_FIELDCAT-SELTEXT_M = 'Transporter'.
WA_FIELDCAT-EMPHASIZE = 'C410'.
WA_FIELDCAT-OUTPUTLEN = '20'.
APPEND WA_FIELDCAT TO LT_FIELDCAT.

W_POS = W_POS + 1.
CLEAR WA_FIELDCAT.
WA_FIELDCAT-COL_POS = W_POS.
WA_FIELDCAT-TABNAME = 'IT_PODAT'.
WA_FIELDCAT-FIELDNAME = 'GRUND'.
WA_FIELDCAT-SELTEXT_M = 'Reason for Movement'.
WA_FIELDCAT-EMPHASIZE = 'C410'.
WA_FIELDCAT-OUTPUTLEN = '15'.
APPEND WA_FIELDCAT TO LT_FIELDCAT.


ENDFORM. " fieldcat_init

*&---------------------------------------------------------------------*
*& Form eventtab_build
*&---------------------------------------------------------------------*
* text
*----------------------------------------------------------------------*
* -->P_it_EVENTS[] text
*----------------------------------------------------------------------*
FORM EVENTTAB_BUILD USING LT_EVENTS TYPE SLIS_T_EVENT.
DATA: WA_EVENT TYPE SLIS_ALV_EVENT.
DATA: C_TOP_OF_PAGE TYPE SLIS_FORMNAME.

C_TOP_OF_PAGE = C_TOP_OF_PAGE_DB.

CALL FUNCTION 'REUSE_ALV_EVENTS_GET'
EXPORTING
I_LIST_TYPE = 0
IMPORTING
ET_EVENTS = LT_EVENTS.
READ TABLE LT_EVENTS WITH KEY NAME = SLIS_EV_TOP_OF_PAGE
INTO WA_EVENT.
IF SY-SUBRC <> 0.
MOVE C_TOP_OF_PAGE TO WA_EVENT-FORM.
APPEND WA_EVENT TO LT_EVENTS.
ELSE.
MOVE C_TOP_OF_PAGE TO WA_EVENT-FORM.
MODIFY LT_EVENTS FROM WA_EVENT INDEX SY-TABIX .
ENDIF.

ENDFORM. " eventtab_build

*&---------------------------------------------------------------------*
*& Form comment_build
*&---------------------------------------------------------------------*
* text
*----------------------------------------------------------------------*
* -->P_it_LIST_TOP_OF_PAGE[] text
*----------------------------------------------------------------------*
FORM COMMENT_BUILD USING LT_TOP_OF_PAGE TYPE SLIS_T_LISTHEADER.
DATA: WA_LINE TYPE SLIS_LISTHEADER.
CLEAR WA_LINE.
WA_LINE-TYP = 'H'.
WA_LINE-INFO = 'VVF LTD. Mumbai'.
APPEND WA_LINE TO LT_TOP_OF_PAGE.

WA_LINE-TYP = 'H'.
WA_LINE-INFO = SY-ULINE.
APPEND WA_LINE TO LT_TOP_OF_PAGE.

WA_LINE-TYP = 'H'.
WA_LINE-INFO = 'Post Goods Movement'.
APPEND WA_LINE TO LT_TOP_OF_PAGE.

ENDFORM. " comment_build

*&---------------------------------------------------------------------*
*& Form layout_build
*&---------------------------------------------------------------------*
* text
*----------------------------------------------------------------------*
* -->P_WA_layout text
*----------------------------------------------------------------------*
FORM LAYOUT_BUILD USING WA_LAYOUT TYPE SLIS_LAYOUT_ALV.
WA_LAYOUT-ZEBRA = 'X'.
WA_LAYOUT-COLWIDTH_OPTIMIZE = 'X'.
WA_LAYOUT-NO_TOTALLINE = 'X'.
* wa_layout-edit = 'X'.
ENDFORM. " layout_build

*&---------------------------------------------------------------------*
*& Form write_alv_grid
*&---------------------------------------------------------------------*
* text
*----------------------------------------------------------------------*
* --> p1 text
* <-- p2 text *----------------------------------------------------------------------* FORM WRITE_ALV_GRID. CALL FUNCTION 'REUSE_ALV_GRID_DISPLAY' EXPORTING I_CALLBACK_PROGRAM = W_REPID I_CALLBACK_USER_COMMAND = 'USER_COMMAND' I_CALLBACK_PF_STATUS_SET = 'PF_STATUS' I_BACKGROUND_ID = 'ALV_BACKGROUND' I_CALLBACK_TOP_OF_PAGE = C_TOP_OF_PAGE_DB IS_LAYOUT = WA_LAYOUT IT_FIELDCAT = IT_FIELDCAT[] IT_EVENTS = IT_EVENTS[] I_SAVE = 'A' TABLES T_OUTTAB = IT_PODAT EXCEPTIONS PROGRAM_ERROR = 1 OTHERS = 2. IF SY-SUBRC <> 0.
MESSAGE ID SY-MSGID TYPE SY-MSGTY NUMBER SY-MSGNO
WITH SY-MSGV1 SY-MSGV2 SY-MSGV3 SY-MSGV4.
ENDIF.

ENDFORM. " write_alv_grid

*&---------------------------------------------------------------------*
*& Form PF_STATUS
*&---------------------------------------------------------------------*
* text
*----------------------------------------------------------------------*
FORM PF_STATUS USING EXTAB TYPE SLIS_T_EXTAB.

SET PF-STATUS 'ZSTANDARD1'.

ENDFORM. "PF_STATUS
*&---------------------------------------------------------------------*
*& Form USER_COMMAND
*&---------------------------------------------------------------------*
* text
*----------------------------------------------------------------------*
FORM USER_COMMAND USING OK_CODE TYPE SY-UCOMM
RS_SELFIELD TYPE SLIS_SELFIELD.

IF OK_CODE = '&DATA_SAVE'.

PERFORM POST_GR.

***when BACK leave screen
ELSEIF OK_CODE = 'OUT'.
CALL FUNCTION 'POPUP_TO_CONFIRM'
EXPORTING
TITLEBAR = TEXT-003
TEXT_QUESTION = TEXT-004
DEFAULT_BUTTON = '2'
DISPLAY_CANCEL_BUTTON = ' '
IMPORTING
ANSWER = W_ANS
EXCEPTIONS
TEXT_NOT_FOUND = 1
OTHERS = 2.
IF W_ANS = '1'.
SET SCREEN 0.
LEAVE SCREEN.
ELSE.
LEAVE SCREEN.
ENDIF.
ENDIF.
ENDFORM. "USER_COMMAND
*---------------------------------------------------------------------*
* FORM TOP_OF_PAGE_DB *
*---------------------------------------------------------------------*
* ........ *
*---------------------------------------------------------------------*
FORM TOP_OF_PAGE_DB.
*
CALL FUNCTION 'REUSE_ALV_COMMENTARY_WRITE'
EXPORTING
IT_LIST_COMMENTARY = IT_LIST_TOP_OF_PAGE
I_LOGO = ' '.
ENDFORM. "top_of_page_db

*&--------------------------------------------------------------------*
*& Form MATNR_FORMAT
*&--------------------------------------------------------------------*
* MATNR FORMAT
*---------------------------------------------------------------------*
FORM MATNR_FORMAT USING W_INPUT.
CALL FUNCTION 'CONVERSION_EXIT_ALPHA_OUTPUT'
EXPORTING
INPUT = W_INPUT
IMPORTING
OUTPUT = W_INPUT.
ENDFORM. "MATNR_FORMAT

*&--------------------------------------------------------------------*
*& Form post_gr
*&--------------------------------------------------------------------*
* post gr
*---------------------------------------------------------------------*
FORM POST_GR.

SORT IT_PODAT STABLE BY EBELN.

LOOP AT IT_PODAT WHERE ZPOST = 'X'.

MOVE-CORRESPONDING IT_PODAT TO WA_PODAT.
AT NEW EBELN.
IT_BAPI_HEADER-PSTNG_DATE = SY-DATUM.
IT_BAPI_HEADER-DOC_DATE = SY-DATUM.
IT_BAPI_HEADER-HEADER_TXT = WA_PODAT-BKTXT.
IT_BAPI_HEADER-BILL_OF_LADING = WA_PODAT-FRBNR.
IT_BAPI_HEADER-REF_DOC_NO = WA_PODAT-XBLNR.
APPEND IT_BAPI_HEADER.
ENDAT.

CONCATENATE WA_PODAT-GMEINS WA_PODAT-TMEINS INTO W_SGTXT
SEPARATED BY '/'.

PERFORM MATNR_FORMAT_INPUT USING WA_PODAT-MATNR.

*w_cnt = 1.

IF WA_PODAT-BWART = '101' AND
( WA_PODAT-LSMNG GT WA_PODAT-MENGE ).

SELECT CHARG LFIMG FROM LIPS INTO CORRESPONDING FIELDS OF TABLE IT_BATCH
WHERE VGBEL = WA_PODAT-EBELN AND
VGPOS = WA_PODAT-EBELP AND
VBELN = WA_PODAT-XBLNR AND " Added By Vinod
CHARG NE ' '.
IF SY-SUBRC = 0.
DESCRIBE TABLE IT_BATCH LINES W_CNT.
ENDIF.
*w_cnt = w_cnt + 1.
*w_cnt = 2.
W_QTY = WA_PODAT-LSMNG - WA_PODAT-MENGE.

IF W_QTY NE 0.

IT_BATCH-CHARG = 'BL01'.
IT_BATCH-LFIMG = W_QTY.
APPEND IT_BATCH.
ENDIF.

W_MENGE = WA_PODAT-MENGE.

LOOP AT IT_BATCH.
PERFORM CALL_BAPI.
ENDLOOP.

*--inserted on 07-06-2005 by vinod.

elseif WA_PODAT-BWART = '101'.
IF WA_PODAT-MENGE GE WA_PODAT-LSMNG.

SELECT CHARG LFIMG FROM LIPS INTO CORRESPONDING FIELDS OF TABLE IT_BATCH
WHERE VGBEL = WA_PODAT-EBELN AND
VGPOS = WA_PODAT-EBELP AND
VBELN = WA_PODAT-XBLNR AND " Added By Vinod
CHARG NE ' '.
ENDIF.
* ENDIF.

LOOP AT IT_BATCH.

MOVE WA_PODAT-EBELN TO IT_BAPI_DETAIL-PO_NUMBER .
MOVE WA_PODAT-EBELP TO IT_BAPI_DETAIL-PO_ITEM.
MOVE WA_PODAT-MATNR TO IT_BAPI_DETAIL-MATERIAL .
* MOVE WA_PODAT-WERKS TO IT_BAPI_DETAIL-PLANT .
MOVE WA_PODAT-LGORT TO IT_BAPI_DETAIL-STGE_LOC .
* MOVE WA_PODAT-MENGE TO IT_BAPI_DETAIL-ENTRY_QNT .
IT_BAPI_DETAIL-BATCH = IT_BATCH-CHARG.
MOVE IT_BATCH-LFIMG TO IT_BAPI_DETAIL-ENTRY_QNT .
MOVE WA_PODAT-BWART TO IT_BAPI_DETAIL-MOVE_TYPE.
MOVE WA_PODAT-MEINS TO IT_BAPI_DETAIL-ENTRY_UOM .
MOVE WA_PODAT-MEINS TO IT_BAPI_DETAIL-ENTRY_UOM_ISO.
IT_BAPI_DETAIL-MVT_IND = WA_PODAT-KZBEW.
MOVE W_SGTXT TO IT_BAPI_DETAIL-ITEM_TEXT .
MOVE WA_PODAT-MEINS TO IT_BAPI_DETAIL-BASE_UOM.
IT_BAPI_DETAIL-UNLOAD_PT = 'Through Weighbridge'.
IT_BAPI_DETAIL-MOVE_REAS = WA_PODAT-GRUND.
APPEND IT_BAPI_DETAIL.

ENDLOOP.


*---end of insertions.


ELSE.
*-------------------------------COMMENTED BY VINOD FOR MULTIPLE BATCHES.


MOVE WA_PODAT-EBELN TO IT_BAPI_DETAIL-PO_NUMBER .
MOVE WA_PODAT-EBELP TO IT_BAPI_DETAIL-PO_ITEM.
MOVE WA_PODAT-MATNR TO IT_BAPI_DETAIL-MATERIAL .
* MOVE WA_PODAT-WERKS TO IT_BAPI_DETAIL-PLANT .
MOVE WA_PODAT-LGORT TO IT_BAPI_DETAIL-STGE_LOC .
MOVE WA_PODAT-MENGE TO IT_BAPI_DETAIL-ENTRY_QNT .


* IF WA_PODAT-BWART = '101'.
* IF WA_PODAT-MENGE GE WA_PODAT-LSMNG."CHANGED BY VINOD FROM 'GT'
* "TO 'GE'.
* MOVE WA_PODAT-LSMNG TO IT_BAPI_DETAIL-ENTRY_QNT .
*
**-----ADDED BY VINOD FOR INSERTING THE BATCH
*SELECT CHARG LFIMG FROM LIPS INTO CORRESPONDING FIELDS OF TABLE
*IT_BATCH
* WHERE VGBEL = WA_PODAT-EBELN AND
* VGPOS = WA_PODAT-EBELP AND
* VBELN = WA_PODAT-XBLNR AND " Added By Vinod
* CHARG NE ' '.
**-----END OF ADDITIONS FOR INSERTING THE BATCH
* ENDIF.
* ENDIF.
**-----ADDED BY VINOD FOR INSERTING THE BATCH
* LOOP AT IT_BATCH.
* IT_BAPI_DETAIL-BATCH = IT_BATCH-CHARG.
* ENDLOOP.
*
*
**-----END OF ADDITIONS FOR INSERTING THE BATCH
*
MOVE WA_PODAT-BWART TO IT_BAPI_DETAIL-MOVE_TYPE.
MOVE WA_PODAT-MEINS TO IT_BAPI_DETAIL-ENTRY_UOM .
MOVE WA_PODAT-MEINS TO IT_BAPI_DETAIL-ENTRY_UOM_ISO.
IT_BAPI_DETAIL-MVT_IND = WA_PODAT-KZBEW.
MOVE W_SGTXT TO IT_BAPI_DETAIL-ITEM_TEXT .
MOVE WA_PODAT-MEINS TO IT_BAPI_DETAIL-BASE_UOM.
IT_BAPI_DETAIL-UNLOAD_PT = 'Through Weighbridge'.
IT_BAPI_DETAIL-MOVE_REAS = WA_PODAT-GRUND.
APPEND IT_BAPI_DETAIL.

ENDIF.
****----------------------------------------------------END OF COMMENTS
*---------------------------------CODE ADDED AFTER COMMENTING ABOVE CODE
* IF WA_PODAT-BWART = '101'.
* IF WA_PODAT-MENGE GE WA_PODAT-LSMNG.
*
*SELECT CHARG LFIMG FROM LIPS INTO CORRESPONDING FIELDS OF TABLE
*IT_BATCH
* WHERE VGBEL = WA_PODAT-EBELN AND
* VGPOS = WA_PODAT-EBELP AND
* VBELN = WA_PODAT-XBLNR AND " Added By Vinod
* CHARG NE ' '.
* ENDIF.
* ENDIF.
*
* LOOP AT IT_BATCH.
*
* MOVE WA_PODAT-EBELN TO IT_BAPI_DETAIL-PO_NUMBER .
* MOVE WA_PODAT-EBELP TO IT_BAPI_DETAIL-PO_ITEM.
* MOVE WA_PODAT-MATNR TO IT_BAPI_DETAIL-MATERIAL .
** MOVE WA_PODAT-WERKS TO IT_BAPI_DETAIL-PLANT .
* MOVE WA_PODAT-LGORT TO IT_BAPI_DETAIL-STGE_LOC .
** MOVE WA_PODAT-MENGE TO IT_BAPI_DETAIL-ENTRY_QNT .
* IT_BAPI_DETAIL-BATCH = IT_BATCH-CHARG.
* MOVE IT_BATCH-LFIMG TO IT_BAPI_DETAIL-ENTRY_QNT .
* MOVE WA_PODAT-BWART TO IT_BAPI_DETAIL-MOVE_TYPE.
* MOVE WA_PODAT-MEINS TO IT_BAPI_DETAIL-ENTRY_UOM .
* MOVE WA_PODAT-MEINS TO IT_BAPI_DETAIL-ENTRY_UOM_ISO.
* IT_BAPI_DETAIL-MVT_IND = WA_PODAT-KZBEW.
* MOVE W_SGTXT TO IT_BAPI_DETAIL-ITEM_TEXT .
* MOVE WA_PODAT-MEINS TO IT_BAPI_DETAIL-BASE_UOM.
* IT_BAPI_DETAIL-UNLOAD_PT = 'Through Weighbridge'.
* IT_BAPI_DETAIL-MOVE_REAS = WA_PODAT-GRUND.
* APPEND IT_BAPI_DETAIL.
*
* ENDLOOP.
*
*--------------------------END OF CODE ADDED AFTER COMMENTING ABOVE CODE



CLEAR : W_SGTXT,W_QTY,W_CNT,W_CNT1,W_MENGE,IT_BATCH.
REFRESH : IT_BATCH.

AT END OF EBELN.
CALL FUNCTION 'BAPI_GOODSMVT_CREATE'
EXPORTING
GOODSMVT_HEADER = IT_BAPI_HEADER
GOODSMVT_CODE = '01'
* TESTRUN = ' '
IMPORTING
* GOODSMVT_HEADRET =
MATERIALDOCUMENT = MD_NUMBER
* MATDOCUMENTYEAR =
TABLES
GOODSMVT_ITEM = IT_BAPI_DETAIL
* GOODSMVT_SERIALNUMBER =
RETURN = ITABRES .


CALL FUNCTION 'BAPI_TRANSACTION_COMMIT'
EXPORTING
WAIT = 'X'.

APPEND LINES OF ITABRES TO IT_MSG.

IF NOT MD_NUMBER IS INITIAL.

WA_PODAT-MBLNR = MD_NUMBER.
WA_PODAT-BUDAT = SY-DATUM.
WA_PODAT-YYEAR = SY-DATUM+0(4).
MOVE-CORRESPONDING WA_PODAT TO WA_PODAT1.
MODIFY ZVVF_MT25_BRIDG1 FROM WA_PODAT1.
* UPDATE ZVVF_MT25_BRIDGE SET
* Zpost = WA_PODAT-Zpost
* mblnr = MD_NUMBER
* budat = SY-DATUM
* YYEAR = SY-DATUM+0(4)
* WHERE EBELN = WA_PODAT-EBELN AND
* EBELP = WA_PODAT-EBELP .
IF SY-SUBRC = 0.
DELETE FROM ZVVF_MT25_BRIDGE WHERE EBELN = WA_PODAT-EBELN AND
EBELP = WA_PODAT-EBELP .

ENDIF.
READ TABLE IT_PODAT WITH KEY EBELN = WA_PODAT-EBELN
EBELP = WA_PODAT-EBELP .
IF SY-SUBRC = 0.
UPDATE MSEG SET LSMNG = IT_PODAT-LSMNG
WHERE MBLNR = MD_NUMBER .
ENDIF.
MESSAGE S124 WITH MD_NUMBER.
SET SCREEN 0.
LEAVE SCREEN.
ENDIF.
REFRESH : IT_BAPI_DETAIL,IT_BAPI_HEADER,ITABRES.
CLEAR : MD_NUMBER,IT_BAPI_DETAIL,IT_BAPI_HEADER,ITABRES.
ENDAT.
CLEAR : WA_PODAT.
ENDLOOP.

ENDFORM. "post_gr



*&--------------------------------------------------------------------*
*& Form CALL_BAPI
*&--------------------------------------------------------------------*
* text
*---------------------------------------------------------------------*
FORM CALL_BAPI.



IF IT_BATCH-CHARG = 'BL01'.

READ TABLE IT_BATCH INDEX W_CNT.

IT_BAPI_DETAIL-BATCH = IT_BATCH-CHARG.
IT_BAPI_DETAIL-STGE_LOC = 'BL01'.
IT_BAPI_DETAIL-ENTRY_QNT = W_QTY.
IT_BAPI_DETAIL-STCK_TYPE = 'S'.

ELSE.
IF W_MENGE LT 0.
W_MENGE = 0.
ENDIF.



IF W_MENGE GE IT_BATCH-LFIMG .
IT_BAPI_DETAIL-BATCH = IT_BATCH-CHARG.
MOVE WA_PODAT-LGORT TO IT_BAPI_DETAIL-STGE_LOC .
MOVE IT_BATCH-LFIMG TO IT_BAPI_DETAIL-ENTRY_QNT .

ELSE.
IT_BAPI_DETAIL-BATCH = IT_BATCH-CHARG.
MOVE WA_PODAT-LGORT TO IT_BAPI_DETAIL-STGE_LOC .
MOVE W_MENGE TO IT_BAPI_DETAIL-ENTRY_QNT.

ENDIF.


W_MENGE = W_MENGE - IT_BATCH-LFIMG.

ENDIF.

MOVE WA_PODAT-EBELN TO IT_BAPI_DETAIL-PO_NUMBER .
MOVE WA_PODAT-EBELP TO IT_BAPI_DETAIL-PO_ITEM.
MOVE WA_PODAT-MATNR TO IT_BAPI_DETAIL-MATERIAL .
* MOVE WA_PODAT-WERKS TO IT_BAPI_DETAIL-PLANT .


MOVE WA_PODAT-BWART TO IT_BAPI_DETAIL-MOVE_TYPE.
MOVE WA_PODAT-MEINS TO IT_BAPI_DETAIL-ENTRY_UOM .
MOVE WA_PODAT-MEINS TO IT_BAPI_DETAIL-ENTRY_UOM_ISO.
IT_BAPI_DETAIL-MVT_IND = WA_PODAT-KZBEW.
MOVE W_SGTXT TO IT_BAPI_DETAIL-ITEM_TEXT .
MOVE WA_PODAT-MEINS TO IT_BAPI_DETAIL-BASE_UOM.
IT_BAPI_DETAIL-UNLOAD_PT = 'Through Weighbridge'.
IT_BAPI_DETAIL-MOVE_REAS = WA_PODAT-GRUND.

*added by vinod for exiting if w_menge is 0.
if IT_BAPI_DETAIL-ENTRY_QNT NE '0'.

APPEND IT_BAPI_DETAIL.

endif.

*end of addition by vinod for exiting if w_menge is 0.


* APPEND IT_BAPI_DETAIL.

ENDFORM. "CALL_BAPI


*&--------------------------------------------------------------------*
*& Form MATNR_FORMAT_INPUT
*&--------------------------------------------------------------------*
* MATNR FORMAT INPUT
*---------------------------------------------------------------------*
FORM MATNR_FORMAT_INPUT USING W_INPUT.
CALL FUNCTION 'CONVERSION_EXIT_ALPHA_INPUT'
EXPORTING
INPUT = W_INPUT
IMPORTING
OUTPUT = W_INPUT.
ENDFORM. "MATNR_FORMAT_INPUT

link us...

For Visitors

if you want to publish or Add something on ERP, SAP , SAP FUNCTIONAL, SAP ABAP then mail us along with your email-id. contain must be yours

email-id :- avinashkr_raj@yahoo.com(any email)

email-id :- avinaskr_raj.abap@blogger.com ( use only gmail)