61 lines
1.8 KiB
Plaintext
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
|