CO11N报工确认增强

BADI:WORKORDER_CONFIRM

  METHOD if_ex_workorder_confirm~at_save.

    DATA:lv_jp TYPE zchppt_baofe-baofe.
    DATA:lv_rg TYPE zchppt_baofe-baofe.

    CLEAR:lv_jp,lv_rg.

    IF sy-tcode NE 'CO13'.

      SELECT SINGLE * INTO @DATA(ls_baofe) FROM zchppt_baofe WHERE werks EQ @is_confirmation-werks.

      IF ls_baofe-baofe GT '0'.

        SELECT SINGLE bmsch,vgw02,vgw03 INTO @DATA(ls_afvv) FROM afvv WHERE aufpl EQ @is_confirmation-aufpl AND aplzl EQ @is_confirmation-aplzl.

        IF sy-subrc EQ 0.

          ls_afvv-vgw02 = ( is_confirmation-lmnga / ls_afvv-bmsch ) * ls_afvv-vgw02.

          ls_afvv-vgw03 = ( is_confirmation-lmnga / ls_afvv-bmsch ) * ls_afvv-vgw03.

          lv_jp = ( is_confirmation-ism02 / ls_afvv-vgw02 ) - 1.

          IF lv_jp GT ls_baofe-baofe.

            MESSAGE '实际数据大于标准数据的超额率,请确认是否继续报工'(001) TYPE 'E'.

          ENDIF.

          lv_rg = ( is_confirmation-ism03 / ls_afvv-vgw03 ) - 1.

          IF lv_rg GT ls_baofe-baofe.

            MESSAGE '实际数据大于标准数据的超额率,请确认是否继续报工'(001) TYPE 'E'.

          ENDIF.

        ENDIF.

      ENDIF.

      SELECT SINGLE COUNT(*) FROM zchppt_prorderh WHERE aufnr EQ @is_confirmation-aufnr AND vornr EQ @is_confirmation-vornr.

      IF sy-subrc EQ 0.

        IF is_confirmation-numbe IS INITIAL AND sy-tcode NE 'CO13'.

          MESSAGE '子订单不能为空'(002) TYPE 'E'.

        ENDIF.

      ENDIF.

    ENDIF.

  ENDMETHOD.

 

posted @ 2025-07-01 11:49  艾靑  阅读(23)  评论(0)    收藏  举报