1113 lines
48 KiB
Transact-SQL
1113 lines
48 KiB
Transact-SQL
UPDATE TBIDB_BASE SET CONFIG_VALUE = '1.0.5' where CONFIG_NAME = 'DB_VERSION'
|
|
GO
|
|
DECLARE @INITIAL_TERM_ID VARCHAR(100)
|
|
EXEC PRIDB_NEW_TERM 'VARCHAR','SchreiberM','DD Initial',@TERM_ID = @INITIAL_TERM_ID OUTPUT;
|
|
SELECT @INITIAL_TERM_ID
|
|
GO
|
|
CREATE FUNCTION [dbo].[FNIDB_GET_FILE_PATH] (@pIDB_OBJ_ID BIGINT)
|
|
RETURNS VARCHAR(500)
|
|
AS
|
|
BEGIN
|
|
DECLARE @RELPATH VARCHAR(500),@FILEPATH VARCHAR(500),@NAVPATH as VARCHAR(500)
|
|
SELECT @RELPATH = [CAT_STRING] FROM [TBIDB_CATALOG] where CAT_TITLE = 'FILESTORE_PRAEFIX'
|
|
SELECT @NAVPATH = RELATIVE_PATH FROM TBIDB_DOC_INFO WHERE IDB_OBJ_ID = @pIDB_OBJ_ID
|
|
|
|
RETURN @NAVPATH
|
|
END
|
|
GO
|
|
CREATE NONCLUSTERED INDEX [IDXTBIDB_OBJECT_METADATA4]
|
|
ON [dbo].[TBIDB_OBJECT_METADATA] ([ATTR_ID])
|
|
INCLUDE ([IDB_OBJ_ID],[DEC_TERM_ID],[ADDED_WHO],[ADDED_WHEN])
|
|
GO
|
|
CREATE NONCLUSTERED INDEX [IDXTBIDB_OBJECT_METADATA5]
|
|
ON [dbo].[TBIDB_OBJECT_METADATA] ([ATTR_ID],[DEC_TERM_ID])
|
|
INCLUDE ([IDB_OBJ_ID],[ADDED_WHO],[ADDED_WHEN])
|
|
GO
|
|
-- =============================================
|
|
-- Author: DD MS
|
|
-- Change date: 25.08.2020 @TERM_TYPE_ID = 7 AND UPPER(@TERM)
|
|
-- =============================================
|
|
ALTER PROCEDURE [dbo].[PRIDB_NEW_TERM] @MD_TYPE VARCHAR(100),@TERM VARCHAR(MAX), @WHO VARCHAR(100), @TERM_ID BIGINT OUTPUT
|
|
AS
|
|
BEGIN
|
|
DECLARE @TERM_TYPE_ID TINYINT
|
|
|
|
SELECT @TERM_TYPE_ID = GUID FROM TBIDB_ATTRIBUTE_TYPE WHERE UPPER(NAME_TYPE) = UPPER(@MD_TYPE)
|
|
IF @TERM_TYPE_ID = 7 AND UPPER(@TERM) = 'TRUE'
|
|
SET @TERM = 1
|
|
ELSE IF @TERM_TYPE_ID = 7 AND UPPER(@TERM) = 'FALSE'
|
|
SET @TERM = 0
|
|
--PRINT 'PRIDB_NEW_TERM: TERM_TYPE_ID IS: ' + CONVERT(VARCHAR(2),@TERM_TYPE_ID) + ' # TERM: ' + @TERM
|
|
IF @TERM_TYPE_ID IN (1,8) --VARCHAR
|
|
IF NOT EXISTS(SELECT GUID FROM TBIDB_TERM_VALUE_VARCHAR WHERE UPPER(TERM_VALUE) = UPPER(@TERM))
|
|
BEGIN
|
|
INSERT INTO TBIDB_TERM_VALUE_VARCHAR (TERM_VALUE,ADDED_WHO) VALUES (@TERM,@WHO)
|
|
SELECT @TERM_ID = MAX(GUID) FROM TBIDB_TERM_VALUE_VARCHAR
|
|
END
|
|
ELSE
|
|
SELECT @TERM_ID = GUID FROM TBIDB_TERM_VALUE_VARCHAR WHERE UPPER(TERM_VALUE) = UPPER(@TERM)
|
|
ELSE IF @TERM_TYPE_ID IN (2,7,9) --BIGINT
|
|
IF NOT EXISTS(SELECT GUID FROM TBIDB_TERM_VALUE_INTEGER WHERE TERM_VALUE = CONVERT(BIGINT,@TERM))
|
|
BEGIN
|
|
INSERT INTO TBIDB_TERM_VALUE_INTEGER (TERM_VALUE,ADDED_WHO) VALUES (CONVERT(BIGINT,@TERM),@WHO)
|
|
SELECT @TERM_ID = MAX(GUID) FROM TBIDB_TERM_VALUE_INTEGER
|
|
END
|
|
ELSE
|
|
SELECT @TERM_ID = GUID FROM TBIDB_TERM_VALUE_INTEGER WHERE TERM_VALUE = CONVERT(BIGINT,@TERM)
|
|
ELSE IF @TERM_TYPE_ID = 3 --FLOAT
|
|
IF NOT EXISTS(SELECT GUID FROM TBIDB_TERM_VALUE_FLOAT WHERE TERM_VALUE = CONVERT(FLOAT,@TERM))
|
|
BEGIN
|
|
INSERT INTO TBIDB_TERM_VALUE_FLOAT (TERM_VALUE,ADDED_WHO) VALUES (CONVERT(FLOAT,@TERM),@WHO)
|
|
SELECT @TERM_ID = MAX(GUID) FROM TBIDB_TERM_VALUE_FLOAT
|
|
END
|
|
ELSE
|
|
SELECT @TERM_ID = GUID FROM TBIDB_TERM_VALUE_FLOAT WHERE TERM_VALUE = CONVERT(FLOAT,@TERM)
|
|
ELSE IF @TERM_TYPE_ID = 4 --DECIMAL
|
|
IF NOT EXISTS(SELECT GUID FROM TBIDB_TERM_VALUE_DECIMAL WHERE TERM_VALUE = CONVERT(DECIMAL(19,0),@TERM))
|
|
BEGIN
|
|
INSERT INTO TBIDB_TERM_VALUE_DECIMAL (TERM_VALUE,ADDED_WHO) VALUES (CONVERT(DECIMAL(19,0),@TERM),@WHO)
|
|
SELECT @TERM_ID = MAX(GUID) FROM TBIDB_TERM_VALUE_DECIMAL
|
|
END
|
|
ELSE
|
|
SELECT @TERM_ID = GUID FROM TBIDB_TERM_VALUE_DECIMAL WHERE TERM_VALUE = CONVERT(DECIMAL(19,0),@TERM)
|
|
ELSE IF @TERM_TYPE_ID = 5 --DATE
|
|
IF NOT EXISTS(SELECT GUID FROM TBIDB_TERM_VALUE_DATE WHERE TERM_VALUE = CONVERT(DATE,@TERM))
|
|
BEGIN
|
|
INSERT INTO TBIDB_TERM_VALUE_DATE (TERM_VALUE,ADDED_WHO) VALUES (CONVERT(DATE,@TERM),@WHO)
|
|
SELECT @TERM_ID = MAX(GUID) FROM TBIDB_TERM_VALUE_DATE
|
|
END
|
|
ELSE
|
|
SELECT @TERM_ID = GUID FROM TBIDB_TERM_VALUE_DATE WHERE TERM_VALUE = CONVERT(DATE,@TERM)
|
|
|
|
PRINT '### PRIDB_NEW_TERM: TERM-ID: ' + CONVERT(VARCHAR(10),@TERM_ID) + '###'
|
|
END
|
|
GO
|
|
|
|
|
|
ALTER TABLE TBIDB_TERM_VALUE_VARCHAR ALTER COLUMN ADDED_WHO VARCHAR (100);
|
|
ALTER TABLE TBIDB_TERM_VALUE_VARCHAR ALTER COLUMN CHANGED_WHO VARCHAR (100);
|
|
ALTER TABLE TBIDB_TERM_VALUE_INTEGER ALTER COLUMN ADDED_WHO VARCHAR (100);
|
|
ALTER TABLE TBIDB_TERM_VALUE_INTEGER ALTER COLUMN CHANGED_WHO VARCHAR (100);
|
|
ALTER TABLE TBIDB_TERM_VALUE_FLOAT ALTER COLUMN ADDED_WHO VARCHAR (100);
|
|
ALTER TABLE TBIDB_TERM_VALUE_FLOAT ALTER COLUMN CHANGED_WHO VARCHAR (100);
|
|
ALTER TABLE TBIDB_TERM_VALUE_DECIMAL ALTER COLUMN ADDED_WHO VARCHAR (100);
|
|
ALTER TABLE TBIDB_TERM_VALUE_DECIMAL ALTER COLUMN CHANGED_WHO VARCHAR (100);
|
|
ALTER TABLE TBIDB_TERM_VALUE_DATE ALTER COLUMN ADDED_WHO VARCHAR (100);
|
|
ALTER TABLE TBIDB_TERM_VALUE_DATE ALTER COLUMN CHANGED_WHO VARCHAR (100);
|
|
ALTER TABLE TBIDB_TERM_LANGUAGE ALTER COLUMN ADDED_WHO VARCHAR (100);
|
|
ALTER TABLE TBIDB_TERM_LANGUAGE ALTER COLUMN CHANGED_WHO VARCHAR (100);
|
|
ALTER TABLE TBIDB_OBJECT_METADATA ALTER COLUMN ADDED_WHO VARCHAR (100);
|
|
ALTER TABLE TBIDB_OBJECT_METADATA ALTER COLUMN CHANGED_WHO VARCHAR (100);
|
|
CREATE FUNCTION [dbo].[FNIDB_GET_TERM_FOR_TERM_ID] (@pTERMGUID BIGINT)
|
|
RETURNS VARCHAR(900)
|
|
AS
|
|
BEGIN
|
|
DECLARE @TERM_ID BIGINT, @RESULT VARCHAR(900)
|
|
SELECT @RESULT = T.TERM_VALUE
|
|
FROM TBIDB_TERM_VALUE_VARCHAR T WHERE T.GUID = @pTERMGUID
|
|
RETURN @RESULT
|
|
END
|
|
GO
|
|
-- =============================================
|
|
-- Author: DD MS
|
|
-- Craeation date: 17.08.2020 MS [TBIDB_LANGUAGE_TERM_METADATA]
|
|
-- =============================================
|
|
CREATE FUNCTION [dbo].[FNIDB_GET_TERM_FOR_LANGUAGE_TERM_METADATA_GUID] (@pTBIDB_LANGUAGE_TERM_METADATA_GUID BIGINT,@pLANG_CODE VARCHAR(5) = 'de-DE')
|
|
RETURNS VARCHAR(900)
|
|
AS
|
|
BEGIN
|
|
DECLARE @TERM_ID BIGINT, @RESULT VARCHAR(900),@LANG_ID INTEGER
|
|
SELECT @LANG_ID = GUID FROM TBIDB_LANGUAGE WHERE LANG_CODE = @pLANG_CODE
|
|
SELECT @RESULT = T3.TERM_VALUE -- @TERM_ID = T1.TEXT_TERM_ID
|
|
FROM TBIDB_LANGUAGE_TERM_METADATA T2
|
|
INNER JOIN TBIDB_TERM_LANGUAGE T1 ON T2.LANG_TERM_ID = T1.GUID
|
|
INNER JOIN TBIDB_TERM_VALUE_VARCHAR T3 ON T1.TEXT_TERM_ID = T3.GUID
|
|
WHERE
|
|
T2.GUID = @pTBIDB_LANGUAGE_TERM_METADATA_GUID
|
|
AND T1.LANGUAGE_ID = @LANG_ID
|
|
--SELECT @RESULT = TERM_VALUE FROM TBIDB_TERM_VALUE_VARCHAR WHERE GUID = @TERM_ID
|
|
RETURN @RESULT
|
|
END
|
|
GO
|
|
-- =============================================
|
|
-- Author: DD MS
|
|
-- Creation date: 17.08.2020
|
|
-- =============================================
|
|
CREATE FUNCTION [dbo].[FNIDB_GET_TERM_FOR_ATTRIBUTE_ID] (@pATTRIBUTE_ID INTEGER,@pLANG_CODE VARCHAR(10), @pUSERID INTEGER)
|
|
RETURNS @Output TABLE (IDB_OBJECT_ID BIGINT, TERM_VALUE VARCHAR(900),TERM_ID BIGINT,IDB_CREATED_WHEN DATETIME,IDB_CREATED_WHO VARCHAR(100))
|
|
AS
|
|
BEGIN
|
|
DECLARE
|
|
@TYP_ID TINYINT,
|
|
@TYP_DESCR VARCHAR(100),
|
|
@MULTI BIT,
|
|
@LANG_ID INT,
|
|
@TERM_RESULT VARCHAR(900),
|
|
@CREATED_WHEN DATETIME,
|
|
@CREATED_WHO VARCHAR(100)
|
|
|
|
|
|
BEGIN
|
|
SELECT @LANG_ID = GUID FROM TBIDB_LANGUAGE WHERE LANG_CODE = @pLANG_CODE
|
|
SELECT @TYP_ID = T.TYP_ID, @MULTI = T.MULTI_CONTEXT,@TYP_DESCR = T1.NAME_TYPE FROM TBIDB_ATTRIBUTE T, TBIDB_ATTRIBUTE_TYPE T1
|
|
WHERE T.TYP_ID = T1.GUID AND T.GUID = @pATTRIBUTE_ID
|
|
IF @TYP_ID IN (1,8) --VARCHAR
|
|
BEGIN
|
|
DECLARE @TL_ID BIGINT
|
|
INSERT INTO @Output (IDB_OBJECT_ID,TERM_VALUE,TERM_ID,IDB_CREATED_WHEN,IDB_CREATED_WHO)
|
|
SELECT MD.IDB_OBJ_ID, TERM.TERM_VALUE,TERM.GUID, MD.ADDED_WHEN,MD.ADDED_WHO
|
|
FROM
|
|
TBIDB_TERM_VALUE_VARCHAR TERM INNER JOIN TBIDB_TERM_LANGUAGE TLANG ON TERM.GUID = TLANG.TEXT_TERM_ID
|
|
INNER JOIN TBIDB_LANGUAGE_TERM_METADATA T1 ON TLANG.GUID = T1.LANG_TERM_ID
|
|
INNER JOIN TBIDB_OBJECT_METADATA MD ON T1.GUID = MD.TEXT_TERM_LANG_ID
|
|
WHERE MD.ATTR_ID = @pATTRIBUTE_ID
|
|
AND TLANG.LANGUAGE_ID = @LANG_ID
|
|
END
|
|
ELSE IF @TYP_ID IN (2,7,9) --BIGINT
|
|
BEGIN
|
|
INSERT INTO @Output (IDB_OBJECT_ID,TERM_VALUE,TERM_ID,IDB_CREATED_WHEN,IDB_CREATED_WHO)
|
|
SELECT MD.IDB_OBJ_ID, TERM.TERM_VALUE,TERM.GUID, MD.ADDED_WHEN,MD.ADDED_WHO
|
|
FROM
|
|
TBIDB_TERM_VALUE_INTEGER TERM, TBIDB_OBJECT_METADATA MD WHERE MD.INT_TERM_ID = TERM.GUID
|
|
AND MD.ATTR_ID = @pATTRIBUTE_ID
|
|
END
|
|
ELSE IF @TYP_ID = 3 --FLOAT
|
|
BEGIN
|
|
INSERT INTO @Output (IDB_OBJECT_ID,TERM_VALUE,TERM_ID,IDB_CREATED_WHEN,IDB_CREATED_WHO)
|
|
SELECT MD.IDB_OBJ_ID, TERM.TERM_VALUE,TERM.GUID, MD.ADDED_WHEN,MD.ADDED_WHO
|
|
FROM TBIDB_TERM_VALUE_FLOAT TERM, TBIDB_OBJECT_METADATA MD WHERE MD.FLOAT_TERM_ID = TERM.GUID
|
|
AND MD.ATTR_ID = @pATTRIBUTE_ID
|
|
END
|
|
ELSE IF @TYP_ID = 4
|
|
BEGIN
|
|
INSERT INTO @Output (IDB_OBJECT_ID,TERM_VALUE,TERM_ID,IDB_CREATED_WHEN,IDB_CREATED_WHO)
|
|
SELECT MD.IDB_OBJ_ID, TERM.TERM_VALUE, TERM.GUID, MD.ADDED_WHEN,MD.ADDED_WHO
|
|
FROM TBIDB_TERM_VALUE_DECIMAL TERM, TBIDB_OBJECT_METADATA MD WHERE MD.DEC_TERM_ID = TERM.GUID
|
|
AND MD.ATTR_ID = @pATTRIBUTE_ID
|
|
END
|
|
ELSE IF @TYP_ID = 5
|
|
BEGIN
|
|
INSERT INTO @Output (IDB_OBJECT_ID,TERM_VALUE,TERM_ID,IDB_CREATED_WHEN,IDB_CREATED_WHO)
|
|
SELECT MD.IDB_OBJ_ID, TERM.TERM_VALUE,TERM.GUID, MD.ADDED_WHEN,MD.ADDED_WHO
|
|
FROM TBIDB_TERM_VALUE_DATE TERM, TBIDB_OBJECT_METADATA MD WHERE MD.DATE_TERM_ID = TERM.GUID
|
|
AND MD.ATTR_ID = @pATTRIBUTE_ID
|
|
END
|
|
END
|
|
RETURN
|
|
END
|
|
|
|
|
|
CREATE TABLE TBIDB_SEARCH_PROFILE
|
|
(
|
|
GUID INTEGER NOT NULL IDENTITY (1, 1),
|
|
TITLE_ID BIGINT NOT NULL,
|
|
COMMENT VARCHAR(900),
|
|
ACTIVE BIT NOT NULL DEFAULT 1,
|
|
ADDED_WHO BIGINT,
|
|
ADDED_WHEN DATETIME NOT NULL DEFAULT GETDATE(),
|
|
CHANGED_WHO BIGINT,
|
|
CHANGED_WHEN DATETIME,
|
|
CONSTRAINT PK_TBIDB_SEARCH_PROFILE PRIMARY KEY (GUID),
|
|
CONSTRAINT FK_TBIDB_SEARCH_PROFILE_ADDED_WHO_T_ID FOREIGN KEY (ADDED_WHO) REFERENCES TBIDB_TERM_VALUE_VARCHAR (GUID),
|
|
CONSTRAINT FK_TBIDB_SEARCH_PROFILE_CHANGED_WHO_T_ID FOREIGN KEY (CHANGED_WHO) REFERENCES TBIDB_TERM_VALUE_VARCHAR (GUID),
|
|
)
|
|
GO
|
|
CREATE TRIGGER TBIDB_SEARCH_PROFILE_AFT_UPD ON TBIDB_SEARCH_PROFILE
|
|
FOR UPDATE
|
|
AS
|
|
UPDATE TBIDB_SEARCH_PROFILE SET CHANGED_WHEN = GETDATE()
|
|
FROM INSERTED
|
|
WHERE TBIDB_SEARCH_PROFILE.GUID = INSERTED.GUID
|
|
GO
|
|
|
|
CREATE TABLE TBIDB_SEARCH_RESULT_ATTRIBUTES
|
|
(
|
|
GUID INTEGER NOT NULL IDENTITY (1, 1),
|
|
SEARCH_PROFIL_ID INTEGER NOT NULL,
|
|
ATTRIBUTE_ID INTEGER NOT NULL,
|
|
SEQUENCE INTEGER DEFAULT 0,
|
|
ADDED_WHO BIGINT,
|
|
ADDED_WHEN DATETIME NOT NULL DEFAULT GETDATE(),
|
|
CONSTRAINT PK_TBIDB_SEARCH_RESULT_ATTRIBUTES_GUID PRIMARY KEY (GUID),
|
|
CONSTRAINT FK_TBIDB_SEARCH_RESULT_ATTRIBUTES_SPID FOREIGN KEY (SEARCH_PROFIL_ID) REFERENCES TBIDB_SEARCH_PROFILE (GUID),
|
|
CONSTRAINT FK_TBIDB_SEARCH_RESULT_ATTRIBUTES_ADDED_WHO FOREIGN KEY (ADDED_WHO) REFERENCES TBIDB_TERM_VALUE_VARCHAR (GUID),
|
|
CONSTRAINT UQ_TBIDB_SEARCH_RESULT_ATTRIBUTES UNIQUE(SEARCH_PROFIL_ID,ATTRIBUTE_ID)
|
|
)
|
|
GO
|
|
CREATE PROCEDURE [dbo].[PRIDB_NEW_SEARCH_RESULT_ATTRIBUTE] @pSEARCHID INTEGER,@pATTRIBUTE_ID INTEGER,@pWHO_TERM_ID BIGINT,@pSequence INTEGER = 0
|
|
AS
|
|
BEGIN
|
|
IF @pSequence = 0
|
|
SELECT @pSEQUENCE = COALESCE(MAX([SEQUENCE]),0) + 1 FROM TBIDB_SEARCH_RESULT_ATTRIBUTES
|
|
WHERE SEARCH_PROFIL_ID = @pSEARCHID
|
|
IF NOT EXISTS(SELECT GUID FROM TBIDB_SEARCH_RESULT_ATTRIBUTES WHERE ATTRIBUTE_ID = @pATTRIBUTE_ID AND SEARCH_PROFIL_ID = @pSEARCHID)
|
|
BEGIN
|
|
INSERT INTO TBIDB_SEARCH_RESULT_ATTRIBUTES (SEARCH_PROFIL_ID,ATTRIBUTE_ID,SEQUENCE,ADDED_WHO) VALUES (@pSEARCHID,@pATTRIBUTE_ID,@pSequence, @pWHO_TERM_ID)
|
|
EXEC [dbo].[PRIDB_NEW_SEARCH_ATTRIBUTE] @pSEARCHID,@pATTRIBUTE_ID,@pWHO_TERM_ID,0
|
|
END
|
|
|
|
ELSE
|
|
UPDATE TBIDB_SEARCH_RESULT_ATTRIBUTES SET SEQUENCE = @pSequence
|
|
WHERE ATTRIBUTE_ID = @pATTRIBUTE_ID AND SEARCH_PROFIL_ID = @pSEARCHID
|
|
--SELECT
|
|
-- T.GUID,
|
|
-- T.ATTRIBUTE_ID,
|
|
-- T1.TITLE
|
|
-- ,[dbo].[FNIDB_GET_TERM_FOR_TERM_ID] (T.ADDED_WHO) AS ADDED_WHO
|
|
-- ,T.ADDED_WHEN
|
|
--FROM TBIDB_SEARCH_RESULT_ATTRIBUTES T INNER JOIN TBIDB_ATTRIBUTE T1 ON T.ATTRIBUTE_ID = T1.GUID
|
|
--WHERE SEARCH_PROFIL_ID = @pSEARCHID
|
|
END
|
|
GO
|
|
|
|
CREATE PROCEDURE [dbo].[PRIDB_NEW_SEARCH_PROFILE] @BE_ID INT, @pTITLE VARCHAR(512),@pWHO_TERMID BIGINT,@pCOMMENT VARCHAR(900) = NULL, @pLANG_CODE VARCHAR(5) = 'de-DE'
|
|
AS
|
|
BEGIN
|
|
DECLARE
|
|
@LANG_ID INTEGER, @SQL_RESULT VARCHAR(912),
|
|
@SEARCH_ID INTEGER,
|
|
@WHO_TERM VARCHAR(100)
|
|
|
|
SELECT @WHO_TERM = TERM_VALUE FROM TBIDB_TERM_VALUE_VARCHAR WHERE GUID = @pWHO_TERMID
|
|
|
|
|
|
SELECT @LANG_ID = GUID FROM TBIDB_LANGUAGE WHERE LANG_CODE = @pLANG_CODE
|
|
DECLARE @MY_TITLE_TERM_ID BIGINT,@MY_LANG_TERM_ID BIGINT,@oLANGUAGE_TERM_METADATA_GUID BIGINT,@MY_RESULT_SQL_TERM_ID BIGINT
|
|
EXEC PRIDB_NEW_TERM 'VARCHAR',@pTITLE,@WHO_TERM,@TERM_ID = @MY_TITLE_TERM_ID OUTPUT;
|
|
EXEC PRIDB_NEW_TERM_LANGUAGE @LANG_ID,@MY_TITLE_TERM_ID,@WHO_TERM,@TERM_LANGUAGE_GUID = @MY_LANG_TERM_ID OUTPUT
|
|
EXEC PRIDB_NEW_LANGUAGE_TERM_METADATA_GUID @MY_LANG_TERM_ID,@pWHO_TERMID,@oLANG_TERM_GUID = @oLANGUAGE_TERM_METADATA_GUID OUTPUT
|
|
|
|
IF NOT EXISTS(SELECT GUID FROM TBIDB_SEARCH_PROFILE WHERE TITLE_ID = @oLANGUAGE_TERM_METADATA_GUID)
|
|
INSERT INTO TBIDB_SEARCH_PROFILE (TITLE_ID,ADDED_WHO,COMMENT) VALUES (@oLANGUAGE_TERM_METADATA_GUID,@pWHO_TERMID,@pCOMMENT)
|
|
ELSE
|
|
UPDATE TBIDB_SEARCH_PROFILE SET
|
|
COMMENT = @pCOMMENT,CHANGED_WHO = @pWHO_TERMID WHERE TITLE_ID = @oLANGUAGE_TERM_METADATA_GUID AND COMMENT <> @pCOMMENT
|
|
|
|
SELECT @SEARCH_ID = MAX(GUID) FROM TBIDB_SEARCH_PROFILE T
|
|
WHERE T.TITLE_ID = @oLANGUAGE_TERM_METADATA_GUID
|
|
|
|
SET @SQL_RESULT = 'SELECT T.IDB_OBJ_ID as DocID, [dbo].[FNIDB_GET_FILE_PATH] (T.IDB_OBJ_ID) as FULL_FILENAME, T.DocName as Filename, * FROM VWIDB_DOC_DATA WHERE '
|
|
DECLARE @ATTR_ID INT,@SEQUENCE TINYINT
|
|
SET @SEQUENCE = 0
|
|
|
|
DECLARE cursorDefaultAttributes CURSOR FOR
|
|
SELECT
|
|
T1.GUID
|
|
FROM TBIDB_ATTRIBUTE T1 INNER JOIN TBIDB_BE_ATTRIBUTE T2 ON T1.GUID = T2.ATTR_ID
|
|
WHERE T2.BE_ID = @BE_ID AND DEFAULT_SEARCH_ATTRIBUTE = 1
|
|
ORDER BY T1.VIEW_SEQUENCE
|
|
OPEN cursorDefaultAttributes
|
|
FETCH NEXT FROM cursorDefaultAttributes INTO @ATTR_ID
|
|
WHILE @@FETCH_STATUS = 0
|
|
BEGIN
|
|
IF NOT EXISTS (SELECT GUID FROM TBIDB_SEARCH_RESULT_ATTRIBUTES WHERE SEARCH_PROFIL_ID = @SEARCH_ID AND ATTRIBUTE_ID = @ATTR_ID)
|
|
EXEC PRIDB_NEW_SEARCH_RESULT_ATTRIBUTE @SEARCH_ID,@ATTR_ID,@pWHO_TERMID,@SEQUENCE
|
|
SET @SEQUENCE += 1
|
|
FETCH NEXT FROM cursorDefaultAttributes INTO @ATTR_ID
|
|
END
|
|
CLOSE cursorDefaultAttributes
|
|
DEALLOCATE cursorDefaultAttributes
|
|
|
|
SELECT
|
|
T.GUID,T.TITLE_ID
|
|
,dbo.[FNIDB_GET_TERM_FOR_LANGUAGE_TERM_METADATA_GUID ] (T.TITLE_ID,@pLANG_CODE) AS TITLE
|
|
--,[dbo].[FNIDB_GET_TERM_FOR_TERM_ID] (T.RESULT_SQL) AS RESULT_SQL
|
|
,[dbo].[FNIDB_GET_TERM_FOR_TERM_ID] (T.ADDED_WHO) AS ADDED_WHO
|
|
,T.ADDED_WHEN
|
|
,[dbo].[FNIDB_GET_TERM_FOR_TERM_ID] (T.CHANGED_WHO) AS CHANGED_WHO
|
|
,T.CHANGED_WHEN
|
|
FROM TBIDB_SEARCH_PROFILE T
|
|
WHERE GUID = @SEARCH_ID
|
|
END
|
|
GO
|
|
--DROP TABLE TBIDB_SEARCH_LANGUAGE_SQL_RESULT
|
|
CREATE TABLE TBIDB_SEARCH_LANGUAGE_SQL_RESULT
|
|
(
|
|
GUID INTEGER NOT NULL IDENTITY (1, 1),
|
|
SEARCH_PROFIL_ID INTEGER NOT NULL,
|
|
LANGUAGE_ID TINYINT NOT NULL,
|
|
SEARCH_TERM_ID BIGINT NOT NULL,
|
|
ADDED_WHO BIGINT,
|
|
ADDED_WHEN DATETIME NOT NULL DEFAULT GETDATE(),
|
|
CHANGED_WHO BIGINT,
|
|
CHANGED_WHEN DATETIME,
|
|
CONSTRAINT PK_TBIDB_SEARCH_LANGUAGE_SQL_RESULT_GUID PRIMARY KEY (GUID),
|
|
CONSTRAINT FK_TBIDB_SEARCH_LANGUAGE_SQL_RESULT_P_ID FOREIGN KEY (SEARCH_PROFIL_ID) REFERENCES TBIDB_SEARCH_PROFILE (GUID),
|
|
CONSTRAINT FK_TBIDB_SEARCH_LANGUAGE_SQL_RESULT_LID FOREIGN KEY (LANGUAGE_ID) REFERENCES TBIDB_LANGUAGE (GUID),
|
|
CONSTRAINT FK_TBIDB_SEARCH_LANGUAGE_SQL_RESULT_STID FOREIGN KEY (SEARCH_TERM_ID) REFERENCES TBIDB_TERM_VALUE_VARCHAR (GUID),
|
|
CONSTRAINT FK_TBIDB_SEARCH_LANGUAGE_SQL_RESULT_ADDED_WHO FOREIGN KEY (ADDED_WHO) REFERENCES TBIDB_TERM_VALUE_VARCHAR (GUID),
|
|
CONSTRAINT FK_TBIDB_SEARCH_LANGUAGE_SQL_RESULT_CHANGED_WHO FOREIGN KEY (CHANGED_WHO) REFERENCES TBIDB_TERM_VALUE_VARCHAR (GUID),
|
|
--CONSTRAINT FK_TBIDB_SEARCH_PROFILE_USER_USER_ID FOREIGN KEY (USER_ID) REFERENCES DD_ECM_TEST.dbo.TBDD_USER (GUID),
|
|
CONSTRAINT UQ_TBIDB_SEARCH_LANGUAGE_SQL_RESULT UNIQUE(SEARCH_PROFIL_ID,LANGUAGE_ID)
|
|
)
|
|
GO
|
|
CREATE TRIGGER TBIDB_SEARCH_LANGUAGE_SQL_RESULT_AFT_UPD ON TBIDB_SEARCH_LANGUAGE_SQL_RESULT
|
|
FOR UPDATE
|
|
AS
|
|
UPDATE TBIDB_SEARCH_LANGUAGE_SQL_RESULT SET CHANGED_WHEN = GETDATE()
|
|
FROM INSERTED
|
|
WHERE TBIDB_SEARCH_LANGUAGE_SQL_RESULT .GUID = INSERTED.GUID
|
|
GO
|
|
|
|
CREATE PROCEDURE [dbo].[PRIDB_NEW_SEARCH_SQL_RESULT] @SEARCH_ID INT,@pWHO_TERMID BIGINT
|
|
AS
|
|
BEGIN
|
|
DECLARE
|
|
@LANG_ID TINYINT,
|
|
@SQL_RESULT VARCHAR(912),
|
|
@WHO_TERM VARCHAR(100),
|
|
@MY_RESULT_SQL_TERM_ID BIGINT
|
|
SELECT @WHO_TERM = TERM_VALUE FROM TBIDB_TERM_VALUE_VARCHAR WHERE GUID = @pWHO_TERMID
|
|
|
|
DECLARE cursorLang CURSOR FOR
|
|
select GUID from TBIDB_LANGUAGE WHERE CREATE_DEFAULT_ENTRY = 1
|
|
OPEN cursorLang
|
|
FETCH NEXT FROM cursorLang INTO @LANG_ID
|
|
WHILE @@FETCH_STATUS = 0
|
|
BEGIN
|
|
SET @SQL_RESULT = 'SELECT T.IDB_OBJ_ID as DocID, [dbo].[FNIDB_GET_FILE_PATH] (T.IDB_OBJ_ID) as FULL_FILENAME, T.DocName as Filename'
|
|
DECLARE @ATTR_TITLE VARCHAR(100)
|
|
DECLARE cursorSRA CURSOR FOR
|
|
SELECT T3.TERM_VALUE
|
|
FROM TBIDB_SEARCH_RESULT_ATTRIBUTES T INNER JOIN TBIDB_ATTRIBUTE T1 ON T.ATTRIBUTE_ID = T1.GUID
|
|
INNER JOIN TBIDB_ATTRIBUTE_LANGUAGE T2 ON T1.GUID = T2.ATTRIBUTE_ID
|
|
INNER JOIN TBIDB_TERM_VALUE_VARCHAR T3 ON T2.TERM_ID = T3.GUID
|
|
WHERE T.SEARCH_PROFIL_ID = @SEARCH_ID --@SEARCH_ID
|
|
AND T2.LANGUAGE_ID = @LANG_ID
|
|
ORDER BY T.SEQUENCE
|
|
OPEN cursorSRA
|
|
FETCH NEXT FROM cursorSRA INTO @ATTR_TITLE
|
|
WHILE @@FETCH_STATUS = 0
|
|
BEGIN
|
|
SET @SQL_RESULT += ', T.[' + @ATTR_TITLE + ']'
|
|
FETCH NEXT FROM cursorSRA INTO @ATTR_TITLE
|
|
END
|
|
CLOSE cursorSRA
|
|
DEALLOCATE cursorSRA
|
|
SET @SQL_RESULT += ' FROM VWIDB_DOC_DATA T INNER JOIN [dbo].[FNIDB_SEARCH_RESULT_GET_OBJECTS] (@UserID,@SearchID) T1 ON T.IDB_OBJ_ID = T1.IDB_OBJ_ID '
|
|
EXEC PRIDB_NEW_TERM 'VARCHAR',@SQL_RESULT,@WHO_TERM,@TERM_ID = @MY_RESULT_SQL_TERM_ID OUTPUT;
|
|
PRINT @SQL_RESULT
|
|
IF NOT EXISTS(SELECT GUID FROM TBIDB_SEARCH_LANGUAGE_SQL_RESULT WHERE SEARCH_PROFIL_ID = @SEARCH_ID AND LANGUAGE_ID = @LANG_ID)
|
|
INSERT INTO TBIDB_SEARCH_LANGUAGE_SQL_RESULT (SEARCH_PROFIL_ID,LANGUAGE_ID,SEARCH_TERM_ID,ADDED_WHO) VALUES
|
|
(@SEARCH_ID,@LANG_ID,@MY_RESULT_SQL_TERM_ID,@pWHO_TERMID)
|
|
ELSE
|
|
UPDATE TBIDB_SEARCH_LANGUAGE_SQL_RESULT SET SEARCH_TERM_ID = @MY_RESULT_SQL_TERM_ID,CHANGED_WHO = @pWHO_TERMID WHERE SEARCH_PROFIL_ID = @SEARCH_ID AND LANGUAGE_ID = @LANG_ID
|
|
|
|
FETCH NEXT FROM cursorLang INTO @LANG_ID
|
|
END
|
|
CLOSE cursorLang
|
|
DEALLOCATE cursorLang
|
|
|
|
END
|
|
GO
|
|
|
|
CREATE TABLE TBIDB_SEARCH_PROFILE_USER
|
|
(
|
|
GUID INTEGER NOT NULL IDENTITY (1, 1),
|
|
SEARCH_PROFIL_ID INTEGER NOT NULL,
|
|
USER_ID INTEGER NOT NULL,
|
|
ADDED_WHO BIGINT,
|
|
ADDED_WHEN DATETIME NOT NULL DEFAULT GETDATE(),
|
|
CONSTRAINT PK_TBIDB_SEARCH_PROFILE_USER_GUID PRIMARY KEY (GUID),
|
|
CONSTRAINT FK_TBIDB_SEARCH_PROFILE_USER_P_ID FOREIGN KEY (SEARCH_PROFIL_ID) REFERENCES TBIDB_SEARCH_PROFILE (GUID),
|
|
CONSTRAINT FK_TBIDB_SEARCH_PROFILE_USER_ADDED_WHO FOREIGN KEY (ADDED_WHO) REFERENCES TBIDB_TERM_VALUE_VARCHAR (GUID),
|
|
--CONSTRAINT FK_TBIDB_SEARCH_PROFILE_USER_USER_ID FOREIGN KEY (USER_ID) REFERENCES DD_ECM_TEST.dbo.TBDD_USER (GUID),
|
|
CONSTRAINT UQ_TBIDB_SEARCH_PROFILE_USER UNIQUE(SEARCH_PROFIL_ID,USER_ID)
|
|
)
|
|
GO
|
|
CREATE PROCEDURE [dbo].[PRIDB_NEW_RELATION_SEARCH_USER] @pSEARCHID INTEGER,@pUSER_ID INTEGER,@pWHO_TERM_ID BIGINT
|
|
AS
|
|
BEGIN
|
|
IF NOT EXISTS(SELECT GUID FROM TBIDB_SEARCH_PROFILE_USER WHERE USER_ID = @pUSER_ID AND SEARCH_PROFIL_ID = @pSEARCHID)
|
|
INSERT INTO TBIDB_SEARCH_PROFILE_USER (USER_ID,ADDED_WHO,SEARCH_PROFIL_ID) VALUES (@pUSER_ID,@pWHO_TERM_ID,@pSEARCHID)
|
|
SELECT
|
|
GUID,USER_ID,SEARCH_PROFIL_ID
|
|
,[dbo].[FNIDB_GET_TERM_FOR_TERM_ID] (ADDED_WHO) AS ADDED_WHO
|
|
,ADDED_WHEN
|
|
FROM TBIDB_SEARCH_PROFILE_USER
|
|
WHERE SEARCH_PROFIL_ID = @pSEARCHID
|
|
|
|
END
|
|
GO
|
|
|
|
CREATE TABLE TBIDB_SEARCH_PROFILE_GROUP
|
|
(
|
|
GUID INTEGER NOT NULL IDENTITY (1, 1),
|
|
SEARCH_PROFIL_ID INTEGER NOT NULL,
|
|
GROUP_ID INTEGER NOT NULL,
|
|
ADDED_WHO BIGINT,
|
|
ADDED_WHEN DATETIME NOT NULL DEFAULT GETDATE(),
|
|
CONSTRAINT PK_TBIDB_SEARCH_PROFILE_GROUP_GUID PRIMARY KEY (GUID),
|
|
CONSTRAINT FK_TBIDB_SEARCH_PROFILE_GROUP_P_ID FOREIGN KEY (SEARCH_PROFIL_ID) REFERENCES TBIDB_SEARCH_PROFILE (GUID),
|
|
CONSTRAINT FK_TBIDB_SEARCH_PROFILE_GROUP_ADDED_WHO FOREIGN KEY (ADDED_WHO) REFERENCES TBIDB_TERM_VALUE_VARCHAR (GUID),
|
|
--CONSTRAINT FK_TBIDB_SEARCH_PROFILE_USER_USER_ID FOREIGN KEY (USER_ID) REFERENCES DD_ECM_TEST.dbo.TBDD_USER (GUID),
|
|
CONSTRAINT UQ_TBIDB_SEARCH_PROFILE_GROUP UNIQUE(SEARCH_PROFIL_ID,GROUP_ID)
|
|
)
|
|
GO
|
|
CREATE PROCEDURE [dbo].[PRIDB_NEW_RELATION_SEARCH_GROUP] @pSEARCHID INTEGER,@pGROUP_ID INTEGER,@pWHO_TERM_ID BIGINT
|
|
AS
|
|
BEGIN
|
|
IF NOT EXISTS(SELECT GUID FROM TBIDB_SEARCH_PROFILE_GROUP WHERE GROUP_ID = @pGROUP_ID AND SEARCH_PROFIL_ID = @pSEARCHID)
|
|
INSERT INTO TBIDB_SEARCH_PROFILE_GROUP (GROUP_ID,ADDED_WHO,SEARCH_PROFIL_ID) VALUES (@pGROUP_ID,@pWHO_TERM_ID,@pSEARCHID)
|
|
SELECT
|
|
GUID,GROUP_ID,SEARCH_PROFIL_ID
|
|
,[dbo].[FNIDB_GET_TERM_FOR_TERM_ID] (ADDED_WHO) AS ADDED_WHO
|
|
,ADDED_WHEN
|
|
FROM TBIDB_SEARCH_PROFILE_GROUP
|
|
WHERE SEARCH_PROFIL_ID = @pSEARCHID
|
|
|
|
END
|
|
GO
|
|
--DROP TABLE TBIDB_SEARCH_PROFILE_ATTRIBUTES
|
|
CREATE TABLE TBIDB_SEARCH_PROFILE_ATTRIBUTES
|
|
(
|
|
GUID INTEGER NOT NULL IDENTITY (1, 1),
|
|
SEARCH_PROFIL_ID INTEGER NOT NULL,
|
|
ATTRIBUTE_ID INTEGER NOT NULL,
|
|
X_LOC FLOAT NOT NULL DEFAULT 0,
|
|
Y_LOC FLOAT NOT NULL DEFAULT 0,
|
|
[SEQUENCE] INTEGER NOT NULL DEFAULT 0,
|
|
HEIGHT SMALLINT NOT NULL DEFAULT 25,
|
|
WIDTH SMALLINT NOT NULL DEFAULT 200,
|
|
MULTISELECT BIT NOT NULL DEFAULT 0,
|
|
SOURCE_SQL BIGINT,
|
|
ENABLE_SQL BIGINT,
|
|
ENABLE_CONID SMALLINT,
|
|
--DEPENDING_ATTRIBUTE1 INTEGER NOT NULL DEFAULT 0,
|
|
ADDED_WHO BIGINT,
|
|
ADDED_WHEN DATETIME NOT NULL DEFAULT GETDATE(),
|
|
CHANGED_WHO BIGINT,
|
|
CHANGED_WHEN DATETIME,
|
|
CONSTRAINT PK_TBIDB_SEARCH_PROFILE_ATTRIBUTES_GUID PRIMARY KEY (GUID),
|
|
CONSTRAINT FK_TBIDB_SEARCH_PROFILE_ATTRIBUTES_P_ID FOREIGN KEY (SEARCH_PROFIL_ID) REFERENCES TBIDB_SEARCH_PROFILE (GUID),
|
|
CONSTRAINT FK_TBIDB_SEARCH_PROFILE_ATTRIBUTES_ADDED_WHO FOREIGN KEY (ADDED_WHO) REFERENCES TBIDB_TERM_VALUE_VARCHAR (GUID),
|
|
CONSTRAINT FK_TBIDB_SEARCH_PROFILE_ATTRIBUTES_CHANGED_WHO FOREIGN KEY (CHANGED_WHO) REFERENCES TBIDB_TERM_VALUE_VARCHAR (GUID),
|
|
CONSTRAINT FK_TBIDB_SEARCH_PROFILE_ATTRIBUTES_SOURCE_SQL FOREIGN KEY (SOURCE_SQL) REFERENCES TBIDB_TERM_VALUE_VARCHAR (GUID),
|
|
CONSTRAINT FK_TBIDB_SEARCH_PROFILE_ATTRIBUTES_ENABLE_SQL FOREIGN KEY (ENABLE_SQL) REFERENCES TBIDB_TERM_VALUE_VARCHAR (GUID),
|
|
CONSTRAINT UQ_TBIDB_SEARCH_PROFILE_ATTRIBUTES UNIQUE(SEARCH_PROFIL_ID,ATTRIBUTE_ID)
|
|
)
|
|
GO
|
|
CREATE TRIGGER TBIDB_SEARCH_PROFILE_ATTRIBUTES_AFT_UPD ON TBIDB_SEARCH_PROFILE_ATTRIBUTES
|
|
FOR UPDATE
|
|
AS
|
|
UPDATE TBIDB_SEARCH_PROFILE_ATTRIBUTES SET CHANGED_WHEN = GETDATE()
|
|
FROM INSERTED
|
|
WHERE TBIDB_SEARCH_PROFILE_ATTRIBUTES .GUID = INSERTED.GUID
|
|
GO
|
|
|
|
CREATE PROCEDURE [dbo].[PRIDB_NEW_SEARCH_ATTRIBUTE] @pSEARCH_PROFIL_ID INTEGER,@pATTRIBUTE_ID INTEGER,@MULTISELECT BIT, @WHO_TERM_ID INTEGER, @pSEQUENCE INTEGER,@pHEIGHT SMALLINT = 0,@pWIDTH SMALLINT = 0
|
|
AS
|
|
BEGIN
|
|
DECLARE @pWHO_USERNAME VARCHAR(100),@USER_LANGUAGE VARCHAR(5),@USER_LANGUAGE_ID INT, @ATTRTYPE as VARCHAR(20)--,@USER_ID INTEGER
|
|
SELECT @pWHO_USERNAME = TERM_VALUE FROM TBIDB_TERM_VALUE_VARCHAR WHERE GUID = @WHO_TERM_ID
|
|
SELECT @USER_LANGUAGE = LANGUAGE,@USER_LANGUAGE_ID = T1.GUID FROM DD_ECM_TEST.dbo.TBDD_USER T INNER JOIN IDB_TEST.dbo.TBIDB_LANGUAGE T1 ON T.LANGUAGE = T1.LANG_CODE WHERE UPPER(USERNAME) = UPPER(@pWHO_USERNAME)
|
|
|
|
SELECT @ATTRTYPE = T1.NAME_TYPE FROM TBIDB_ATTRIBUTE T INNER JOIN TBIDB_ATTRIBUTE_TYPE T1 ON T.TYP_ID = T1.GUID WHERE T.GUID = @pATTRIBUTE_ID
|
|
|
|
IF @ATTRTYPE IN ('VARCHAR','BIG INTEGER')
|
|
BEGIN
|
|
IF @pHEIGHT = 0
|
|
SET @pHEIGHT = 200
|
|
IF @pWIDTH = 0
|
|
SET @pWIDTH = 200
|
|
END
|
|
ELSE IF @ATTRTYPE ='DATE'
|
|
BEGIN
|
|
IF @pHEIGHT = 0
|
|
SET @pHEIGHT = 20
|
|
IF @pWIDTH = 0
|
|
SET @pWIDTH = 100
|
|
END
|
|
ELSE IF @ATTRTYPE ='BIT'
|
|
BEGIN
|
|
IF @pHEIGHT = 0
|
|
SET @pHEIGHT = 20
|
|
IF @pWIDTH = 0
|
|
SET @pWIDTH = 200
|
|
END
|
|
|
|
DECLARE @SOURCE_TERM_ID BIGINT,@SOURCE_DEFAULT_SQL VARCHAR(900)
|
|
SET @SOURCE_DEFAULT_SQL = 'select DISTINCT TERM.TERM_VALUE AS @RESULT_TITLE
|
|
FROM
|
|
TBIDB_TERM_VALUE_VARCHAR TERM INNER JOIN TBIDB_TERM_LANGUAGE TLANG ON TERM.GUID = TLANG.TEXT_TERM_ID
|
|
INNER JOIN TBIDB_LANGUAGE_TERM_METADATA T1 ON TLANG.GUID = T1.LANG_TERM_ID
|
|
INNER JOIN TBIDB_OBJECT_METADATA MD ON T1.GUID = MD.TEXT_TERM_LANG_ID
|
|
INNER JOIN TBIDB_OBJECT OBJ ON MD.IDB_OBJ_ID = OBJ.IDB_OBJ_ID
|
|
WHERE
|
|
MD.ATTR_ID = ' + CONVERT(VARCHAR(3),@pATTRIBUTE_ID) + ' AND TLANG.LANGUAGE_ID = ' + CONVERT(VARCHAR(3),@USER_LANGUAGE_ID) + '
|
|
AND OBJ.DELETED = 0 AND ACTIVE = 1'
|
|
|
|
--IF @pDEPENDING_ATTRIBUTE1 <> 0
|
|
-- SET @SOURCE_DEFAULT_SQL = REPLACE(@SOURCE_DEFAULT_SQL,'@pUSER_ID) ','@pUSER_ID) where IDB_OBJECT_ID = @DEPENDING_IDB_OBJECT ')
|
|
--ELSE
|
|
-- SET @SOURCE_DEFAULT_SQL = REPLACE(@SOURCE_DEFAULT_SQL,'@JOIN ','')
|
|
IF @ATTRTYPE = 'DATE'
|
|
SET @SOURCE_DEFAULT_SQL = 'select DISTINCT TERM.TERM_VALUE AS @RESULT_TITLE
|
|
FROM
|
|
TBIDB_TERM_VALUE_DATE TERM INNER JOIN TBIDB_OBJECT_METADATA MD ON TERM.GUID = MD.DATE_TERM_ID
|
|
INNER JOIN TBIDB_OBJECT OBJ ON MD.IDB_OBJ_ID = OBJ.IDB_OBJ_ID
|
|
WHERE
|
|
MD.ATTR_ID = ' + CONVERT(VARCHAR(3),@pATTRIBUTE_ID) + '
|
|
AND OBJ.DELETED = 0 AND ACTIVE = 1'
|
|
ELSE IF @ATTRTYPE = 'BIG INTEGER'
|
|
SET @SOURCE_DEFAULT_SQL = 'select DISTINCT TERM.TERM_VALUE AS @RESULT_TITLE
|
|
FROM
|
|
TBIDB_TERM_VALUE_INTEGER TERM INNER JOIN TBIDB_OBJECT_METADATA MD ON TERM.GUID = MD.INT_TERM_ID
|
|
INNER JOIN TBIDB_OBJECT OBJ ON MD.IDB_OBJ_ID = OBJ.IDB_OBJ_ID
|
|
WHERE
|
|
MD.ATTR_ID = ' + CONVERT(VARCHAR(3),@pATTRIBUTE_ID) + '
|
|
AND OBJ.DELETED = 0 AND ACTIVE = 1'
|
|
ELSE IF @ATTRTYPE = 'BIT'
|
|
SET @SOURCE_DEFAULT_SQL = 'select DISTINCT CONVERT(BIT,TERM.TERM_VALUE) AS @RESULT_TITLE
|
|
FROM
|
|
TBIDB_TERM_VALUE_INTEGER TERM INNER JOIN TBIDB_OBJECT_METADATA MD ON TERM.GUID = MD.INT_TERM_ID
|
|
INNER JOIN TBIDB_OBJECT OBJ ON MD.IDB_OBJ_ID = OBJ.IDB_OBJ_ID
|
|
WHERE
|
|
MD.ATTR_ID = ' + CONVERT(VARCHAR(3),@pATTRIBUTE_ID) + '
|
|
AND OBJ.DELETED = 0 AND ACTIVE = 1'
|
|
EXEC PRIDB_NEW_TERM 'VARCHAR',@SOURCE_DEFAULT_SQL,@pWHO_USERNAME,@TERM_ID = @SOURCE_TERM_ID OUTPUT;
|
|
IF @pSEQUENCE = 0
|
|
SELECT @pSEQUENCE = COALESCE(MAX([SEQUENCE]),0) + 1 FROM TBIDB_SEARCH_PROFILE_ATTRIBUTES WHERE SEARCH_PROFIL_ID = @pSEARCH_PROFIL_ID
|
|
IF NOT EXISTS(SELECT GUID FROM TBIDB_SEARCH_PROFILE_ATTRIBUTES WHERE SEARCH_PROFIL_ID = @pSEARCH_PROFIL_ID AND ATTRIBUTE_ID = @pATTRIBUTE_ID)
|
|
INSERT INTO TBIDB_SEARCH_PROFILE_ATTRIBUTES (SEARCH_PROFIL_ID,ATTRIBUTE_ID,SOURCE_SQL, [SEQUENCE], ADDED_WHO,HEIGHT,WIDTH,MULTISELECT)
|
|
VALUES (@pSEARCH_PROFIL_ID,@pATTRIBUTE_ID,@SOURCE_TERM_ID,@pSEQUENCE, @WHO_TERM_ID,@pHEIGHT,@pWIDTH,@MULTISELECT)
|
|
ELSE
|
|
BEGIN
|
|
|
|
UPDATE TBIDB_SEARCH_PROFILE_ATTRIBUTES SET
|
|
SOURCE_SQL = @SOURCE_TERM_ID
|
|
,[SEQUENCE] = @pSEQUENCE
|
|
,HEIGHT = @pHEIGHT
|
|
,WIDTH = @pWIDTH
|
|
,MULTISELECT = @MULTISELECT
|
|
WHERE SEARCH_PROFIL_ID = @pSEARCH_PROFIL_ID AND ATTRIBUTE_ID = @pATTRIBUTE_ID
|
|
END
|
|
SELECT
|
|
T.SEARCH_PROFIL_ID,
|
|
T.GUID,
|
|
T.ATTRIBUTE_ID,
|
|
T1.TITLE AS ATTRIBUTE_TITLE,
|
|
T.MULTISELECT,
|
|
T.HEIGHT,
|
|
T.WIDTH,
|
|
T2.NAME_TYPE AS ATTRIBUTE_TYPE
|
|
,[dbo].[FNIDB_GET_TERM_FOR_TERM_ID] (T.SOURCE_SQL) AS SOURCE_SQL
|
|
,[dbo].[FNIDB_GET_TERM_FOR_TERM_ID] (T.ADDED_WHO) AS ADDED_WHO
|
|
,T.ADDED_WHEN
|
|
,[dbo].[FNIDB_GET_TERM_FOR_TERM_ID] (T.CHANGED_WHO) AS CHANGED_WHO
|
|
,T.CHANGED_WHEN
|
|
FROM TBIDB_SEARCH_PROFILE_ATTRIBUTES T INNER JOIN TBIDB_ATTRIBUTE T1 ON T.ATTRIBUTE_ID = T1.GUID
|
|
INNER JOIN TBIDB_ATTRIBUTE_TYPE T2 ON T1.TYP_ID = T2.GUID
|
|
WHERE T.SEARCH_PROFIL_ID = @pSEARCH_PROFIL_ID --AND ATTRIBUTE_ID = @pATTRIBUTE_ID
|
|
ORDER BY [SEQUENCE]
|
|
END
|
|
GO
|
|
--drop table TBIDB_SEARCH_ATTRIBUTES_LINKS;
|
|
CREATE TABLE TBIDB_SEARCH_ATTRIBUTES_LINKS
|
|
(
|
|
GUID INTEGER NOT NULL IDENTITY (1, 1),
|
|
DEP_ATTR_ID INTEGER NOT NULL,
|
|
LINKED_ATTR_ID INTEGER NOT NULL,
|
|
ADDED_WHO BIGINT,
|
|
ADDED_WHEN DATETIME NOT NULL DEFAULT GETDATE(),
|
|
CHANGED_WHO BIGINT,
|
|
CHANGED_WHEN DATETIME,
|
|
CONSTRAINT PK_TBIDB_SEARCH_ATTRIBUTES_LINKS_GUID PRIMARY KEY (GUID),
|
|
CONSTRAINT FK_TBIDB_SEARCH_ATTRIBUTES_LINKS_DA_ID FOREIGN KEY (DEP_ATTR_ID) REFERENCES TBIDB_SEARCH_PROFILE_ATTRIBUTES (GUID),
|
|
CONSTRAINT FK_TBIDB_SEARCH_ATTRIBUTES_LINKS_LA_ID FOREIGN KEY (LINKED_ATTR_ID) REFERENCES TBIDB_SEARCH_PROFILE_ATTRIBUTES (GUID),
|
|
CONSTRAINT FK_TBIDB_SEARCH_ATTRIBUTES_LINKS_ADDED_WHO FOREIGN KEY (ADDED_WHO) REFERENCES TBIDB_TERM_VALUE_VARCHAR (GUID),
|
|
CONSTRAINT FK_TBIDB_SEARCH_ATTRIBUTES_LINKS_CHANGED_WHO FOREIGN KEY (CHANGED_WHO) REFERENCES TBIDB_TERM_VALUE_VARCHAR (GUID)
|
|
)
|
|
GO
|
|
--DROP TABLE TBIDB_SEARCH_RESTRICTIONS_INPUT
|
|
CREATE TABLE TBIDB_SEARCH_RESTRICTIONS_INPUT
|
|
(
|
|
GUID INTEGER NOT NULL IDENTITY (1, 1),
|
|
SEARCH_ID INTEGER NOT NULL,
|
|
RESTR_ATTR_ID INTEGER NOT NULL,
|
|
SOURCE_ATTR_ID INTEGER NOT NULL,
|
|
TERM VARCHAR(900) NOT NULL,
|
|
USR_ID INTEGER NOT NULL,
|
|
ADDED_WHEN DATETIME NOT NULL DEFAULT GETDATE(),
|
|
|
|
CONSTRAINT PK_TBIDB_SEARCH_RESTRICTIONS_INPUT_GUID PRIMARY KEY (GUID),
|
|
CONSTRAINT FK_TBIDB_SEARCH_RESTRICTIONS_INPUT_SID FOREIGN KEY (SEARCH_ID) REFERENCES TBIDB_SEARCH_PROFILE (GUID),
|
|
CONSTRAINT FK_TBIDB_SEARCH_RESTRICTIONS_INPUT_RA_ID FOREIGN KEY (RESTR_ATTR_ID) REFERENCES TBIDB_SEARCH_PROFILE_ATTRIBUTES (GUID),
|
|
CONSTRAINT FK_TBIDB_SEARCH_RESTRICTIONS_INPUT_SA_ID FOREIGN KEY (SOURCE_ATTR_ID) REFERENCES TBIDB_SEARCH_PROFILE_ATTRIBUTES (GUID),
|
|
)
|
|
GO
|
|
CREATE TABLE TBIDB_SEARCH_RESTRICTIONS_OBJECTS
|
|
(
|
|
GUID INTEGER NOT NULL IDENTITY (1, 1),
|
|
SEARCH_ID INTEGER NOT NULL,
|
|
RESTR_ATTR_ID INTEGER NOT NULL,
|
|
SOURCE_ATTR_ID INTEGER NOT NULL,
|
|
IDB_OBJ_ID BIGINT NOT NULL,
|
|
USR_ID INTEGER NOT NULL,
|
|
ADDED_WHEN DATETIME NOT NULL DEFAULT GETDATE(),
|
|
|
|
CONSTRAINT PK_TBIDB_SEARCH_RESTRICTIONS_OBJECTS_GUID PRIMARY KEY (GUID),
|
|
CONSTRAINT FK_TBIDB_SEARCH_RESTRICTIONS_OBJECTS_SID FOREIGN KEY (SEARCH_ID) REFERENCES TBIDB_SEARCH_PROFILE (GUID),
|
|
CONSTRAINT FK_TBIDB_SEARCH_RESTRICTIONS_OBJECTS_RA_ID FOREIGN KEY (RESTR_ATTR_ID) REFERENCES TBIDB_SEARCH_PROFILE_ATTRIBUTES (GUID),
|
|
CONSTRAINT FK_TBIDB_SEARCH_RESTRICTIONS_OBJECTS_SA_ID FOREIGN KEY (SOURCE_ATTR_ID) REFERENCES TBIDB_SEARCH_PROFILE_ATTRIBUTES (GUID),
|
|
CONSTRAINT FK_TBIDB_SEARCH_RESTRICTIONS_OBJECTS_IOBJ_ID FOREIGN KEY (IDB_OBJ_ID) REFERENCES TBIDB_OBJECT (IDB_OBJ_ID)
|
|
)
|
|
GO
|
|
CREATE TRIGGER [dbo].[TBIDB_SEARCH_RESTRICTIONS_INPUT_AFT_INS] ON [dbo].[TBIDB_SEARCH_RESTRICTIONS_INPUT]
|
|
WITH EXECUTE AS CALLER
|
|
FOR INSERT
|
|
AS
|
|
BEGIN TRY
|
|
DECLARE
|
|
@SEARCH_ID INTEGER,
|
|
@RESTR_ATTR_ID INTEGER,
|
|
@SOURCE_ATTR_ID INTEGER,
|
|
@TERM VARCHAR(900),
|
|
@USR_ID INTEGER,
|
|
@pLANG_CODE VARCHAR(5)
|
|
|
|
SELECT
|
|
@SEARCH_ID = SEARCH_ID,
|
|
@RESTR_ATTR_ID = RESTR_ATTR_ID,
|
|
@SOURCE_ATTR_ID = SOURCE_ATTR_ID,
|
|
@TERM = TERM,
|
|
@USR_ID = USR_ID
|
|
|
|
FROM INSERTED
|
|
|
|
--DELETE FROM TBIDB_SEARCH_RESTRICTIONS_OBJECTS
|
|
--WHERE
|
|
-- SEARCH_ID = @SEARCH_ID AND
|
|
-- RESTR_ATTR_ID = @RESTR_ATTR_ID AND
|
|
-- SOURCE_ATTR_ID = @SOURCE_ATTR_ID AND
|
|
-- USR_ID = @USR_ID;
|
|
|
|
SELECT @pLANG_CODE = [LANGUAGE] FROM DD_ECM_TEST.dbo.TBDD_USER WHERE GUID = @USR_ID
|
|
INSERT INTO TBIDB_SEARCH_RESTRICTIONS_OBJECTS (SEARCH_ID,RESTR_ATTR_ID, SOURCE_ATTR_ID, IDB_OBJ_ID, USR_ID)
|
|
SELECT @SEARCH_ID,@RESTR_ATTR_ID, @SOURCE_ATTR_ID,T.IDB_OBJECT_ID,@USR_ID
|
|
FROM [dbo].[FNIDB_GET_TERM_FOR_ATTRIBUTE_ID] (@SOURCE_ATTR_ID,@pLANG_CODE,@USR_ID) T LEFT JOIN TBIDB_SEARCH_RESTRICTIONS_OBJECTS T1
|
|
ON T.IDB_OBJECT_ID = T1.IDB_OBJ_ID
|
|
where T.TERM_VALUE = @TERM AND T1.IDB_OBJ_ID IS NULL
|
|
--where TERM_VALUE = @TERM
|
|
|
|
END TRY
|
|
BEGIN CATCH
|
|
PRINT 'ERROR IN TRIGGER: ' + CONVERT(VARCHAR(30),ERROR_PROCEDURE())
|
|
+ ' - ERROR-MESSAGE: '
|
|
+ CONVERT(VARCHAR(500),ERROR_MESSAGE())
|
|
END CATCH
|
|
GO
|
|
|
|
CREATE NONCLUSTERED INDEX [IDXTBIDB_OBJECT_METADATA_ATTR_ID1]
|
|
ON [dbo].[TBIDB_OBJECT_METADATA] ([ATTR_ID])
|
|
INCLUDE ([IDB_OBJ_ID],[TEXT_TERM_LANG_ID],[ADDED_WHO],[ADDED_WHEN])
|
|
GO
|
|
CREATE NONCLUSTERED INDEX [TBIDB_LANGUAGE_TERM_METADATA_LANG_TERM_ID]
|
|
ON [dbo].[TBIDB_LANGUAGE_TERM_METADATA] ([LANG_TERM_ID])
|
|
GO
|
|
CREATE NONCLUSTERED INDEX [IDXTBIDB_OBJECT_METADATA2]
|
|
ON [dbo].[TBIDB_OBJECT_METADATA] ([ATTR_ID])
|
|
INCLUDE ([IDB_OBJ_ID],[INT_TERM_ID],[ADDED_WHO],[ADDED_WHEN])
|
|
GO
|
|
CREATE NONCLUSTERED INDEX [IDXTBIDB_OBJECT_METADATA_ATTR_ID_TEXT_TERM_LANG_ID]
|
|
ON [dbo].[TBIDB_OBJECT_METADATA] ([ATTR_ID],[TEXT_TERM_LANG_ID])
|
|
INCLUDE ([IDB_OBJ_ID],[ADDED_WHO],[ADDED_WHEN])
|
|
GO
|
|
CREATE NONCLUSTERED INDEX [IDXTBIDB_OBJECT_METADATA3]
|
|
ON [dbo].[TBIDB_OBJECT_METADATA] ([ATTR_ID])
|
|
INCLUDE ([IDB_OBJ_ID],[FLOAT_TERM_ID],[ADDED_WHO],[ADDED_WHEN])
|
|
GO
|
|
CREATE NONCLUSTERED INDEX [IDXTBIDB_OBJECT_METADATA_ATTR_ID_[FLOAT_TERM_ID]
|
|
ON [dbo].[TBIDB_OBJECT_METADATA] ([ATTR_ID],[FLOAT_TERM_ID])
|
|
INCLUDE ([IDB_OBJ_ID],[ADDED_WHO],[ADDED_WHEN])
|
|
GO
|
|
CREATE VIEW VWIDB_SEARCH_PROFILE_ATTRIBUTES AS
|
|
SELECT
|
|
T.SEARCH_PROFIL_ID,
|
|
T.GUID,
|
|
T.ATTRIBUTE_ID,
|
|
--T.DEPENDING_ATTRIBUTE1,
|
|
T1.TITLE AS ATTRIBUTE_TITLE,
|
|
T.HEIGHT,
|
|
T.WIDTH,
|
|
T.MULTISELECT,
|
|
T2.NAME_TYPE AS ATTRIBUTE_TYPE
|
|
,[dbo].[FNIDB_GET_TERM_FOR_TERM_ID] (T.SOURCE_SQL) AS SOURCE_SQL
|
|
,[dbo].[FNIDB_GET_TERM_FOR_TERM_ID] (T.ADDED_WHO) AS ADDED_WHO
|
|
,T.ADDED_WHEN
|
|
,[dbo].[FNIDB_GET_TERM_FOR_TERM_ID] (T.CHANGED_WHO) AS CHANGED_WHO
|
|
,T.CHANGED_WHEN
|
|
,T.[SEQUENCE]
|
|
FROM
|
|
TBIDB_SEARCH_PROFILE_ATTRIBUTES T INNER JOIN TBIDB_ATTRIBUTE T1 ON T.ATTRIBUTE_ID = T1.GUID
|
|
INNER JOIN TBIDB_ATTRIBUTE_TYPE T2 ON T1.TYP_ID = T2.GUID
|
|
GO
|
|
CREATE VIEW VWIDB_SEARCH_ATTRIBUTES_LINKS AS
|
|
SELECT
|
|
T1.SEARCH_PROFIL_ID,
|
|
T.GUID,
|
|
T.DEP_ATTR_ID,
|
|
--T.DEPENDING_ATTRIBUTE1,
|
|
T3.TITLE AS DEP_ATTRIBUTE_TITLE,
|
|
[dbo].[FNIDB_GET_TERM_FOR_TERM_ID] (T1.SOURCE_SQL) DEP_SOURCE_SQL,
|
|
T.LINKED_ATTR_ID
|
|
--T.DEPENDING_ATTRIBUTE1,
|
|
,T5.TITLE AS LINK_ATTRIBUTE_TITLE
|
|
,T.ADDED_WHEN
|
|
,[dbo].[FNIDB_GET_TERM_FOR_TERM_ID] (T.CHANGED_WHO) AS CHANGED_WHO
|
|
,T.CHANGED_WHEN
|
|
FROM
|
|
TBIDB_SEARCH_ATTRIBUTES_LINKS T INNER JOIN TBIDB_SEARCH_PROFILE_ATTRIBUTES T1 ON T.DEP_ATTR_ID = T1.ATTRIBUTE_ID
|
|
--INNER JOIN TBIDB_SEARCH_PROFILE_ATTRIBUTES T2 ON T.LINKED_ATTR_ID = T2.ATTRIBUTE_ID
|
|
INNER JOIN TBIDB_ATTRIBUTE T3 ON T.DEP_ATTR_ID = T3.GUID
|
|
INNER JOIN TBIDB_ATTRIBUTE T5 ON T.LINKED_ATTR_ID = T5.GUID
|
|
|
|
GO
|
|
|
|
-- =============================================
|
|
-- Author: Digital Data MS
|
|
-- Creation date: 22.10.2020
|
|
-- =============================================
|
|
CREATE FUNCTION [dbo].[FNIDB_GET_SEARCH_PROFILES] (@pUSERID INT, @pLANGCODE VARCHAR(5))
|
|
RETURNS @Output TABLE (SEARCH_PROFILE_ID INTEGER,TITLE VARCHAR(100),RESULT_SQL VARCHAR(915),PSOURCE VARCHAR(50))
|
|
AS
|
|
BEGIN
|
|
DECLARE
|
|
@ATTR_ID INTEGER,
|
|
@TYP_ID TINYINT,
|
|
@TYP_DESCR VARCHAR(100),
|
|
@MULTI BIT,
|
|
@LANG_ID INT,
|
|
@TERM_RESULT VARCHAR(900),
|
|
@IDB_CREATED_WHEN DATETIME,
|
|
@IDB_CREATED_WHO VARCHAR(100),
|
|
@IDB_CHANGED_WHEN DATETIME,
|
|
@IDB_CHANGED_WHO VARCHAR(100)
|
|
|
|
INSERT INTO @Output (SEARCH_PROFILE_ID,TITLE,RESULT_SQL,PSOURCE)
|
|
SELECT
|
|
T.GUID
|
|
,dbo.[FNIDB_GET_TERM_FOR_LANGUAGE_TERM_METADATA_GUID ] (T.TITLE_ID,@pLANGCODE) AS TITLE
|
|
,[dbo].[FNIDB_GET_TERM_FOR_TERM_ID] (T2.SEARCH_TERM_ID) AS RESULT_SQL
|
|
,'TBIDB_SEARCH_PROFILE_USER'
|
|
FROM TBIDB_SEARCH_PROFILE T INNER JOIN TBIDB_SEARCH_PROFILE_USER T1 ON T.GUID = T1.SEARCH_PROFIL_ID
|
|
INNER JOIN TBIDB_SEARCH_LANGUAGE_SQL_RESULT T2 ON T.GUID = T2.SEARCH_PROFIL_ID
|
|
INNER JOIN TBIDB_LANGUAGE T3 ON T2.LANGUAGE_ID = T3.GUID
|
|
WHERE T1.USER_ID = @pUSERID AND UPPER(T3.LANG_CODE) = UPPER(@pLANGCODE)
|
|
|
|
INSERT INTO @Output (SEARCH_PROFILE_ID,TITLE,RESULT_SQL,PSOURCE)
|
|
SELECT
|
|
T.GUID
|
|
,dbo.[FNIDB_GET_TERM_FOR_LANGUAGE_TERM_METADATA_GUID ] (T.TITLE_ID,@pLANGCODE) AS TITLE
|
|
,[dbo].[FNIDB_GET_TERM_FOR_TERM_ID] (T4.SEARCH_TERM_ID) AS RESULT_SQL
|
|
,'TBIDB_SEARCH_PROFILE_GROUP'
|
|
FROM TBIDB_SEARCH_PROFILE T INNER JOIN TBIDB_SEARCH_PROFILE_GROUP T1 ON T.GUID = T1.SEARCH_PROFIL_ID
|
|
INNER JOIN DD_ECM_TEST.dbo.TBDD_GROUPS T2 ON T1.GROUP_ID = T2.GUID
|
|
INNER JOIN DD_ECM_TEST.dbo.TBDD_GROUPS_USER T3 ON T2.GUID = T3.GROUP_ID
|
|
INNER JOIN TBIDB_SEARCH_LANGUAGE_SQL_RESULT T4 ON T.GUID = T4.SEARCH_PROFIL_ID
|
|
INNER JOIN TBIDB_LANGUAGE T5 ON T4.LANGUAGE_ID = T3.GUID
|
|
WHERE T3.USER_ID = @pUSERID AND UPPER(T5.LANG_CODE) = UPPER(@pLANGCODE)
|
|
|
|
|
|
RETURN
|
|
END
|
|
GO
|
|
-- =============================================
|
|
-- Author: DD MS
|
|
-- Create date 05.11.2020
|
|
-- =============================================
|
|
CREATE PROCEDURE [dbo].[PRIDB_NEW_TERM_FOR_ATTRIBUTE] @ATTRIBUTE VARCHAR(100),@TERM VARCHAR(MAX), @WHO VARCHAR(100), @TERM_ID BIGINT OUTPUT
|
|
AS
|
|
BEGIN
|
|
DECLARE @TERM_TYPE_ID TINYINT
|
|
|
|
SELECT @TERM_TYPE_ID = TYP_ID FROM TBIDB_ATTRIBUTE WHERE UPPER(TITLE) = UPPER(@ATTRIBUTE)
|
|
IF @TERM_TYPE_ID = 7 AND UPPER(@TERM) = 'TRUE'
|
|
SET @TERM = 1
|
|
ELSE IF @TERM_TYPE_ID = 7 AND UPPER(@TERM) = 'FALSE'
|
|
SET @TERM = 0
|
|
--PRINT 'PRIDB_NEW_TERM: TERM_TYPE_ID IS: ' + CONVERT(VARCHAR(2),@TERM_TYPE_ID) + ' # TERM: ' + @TERM
|
|
IF @TERM_TYPE_ID IN (1,8) --VARCHAR
|
|
IF NOT EXISTS(SELECT GUID FROM TBIDB_TERM_VALUE_VARCHAR WHERE UPPER(TERM_VALUE) = UPPER(@TERM))
|
|
BEGIN
|
|
INSERT INTO TBIDB_TERM_VALUE_VARCHAR (TERM_VALUE,ADDED_WHO) VALUES (@TERM,@WHO)
|
|
SELECT @TERM_ID = GUID FROM TBIDB_TERM_VALUE_VARCHAR where TERM_VALUE = @TERM
|
|
END
|
|
ELSE
|
|
SELECT @TERM_ID = GUID FROM TBIDB_TERM_VALUE_VARCHAR WHERE UPPER(TERM_VALUE) = UPPER(@TERM)
|
|
ELSE IF @TERM_TYPE_ID IN (2,7,9) --BIGINT
|
|
IF NOT EXISTS(SELECT GUID FROM TBIDB_TERM_VALUE_INTEGER WHERE TERM_VALUE = CONVERT(BIGINT,@TERM))
|
|
BEGIN
|
|
INSERT INTO TBIDB_TERM_VALUE_INTEGER (TERM_VALUE,ADDED_WHO) VALUES (CONVERT(BIGINT,@TERM),@WHO)
|
|
SELECT @TERM_ID =GUID FROM TBIDB_TERM_VALUE_INTEGER where TERM_VALUE = @TERM
|
|
END
|
|
ELSE
|
|
SELECT @TERM_ID = GUID FROM TBIDB_TERM_VALUE_INTEGER WHERE TERM_VALUE = CONVERT(BIGINT,@TERM)
|
|
ELSE IF @TERM_TYPE_ID = 3 --FLOAT
|
|
IF NOT EXISTS(SELECT GUID FROM TBIDB_TERM_VALUE_FLOAT WHERE TERM_VALUE = CONVERT(FLOAT,@TERM))
|
|
BEGIN
|
|
INSERT INTO TBIDB_TERM_VALUE_FLOAT (TERM_VALUE,ADDED_WHO) VALUES (CONVERT(FLOAT,@TERM),@WHO)
|
|
SELECT @TERM_ID =GUID FROM TBIDB_TERM_VALUE_FLOAT where TERM_VALUE = @TERM
|
|
END
|
|
ELSE
|
|
SELECT @TERM_ID = GUID FROM TBIDB_TERM_VALUE_FLOAT WHERE TERM_VALUE = CONVERT(FLOAT,@TERM)
|
|
ELSE IF @TERM_TYPE_ID = 4 --DECIMAL
|
|
IF NOT EXISTS(SELECT GUID FROM TBIDB_TERM_VALUE_DECIMAL WHERE TERM_VALUE = CONVERT(DECIMAL(19,0),@TERM))
|
|
BEGIN
|
|
INSERT INTO TBIDB_TERM_VALUE_DECIMAL (TERM_VALUE,ADDED_WHO) VALUES (CONVERT(DECIMAL(19,0),@TERM),@WHO)
|
|
SELECT @TERM_ID =GUID FROM TBIDB_TERM_VALUE_DECIMAL where TERM_VALUE = @TERM
|
|
END
|
|
ELSE
|
|
SELECT @TERM_ID = GUID FROM TBIDB_TERM_VALUE_DECIMAL WHERE TERM_VALUE = CONVERT(DECIMAL(19,0),@TERM)
|
|
ELSE IF @TERM_TYPE_ID = 5 --DATE
|
|
IF NOT EXISTS(SELECT GUID FROM TBIDB_TERM_VALUE_DATE WHERE TERM_VALUE = CONVERT(DATE,@TERM))
|
|
BEGIN
|
|
INSERT INTO TBIDB_TERM_VALUE_DATE (TERM_VALUE,ADDED_WHO) VALUES (CONVERT(DATE,@TERM),@WHO)
|
|
SELECT @TERM_ID =GUID FROM TBIDB_TERM_VALUE_DATE where TERM_VALUE = @TERM
|
|
END
|
|
ELSE
|
|
SELECT @TERM_ID = GUID FROM TBIDB_TERM_VALUE_DATE WHERE TERM_VALUE = CONVERT(DATE,@TERM)
|
|
|
|
PRINT '### PRIDB_NEW_TERM: TERM-ID: ' + CONVERT(VARCHAR(10),@TERM_ID) + '###'
|
|
END
|
|
GO
|
|
|
|
CREATE TABLE TBIDB_USER_SEARCH_CRITERIA
|
|
(
|
|
GUID BIGINT NOT NULL IDENTITY (1, 1),
|
|
SEARCH_PROFIL_ID INTEGER NOT NULL,
|
|
USERID INTEGER NOT NULL,
|
|
ATTRIBUTE_ID INTEGER NOT NULL,
|
|
TERM_TEXT VARCHAR(900),
|
|
--TERM_DATE DATE,
|
|
--TERM_FLOAT FLOAT,
|
|
--TERM_DEC DECIMAL(19,2),
|
|
TERM_ID BIGINT,
|
|
ADDED_WHO BIGINT,
|
|
ADDED_WHEN DATETIME NOT NULL DEFAULT GETDATE(),
|
|
CONSTRAINT PK_TBIDB_USER_SEARCH_CRITERIA_GUID PRIMARY KEY (GUID),
|
|
CONSTRAINT FK_TBIDB_USER_SEARCH_CRITERIA_SPID FOREIGN KEY (SEARCH_PROFIL_ID) REFERENCES TBIDB_SEARCH_PROFILE (GUID),
|
|
CONSTRAINT FK_TBIDB_USER_SEARCH_CRITERIA_ADDED_WHO FOREIGN KEY (ADDED_WHO) REFERENCES TBIDB_TERM_VALUE_VARCHAR (GUID)
|
|
)
|
|
GO
|
|
CREATE PROCEDURE [dbo].[PRIDB_NEW_USER_SEARCH_CRITERIA] @pSEARCHID INTEGER,@pUSER_ID INTEGER,@pATTRIBUTE_ID INTEGER,@pTERM VARCHAR(900), @pWHO VARCHAR(100)
|
|
AS
|
|
BEGIN
|
|
DECLARE @WHO_TERM_ID BIGINT,@ATTR_TYPE INT, @ATTR_TERM_ID BIGINT,@ATTRIBUTE VARCHAR(100)
|
|
SELECT @ATTR_TYPE = TYP_ID,@ATTRIBUTE = TITLE FROM TBIDB_ATTRIBUTE WHERE GUID = @pATTRIBUTE_ID
|
|
EXEC PRIDB_NEW_TERM 'VARCHAR',@pWHO,@pWHO,@TERM_ID = @WHO_TERM_ID OUTPUT;
|
|
EXEC PRIDB_NEW_TERM_FOR_ATTRIBUTE @ATTRIBUTE,@pTERM,@pWHO,@TERM_ID = @ATTR_TERM_ID OUTPUT;
|
|
|
|
-- GUID NAME_TYPE
|
|
|
|
--3 FLOAT
|
|
--4 DECIMAL
|
|
--5 DATE
|
|
--6 DATETIME
|
|
|
|
--9 VECTOR INTEGER
|
|
INSERT INTO TBIDB_USER_SEARCH_CRITERIA (SEARCH_PROFIL_ID, USERID, ATTRIBUTE_ID, ADDED_WHO, TERM_TEXT, TERM_ID) VALUES
|
|
(@pSEARCHID, @pUSER_ID, @pATTRIBUTE_ID, @WHO_TERM_ID, @pTERM, @ATTR_TERM_ID)
|
|
/*IF @ATTR_TYPE IN (1,2,7,8)
|
|
BEGIN
|
|
INSERT INTO TBIDB_USER_SEARCH_CRITERIA ( SEARCH_PROFIL_ID, USERID, ATTRIBUTE_ID, TERM_TEXT, ADDED_WHO,TERM_ID) VALUES
|
|
( @pSEARCHID, @pUSER_ID, @pATTRIBUTE_ID, @pTERM, @WHO_TERM_ID,@ATTR_TERM_ID)
|
|
END
|
|
ELSE IF @ATTR_TYPE = 5
|
|
INSERT INTO TBIDB_USER_SEARCH_CRITERIA ( SEARCH_PROFIL_ID, USERID, ATTRIBUTE_ID, TERM_DATE, ADDED_WHO,TERM_ID) VALUES
|
|
( @pSEARCHID, @pUSER_ID, @pATTRIBUTE_ID, Convert(Date,@pTERM), @WHO_TERM_ID,@ATTR_TERM_ID)
|
|
ELSE IF @ATTR_TYPE = 3
|
|
INSERT INTO TBIDB_USER_SEARCH_CRITERIA ( SEARCH_PROFIL_ID, USERID, ATTRIBUTE_ID, TERM_FLOAT, ADDED_WHO,TERM_ID) VALUES
|
|
( @pSEARCHID, @pUSER_ID, @pATTRIBUTE_ID, Convert(float,@pTERM), @WHO_TERM_ID,@ATTR_TERM_ID)
|
|
*/
|
|
END
|
|
GO
|
|
|
|
CREATE TABLE TBIDB_SEARCH_CRITERIA_SAVE
|
|
(
|
|
GUID BIGINT NOT NULL IDENTITY (1, 1),
|
|
SEARCH_PROFIL_ID INTEGER NOT NULL,
|
|
ATTRIBUTE_ID INTEGER NOT NULL,
|
|
TERM_TEXT VARCHAR(900),
|
|
--TERM_DATE DATE,
|
|
--TERM_FLOAT FLOAT,
|
|
--TERM_DEC DECIMAL(19,2),
|
|
TERM_ID BIGINT,
|
|
ADDED_WHO BIGINT,
|
|
ADDED_WHEN DATETIME NOT NULL DEFAULT GETDATE(),
|
|
CONSTRAINT PK_TBIDB_SEARCH_CRITERIA_SAVE_GUID PRIMARY KEY (GUID),
|
|
CONSTRAINT FK_TBIDB_SEARCH_CRITERIA_SAVE_SPID FOREIGN KEY (SEARCH_PROFIL_ID) REFERENCES TBIDB_SEARCH_PROFILE (GUID),
|
|
CONSTRAINT FK_TBIDB_SEARCH_CRITERIA_SAVE_ADDED_WHO FOREIGN KEY (ADDED_WHO) REFERENCES TBIDB_TERM_VALUE_VARCHAR (GUID)
|
|
)
|
|
GO
|
|
CREATE PROCEDURE [dbo].[PRIDB_SEARCH_CRITERIA_SAVE] @pSEARCHID INTEGER,@pUserID INT, @pWHO VARCHAR(100)
|
|
AS
|
|
BEGIN
|
|
DECLARE @WHO_TERM_ID BIGINT
|
|
EXEC PRIDB_NEW_TERM 'VARCHAR',@pWHO,@pWHO,@TERM_ID = @WHO_TERM_ID OUTPUT;
|
|
DELETE FROM TBIDB_SEARCH_CRITERIA_SAVE WHERE SEARCH_PROFIL_ID = @pSEARCHID
|
|
|
|
INSERT INTO [dbo].[TBIDB_SEARCH_CRITERIA_SAVE]
|
|
([SEARCH_PROFIL_ID]
|
|
,[ATTRIBUTE_ID]
|
|
,[TERM_TEXT]
|
|
,TERM_ID
|
|
--,[TERM_DATE]
|
|
--,[TERM_FLOAT]
|
|
--,[TERM_DEC]
|
|
,[ADDED_WHO])
|
|
SELECT [SEARCH_PROFIL_ID]
|
|
,[ATTRIBUTE_ID]
|
|
,[TERM_TEXT]
|
|
,TERM_ID
|
|
--,[TERM_DATE]
|
|
--,[TERM_FLOAT]
|
|
--,[TERM_DEC]
|
|
,@WHO_TERM_ID FROM TBIDB_USER_SEARCH_CRITERIA WHERE USERID = @pUserID AND SEARCH_PROFIL_ID = @pSEARCHID
|
|
END
|
|
GO
|
|
CREATE VIEW VWIDB_SEARCH_ATTRIBUTES_USER
|
|
AS
|
|
select TOP 100 PERCENT
|
|
T.USERID,T.SEARCH_PROFIL_ID, T.ATTRIBUTE_ID,T1.TITLE,T2.SEQUENCE
|
|
from
|
|
TBIDB_USER_SEARCH_CRITERIA T INNER JOIN TBIDB_ATTRIBUTE T1 ON T.ATTRIBUTE_ID = T1.GUID
|
|
INNER JOIN TBIDB_SEARCH_PROFILE_ATTRIBUTES T2 ON T.SEARCH_PROFIL_ID = T2.SEARCH_PROFIL_ID AND T.ATTRIBUTE_ID = T2.ATTRIBUTE_ID
|
|
GROUP BY T.USERID,T.SEARCH_PROFIL_ID, T.ATTRIBUTE_ID,T1.TITLE,T2.SEQUENCE
|
|
ORDER BY T.USERID, T.SEARCH_PROFIL_ID, T2.SEQUENCE
|
|
GO
|
|
CREATE FUNCTION [dbo].[FNIDB_SEARCH_RESULT_GET_OBJECTS] (@pUSERID INT,@PSEARCHID INT)
|
|
--DECLARE @pUSERID INT,@PSEARCHID INT
|
|
--SET @pUSERID =1
|
|
--SET @PSEARCHID = 7
|
|
RETURNS @TBRESULT TABLE (RUN INT, IDB_OBJ_ID BIGINT, ATTR_ID INT,ATTR_TITLE VARCHAR(100), COMMENT VARCHAR(200))
|
|
AS
|
|
BEGIN
|
|
DECLARE
|
|
@GUID BIGINT,@ATTR_ID INT,@LASTATTR_ID INT ,@ATTR_TITLE VARCHAR(100),@RUN TINYINT,@COUNT_ATTRIBUTES TINYINT
|
|
,@RESTRICTIONSYN BIT
|
|
|
|
SET @LASTATTR_ID = 0
|
|
DECLARE @TBRESULT_RESTRICTION TABLE (RUN INT, IDB_OBJ_ID BIGINT, ATTR_ID INT,ATTR_TITLE VARCHAR(100), COMMENT VARCHAR(200))
|
|
select @COUNT_ATTRIBUTES = COUNT(T.USERID)
|
|
from
|
|
VWIDB_SEARCH_ATTRIBUTES_USER T
|
|
WHERE
|
|
T.SEARCH_PROFIL_ID = @PSEARCHID AND T.USERID = @pUSERID
|
|
|
|
SET @RUN = 1
|
|
DECLARE cursorSearchAttributes CURSOR FOR
|
|
select
|
|
T.ATTRIBUTE_ID,T.TITLE
|
|
from
|
|
VWIDB_SEARCH_ATTRIBUTES_USER T
|
|
WHERE
|
|
T.SEARCH_PROFIL_ID = @PSEARCHID AND T.USERID = @pUSERID
|
|
|
|
ORDER BY T.SEQUENCE
|
|
OPEN cursorSearchAttributes
|
|
FETCH NEXT FROM cursorSearchAttributes INTO @ATTR_ID,@ATTR_TITLE
|
|
WHILE @@FETCH_STATUS = 0
|
|
BEGIN
|
|
DECLARE @SEARCH_DEF_ID BIGINT, @TERM_ID BIGINT
|
|
DECLARE cursorDetailAttribute CURSOR FOR
|
|
select
|
|
T.GUID,T.TERM_ID
|
|
from
|
|
TBIDB_USER_SEARCH_CRITERIA T
|
|
WHERE
|
|
T.SEARCH_PROFIL_ID = 7 AND T.USERID = 1 AND T.ATTRIBUTE_ID = @ATTR_ID
|
|
OPEN cursorDetailAttribute
|
|
FETCH NEXT FROM cursorDetailAttribute INTO @SEARCH_DEF_ID,@TERM_ID
|
|
WHILE @@FETCH_STATUS = 0
|
|
BEGIN
|
|
INSERT INTO @TBRESULT_RESTRICTION ( RUN, IDB_OBJ_ID, ATTR_ID, ATTR_TITLE)
|
|
SELECT @SEARCH_DEF_ID, IDB_OBJECT_ID, @ATTR_ID, @ATTR_TITLE
|
|
FROM
|
|
FNIDB_GET_TERM_FOR_ATTRIBUTE_ID (@ATTR_ID,'de-DE',@pUSERID)
|
|
WHERE
|
|
TERM_ID = @TERM_ID
|
|
--SELECT * FROM @TBRESULT_RESTRICTION
|
|
FETCH NEXT FROM cursorDetailAttribute INTO @SEARCH_DEF_ID,@TERM_ID
|
|
END
|
|
CLOSE cursorDetailAttribute
|
|
DEALLOCATE cursorDetailAttribute
|
|
--PRINT 'FIRST SEARCH ROW'
|
|
--PRINT @TBRESULT_RESTRICTION
|
|
--PRINT '@COUNT_ATTRIBUTES: ' + CONVERT(VARCHAR(2),@COUNT_ATTRIBUTES)
|
|
--PRINT '@RUN: ' + CONVERT(VARCHAR(2),@RUN)
|
|
IF @RUN = 1
|
|
INSERT INTO @TBRESULT ( RUN, IDB_OBJ_ID, ATTR_ID, ATTR_TITLE, COMMENT)
|
|
SELECT * FROM @TBRESULT_RESTRICTION
|
|
ELSE
|
|
IF @COUNT_ATTRIBUTES = @RUN
|
|
BEGIN
|
|
-- --#### Now deleting the Results which are not part of the restriction
|
|
--PRINT 'DELETE AS THIS IS THE LAST RUN PER ATTRIBUTE'
|
|
DELETE FROM @TBRESULT WHERE IDB_OBJ_ID NOT IN (
|
|
SELECT IDB_OBJ_ID FROM @TBRESULT_RESTRICTION)
|
|
-- UPDATE T
|
|
-- SET
|
|
-- T.RUN = T1.RUN
|
|
-- FROM
|
|
-- @TBRESULT T INNER JOIN
|
|
-- @TBRESULT_RESTRICTION T1 ON T.IDB_OBJ_ID = T1.IDB_OBJ_ID
|
|
END
|
|
SET @RUN +=1
|
|
SET @LASTATTR_ID = @ATTR_ID
|
|
DELETE FROM @TBRESULT_RESTRICTION
|
|
FETCH NEXT FROM cursorSearchAttributes INTO @ATTR_ID,@ATTR_TITLE
|
|
END
|
|
CLOSE cursorSearchAttributes
|
|
DEALLOCATE cursorSearchAttributes
|
|
RETURN
|
|
--select DISTINCT IDB_OBJ_ID from @TBRESULT ORDER BY IDB_OBJ_ID
|
|
END
|
|
GO
|
|
CREATE FUNCTION [dbo].[FNIDB_SEARCH_GET_FILTER_SQL] (@pSEARCH_ID INTEGER, @pUSERID INTEGER, @pLANG_CODE VARCHAR(5))
|
|
RETURNS NVARCHAR(MAX)
|
|
AS
|
|
BEGIN
|
|
DECLARE @ATTR_ID INTEGER, @ATTR_TITLE AS VARCHAR(100), @RUN TINYINT, @RESULT NVARCHAR(MAX), @RUN_ALIAS VARCHAR(2), @RUN_SELECT VARCHAR(500)
|
|
,@RUN_FROM VARCHAR(500), @SELECT_PART NVARCHAR(MAX), @FROM_PART NVARCHAR(MAX),@SEPARATOR VARCHAR(1)
|
|
SET @RUN = 0
|
|
SET @RUN_ALIAS = 'T'
|
|
SET @SELECT_PART = 'SELECT '
|
|
SET @FROM_PART = ''
|
|
DECLARE cursAttribute CURSOR LOCAL FOR
|
|
SELECT ATTRIBUTE_ID,ATTRIBUTE_TITLE
|
|
FROM VWIDB_SEARCH_PROFILE_ATTRIBUTES WHERE SEARCH_PROFIL_ID = @pSEARCH_ID ORDER BY SEQUENCE
|
|
OPEN cursAttribute
|
|
FETCH NEXT FROM cursAttribute INTO @ATTR_ID,@ATTR_TITLE
|
|
WHILE @@FETCH_STATUS = 0
|
|
BEGIN
|
|
SET @RUN_SELECT = ''
|
|
SET @RUN_FROM = ''
|
|
IF @RUN = 0
|
|
BEGIN
|
|
SET @RUN_SELECT = 'T.IDB_OBJECT_ID, T.TERM_VALUE AS [' + @ATTR_TITLE + ']'
|
|
SET @RUN_FROM = CHAR(10) + 'FROM [dbo].[FNIDB_GET_TERM_FOR_ATTRIBUTE_ID] (' + CONVERT(VARCHAR(10),@ATTR_ID) + ',''' + @pLANG_CODE + ''',' + CONVERT(VARCHAR(10),@pUSERID) + ') T'
|
|
END
|
|
ELSE
|
|
BEGIN
|
|
SET @RUN_SELECT = ', ' + @RUN_ALIAS + CONVERT(VARCHAR(2), @RUN) + '.TERM_VALUE AS [' + @ATTR_TITLE + ']'
|
|
SET @RUN_FROM = CHAR(10) + 'INNER JOIN [dbo].[FNIDB_GET_TERM_FOR_ATTRIBUTE_ID] (' + CONVERT(VARCHAR(10),@ATTR_ID) + ',''' + @pLANG_CODE + ''',' + CONVERT(VARCHAR(10),@pUSERID) + ') ' + @RUN_ALIAS + CONVERT(VARCHAR(2), @RUN)
|
|
SET @RUN_FROM += ' ON T.IDB_OBJECT_ID = T' + CONVERT(VARCHAR(2), @RUN) + '.IDB_OBJECT_ID'
|
|
END
|
|
SET @SELECT_PART += @RUN_SELECT
|
|
SET @FROM_PART += @RUN_FROM
|
|
|
|
SET @RUN += 1
|
|
FETCH NEXT FROM cursAttribute INTO @ATTR_ID,@ATTR_TITLE
|
|
END
|
|
CLOSE cursAttribute
|
|
DEALLOCATE cursAttribute
|
|
SET @RESULT = @SELECT_PART + @FROM_PART
|
|
|
|
|
|
RETURN @RESULT
|
|
END
|
|
GO
|
|
|
|
|