销售系统中使用的存储过程

SET QUOTED_IDENTIFIER OFF
GO
SET ANSI_NULLS ON
GO


-- 销售单据保存前的合法性检查  
-- 处理:主要检查表头项目
-- 应用: 销售Web模块
-- 日期: 2001.5
-- 最后修改: 2001.9
-- 作者:  LG

   ALTER  PROCEDURE [SA_CheckValid]
     @sFlag varchar(10),
     @sVouchCode varchar(10),
     @strCusCode varchar(20),
     @strDepCode varchar(12),
     @strPersonCode varchar(8),
     @strExchName varchar(8),
     @strSTCode   varchar(2),
     @strPayCode  varchar(3),
     @strSCCode   varchar(2)=NULL,
     @strBCode    varchar(3)=NULL,
     @bFlag      Bit,
     @strErr varchar(255) OUTPUT
    
     As
        Declare @strTb varchar(10),
                @iCount  int
        
        SET NOCOUNT ON
       
        if lower(@sFlag)='so'  Set @strTb='订单' 
       
        if lower(@sFlag)='fhd' 
        Begin
             if @bFlag=0 Set @strTb='发货单'
             else Set @strTb='退货单'
        End       
       
        if lower(@sFlag)='wtfhd'
        Begin
             if @bFlag=0 Set @strTb='委托发货单'
             else Set @strTb='委托退货单'
        End    
       
        if lower(@sFlag)='sbv' 
        Begin
             if @bFlag=0 Set @strTb='蓝字发票'
             else Set @strTb='红字发票'
        End
       
        --检查
        if Isnull(@strCusCode,'')<>''
        Begin
              --检查客户
              Set @iCount=(Select Count(*) from Customer where cCusCode=@strCusCode)
              if @iCount=0
              Begin
                    Set @strErr=@strTb +'[' + @sVouchCode +']:' +'客户输入不合法'
                    Return
              End      
        End
       
        If Isnull(@strDepCode,'')<>''
        Begin
              --检查部门
              Set @iCount=(Select Count(*) from Department where cDepCode=@strDepCode)
              if @iCount=0
              Begin
                    Set @strErr=@strTb +'[' + @sVouchCode +']:' +'部门输入不合法'
                    Return
              End      
        End
       
        If IsNULL(@strPersonCode,'')<>''
        Begin
               --检查业务员
              Set @iCount=(Select Count(*) from Person where cPersonCode=@strPersonCode)
              if @iCount=0
              Begin
                    Set @strErr=@strTb +'[' + @sVouchCode +']:' +'业务员输入不合法'
                    Return
              End      
        End
       
        IF ISNULL(@strExchName,'')<>''
        Begin
              --检查币种
              Set @iCount=(Select Count(*) from foreigncurrency where cexch_name=@strExchName)
              if @iCount=0
              Begin
                   Set @strErr=@strTb +'[' + @sVouchCode +']:' +'币种输入不合法'
                   Return
              End      
        End
       
       
        If IsNULL(@strSTCode,'')<>''
        Begin
              --检查销售类型
              Set @iCount=(Select Count(*) from SaleType where cSTCode=@strSTCode)
              if @iCount=0
              Begin
                    Set @strErr=@strTb +'[' + @sVouchCode +']:' +'销售类型输入不合法'
                    Return
              End      
        End
       
        IF Isnull(@strSCCode,'')<>'' and Lower(@sFlag)<>'sbv'
        Begin
               --检查发运方式
              Set @iCount=(Select Count(*) from ShippingChoice where cSCCode=@strSCCode)
              if @iCount=0
              Begin
                    Set @strErr=@strTb +'[' + @sVouchCode +']:' +'发运方式输入不合法'
                    Return
              End      
        End

        IF IsNULL(@strPayCode,'')<>''
        Begin
               --检查付款条件
               Set @iCount=(Select Count(*) from PayCondition where cPayCode=@strPayCode)
               if @iCount=0
               Begin
                     Set @strErr=@strTb +'[' + @sVouchCode +']:' +'付款条件输入不合法'
                     Return
               End      
        End 
       
        -- 2001.06.20:检查开户银行
        IF IsNULL(@strBCode,'')<>'' and Lower(@sFlag)='sbv'
        Begin
               Set @iCount=(Select Count(*) from Bank where cBCode=@strBCode)
               if @iCount=0
               Begin
                     Set @strErr=@strTb +'[' + @sVouchCode +']:' +'开户银行输入不合法'
                     Return
               End
              
               -- 2001.09.06: 检查开户银行是否暂封
               Declare @bBankFlag Bit
               Set @bBankFlag=(select bBFlag from Bank where cBCode=@strBCode)
               if @bBankFlag=1    
               Begin
                     Set @strErr=@strTb +'[' + @sVouchCode +']:' +'开户银行已被封存,不能使用'
                     Return
               End
        End

GO
SET QUOTED_IDENTIFIER OFF
GO
SET ANSI_NULLS ON
GO

 

  • 0
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值