LM61YF0I
FORM planning_segment_close.
"""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""$"$\SE:(1) Form PLANNING_SEGMENT_CLOSE, Start A
*$*$-Start: (1)---------------------------------------------------------------------------------$*$*
ENHANCEMENT 1 ZMD_MOQ. "active version
DATA: old_mdkp LIKE mdkp.
DATA: zz_mdps LIKE TABLE OF mdpsx WITH HEADER LINE.
DATA: zz_afko LIKE TABLE OF afko WITH HEADER LINE.
DATA: zz_plaf LIKE TABLE OF plaf WITH HEADER LINE.
DATA: zz_mvke LIKE TABLE OF mvke WITH HEADER LINE.
DATA: zz_clear_moq.
old_mdkp = mdkp.
REFRESH: zz_mdps,zz_afko,zz_plaf.
LOOP AT mdpsx INTO zz_mdps WHERE plaab = af61y-plaab
AND planr = af61y-planr.
IF zz_mdps-delkz = 'AR' OR zz_mdps-delkz = 'SB'.
APPEND zz_mdps.
ENDIF.
IF zz_mdps-delkz = 'AR'.
SELECT SINGLE lead_aufnr INTO zz_afko-aufnr
FROM afko
WHERE aufnr = zz_mdps-del12.
COLLECT zz_afko.
ENDIF.
IF zz_mdps-delkz = 'SB'.
zz_plaf-plnum = zz_mdps-aufvr.
CALL FUNCTION 'ZGET_LEADING_PL'
EXPORTING
p_plnum = zz_plaf-plnum
IMPORTING
lead_plnum = zz_plaf-plnum.
COLLECT zz_plaf.
ENDIF.
ENDLOOP.
CLEAR zz_clear_moq.
REFRESH zz_mvke.
IF zz_afko[] IS NOT INITIAL.
SELECT DISTINCT matnr APPENDING CORRESPONDING FIELDS OF TABLE zz_mvke
FROM afpo
FOR ALL ENTRIES IN zz_afko
WHERE aufnr = zz_afko-aufnr.
ENDIF.
IF zz_plaf[] IS NOT INITIAL.
SELECT DISTINCT matnr APPENDING CORRESPONDING FIELDS OF TABLE zz_mvke
FROM plaf
FOR ALL ENTRIES IN zz_plaf
WHERE plnum = zz_plaf-plnum.
ENDIF.
SORT zz_mvke BY matnr.
DELETE ADJACENT DUPLICATES FROM zz_mvke COMPARING matnr.
LOOP AT zz_mvke.
IF zz_mvke-matnr(2) NE '80'.
DELETE zz_mvke.
CONTINUE.
ENDIF.
zz_clear_moq = 'Y'.
SELECT SINGLE matnr INTO zz_mvke-matnr
FROM mvke
WHERE matnr = zz_mvke-matnr
AND prat1 = ' '.
IF sy-subrc = 0.
zz_clear_moq = 'N'.
EXIT.
ENDIF.
ENDLOOP.
READ TABLE zz_mdps INDEX 1.
IF zz_mdps-delkz = 'PB'. "Project stock
ELSE.
ENDIF.
IF zz_clear_moq = 'Y'.
CLEAR: mdkp-bstmi,mdkp-bstrf.
ENDIF.
IF af61y-verfr EQ dumplan.
mdkp = old_mdkp.
ENDIF.
ENDENHANCEMENT.
FUNCTION ZGET_LEADING_PL.
*"----------------------------------------------------------------------
*"*"Local Interface:
*" IMPORTING
*" REFERENCE(P_PLNUM) LIKE PLAF-PLNUM
*" EXPORTING
*" REFERENCE(LEAD_PLNUM) LIKE PLAF-PLNUM
*"----------------------------------------------------------------------
CLEAR rf61o.
SELECT SINGLE *
FROM plaf
WHERE plnum = p_plnum.
u_arsnr = plaf-arsnr.
u_arsps = plaf-arsps.
u_plscn = plaf-plscn.
MOVE plaf-plnum TO l_pln02.
*--> Direktfertigung pruefen
PERFORM read_resb_plnum USING u_arsnr
u_arsps
l_pln02
u_plscn "TL 46B
CHANGING l_plnum
l_aufnr
l_rcode.
*--> Ergebnis pruefen
CHECK l_rcode EQ 0.
IF NOT l_aufnr IS INITIAL
AND l_plnum IS INITIAL.
EXIT.
ENDIF.
*--> gefundenen Plaf merken
MOVE l_plnum TO rf61o-kopln.
MOVE l_plnum TO rf61o-uepln.
MOVE u_arsnr TO l_arsnr.
MOVE u_arsps TO l_arsps.
*--> Suchen nach Kopf des Auftragsnetzes
DO.
PERFORM read_plaf_arsnr USING l_plnum
l_pln02
CHANGING l_arsnr
l_arsps
l_rcode.
*--> Ergebnis pruefen
IF l_rcode NE 0.
EXIT.
ENDIF.
*--> Suche abbrechen: Kopfplaf gefunden
IF l_arsnr IS INITIAL.
EXIT.
ENDIF.
*--> gefundenen Direktfertigungsplaf merken
MOVE l_plnum TO l_pln02.
*--> Bedarf des gefundenen Direktfertigungsplafs lesen
PERFORM read_resb_plnum USING l_arsnr
l_arsps
l_pln02
u_plscn "TL 46B
CHANGING l_plnum
l_aufnr
l_rcode.
*--> Ergebnis pruefen
IF l_rcode NE 0.
EXIT.
ENDIF.
IF NOT l_aufnr IS INITIAL
AND l_plnum IS INITIAL.
EXIT.
ENDIF.
MOVE l_plnum TO rf61o-kopln.
ENDDO.
IF rf61o-kopln IS NOT INITIAL.
lead_plnum = rf61o-kopln.
ENDIF.
ENDFUNCTION.
ENHANCEMENT 2 ZMD_MOQ. "active version
mdkp = old_mdkp.
ENDENHANCEMENT.
*$*$-End: (2)---------------------------------------------------------------------------------$*$*
ENDFORM.