27,580
社区成员
发帖
与我相关
我的任务
分享
ALTER TRIGGER [insert_notice]
ON [OrderColor]
AFTER INSERT,DELETE,UPDATE
AS
BEGIN
-- SET NOCOUNT ON added to prevent extra result sets from
-- interfering with SELECT statements.
SET NOCOUNT ON;
DECLARE @Cnt1 INT,@Cnt2 INT,@Cnt3 INT
DECLARE @SheetDate datetime,@SheetKind INT,@NoticeDate datetime,@Message VARCHAR(500),@Message2 VARCHAR(500),@RightStatus int,@Message4 VARCHAR(500),
@NewLengthQty varchar(50),@OldLengthQty varchar(50),@NewDlvDate varchar(50),@OldDlvDate varchar(50),@Message3 VARCHAR(500),
@Creater VARCHAR(50),@ProdID VARCHAR(50),
@SheetNo varchar(50),@SheetSeries varchar(50)
--SELECT @SheetSeries=SheetSeries,@ProdID=ProdID,@NewLengthQty=LengthQty,@NewDlvDate=DlvDate FROM Inserted
select @SheetSeries=SheetSeries from inserted group by SheetSeries
select @ProdID=ProdID from inserted group by ProdID
select @NewLengthQty = (select (stuff((select ',另数量为' +convert(varchar(30),LengthQty) from inserted where SheetSeries =
a.SheetSeries for xml path('')),1,2,'')) from inserted a group by SheetSeries ,ProdID)
select @NewDlvDate =(select (stuff((select ',另交期为' +convert(varchar(30),Dlvdate,11) from inserted where SheetSeries =
a.SheetSeries for xml path('')),1,2,'')) from inserted a group by SheetSeries ,ProdID )
--SELECT @OldLengthQty=LengthQty,@OldDlvDate=DlvDate FROM deleted
select @OldLengthQty = (select (stuff((select ',另数量为' +convert(varchar(30),LengthQty) from deleted where SheetSeries =
a.SheetSeries for xml path('')),1,2,'')) from deleted a group by SheetSeries ,ProdID )
select @OldDlvDate = (select (stuff((select ',另交期为' +convert(varchar(30),Dlvdate,11) from deleted where SheetSeries =
a.SheetSeries for xml path('')),1,2,'')) from deleted a group by SheetSeries ,ProdID )
select @NoticeDate=GETDATE()
SELECT @SheetNo=sheetno,@Creater=Creater,@SheetDate=SheetDate,@RightStatus=RightStatus,@SheetKind=SheetKind from OrderMain where SheetSeries=@SheetSeries
SELECT @Message='大货订单改动提醒'
SELECT @Message4='大货订单改动提醒(续)'
SELECT @Message2='的品种,原'+@OldDlvDate+',调整为'+@NewDlvDate+'原'+@OldLengthQty+',调整为'+@NewLengthQty+',请仔细核对'
--(CASE WHEN @NewDlvDate!=@OldDlvDate and @NewLengthQty!=@OldLengthQty then @Creater+'提醒,'+'订单号为'+@SheetNo+'的单子有调整,'+@ProdID+'的品种,原交期为'+convert(varchar(30),@OldDlvDate,11)+',原数量为'+convert(varchar(30),@OldLengthQty)+',现调整交期为'+convert(varchar(30),@NewDlvDate,11)+',数量为'+convert(varchar(30),@NewLengthQty)+',请仔细核对' else
-- (case when @NewDlvDate!=@OldDlvDate and @NewLengthQty=@OldLengthQty then @Creater+'提醒,'+'订单号为'+@SheetNo+'的单子有调整,'+@ProdID+'的品种,原交期为'+convert(varchar(30),@OldDlvDate,11)+',现调整交期为'+convert(varchar(30),@NewDlvDate,11)+',数量仍为'+convert(varchar(30),@OldLengthQty)+'保持不变,请仔细核对'
-- else @Creater+'提醒,'+'订单号为'+@SheetNo+'的单子有调整,'+@ProdID+'的品种,原数量为'+convert(varchar(30),@OldLengthQty)+',现调整数量为'+convert(varchar(30),@NewLengthQty)+',交期仍为'+convert(varchar(30),@OldDlvDate,11)+',请仔细核对' end)end)
SELECT @Message3= '另一个数量为:' +convert(varchar(30),@NewLengthQty)+',交期为:'+convert(varchar(30),@NewDlvDate,11)+',请仔细核对'
SELECT @Cnt1=COUNT(*) FROM Inserted
SELECT @Cnt2=COUNT(*) FROM Deleted
SELECT @Cnt3=COUNT(*) FROM OrderColor where SheetSeries=@SheetSeries
IF( @RightStatus=10 and @SheetKind=0)
BEGIN
INSERT INTO s_Notice(NoticeNo
,NoticeKind,NoticeWay,NoticeDate,IsSeen,Subject,Sender,Receiver
,SpecData,PriorityID,SheetNo,SheetSeries,FlowID,FlowTaskNo,StepNo,Content
,SenderID,ReceiverID,BusinessUnitID,IsSend,IsSucceed,LinkInfoFrom,CustName
,NoticeName)
VALUES ( NEWID()
,1,4,@NoticeDate,0,@Message,@Creater,''
,NULL,NULL,@SheetNo,@SheetSeries,NULL,NULL,NULL,@Message2
,NULL,'',NULL,0,NULL,NULL, NULL,NULL
)
INSERT INTO s_Notice(NoticeNo
,NoticeKind,NoticeWay,NoticeDate,IsSeen,Subject,Sender,Receiver
,SpecData,PriorityID,SheetNo,SheetSeries,FlowID,FlowTaskNo,StepNo,Content
,SenderID,ReceiverID,BusinessUnitID,IsSend,IsSucceed,LinkInfoFrom,CustName
,NoticeName)
VALUES ( NEWID()
,1,1,@NoticeDate,0,@Message,@Creater,''
,NULL,NULL,@SheetNo,@SheetSeries,NULL,NULL,NULL,@Message2
,NULL,'',NULL,0,NULL,NULL, NULL,NULL
)
END
END