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