392 lines
14 KiB
Transact-SQL
Raw Blame History

UPDATE TBDD_MODULES SET PRODUCT_VERSION = '2.4.5.9' where NAME = 'Record-Organizer'
GO
ALTER TABLE TBDD_USER
ADD GENERAL_VIEWER VARCHAR(30) NOT NULL DEFAULT 'NONE'
GO
UPDATE TBPMO_DOCSEARCH_RESULTLIST_CONFIG SET TYPE_ID = 2 WHERE COLUMN_VIEW = 'IN_WORK' and TYPE_ID = 1
GO
CREATE TABLE TBPMO_SELECTION_DATA
(
GUID INTEGER NOT NULL IDENTITY(1,1)
,VALUE VARCHAR(250) NOT NULL
,COMMENT VARCHAR(250)
,ID_TYPE INTEGER NOT NULL
,SEQUENCE TINYINT NOT NULL DEFAULT 0,
ADDED_WHO VARCHAR(50) NOT NULL DEFAULT 'DEFAULT',
ADDED_WHEN DATETIME DEFAULT GETDATE(),
CHANGED_WHO VARCHAR(50),
CHANGED_WHEN DATETIME,
CONSTRAINT PK_TBPMO_SELECTION_DATA PRIMARY KEY (GUID)
)
GO
CREATE TRIGGER TBPMO_SELECTION_DATA_AFT_UPD ON TBPMO_SELECTION_DATA
FOR UPDATE
AS
UPDATE TBPMO_SELECTION_DATA SET CHANGED_WHEN = GETDATE() FROM INSERTED WHERE TBPMO_SELECTION_DATA.GUID = INSERTED.GUID
GO
INSERT INTO TBPMO_SELECTION_DATA (VALUE,COMMENT,ID_TYPE,SEQUENCE) VALUES
('NONE', 'GENERAL-VIEWER',1,0)
GO
INSERT INTO TBPMO_SELECTION_DATA (VALUE,COMMENT,ID_TYPE,SEQUENCE) VALUES
('DOC-VIEW', 'GENERAL-VIEWER',1,1)
GO
CREATE FUNCTION [dbo].[FNPMO_DOC_GET_IDX](@pDOCID INTEGER, @pENTITY INTEGER, @DOCIDX VARCHAR(20))
RETURNS VARCHAR(250)
AS
BEGIN
DECLARE @HEADER_CAPTION VARCHAR(30), @VALUE VARCHAR(250), @RESULT VARCHAR(250)
SELECT @HEADER_CAPTION = HEADER_CAPTION FROM TBPMO_DOCSEARCH_RESULTLIST_CONFIG WHERE ENTITY_ID = @pENTITY AND COLUMN_VIEW = @DOCIDX
IF @HEADER_CAPTION IS NULL
SET @RESULT = 'NO CONFIGURATION'
ELSE
BEGIN
SELECT @VALUE = VALUE FROM VWPMO_DOC_INDICES WHERE DocID = @pDOCID AND COLUMN_CAPTION = @HEADER_CAPTION
IF @VALUE IS NOT NULL
SET @RESULT = @VALUE
ELSE
SET @RESULT = 'NO RESULT'
END
RETURN @RESULT
END
GO
DROP TABLE TBPMO_DOCRESULT_DROPDOWN_ITEMS
CREATE TABLE TBPMO_DOCRESULT_DROPDOWN_ITEMS
(
GUID INTEGER NOT NULL IDENTITY(1,1)
,CONFIG_ID INTEGER NOT NULL
,VALUE VARCHAR(100) NOT NULL
,SEQUENCE TINYINT NOT NULL DEFAULT 0
,[DEFAULT] BIT NOT NULL DEFAULT 0
,ADDED_WHO VARCHAR(50) NOT NULL DEFAULT 'DEFAULT'
,ADDED_WHEN DATETIME DEFAULT GETDATE()
,CHANGED_WHO VARCHAR(50)
,CHANGED_WHEN DATETIME,
CONSTRAINT PK_TBPMO_DOCRESULT_DROPDOWN_ITEMS PRIMARY KEY (GUID),
CONSTRAINT FK_TBPMO_DOCRESULT_DROPDOWN_ITEMSCONFIG_ID FOREIGN KEY (CONFIG_ID) REFERENCES TBPMO_DOCSEARCH_RESULTLIST_CONFIG (GUID),
)
GO
CREATE TRIGGER TBPMO_DOCRESULT_DROPDOWN_ITEMS_AFT_UPD ON TBPMO_DOCRESULT_DROPDOWN_ITEMS
FOR UPDATE
AS
UPDATE TBPMO_DOCRESULT_DROPDOWN_ITEMS SET CHANGED_WHEN = GETDATE() FROM INSERTED WHERE TBPMO_DOCRESULT_DROPDOWN_ITEMS.GUID = INSERTED.GUID
GO
ALTER TABLE TBDD_CLIENT
ADD LICENSE_PMO VARCHAR(5000) NOT NULL DEFAULT ''
GO
ALTER TABLE TBDD_USER_MODULE_LOG_IN
ADD CLIENT_ID INTEGER NOT NULL DEFAULT 99
GO
CREATE TABLE TBPMO_DOC_VALUES
(
GUID INTEGER NOT NULL IDENTITY(1,1),
[DocID] INTEGER NOT NULL,
[CONFIG_ID] INTEGER NOT NULL,
[VALUE] VARCHAR(MAX) NOT NULL,
ADDED_WHO VARCHAR(50) DEFAULT 'DEFAULT',
ADDED_WHEN DATETIME DEFAULT GETDATE(),
CHANGED_WHO VARCHAR(50),
CHANGED_WHEN DATETIME,
CONSTRAINT PK_TBPMO_DOC_VALUES PRIMARY KEY (GUID)
)
GO
CREATE TRIGGER TBPMO_DOC_VALUES_AFT_UPD ON TBPMO_DOC_VALUES
FOR UPDATE
AS
UPDATE TBPMO_DOC_VALUES SET CHANGED_WHEN = GETDATE() FROM INSERTED WHERE TBPMO_DOC_VALUES.[DocID] = INSERTED.[DocID]
GO
CREATE TRIGGER [dbo].[TBPMO_DOC_RECORD_LINK_AFT_INS] ON [dbo].[TBPMO_DOC_RECORD_LINK]
WITH EXECUTE AS CALLER
FOR INSERT
AS
BEGIN TRY
DECLARE
@RECORD_ID INTEGER,
@DOC_ID INTEGER,
@ADDED_WHO VARCHAR(50),
@ENTITY_ID INTEGER
SELECT
@RECORD_ID = RECORD_ID,
@DOC_ID = DOC_ID,
@ADDED_WHO = ADDED_WHO
FROM INSERTED
SELECT @ENTITY_ID = FORM_ID FROM TBPMO_RECORD WHERE GUID = @RECORD_ID
IF (SELECT COUNT(GUID) FROM TBPMO_DOCSEARCH_RESULTLIST_CONFIG WHERE ENTITY_ID = @ENTITY_ID AND TYPE_ID = 4) >= 1
BEGIN
INSERT INTO TBPMO_DOC_VALUES (DocID,CONFIG_ID,VALUE,ADDED_WHO)
SELECT @DOC_ID,T.GUID,T1.VALUE,@ADDED_WHO FROM TBPMO_DOCSEARCH_RESULTLIST_CONFIG T, TBPMO_DOCRESULT_DROPDOWN_ITEMS T1 WHERE T.GUID = T1.CONFIG_ID AND T1.[DEFAULT] = 1 AND T.ENTITY_ID = @ENTITY_ID AND T.TYPE_ID = 4
END
END TRY
BEGIN CATCH
PRINT 'ERROR IN TRIGGER: ' + CONVERT(VARCHAR(30),ERROR_PROCEDURE()) + ' - ROW: ' + CONVERT(VARCHAR(10),ERROR_LINE())
+ ' - ERROR-MESSAGE: '
+ CONVERT(VARCHAR(500),ERROR_MESSAGE())
END CATCH
GO
CREATE PROCEDURE [dbo].[PRPMO_DELETE_RESULTFILE](@pDOCID INT)
AS
BEGIN TRY
DELETE FROM TBPMO_DOC_INDICES WHERE DocID = @pDOCID
DELETE FROM TBPMO_DOC_RECORD_LINK WHERE Doc_ID = @pDOCID
DELETE FROM TBPMO_DOCRESULT_LIST WHERE DocID = @pDOCID
END TRY
BEGIN CATCH
PRINT 'ERROR IN PROCEDURE: ' + CONVERT(VARCHAR(30),ERROR_PROCEDURE()) + ' - ROW: ' + CONVERT(VARCHAR(10),ERROR_LINE())
+ ' - ERROR-MESSAGE: '
+ CONVERT(VARCHAR(500),ERROR_MESSAGE())
END CATCH
GO
ALTER TRIGGER [dbo].[TBPMO_CONTROL_VALUE_AFT_UPD] ON [dbo].[TBPMO_CONTROL_VALUE]
FOR UPDATE
AS
BEGIN TRY
DECLARE
@CONTROL_ID INTEGER,
@RECORD_ID INTEGER,
@VALUE_NEW VARCHAR(MAX),
@VALUE_OLD VARCHAR(MAX),
@CHANGED_WHO VARCHAR(50),
@CHANGE_STEP INTEGER,
@REDO BIT,
@CHANGE_ID INTEGER,
@DOC_ID INTEGER,
@USER_ID INTEGER,
@RIGHT INTEGER
IF UPDATE (VALUE)
BEGIN
SELECT
@CONTROL_ID = DELETED.CONTROL_ID,
@RECORD_ID = DELETED.RECORD_ID,
@VALUE_OLD = DELETED.VALUE
FROM DELETED
--RAISERROR (@VALUE , 16, 1)
SELECT
@CHANGE_STEP = CHANGE_STEP,
@CHANGED_WHO = CHANGED_WHO,
@VALUE_NEW = VALUE,
@REDO = REDO
FROM INSERTED
IF NOT EXISTS(SELECT GUID FROM TBPMO_CONTROL_VALUE_CHANGE_HISTORY WHERE RECORD_ID = @RECORD_ID AND CONTROL_ID = @CONTROL_ID AND VALUE = @VALUE_OLD)
INSERT INTO TBPMO_CONTROL_VALUE_CHANGE_HISTORY (RECORD_ID,CONTROL_ID,VALUE,CHANGE_STEP,ADDED_WHO) VALUES
(@RECORD_ID,@CONTROL_ID,@VALUE_OLD,@CHANGE_STEP,@CHANGED_WHO)
ELSE
UPDATE TBPMO_CONTROL_VALUE_CHANGE_HISTORY SET ADDED_WHO = @CHANGED_WHO WHERE GUID = @CHANGE_ID
--IF @REDO = 0
-- IF @VALUE_OLD <> @VALUE_NEW AND NOT EXISTS(SELECT GUID FROM TBPMO_CONTROL_VALUE_CHANGE_HISTORY WHERE RECORD_ID = @RECORD_ID AND CONTROL_ID = @CONTROL_ID AND VALUE = @VALUE_OLD AND CHANGE_STEP = @CHANGE_STEP)
-- INSERT INTO TBPMO_CONTROL_VALUE_CHANGE_HISTORY (RECORD_ID,CONTROL_ID,VALUE,CHANGE_STEP,ADDED_WHO) VALUES
-- (@RECORD_ID,@CONTROL_ID,@VALUE_OLD,@CHANGE_STEP,@CHANGED_WHO)
--Update des Logs f<>r loggen von Datensatz<74>nderungen
IF EXISTS(SELECT LOG_UPDATE FROM TBPMO_RECORD_LOG_CONFIG WHERE CONTROL_ID = @CONTROL_ID AND LOG_UPDATE = 1)
BEGIN
If @VALUE_OLD <> @VALUE_NEW
BEGIN
DECLARE @LOG VARCHAR(1000)
SET @LOG = 'Update of Value - OLD-VALUE: ' + @VALUE_OLD + ' / NEW VALUE: ' + @VALUE_NEW
INSERT INTO TBPMO_RECORD_LOG (RECORD_ID,CONTROL_ID,LOG_DESCRIPTION,ADDED_WHO) VALUES
(@RECORD_ID,@CONTROL_ID,@LOG,@CHANGED_WHO)
END
END
END
/*###### KUNDEN-INDIVIDUELL - BEGIN ####################################################################*/
IF @CONTROL_ID = 29 --Vertragseigner Person
BEGIN
/*Das Recht des alten Vertragseigners l<>schen*/
IF @VALUE_OLD <> ''
BEGIN
select @USER_ID = dbo.FNPMO_GET_USERID_FORSTRING (@VALUE_OLD)
If @USER_ID IS NOT NULL AND @USER_ID <> 0
BEGIN
DECLARE cursDOC_V1 CURSOR FOR
select DocID from VWPMO_WD_DOC_SEARCH where RECORD_ID = @RECORD_ID
OPEN cursDOC_V1
FETCH NEXT FROM cursDOC_V1 INTO @DOC_ID
WHILE @@FETCH_STATUS = 0
BEGIN
--DELETE FROM TBPMO_RIGHTS_WORK_SERVICE WHERE DOC_ID = @DOC_ID AND REASON = 'VERTRAGSEIGNER USER'
IF EXISTS(SELECT GUID FROM TBPMO_RIGHTS_WORK_SERVICE WHERE DOC_ID = @DOC_ID AND REASON = 'VERTRAGSEIGNER USER' AND WORKED = 0)
BEGIN
DELETE FROM TBPMO_RIGHTS_WORK_SERVICE WHERE DOC_ID = @DOC_ID AND REASON = 'VERTRAGSEIGNER USER' AND WORKED = 0
INSERT INTO TBPMO_RIGHTS_WORK_SERVICE (DOC_ID,USER_ID,RIGHT_MODIFY, FILE_RIGHT,REASON,ADDED_WHO) VALUES
(@DOC_ID,@USER_ID,'DELETE RIGHT',3,'VERTRAGSEIGNER USER','TBPMO_CONTROL_VALUE_AFT_UPD')
END
ELSE
INSERT INTO TBPMO_RIGHTS_WORK_SERVICE (DOC_ID,USER_ID,RIGHT_MODIFY, FILE_RIGHT,REASON,ADDED_WHO) VALUES
(@DOC_ID,@USER_ID,'DELETE RIGHT',3,'VERTRAGSEIGNER USER','TBPMO_CONTROL_VALUE_AFT_UPD')
FETCH NEXT FROM cursDOC_V1 INTO @DOC_ID
END
CLOSE cursDOC_V1
DEALLOCATE cursDOC_V1
END
END
/*Das neue UserRecht hinzuf<75>gen*/
BEGIN
select @USER_ID = dbo.FNPMO_GET_USERID_FORSTRING (@VALUE_NEW)
If @USER_ID IS NOT NULL AND @USER_ID <> 0
BEGIN
DECLARE cursDOC_V1 CURSOR FOR
select DocID from VWPMO_WD_DOC_SEARCH where RECORD_ID = @RECORD_ID
OPEN cursDOC_V1
FETCH NEXT FROM cursDOC_V1 INTO @DOC_ID
WHILE @@FETCH_STATUS = 0
BEGIN
IF EXISTS(SELECT GUID FROM TBPMO_RIGHTS_WORK_SERVICE WHERE DOC_ID = @DOC_ID AND REASON = 'VERTRAGSEIGNER USER' AND WORKED = 0 AND RIGHT_MODIFY = 'ADD RIGHT')
BEGIN
DELETE FROM TBPMO_RIGHTS_WORK_SERVICE WHERE DOC_ID = @DOC_ID AND REASON = 'VERTRAGSEIGNER USER' AND WORKED = 0
INSERT INTO TBPMO_RIGHTS_WORK_SERVICE (DOC_ID,USER_ID,RIGHT_MODIFY, FILE_RIGHT,REASON,ADDED_WHO) VALUES
(@DOC_ID,@USER_ID,'ADD RIGHT',3,'VERTRAGSEIGNER USER','TBPMO_CONTROL_VALUE_AFT_UPD')
END
ELSE
INSERT INTO TBPMO_RIGHTS_WORK_SERVICE (DOC_ID,USER_ID,RIGHT_MODIFY, FILE_RIGHT,REASON,ADDED_WHO) VALUES
(@DOC_ID,@USER_ID,'ADD RIGHT',3,'VERTRAGSEIGNER USER','TBPMO_CONTROL_VALUE_AFT_UPD')
FETCH NEXT FROM cursDOC_V1 INTO @DOC_ID
END
CLOSE cursDOC_V1
DEALLOCATE cursDOC_V1
END
END
END
-- ####### Vertragseigner Team ###############
ELSE IF @CONTROL_ID = 14
/*Die Rechte des Teams Vertragseigner l<>schen*/
IF @VALUE_OLD <> ''
BEGIN
DECLARE c_RIGHT2Delete CURSOR FOR
SELECT [USER_ID] FROM TBDD_GROUPS_USER WHERE GROUP_ID = (SELECT GUID FROM TBDD_USER_GROUPS WHERE NAME = @VALUE_OLD)
OPEN c_RIGHT2Delete
FETCH NEXT FROM c_RIGHT2Delete INTO @USER_ID
WHILE @@FETCH_STATUS = 0
BEGIN
IF @USER_ID <> 0
BEGIN
DECLARE cursDOC_V3 CURSOR FOR
select DocID from VWPMO_WD_DOC_SEARCH where RECORD_ID = @RECORD_ID
OPEN cursDOC_V3
FETCH NEXT FROM cursDOC_V3 INTO @DOC_ID
WHILE @@FETCH_STATUS = 0
BEGIN
IF EXISTS(SELECT GUID FROM TBPMO_RIGHTS_WORK_SERVICE WHERE DOC_ID = @DOC_ID AND REASON = 'VERTRAGSEIGNER TEAM' AND WORKED = 0)
BEGIN
DELETE FROM TBPMO_RIGHTS_WORK_SERVICE WHERE DOC_ID = @DOC_ID AND REASON = 'VERTRAGSEIGNER TEAM' AND WORKED = 0
INSERT INTO TBPMO_RIGHTS_WORK_SERVICE (DOC_ID,USER_ID,RIGHT_MODIFY,FILE_RIGHT,REASON,ADDED_WHO) VALUES
(@DOC_ID,@USER_ID,'DELETE RIGHT',3,'VERTRAGSEIGNER TEAM','TBPMO_CONTROL_VALUE_AFT_UPD')
END
ELSE
INSERT INTO TBPMO_RIGHTS_WORK_SERVICE (DOC_ID,USER_ID,RIGHT_MODIFY,FILE_RIGHT,REASON,ADDED_WHO) VALUES
(@DOC_ID,@USER_ID,'DELETE RIGHT',3,'VERTRAGSEIGNER TEAM','TBPMO_CONTROL_VALUE_AFT_UPD')
FETCH NEXT FROM cursDOC_V3 INTO @DOC_ID
END
CLOSE cursDOC_V3
DEALLOCATE cursDOC_V3
END
FETCH NEXT FROM c_RIGHT2Delete INTO @USER_ID
END
CLOSE c_RIGHT2Delete
DEALLOCATE c_RIGHT2Delete
END
/*Die Rechte des Teams Vertragseigner hinzuf<75>gen*/
BEGIN
DECLARE c_USER CURSOR FOR
SELECT [USER_ID] FROM TBDD_GROUPS_USER WHERE GROUP_ID = (SELECT GUID FROM TBDD_USER_GROUPS WHERE NAME = @VALUE_NEW)
OPEN c_USER
FETCH NEXT FROM c_USER INTO @USER_ID
WHILE @@FETCH_STATUS = 0
BEGIN
IF @USER_ID <> 0
BEGIN
DECLARE cursDOC_V2 CURSOR FOR
select DocID from VWPMO_WD_DOC_SEARCH where RECORD_ID = @RECORD_ID
OPEN cursDOC_V2
FETCH NEXT FROM cursDOC_V2 INTO @DOC_ID
WHILE @@FETCH_STATUS = 0
BEGIN
IF EXISTS(SELECT GUID FROM TBPMO_RIGHTS_WORK_SERVICE WHERE DOC_ID = @DOC_ID AND REASON = 'VERTRAGSEIGNER TEAM' AND WORKED = 0 AND RIGHT_MODIFY = 'ADD RIGHT')
BEGIN
DELETE FROM TBPMO_RIGHTS_WORK_SERVICE WHERE DOC_ID = @DOC_ID AND REASON = 'VERTRAGSEIGNER TEAM' AND WORKED = 0AND RIGHT_MODIFY = 'ADD RIGHT'
INSERT INTO TBPMO_RIGHTS_WORK_SERVICE (DOC_ID,USER_ID,RIGHT_MODIFY,FILE_RIGHT,REASON,ADDED_WHO) VALUES
(@DOC_ID,@USER_ID,'ADD RIGHT',3,'VERTRAGSEIGNER TEAM','TBPMO_CONTROL_VALUE_AFT_UPD')
END
ELSE
INSERT INTO TBPMO_RIGHTS_WORK_SERVICE (DOC_ID,USER_ID,RIGHT_MODIFY,FILE_RIGHT,REASON,ADDED_WHO) VALUES
(@DOC_ID,@USER_ID,'ADD RIGHT',3,'VERTRAGSEIGNER TEAM','TBPMO_CONTROL_VALUE_AFT_UPD')
FETCH NEXT FROM cursDOC_V2 INTO @DOC_ID
END
CLOSE cursDOC_V2
DEALLOCATE cursDOC_V2
END
FETCH NEXT FROM c_USER INTO @USER_ID
END
CLOSE c_USER
DEALLOCATE c_USER
END
-- ####### RecordSupervisor ###############
--ELSE IF @CONTROL_ID = 227 --RecordSupervisor
-- BEGIN
-- END
--ELSE IF @CONTROL_ID = 346 --Leseberechtigung CheckableListbox
-- BEGIN
-- END
/*###### KUNDEN-INDIVIDUELL - END ####################################################################*/
--Generelle Updates (Datum und Recor-<2D>nderungen)
UPDATE TBPMO_CONTROL_VALUE SET CHANGED_WHEN = GETDATE() FROM INSERTED WHERE TBPMO_CONTROL_VALUE.GUID = INSERTED.GUID
UPDATE TBPMO_RECORD SET CHANGED_WHO = @CHANGED_WHO WHERE TBPMO_RECORD.GUID = @RECORD_ID
END TRY
BEGIN CATCH
PRINT 'ERROR IN PROCEDURE: ' + CONVERT(VARCHAR(30),ERROR_PROCEDURE())
+ ' - ERROR-MESSAGE: '
+ CONVERT(VARCHAR(500),ERROR_MESSAGE())
END CATCH
GO
ALTER VIEW [dbo].[VWPMO_WD_DOC_SEARCH] AS
SELECT
T.DocID
,T2.[FORM_ID] AS [ENTITY_ID]
,T1.[RECORD_ID]
,(SELECT ISNULL(RECORD1_ID,0) FROM TBPMO_RECORD_CONNECT WHERE RECORD2_ID = T1.[RECORD_ID]) AS PARENT_ID
,dbo.FNPMO_GET_WINDREAM_FILE_PATH (T.DocID) + T3.szLongName AS FULL_FILENAME--T.FULL_FILENAME
,T3.szLongName AS [Filename]--,T.[Filename]
,T.Doctype
,T.[Version]
,T.Creation_DateTime
,T.Change_DateTime
,T.OBJECTTYPE
,T.DISPLAY_NAME
,T.IN_WORK
,T.IN_WORK_USER
,T.IN_WORK_COMMENT
FROM
TBPMO_DOCRESULT_LIST T
,TBPMO_DOC_RECORD_LINK T1
,TBPMO_RECORD T2
,windream.dbo.BaseAttributes T3
WHERE
T.DocID = T1.DOC_ID AND
T1.RECORD_ID = T2.GUID
AND T.DocID = T3.dwDocID
GO