SqlScripts/12_MWF/CreateDBObjects.sql
2023-03-22 15:08:37 +01:00

288 lines
10 KiB
Transact-SQL

INSERT INTO TBDD_MODULES(GUID,NAME,SHORT_NAME,LICENSE,STRING1,ACTIVE) VALUES
(9,'Mobile Workflow','MWF','kc6j9HSv/UJVAzFjMZv2A3wHZFy+2nNLKP9Qs8g9EVY=','',1)
GO
INSERT INTO [dbo].[TBDD_GROUPS] ([NAME] ,[INTERNAL] ,[ACTIVE] ,[COMMENT])
VALUES
('MWF_USERS'
,1
,1
,'User mit Freigabe für Mobile Workflow')
GO
INSERT INTO [dbo].[TBDD_GROUPS] ([NAME] ,[INTERNAL] ,[ACTIVE] ,[COMMENT])
VALUES
('MFI_USERS'
,1
,1
,'User mit Freigabe für Mobile File Indexer')
GO
CREATE TABLE TBMWF_CONFIG
(
GUID INTEGER NOT NULL IDENTITY (1, 1),
CONF_TITLE VARCHAR(100) NOT NULL,
CONF_STRING VARCHAR(900) NOT NULL,
ADDED_WHO VARCHAR(30) NOT NULL DEFAULT 'SYSTEM',
ADDED_WHEN DATETIME NOT NULL DEFAULT (GETDATE()),
CHANGED_WHO VARCHAR(30),
CHANGED_WHEN DATETIME,
CONSTRAINT PK_TBMWF_CONFIG PRIMARY KEY (GUID),
CONSTRAINT UQ_TBMWF_CONFIG_TITLE UNIQUE (CONF_TITLE)
)
GO
CREATE TRIGGER TBMWF_CONFIG_UPD ON TBMWF_CONFIG
FOR UPDATE
AS
UPDATE TBMWF_CONFIG SET CHANGED_WHEN = GETDATE()
FROM INSERTED
WHERE TBMWF_CONFIG.GUID = INSERTED.GUID
GO
INSERT INTO TBMWF_CONFIG (CONF_TITLE,CONF_STRING) VALUES
('WEB_TITLE','KUNDE Mobile-Workflow Portal'),
('WEB_SUBTITLE','Subtitle 2 Config in TBMWF_CONFIG');
------------------------------------------------------------------------------
CREATE TABLE TBMWF_PROFILE
(
GUID INTEGER IDENTITY(1,1),
INTL_NAME VARCHAR(200) NOT NULL DEFAULT 0,
PM_PROFILE_ID INTEGER NOT NULL,
[TYPE_ID] TINYINT NOT NULL DEFAULT 1,
ACTIVE BIT NOT NULL DEFAULT 0,
ADDED_WHO VARCHAR(30) NOT NULL DEFAULT 'SYSTEM',
ADDED_WHEN DATETIME NOT NULL DEFAULT (GETDATE()),
CHANGED_WHO VARCHAR(30),
CHANGED_WHEN DATETIME,
CONSTRAINT PK_TBMWF_PROFILE_GUID PRIMARY KEY(GUID),
CONSTRAINT UQ_TBMWF_PROFILE UNIQUE (INTL_NAME,PM_PROFILE_ID)
)
GO
CREATE TRIGGER TBMWF_PROFILE_UPD ON TBMWF_PROFILE
FOR UPDATE
AS
UPDATE TBMWF_PROFILE SET CHANGED_WHEN = GETDATE()
FROM INSERTED
WHERE TBMWF_PROFILE.GUID = INSERTED.GUID
GO
------------------------------------------------------------------------------
--DROP TABLE TBMWF_PROFILE_CONTROLS_UPDATE
CREATE TABLE TBMWF_PROFILE_CONTROLS_UPDATE
(
GUID BIGINT NOT NULL IDENTITY (1, 1),
MWF_PROFILE_ID INTEGER NOT NULL,
USR_ID INTEGER NOT NULL,
OBJ_ID BIGINT NOT NULL,
ATTR_NAME VARCHAR(100) NOT NULL,
ATTR_VALUE NVARCHAR(3000) NOT NULL,
ADDED_WHO VARCHAR(30) NOT NULL DEFAULT 'SYS',
ADDED_WHEN DATETIME NOT NULL DEFAULT (GETDATE()),
CONSTRAINT PK_TBMWF_PROFILE_CONTROLS_UPDATE PRIMARY KEY (GUID),
CONSTRAINT FK_TBMWF_PROFILE_CONTROLS_UPDATE_PROFILE FOREIGN KEY (MWF_PROFILE_ID) REFERENCES TBMWF_PROFILE (GUID),
CONSTRAINT UQ_TBMWF_PROFILE_CONTROLS_UPDATE UNIQUE(MWF_PROFILE_ID,USR_ID,OBJ_ID,ATTR_NAME)
)
GO
------------------------------------------------------------------------------
CREATE TABLE TBMWF_WF_STATE
(
GUID INTEGER NOT NULL IDENTITY (1, 1),
INTL_STATE VARCHAR(100) NOT NULL,
ADDED_WHO VARCHAR(30) NOT NULL DEFAULT 'SYS',
ADDED_WHEN DATETIME NOT NULL DEFAULT (GETDATE()),
CONSTRAINT PK_TBMWF_WF_STATE PRIMARY KEY (GUID),
CONSTRAINT UQ_TBMWF_WF_STATE UNIQUE(INTL_STATE)
)
GO
INSERT INTO TBMWF_WF_STATE (INTL_STATE) VALUES ('STARTED'),('WAITING'),('APPROVED'),('REJECTED'),('ADDED')
------------------------------------------------------------------------------
--DROP TABLE TBMWF_PROFILE_OBJ_STATE
CREATE TABLE TBMWF_PROFILE_OBJ_STATE
(
GUID BIGINT NOT NULL IDENTITY (1, 1),
MWF_PROFILE_ID INTEGER NOT NULL,
USR_ID INTEGER NOT NULL,
OBJ_ID BIGINT NOT NULL, --9999
STATE_ID INTEGER NOT NULL,
STATE2 NVARCHAR(100),
STATE3 NVARCHAR(100),
STATE4 NVARCHAR(100),
ADDED_WHO VARCHAR(100) NOT NULL DEFAULT 'SYS',
ADDED_WHEN DATETIME NOT NULL DEFAULT (GETDATE()),
CHANGED_WHO VARCHAR(100),
CHANGED_WHEN DATETIME,
CONSTRAINT PK_TBMWF_PROFILE_OBJ_STATE PRIMARY KEY (GUID),
CONSTRAINT FK_TBMWF_PROFILE_OBJ_STATE_STID FOREIGN KEY (STATE_ID) REFERENCES TBMWF_WF_STATE (GUID),
CONSTRAINT FK_TBMWF_PROFILE_OBJ_STATE_PID FOREIGN KEY (MWF_PROFILE_ID) REFERENCES TBMWF_PROFILE (GUID)
)
GO
CREATE TABLE TBMWF_PROFILE_OBJ_STATE_HISTORY
(
GUID BIGINT NOT NULL IDENTITY (1, 1),
MWF_PROFILE_ID INTEGER NOT NULL,
USR_ID INTEGER NOT NULL,
OBJ_ID BIGINT NOT NULL,
STATE_ID INTEGER NOT NULL,
STATE2 NVARCHAR(100),
STATE3 NVARCHAR(100),
STATE4 NVARCHAR(100),
CHANGED_WHO VARCHAR(100),
CHANGED_WHEN DATETIME NOT NULL DEFAULT (GETDATE()),
CONSTRAINT PK_TBMWF_PROFILE_OBJ_STATE_HISTORY PRIMARY KEY (GUID),
CONSTRAINT FK_TBMWF_PROFILE_OBJ_STATE_HISTORY_STID FOREIGN KEY (STATE_ID) REFERENCES TBMWF_WF_STATE (GUID),
CONSTRAINT FK_TBMWF_PROFILE_OBJ_STATE_HISTORY_PID FOREIGN KEY (MWF_PROFILE_ID) REFERENCES TBMWF_PROFILE (GUID)
)
GO
USE [DD_ECM]
GO
ALTER TRIGGER [dbo].[TBMWF_PROFILE_OBJ_STATE_AFT_UPD] ON [dbo].[TBMWF_PROFILE_OBJ_STATE]
FOR UPDATE
AS
DECLARE @CHANGED_WHO VARCHAR(100)
SELECT @CHANGED_WHO = CHANGED_WHO FROM inserted
INSERT INTO TBMWF_PROFILE_OBJ_STATE_HISTORY (MWF_PROFILE_ID,USR_ID,OBJ_ID,STATE_ID,STATE2,STATE3,STATE4,CHANGED_WHO)
SELECT MWF_PROFILE_ID,USR_ID,OBJ_ID,STATE_ID,STATE2,STATE3,STATE4,CHANGED_WHO FROM inserted
UPDATE TBMWF_PROFILE_OBJ_STATE SET CHANGED_WHEN = GETDATE(),CHANGED_WHO = @CHANGED_WHO
FROM INSERTED
WHERE TBMWF_PROFILE_OBJ_STATE.GUID = INSERTED.GUID
------------------------------------------------------------------------------
CREATE TABLE TBMWF_PROF_CONTROLS_TF
(
GUID BIGINT NOT NULL IDENTITY (1, 1),
OBJ_STATE_ID BIGINT NOT NULL,
DIALOG_NO TINYINT NOT NULL DEFAULT 1,
ATTR_NAME VARCHAR(100) NOT NULL,
CTRL_TYPE VARCHAR(10) NOT NULL, --TXT,CMB,DTP
CAPTION VARCHAR(100) NOT NULL,
[TEXT] VARCHAR(500) NOT NULL,
ICON VARCHAR(100) ,
MANDATORY BIT NOT NULL DEFAULT 0,
CHOICE_LIST NVARCHAR(MAX),
[READ_ONLY] BIT NOT NULL DEFAULT 0,
SEQU TINYINT DEFAULT 0,
ADDED_WHO VARCHAR(100) NOT NULL DEFAULT 'SYS',
ADDED_WHEN DATETIME NOT NULL DEFAULT (GETDATE()),
CONSTRAINT PK_TBMWF_PROF_CONTROLS PRIMARY KEY (GUID),
CONSTRAINT FK_TBMWF_PROF_CONTROLS_TF_OSID FOREIGN KEY (OBJ_STATE_ID) REFERENCES TBMWF_PROFILE_OBJ_STATE (GUID),
CONSTRAINT UQ_TBMWF_PROF_CONTROLS UNIQUE(OBJ_STATE_ID,ATTR_NAME)
)
GO
CREATE TABLE TBMWF_PROF_BUTTONS
(
GUID INT NOT NULL IDENTITY (1, 1),
MWF_PROFILE_ID INT NOT NULL,
DIALOG_NO TINYINT NOT NULL DEFAULT 1,
BTN_TYPE VARCHAR(20) NOT NULL, --BUTTON_MAIN, BUTTON_1,BUTTON_2
[TEXT] VARCHAR(500) NOT NULL,
ICON VARCHAR(100) ,
FORE_COLOR VARCHAR(100) NOT NULL DEFAULT 'Black',
BACK_COLOR VARCHAR(100) NOT NULL DEFAULT '',
COMMAND NVARCHAR(MAX) NOT NULL DEFAULT '',
DIALOG_COMMAND NVARCHAR(MAX) NOT NULL DEFAULT '',
CONFIRMATION_TEXT NVARCHAR(250) NOT NULL DEFAULT '',
ADDED_WHO VARCHAR(100) NOT NULL DEFAULT 'SYS',
ADDED_WHEN DATETIME NOT NULL DEFAULT (GETDATE()),
CHANGED_WHO VARCHAR(100),
CHANGED_WHEN DATETIME,
CONSTRAINT PK_TBMWF_PROF_BUTTONS PRIMARY KEY (GUID),
CONSTRAINT FK_TBMWF_PROF_BUTTONS_PID FOREIGN KEY (MWF_PROFILE_ID) REFERENCES TBMWF_PROFILE (GUID),
CONSTRAINT UQ_TBMWF_PROF_BUTTONS UNIQUE(MWF_PROFILE_ID,BTN_TYPE)
)
GO
CREATE TRIGGER TBMWF_PROF_BUTTONS_AFT_UPD ON TBMWF_PROF_BUTTONS
FOR UPDATE
AS
UPDATE TBMWF_PROF_BUTTONS SET CHANGED_WHEN = GETDATE()
FROM INSERTED
WHERE TBMWF_PROF_BUTTONS.GUID = INSERTED.GUID
GO
CREATE TABLE TBMFI_PROFILE_USER
(
GUID BIGINT NOT NULL IDENTITY (1, 1),
MWF_PROFILE_ID INTEGER NOT NULL,
USR_ID INTEGER NOT NULL,
ADDED_WHO VARCHAR(100) NOT NULL DEFAULT 'SYS',
ADDED_WHEN DATETIME NOT NULL DEFAULT (GETDATE()),
CHANGED_WHO VARCHAR(100),
CHANGED_WHEN DATETIME,
CONSTRAINT PK_TBMFI_PROFILE_USER PRIMARY KEY (GUID),
CONSTRAINT FK_TBMFI_PROFILE_USER_PID FOREIGN KEY (MWF_PROFILE_ID) REFERENCES TBMWF_PROFILE (GUID),
CONSTRAINT UQ_TBMFI_PROFILE_USER UNIQUE(MWF_PROFILE_ID,USR_ID)
)
GO
INSERT INTO TBDD_GUI_LANGUAGE_PHRASE (
MODULE, INTERNAL, OBJ_NAME, TITLE, LANGUAGE,CAPT_TYPE, STRING1,String2)
VALUES
( 'MFI', 1, '6', 'Title 6', 'de-DE','Title', 'Ablage Reisekosten','subtitle Reisekosten')
GO
INSERT INTO TBDD_GUI_LANGUAGE_PHRASE (
MODULE, INTERNAL, OBJ_NAME, TITLE, LANGUAGE,CAPT_TYPE, STRING1,String2)
VALUES
( 'MFI', 1, '9', 'Title 9', 'de-DE','Title', 'Fotodokumentation','subtitle Fotodoku')
GO
ALTER FUNCTION [dbo].[FNMWF_GET_PROFILES] (@pUSR_ID INTEGER)
RETURNS @TABLE_RETURN TABLE (PID INTEGER,[TYPE_ID] TINYINT, CAPTION VARCHAR(100),SUBTITLE VARCHAR(150), COUNTOBJ INT, FORE_COLOR VARCHAR(100) , BACK_COLOR VARCHAR(100))
AS
BEGIN
INSERT INTO @TABLE_RETURN (PID,[TYPE_ID],CAPTION,SUBTITLE,COUNTOBJ, FORE_COLOR,BACK_COLOR)
SELECT A.MWF_PROFILE_ID,1,C.STRING1,C.String2,COUNT(A.GUID), B.FORE_COLOR,B.BACK_COLOR FROM TBMWF_PROFILE_OBJ_STATE A INNER JOIN TBMWF_PROFILE B ON A.MWF_PROFILE_ID = B.GUID
INNER JOIN (SELECT * FROM TBDD_GUI_LANGUAGE_PHRASE WHERE MODULE = 'MWF') C ON A.MWF_PROFILE_ID = C.OBJ_NAME
INNER JOIN TBDD_USER D ON A.USR_ID = D.GUID
WHERE D.GUID = @pUSR_ID AND D.LANGUAGE = C.LANGUAGE AND A.STATE_ID = 1
GROUP BY A.MWF_PROFILE_ID,C.STRING1,C.String2,B.FORE_COLOR,B.BACK_COLOR
INSERT INTO @TABLE_RETURN (PID,[TYPE_ID],CAPTION,SUBTITLE,COUNTOBJ, FORE_COLOR,BACK_COLOR)
SELECT A.MWF_PROFILE_ID,2,C.STRING1,C.String2,0, B.FORE_COLOR,B.BACK_COLOR FROM TBMFI_PROFILE_USER A INNER JOIN TBMWF_PROFILE B ON A.MWF_PROFILE_ID = B.GUID
INNER JOIN (SELECT * FROM TBDD_GUI_LANGUAGE_PHRASE WHERE MODULE = 'MFI') C ON A.MWF_PROFILE_ID = C.OBJ_NAME
INNER JOIN TBDD_USER D ON A.USR_ID = D.GUID
WHERE D.GUID = @pUSR_ID AND C.LANGUAGE = D.LANGUAGE
RETURN
END
GO
ALTER FUNCTION [dbo].[FNMWF_GET_ITEMS] (@pUSR_ID INTEGER,@pMWF_PID INTEGER)
RETURNS @TABLE_RETURN TABLE (ObjStateID BIGINT,ObjectID BIGINT,Headline1 VARCHAR(100),Headline2 VARCHAR(150),Subline1 VARCHAR(100),Subline2 VARCHAR(100),CMD_CheckIn NVARCHAR(MAX))
AS
BEGIN
INSERT INTO @TABLE_RETURN (ObjStateID,ObjectID,Headline1,Headline2,Subline1,Subline2,CMD_CheckIn)
SELECT
VA.GUID,
OBJ.IDB_OBJ_ID
,OW.[Mandant Name]
,OW.[KreditorName]
, OW.[Zahlungsziel]
, OW.[RechnungNr]
,''
FROM
TBMWF_PROFILE_OBJ_STATE VA INNER JOIN
TBPM_CUST_WORKFLOW_OVERVIEW OW ON VA.OBJ_ID = OW.DOC_ID
INNER JOIN [IDB].[dbo].TBIDB_OBJECT OBJ ON OW.DOC_ID = OBJ.IDB_OBJ_ID
WHERE
VA.USR_ID = @pUSR_ID AND
OW.PROFILE_ID = 6 AND
OBJ.DELETED = 0 AND OBJ.ACTIVE = 1 AND
VA.MWF_PROFILE_ID = @pMWF_PID AND
VA.STATE_ID = 1 ;
RETURN
END