众博供应链帐套用到的数据库修改

【sql代理处理计划处理问题】


(一)采购入库单  表体自定义项6

--更新采购入库单,设置表体自定义项6为财务暂估无税金额,通过设置含税单价*数量然后扣除税额得到--

update rdrecords01
set cDefine27 = (select cast(round( ((rdrecords01.iQuantity*rdrecords01.iOriTaxCost)/((100+rdrecords01.iTaxRate)/100) ) ,2)   as   numeric(20,2)) )
from RdRecord01
where  rdrecords01.ID=RdRecord01.ID and RdRecord01.cHandler is null


(二)采购发票  表头自定义项16

1,步骤一:
--在审核人为空复核人不为空,更新采购发票得表头自定义项16,设置值等于表体自定义项6的合计--

use UFDATA_001_2021
 update PurBillVouch
 set cDefine16 =(select cast(round( (select sum(cdefine27)
  from PurBillVouchs where PurBillVouch.PBVID=PurBillVouchs.PBVID) ,2) as   numeric(20,2)) )
from PurBillVouchs
where PurBillVouch.PBVID=PurBillVouchs.PBVID and PurBillVouch.cVerifier is not null and PurBillVouch.cPBVVerifier is null

2,步骤二
--在审核人为空复核人不为空;更新 采购发票表头自定义项7,设置等于表体无税金额的合计--
update PurBillVouch
 set cDefine7 =
 (select cast(round( (select sum(iMoney)
  from PurBillVouchs where PurBillVouch.PBVID=PurBillVouchs.PBVID) ,2) as   numeric(20,2)) )
from PurBillVouchs
where PurBillVouch.PBVID=PurBillVouchs.PBVID and PurBillVouch.cVerifier is not null and PurBillVouch.cPBVVerifier is null

3,步骤三

----在审核人为空复核人不为空;更新采购发票表头自定义项14,通过比对暂估金额和发票金额差异,给出对应得文字反馈--

update PurBillVouch
 set cDefine14='暂估正常'
 where (cDefine7-cDefine16)<0.1 and (cDefine7-cDefine16)>-0.1 and PurBillVouch.cVerifier is not null and PurBillVouch.cPBVVerifier is null
 
 update PurBillVouch
 set cDefine14='暂估错误'
 where (cDefine7-cDefine16)>0.1 or (cDefine7-cDefine16)<-0.1 and PurBillVouch.cVerifier is not null and PurBillVouch.cPBVVerifier is null

【触发器处理】
1,采购入库单主表
--设置表体自定义项12,当采购入库单审核时,更新子表自定义项12等于审核人--
create trigger [dbo].[rukushenhe003]
on [dbo].[RdRecord01] for update
as
if update (chandler)

update rdrecords01
set cDefine33=rdrecord01.cHandler from rdrecord01 ,inserted
where rdrecord01.id =rdrecords01.ID and inserted.id =rdrecords01.ID


2,采购发票主表
--检测复核人,复核是暂估金额和发票金额差异过大进行提示操作--
ALTER trigger  [dbo].[caigouruku001]
on [dbo].[PurBillVouch]
for update as
if Update(cVerifier) begin
declare @财务暂估汇总 float,
        @复核人 nvarchar(20),
         @发票金额汇总 float;

set @财务暂估汇总=(select 
sum(cdefine27)
 from PurBillVouchs,PurBillVouch,inserted 
  where PurBillVouch.PBVID=PurBillVouchs.PBVID and inserted.PBVID=PurBillVouchs.PBVID );
set @发票金额汇总=(select
         sum(iMoney)
 from PurBillVouchs,PurBillVouch,inserted 
      where PurBillVouch.PBVID=PurBillVouchs.PBVID and inserted.PBVID=PurBillVouchs.PBVID);
set @复核人=(select inserted.cVerifier from  PurBillVouch,inserted 
  where  inserted.PBVID=PurBillVouch.PBVID)
set nocount on

if ISNULL(@复核人,'')=N'null'
begin
set nocount off
return
end

if ISNULL(@复核人,'')=N'张正' or ISNULL(@复核人,'')=N'汪克祥'or ISNULL(@复核人,'')=N'葛美霞'
begin
set nocount off
return
end


if ISNULL(@复核人,'')<>N'null' 
begin
	 if exists (select * from inserted
inner join  PurBillVouchs on inserted.PBVID=PurBillVouchs.PBVID 
and (@财务暂估汇总-@发票金额汇总>0.1 or @财务暂估汇总-@发票金额汇总<-0.1 )
  and inserted.cVerifier<>'张正' and  inserted.cVerifier<> '汪克祥' and inserted.cVerifier<>'葛美霞' )
raiserror('友情提示:暂估金额与发票金额存在差异过大,请查找原因并更正差异!',16,0)
end
set nocount off
end



3,采购发票子表

--在填制采购发票时,更新采购发票表体自定项5等于入库单子表的含税单价,采购发票表体自定项6等于发票数量*表体自定项5计算出来的不含税价,表体自定项12=入库单表体得自定项12--

ALTER trigger [dbo].[rukusee001211]
on [dbo].[PurBillVouchs] for insert,update
not for replication
as
update PurBillVouchs
set cDefine26=rdrecords01.ioritaxcost,PurBillVouchs.cDefine27 = (PurBillVouchs.iPBVQuantity*PurBillVouchs.cDefine26)/((100+PurBillVouchs.iTaxRate)/100),
PurBillVouchs.cDefine33=rdrecords01.cDefine33
 from rdrecords01 inner join PurBillVouchs on  PurBillVouchs.rdsid= rdrecords01.AutoID
and rdrecords01.cInvCode=PurBillVouchs.cInvCode
inner join inserted on PurBillVouchs.rdsid= inserted.RdsId




4,销售出库单
--发货单自动生成的销售出库单自动审核--

ALTER trigger [dbo].[xiaoshouchuku001]
on [dbo].[rdrecord32]
for insert
as
update rdrecord32 set 
chandler=cMaker, dVeriDate=dDate
where chandler is null


5,其他入库单
--上游单据自动生成的其他入库单,自动审核--
ALTER trigger [dbo].[qitaruku001]
on [dbo].[RdRecord08]
for insert
as
update rdrecord08 set 
chandler=cMaker, dVeriDate=dDate
where (chandler is NULL) and (cMaker='周志磊'or cMaker='蒋艳梅'or cMaker='郑媛媛'or cMaker='刘广梅'or cMaker='张黔'or cMaker='王静'or cMaker='潘锦萍')and (cSource='调拨'or cSource='形态转换')

6,其他出库单
--上游单据自动生成的其他出库单,自动审核--
ALTER trigger [dbo].[qitachuku001]
on [dbo].[RdRecord09]
for insert
as
update rdrecord09 set 
chandler=cMaker, dVeriDate=dDate
where (chandler is null) and (cMaker='周志磊'or cMaker='郑媛媛'or cMaker='蒋艳梅'or cMaker='刘广梅'or cMaker='张黔'or cMaker='王静'or cMaker='潘锦萍')and (cSource='调拨'or cSource='形态转换')