【瑞星系统】更新积分不对

SET QUOTED_IDENTIFIER ON
GO
SET ANSI_NULLS ON
GO

ALTER trigger POSUpdateValidVIP on POSSRLBF for update as
begin
declare @SECTION varchar(80), @CODE varchar(80)
declare @TAG varbinary(8)
declare @ERROR int,@ERRMSG varchar(255)

select @SECTION =‘财务处理‘, @CODE = ‘启用会员积分处理‘
if dbo.GetIntVar(@SECTION, @CODE, 0) = 0
return

if update(VALID) and exists (select 1 from
INSERTED A, DELETED B
where A.UID = B.UID and A.VALID = 1 and B.VALID = 0 and (A.FLAG = 1 or A.FLAG = 5 )
)
begin
select @TAG= max(TSTAMP) from BASVIPADUP
select @tag=0 where @tag is null

insert into BASVIPADUP( VIPNO, PUID, SLAMT, SLDAT, ADDVALUE,MGRAMT)
select VIPNO,UID,SLAMT,SLDAT,ADDVALUE=floor(ADDVALUE),MGRAMT
from
(
select VIPNO=left(max(A.PMNO),9),
UID=A.UID,
SLAMT=sum(A.SLAMT),
SLDAT=max(A.SLDAT),
ADDVALUE = sum(convert(numeric(9,2), D.VIPMARK)),
--wjk修改于20041021,ADDVALUE 直接使用POSVIPMARK表中的VIP积分
-- ADDVALUE= CASE WHEN sum(B.AMT-B.DISAMT-ISNULL(B.DISC,0))>=10
-- THEN sum(case when C.VIPRAT>0 then (B.QTY*C.VIPRAT)
-- when C.VIPRAT<0 then 0
-- when C.VIPRAT=0 then (B.AMT-B.DISAMT-ISNULL(B.DISC,0)) ----WZX,2004-09-09
-- END)
-- ELSE 0 end,
MGRAMT=sum(A.MGRAMT)
-- ADDVALUE= sum(case when C.VIPRAT>0 then (B.QTY*C.VIPRAT)
-- when C.VIPRAT<0 then 0
-- when C.VIPRAT=0 then (B.AMT-B.DISAMT-ISNULL(B.DISC,0)) ----WZX,2004-09-09
-- end
-- ),
-- MGRAMT=sum(B.AMT-B.DISAMT)-sum(case when C.PROP=2 then B.AMT*C.AVGCSPRC else B.QTY*C.AVGCSPRC end)

from

(SELECT UID=B.UID, PLUID=B.PLUID, SLDAT=MAX(A.SLDAT), PMNO=MAX(A.PMNO),
MGRAMT= sum(B.AMT-B.DISAMT-ISNULL(B.DISC,0))-sum(case when C.PROP=2 then B.AMT*C.AVGCSPRC else B.QTY*C.AVGCSPRC end),
SLAMT = sum(B.AMT-B.DISAMT-ISNULL(B.DISC,0))
FROM
(select C.UID,A.SLDAT,C.PMNO
from POSSRLPM C,INSERTED A, DELETED B
where A.UID = B.UID
and A.VALID = 1
and B.VALID = 0
and (A.FLAG = 1 or A.FLAG = 5 )
and C.UID=A.UID and C.PMID = 0 and isnull(C.PMNO,‘‘)<>‘‘
) A, POSSRLDT B, BASPLUPRC C
WHERE A.UID=B.UID AND B.PLUID=C.PLUID and B.ISDEL=0 and B.ISBACK = 0
GROUP BY B.PLUID,B.UID ---------------WZX,20050205,积分重复问题
) A, POSVIPMARK D, BASPLUMAIN E
where left(A.UID,6)+right(A.UID,7) = left(D.UID,6)+right(D.UID,7)and D.PLUNO = E.PLUNO and A.PLUID = E.PLUID
group by A.UID
) A
-- where ADDVALUE>0 ----WZX,无论积分值是否为0,都要传

if @ERROR <> 0
begin
rollback tran
select @ERRMSG = dbo.GetErrorMSG(@ERROR)
raiserror(‘在审核会员积分时出错.原始错误号码是[%i],原始错误信息是[%s].‘, 16, 1, @ERROR, @ERRMSG) with seterror
return
end

insert into BASVIPDTL
(UID,PLUID,QTY,SSLPRC,ASLPRC,SLPRCTYP,MGRAMT,SLDAT,ADDVALUE)
select UID=A.UID,
PLUID=A.PLUID,
QTY=A.QTY,
SLPRC=A.SLPRC,
ASLPRC=case when A.QTY<>0 then (A.AMT-A.DISAMT-isnull(A.disc,0))/A.QTY else 0 end,
‘1‘,
MGRAMT=(A.AMT-A.DISAMT-isnull(A.disc,0))-(case when A.PROP=2 then A.AMT*A.AVGCSPRC else A.QTY*A.AVGCSPRC end),
SLDAT=A.SLDAT, ----WZX,20040220
-- ADDVALUE= case when C.VIPRAT>0 then floor(B.QTY*C.VIPRAT)
-- when C.VIPRAT<0 then 0
-- when C.VIPRAT=0 then floor(B.AMT-B.DISAMT)
-- end
ADDVALUE = convert(numeric(9,2), isnull(D.VIPMARK,0))
from
(select UID=B.UID, PLUID=B.PLUID, PROP=MAX(C.PROP), SLDAT=MAX(A.SLDAT),
QTY=SUM(B.QTY),
SLPRC=MAX(C.SLPRC),
AVGCSPRC=MAX(C.AVGCSPRC),
AMT=SUM(B.AMT),
DISAMT=SUM(B.DISAMT),
DISC=SUM(ISNULL(B.DISC,0))
from
(select UID=PUID,SLDAT,PMNO=VIPNO
from BASVIPADUP
where TSTAMP>@TAG
) A, POSSRLDT B, BASPLUPRC C
where A.UID=B.UID AND B.PLUID=C.PLUID and B.ISDEL=0 and B.ISBACK = 0
GROUP BY B.UID,B.PLUID
) A, ---------------WZX,20050205,积分重复问题
(select b.UID, vipmark=isnull(b.VIPMARK,0), a.PLUID
from BASPLUMAIN a join POSVIPMARK b
on a.PLUNO = b.PLUNO
)D
where A.UID = D.UID and A.PLUID = D.PLUID

