Files
e-Book/3.玩轉SQL/參考資料/erp/Day7/參考文檔/BPM-sp/GEXBPM_ADDSIGN.txt
T

61 lines
1.8 KiB
Plaintext

CREATE PROC DBO.GEXBPM_ADDSIGN
(
@BILLTAG VARCHAR(20), --單別
@BILLNO VARCHAR(20), --簽核單號
@SOURCEBILLNO VARCHAR(30), --原單單號(原單呼叫用, 可空白)
@ADDTYPE SMALLINT,
@PERSONID NVARCHAR(20)
)
AS
/*
Function : FLOW 加簽時的更新資料程序
Description: 加簽事實上就是插行到指定列, @BILLNO 和 @SOURCEBILLNO 只能有一個有值
以 @BILLNO 優先
@ADDTYPE = 0 加入在目前待簽資料之前
3 加入在目前待簽資料之後
Build Date : 2012/11/14
Modify History
Item Who Date Modify Docs
==== ========== ========== ================================================
1 Michael 2013/07/13 修改新增的加簽欄號錯誤的問題
*/
DECLARE @SEQ1 INT
DECLARE @SEQ2 INT
DECLARE @SEQ3 INT
IF (@BILLNO = '') AND (@SOURCEBILLNO <> '')
BEGIN
SELECT @BILLNO=BILLNO FROM BPM_FLOWDATA_M WHERE BILLTAG = @BILLTAG AND SOURCEBILLNO = @SOURCEBILLNO
END
--取得簽核單目前的 [待簽]
IF ISNULL(@BILLNO,'') <> ''
BEGIN
SELECT @SEQ1=SEQNO FROM BPM_FLOWDATA_D WHERE BILLNO = @BILLNO AND FLOWSTATUS = 0
IF @SEQ1 IS NULL SET @SEQ1 = 1
IF @ADDTYPE = 0
BEGIN
SELECT @SEQ2=MAX(SEQNO) FROM BPM_FLOWDATA_D WHERE BILLNO = @BILLNO AND SEQNO < ISNULL(@SEQ1,1)
IF @SEQ2 IS NULL SET @SEQ2 = 0
SET @SEQ3 = @SEQ2 + (@SEQ1-@SEQ2)/2
END
ELSE BEGIN
SELECT @SEQ2=MIN(SEQNO) FROM BPM_FLOWDATA_D WHERE BILLNO = @BILLNO AND SEQNO > ISNULL(@SEQ1,1)
IF @SEQ2 IS NULL SET @SEQ2 = @SEQ1 + 10
SET @SEQ3 = @SEQ1 + (@SEQ2-@SEQ1)/2
END
INSERT INTO BPM_FLOWDATA_D (BILLNO,SEQNO,SIGN_TITLE,SIGNPERSON,AGENTID,SENDMAIL,NOTIFY_ONLY,FLOWSTATUS)
VALUES (@BILLNO,@SEQ3,'動態加簽',@PERSONID,'','Y','N',@ADDTYPE)
--發送 MAIL 通知
EXEC GEX_SEND_FLOWMAIL 'S',@PERSONID, @BILLNO, '動態加簽'
END