zoukankan      html  css  js  c++  java
  • ABAP-供应商主数据创建(检查输入的有效性)

    FUNCTION zmm_fm_21_05.
    *"----------------------------------------------------------------------
    *"*"本地接口:
    *"  IMPORTING
    *"     VALUE(IN) TYPE  ZSLIFNR_SRM
    *"  EXPORTING
    *"     VALUE(OUT) TYPE  ZSLIFNR_SRM
    *"----------------------------------------------------------------------
      CONSTANTS : gc_black  TYPE char04 VALUE '@EB@',
                  gc_red    TYPE char04 VALUE '@0A@',
                  gc_green  TYPE char04 VALUE '@08@',
                  gc_yellow TYPE char04 VALUE '@09@'.
      DATA: lv_msg    TYPE string,
            ls_bnka   TYPE bnka,
            ls_lfa1   TYPE lfa1,
            ls_but000 TYPE but000,
            ls_lfb1   TYPE lfb1,
            ls_lfm1   TYPE lfm1.
      DATA:lv_partner TYPE but000-partner,
           lv_lifnr   TYPE lfa1-lifnr.
      CLEAR lv_msg.

      CALL FUNCTION 'CONVERSION_EXIT_ALPHA_INPUT'
        EXPORTING
          input  in-partner
        IMPORTING
          output in-partner.

      IF in-bu_group IS INITIAL.
        lv_msg = lv_msg && '/' && '账户组必填'.
      ENDIF.

      IF in-partner IS INITIAL.
        lv_msg = lv_msg && '/' && '供应商编码必填'.
      ENDIF.
      IF in-title_key IS INITIAL.
        lv_msg = lv_msg && '/' && '关键字必填'.
      ENDIF.

      IF in-name_org1 IS INITIAL.
        lv_msg = lv_msg && '/' && '供应商名称1必填'.
      ELSE.
    *      SELECT SINGLE * FROM lfa1 INTO ls_lfa1
    *       WHERE lifnr EQ in-partner.
        SELECT SINGLE * FROM but000 INTO ls_but000
         WHERE partner EQ in-partner.
        IF sy-subrc EQ 0.
          lv_msg = lv_msg && '/' && '供应商基本视图已存在' && in-name_org1.
          in-lfa1f 'X'.
        ELSE.
    *        IF in-bu_group IN r_bu_group.
          "基本视图
          IF in-bu_sort1 IS INITIAL.
            lv_msg = lv_msg && '/' && '检索项必填'.
          ENDIF.

          IF in-land1 IS INITIAL.
            lv_msg = lv_msg && '/' && '国家必填'.
          ENDIF.

          IF in-regio IS INITIAL .
            lv_msg = lv_msg && '/' && '地区(省)必填'.
          ENDIF.

          IF in-city1 IS INITIAL .
            lv_msg = lv_msg && '/' && '城市必填'.
          ENDIF.

          IF in-street  IS INITIAL.
            lv_msg = lv_msg && '/' && '街道必填'.
          ENDIF.
          IF in-post_code1  IS INITIAL.
            lv_msg = lv_msg && '/' && '邮编必填'.
          ENDIF.
    *        IF in-taxnum IS INITIAL .
    *          lv_msg = lv_msg && '/' && '税号必填'.
    *        ENDIF.
    *        ENDIF.

        ENDIF.
      ENDIF.

      IF NOT in-lfa1f IS INITIAL.
        IF NOT in-caigou-ekorg IS INITIAL .
          SELECT SINGLE * FROM lfm1 INTO ls_lfm1
           WHERE lifnr EQ in-partner
             AND ekorg EQ in-caigou-ekorg.
          IF sy-subrc EQ 0.
            lv_msg = lv_msg && '/' && '供应商采购组织视图已存在'.
            in-lfm1f 'X'.
          ENDIF.
        ENDIF.
        IF in-gongsi-bukrs IS NOT INITIAL.
          SELECT SINGLE * FROM lfb1 INTO ls_lfb1
           WHERE lifnr EQ in-partner
             AND bukrs EQ in-gongsi-bukrs.
          IF sy-subrc EQ 0.
            lv_msg = lv_msg && '/' && '供应商公司视图已存在' .
            in-lfb1f 'X'.
          ENDIF.
        ENDIF.
      ENDIF.

    *    IF in-bankl IS NOT INITIAL.
    *      SELECT SINGLE * FROM bnka INTO ls_bnka
    *       WHERE banks EQ in-banks
    *         AND bankl EQ in-bankl.
    *      IF sy-subrc NE 0.
    *        lv_msg = lv_msg && '/' && '银行代码不存在'.
    *      ENDIF.
    *    ENDIF.

      IF in-lfm1f IS INITIAL AND in-caigou-ekorg IS NOT INITIAL.
        IF in-caigou-ekorg IS INITIAL.
          lv_msg = lv_msg && '/' && '采购组织必填'.
        ENDIF.
        IF in-caigou-waers IS INITIAL.
          lv_msg = lv_msg && '/' && '货币必填'.
        ENDIF.
    *      IF in-zterm1 IS INITIAL.
    *        lv_msg = lv_msg && '/' && '销售付款条件必填'.
    *      ENDIF.
        IF in-caigou-webre IS INITIAL.
          lv_msg = lv_msg && '/' && '基于收货的发票校验必填'.
        ENDIF.
        IF in-caigou-lebre IS INITIAL.
          lv_msg = lv_msg && '/' && '基于服务的发票校验必填'.
        ENDIF.

    *      IF in-kalsk IS INITIAL.
    *        lv_msg = lv_msg && '/' && '方案组供应商必填'.
    *      ENDIF.
    *      IF in-verkf IS INITIAL.
    *        lv_msg = lv_msg && '/' && '销售人员必填'.
    *      ENDIF.
    *      IF in-telf1 IS INITIAL.
    *        lv_msg = lv_msg && '/' && '销售人员电话必填'.
    *      ENDIF.

      ENDIF.

      IF in-lfb1f IS INITIAL AND in-gongsi-bukrs IS NOT INITIAL.
        IF in-gongsi-bukrs IS INITIAL.
          lv_msg = lv_msg && '/' && '公司代码必填'.
        ENDIF.
        IF in-gongsi-akont IS INITIAL.
          lv_msg = lv_msg && '/' && '统驭科目必填'.
        ENDIF.
    *      IF in-zterm2 IS INITIAL.
    *        lv_msg = lv_msg && '/' && '财务付款条件必填'.
    *      ENDIF.
    *      IF in-zuawa IS INITIAL.
    *        lv_msg = lv_msg && '/' && '排序码必填'.
    *      ENDIF.
    *      IF in-dzwels IS INITIAL.
    *        lv_msg = lv_msg && '/' && '付款方式必填'.
    *      ENDIF.
    *      IF in-hbkid IS INITIAL.
    *        lv_msg = lv_msg && '/' && '开户银行必填'.
    *      ENDIF.
        IF in-gongsi-reprf IS INITIAL.
          lv_msg = lv_msg && '/' && '检查重复发票必填'.
        ENDIF.
    *      IF in-fdgrv IS INITIAL.
    *        lv_msg = lv_msg && '/' && '计划组必填'.
    *      ENDIF.

      ENDIF.

      IF NOT lv_msg IS INITIAL.
        IF in-lfa1f IS INITIAL AND in-lfm1f IS INITIAL AND in-lfb1f IS INITIAL.
          in-icon_a = gc_red.
        ELSE.
          in-icon_a = gc_yellow.
        ENDIF.
        in-remark  = lv_msg.
      ENDIF.

    * 检查税号是否已经存在
      SELECT SINGLE but000~partner FROM but000         INNER 
    JOIN dfkkbptaxnum ON but000~partner = dfkkbptaxnum~partner INTO lv_partner       
    WHERE but000~name_org1 <> in-name_org1 AND dfkkbptaxnum~taxnum in-taxnum.   
    IF sy-subrc 0." AND in-bu_group IN r_bu_group.     
    in-icon_a = gc_red.     
    in-remark   in-remark && '/' && '税号与其他供应商税号重复!'.   
    ENDIF.
    *检查名称是否已经重复   
    SELECT SINGLE lifnr FROM lfa1 INTO lv_lifnr       
    WHERE name1 <> in-name_org1 AND lifnr in-partner.   
    IF sy-subrc EQ 0." AND in-bu_group IN r_bu_group.     
    in-icon_a = gc_red.     
    in-remark   in-remark && '/' && '供应商编号与其他供应商编号重复!'.   
    ENDIF.   out 

    in.


    ENDFUNCTION.

  • 相关阅读:
    第一天
    python自测——其他内容
    python自测——正则表达式
    python自测——高级特性
    人机对战石头剪刀布代码
    [Usaco2004 Nov]Til the Cows Come Home 带奶牛回家
    Dijkstra概念
    洛谷p1339--热浪
    0-1背包问题变形------------cow exhibition
    [Poi2005]Piggy Banks小猪存钱罐
  • 原文地址:https://www.cnblogs.com/eagle-dtq/p/12848637.html
Copyright © 2011-2022 走看看