if @ERROR <> 0
begin
rollback tran
select @ERRMSG = dbo.GetErrorMSG(@ERROR)
raiserror(‘在审核会员积分时出错.原始错误号码是[%i],原始错误信息是[%s].‘, 16, 1, @ERROR, @ERRMSG) with seterror
return
end

end
end

GO
SET QUOTED_IDENTIFIER OFF
GO
SET ANSI_NULLS ON
GO

【瑞星系统】更新积分不对

时间: 2024-11-08 07:09:53

【瑞星系统】更新积分不对的相关文章

【瑞星系统】修改会员积分处理

SET QUOTED_IDENTIFIER ON GOSET ANSI_NULLS ON GO ALTER procedure GetVIPMark(@SLDAT datetime, @PNO integer, @SNO integer, @VIPNO varchar(20), @PLUInfo text , @CurVIPMark varchar(50) output , @TotalVIPMark varchar(150) output, @Return bit output) asbegi

【瑞星系统】修改会员积分处理导入会员资料

----SET QUOTED_IDENTIFIER ON GOSET ANSI_NULLS ON GO Create Procedure vipinsert(@RETURN bit output)ASBEGIN BEGIN TRANSACTION insert into basvip(vipno,vipname,sex,tel,idcard,PROP,REGION,ADDRESS,POSTCODE,ISSUEPSN,RECPSN) select vipno,name,case when sex=

yum功能:安装软件组,全系统更新

yum 不仅能够提供在线自动升级,他还可以用于查询,软件组的安装,整体版本的升级等. yun  [option]  [查询的工作项目]  [相关参数]          option: 主要的的参数,包括                 -y:当 yum 询问用户的意见时,主动回答 yes 而不需要要有键盘输入         [查询的工作项目]:由于不同的使用条件,而又一些选择的项目,包括:            install     :  指定的安装软件的名称,后面需接着输入软件的名称  

FreeBSD系统更新与软件安装

一.系统更新(类似yum update.apt-get update) 1.取回源 portsnap fetch 2.解压 portsnap extract 3.更新 portsnap update 二.安装软件包 更新后软件包列表在/usr/ports/目录中 查询软件包: cd /usr/ports/ make search name=软件名 make quicksearch name=软件名 安装软件包: cd /usr/ports/www/firefox make install fir

自定义组件-preference 自定义(设置-关于-系统更新)的preference

有些用户在安装好Android SDK后,打开Android SDK Manager下载API时一直显示"Done loading packages"却迟迟不能前进.自己也出现了这种情况,把自己成功解决此问题的方法分享给大家. 方法/步骤 用户需要首先打开已下载的安卓SDK管理器"Android SDK Manager",然后点击菜单栏中的"Tools"菜单选项,接下来只需选择"Options"选项即可打开设置窗体. 接下来,

设计系统更新补丁的注意点

通常我们开发出一个系统,是肯定要经常升级的.升级就意味着对代码或者数据结构的修改,当然一般情况下一个系统开发出来应该尽量少的修改数据结构的. 那么,当别人当前使用的不是最新的版本,我们应该如何提供更新补丁供用户升级呢? 版本号 第一,毫无疑问,每次放出一个版本的下载,都应该有一个对应的版本号以供区分.这样如果当前用户的版本和最新发布的版本不一致,就说明他应该更新了. 提供更新补丁 第二,如何提供更新补丁.第一种方法:只提供修改了的文件,并且修改的文件应该根据系统的目录进行打包.比如我修改了系统目

【瑞星系统】转移商品资料

INSERT INTO   AABASPLUMAINSELECT PLUID,DPTID, PLUNO, PLUNAME, SPEC, PKUNIT, PKQTY, STKIT, SENDKIND FROM [192.168.1.100].[scmis].[dbo].BASPLUMAIN select * INTO  AABASPLUEXTFROM (SELECT PLUID, COLOR, [SIZE], VALIDDAY, PROD, EXTNO, GSPEC, BFNAME, RSV, M

Winform Application系统更新

无废话,直接贴代码说明系统更新, 首先,让我们来看看系统的程序入口该怎样写 [STAThread] static void Main() { Control.CheckForIllegalCrossThreadCalls = false; Application.EnableVisualStyles(); Application.SetCompatibleTextRenderingDefault(false); bool create=false; using (Mutex mu = new M

ubuntu14.04装完系统更新后桌面挂了

一开始是只显示个鼠标什么都没有,ctrl-alt-1切到控制台下,把lightdm重启下再进去,多了两个桌面图标,但是顶栏和侧栏都没有,也就是根本没法运行其它程序. 但是幸好桌面右键菜单里有一个“在控制台里打开”,从这里可以进桌面模式下的控制台,然后可以运行浏览器,接着就可以上网搜索答案了... 首先,我要说,没有搜到对症下药的答案..问这个问题的倒不少... 但是,从几个老外的帖子里,发现了一些线索,基本上他们都是说把与桌面相关的各种包卸了再装,比如什么ubuntu-desktop.unity