Professional Documents
Culture Documents
APPEND 'CHECK' TO gt_fcode. " Hide the check button always- Added on 10.08.2018
by IN_DILLIBABU
SET PF-STATUS '9000_STATUS' EXCLUDING gt_fcode.
* End of change by Ramani N for IRIS Project
* SET PF-STATUS '9000_STATUS'. " Cmt by Ramani N for IRIS Project
SET TITLEBAR '9000_TITLE'.
ELSE.
LOOP AT SCREEN.
CASE screen-group1.
WHEN 'G1'.
screen-active = 0.
MODIFY SCREEN.
ENDCASE.
ENDLOOP.
ENDIF.
*&---------------------------------------------------------------------*
*& Form POPULATE_FCAT
*&---------------------------------------------------------------------*
* text
*----------------------------------------------------------------------*
FORM populate_fcat USING pv_type TYPE char2
pv_uom TYPE meins.
DATA: lv_text TYPE lvc_txtcol.
IF gt_fcat[] IS INITIAL.
IF gv_cncl = abap_true.
PERFORM fill_fcat USING: 'MBLNR' 'GT_ITEM' 'Doc No' 12 '' '',
'MJAHR' 'GT_ITEM' 'Year' 4 '' ''.
ENDIF.
IF gs_head-direction = gc_in.
CASE gs_head-wtype.
WHEN 'STO' OR 'RETURN'.
PERFORM fill_fcat USING: 'DELNO' 'GT_ITEM' 'Delivery No' 12 '' 'X',
'POSNR' 'GT_ITEM' 'Delivery Item' 7 '' ''.
WHEN OTHERS.
IF pv_type = 'MM'." AND gs_head-ptyp IS INITIAL.
gs_fcat-f4availabl = abap_true.
PERFORM fill_fcat USING: 'EBELN' 'GT_ITEM' 'PO Number' 12 'X' '',
'EBELP' 'GT_ITEM' 'PO Item' 7 'X' ''.
ELSE.
PERFORM fill_fcat USING: 'EBELN' 'GT_ITEM' 'PO Number' 12 '' '',
'EBELP' 'GT_ITEM' 'PO Item' 7 '' ''.
ENDIF.
ENDCASE.
IF gv_ebeln IS INITIAL.
* Start of Changes - IN_RAMESHNS - EPDK9A050F
* PERFORM fill_fcat USING: 'PAKDT' 'GT_ITEM' 'Packing' 15 ''
'X'.
CONCATENATE 'Packing in' pv_uom INTO lv_text SEPARATED BY space.
PERFORM fill_fcat USING: 'PAKDT' 'GT_ITEM' lv_text 15 '' 'X'.
CLEAR: lv_text.
* End of Changes - IN_RAMESHNS - EPDK9A050F
ENDIF.
* ELSE.
* PERFORM fill_fcat USING: 'VALUE' 'GT_ITEM' 'Price Per Unit' 14 '' ''.
* ENDIF.
CLEAR: gv_price.
PERFORM fill_fcat USING: 'CUKY' 'GT_ITEM' 'Currency' 8 '' '',
'UNIT' 'GT_ITEM' 'Per Unit' 8 '' ''.
ENDIF.
IF gv_cncl = space.
* IF gs_head-direction = gc_in.
IF gs_config-bchsplt = abap_true OR gv_delivery IS NOT INITIAL. " *-- Added
on 04.05.2018 by IN_DILLIBABU
* IF gs_config-bchsplt = abap_true or gv_delivery IS NOT INITIAL. "
gv_tooltip = 'Batch Split'.
PERFORM fill_fcat USING: 'BATSP' 'GT_ITEM' ' ' 3 '' 'X'.
CLEAR gv_tooltip.
*-Change Quantity Fieldcatlog based on UoM
READ TABLE gt_fcat ASSIGNING FIELD-SYMBOL(<fs_fcat>)
WITH KEY fieldname = 'GRQTY'.
IF sy-subrc = 0.
<fs_fcat>-ref_field = 'MENGE'.
<fs_fcat>-ref_table = 'STPO'.
ENDIF.
ENDIF.
ENDIF.
READ TABLE gt_fcat ASSIGNING <fs_fcat>
WITH KEY fieldname = 'MATNR'.
IF sy-subrc = 0.
<fs_fcat>-no_zero = abap_true.
ENDIF.
IF go_cont_itm IS BOUND.
go_alv_itm->free( ).
go_cont_itm->free( ).
CLEAR: go_cont_itm, go_alv_itm, g_event.
ENDIF.
ENDIF.
ENDFORM.
*&---------------------------------------------------------------------*
*& Form FILL_FCAT
*&---------------------------------------------------------------------*
* text
*----------------------------------------------------------------------*
FORM fill_fcat USING p_fieldname TYPE lvc_fname
p_tabname TYPE lvc_tname
p_seltext TYPE lvc_txtcol
p_outlen TYPE lvc_outlen
p_edit TYPE lvc_edit
p_hotspot TYPE lvc_hotspt.
gs_fcat-fieldname = p_fieldname.
gs_fcat-tabname = p_tabname.
gs_fcat-coltext = p_seltext.
gs_fcat-outputlen = p_outlen.
gs_fcat-edit = p_edit.
gs_fcat-hotspot = p_hotspot.
IF gv_tooltip IS NOT INITIAL.
gs_fcat-tooltip = gv_tooltip.
gs_fcat-icon = abap_true.
ENDIF.
IF gv_price IS NOT INITIAL.
gs_fcat-cfieldname = gv_fld.
* gs_fcat-ctabname = p_tabname.
ENDIF.
APPEND gs_fcat TO gt_fcat.
CLEAR gs_fcat.
ENDFORM.
*&---------------------------------------------------------------------*
*& Form ALV_ITEM_DISPLAY
*&---------------------------------------------------------------------*
* text
*----------------------------------------------------------------------*
FORM alv_item_display .
DATA: ls_layout TYPE lvc_s_layo,
lt_f4 TYPE lvc_t_f4.
IF gs_head-direction = 'OUT'.
DESCRIBE TABLE gt_item_tmp LINES lv_index.
IF lv_index LE lv_index1 .
gt_item_tmp[] = gt_item.
ENDIF.
* Delete the packaging material from the Dipslay
* DELETE gt_item WHERE ebelp = '00002'. " Commented on 20.08.2018 by
IN_DILLIBABU - To handle multi line
IF sy-subrc EQ 0.
SORT lt_mara BY matnr.
ENDIF.
IF go_cont_itm IS INITIAL.
*-ALV initialization
CREATE OBJECT go_cont_itm
EXPORTING
container_name = 'ITEM_CONT'
EXCEPTIONS
cntl_error = 1
cntl_system_error = 2
create_error = 3
lifetime_error = 4
lifetime_dynpro_dynpro_link = 5
OTHERS = 6.
IF sy-subrc = 0.
CREATE OBJECT go_alv_itm
EXPORTING
i_parent = go_cont_itm
EXCEPTIONS
error_cntl_create = 1
error_cntl_init = 2
error_cntl_link = 3
error_dp_create = 4
OTHERS = 5.
IF sy-subrc = 0.
PERFORM assign_f4 USING 'LGORT' CHANGING lt_f4. "F4 for Storage Location
PERFORM assign_f4 USING 'EBELN' CHANGING lt_f4. "F4 for Storage Location
*Begin of changes by R.Ranjtih For IRIS EPDK9A07HP
PERFORM assign_f4 USING 'EVERS' CHANGING lt_f4.
*End of changes by R.Ranjtih For IRIS EPDK9A07HP
* Start of Changes - IN_RAMESHNS - EPDK9A050F
IF gs_head-direction = 'OUT' AND
( gs_head-wtype = 'STO' OR gs_head-wtype = 'SALES' ).
PERFORM assign_f4 USING 'CHARG' CHANGING lt_f4. "F4 for Batch
ENDIF.
* End of Changes - IN_RAMESHNS - EPDK9A050F
IF g_event IS INITIAL.
CREATE OBJECT g_event.
SET HANDLER g_event->hotspot_click FOR go_alv_itm.
SET HANDLER g_event->button_click FOR go_alv_itm.
SET HANDLER g_event->handle_f4 FOR go_alv_itm.
SET HANDLER g_event->data_changed FOR go_alv_itm.
ENDIF.
ls_layout-no_rowmark = 'X'.
ls_layout-stylefname = 'STYLE'.
ls_layout-no_toolbar = abap_true.
ls_layout-info_fname = 'COLOR'.
* ls_layout-box_fname = 'X'." = 'COLOR'.
go_alv_itm_tmp = go_alv_itm.
CALL METHOD go_alv_itm->set_table_for_first_display
EXPORTING
is_layout = ls_layout
CHANGING
it_fieldcatalog = gt_fcat
it_outtab = gt_item.
ENDIF.
ENDIF.
ELSE.
*-Refresh table display
CALL METHOD go_alv_itm->refresh_table_display.
ENDIF.
ENDFORM.
*&---------------------------------------------------------------------*
*& Form POPULATE_PLANT_DESC
*&---------------------------------------------------------------------*
FORM populate_plant_desc .
SELECT SINGLE name1 FROM t001w
INTO gs_head-pname
WHERE werks = gs_head-werks.
IF sy-subrc <> 0.
MESSAGE 'Enter a Valid Plant' TYPE 'E'.
ENDIF.
ENDFORM.
*&---------------------------------------------------------------------*
*& Form SET_CURSOR
*&---------------------------------------------------------------------*
* text
*----------------------------------------------------------------------*
FORM set_cursor .
IF gs_head-werks IS INITIAL.
SET CURSOR FIELD 'GS_HEAD-WERKS'.
ELSEIF gs_head-wbid IS INITIAL.
SET CURSOR FIELD 'GS_HEAD-WBID'.
ENDIF.
ENDFORM.
*&---------------------------------------------------------------------*
*& Form F4_WBID
*&---------------------------------------------------------------------*
* text
*----------------------------------------------------------------------*
FORM f4_wbid .
DATA: lv_rfield TYPE dfies-fieldname,
lv_dfield TYPE help_info-dynprofld,
lt_ret TYPE STANDARD TABLE OF ddshretval.
SELECT a~wbid,
a~item,
a~werks,
a~matnr,
b~direction,
b~wtype FROM zgtmmtr_wbitem AS a
INNER JOIN zgtmmtr_wbhead AS b ON a~wbid = b~wbid
INTO TABLE @DATA(lt_wbhead)
WHERE b~werks = @gs_head-werks AND
b~voref = @abap_true AND
b~del = @space AND
a~mblnr = @space.
lv_rfield = 'WBID'.
lv_dfield = 'GS_HEAD-WBID'.
*-Cancel Screen
IF gv_cncl = abap_true.
LOOP AT SCREEN.
IF screen-group1 = 'CN'.
screen-input = 0.
MODIFY SCREEN.
ENDIF.
ENDLOOP.
ELSE.
LOOP AT SCREEN.
IF screen-group1 = 'CN'.
screen-input = 1.
MODIFY SCREEN.
ENDIF.
ENDLOOP.
ENDIF.
LOOP AT SCREEN.
IF screen-group1 = 'PT'.
IF gs_head-wtype = 'PROCURE' AND gs_head-ptyp IS INITIAL.
READ TABLE gt_config TRANSPORTING NO FIELDS WITH KEY autopo = abap_true.
IF sy-subrc IS INITIAL.
READ TABLE gt_item TRANSPORTING NO FIELDS WITH KEY ebeln = space.
IF sy-subrc IS INITIAL.
screen-input = 1.
ELSE.
screen-input = 0.
ENDIF.
ELSE.
screen-input = 0.
ENDIF.
ELSE.
screen-input = 0.
ENDIF.
MODIFY SCREEN.
ENDIF.
ENDLOOP.
ENDFORM.
*&---------------------------------------------------------------------*
*& Form POPULATE_SCREEN
*&---------------------------------------------------------------------*
* text
*----------------------------------------------------------------------*
FORM populate_screen CHANGING lv_wbuom TYPE meins
lv_type TYPE char2.
DATA: ls_matnr TYPE ty_matnr,
ls_ebeln TYPE ty_ebeln,
ls_vbeln TYPE ty_vbeln,
lv_uom TYPE meins,
lv_cnt TYPE zdt_wbitem,
lv_difqty TYPE menge_d,
lv_tlqty TYPE menge_d,
ls_style TYPE lvc_s_styl,
lv_nobag TYPE p DECIMALS 6,
lt_vbeln TYPE TABLE OF ty_vbeln,
lt_ebeln TYPE TABLE OF ty_ebeln,
lt_matnr TYPE TABLE OF ty_matnr,
lt_wbitem_tmp TYPE TABLE OF zgtmmtr_wbitem.
DATA: lv_menge TYPE menge_d.
*-To get the item details of WB item.
SELECT * FROM zgtmmtr_wbitem
INTO TABLE @DATA(lt_wbitem)
WHERE wbid = @gs_head-wbid.
* AND werks = @gs_head-werks.
* Begin of change by Ramani N for IRIS Project
REFRESH lt_wbitem_tmp.
lt_wbitem_tmp[] = lt_wbitem[].
ELSE.
* MESSAGE 'Enter Valid Weighbridge ID' TYPE 'E'. "IRIS
ENDIF.
* Begin of change by Ramani N for IRIS Project
ENDIF.
* End of change by Ramani N for IRIS Project
*Begin of changes by R.Ranjtih For IRIS EPDK9A056F
IF lt_wbitem IS NOT INITIAL.
* select * from zgtmmtr_wbpack
* into table @data(lt_pack)
* FOR ALL ENTRIES IN lt_wbitem
* where werks = @it_wbitem-werks
* and matnr = @it_wbitem-matnr
* and bagowner = @it-wbitem-bagowner.
*REFRESH gt_pack.
* select * from zgtmmtr_wbpack
* into table gt_pack
* FOR ALL ENTRIES IN lt_wbitem
* where werks = it_wbitem-werks
* and matnr = it_wbitem-matnr
* and bagowner = it-wbitem-bagowner.
IF sy-subrc EQ 0.
* SORT gt_pack BY werks matnr bagowner.
ENDIF.
IF sy-subrc EQ 0.
SORT gt_pack_mara BY matnr.
ENDIF.
*ENDIF.
ENDIF.
* End of changes by R.Ranjith for IRIS EPDK9A056F
IF lt_wbitem[] IS NOT INITIAL.
LOOP AT lt_wbitem INTO DATA(ls_wbitem).
*-Populate Material to TEMP internal table
ls_matnr-matnr = ls_wbitem-matnr.
APPEND ls_matnr TO lt_matnr.
CLEAR ls_matnr.
*-Populate PO details
IF ls_wbitem-ebeln IS NOT INITIAL.
ls_ebeln-ebeln = ls_wbitem-ebeln.
ls_ebeln-ebelp = ls_wbitem-ebelp.
APPEND ls_ebeln TO lt_ebeln.
CLEAR ls_ebeln.
ENDIF.
***********************added by mohan*********************
*-Populate PO unit
IF lt_ebeln[] IS NOT INITIAL.
SELECT ebeln, ebelp, meins FROM ekpo
INTO TABLE @DATA(lt_ekpo)
FOR ALL ENTRIES IN @lt_ebeln
WHERE ebeln = @lt_ebeln-ebeln
AND ebelp = @lt_ebeln-ebelp.
ENDIF.
IF ls_wbhead-direction = gc_in.
CLEAR lv_type.
LOOP AT lt_wbitem INTO ls_wbitem.
gs_item-item = ls_wbitem-item.
gs_item-mblnr = ls_wbitem-mblnr.
gs_item-mjahr = ls_wbitem-mjahr.
gs_item-ebeln = ls_wbitem-ebeln.
gs_item-ebelp = ls_wbitem-ebelp.
gs_item-delno = ls_wbitem-vbeln.
gs_item-posnr = ls_wbitem-posnr.
gs_item-matnr = ls_wbitem-matnr.
gs_item-pakdt = ls_wbitem-pkwgt.
IF ls_wbitem-pkwgt IS INITIAL.
gs_item-pckmt = abap_true.
ENDIF.
IF sy-subrc EQ 0.
gs_item-name1 = gs_lfa1-name1.
ENDIF.
ENDIF.
* End of changes By Ranjith for IRIS EPDK9A056E
CLEAR ls_wbbag.
READ TABLE lt_wbbag INTO ls_wbbag
WITH KEY bagtyp = ls_wbitem-pmat2.
IF sy-subrc = 0.
gs_item-trwgt2 = ls_wbbag-trwgt.
gs_item-uom2 = ls_wbbag-uom.
ENDIF.
CLEAR ls_wbbag.
READ TABLE lt_wbbag INTO ls_wbbag
WITH KEY bagtyp = ls_wbitem-pmat3.
IF sy-subrc = 0.
gs_item-trwgt3 = ls_wbbag-trwgt.
gs_item-uom3 = ls_wbbag-uom.
ENDIF.
gs_item-wbqty = ls_wbitem-ntgew.
gs_item-wbuom = ls_wbitem-uom.
gs_item-grqty = ls_wbitem-ntgew.
CLEAR gv_autob.
IF ls_wbitem-vbeln IS NOT INITIAL AND
ls_wbitem-posnr IS NOT INITIAL.
READ TABLE lt_lips INTO DATA(ls_lips)
WITH KEY vbeln = ls_wbitem-vbeln
posnr = ls_wbitem-posnr.
IF sy-subrc = 0.
* gs_item-uom = ls_lips-meins.
* lv_uom = ls_lips-meins.
gs_item-uom = ls_lips-vrkme.
lv_uom = ls_lips-vrkme.
gs_item-ebeln = ls_lips-vgbel.
gs_item-ebelp = ls_lips-vgpos.
*Begin of changes By R.Ranjith for IRIS
* gs_item-grqty = ls_lips-lfimg.
*End of changes by R.Ranjith for IRIS
* gs_item-charg = ls_lips-charg.
* IF ls_lips-charg IS NOT INITIAL.
* gv_autob = abap_true.
* ENDIF.
ENDIF.
ELSEIF ls_wbitem-ebeln IS NOT INITIAL AND
ls_wbitem-ebelp IS NOT INITIAL.
READ TABLE lt_ekpo INTO DATA(ls_ekpo)
WITH KEY ebeln = ls_wbitem-ebeln
ebelp = ls_wbitem-ebelp.
IF sy-subrc IS INITIAL.
lv_uom = gs_item-uom = ls_ekpo-meins.
ENDIF.
ENDIF.
IF lv_uom IS INITIAL.
SELECT SINGLE meins FROM mara INTO lv_uom WHERE matnr = ls_wbitem-matnr.
gs_item-uom = lv_uom.
ENDIF.
lv_wbuom = gs_item-wbuom.
TRY.
DATA(ls_config) = gt_config[ werks = gs_head-werks
matnr = space
matkl = gs_item-matkl ].
gs_item-ekgrp = ls_config-ekgrp.
gs_item-ekorg = ls_config-ekorg.
CLEAR ls_config.
CATCH cx_sy_itab_line_not_found.
ENDTRY.
IF ls_config-autopo IS NOT INITIAL.
IF gs_item-ekorg IS INITIAL.
CONCATENATE 'Purchase org not maintained in ZWB601 for plant:'
gs_head-werks 'material group:' gs_item-matkl
INTO DATA(lv_msg) SEPARATED BY space.
MESSAGE lv_msg TYPE 'E'.
ENDIF.
IF gs_item-ekgrp IS INITIAL.
CONCATENATE 'Purchase group not maintained in ZWB601 for plant:'
gs_head-werks 'material group:' gs_item-matkl
INTO lv_msg SEPARATED BY space.
MESSAGE lv_msg TYPE 'E'.
ENDIF.
CLEAR lv_msg.
ENDIF.
ENDIF.
ls_style-fieldname = 'EBELP'.
ls_style-style = cl_gui_alv_grid=>mc_style_disabled.
APPEND ls_style TO gs_item-style.
CLEAR ls_style.
ls_style-fieldname = 'VALUE'.
ls_style-style = cl_gui_alv_grid=>mc_style_disabled.
APPEND ls_style TO gs_item-style.
CLEAR ls_style.
ENDIF.
**************************EOA by mohan**********************
CLEAR lv_type.
LOOP AT lt_wbitem INTO ls_wbitem.
gs_item-item = ls_wbitem-item.
gs_item-mblnr = ls_wbitem-mblnr.
gs_item-mjahr = ls_wbitem-mjahr.
gs_item-pakdt = ls_wbitem-pkwgt.
gs_item-ptyp1 = ls_wbitem-pmat1.
gs_item-ptyp2 = ls_wbitem-pmat2.
gs_item-ptyp3 = ls_wbitem-pmat3.
gs_item-palno1 = ls_wbitem-pmatno1.
gs_item-palno2 = ls_wbitem-pmatno2.
gs_item-palno3 = ls_wbitem-pmatno3.
gs_item-gwt1 = ls_wbitem-pmatqty1.
gs_item-gwt2 = ls_wbitem-pmatqty2.
gs_item-gwt3 = ls_wbitem-pmatqty3.
gs_item-wbqty = ls_wbitem-ntgew.
gs_item-wbuom = ls_wbitem-uom.
IF sy-subrc EQ 0.
gs_item-name1 = gs_item-name1.
ENDIF.
ENDIF.
* End of changes By Ranjith for IRIS EPDK9A056E
IF gs_head-wtype = gc_ret.
gs_item-lifnr = ls_wbitem-parnr.
ELSE.
gs_item-kunnr = ls_wbitem-parnr.
ENDIF.
CLEAR ls_wbbag.
READ TABLE lt_wbbag INTO ls_wbbag
WITH KEY bagtyp = ls_wbitem-pmat1.
IF sy-subrc = 0.
gs_item-trwgt1 = ls_wbbag-trwgt.
gs_item-uom1 = ls_wbbag-uom.
ENDIF.
CLEAR ls_wbbag.
READ TABLE lt_wbbag INTO ls_wbbag
WITH KEY bagtyp = ls_wbitem-pmat2.
IF sy-subrc = 0.
gs_item-trwgt2 = ls_wbbag-trwgt.
gs_item-uom2 = ls_wbbag-uom.
ENDIF.
CLEAR ls_wbbag.
READ TABLE lt_wbbag INTO ls_wbbag
WITH KEY bagtyp = ls_wbitem-pmat3.
IF sy-subrc = 0.
gs_item-trwgt3 = ls_wbbag-trwgt.
gs_item-uom3 = ls_wbbag-uom.
ENDIF.
gs_item-item = ls_wbitem-item.
gs_item-delno = ls_wbitem-vbeln.
gs_item-posnr = ls_lips-posnr.
gs_item-matnr = ls_wbitem-matnr.
* CONCATENATE '@EJQ' 'Batch Characteristics' '@' INTO gs_item-batdt.
* CONCATENATE '@0SQ' 'Information' '@' INTO gs_item-itmdt.
* CONCATENATE '@IAQ' 'Batch Split' '@' INTO gs_item-batsp.
gs_item-batdt = icon_batch. "Batch Icon
gs_item-itmdt = icon_information. "Information Icon
IF ls_lips-uecha IS INITIAL.
gs_item-batsp = icon_distribute. "Batch Splitup Icon
ENDIF.
gs_item-ebeln = ls_lips-vgbel.
gs_item-ebelp = ls_lips-vgpos.
gs_item-charg = ls_lips-charg.
gs_item-lgort = ls_lips-lgort.
*Begin of changes By R.Ranjith for IRIS
gs_item-grqty = ls_lips-lfimg.
gs_item-uom = ls_lips-vrkme.
*End of changes by R.Ranjith for IRIS
IF ls_wbitem-pkwgt IS INITIAL AND gs_item-posnr(1) <> 9.
gs_item-pckmt = abap_true.
ENDIF.
CLEAR ls_makt.
READ TABLE lt_makt INTO ls_makt
WITH KEY matnr = ls_wbitem-matnr.
IF sy-subrc = 0.
gs_item-maktx = ls_makt-maktx.
ENDIF.
lv_wbuom = gs_item-wbuom.
ELSE.
LOOP AT lt_lips INTO ls_lips
WHERE vbeln = ls_wbitem-vbeln AND
* AND VGPOS = ls_wbitem-posnr. " Added on
03.05.2018 by IN_DILLIBABU
( posnr = ls_wbitem-posnr OR "addd by mohan
uecha = ls_wbitem-posnr ).
gs_item-item = ls_wbitem-item.
gs_item-delno = ls_wbitem-vbeln.
gs_item-posnr = ls_lips-posnr.
gs_item-matnr = ls_wbitem-matnr.
* CONCATENATE '@EJQ' 'Batch Characteristics' '@' INTO gs_item-batdt.
* CONCATENATE '@0SQ' 'Information' '@' INTO gs_item-itmdt.
* CONCATENATE '@IAQ' 'Batch Split' '@' INTO gs_item-batsp.
gs_item-batdt = icon_batch. "Batch Icon
gs_item-itmdt = icon_information. "Information Icon
IF ls_lips-uecha IS INITIAL.
gs_item-batsp = icon_distribute. "Batch Splitup Icon
ENDIF.
gs_item-ebeln = ls_lips-vgbel.
gs_item-ebelp = ls_lips-vgpos.
gs_item-charg = ls_lips-charg.
gs_item-lgort = ls_lips-lgort.
*Begin of changes By R.Ranjith for IRIS
gs_item-grqty = ls_lips-lfimg.
gs_item-uom = ls_lips-vrkme.
*End of changes by R.Ranjith for IRIS
IF ls_wbitem-pkwgt IS INITIAL AND gs_item-posnr(1) <> 9.
gs_item-pckmt = abap_true.
ENDIF.
gs_item-uom = ls_lips-vrkme.
lv_uom = ls_lips-vrkme.
CLEAR ls_makt.
READ TABLE lt_makt INTO ls_makt
WITH KEY matnr = ls_wbitem-matnr.
IF sy-subrc = 0.
gs_item-maktx = ls_makt-maktx.
ENDIF.
lv_wbuom = gs_item-wbuom.
CLEAR gs_item.
ENDLOOP.
ENDIF.
* LOOP AT lt_lips INTO ls_lips
* WHERE vbeln = ls_wbitem-vbeln AND
** AND VGPOS = ls_wbitem-posnr. " Added on
03.05.2018 by IN_DILLIBABU
* ( posnr = ls_wbitem-posnr OR "addd by mohan
* uecha = ls_wbitem-posnr ).
* gs_item-item = ls_wbitem-item.
* gs_item-delno = ls_wbitem-vbeln.
* gs_item-posnr = ls_lips-posnr.
* gs_item-matnr = ls_wbitem-matnr.
** CONCATENATE '@EJQ' 'Batch Characteristics' '@' INTO gs_item-batdt.
** CONCATENATE '@0SQ' 'Information' '@' INTO gs_item-itmdt.
** CONCATENATE '@IAQ' 'Batch Split' '@' INTO gs_item-batsp.
* gs_item-batdt = icon_batch. "Batch Icon
* gs_item-itmdt = icon_information. "Information Icon
* IF ls_lips-uecha IS INITIAL.
* gs_item-batsp = icon_distribute. "Batch Splitup Icon
* ENDIF.
* gs_item-ebeln = ls_lips-vgbel.
* gs_item-ebelp = ls_lips-vgpos.
* gs_item-charg = ls_lips-charg.
* gs_item-lgort = ls_lips-lgort.
* IF ls_wbitem-pkwgt IS INITIAL AND gs_item-posnr(1) <> 9.
* gs_item-pckmt = abap_true.
* ENDIF.
*
* READ TABLE lt_likp INTO DATA(ls_likp) WITH KEY
* vbeln = ls_wbitem-vbeln.
*******************commented by mohan************************************
** TRY.
** IF ls_likp-gewei NE ls_lips-vrkme.
** CLEAR lv_menge.
** lv_menge = ls_likp-ntgew.
** PERFORM p_conv_mat_unit USING ls_wbitem-matnr
** ls_likp-gewei
** ls_lips-vrkme
** CHANGING lv_menge.
** ls_likp-ntgew = lv_menge.
** ENDIF.
** lv_nobag = ( ls_lips-lfimg / ls_likp-ntgew ) * 100.
** lv_difqty = ( lv_nobag / 100 ) * ls_wbitem-ntgew.
** lv_tlqty = ls_lips-lfimg - lv_difqty.
** gs_item-grqty = ls_lips-lfimg - lv_tlqty.
** CATCH cx_root.
** ENDTRY.
** CLEAR : lv_nobag , lv_tlqty , lv_difqty.
*************************EOC by mohan************************************
* gs_item-grqty = ls_lips-lfimg.
*
* READ TABLE gt_mara INTO DATA(ls_mara)
* WITH KEY matnr = ls_wbitem-matnr.
* IF sy-subrc = 0.
** gs_item-uom = ls_mara-gewei.
** lv_uom = ls_lips-meins.
* ENDIF.
*
* gs_item-uom = ls_lips-vrkme.
* lv_uom = ls_lips-vrkme.
*
* IF ls_lips-charg IS NOT INITIAL.
* gv_autob = abap_true.
* ENDIF.
*
* IF ls_wbitem-uom IS INITIAL. "Temp Code for testing
* ls_wbitem-uom = 'KG'.
* gs_item-wbuom = 'KG'.
* ENDIF.
*
**-- Commentted on 09.05.2018 by IN_DILLIBABU
** IF ls_wbitem-uom <> lv_uom AND ls_wbitem-uom IS NOT INITIAL.
** PERFORM p_conv_mat_unit USING ls_wbitem-matnr
** ls_wbitem-uom
** lv_uom
** CHANGING gs_item-grqty.
** ENDIF.
*
* CLEAR ls_makt.
* READ TABLE lt_makt INTO ls_makt
* WITH KEY matnr = ls_wbitem-matnr.
* IF sy-subrc = 0.
* gs_item-maktx = ls_makt-maktx.
* ENDIF.
* lv_wbuom = gs_item-wbuom.
*
* APPEND gs_item TO gt_item.
* CLEAR gs_item.
* ENDLOOP.
ENDLOOP.
ENDIF.
ENDIF.
gt_wbitem[] = lt_wbitem[].
ENDFORM.
*&---------------------------------------------------------------------*
*& Form HIDE_SCREEN_9001
*&---------------------------------------------------------------------*
FORM hide_screen_9001 .
IF gs_item-pckmt IS INITIAL.
LOOP AT SCREEN.
CASE screen-group1.
WHEN 'D1'.
screen-input = 0.
MODIFY SCREEN.
ENDCASE.
ENDLOOP.
ELSEIF gs_item-pckmt = abap_true OR gv_cncl = abap_true.
LOOP AT SCREEN.
CASE screen-group1.
WHEN 'D1'.
screen-input = 1.
MODIFY SCREEN.
ENDCASE.
LOOP AT SCREEN.
CASE screen-group1.
WHEN 'D2'.
screen-input = 1.
MODIFY SCREEN.
ENDCASE.
CASE screen-group2.
WHEN 'BO2'.
screen-input = 1.
MODIFY SCREEN.
ENDCASE.
ENDLOOP.
ENDFORM.
*&---------------------------------------------------------------------*
*& Form POPULATE_VENDOR
*&---------------------------------------------------------------------*
FORM populate_vendor CHANGING cs_item TYPE ty_item.
lv_netwt = lv_netwr.
ENDFORM.
*&---------------------------------------------------------------------*
*& Form HANDLE_F4
*&---------------------------------------------------------------------*
FORM handle_f4 USING p_fieldname TYPE lvc_fname
p_row_no TYPE lvc_s_roid.
CASE p_fieldname.
WHEN 'LGORT'.
PERFORM sloc_f4 USING p_row_no.
WHEN 'EBELN'.
PERFORM po_f4 USING p_row_no.
*Begin of changes by R.Ranjtih For IRIS EPDK9A07HP
WHEN 'EVERS'.
PERFORM evers_f4 USING p_row_no.
*End of changes by R.Ranjtih For IRIS EPDK9A07HP
* Start of Changes - IN_RAMESHNS - EPDK9A050F
WHEN 'CHARG'.
IF gs_head-direction = 'OUT' AND
( gs_head-wtype = 'STO' OR gs_head-wtype = 'SALES' ).
PERFORM batch_f4 USING p_row_no.
ENDIF.
* End of Changes - IN_RAMESHNS - EPDK9A050F
ENDCASE.
ENDFORM.
*&---------------------------------------------------------------------*
*& Form ASSIGN_F4
*&---------------------------------------------------------------------*
FORM assign_f4 USING p_field_name TYPE lvc_fname
CHANGING p_lt_f4 TYPE lvc_t_f4.
DATA: ls_f4 TYPE lvc_s_f4.
CASE pe_column_id-fieldname.
* WHEN 'EBELN'.
* READ TABLE gt_item ASSIGNING FIELD-SYMBOL(<fs_item>)
* WITH KEY color = 'C300'.
* IF sy-subrc = 0.
* CLEAR <fs_item>-color.
* ENDIF.
*
* READ TABLE gt_item ASSIGNING <fs_item>
* INDEX pe_row_id-index.
* IF sy-subrc = 0." AND <fs_item>-ebeln IS NOT INITIAL.
* PERFORM populate_vendor CHANGING <fs_item>.
* PERFORM set_cursor_alv USING lv_rowno
* 'EBELN'.
* ENDIF.
*
* WHEN 'DELNO'.
* READ TABLE gt_item ASSIGNING <fs_item>
* WITH KEY color = 'C300'.
* IF sy-subrc = 0.
* CLEAR <fs_item>-color.
* ENDIF.
*
* READ TABLE gt_item ASSIGNING <fs_item>
* INDEX pe_row_id-index.
* IF sy-subrc = 0 AND <fs_item>-delno IS NOT INITIAL.
* PERFORM populate_delivery CHANGING <fs_item>.
* PERFORM set_cursor_alv USING lv_rowno
* 'DELNO'.
* ENDIF.
WHEN 'MATNR'.
IF ( gs_head-direction = gc_out AND gs_head-wtype NE gc_ret ) OR
( gs_head-direction = gc_in AND gs_head-wtype = gc_ret ) OR
( gs_head-direction = gc_in AND gs_head-wtype = gc_sto ).
READ TABLE gt_item ASSIGNING <fs_item>
WITH KEY color = 'C300'.
IF sy-subrc = 0.
CLEAR <fs_item>-color.
ENDIF.
WHEN 'BATDT'.
READ TABLE gt_item INTO gs_item INDEX pe_row_id-index.
IF sy-subrc = 0.
IF gs_item-charg IS NOT INITIAL.
gs_itemt = gs_item.
CALL SCREEN 9002 STARTING AT 10 10.
ELSE.
MESSAGE 'Enter the Batch' TYPE 'I'.
PERFORM set_cursor_alv USING lv_rowno
'CHARG'.
ENDIF.
ENDIF.
WHEN 'ITMDT'.
READ TABLE gt_item INTO gs_item INDEX pe_row_id-index.
IF sy-subrc = 0.
gs_itemt = gs_item.
CALL SCREEN 9005 STARTING AT 30 10.
ENDIF.
WHEN 'BATSP'.
IF <fs_item>-delno IS INITIAL.
MESSAGE 'Enter Delivery document' TYPE 'I'.
PERFORM set_cursor_alv USING lv_rowno
'DELNO'.
ELSE.
IF <fs_item>-batsp IS NOT INITIAL.
SET PARAMETER ID 'VL' FIELD <fs_item>-delno.
CALL TRANSACTION 'VL02N' AND SKIP FIRST SCREEN.
WAIT UP TO 2 SECONDS.
SELECT * FROM lips INTO TABLE @DATA(lt_lips)
WHERE vbeln = @<fs_item>-delno AND
( posnr = @<fs_item>-posnr OR
uecha = @<fs_item>-posnr ).
SORT lt_lips BY vbeln posnr.
DATA(lv_index) = pe_row_id-index.
LOOP AT lt_lips INTO DATA(ls_lips).
IF ls_lips-posnr EQ <fs_item>-posnr.
<fs_item>-charg = ls_lips-charg.
<fs_item>-grqty = ls_lips-lfimg.
<fs_item>-lgort = ls_lips-lgort.
ELSE.
READ TABLE gt_item ASSIGNING FIELD-SYMBOL(<fs_bitem>)
WITH KEY item = <fs_item>-item
delno = ls_lips-vbeln
posnr = ls_lips-posnr.
IF sy-subrc IS INITIAL.
<fs_bitem>-posnr = ls_lips-posnr.
<fs_bitem>-charg = ls_lips-charg.
<fs_bitem>-grqty = ls_lips-lfimg.
* <fs_bitem>-wbqty = ls_lips-lfimg.
<fs_bitem>-lgort = ls_lips-lgort.
IF ls_lips-uecha IS NOT INITIAL.
CLEAR <fs_bitem>-batsp.
ELSE.
<fs_bitem>-batsp = icon_distribute.
ENDIF.
ELSE.
DATA(ls_item) = <fs_item>.
IF ls_lips-uecha IS NOT INITIAL.
CLEAR ls_item-batsp.
ELSE.
ls_item-batsp = icon_distribute.
ENDIF.
lv_index = lv_index + 1.
CLEAR <fs_item>-wbqty.
* ls_item-wbqty = ls_lips-lfimg.
ls_item-grqty = ls_lips-lfimg.
ls_item-posnr = ls_lips-posnr.
ls_item-charg = ls_lips-charg.
ls_item-lgort = ls_lips-lgort.
INSERT ls_item INTO gt_item INDEX lv_index.
ENDIF.
ENDIF.
ENDLOOP.
lt_mod[] = pr_data_changed->mt_mod_cells[].
READ TABLE lt_mod INTO DATA(ls_mod) INDEX 1.
IF sy-subrc = 0.
CASE ls_mod-fieldname.
WHEN 'CHARG'.
PERFORM validate_batch USING pr_data_changed
ls_mod.
* READ TABLE gt_fcat TRANSPORTING NO FIELDS WITH KEY fieldname = 'VALUE'
edit = abap_true.
* IF sy-subrc IS INITIAL.
* PERFORM set_cursor_alv USING ls_mod-row_id
* 'VALUE'.
* ELSE.
PERFORM set_cursor_alv USING ls_mod-row_id
'CHARG'.
* ENDIF.
WHEN 'LGORT'.
PERFORM validate_lgort USING pr_data_changed
ls_mod.
PERFORM set_cursor_alv USING ls_mod-row_id
* 'CHARG'.
'LGORT'.
WHEN 'EBELN'.
PERFORM populate_grqty USING pr_data_changed
ls_mod ls_mod-fieldname.
PERFORM set_cursor_alv USING ls_mod-row_id
* 'EBELP'.
'EBELN'.
WHEN 'EBELP'.
PERFORM populate_grqty USING pr_data_changed
ls_mod ls_mod-fieldname.
PERFORM set_cursor_alv USING ls_mod-row_id
* 'LGORT'.
'EBELP'.
ENDCASE.
ENDIF.
ENDFORM.
*&---------------------------------------------------------------------*
*& Form VALIDATE_BATCH
*&---------------------------------------------------------------------*
FORM validate_batch USING
pr_data_changed TYPE REF TO cl_alv_changed_data_protocol
ps_mod TYPE lvc_s_modi.
lv_charg = ps_mod-value.
IF lv_charg IS INITIAL.
EXIT.
ENDIF.
CLEAR gs_item.
READ TABLE gt_item INTO gs_item INDEX ps_mod-row_id.
SELECT SINGLE matnr, charg FROM mch1
INTO @DATA(ls_mch1)
WHERE matnr = @gs_item-matnr
AND charg = @lv_charg.
IF sy-subrc = 0.
*-- Start of added on 11.06.2018 by IN_DILLIBABU TR: EPDK9A05W8 Charms:
4000004199
*-- If the WBID,item, material and given batch is availabe in the table
ZGTMMTR_QCRECORD then dont show the error message. i
*-- if recrod not found show the error
SELECT SINGLE wbid,item,matnr,lifnr,charg FROM zgtmmtr_qcrecord
INTO @DATA(ls_qcrecord) WHERE wbid EQ @gs_head-wbid
AND item EQ @gs_item-item
AND matnr EQ @gs_item-matnr
AND charg EQ @lv_charg.
IF sy-subrc NE 0.
*-- End of added on 11.06.2018 by IN_DILLIBABU TR: EPDK9A05W8 Charms:
4000004199
CALL METHOD pr_data_changed->add_protocol_entry
EXPORTING
i_msgid = '0K'
i_msgno = '000'
i_msgty = 'E'
i_msgv1 = 'Batch already exist,'
i_msgv2 = 'Enter different batch'
i_fieldname = ps_mod-fieldname
i_row_id = ps_mod-row_id.
CALL METHOD pr_data_changed->display_protocol.
EXIT.
ENDIF.
ELSE.
CALL METHOD go_alv_itm->refresh_table_display.
ENDIF.
ENDFORM.
*&---------------------------------------------------------------------*
*& Form SLOC_F4
*&---------------------------------------------------------------------*
FORM sloc_f4 USING p_row_no TYPE lvc_s_roid.
ls_mcha-matnr = gs_item-matnr.
ls_mcha-werks = gs_head-werks.
ls_mcha-charg = gs_item-charg.
lv_object = gs_item-matnr.
*-- Issue: Not allowing to view batch characteristics for already posted batch
details pop-up. Batch characters should be editable.
SELECT SINGLE matnr,werks,charg FROM mcha INTO @DATA(ls_mcha_1)
WHERE matnr EQ @gs_item-matnr
AND werks EQ @gs_head-werks
AND charg EQ @gs_item-charg.
IF gv_autob = abap_true OR sy-subrc EQ 0.
*-- End of Added on 20.07.2018 by IN_DILLIBABU
CALL FUNCTION 'VB_CHANGE_BATCH'
EXPORTING
ymcha = ls_mcha
bypass_lock = 'X'
kzcla = '3'
buffer_refresh = 'X'
* check_external = 'X'
* check_customer = 'X'
TABLES
char_of_batch = lt_cbatch
EXCEPTIONS
no_material = 1
no_batch = 2
no_plant = 3
material_not_found = 4
plant_not_found = 5
lock_on_material = 6
lock_on_plant = 7
lock_on_batch = 8
lock_system_error = 9
no_authority = 10
batch_not_exist = 11
no_class = 12
error_in_classification = 13
error_in_valuation_change = 14
error_in_status_change = 15
region_of_origin_not_found = 16
country_of_origin_not_found = 17
OTHERS = 18.
IF sy-subrc <> 0.
* Implement suitable error handling here
ENDIF.
ELSE.
CALL FUNCTION 'VB_CREATE_BATCH'
EXPORTING
ymcha = ls_mcha
bypass_lock = 'X'
kzcla = '3'
buffer_refresh = 'X'
check_external = 'X'
check_customer = 'X'
TABLES
char_of_batch = lt_cbatch
EXCEPTIONS
no_material = 1
no_batch = 2
no_plant = 3
material_not_found = 4
plant_not_found = 5
stoloc_not_found = 6
lock_on_material = 7
lock_on_plant = 8
lock_on_batch = 9
lock_system_error = 10
no_authority = 11
batch_exist = 12
stoloc_exist = 13
illegal_batch_number = 14
no_batch_handling = 15
no_valuation_area = 16
valuation_type_not_found = 17
no_valuation_found = 18
error_automatic_batch_number = 19
cancelled = 20
wrong_status = 21
interval_not_found = 22
number_range_not_extern = 23
object_not_found = 24
error_check_batch_number = 25
no_external_number = 26
no_customer_number = 27
no_class = 28
error_in_classification = 29
inconsistency_in_key = 30
region_of_origin_not_found = 31
country_of_origin_not_found = 32
OTHERS = 33.
ENDIF.
IF sy-subrc = 12.
lv_process = 'N'.
MESSAGE e668(m7) INTO lv_emessage WITH gs_item-charg.
ENDIF.
*-- Added on 19.09.2018 by IN_DILLIBABU- Since ATNAM is common for all batch so
batch wise fill should happen
LOOP AT ct_char ASSIGNING FIELD-SYMBOL(<fs_char>) WHERE matnr EQ gs_item-matnr
AND charg EQ gs_item-charg.
READ TABLE lt_value2 INTO DATA(ls_value)
WITH KEY atnam = <fs_char>-atnam.
IF sy-subrc = 0.
<fs_char>-c_value = ls_value-atwrt.
ELSE.
CLEAR <fs_char>-c_value.
ENDIF.
ENDLOOP.
ENDFORM.
*&---------------------------------------------------------------------*
*& Form SET_DROPDOWN
*&---------------------------------------------------------------------*
FORM set_dropdown TABLES t_val TYPE vrm_values
USING p_field TYPE vrm_value-text.
lt_value[] = t_val[].
IF lt_value IS INITIAL.
CLEAR gs_bags.
LOOP AT gt_bags INTO gs_bags.
gs_list-key = gs_bags-bagtyp.
APPEND gs_list TO lt_value.
CLEAR gs_list.
ENDLOOP.
ENDIF.
t_val[] = lt_value[].
ENDFORM.
*&---------------------------------------------------------------------*
*& Form CALC_TARE_GROSS_BAG
*&---------------------------------------------------------------------*
* text
*----------------------------------------------------------------------*
FORM calc_tare_gross_bag USING p_ptyp1
p_palno1
CHANGING c_gwt1
c_trwgt1
c_uom1.
CLEAR gs_bags.
IF p_ptyp1 IS INITIAL.
CLEAR: c_gwt1, c_trwgt1, c_uom1.
ENDIF.
ENDFORM.
*&---------------------------------------------------------------------*
*& Form CALC_GROSS_BAG
*&---------------------------------------------------------------------*
* text
*----------------------------------------------------------------------*
FORM calc_gross_bag USING p_palno1
p_trwg1
CHANGING c_gwt1.
lv_vbeln = <fs_item>-delno.
UNASSIGN <fs_item>.
LOOP AT gt_item ASSIGNING <fs_item> WHERE vbeln = lv_vbeln.
READ TABLE lt_lips INTO DATA(ls_lips)
WITH KEY vbeln = <fs_item>-delno
posnr = <fs_item>-posnr.
IF sy-subrc = 0.
READ TABLE lt_likp INTO DATA(ls_likp)
WITH KEY vbeln = <fs_item>-delno.
IF sy-subrc = 0.
TRY.
lv_nobag = ( ls_lips-lfimg / ls_likp-ntgew ) * 100.
lv_difqty = ( lv_nobag / 100 ) * lv_netwt.
lv_tlqty = ls_lips-lfimg - lv_difqty.
<fs_item>-grqty = ls_lips-lfimg - lv_tlqty.
CLEAR : lv_nobag , lv_tlqty , lv_difqty.
CATCH cx_root.
ENDTRY.
ENDIF.
ENDLOOP.
ENDIF.
REFRESH gt_final.
PERFORM populate_item_gr_gi.
BEGIN OF lty_mslb,
matnr TYPE matnr,
werks TYPE werks_d,
charg TYPE charg_d,
sobkz TYPE sobkz,
lifnr TYPE lifnr,
lblab TYPE labst,
END OF lty_mslb,
BEGIN OF lty_t159l,
werks TYPE werks_d,
xsong TYPE xsong,
END OF lty_t159l,
BEGIN OF lty_bags,
wbid TYPE zdt_gwbid,
item TYPE zdt_wbitem,
good_bag1 TYPE char5,
good_bag2 TYPE char5,
good_bag3 TYPE char5,
avg_bag1 TYPE char5,
avg_bag2 TYPE char5,
avg_bag3 TYPE char5,
bad_bag1 TYPE char5,
bad_bag2 TYPE char5,
bad_bag3 TYPE char5,
END OF lty_bags.
ls_final-wbid = gs_head-wbid.
ls_final-wbitem = ls_item-item.
ls_final-ebeln = ls_item-ebeln.
ls_final-ebelp = ls_item-ebelp.
ls_final-vbeln = ls_item-vbeln.
ls_final-delno = ls_item-delno.
ls_final-posnr = ls_item-posnr.
ls_final-matnr = ls_item-matnr.
ls_final-maktx = ls_item-maktx.
ls_final-lifnr = ls_item-lifnr.
ls_final-name1 = ls_item-name1.
ls_final-pkwgt = ls_item-pakdt.
ls_final-wbqty = ls_item-wbqty.
ls_final-wbuom = ls_item-wbuom.
ls_final-wsqty = ls_item-wsqty.
ls_final-wsuom = ls_item-wsuom.
ls_final-grqty = ls_item-grqty.
ls_final-gruom = ls_item-uom.
ls_final-lgort = ls_item-lgort.
ls_final-charg = ls_item-charg.
ls_final-trlos = ls_item-trlos.
ls_final-kunag = ls_item-kunag.
ls_final-name2 = ls_item-name2.
ls_final-kunwe = ls_item-kunwe.
ls_final-name3 = ls_item-name3.
ls_final-mandt = ls_item-mandt.
ls_final-lichn = ls_item-lichn.
ls_final-vfdat = ls_item-sled.
ls_final-ablad = ls_item-ablad.
ls_final-sgtxt = ls_item-sgtxt.
ls_final-lsmng = ls_item-lsmng.
ls_final-lsmeh = ls_item-lsmeh.
ls_final-pmat1 = ls_item-ptyp1.
ls_final-pmatno1 = ls_item-palno1.
ls_final-pmatqty1 = ls_item-gwt1.
ls_final-pmat2 = ls_item-ptyp2.
ls_final-pmatno2 = ls_item-palno2.
ls_final-pmatqty2 = ls_item-gwt2.
ls_final-pmat3 = ls_item-ptyp3.
ls_final-pmatno3 = ls_item-palno3.
ls_final-pmatqty3 = ls_item-gwt3.
* Begin of changes by Ranjith for IRIS EPDK9A056E
ls_final-bagowner = ls_item-bagowner.
*CLEAR GS_PACK
* Read table gt_pack into gs_pack with key
* werks = gs_head-werks
* matnr = ls_item-matnr
* bagowner = ls_item-bagowner
* binary-search.
* iF SY-SUBRC EQ 0.
* LS_FINAL-JUTEBAG = GS_PACK-JUTEBAG.
* ls_final-bwart = gs_pack-bwart.
*CLEAR GS_PACK_MARA.
*READ TABLE gt_pack_mara INTO gs_pack_mara WITH KEY
* matnr = gs_pack-matnr
* BINARY SEARCH.
*
*IF sy-subrc EQ 0.
* ls_final-PACKmeins = gs_pack_mara-meins.
*ENDIF.
* ENDIF.
* End of changes By Ranjith for IRIS EPDK9A056E
* ls_final-pmat4 = ls_item-ptyp4.
* ls_final-pmatno4 = ls_item-palno4.
* ls_final-pmatqty4 = ls_item-gwt4.
IF ls_final-lifnr IS INITIAL.
ls_ebeln-ebeln = ls_final-ebeln.
ls_ebeln-ebelp = ls_final-ebelp.
APPEND ls_ebeln TO lt_ebeln.
CLEAR ls_ebeln.
ls_vbeln-vbeln = ls_final-delno.
ls_vbeln-posnr = ls_final-posnr.
APPEND ls_vbeln TO lt_vbeln.
CLEAR ls_vbeln.
ENDIF.
****************added by mohan**************
ls_final-kunnr = ls_item-kunnr.
ls_final-matkl = ls_item-matkl.
ls_final-ekgrp = ls_item-ekgrp.
ls_final-ekorg = ls_item-ekorg.
ls_final-value = ls_item-value.
ls_final-info_rec = ls_item-info_rec. "" *-- Added on 08.05.2018 by
IN_DILLIBABU
ls_final-cuky = ls_item-cuky .
*Begin of changes by R.Ranjtih For IRIS EPDK9A07HP
ls_final-evers = ls_item-evers.
*End of changes by R.Ranjtih For IRIS EPDK9A07HP
ls_final-unit = ls_item-unit .
ls_final-autobatch = ls_item-autobatch .
*Begin of changes EPDK9A0819 4000004172 for IRIS Ranjith
ls_final-goodbag = ls_item-good_bag1.
ls_final-averagebag = ls_item-avg_bag1.
ls_final-badbag = ls_item-bad_bag1.
*End of changes EPDK9A0819 4000004172 for IRIS Ranjith
******************EOA by mohan**************
APPEND ls_final TO gt_final.
CLEAR ls_final.
ENDIF.
ENDLOOP.
* Get the
SELECT SINGLE bukrs FROM t001k
INTO lv_bukrs
WHERE bwkey = gs_head-werks.
* Get bag details
REFRESH lt_bags.
SELECT * FROM zngmm_onlplant
INTO TABLE lt_bags_on
FOR ALL ENTRIES IN gt_final
WHERE bukrs = lv_bukrs
AND werks = gs_head-werks
AND ekorg = gt_final-ekorg
AND matnr = gt_final-matnr.
IF sy-subrc EQ 0.
SORT lt_bags_on BY bukrs werks ekorg matnr.
REFRESH lt_mslb.
* Get the Special Stocks with Vendor from MSLB.
SELECT matnr
werks
charg
sobkz
lifnr
lblab
FROM mslb
INTO TABLE lt_mslb
FOR ALL ENTRIES IN lt_bags_on
WHERE matnr EQ lt_bags_on-jutebag
AND werks EQ gs_head-werks
AND sobkz = lc_sobkz_o.
*
IF sy-subrc EQ 0.
SORT lt_mslb BY matnr werks lifnr .
* Move the local internal table
lt_final[] = gt_final[].
* Delete the vendors which is not available in the Item table
SORT lt_final BY lifnr.
LOOP AT lt_mslb ASSIGNING <fs_mslb>.
CLEAR ls_final.
READ TABLE lt_final INTO ls_final WITH KEY
lifnr = <fs_mslb>-lifnr
BINARY SEARCH.
IF sy-subrc ne 0.
CLEAR <fs_mslb>-matnr.
else.
lv_lblab = <fs_mslb>-lblab + lv_lblab.
ENDIF.
ENDLOOP.
*Delete the records .
DELETE lt_mslb WHERE matnr IS INITIAL.
SORT lt_mslb BY matnr werks lifnr .
ENDIF.
ENDIF.
REFRESH lt_mail.
IF gt_final IS NOT INITIAL.
SELECT bukrs
werks
bsart
bagtolerance
avgbagtolerance
FROM zgtmmtr_mail
INTO TABLE lt_mail
WHERE bukrs = lv_bukrs
AND werks = gs_head-werks.
IF sy-subrc EQ 0.
DELETE lt_mail WHERE avgbagtolerance IS INITIAL.
SORT lt_mail BY avgbagtolerance.
DELETE ADJACENT DUPLICATES FROM lt_mail COMPARING avgbagtolerance.
SORT lt_mail BY bukrs werks.
REFRESH lt_t159l.
*Default values for inventory management and physical invent.
SELECT werks
xsong
FROM t159l
INTO TABLE lt_t159l
WHERE werks = gs_head-werks.
IF sy-subrc EQ 0.
SORT lt_t159l BY werks.
ENDIF.
ENDIF.
CLEAR ls_mail.
READ TABLE lt_mail INTO ls_mail WITH KEY
bukrs = lv_bukrs
werks = gs_head-werks
BINARY SEARCH.
IF sy-subrc EQ 0.
* Get the packaging material from the table ZNGMM_ONLPLANT and move it to
* BAPI
CLEAR ls_bags .
READ TABLE lt_bags_on INTO ls_bags_on WITH KEY
bukrs = lv_bukrs
werks = gs_head-werks
ekorg = ls_item-ekorg
matnr = ls_item-matnr
BINARY SEARCH.
IF sy-subrc EQ 0.
IF sy-subrc EQ 0.
IF lv_lblab LT ls_final-pmatqty1.
* ls_mslb-lblab LT ls_final-pmatqty2 OR
* ls_mslb-lblab LT ls_final-pmatqty3 .
CLEAR ls_t159l.
* If the negative stock is not maintained then raise the error message
* READ TABLE lt_t159l INTO ls_t159l WITH KEY
* werks = gs_head-werks
* BINARY SEARCH.
*
* IF sy-subrc EQ 0.
*****************Commented for Demo Need to Remove************
* IF ls_t159l-xsong IS INITIAL.
CLEAR: lv_msg,
lv_weight.
lv_weight = ls_final-pmatqty1.
CONDENSE lv_weight NO-GAPS.
CONCATENATE text-040 lv_weight
text-041 ls_final-lifnr
INTO lv_msg SEPARATED BY space.
MESSAGE lv_msg TYPE lc_err.
* ENDIF.
*********************************************************
* ENDIF.
ENDIF.
ENDIF.
ENDIF.
ENDIF.
* Cumalate the bag percentage total
CLEAR: lv_total,
lv_msg.
lv_total = ls_final-goodbag +
ls_final-averagebag +
ls_final-badbag.
CONDENSE lv_total NO-GAPS.
IF lv_total GT 100.
CONCATENATE text-042 lv_total
text-043 INTO lv_msg
SEPARATED BY space.
MESSAGE lv_msg TYPE lc_err.
ENDIF.
ENDLOOP.
ENDIF.
*End of changes EPDK9A0819 4000004172 for IRIS Ranjith
ENDFORM.
*&------------------------- --------------------------------------------*
*& Form POPULATE_DELIVERY
*&---------------------------------------------------------------------*
* text
*----------------------------------------------------------------------*
FORM populate_delivery CHANGING cs_item TYPE ty_item.
CLEAR ls_kna1.
READ TABLE lt_kna1 INTO ls_kna1
WITH KEY kunnr = cs_item-kunag.
IF sy-subrc = 0.
cs_item-name3 = ls_kna1-name1.
ENDIF.
IF cs_item-ebeln IS INITIAL.
SELECT vbeln, vgbel FROM lips
INTO TABLE @DATA(lt_lips)
WHERE vbeln = @cs_item-delno.
IF sy-subrc = 0.
READ TABLE lt_lips INTO DATA(ls_lips) INDEX 1.
IF sy-subrc = 0.
cs_item-ebeln = ls_lips-vgbel.
ENDIF.
ENDIF.
ENDIF.
gs_item-kunwe = cs_item-kunwe.
gs_item-kunag = cs_item-kunag.
gs_item-name2 = cs_item-name2.
gs_item-name3 = cs_item-name3.
IF gs_head-wtype = gc_sto.
gs_item-ebeln = cs_item-ebeln.
ELSE.
gs_item-vbeln = cs_item-ebeln.
ENDIF.
*Begin of changes by R.Ranjtih For IRIS EPDK9A07HP
IF gs_item-trlos IS INITIAL.
*End of changes by R.Ranjtih For IRIS EPDK9A07HP
gs_item-trlos = cs_item-trlos.
*Begin of changes by R.Ranjtih For IRIS EPDK9A07HP
ENDIF.
*End of changes by R.Ranjtih For IRIS EPDK9A07HP
cs_item-color = 'C300'.
lv_lgort = ps_mod-value.
IF lv_lgort IS INITIAL.
EXIT.
ENDIF.
CLEAR gs_item.
READ TABLE gt_item INTO gs_item INDEX ps_mod-row_id.
SELECT SINGLE werks, lgort FROM t001l
INTO @DATA(ls_t001l)
WHERE werks = @gs_head-werks
AND lgort = @lv_lgort.
IF sy-subrc <> 0.
CALL METHOD pr_data_changed->add_protocol_entry
EXPORTING
i_msgid = '0K'
i_msgno = '000'
i_msgty = 'E'
i_msgv1 = 'Enter a Valid Storage Location'
i_fieldname = ps_mod-fieldname
i_row_id = ps_mod-row_id.
CALL METHOD pr_data_changed->display_protocol.
EXIT.
ELSE.
CALL METHOD go_alv_itm->refresh_table_display.
ENDIF.
ENDFORM.
*&---------------------------------------------------------------------*
*& Form DISPLAY_MESSAGE
*&---------------------------------------------------------------------*
FORM display_message USING pt_return TYPE tt_return.
DATA: ls_msgtab TYPE esp1_message_wa_type,
lt_msgtab TYPE esp1_message_tab_type.
* Msg 2
ls_msgtab-msgv2 = ls_return-message_v1.
CONDENSE ls_msgtab-msgv2.
* Msg 3
ls_msgtab-msgv3 = ls_return-message_v2.
CONDENSE ls_msgtab-msgv3.
* Msg 4
ls_msgtab-msgv4 = ls_return-message_v3.
CONDENSE ls_msgtab-msgv4.
ENDIF.
* Line No
ls_msgtab-lineno = sy-tabix.
CONDENSE ls_msgtab-lineno.
IF sy-subrc = 0.
SELECT lifnr, name1 FROM lfa1
INTO TABLE @DATA(lt_lfa1)
FOR ALL ENTRIES IN @lt_ekko
WHERE lifnr = @lt_ekko-lifnr.
ENDIF.
ENDIF.
ENDIF.
ls_mapping-fldname = 'F0002'.
ls_mapping-dyfldname = 'EBELP'.
APPEND ls_mapping TO lt_mapping.
* ls_mapping-fldname = 'F0003'.
* ls_mapping-dyfldname = 'MATNR'.
* APPEND ls_mapping TO lt_mapping.
*
* ls_mapping-fldname = 'F0004'.
* ls_mapping-dyfldname = 'MAKTX'.
* APPEND ls_mapping TO lt_mapping.
IF <fs_item>-charg IS INITIAL.
IF gs_head-protype = '1'.
PERFORM get_batch_id USING <fs_item>-item CHANGING <fs_item>.
ELSE.
SELECT MIN( item ) FROM zgtmmtr_wsitem
INTO @DATA(lv_item)
WHERE matnr = @<fs_item>-matnr AND
parnr = @<fs_item>-lifnr.
PERFORM get_batch_id USING lv_item CHANGING <fs_item>.
ENDIF.
ENDIF.
CLEAR ls_ekpo.
READ TABLE lt_ekpo INTO ls_ekpo
WITH KEY ebeln = <fs_item>-ebeln
ebelp = <fs_item>-ebelp.
IF sy-subrc = 0.
<fs_item>-uom = ls_ekpo-meins.
ENDIF.
* EPDK9A0CVD IN_RANJITHR S 4000004952
* IF <fs_item>-wbuom <> <fs_item>-uom AND <fs_item>-wbuom IS NOT INITIAL.
* PERFORM p_conv_mat_unit USING <fs_item>-matnr
* <fs_item>-wbuom
* <fs_item>-uom
* CHANGING <fs_item>-grqty.
* ENDIF.
* EPDK9A0CVD IN_RANJITHR S 4000004952
*-Data Population for Batch Split Validation
READ TABLE gt_grqty ASSIGNING FIELD-SYMBOL(<fs_grqty>)
WITH KEY ebeln = space
matnr = <fs_item>-matnr.
IF sy-subrc = 0.
<fs_grqty>-ebeln = <fs_item>-ebeln.
<fs_grqty>-ebelp = <fs_item>-ebelp.
<fs_grqty>-menge = <fs_item>-grqty.
ENDIF.
IF pv_fname = 'EBELN'.
<fs_item>-ebeln = lv_ebeln = ps_mod-value.
IF sy-subrc <> 0.
CALL METHOD pr_data_changed->add_protocol_entry
EXPORTING
i_msgid = '0K'
i_msgno = '000'
i_msgty = 'E'
i_msgv1 = 'Enter Valid PO Number'
i_fieldname = ps_mod-fieldname
i_row_id = ps_mod-row_id.
CALL METHOD pr_data_changed->display_protocol.
EXIT.
ENDIF.
IF <fs_item>-charg IS INITIAL.
IF gs_head-protype = '1'.
PERFORM get_batch_id USING <fs_item>-item CHANGING <fs_item>.
ELSE.
SELECT MIN( item ) FROM zgtmmtr_wsitem
INTO @DATA(lv_item)
WHERE matnr = @<fs_item>-matnr AND
parnr = @<fs_item>-lifnr.
PERFORM get_batch_id USING lv_item CHANGING <fs_item>.
ENDIF.
ENDIF.
SELECT SINGLE ebeln, ebelp, matnr, meins FROM ekpo
INTO @DATA(ls_ekpo)
WHERE ebeln = @ls_ebelp-ebeln
AND ebelp = @ls_ebelp-ebelp.
IF sy-subrc = 0.
<fs_item>-uom = ls_ekpo-meins.
ENDIF.
* TRY.
* SELECT SINGLE param5
* FROM zgtcatr_param
* INTO lv_fmname
* WHERE prognam EQ 'AUTOBATCH'
* AND werks EQ gs_head-werks
* AND modules EQ 'MM'.
* CATCH cx_sy_open_sql_db.
* ENDTRY.
* IF sy-subrc EQ 0.
*
* CONDENSE lv_fmname NO-GAPS.
*
* ls_batch-matnr = ls_item-matnr.
* ls_batch-werks = gs_head-werks.
** ls_batch-budat = ls_head-budat.
* ls_batch-ebeln = ls_item-ebeln.
* ls_batch-ebelp = ls_item-ebelp.
*
* TRY.
** Calling the FM to Create a AUTOBATCH
* CALL FUNCTION lv_fmname
* EXPORTING
* is_batch = ls_batch
* IMPORTING
* ev_charg = ls_item-charg.
*
** READ TABLE lt_item ASSIGNING <fs_item> INDEX lv_line.
** IF sy-subrc EQ 0.
** <fs_item>-charg = ls_item-charg.
** IF <fs_item>-ebeln EQ ls_9005-ebeln AND <fs_item>-ebelp EQ ls_9005-
ebelp AND <fs_item>-line_item EQ ls_9005-line_item.
** ls_9005-charg = ls_item-charg.
** ENDIF.
** UNASSIGN <fs_item>.
** ENDIF.
*
* CATCH cx_sy_dyn_call_param_missing.
* ENDTRY.
*
* ELSE.
* SELECT SINGLE charg
* FROM eket
* INTO ls_item-charg
* WHERE ebeln EQ ls_item-ebeln
* AND ebelp EQ ls_item-ebelp.
*
** PERFORM p_get_eket USING ls_item
** CHANGING ls_eket.
*
** IF ls_eket-charg IS NOT INITIAL.
**
** ls_item-charg = ls_eket-charg.
** MODIFY lt_item FROM ls_item INDEX tc_item-current_line.
**
** READ TABLE lt_item ASSIGNING <fs_item> INDEX lv_line.
** IF sy-subrc EQ 0.
** ls_9005 = <fs_item>.
** ENDIF.
**
** ENDIF.
*
* ENDIF.
DATA(lv_batch) = ps_item-charg.
CLEAR ps_item-charg.
IF gs_head-wtype = gc_po OR gs_head-wtype = gc_sto.
ls_dyn-action = 'A01'.
IF gs_head-wtype = gc_po.
ls_dyn-refdoc = 'R01'.
ELSEIF gs_head-wtype = gc_sto.
ls_dyn-refdoc = 'R05'.
ENDIF.
ENDFORM.
*&---------------------------------------------------------------------*
*& Form POPULATE_CONFIG
*&---------------------------------------------------------------------*
* text
*----------------------------------------------------------------------*
FORM populate_config CHANGING ps_config TYPE zgtmmtr_wbconfig.
SELECT SINGLE * FROM zgtmmtr_wbconfig
INTO ps_config
WHERE werks = gs_head-werks." AND
* matnr = space AND
* matkl = space.
IF sy-subrc = 0.
IF ps_config-grn IS INITIAL.
ps_config-grn = 'B'.
ENDIF.
ENDIF.
REFRESH gt_config_main.
SELECT * FROM zgtmmtr_wbconfig
INTO TABLE gt_config_main
WHERE werks = gs_head-werks.
IF sy-subrc EQ 0.
SORT gt_config_main BY werks matnr matkl.
ENDIF.
*IF sy-subrc EQ 0.
** SORT gt_pack BY werks matnr bagowner.
*ENDIF.
* IF sy-subrc EQ 0.
* SORT gt_pack_mara BY matnr.
* ENDIF.
ENDIF.
*-Populate PO details
IF ls_wsitem-ebeln IS NOT INITIAL.
ls_ebeln-ebeln = ls_wsitem-ebeln.
ls_ebeln-ebelp = ls_wsitem-ebelp.
APPEND ls_ebeln TO lt_ebeln.
CLEAR ls_ebeln.
ENDIF.
IF sy-subrc IS INITIAL.
SELECT * FROM zgtmmtr_wbconfig INTO TABLE gt_config
FOR ALL ENTRIES IN gt_mara
WHERE werks = gs_head-werks AND
matkl = gt_mara-matkl.
ENDIF.
ENDIF.
***********************EOA by mohan*********************
ENDIF.
*-Populate PO unit
IF lt_ebeln[] IS NOT INITIAL.
SELECT ebeln, ebelp, meins FROM ekpo
INTO TABLE @DATA(lt_ekpo)
FOR ALL ENTRIES IN @lt_ebeln
WHERE ebeln = @lt_ebeln-ebeln
AND ebelp = @lt_ebeln-ebelp.
ENDIF.
IF ls_wbhead-direction = gc_in.
CLEAR lv_type.
SORT lt_wsitem BY ebeln ebelp.
ELSE.
READ TABLE gt_item ASSIGNING <fs_item>
WITH KEY ebeln = ls_wsitem-ebeln
ebelp = ls_wsitem-ebelp
* delno = ls_wsitem-vbeln
* posnr = ls_wsitem-posnr
matnr = ls_wsitem-matnr
lifnr = ls_wsitem-parnr.
ENDIF.
IF sy-subrc IS NOT INITIAL.
APPEND INITIAL LINE TO gt_item ASSIGNING <fs_item>.
lv_cnt = lv_cnt + 1.
<fs_item>-item = lv_cnt.
<fs_item>-ebeln = ls_wsitem-ebeln.
<fs_item>-ebelp = ls_wsitem-ebelp.
<fs_item>-delno = ls_wsitem-vbeln.
<fs_item>-posnr = ls_wsitem-posnr.
<fs_item>-mblnr = ls_wsitem-mblnr.
<fs_item>-mjahr = ls_wsitem-mjahr.
<fs_item>-matnr = ls_wsitem-matnr.
**********************added by mohan*******************
TRY.
DATA(ls_config) = gt_config[ werks = gs_head-werks
matnr = space
matkl = <fs_item>-matkl ].
<fs_item>-ekgrp = ls_config-ekgrp.
<fs_item>-ekorg = ls_config-ekorg.
CLEAR ls_config.
CATCH cx_sy_itab_line_not_found.
ENDTRY.
IF ls_config-autopo IS NOT INITIAL.
IF <fs_item>-ekorg IS INITIAL.
CONCATENATE 'Purchase org not maintained in ZWB601 for plant:'
gs_head-werks 'material group:' <fs_item>-matkl
INTO DATA(lv_msg) SEPARATED BY space.
MESSAGE lv_msg TYPE 'E'.
ENDIF.
IF <fs_item>-ekgrp IS INITIAL.
CONCATENATE 'Purchase group not maintained in ZWB601 for plant:'
gs_head-werks 'material group:' <fs_item>-matkl
INTO lv_msg SEPARATED BY space.
MESSAGE lv_msg TYPE 'E'.
ENDIF.
CLEAR lv_msg.
ENDIF.
ENDIF.
**********************EOA by mohan*******************
PERFORM get_batch_id USING ls_wsitem-item CHANGING <fs_item>.
ENDIF.
<fs_item>-delno = ls_wsitem-vbeln.
<fs_item>-posnr = ls_wsitem-posnr.
<fs_item>-pakdt = ls_wsitem-bgtrwt + <fs_item>-pakdt.
<fs_item>-batdt = icon_batch. "Batch Icon
<fs_item>-itmdt = icon_information. "Information Icon
<fs_item>-batsp = icon_distribute. "Batch Splitup Icon
IF <fs_item>-ptyp1 IS INITIAL.
<fs_item>-ptyp1 = ls_wsitem-pmat1.
<fs_item>-palno1 = ls_wsitem-pmatno1.
<fs_item>-gwt1 = ls_wsitem-pmatqty1.
CLEAR ls_wbbag.
READ TABLE lt_wbbag INTO ls_wbbag
WITH KEY bagtyp = ls_wsitem-pmat1.
IF sy-subrc = 0.
<fs_item>-trwgt2 = ls_wbbag-trwgt.
<fs_item>-uom2 = ls_wbbag-uom.
ENDIF.
ELSEIF <fs_item>-ptyp3 IS INITIAL OR
<fs_item>-ptyp3 = ls_wsitem-pmat1.
<fs_item>-ptyp3 = ls_wsitem-pmat1.
<fs_item>-palno3 = ls_wsitem-pmatno1 + <fs_item>-palno3.
<fs_item>-gwt3 = ls_wsitem-pmatqty1 + <fs_item>-gwt3.
CLEAR ls_wbbag.
READ TABLE lt_wbbag INTO ls_wbbag
WITH KEY bagtyp = ls_wsitem-pmat1.
IF sy-subrc = 0.
<fs_item>-trwgt3 = ls_wbbag-trwgt.
<fs_item>-uom3 = ls_wbbag-uom.
ENDIF.
ENDIF.
ENDIF.
* Begin of changes by Ranjith for IRIS EPDK9A056E
<fs_item>-bagowner = ls_wsitem-bagowner.
<fs_item>-pmatno1 = ls_wsitem-pmatno1.
* End of changes By Ranjith for IRIS EPDK9A056E
IF ls_wbhead-direction = gc_in AND ls_wbhead-wtype <> 'STO' AND
<fs_item>-ebeln IS INITIAL.
lv_type = 'MM'.
ENDIF.
CLEAR gv_autob.
READ TABLE lt_lips INTO DATA(ls_lips)
WITH KEY vbeln = ls_wsitem-vbeln
posnr = ls_wsitem-posnr.
IF sy-subrc = 0.
<fs_item>-uom = ls_lips-meins.
lv_uom = ls_lips-meins.
<fs_item>-ebeln = ls_lips-vgbel.
<fs_item>-ebelp = ls_lips-vgpos.
* <fs_item>-charg = ls_lips-charg.
* IF ls_lips-charg IS NOT INITIAL.
* gv_autob = abap_true.
* ENDIF.
ENDIF.
ENDLOOP.
*-Data Population for Batch Split Quantity Validation
IF gs_config-bchsplt = abap_true.
LOOP AT gt_item INTO gs_item.
READ TABLE gt_grqty ASSIGNING FIELD-SYMBOL(<fs_grqty>)
WITH KEY item = gs_item-item
ebeln = gs_item-ebeln
ebelp = gs_item-ebelp.
IF sy-subrc = 0.
<fs_grqty>-menge = gs_item-grqty + <fs_grqty>-menge.
ELSE.
gs_grqty-item = gs_item-item.
gs_grqty-ebeln = gs_item-ebeln.
gs_grqty-ebelp = gs_item-ebelp.
gs_grqty-matnr = gs_item-matnr.
gs_grqty-menge = gs_item-grqty.
*Begin of changes by R.Ranjtih For IRIS EPDK9A056F
gs_grqty-bagowner = gs_item-bagowner.
gs_grqty-pmatno1 = gs_item-pmatno1.
ELSE.
ELSE.
READ TABLE gt_item ASSIGNING <fs_item>
WITH KEY ebeln = ls_wsitem-ebeln
ebelp = ls_wsitem-ebelp
delno = ls_wsitem-vbeln
posnr = ls_wsitem-posnr
matnr = ls_wsitem-matnr
lifnr = ls_wsitem-parnr.
ENDIF.
CLEAR ls_wbbag.
READ TABLE lt_wbbag INTO ls_wbbag
WITH KEY bagtyp = ls_wsitem-pmat2.
IF sy-subrc = 0.
<fs_item>-trwgt2 = ls_wbbag-trwgt.
<fs_item>-uom2 = ls_wbbag-uom.
ENDIF.
ELSEIF <fs_item>-ptyp3 IS INITIAL OR
<fs_item>-ptyp3 = ls_wsitem-pmat1.
<fs_item>-ptyp3 = ls_wsitem-pmat1.
<fs_item>-palno3 = ls_wsitem-pmatno1 + <fs_item>-palno3.
<fs_item>-gwt3 = ls_wsitem-pmatqty1 + <fs_item>-gwt3.
CLEAR ls_wbbag.
READ TABLE lt_wbbag INTO ls_wbbag
WITH KEY bagtyp = ls_wsitem-pmat3.
IF sy-subrc = 0.
<fs_item>-trwgt3 = ls_wbbag-trwgt.
<fs_item>-uom3 = ls_wbbag-uom.
ENDIF.
ENDIF.
ENDIF.
* Begin of changes by Ranjith for IRIS EPDK9A056E
<fs_item>-bagowner = ls_wsitem-bagowner.
* End of changes By Ranjith for IRIS EPDK9A056E
CLEAR ls_makt.
READ TABLE lt_makt INTO ls_makt
WITH KEY matnr = ls_wsitem-matnr.
IF sy-subrc = 0.
<fs_item>-maktx = ls_makt-maktx.
ENDIF.
lv_wbuom = <fs_item>-wbuom.
UNASSIGN <fs_item>.
* APPEND gs_item TO gt_item.
* CLEAR gs_item.
ENDLOOP.
ENDLOOP.
ENDIF.
ENDIF.
CLEAR gs_item.
ENDFORM.
*&---------------------------------------------------------------------*
*& Form REFRESH_DATA
*&---------------------------------------------------------------------*
* text
*----------------------------------------------------------------------*
FORM refresh_data .
gv_mblnr_can,gv_mjahr_can,gv_wb_can,gv_wo_wb_can,gv_wb_print,gv_wo_wb_print.
gt_grqty,gt_config,gt_config_main,gt_wbitem,gt_wsitem,gt_fcode,gt_item_tmp. "
Added on 10.08.2018 by IN_DILLIBABU
IF go_cont_itm IS BOUND.
go_alv_itm->free( ).
go_cont_itm->free( ).
CLEAR: go_cont_itm, go_alv_itm, g_event.
ENDIF.
ENDFORM.
*&---------------------------------------------------------------------*
*& Form POPULATE_GRN
*&---------------------------------------------------------------------*
* text
*----------------------------------------------------------------------*
FORM populate_grn.
SELECT SINGLE mblnr, mjahr, bldat, budat, xblnr, bktxt, frbnr, xabln
FROM mkpf INTO @DATA(ls_mkpf)
WHERE mblnr = @gs_item-mblnr
AND mjahr = @gs_item-mjahr.
IF sy-subrc = 0.
gs_head-bldat = ls_mkpf-bldat.
gs_head-bktxt = ls_mkpf-bktxt.
gs_head-frbnr = ls_mkpf-frbnr.
gs_head-xblnr = ls_mkpf-xblnr.
gs_head-xabln = ls_mkpf-xabln.
ENDIF.
IF gs_item-lgort IS INITIAL.
SELECT mblnr, mjahr, zeile, lgort, charg
FROM mseg INTO TABLE @DATA(lt_mseg)
WHERE mblnr = @gs_item-mblnr
AND mjahr = @gs_item-mjahr.
IF sy-subrc = 0.
LOOP AT gt_item ASSIGNING <fs_item>.
READ TABLE lt_mseg INTO DATA(ls_mseg) INDEX sy-tabix.
IF sy-subrc = 0.
<fs_item>-lgort = ls_mseg-lgort.
<fs_item>-charg = ls_mseg-charg.
ENDIF.
ENDLOOP.
ENDIF.
ENDIF.
SELECT a~wbid,
a~item,
a~werks,
a~matnr,
a~mblnr,
a~mjahr,
b~direction,
b~wtype FROM zgtmmtr_wbitem AS a
INNER JOIN zgtmmtr_wbhead AS b ON a~wbid = b~wbid
INTO TABLE @DATA(lt_wbhead)
WHERE b~werks = @gs_head-werks AND
b~voref = @abap_true AND
b~del = @space AND
a~mblnr NE @space..
IF sy-subrc = 0.
DELETE lt_wbhead WHERE mblnr IS INITIAL.
ENDIF.
lv_rfield = 'WBID'.
lv_dfield = 'GS_HEAD-WBID'.
DATA(ls_item) = ps_item.
ls_stylerow-fieldname = 'GRQTY'.
ls_stylerow-style = cl_gui_alv_grid=>mc_style_enabled.
APPEND ls_stylerow TO lt_styletab.
CLEAR ls_stylerow.
ps_item-style[] = lt_styletab[].
lv_menge = ps_item-grqty.
ps_item-grqty = ps_item-grqty / 2.
CLEAR ps_item-pckmt.
ls_item-style[] = lt_styletab[].
IF gs_head-protype = '1'.
PERFORM get_batch_id USING ls_item-item CHANGING ls_item.
ELSE.
SELECT MIN( item ) FROM zgtmmtr_wsitem
INTO @DATA(lv_item)
WHERE matnr = @ps_item-matnr AND " WA changed on 11.07.2018 by
IN_DILLIBABU Charms: 4000004475
parnr = @ps_item-lifnr.
* WHERE matnr = @<fs_item>-matnr AND
* parnr = @<fs_item>-lifnr.
PERFORM get_batch_id USING lv_item CHANGING ls_item.
ENDIF.
CLEAR cv_error.
IF gs_config-bchsplt = abap_true.
LOOP AT gt_grqty INTO gs_grqty.
CLEAR lv_menge.
LOOP AT gt_item INTO gs_item WHERE item = gs_grqty-item
AND ebeln = gs_grqty-ebeln
AND ebelp = gs_grqty-ebelp.
lv_menge = gs_item-grqty + lv_menge.
ENDLOOP.
lv_ebeln = gv_ebeln.
PERFORM refresh_data.
gv_ebeln = lv_ebeln.
*--------------------------------------------------------------------*
*
* SELECT SINGLE ebeln, bukrs, lifnr
* FROM ekko
* INTO @DATA(ls_ekko)
* WHERE ebeln = @gv_ebeln.
*
* IF sy-subrc = 0.
* PERFORM refresh_data.
*
* gv_ebeln = ls_ekko-ebeln.
* SELECT ebeln, ebelp, matnr, werks, menge, meins
* FROM ekpo
* INTO TABLE @DATA(lt_ekpo)
* WHERE ebeln = @gv_ebeln.
* ENDIF.
*
* READ TABLE lt_ekpo INTO DATA(ls_ekpo) INDEX 1.
* IF sy-subrc = 0.
* SELECT SINGLE werks, name1 FROM t001w
* INTO @DATA(ls_t001w)
* WHERE werks = @ls_ekpo-werks.
* ENDIF.
*
* IF lt_ekpo[] IS NOT INITIAL.
* SELECT matnr, maktx FROM makt
* INTO TABLE @DATA(lt_makt)
* FOR ALL ENTRIES IN @lt_ekpo
* WHERE matnr = @lt_ekpo-matnr.
* ENDIF.
*
* gs_head-budat = sy-datum.
* gs_head-bldat = sy-datum.
* gs_head-werks = ls_ekpo-werks.
* gs_head-pname = ls_t001w-name1.
* gs_head-direction = gc_in.
* PERFORM populate_config CHANGING gs_config.
*
* CLEAR ls_ekpo.
* LOOP AT lt_ekpo INTO ls_ekpo.
* gs_item-ebeln = ls_ekpo-ebeln.
* gs_item-ebelp = ls_ekpo-ebelp.
* gs_item-matnr = ls_ekpo-matnr.
* gs_item-grqty = ls_ekpo-menge.
* gs_item-uom = ls_ekpo-meins.
* gs_item-lifnr = ls_ekko-lifnr.
* gs_item-batdt = icon_batch. "Batch Icon
* gs_item-itmdt = icon_information. "Information Icon
* gs_item-batsp = icon_distribute. "Batch Splitup Icon
** CONCATENATE '@EJQ' 'Batch Characteristics' '@' INTO gs_item-batdt.
** CONCATENATE '@0SQ' 'Information' '@' INTO gs_item-itmdt.
** CONCATENATE '@IAQ' 'Batch Split' '@' INTO gs_item-batsp.
*
* READ TABLE lt_makt INTO DATA(ls_makt)
* WITH KEY matnr = ls_ekpo-matnr.
* IF sy-subrc = 0.
* gs_item-maktx = ls_makt-maktx.
* ENDIF.
* APPEND gs_item TO gt_item.
* CLEAR gs_item.
* ENDLOOP.
*
* IF gt_item[] IS NOT INITIAL.
* PERFORM populate_fcat USING gv_type gv_wbuom.
* ENDIF.
ENDFORM.
*&---------------------------------------------------------------------*
*& Form F4_WSID
*&---------------------------------------------------------------------*
* text
*----------------------------------------------------------------------*
FORM f4_wsid .
SELECT a~wbid,
a~matnr,
b~direction,
b~wtype FROM zgtmmtr_wsitem AS a
INNER JOIN zgtmmtr_wbhead AS b ON a~wbid = b~wbid
INTO TABLE @DATA(lt_wbhead)
WHERE b~werks = @gs_head-werks AND
b~voref = @abap_true AND
b~del = @space AND
a~mblnr = @space.
IF sy-subrc = 0.
SORT lt_wbhead BY wbid matnr.
DELETE ADJACENT DUPLICATES FROM lt_wbhead
COMPARING wbid matnr.
lv_rfield = 'WBID'.
lv_dfield = 'GS_HEAD-WBID'.
SELECT a~wbid,
a~matnr,
a~mblnr,
a~mjahr,
b~direction,
b~wtype FROM zgtmmtr_wsitem AS a
INNER JOIN zgtmmtr_wbhead AS b ON a~wbid = b~wbid
INTO TABLE @DATA(lt_wbhead)
WHERE b~werks = @gs_head-werks AND
b~voref = @abap_true AND
b~del = @space AND
a~mblnr NE @space.
IF sy-subrc = 0.
DELETE lt_wbhead WHERE mblnr IS INITIAL.
SORT lt_wbhead BY wbid matnr.
DELETE ADJACENT DUPLICATES FROM lt_wbhead
COMPARING wbid matnr.
lv_rfield = 'WBID'.
lv_dfield = 'GS_HEAD-WBID'.
CLEAR gt_fcat.
PERFORM populate_fcat USING gv_type gv_wbuom.
IF go_alv_itm IS NOT INITIAL.
go_alv_itm->set_frontend_fieldcatalog( it_fieldcatalog = gt_fcat ).
ENDIF.
ENDFORM.
*&---------------------------------------------------------------------*
*& Form GENERATE_PTBF_PO
*&---------------------------------------------------------------------*
* text
*----------------------------------------------------------------------*
* --> p1 text
* <-- p2 text
*----------------------------------------------------------------------*
FORM generate_ptbf_po .
IF gs_head-ptyp = 'Z002'.
SELECT * FROM a993
INTO TABLE @DATA(lt_a993)
FOR ALL ENTRIES IN @gt_item
WHERE kappl = 'M' AND
kschl = 'MP01' AND
werks = @gs_head-werks AND
ekorg = @gt_item-ekorg AND
matnr = @gt_item-matnr AND
matkl = @gt_item-matkl.
IF sy-subrc IS INITIAL.
DELETE lt_a993 WHERE datbi LT sy-datum.
SORT lt_a993 BY kappl kschl werks ekorg matnr matkl ASCENDING
datab DESCENDING.
DELETE ADJACENT DUPLICATES FROM lt_a993
COMPARING kappl
kschl
werks
ekorg
matnr
matkl.
IF lt_a993 IS NOT INITIAL.
SELECT knumh, kopos, kbetr, konwa, kpein, kmein
FROM konp
INTO TABLE @DATA(lt_konp)
FOR ALL ENTRIES IN @lt_a993
WHERE knumh = @lt_a993-knumh.
ENDIF.
ENDIF.
ENDIF.
LOOP AT gt_item ASSIGNING FIELD-SYMBOL(<fs_item>).
IF gs_head-ptyp = 'Z002'.
TRY .
DATA(ls_a993) = lt_a993[ kappl = 'M'
kschl = 'MP01'
werks = gs_head-werks
ekorg = <fs_item>-ekorg
matnr = <fs_item>-matnr
matkl = <fs_item>-matkl ].
CATCH cx_sy_itab_line_not_found .
CONCATENATE 'Condition record not found for plant:' gs_head-werks
'purchase org.:' <fs_item>-ekorg 'material:'
<fs_item>-matnr 'material group:' <fs_item>-matkl
INTO DATA(lv_msg) SEPARATED BY space.
MESSAGE lv_msg TYPE 'E'.
ENDTRY.
TRY .
DATA(ls_konp) = lt_konp[ knumh = ls_a993-knumh ].
CATCH cx_sy_itab_line_not_found .
CONCATENATE 'Condition record no:' ls_a993-knumh 'not found for plant:'
gs_head-werks 'purchase org.:' <fs_item>-ekorg 'material:'
<fs_item>-matnr 'material group:' <fs_item>-matkl
INTO lv_msg SEPARATED BY space.
MESSAGE lv_msg TYPE 'E'.
ENDTRY.
IF <fs_item>-unit NE ls_konp-kmein.
CALL FUNCTION 'MD_CONVERT_MATERIAL_UNIT'
EXPORTING
i_matnr = <fs_item>-matnr
i_in_me = ls_konp-kmein
i_out_me = <fs_item>-unit
i_menge = 1
IMPORTING
e_menge = lv_menge
EXCEPTIONS
error_in_application = 1
error = 2
OTHERS = 3.
IF sy-subrc EQ 0.
<fs_item>-value = lv_val / lv_menge.
ENDIF.
ELSE.
<fs_item>-value = lv_val.
ENDIF.
ELSEIF gs_head-ptyp = 'Z007'.
* Start of Changes - IN_RAMESHNS - EPDK9A050F
* TRY.
* <fs_item>-unit = gt_mara[ matnr = <fs_item>-matnr ]-meins.
* CATCH cx_sy_itab_line_not_found .
* ENDTRY.
* End of Changes - IN_RAMESHNS - EPDK9A050F
<fs_item>-cuky = gv_currency.
IF <fs_item>-unit IS INITIAL.
<fs_item>-unit = gt_mara[ matnr = <fs_item>-matnr ]-meins.
ENDIF.
* End of Changes - IN_RAMESHNS - EPDK9A050F
ENDIF.
ENDLOOP.
ENDFORM.
*&---------------------------------------------------------------------*
*& Form F4CALLBACK
*&---------------------------------------------------------------------*
* text
*----------------------------------------------------------------------*
* --> p1 text
* <-- p2 text
*----------------------------------------------------------------------*
FORM set_wbid_sel
TABLES record_tab STRUCTURE seahlpres
CHANGING shlp TYPE shlp_descr
callcontrol LIKE ddshf4ctrl.
** set field name for the F4 field
* READ TABLE shlp-interface ASSIGNING FIELD-SYMBOL(<fs_int>) WITH KEY shlpfield =
'F0002'.
* IF sy-subrc IS NOT INITIAL.
* APPEND INITIAL LINE TO shlp-interface ASSIGNING <fs_int>.
* ENDIF.
* <fs_int>-shlpfield = 'F0002'.
* <fs_int>-valfield = 'GV_ALV1'.
* <fs_int>-f4field = c_x.
*
** set the text for the F4 field*
* READ TABLE shlp-fielddescr ASSIGNING FIELD-SYMBOL(<fs_desc>) WITH KEY fieldname
= 'F0003'.
* IF sy-subrc IS INITIAL.
* <fs_desc>-scrtext_m = 'Equipment Type'.
* ENDIF.
ENDFORM. "f4callback
*&---------------------------------------------------------------------*
*& Form GET_WBID
*&---------------------------------------------------------------------*
* text
*----------------------------------------------------------------------*
* --> p1 text
* <-- p2 text
*----------------------------------------------------------------------*
FORM get_wbid .
IF sy-subrc NE 0.
SORT lt_wbitem BY wbid matnr.
ENDIF.
IF sy-subrc EQ 0.
SORT lt_matkl BY matnr.
ENDIF.
CLEAR ls_wbitem.
READ TABLE lt_wbitem INTO ls_wbitem INDEX 1.
CLEAR ls_matkl.
READ TABLE lt_matkl INTO ls_matkl WITH KEY
matnr = ls_wbitem-matnr
BINARY SEARCH .
ENDIF.
ENDIF.
IF sy-subrc EQ 0.
SORT lt_matkl BY matnr.
ENDIF.
CLEAR ls_wbitem.
READ TABLE lt_wsitem INTO ls_wsitem INDEX 1.
CLEAR ls_matkl.
READ TABLE lt_matkl INTO ls_matkl WITH KEY
matnr = ls_wsitem-matnr
BINARY SEARCH .
ENDIF.
ENDIF.
lv_delivery = gv_delivery.
PERFORM refresh_data.
gv_delivery = lv_delivery. " Fill GV_DELIVERY this here because its cleared in
the above PERFORM Refresh_data.
* SELECT vbeln,posnr,matnr,werks,uecha
* FROM lips INTO TABLE @DATA(lt_lips)
* WHERE vbeln = @gv_delivery.
* IF sy-subrc = 0.
*
* PERFORM refresh_data.
*
* READ TABLE lt_lips INTO DATA(ls_lips_1) INDEX 1.
*
**-- To get plant description
* SELECT SINGLE werks, name1 FROM t001w
* INTO @DATA(ls_t001w)
* WHERE werks = @ls_lips_1-werks.
*
* gv_delivery = ls_lips_1-vbeln. " Fill GV_DELIVERY this here because its
cleared in the above PERFORM Refresh_data.
*
* gs_head-werks = ls_lips_1-werks.
* gs_head-pname = ls_t001w-name1.
* gs_head-direction = gc_out.
* gs_head-wtype = gc_so.
* gs_head-budat = sy-datum.
* gs_head-bldat = sy-datum.
*
* IF lt_lips[] IS NOT INITIAL.
* SELECT matnr, maktx FROM makt
* INTO TABLE @DATA(lt_makt)
* FOR ALL ENTRIES IN @lt_lips
* WHERE matnr = @lt_lips-matnr.
* ENDIF.
*
* LOOP AT lt_lips INTO DATA(ls_lips).
* gs_item-delno = ls_lips-vbeln.
* gs_item-posnr = ls_lips-posnr.
* gs_item-matnr = ls_lips-matnr.
* IF ls_lips-uecha IS INITIAL.
* gs_item-batsp = icon_distribute. "Batch Splitup Icon
* ENDIF.
* READ TABLE lt_makt INTO DATA(ls_makt) WITH KEY matnr = ls_lips-matnr.
* IF sy-subrc = 0.
* gs_item-maktx = ls_makt-maktx.
* ENDIF.
*
* APPEND gs_item TO gt_item.
* CLEAR gs_item.
* ENDLOOP.
* SORT gt_item BY delno posnr.
* ENDIF.
*
* IF gt_item[] IS NOT INITIAL.
* PERFORM populate_fcat USING gv_type gv_wbuom.
* ENDIF.
ENDFORM.
*&---------------------------------------------------------------------*
*& Form GET_INFORECORD_PRICE
*&---------------------------------------------------------------------*
* text
*----------------------------------------------------------------------*
* -->P_MATNR text
* -->P_LIFNR text
* -->P_WERKS text
* <--P_PRICE text
*----------------------------------------------------------------------*
FORM get_inforecord_price USING p_matnr TYPE bapieina-material
p_lifnr TYPE bapieina-vendor
p_werks TYPE bapieine-plant
CHANGING p_price
p_info_rec
p_ord_unit.
IF lt_return[] IS INITIAL.
ENDIF.
ENDIF.
ENDFORM.
*&---------------------------------------------------------------------*
*& Form STATUS_9008
*&---------------------------------------------------------------------*
* text
*----------------------------------------------------------------------*
* --> p1 text
* <-- p2 text
*----------------------------------------------------------------------*
FORM status_9008 .
LOOP AT SCREEN.
IF screen-group1 EQ 'WO' AND gv_wo_wb_can IS NOT INITIAL.
screen-active = 1.
ELSEIF screen-group1 EQ 'WO'.
screen-active = 0.
ENDIF.
MODIFY SCREEN.
ENDLOOP.
ENDFORM.
FORM status_9009 .
LOOP AT SCREEN.
ENDFORM.
BEGIN OF lty_vrm_value,
key(40) TYPE c, "Key
text(80) TYPE c, " Key text
END OF lty_vrm_value.
REFRESH lt_domain.
SELECT ddtext " Texts
domvalue_l " Key
FROM dd07t
INTO TABLE lt_domain
WHERE domname = lc_domain
AND ddlanguage = sy-langu
AND as4local = 'A'.
IF sy-subrc EQ 0.
SORT lt_domain BY domvalue_l.
REFRESH lt_value.
LOOP AT lt_domain INTO ls_domain.
ls_value-key = ls_domain-domvalue_l.
ls_value-text = ls_domain-ddtext.
APPEND ls_value TO lt_value.
ENDLOOP.
ENDIF.
t_val[] = lt_value[].
ENDFORM.
* Begin of Ramani N for IRIS Project
FORM create_delivery_wo_po.
IF sy-subrc EQ 0.
LOOP AT lt_item INTO ls_item_tmp WHERE vbeln IS NOT INITIAL.
lv_del = 'X'.
EXIT.
ENDLOOP.
ENDIF.
IF lv_del IS INITIAL.
READ TABLE gt_item INTO ls_item INDEX 1.
IF sy-subrc EQ 0.
lv_kunnr = ls_item-kunnr.
MOVE lv_kunnr TO lv_werks.
CLEAR lv_matnr .
lv_matnr = ls_item-matnr.
ENDIF.
SELECT *
INTO TABLE lt_ekpo
FROM ekpo
WHERE werks = lv_werks AND
loekz = space AND
elikz = space . "#EC CI_NOFIRST
IF sy-subrc EQ 0.
SORT lt_ekpo BY ebeln ebelp matnr.
ENDIF.
lv_werks = gs_head-werks."6145.
SELECT * INTO TABLE lt_ekko FROM ekko
FOR ALL ENTRIES IN lt_ekpo
WHERE ebeln = lt_ekpo-ebeln.
IF sy-subrc EQ 0.
SORT lt_ekpo BY ebeln ebelp.
DELETE lt_ekko WHERE reswk <> lv_werks AND bsart NE 'Z004'.
SORT lt_ekko BY aedat DESCENDING.
ENDIF.
* iris
LOOP AT lt_ekko INTO ls_ekko.
IF sy-subrc EQ 0.
CLEAR lv_ebeln .
lv_ebeln = ls_ekko-ebeln.
EXIT.
ELSE.
CONTINUE.
ENDIF.
ENDLOOP.
* IRIS
* CLEAR LS_EKKO.
* READ TABLE lt_ekko INTO ls_ekko INDEX 1.
* IF sy-subrc = 0.
IF ls_ekko IS NOT INITIAL.
* IRIS
CLEAR ls_ekpo.
READ TABLE lt_ekpo INTO ls_ekpo
WITH KEY
ebeln = ls_ekko-ebeln ebelp = 1
BINARY SEARCH.
IF sy-subrc EQ 0 AND
lv_matnr EQ ls_ekpo-matnr.
* IRIS
IF sy-tabix = 1.
* IF ls_item-pakdt IS NOT INITIAL.
* ls_item-wbqty = ls_item-wbqty - ls_item-pakdt.
* ENDIF.
ls_sto_items-dlv_qty = ls_item-wbqty / 1000.
ls_sto_items-sales_unit = 'MT'.
ELSE.
ls_sto_items-dlv_qty = ls_item-palno1.
ENDIF.
lv_grqty = ls_sto_items-dlv_qty.
lv_uom = ls_sto_items-sales_unit.
ls_sto_items-ref_item = '000002'.
IF ls_item-palno1 IS NOT INITIAL.
ls_sto_items-dlv_qty = ls_item-palno1.
* ELSEIF ls_item-pakdt IS NOT INITIAL.
* ls_sto_items-dlv_qty = ls_item-pakdt.
ENDIF.
SELECT SINGLE mtart meins
INTO (ls_mara-mtart,ls_mara-meins)
FROM mara WHERE matnr EQ ls_ekpo-matnr.
IF ls_mara-mtart = 'VERP'. " Check whether Packaging material
ls_sto_items-sales_unit = ls_mara-meins.
ENDIF.
APPEND ls_sto_items TO lt_sto_items.
ls_item-item = 2.
* ls_item-posnr = 20.
ls_item-matnr = ls_ekpo-matnr.
ls_item-wbuom = ls_mara-meins.
ls_item-wbqty = ls_item-palno1.
ls_item-grqty = ls_item-palno1.
* IF ls_item-palno1 IS INITIAL AND
* ls_item-pakdt IS NOT INITIAL.
* ls_item-wbqty = ls_item-pakdt.
* ls_item-grqty = ls_item-pakdt.
* LS_ITEM-PALNO1 = LS_ITEM-PAKDT.
* ENDIF.
ENDLOOP.
REFRESH gt_item_tmp.
gt_item_tmp[] = gt_item[].
DELETE gt_item WHERE item = '0002'.
ENDIF.
ENDIF.
ENDIF.
ENDIF.
ELSE.
IF ls_item_tmp-vbeln IS NOT INITIAL.
ls_return-type = gc_e.
ls_return-id = '00'.
ls_return-number = 001.
ls_return-message_v1 = 'Delivery document already created ' .
* CONCATENATE 'Item' <fs_pitem>-wbitem
* INTO ls_return-message_v2 SEPARATED BY space.
APPEND ls_return TO lt_return_tmp.
ENDIF.
ENDFORM.
* End of Ramani N for IRIS Project
*&---------------------------------------------------------------------*
*& Form UPDATE_TABLE
*&---------------------------------------------------------------------*
* text
*----------------------------------------------------------------------*
* -->P_PS_HEAD text
* -->P_GT_ITEM_TMP text
* -->P_LS_GM_HRET text
* -->P_ENDIF text
*----------------------------------------------------------------------*
FORM update_table USING ps_head TYPE zgtmm_s_grnhead
pt_item TYPE tt_item.
lt_item_tmp[] = pt_item[].
SORT lt_item_tmp BY matnr.
*Get the record from the WBITEM
SELECT * FROM zgtmmtr_wbitem
INTO TABLE lt_item
WHERE wbid = ps_head-wbid.
IF sy-subrc EQ 0.
SORT lt_item BY wbid item.
ENDIF.
*Get the record from WS table
SELECT * FROM zgtmmtr_wsitem
INTO TABLE lt_wsitem
WHERE wbid = ps_head-wbid.
IF sy-subrc EQ 0.
SORT lt_item BY wbid item.
LOOP AT lt_wsitem ASSIGNING <fs_wsitem>.
CLEAR ls_item.
READ TABLE lt_item_tmp INTO ls_item WITH KEY
matnr = <fs_wsitem>-matnr
BINARY SEARCH.
<fs_wsitem>-vbeln = ls_item-delno.
<fs_wsitem>-posnr = ls_item-posnr.
*Begin of changes by R.Ranjtih For IRIS EPDK9A07HP
IF <fs_wsitem>-ebeln IS INITIAL AND
ls_item-ebeln IS NOT INITIAL.
<fs_wsitem>-ebeln = ls_item-ebeln.
ENDIF.
*End of changes by R.Ranjtih For IRIS EPDK9A07HP
* <fs_wbitem>-pmatno1 = ls_item-pakdt.
* <fs_wbitem>-pmat1 = ls_item-ptyp1.
ENDLOOP.
ENDIF.
ls_param-werks = gs_head-werks.
* Ge the company code.
SELECT SINGLE bwkey
bukrs
FROM t001k INTO ls_t001k
WHERE bwkey = gs_head-werks.
ls_param-bukrs = ls_t001k-bukrs.
*Get the Param
CALL FUNCTION 'ZGTTOOLSFM_PARAM'
EXPORTING
gs_param = ls_param
TABLES
gt_param = lt_param
EXCEPTIONS
import_parameters_empty = 1
nodatafound = 2
OTHERS = 3.
IF sy-subrc = 0.
SORT lt_t027b BY evers.
ENDIF.
ENDIF.
IF <fs_item>-evers = 'PR'.
MESSAGE text-036 TYPE 'E'." DISPLAY LIKE 'E'.
ENDIF.
ENDFORM.
*&---------------------------------------------------------------------*
*& Form CALL_MB90
*&---------------------------------------------------------------------*
* text
*----------------------------------------------------------------------*
* --> p1 text
* <-- p2 text
*----------------------------------------------------------------------*
FORM call_mb90 .