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

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

 

销售订单数据库管理系统 1、某销售商的订单系统需要如下信息: (1)每个供应商包含供应商编号、名称、地址、联系电话等信息。 (2)每种产品包含产品号、产品名称、单价,库存数等信息。 (3)每个供应商可供应多种产品,每种产品可由多个供应商供应。 (4)客户包含编号、姓名、通信地址、电话等信息。 2、其业务规则描述如下: (1)一个客户可下多个订单,每个订单只能由一个客户下。客户下单时有下单时间。 (2)一个订单由订单号,订单状态,订单总价和多个订单细节组成。 (3)每个订单细节对应一个产品描述。订单细节由细节编号,订购数量,金额等组成。 3、系统功能基本要求: A.使用存储过程完成以下查询统计 (1)按照一定条件查询商品基本信息,比如商品名称、价格范围等信息。 (2)根据客户姓名统计每个客户的订单总额。 B.定义一些视图 (1)按销量展示所有商品。 (2)显示订单量最多的客户或者产品。 C.使用存储过程和触发器模拟完成一个订单交易 订单交易主要包括客户注册,登录,查询商品(非注册用户和注册用户均可),订购商品(注意订购商品只面向注册用户,订购的过程中需对商品库存进行判断,注意订购后商品库存的变化,订单总额的计算),支付,取消订单等全过程。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值