418 lines
18 KiB
Transact-SQL
418 lines
18 KiB
Transact-SQL
/*
|
||
FNDD_CHECK_USER_MODULE
|
||
#PM.CONV_IDENTIFICATION=Email
|
||
in Working Mode
|
||
*/
|
||
UPDATE TBIDB_CATALOG SET CAT_STRING = '1.0.3' where CAT_TITLE = 'DB_VERSION'
|
||
CREATE TABLE TBIDB_STATES
|
||
(
|
||
GUID BIGINT NOT NULL IDENTITY (1, 1),
|
||
STATE_LTERM_ID BIGINT NOT NULL,
|
||
ADDED_WHO BIGINT,
|
||
ADDED_WHEN DATETIME NOT NULL DEFAULT GETDATE(),
|
||
CHANGED_WHO BIGINT,
|
||
CHANGED_WHEN DATETIME,
|
||
CONSTRAINT PK_TBIDB_STATES PRIMARY KEY (GUID),
|
||
CONSTRAINT FK_TBIDB_STATES_STATE_LTERM_ID FOREIGN KEY (STATE_LTERM_ID) REFERENCES TBIDB_TERM_LANGUAGE (GUID),
|
||
CONSTRAINT FK_TBIDB_STATES_ADDED_WHO_T_ID FOREIGN KEY (ADDED_WHO) REFERENCES TBIDB_TERM_VALUE_VARCHAR (GUID),
|
||
CONSTRAINT FK_TBIDB_STATES_CHANGED_WHO_T_ID FOREIGN KEY (CHANGED_WHO) REFERENCES TBIDB_TERM_VALUE_VARCHAR (GUID),)
|
||
GO
|
||
CREATE TRIGGER TBIDB_STATES_AFT_UPD ON TBIDB_STATES
|
||
FOR UPDATE
|
||
AS
|
||
UPDATE TBIDB_STATES SET CHANGED_WHEN = GETDATE()
|
||
FROM INSERTED
|
||
WHERE TBIDB_STATES.GUID = INSERTED.GUID
|
||
GO
|
||
ALTER PROCEDURE [dbo].[PRIDB_NEW_IDB_STATE] @pSTATE VARCHAR(512),@pWHO VARCHAR(100),@pLANG_CODE VARCHAR(5) = 'de-DE'
|
||
AS
|
||
BEGIN
|
||
DECLARE
|
||
@LANG_ID INTEGER
|
||
|
||
SELECT @LANG_ID = GUID FROM TBIDB_LANGUAGE WHERE LANG_CODE = @pLANG_CODE
|
||
|
||
DECLARE @STATE_TERM_ID BIGINT,@LANG_STATE_TERM_ID BIGINT
|
||
EXEC PRIDB_NEW_TERM 'VARCHAR',@pSTATE,@pWHO,@TERM_ID = @STATE_TERM_ID OUTPUT;
|
||
DECLARE @ADDED_WHO_TERM_ID BIGINT
|
||
EXEC PRIDB_NEW_TERM 'VARCHAR',@pWHO,@pWHO,@TERM_ID = @ADDED_WHO_TERM_ID OUTPUT;
|
||
|
||
IF NOT EXISTS(SELECT GUID FROM TBIDB_TERM_LANGUAGE WHERE LANGUAGE_ID = @LANG_ID AND TEXT_TERM_ID = @STATE_TERM_ID)
|
||
INSERT INTO TBIDB_TERM_LANGUAGE (LANGUAGE_ID,TEXT_TERM_ID,ADDED_WHO) VALUES (@LANG_ID,@STATE_TERM_ID,@pWHO)
|
||
SELECT @LANG_STATE_TERM_ID = MAX(GUID) FROM TBIDB_TERM_LANGUAGE WHERE LANGUAGE_ID = @LANG_ID AND TEXT_TERM_ID = @STATE_TERM_ID
|
||
|
||
IF NOT EXISTS(SELECT GUID FROM TBIDB_STATES WHERE STATE_LTERM_ID = @LANG_STATE_TERM_ID)
|
||
INSERT INTO TBIDB_STATES (STATE_LTERM_ID,ADDED_WHO) VALUES (@LANG_STATE_TERM_ID,@ADDED_WHO_TERM_ID)
|
||
IF NOT EXISTS (SELECT GUID FROM TBIDB_STATE_LANG_GROUP WHERE STATE_ID = (SELECT GUID FROM TBIDB_STATES WHERE STATE_LTERM_ID = @LANG_STATE_TERM_ID))
|
||
INSERT INTO TBIDB_STATE_LANG_GROUP (STATE_ID,LANG_TERM_ID,ADDED_WHO) VALUES (
|
||
(SELECT GUID FROM TBIDB_STATES WHERE STATE_LTERM_ID = @LANG_STATE_TERM_ID)
|
||
,@LANG_STATE_TERM_ID
|
||
,@ADDED_WHO_TERM_ID)
|
||
|
||
SELECT * FROM TBIDB_STATES WHERE STATE_LTERM_ID = @LANG_STATE_TERM_ID
|
||
END
|
||
GO
|
||
|
||
CREATE TABLE TBIDB_STATE_LANG_GROUP
|
||
(
|
||
GUID BIGINT NOT NULL IDENTITY (1, 1),
|
||
STATE_ID BIGINT NOT NULL,
|
||
LANG_TERM_ID BIGINT NOT NULL,
|
||
ADDED_WHO BIGINT,
|
||
ADDED_WHEN DATETIME NOT NULL DEFAULT GETDATE(),
|
||
CHANGED_WHO BIGINT,
|
||
CHANGED_WHEN DATETIME,
|
||
CONSTRAINT PK_TBIDB_STATE_LANG_GROUP PRIMARY KEY (GUID),
|
||
CONSTRAINT FK_TBIDB_STATE_LANG_GROUP_STATE_ID FOREIGN KEY (STATE_ID) REFERENCES TBIDB_STATES (GUID),
|
||
CONSTRAINT FK_TBIDB_STATE_LANG_GROUP_ADDED_WHO_T_ID FOREIGN KEY (ADDED_WHO) REFERENCES TBIDB_TERM_VALUE_VARCHAR (GUID),
|
||
CONSTRAINT FK_TTBIDB_STATE_LANG_GROUP_CHANGED_WHO_T_ID FOREIGN KEY (CHANGED_WHO) REFERENCES TBIDB_TERM_VALUE_VARCHAR (GUID),)
|
||
GO
|
||
CREATE TRIGGER TBIDB_STATE_LANG_GROUP_AFT_UPD ON TBIDB_STATE_LANG_GROUP
|
||
FOR UPDATE
|
||
AS
|
||
UPDATE TBIDB_STATE_LANG_GROUP SET CHANGED_WHEN = GETDATE()
|
||
FROM INSERTED
|
||
WHERE TBIDB_STATE_LANG_GROUP.GUID = INSERTED.GUID
|
||
GO
|
||
EXEC PRIDB_NEW_IDB_STATE 'Started', 'Digital Data','de-DE'
|
||
EXEC PRIDB_NEW_IDB_STATE 'Ended', 'Digital Data','de-DE'
|
||
--select * from TBIDB_STATE_LANG_GROUP
|
||
--DROP TABLE TBIDB_CONVERSATION_OBJECT
|
||
|
||
CREATE TABLE TBIDB_CONVERSATION_OBJECT
|
||
(
|
||
GUID BIGINT NOT NULL IDENTITY (1, 1),
|
||
TITLE_TERM_ID BIGINT NOT NULL,
|
||
IDB_OBJ_ID BIGINT NOT NULL,
|
||
ADDED_WHO BIGINT,
|
||
ADDED_WHEN DATETIME NOT NULL DEFAULT GETDATE(),
|
||
CHANGED_WHO BIGINT,
|
||
CHANGED_WHEN DATETIME,
|
||
CONSTRAINT PK_TBIDB_CONVERSATION_OBJECT PRIMARY KEY (GUID),
|
||
CONSTRAINT FK_TITLE_TERM_ID FOREIGN KEY (TITLE_TERM_ID) REFERENCES TBIDB_TERM_LANGUAGE (GUID),
|
||
CONSTRAINT FK_TBIDB_CONVERSATION_OBJECT_IDB_OBJ_ID FOREIGN KEY (IDB_OBJ_ID) REFERENCES TBIDB_OBJECT (IDB_OBJ_ID),
|
||
CONSTRAINT FK_TBIDB_CONVERSATION_OBJECT_ADDED_WHO_T_ID FOREIGN KEY (ADDED_WHO) REFERENCES TBIDB_TERM_VALUE_VARCHAR (GUID),
|
||
CONSTRAINT FK_TBIDB_CONVERSATION_OBJECT_CHANGED_WHO_T_ID FOREIGN KEY (CHANGED_WHO) REFERENCES TBIDB_TERM_VALUE_VARCHAR (GUID),)
|
||
GO
|
||
CREATE TRIGGER TBIDB_CONVERSATION_OBJECT_AFT_UPD ON TBIDB_CONVERSATION_OBJECT
|
||
FOR UPDATE
|
||
AS
|
||
UPDATE TBIDB_CONVERSATION_OBJECT SET CHANGED_WHEN = GETDATE()
|
||
FROM INSERTED
|
||
WHERE TBIDB_CONVERSATION_OBJECT.GUID = INSERTED.GUID
|
||
GO
|
||
CREATE FUNCTION [dbo].[FNIDB_GET_TERM_FOR_LANG_TERM_ID] (@LANG_TERM_ID BIGINT)
|
||
RETURNS VARCHAR(900)
|
||
AS
|
||
BEGIN
|
||
DECLARE @TERM_ID BIGINT, @RESULT VARCHAR(900)
|
||
SELECT @RESULT = T1.TERM_VALUE FROM TBIDB_TERM_LANGUAGE T INNER JOIN TBIDB_TERM_VALUE_VARCHAR T1 ON T.TEXT_TERM_ID = T1.GUID WHERE T.GUID = @LANG_TERM_ID
|
||
RETURN @RESULT
|
||
END
|
||
GO
|
||
-------------------------------------------------------------------
|
||
CREATE FUNCTION [dbo].[FNIDB_GET_STATE_FOR_OBJECT_ID] (@OBJ_ID BIGINT)
|
||
RETURNS VARCHAR(900)
|
||
AS
|
||
BEGIN
|
||
DECLARE @MAX_STATE_GUID BIGINT,@STATE_ID INTEGER,@RESULT VARCHAR(900)
|
||
|
||
SELECT @STATE_ID = STATE_ID FROM TBIDB_MYOBJECT_STATES WHERE GUID = (
|
||
SELECT MAX(GUID) FROM TBIDB_MYOBJECT_STATES WHERE MY_OBJECT_ID = @OBJ_ID)
|
||
|
||
SELECT @RESULT = [dbo].[FNIDB_GET_TERM_FOR_LANG_TERM_ID] ((SELECT STATE_LTERM_ID FROM TBIDB_STATES
|
||
WHERE GUID = @STATE_ID))
|
||
RETURN @RESULT
|
||
END
|
||
GO
|
||
|
||
--delete from TBIDB_CONVERSATION_OBJECT
|
||
CREATE PROCEDURE [dbo].[PRIDB_NEW_CONVERSATION] @pIDB_OBJ_ID BIGINT, @pTITLE VARCHAR(512),@pWHO VARCHAR(100),@pLANG_CODE VARCHAR(5) = 'de-DE'
|
||
AS
|
||
BEGIN
|
||
DECLARE
|
||
@LANG_ID INTEGER
|
||
|
||
SELECT @LANG_ID = GUID FROM TBIDB_LANGUAGE WHERE LANG_CODE = @pLANG_CODE
|
||
|
||
DECLARE @TITLE_TERM_ID BIGINT,@LANG_TITLE_TERM_ID BIGINT
|
||
EXEC PRIDB_NEW_TERM 'VARCHAR',@pTITLE,@pWHO,@TERM_ID = @TITLE_TERM_ID OUTPUT;
|
||
DECLARE @ADDED_WHO_TERM_ID BIGINT
|
||
EXEC PRIDB_NEW_TERM 'VARCHAR',@pWHO,@pWHO,@TERM_ID = @ADDED_WHO_TERM_ID OUTPUT;
|
||
|
||
IF NOT EXISTS(SELECT GUID FROM TBIDB_TERM_LANGUAGE WHERE LANGUAGE_ID = @LANG_ID AND TEXT_TERM_ID = @TITLE_TERM_ID)
|
||
INSERT INTO TBIDB_TERM_LANGUAGE (LANGUAGE_ID,TEXT_TERM_ID,ADDED_WHO) VALUES (@LANG_ID,@TITLE_TERM_ID,@pWHO)
|
||
SELECT @LANG_TITLE_TERM_ID = MAX(GUID) FROM TBIDB_TERM_LANGUAGE WHERE LANGUAGE_ID = @LANG_ID AND TEXT_TERM_ID = @TITLE_TERM_ID
|
||
|
||
--IF EXISTS(SELECT CONVERSATION_ID FROM VWIDB_CONVERSATION WHERE IDB_OBJ_ID = @pIDB_OBJ_ID AND CONVERSATION_STATE = 'Started')
|
||
-- BEGIN
|
||
-- DECLARE @ENDED_STATE BIGINT
|
||
-- SELECT @ENDED_STATE = GUID FROM TBIDB_STATES T WHERE dbo.[FNIDB_GET_TERM_FOR_LANG_TERM_ID] (STATE_LTERM_ID) = 'Ended'
|
||
-- INSERT INTO TBIDB_MYOBJECT_STATES (
|
||
-- MY_OBJECT_ID
|
||
-- ,STATE_ID
|
||
-- ,ADDED_WHO) VALUES (
|
||
-- (SELECT CONVERSATION_ID FROM VWIDB_CONVERSATION WHERE IDB_OBJ_ID = @pIDB_OBJ_ID AND CONVERSATION_STATE = 'Started')
|
||
-- ,@ENDED_STATE
|
||
-- ,@ADDED_WHO_TERM_ID)
|
||
-- END
|
||
|
||
|
||
IF NOT EXISTS(SELECT GUID FROM TBIDB_CONVERSATION_OBJECT WHERE IDB_OBJ_ID = @pIDB_OBJ_ID AND TITLE_TERM_ID = @LANG_TITLE_TERM_ID)
|
||
INSERT INTO TBIDB_CONVERSATION_OBJECT (TITLE_TERM_ID,IDB_OBJ_ID,ADDED_WHO) VALUES (@LANG_TITLE_TERM_ID,@pIDB_OBJ_ID,@ADDED_WHO_TERM_ID)
|
||
DECLARE @STARTED_STATE BIGINT
|
||
SELECT @STARTED_STATE = GUID FROM TBIDB_STATES T WHERE dbo.[FNIDB_GET_TERM_FOR_LANG_TERM_ID] (STATE_LTERM_ID) = 'Started'
|
||
|
||
DECLARE @CONVERSATION_ID BIGINT
|
||
SELECT @CONVERSATION_ID = GUID FROM TBIDB_CONVERSATION_OBJECT WHERE TITLE_TERM_ID = @LANG_TITLE_TERM_ID AND IDB_OBJ_ID = @pIDB_OBJ_ID
|
||
|
||
IF NOT EXISTS(SELECT GUID FROM TBIDB_MYOBJECT_STATES WHERE MY_OBJECT_ID = @CONVERSATION_ID AND STATE_ID = @STARTED_STATE)
|
||
INSERT INTO TBIDB_MYOBJECT_STATES (MY_OBJECT_ID,STATE_ID,ADDED_WHO) VALUES (@CONVERSATION_ID,@STARTED_STATE,@ADDED_WHO_TERM_ID)
|
||
END
|
||
GO
|
||
CREATE PROCEDURE dbo.PRIDB_OBJECT_SET_STATE @pIDB_OBJ_ID BIGINT, @pSTATE VARCHAR(512),@pWHO VARCHAR(100),@pLANG_CODE VARCHAR(5) = 'de-DE'
|
||
AS
|
||
BEGIN
|
||
DECLARE
|
||
@LANG_ID INTEGER
|
||
|
||
SELECT @LANG_ID = GUID FROM TBIDB_LANGUAGE WHERE LANG_CODE = @pLANG_CODE
|
||
|
||
DECLARE @STATE_TERM_ID BIGINT,@LANG_TITLE_TERM_ID BIGINT
|
||
EXEC PRIDB_NEW_TERM 'VARCHAR',@pSTATE,@pWHO,@TERM_ID = @STATE_TERM_ID OUTPUT;
|
||
DECLARE @ADDED_WHO_TERM_ID BIGINT
|
||
EXEC PRIDB_NEW_TERM 'VARCHAR',@pWHO,@pWHO,@TERM_ID = @ADDED_WHO_TERM_ID OUTPUT;
|
||
|
||
|
||
|
||
IF NOT EXISTS(SELECT GUID FROM TBIDB_MYOBJECT_STATES WHERE MY_OBJECT_ID = @pIDB_OBJ_ID AND STATE_ID = @STATE_TERM_ID)
|
||
INSERT INTO TBIDB_MYOBJECT_STATES (MY_OBJECT_ID,STATE_ID,ADDED_WHO) VALUES (@pIDB_OBJ_ID,@STATE_TERM_ID,@ADDED_WHO_TERM_ID)
|
||
END
|
||
GO
|
||
CREATE PROCEDURE [dbo].[PRIDB_END_CONVERSATION] @pCONVID BIGINT, @pWHO VARCHAR(100), @pLANG_CODE VARCHAR(5) = 'de-DE'
|
||
AS
|
||
BEGIN
|
||
DECLARE
|
||
@LANG_ID INTEGER
|
||
,@ENDED_STATE BIGINT
|
||
|
||
SELECT @LANG_ID = GUID FROM TBIDB_LANGUAGE WHERE LANG_CODE = @pLANG_CODE
|
||
SELECT @ENDED_STATE = GUID FROM TBIDB_STATES T WHERE dbo.[FNIDB_GET_TERM_FOR_LANG_TERM_ID] (STATE_LTERM_ID) = 'Ended'
|
||
|
||
DECLARE @WHO_TERM_ID BIGINT
|
||
EXEC PRIDB_NEW_TERM 'VARCHAR',@pWHO,@pWHO,@TERM_ID = @WHO_TERM_ID OUTPUT;
|
||
|
||
|
||
IF NOT EXISTS(SELECT MY_OBJECT_ID FROM TBIDB_MYOBJECT_STATES WHERE MY_OBJECT_ID = @pCONVID AND STATE_ID = @ENDED_STATE)
|
||
INSERT INTO TBIDB_MYOBJECT_STATES (
|
||
MY_OBJECT_ID
|
||
,STATE_ID
|
||
,ADDED_WHO) VALUES (
|
||
@pCONVID
|
||
,@ENDED_STATE
|
||
,@WHO_TERM_ID)
|
||
END
|
||
GO
|
||
--delete from TBIDB_MYOBJECT_STATES
|
||
CREATE TABLE TBIDB_MYOBJECT_STATES
|
||
(
|
||
GUID BIGINT NOT NULL IDENTITY (1, 1),
|
||
MY_OBJECT_ID BIGINT NOT NULL,
|
||
STATE_ID BIGINT NOT NULL,
|
||
COMMENT_ID BIGINT ,
|
||
ADDED_WHO BIGINT,
|
||
ADDED_WHEN DATETIME NOT NULL DEFAULT GETDATE(),
|
||
CHANGED_WHO BIGINT,
|
||
CHANGED_WHEN DATETIME,
|
||
CONSTRAINT PK_TBIDB_MYOBJECT_STATES PRIMARY KEY (GUID),
|
||
CONSTRAINT FK_TBIDB_MYOBJECT_STATES_STATE_ID FOREIGN KEY (STATE_ID) REFERENCES TBIDB_STATES (GUID),
|
||
CONSTRAINT FK_TBIDB_MYOBJECT_STATES_COMMENT_ID_T_ID FOREIGN KEY (COMMENT_ID) REFERENCES TBIDB_TERM_LANGUAGE (GUID),
|
||
CONSTRAINT FK_TBIDB_MYOBJECT_STATES_ADDED_WHO_T_ID FOREIGN KEY (ADDED_WHO) REFERENCES TBIDB_TERM_VALUE_VARCHAR (GUID),
|
||
CONSTRAINT FK_TBIDB_MYOBJECT_STATES_CHANGED_WHO_T_ID FOREIGN KEY (CHANGED_WHO) REFERENCES TBIDB_TERM_VALUE_VARCHAR (GUID),)
|
||
GO
|
||
CREATE TRIGGER TBIDB_MYOBJECT_STATES_AFT_UPD ON TBIDB_MYOBJECT_STATES
|
||
FOR UPDATE
|
||
AS
|
||
UPDATE TBIDB_MYOBJECT_STATES SET CHANGED_WHEN = GETDATE()
|
||
FROM INSERTED
|
||
WHERE TBIDB_MYOBJECT_STATES.GUID = INSERTED.GUID
|
||
GO
|
||
|
||
CREATE FUNCTION [dbo].[FNIDB_GET_TERM_VALUE_VARCHAR] (@TERM_ID BIGINT)
|
||
RETURNS VARCHAR(900)
|
||
AS
|
||
BEGIN
|
||
DECLARE @RESULT VARCHAR(900)
|
||
|
||
SELECT @RESULT = TERM_VALUE FROM TBIDB_TERM_VALUE_VARCHAR WHERE GUID = @TERM_ID
|
||
RETURN @RESULT
|
||
END
|
||
|
||
CREATE TABLE TBIDB_CONVERSATION_USER
|
||
(
|
||
GUID BIGINT NOT NULL IDENTITY (1, 1),
|
||
CONV_ID BIGINT NOT NULL,
|
||
USER_OR_GROUP_ID INTEGER NOT NULL,
|
||
IS_USER BIT NOT NULL,
|
||
ADDED_WHO BIGINT,
|
||
ADDED_WHEN DATETIME NOT NULL DEFAULT GETDATE(),
|
||
CONSTRAINT PK_TBIDB_CONVERSATION_USER PRIMARY KEY (GUID),
|
||
CONSTRAINT FK_TBIDB_CONVERSATION_USER_CONV_ID FOREIGN KEY (CONV_ID) REFERENCES TBIDB_CONVERSATION_OBJECT (GUID),
|
||
CONSTRAINT FK_TBIDB_CONVERSATION_USER_ADDED_WHO FOREIGN KEY (ADDED_WHO) REFERENCES TBIDB_TERM_VALUE_VARCHAR (GUID),)
|
||
GO
|
||
CREATE PROCEDURE [dbo].[PRIDB_ADD_USER_2_CONVERSATION] @pCONV_ID BIGINT, @pUSERID INTEGER,@pWHO VARCHAR(100)
|
||
AS
|
||
BEGIN
|
||
DECLARE @ADDED_WHO_TERM_ID BIGINT
|
||
EXEC PRIDB_NEW_TERM 'VARCHAR',@pWHO,@pWHO,@TERM_ID = @ADDED_WHO_TERM_ID OUTPUT;
|
||
|
||
IF NOT EXISTS(SELECT GUID FROM TBIDB_CONVERSATION_USER WHERE CONV_ID = @pCONV_ID AND USER_OR_GROUP_ID = @pUSERID AND IS_USER = 1)
|
||
INSERT INTO TBIDB_CONVERSATION_USER (CONV_ID,USER_OR_GROUP_ID,IS_USER,ADDED_WHO) VALUES (@pCONV_ID,@pUSERID,1,@ADDED_WHO_TERM_ID)
|
||
|
||
END
|
||
GO
|
||
CREATE TABLE TBIDB_CONVERSATION_MESSAGE
|
||
(
|
||
GUID BIGINT NOT NULL IDENTITY (1, 1),
|
||
CONV_ID BIGINT NOT NULL,
|
||
TO_USER BIGINT NOT NULL DEFAULT 0,
|
||
FROM_USER BIGINT NOT NULL,
|
||
MESSAGE_TERM_ID BIGINT NOT NULL,
|
||
ADDED_WHO BIGINT,
|
||
ADDED_WHEN DATETIME NOT NULL DEFAULT GETDATE(),
|
||
CONSTRAINT PK_TBIDB_CONVERSATION_MESSAGE PRIMARY KEY (GUID),
|
||
CONSTRAINT FK_TBIDB_CONVERSATION_MESSAGE_CONV_ID FOREIGN KEY (CONV_ID) REFERENCES TBIDB_CONVERSATION_OBJECT (GUID),
|
||
CONSTRAINT FK_TBIDB_CONVERSATION_MESSAGE_MESSAGE_FROM_USER FOREIGN KEY (FROM_USER) REFERENCES TBIDB_TERM_VALUE_VARCHAR (GUID),
|
||
CONSTRAINT FK_TBIDB_CONVERSATION_MESSAGE_MESSAGE_TERM_ID FOREIGN KEY (MESSAGE_TERM_ID) REFERENCES TBIDB_TERM_LANGUAGE (GUID),
|
||
CONSTRAINT FK_TBIDB_CONVERSATION_MESSAGE_ADDED_WHO FOREIGN KEY (ADDED_WHO) REFERENCES TBIDB_TERM_VALUE_VARCHAR (GUID),)
|
||
GO
|
||
|
||
CREATE PROCEDURE [dbo].[PRIDB_NEW_CONVERSATION_MESSAGE] @pCONV_ID BIGINT, @pMESSAGE VARCHAR(100), @pWHO VARCHAR(100),@pTO_USER INTEGER = 0, @pLANG_CODE VARCHAR(5) = 'de-DE'
|
||
AS
|
||
BEGIN
|
||
DECLARE
|
||
@LANG_ID INTEGER
|
||
|
||
SELECT @LANG_ID = GUID FROM TBIDB_LANGUAGE WHERE LANG_CODE = @pLANG_CODE
|
||
|
||
DECLARE @MESSAGE_TERM_ID BIGINT,@LANG_MESSAGE_TERM_ID BIGINT
|
||
EXEC PRIDB_NEW_TERM 'VARCHAR',@pMESSAGE,@pWHO,@TERM_ID = @MESSAGE_TERM_ID OUTPUT;
|
||
DECLARE @ADDED_WHO_TERM_ID BIGINT
|
||
EXEC PRIDB_NEW_TERM 'VARCHAR',@pWHO,@pWHO,@TERM_ID = @ADDED_WHO_TERM_ID OUTPUT;
|
||
|
||
IF NOT EXISTS(SELECT GUID FROM TBIDB_TERM_LANGUAGE WHERE LANGUAGE_ID = @LANG_ID AND TEXT_TERM_ID = @MESSAGE_TERM_ID)
|
||
INSERT INTO TBIDB_TERM_LANGUAGE (LANGUAGE_ID,TEXT_TERM_ID,ADDED_WHO) VALUES (@LANG_ID,@MESSAGE_TERM_ID,@pWHO)
|
||
SELECT @LANG_MESSAGE_TERM_ID = MAX(GUID) FROM TBIDB_TERM_LANGUAGE WHERE LANGUAGE_ID = @LANG_ID AND TEXT_TERM_ID = @MESSAGE_TERM_ID
|
||
|
||
--IF NOT EXISTS(SELECT GUID FROM TBIDB_CONVERSATION_MESSAGE WHERE CONV_ID = @pCONV_ID AND FROM_USER = FROM_USER AND MESSAGE_TERM_ID = @LANG_MESSAGE_TERM_ID)
|
||
INSERT INTO TBIDB_CONVERSATION_MESSAGE (CONV_ID,FROM_USER,TO_USER, MESSAGE_TERM_ID, ADDED_WHO) VALUES (@pCONV_ID,@ADDED_WHO_TERM_ID,@pTO_USER, @LANG_MESSAGE_TERM_ID,@ADDED_WHO_TERM_ID)
|
||
|
||
END
|
||
GO
|
||
|
||
--EXEC PRIDB_NEW_CONVERSATION 10070, 'My First Conversation', 'SchreiberM'
|
||
|
||
--EXEC [PRIDB_NEW_CONVERSATION_MESSAGE] 1,'Hallo JJ', 'SchreiberM'
|
||
--EXEC [PRIDB_NEW_CONVERSATION_MESSAGE] 1,'Hallo Marlon', 'JenneJ'
|
||
--EXEC [PRIDB_NEW_CONVERSATION_MESSAGE] 1,'Na was machst Du so?', 'JenneJ'
|
||
--EXEC [PRIDB_NEW_CONVERSATION_MESSAGE] 1,'Ei ich programmiere an der IDB...', 'SchreiberM'
|
||
--EXEC [PRIDB_NEW_CONVERSATION_MESSAGE] 1,'Und Du wartest auf mich?', 'SchreiberM'
|
||
--EXEC [PRIDB_NEW_CONVERSATION_MESSAGE] 1,'Jenau ;)', 'JenneJ'
|
||
|
||
--EXEC [PRIDB_NEW_CONVERSATION_MESSAGE] 9,'Hallo Herr Schreiber, oh sorry habe ich das wirklich? ', 'j.jenne@digitaldata.works'
|
||
--EXEC [PRIDB_NEW_CONVERSATION_MESSAGE] 9,'..warten sie ich pr<70>fe das nochmal! ', 'j.jenne@digitaldata.works'
|
||
--EXEC [PRIDB_NEW_CONVERSATION_MESSAGE] 9,'Tats<74>chlich. Ich korrigiere das!', 'j.jenne@digitaldata.works'
|
||
--EXEC [PRIDB_NEW_CONVERSATION_MESSAGE] 9,'Was''nu schon wieder?', 'JenneJ'
|
||
--EXEC [PRIDB_NEW_CONVERSATION_MESSAGE] 9,'2. conversation ist da..', 'SchreiberM'
|
||
|
||
--EXEC [PRIDB_NEW_CONVERSATION_MESSAGE] 10,'Hallo JJ, da bin ich wieder', 'SchreiberM'
|
||
--EXEC [PRIDB_NEW_CONVERSATION_MESSAGE] 10,'Hallo Marlon nicht schon wieder', 'JenneJ'
|
||
--EXEC [PRIDB_NEW_CONVERSATION_MESSAGE] 10,'Was''nu schon wieder?', 'JenneJ'
|
||
--EXEC [PRIDB_NEW_CONVERSATION_MESSAGE] 10,'3. conversation ist da..', 'SchreiberM'
|
||
|
||
CREATE VIEW VWIDB_CONVERSATION AS
|
||
SELECT
|
||
GUID As CONVERSATION_ID
|
||
,IDB_OBJ_ID
|
||
,[dbo].[FNIDB_GET_TERM_FOR_LANG_TERM_ID] (TITLE_TERM_ID) as TITLE
|
||
,[dbo].[FNIDB_GET_STATE_FOR_OBJECT_ID] (GUID) AS CONVERSATION_STATE
|
||
,[dbo].[FNIDB_GET_TERM_VALUE_VARCHAR] (ADDED_WHO) as ADDED_WHO
|
||
,ADDED_WHEN
|
||
,[dbo].[FNIDB_GET_TERM_VALUE_VARCHAR] (CHANGED_WHO) as CHANGED_WHO
|
||
,CHANGED_WHEN
|
||
FROM TBIDB_CONVERSATION_OBJECT
|
||
GO
|
||
CREATE VIEW VWIDB_CONV_MESSAGES AS
|
||
select
|
||
T.GUID,
|
||
T.CONV_ID,
|
||
(SELECT EMAIL FROM DD_ECM_TEST.dbo.TBDD_USER WHERE GUID = T.TO_USER) TO_USER,
|
||
[dbo].[FNIDB_GET_TERM_FOR_LANG_TERM_ID] (T1.TITLE_TERM_ID) AS CONV_TITLE
|
||
,[dbo].[FNIDB_GET_TERM_VALUE_VARCHAR] (T.FROM_USER) as USER_FROM
|
||
,[dbo].[FNIDB_GET_TERM_FOR_LANG_TERM_ID] (T.MESSAGE_TERM_ID) as MESSAGE_TEXT
|
||
,[dbo].[FNIDB_GET_TERM_FOR_LANG_TERM_ID] (T.ADDED_WHO) as ADDED_WHO
|
||
,T.ADDED_WHEN
|
||
from TBIDB_CONVERSATION_MESSAGE T INNER JOIN TBIDB_CONVERSATION_OBJECT T1 ON T.CONV_ID = T1.GUID
|
||
GO
|
||
CREATE VIEW VWIDB_CONVERSATION_USER AS
|
||
SELECT
|
||
T.CONV_ID
|
||
,T1.GUID As USER_ID
|
||
,T1.USERNAME
|
||
,T1.EMAIL
|
||
,T1.NAME + ', ' + T1.PRENAME as NAME
|
||
FROM
|
||
[IDB_TEST].[dbo].[TBIDB_CONVERSATION_USER] T
|
||
INNER JOIN DD_ECM_TEST.dbo.TBDD_USER T1 ON T.USER_OR_GROUP_ID = T1.GUID
|
||
WHERE IS_USER = 1
|
||
GO
|
||
CREATE FUNCTION [dbo].[FNIDB_OBJECT_DYNAMIC_CONFIG] (@pIDB_OBJ_ID as INTEGER, @pUSERID as INTEGER)
|
||
RETURNS
|
||
@Table TABLE
|
||
(CONF_TITLE VARCHAR(900),CONF_VALUE VARCHAR(900))
|
||
AS
|
||
BEGIN
|
||
DECLARE @CONVID BIGINT
|
||
SELECT @CONVID = CONVERSATION_ID FROM VWIDB_CONVERSATION WHERE IDB_OBJ_ID = @pIDB_OBJ_ID AND CONVERSATION_STATE = 'Started'
|
||
IF @CONVID > 0
|
||
BEGIN
|
||
INSERT INTO @Table (CONF_TITLE, CONF_VALUE) VALUES ('CONVERSATION_ID',@CONVID);
|
||
END
|
||
|
||
IF EXISTS(SELECT CONV_ID FROM VWIDB_CONVERSATION_USER WHERE CONV_ID = @CONVID AND USER_ID = @pUSERID)
|
||
BEGIN
|
||
INSERT INTO @Table (CONF_TITLE, CONF_VALUE) VALUES ('CONVERSATION_USER_ACTIVE','True');
|
||
END
|
||
|
||
INSERT INTO @Table (CONF_TITLE, CONF_VALUE) VALUES ('CONVERSATION_RIGHT','Admin');
|
||
INSERT INTO @Table (CONF_TITLE, CONF_VALUE) VALUES ('CONVERSATION_RIGHT','Start');
|
||
INSERT INTO @Table (CONF_TITLE, CONF_VALUE) VALUES ('CONVERSATION_RIGHT','Stop');
|
||
INSERT INTO @Table (CONF_TITLE, CONF_VALUE) VALUES ('CONVERSATION_RIGHT','AddMessage');
|
||
INSERT INTO @Table (CONF_TITLE, CONF_VALUE) VALUES ('CONVERSATION_RIGHT','AddUser');
|
||
INSERT INTO @Table (CONF_TITLE, CONF_VALUE) VALUES ('NEW_CONVERSATION_USER_SELECT','SELECT GUID as UserID, NAME, USERNAME, EMAIL from TBDD_USER');
|
||
INSERT INTO @Table (CONF_TITLE, CONF_VALUE) VALUES ('CONVERSATION_ADD_USER_SELECT','SELECT GUID as UserID, NAME, USERNAME, EMAIL from DD_ECM_TEST.dbo.TBDD_USER WHERE GUID NOT IN (SELECT USER_OR_GROUP_ID FROM
|
||
TBIDB_CONVERSATION_USER WHERE CONV_ID = @CONVID AND IS_USER = 1)');
|
||
|
||
RETURN
|
||
END
|
||
GO
|
||
|
||
|
||
|
||
CREATE NONCLUSTERED INDEX IDX_CHANGED_WHEN_IN_GUID
|
||
ON [dbo].[TBIDB_OBJECT_METADATA_CHANGE] ([CHANGED_WHEN])
|
||
INCLUDE ([GUID])
|
||
GO
|
||
|
||
|
||
CREATE NONCLUSTERED INDEX IDX_IDBOBJID_CW
|
||
ON [dbo].[TBIDB_OBJECT_METADATA_CHANGE] ([IDB_OBJ_ID])
|
||
INCLUDE ([CHANGED_WHEN])
|
||
GO
|
||
|
||
|
||
|
||
|
||
|
||
|