*Elven 20070108 add Check Partno and Batch management indicator
* SELECT SINGLE MATNR XCHAR INTO (ZCM04WA-MATNR, LBATCH)
* Echo 20090805 change check point from XCHAR to XCHPF
SELECT SINGLE MATNR XCHPF INTO (ZCM04WA-MATNR, LBATCH)
FROM MARC
WHERE MATNR = ZCM04WA-MATNR
AND WERKS = ZCM04WA-WERKS .
IF SY-SUBRC <> 0 .
MESSAGE E000 WITH 'Material:' ZCM04WA-MATNR
ZCM04WA-WERKS ' is not correct!'.
ELSE.
*Echo 20090806 add check valuation type.bn
IF L_VALUE2 <> '' ."NO VALUATION.KELLY 100608
ELSE.
SELECT * FROM MBEW
WHERE MATNR = ZCM04WA-MATNR
AND BWKEY = ZCM04WA-WERKS
AND BWTAR = ZCM04WA-CHARG.
ENDSELECT.
IF SY-SUBRC <> 0.
IF LBATCH NE 'X' AND ZCM04WA-CHARG NE SPACE.
MESSAGE E000 WITH 'Material:' ZCM04WA-MATNR
ZCM04WA-WERKS ' have no Batch management'.
ELSEIF LBATCH EQ 'X' AND ZCM04WA-CHARG EQ SPACE.
MESSAGE E000 WITH 'Material:' ZCM04WA-MATNR
ZCM04WA-WERKS ' have Batch management'.
ENDIF.
ENDIF.
ENDIF."KELLY ADD BY 100608 NO VALUATION.
*Echo 20090806 add check valuation type.en
ENDIF.
*Elven 20070108 add Check Partno and Batch management indicator
*---added by liuchun to Available Qty check for Transfer Order
*---AND MISC ISSUE
IF '4' CS ZCM03-DOCTYPE.
CLEAR: L_RESERVEQTY, L_VAILDQTY, L_AVAILQTY.
*Mark by Candy Hsueh 2010.02.20
* select sum( zcm04~erfmg ) into l_reserveqty
* from zcm04
* inner join zcm03 on zcm03~docnumber eq zcm04~docnumber
**Ting 090715 begin
** WHERE ZCM03~DOCTYPE IN ('4', '5', '8', 'B') Echo 091112.mark
* where zcm03~doctype in ('4', '5', '8', 'B', 'E')
**Ting 090715 end
* and zcm03~mblnr eq ''
* and zcm03~docstas eq '0'
* and zcm04~matnr eq zcm04tab-matnr
* and zcm04~werks eq zcm04tab-werks
* and zcm04~lgort eq zcm04tab-lgort
* and zcm04~charg eq zcm04tab-charg
* and zcm04~markdeletion ne 'X'
* and zcm03~docnumber <> zcm03-docnumber
* and zcm04~werks <> zcm04~umwrk.
* End Mark by Candy Hsueh 2010.02.20
* add by candy 2010.02.20 for performance
SELECT SUM( ZCM04~ERFMG ) INTO L_RESERVEQTY
FROM ZCM04
INNER JOIN ZCM03 ON ZCM04~DOCNUMBER = ZCM03~DOCNUMBER
AND ZCM04~DOCYEAR = ZCM03~DOCYEAR
WHERE ZCM03~DOCSTAS = '0'
AND ZCM03~DOCTYPE IN ('4', '5', '8', 'B', 'E')
AND ZCM04~MATNR = ZCM04TAB-MATNR
AND ZCM04~WERKS = ZCM04TAB-WERKS
AND ZCM04~LGORT EQ ZCM04TAB-LGORT
AND ZCM04~CHARG EQ ZCM04TAB-CHARG
AND ZCM04~MARKDELETION NE 'X'
AND ZCM03~DOCNUMBER NE ZCM03-DOCNUMBER
AND ZCM04~WERKS <> ZCM04~UMWRK.
* end add by candy
IF LBATCH EQ 'X'.
SELECT SUM( MCHB~CLABS ) INTO L_VAILDQTY
FROM MCHB
WHERE MCHB~MATNR EQ ZCM04TAB-MATNR
AND MCHB~WERKS EQ ZCM04TAB-WERKS
AND MCHB~LGORT EQ ZCM04TAB-LGORT
AND MCHB~CHARG EQ ZCM04TAB-CHARG.
ELSE.
SELECT SUM( MARD~LABST ) INTO L_VAILDQTY
FROM MARD
WHERE MARD~MATNR EQ ZCM04TAB-MATNR
AND MARD~WERKS EQ ZCM04TAB-WERKS
AND MARD~LGORT EQ ZCM04TAB-LGORT.
ENDIF.
L_AVAILQTY = L_VAILDQTY - L_RESERVEQTY.
IF L_AVAILQTY < ZCM04TAB-ERFMG AND ZCM04TAB-WERKS CS 'TW'
.
MESSAGE E000 WITH 'The available qty is less than '
ZCM04TAB-ERFMG ZCM04TAB-MATNR
ZCM04TAB-CHARG.
ENDIF.
ENDIF.
*Ting--------------------091109
* IF ZCM03-DOCTYPE = '5' OR ZCM03-DOCTYPE = '6'.
CLEAR L_BUKRS.
CLEAR M_BUKRS.
IF NOT ZCM03-KOSTL IS INITIAL.
SELECT SINGLE BUKRS INTO L_BUKRS FROM T001K
WHERE BWKEY = ZCM04TAB-WERKS.
SELECT SINGLE BUKRS INTO M_BUKRS FROM CSKS
WHERE KOSTL = ZCM03-KOSTL AND BUKRS = L_BUKRS.
IF SY-SUBRC <> 0.
MESSAGE E000 WITH 'The plant' ZCM04TAB-WERKS
'is not match with cost center!'.
ENDIF.
ENDIF.
* ENDIF.
*Ting-------------------091109
来自 “ ITPUB博客 ” ,链接:http://blog.itpub.net/14397246/viewspace-666161/,如需转载,请注明出处,否则将追究法律责任。
转载于:http://blog.itpub.net/14397246/viewspace-666161/