You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

106 lines
5.7 KiB

This file contains ambiguous Unicode characters!

This file contains ambiguous Unicode characters that may be confused with others in your current locale. If your use case is intentional and legitimate, you can safely ignore this warning. Use the Escape button to highlight these characters.

if exists(select * from sysobjects where name='p_rz_oq' and xtype='p')
drop procedure p_rz_oq
go
create procedure p_rz_oq
(
@psorgcode varchar(10),
@psbillno varchar(20),
@psparams varchar(200),
@psmsg varchar(2000) out
)
as
begin
declare @sorgcode varchar(10)
declare @squotetype varchar(1)
declare @scontrno varchar(40)
declare @ssupcode varchar(15)
declare @scurver varchar(1)
declare @scurdate varchar(10)
declare @scurtime varchar(8)
declare @susercode varchar(6)
declare @susername varchar(10)
declare @sstationid varchar(15)
declare @soptcontent varchar(100)
declare @ilen int
declare @iindex int
declare @stmp varchar(100)
select @susername=substring(@stmp,1,@iindex-1),@sstationid=substring(@stmp,@iindex+1,@ilen)
select @sorgcode=orgcode,@squotetype=quotetype,@scontrno=isnull(contrno,''),@ssupcode=supcode from t_orderquote_head where billno=@psbillno
select @scurdate=convert(varchar(100),getdate(),23),@scurtime=convert(varchar(100),getdate(),108)
if @squotetype='0'
begin
update a set a.jtaxrate=src.jtaxrate,
a.jprice=src.jprice,
a.netjprice=src.netjprice,
a.billno=src.billno,
a.usercode=src.usercode,
a.username=src.username,
a.rzdate=src.rzdate,
a.rztime=src.rztime,
a.dsccode=src.dsccode,
a.remark=src.remark
from t_order_quote a,
(select f.billno,s.orgcode,f.quotetype,f.supcode,f.supname,f.contrno,isnull(f.bgndate,'') bgndate,isnull(f.enddate,'') enddate,
d.plucode,d.pluname,d.barcode,d.spec,d.cargono,d.unit,d.jtaxrate,s.jprice,s.netjprice,f.usercode,f.username,f.rzdate,f.rztime,f.dsccode,d.remark
from t_orderquote_head f,t_orderquote_body d,t_orderquote_org s
where f.billno=d.billno and d.plucode=s.plucode and d.billno=s.billno and f.billno=@psbillno)src
where a.orgcode=src.orgcode and a.quotetype=src.quotetype and a.supcode=src.supcode and a.contrno=src.contrno and a.plucode=src.plucode
if @@error <> 0
begin
set @psmsg='<EFBFBD><EFBFBD><EFBFBD>¼۸<EFBFBD>ʧ<EFBFBD><EFBFBD>'
return(-1)
end
insert into t_order_quote(billno,orgcode,quotetype,supcode,supname,contrno,bgndate,enddate,plucode,pluname,barcode,spec,cargono,unit,jtaxrate,jprice,netjprice,usercode,username,rzdate,rztime,dsccode,remark)
select f.billno,s.orgcode,f.quotetype,f.supcode,f.supname,f.contrno,isnull(f.bgndate,''),isnull(f.enddate,'') ,
d.plucode,d.pluname,d.barcode,d.spec,d.cargono,d.unit,d.jtaxrate,s.jprice,s.netjprice,f.usercode,f.username,f.rzdate,f.rztime,f.dsccode,d.remark
from t_orderquote_head f,t_orderquote_body d,t_orderquote_org s
where f.billno=d.billno and d.plucode=s.plucode and d.billno=s.billno and f.billno=@psbillno
and not exists(select 1 from t_order_quote where orgcode=s.orgcode and quotetype=f.quotetype and supcode=f.supcode and contrno=f.contrno and plucode=d.plucode)
if @@error <> 0
begin
set @psmsg='<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>۸<EFBFBD>ʧ<EFBFBD><EFBFBD>'
return(-1)
end
end
else if @squotetype='1'
begin
update a set billno=b.billno,jprice=b.jprice,netjprice=b.netjprice,usercode=b.usercode,username=b.username,rzdate=b.rzdate,rztime=b.rztime,dsccode=b.dsccode,remark=b.remark
from t_order_quote a,
(select f.billno,s.orgcode,f.quotetype,f.supcode,f.supname,f.contrno,isnull(f.bgndate,'') bgndate,isnull(f.enddate,'') enddate,
d.plucode,d.pluname,d.barcode,d.spec,d.cargono,d.unit,d.jtaxrate,s.jprice,s.netjprice,f.usercode,f.username,f.rzdate,f.rztime,f.dsccode,d.remark
from t_orderquote_head f,t_orderquote_body d,t_orderquote_org s
where f.billno=d.billno and d.plucode=s.plucode and d.billno=s.billno and f.billno=@psbillno) b
where a.orgcode=b.orgcode and a.quotetype=b.quotetype and a.supcode=b.supcode and a.contrno=b.contrno and a.plucode=b.plucode and a.bgndate=b.bgndate and a.enddate=b.enddate
insert into t_order_quote(billno,orgcode,quotetype,supcode,supname,contrno,bgndate,enddate,plucode,pluname,barcode,spec,cargono,unit,jtaxrate,jprice,netjprice,usercode,username,rzdate,rztime,dsccode,remark)
select f.billno,s.orgcode,f.quotetype,f.supcode,f.supname,f.contrno,isnull(f.bgndate,''),isnull(f.enddate,''),
d.plucode,d.pluname,d.barcode,d.spec,d.cargono,d.unit,d.jtaxrate,s.jprice,s.netjprice,f.usercode,f.username,f.rzdate,f.rztime,f.dsccode,d.remark
from t_orderquote_head f,t_orderquote_body d,t_orderquote_org s
where f.billno=d.billno and d.plucode=s.plucode and d.billno=s.billno and f.billno=@psbillno
and not exists(select 1 from t_order_quote where orgcode=s.orgcode and quotetype=f.quotetype
and supcode=f.supcode and contrno=f.contrno and plucode=d.plucode and bgndate=f.bgndate and enddate=f.enddate)
if @@error<>0
begin
set @psmsg='<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>۸<EFBFBD>ʧ<EFBFBD><EFBFBD>'
return(-1)
end
end
--<2D><><EFBFBD><EFBFBD>ͬ<EFBFBD><CDAC>Ϊ*<2A>Ҳ<EFBFBD>Ϊ<EFBFBD>գ<EFBFBD><D5A3><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ӧ<EFBFBD><D3A6>ͬ<EFBFBD><CDAC>Ʒ<EFBFBD>е<EFBFBD><D0B5><EFBFBD>ϸ
if (@scontrno <> '*') and (@scontrno <> '')
begin
INSERT INTO t_contr_plu(contrno,serialno,plucode,barcode,pluname,cargono,spec,unit,jtaxrate,jprice,netjprice,remark)
SELECT @scontrno,row_number() over(order by a.plucode) AS serialno,a.plucode,barcode,pluname,cargono,spec,unit,jtaxrate,a.jprice,netjprice,'<EFBFBD><EFBFBD>ͬ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Զ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>' AS remark FROM
(SELECT oq.plucode,MIN(oq.JPrice) AS JPrice FROM t_order_quote oq WHERE oq.billno=@psbillno AND oq.contrno=@scontrno AND oq.supcode=@ssupcode
GROUP BY plucode) a, t_plu b WHERE a.PluCode=b.PluCode
and not exists(select 1 from t_contr_plu where contrno=@scontrno and plucode=a.plucode)
end
update t_orderquote_head set rzdate=@scurdate,rztime=@scurtime where billno=@psbillno
set @soptcontent='<EFBFBD><EFBFBD>ͬ<EFBFBD><EFBFBD><EFBFBD>ۣ<EFBFBD>'+@psbillno+'<EFBFBD><EFBFBD><EFBFBD><EFBFBD>'
set @psmsg=''
return(1)
end
go