CLASS zbadi_mmim_check_matdoc_item DEFINITION PUBLIC FINAL CREATE PUBLIC . PUBLIC SECTION. INTERFACES if_badi_interface . INTERFACES if_badi_mmim_check_matdoc_item . PROTECTED SECTION. PRIVATE SECTION. ENDCLASS. CLASS ZBADI_MMIM_CHECK_MATDOC_ITEM IMPLEMENTATION. METHOD if_badi_mmim_check_matdoc_item~check_item. ********************************************************************** *FS-FICO-REP002 标准成本为零控制检查增强 ********************************************************************** * IF sy-uname = 'CB9980000041' OR sy-uname = 'CB9980000004' OR sy-uname = 'CB9980000015' OR sy-uname = 'CB9980000013' OR sy-uname = 'CB9980000011'. IF item_matdoc-manufacturingorder IS NOT INITIAL. DATA: ls_message TYPE mmpur_s_messages. SELECT SINGLE product FROM zcv_gm_cb WHERE product EQ @item_matdoc-material AND CompanyCode EQ @item_matdoc-plant AND PriceDeterminationControl EQ '3' AND InventoryValuationProcedure EQ 'S' AND StandardPrice NE 0 INTO @DATA(lv_prod). IF sy-subrc NE 0. ls_message-messageid = 'DUMY'. ls_message-messagetype = 'E'. ls_message-messagenumber = '001'. ls_message-messagevariable1 = '请发布产品或半成品标准价格!'. * ls_message-messagevariable1 = '行' && item_matdoc-MaterialDocumentItem && '请发布产品或半成品标准价格!'. APPEND ls_message TO messages. CLEAR ls_message. ENDIF. ENDIF. * TYPES: BEGIN OF ty_pvb, * product TYPE I_ProductValuationBasic-Product, * PriceDeterminationControl TYPE I_ProductValuationBasic-PriceDeterminationControl, * InventoryValuationProcedure TYPE I_ProductValuationBasic-InventoryValuationProcedure, * StandardPrice TYPE I_ProductValuationBasic-StandardPrice, * END OF ty_pvb. * DATA: * lv_Material TYPE I_ProductValuationBasic-Product, * lv_Plant TYPE werks_d. * DATA: * lt_pvb TYPE STANDARD TABLE OF ty_pvb . * lv_material = item_matdoc-material. "物料编号 * lv_plant = item_matdoc-plant. "工厂 * SELECT SINGLE * a~product, * a~PriceDeterminationControl, * a~InventoryValuationProcedure, * a~StandardPrice, * b~InventorySpecialStockType * FROM I_ProductValuationBasic AS a * JOIN i_materialdocumentitem_2 AS b ON b~material = a~Product * WHERE product = @lv_material * AND plant = @lv_plant * INTO @DATA(ls_pvb). * IF ls_pvb-PriceDeterminationControl EQ '3' * AND ls_pvb-InventoryValuationProcedure EQ 'S' * AND ls_pvb-StandardPrice NE 0 * AND ls_pvb-InventorySpecialStockType NE 'M'. * ELSE. * ENDIF. ENDMETHOD. ENDCLASS.