PO创建出口检查

po针对行项目检查有两个出口:
出口一:
示例代码
 
ME_PROCESS_PO_CUST~IF_EX_ME_PROCESS_PO_CUST~CHECK
  SPAN { font-family: "Courier New"; font-size: 10pt; color: #000000; background: #FFFFFF; } .L1S31 { font-style. italic; color: #808080; } *include MM_MESSAGES_MAC.
*  DATA: header TYPE mepoheader,
*items TYPE purchase_order_items,
*line_item TYPE purchase_order_item,
*po_line TYPE mepoitem,
*po_condition type mmpur_tkomv,
*wa_im_komv TYPE komv,
*eipo_line type MEPO_EIPO. "Foreign Trade: Export/Import: Item Data
*
*DATA:LW_A992 TYPE A992.
*
*data:l_flag(1)."是否能手工创建采购订单标志,只是限制ZPO1,ZPO2的订单类型
*
*  header = im_header->get_data( ).
*
*   items = im_header->get_items( ).
*  CLEAR:l_flag.
*  BREAK-POINT.
*  LOOP AT items INTO line_item.
*
*     po_line = line_item-item->get_data( ).
*
*    IF PO_LINE-BANFN = ''.
*     l_flag = 'X'.
*    ENDIF.
**    CALL METHOD line_item-item->get_conditions
**      IMPORTING
**         ex_conditions = po_condition.
***    IF header-INCO1 <> '100'.
**      BREAK-POINT.
**      loop at po_condition into wa_im_komv.
***        IF wa_im_komv-KSCHL = 'ZFR1' AND wa_im_komv-LIFNR = header-LIFNR.
***           mmpur_message 'W' 'ZMSG' '003' wa_im_komv-KPOSN '' '' ''.
***        ENDIF.
***        clear wa_im_komv.
**
**
**      endloop.
**    endif.
*
*    SELECT SINGLE *
*      INTO LW_A992
*      FROM A992
*     WHERE ZZLGORT = PO_LINE-LGORT
*       AND MATNR   = PO_LINE-MATNR.
*    IF SY-SUBRC <> 0.
*      MESSAGE '请维护该物料的采购信息记录' type  'E'.
*    ENDIF.
*
*  endloop.
*
**IF ( header-BSART = 'ZPO1' OR header-BSART = 'ZPO2' ) AND l_flag = 'X' and sy-TCODE = 'ME21N'.
**     mmpur_message 'E' 'ZMSG' '004' '' '' '' ''.
**ENDIF.
 
出口2
ME_PROCESS_PO_CUST~IF_EX_ME_PROCESS_PO_CUST~PROCESS_ITEM
 
  SPAN { font-family: "Courier New"; font-size: 10pt; color: #000000; background: #FFFFFF; } .L1S31 { font-style. italic; color: #808080; } .L1S32 { color: #3399FF; } .L1S33 { color: #4DA619; } .L1S52 { color: #0000FF; } method if_ex_me_process_po_cust~process_item.
   include mm_messages_mac.

   data:wa_mara  type mara.
   data : re_header  type mepoheader.
   data:l_item  type mepoitem.
   data: l_header  type  ref  to if_purchase_order_mm. "采购订单抬头

   data:lw_flag1.
   data:lw_flag2.

   data:lw_str  type string.

  l_header = im_item->get_header( ).
  re_header = l_header->get_data( ). "获取头信息

  l_item =   im_item->get_data( ).

   check re_header-kalsm =  'ZRM002'.

** 针对关税必须维护采购信息记录
   data:lw_a992  type a992.

   select  single *
     into lw_a992
     from a992
    where  kschl   =  'ZGS1'           "关税
       and zzlgort = l_item-lgort
      and matnr   = l_item-matnr.

**  如果没有找到相应的记录,则报错

   if sy-subrc <>  0.

    lw_flag1 =  '1'.
*    message '请维护该物料的关税的采购信息记录' type  'E'.

   endif.

** 针对消费税,整车必须维护消费税信息记录,部品不需要

**取物料的产品类型
   data:lw_mtart  type mara-mtart.
   select  single mtart  into lw_mtart
     from mara
     where matnr = l_item-matnr.


   if lw_mtart =  'ZCAR'.   "整车

     select  single *
       into lw_a992
       from a992
      where  kschl   =  'ZXFS'           "消费税
         and zzlgort = l_item-lgort
        and matnr   = l_item-matnr.

**  如果没有找到相应的记录,则报错

     if sy-subrc <>  0.

*      message '请维护该物料的消费税的采购信息记录' type  'E'.

      lw_flag2 =  '1'.

     endif.

   endif.

   if lw_flag1 =  '1'  and lw_flag2 =  '1'.

     concatenate  '请维护物料'
                 l_item-matnr
                  '的关税和消费税'
            into lw_str.
   elseif lw_flag1 =  '1'  and lw_flag2 =  ''.

     concatenate  '请维护物料'
                 l_item-matnr
                  '的关税'
            into lw_str.
   elseif lw_flag1 =  ''  and lw_flag2 =  '1'.
     concatenate  '请维护物料'
                 l_item-matnr
                  '消费税'
            into lw_str.
   else.

   endif.

   clear:lw_flag1,lw_flag2,lw_mtart.

   message lw_str  type  'E'.

endmethod.

来自 “ ITPUB博客 ” ,链接:http://blog.itpub.net/10350860/viewspace-682922/,如需转载,请注明出处,否则将追究法律责任。

转载于:http://blog.itpub.net/10350860/viewspace-682922/

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值