diff --git a/00_DB_SETUP_SINGLE/01_DD_ECM/Update/1.9.8.5.sql b/00_DB_SETUP_SINGLE/01_DD_ECM/Update/1.9.8.5.sql index 8a505cd..007ad30 100644 --- a/00_DB_SETUP_SINGLE/01_DD_ECM/Update/1.9.8.5.sql +++ b/00_DB_SETUP_SINGLE/01_DD_ECM/Update/1.9.8.5.sql @@ -1,5 +1,469 @@ UPDATE TBDD_BASECONFIG SET DB_VERSION = '1.9.8.5'; GO +/****** Object: StoredProcedure [dbo].[PRDD_SEND_REJECTION_MAIL] Script Date: 15.05.2025 09:29:08 ******/ +SET ANSI_NULLS ON +GO + +SET QUOTED_IDENTIFIER ON +GO + + +-- PRDD_SEND_REJECTION_MAIL +-- ================================================================= +-- Die Procedure verschickt die Ablehnungsmails für +-- - ZUGFeRD-Service +-- - E-Mail Profiler +-- +-- Dabei werden die codierten Ablehnungsgründe mit dem +-- E-Mail-Template verknüpft. +-- ================================================================= +-- Copyright (c) 2024 by Digital Data GmbH +-- +-- Digital Data GmbH • Ludwig-Rinn-Strasse 16 • D-35452 Heuchelheim +-- Tel.: 0641/202360 • E-Mail: info-flow@digitaldata.works +-- ================================================================= +-- Creation Date / Author: 13.03.2024 / MP +-- ================================================================= +-- History: +-- 13.03.2024 / MP - Prozedur erstellt +-- 10.04.2024 / MP - RECEIPT_EMAIL_PHRASE ergänzt +-- 17.04.2024 / MP - ZUGFeRD Integration fertiggestellt +-- 18.04.2024 / MP - DEPLOYMENT_ENVIRONMENT (PROD/TEST) auswerten, um 2. Mail zu verhindern. +-- 22.04.2024 / MP - Verwende FNCUST_SPLIT_STRING_WITH_GUID, um Ablehnungsgründe zu splitten +-- 24.04.2024 / MP - REMINDER_TYPE_ID muss ungleich 1 sein + +CREATE PROCEDURE [dbo].[PRDD_SEND_REJECTION_MAIL] + @REF_MSGID VARCHAR(250) -- E-Mail MessageID + , @IDB_OBJ_ID BIGINT = 0 -- IDB_OBJ_ID + , @SENDING_PROFILE INTEGER = 0 -- Absenderprofil + , @REJ_SOURCE VARCHAR(50) -- Welcher Prozess lehnt ab? + , @MAIL_TEMPLATE INTEGER -- Welches Template soll verwendet werden? + , @REJ_REASONS VARCHAR(250) -- Liste mit IDs von Ablehnungsgründen, getrennt durch '|' + , @REPLACE_PARAM1 VARCHAR(MAX) -- Zusätzlicher Text-Parameter, ersetzt Platzhalter @REPLACE_PARAM1 + , @REPLACE_PARAM2 VARCHAR(MAX) -- Zusätzlicher Text-Parameter, ersetzt Platzhalter @REPLACE_PARAM2 + , @WF_ID INTEGER = 0 -- WorkflowID +AS +BEGIN + SET NOCOUNT ON; + + DECLARE @EMAIL_ADRESS VARCHAR(250), @EMAIL_SUBJECT VARCHAR(250), @EMAIL_BODY VARCHAR(MAX), @COMMENT VARCHAR(500), @EMAIL_PATH VARCHAR(512), + @EMAIL_BODY1 VARCHAR(MAX), @EMAIL_BODY2 VARCHAR(MAX), @LANGUAGE VARCHAR(5), @CONNECTED_TEMPLATE_ID INTEGER, + @EMAIL_BODY1_CON VARCHAR(MAX), @EMAIL_BODY2_CON VARCHAR(MAX), @LANGUAGE_CON VARCHAR(5), + @REASON_ID VARCHAR(100), @REJ_REASON VARCHAR(900), @ORG_EMAIL_SUBJECT VARCHAR(250), @ORG_EMAIL_DATE VARCHAR(25), + @FILENAME VARCHAR(512), @REL_PATH VARCHAR(250), @PROCEDURE_NAME VARCHAR(30), @ALREADY_SENT_TODAY BIT, + @EMAIL_ADRESS_2 VARCHAR(250), @DEPLOYMENT_ENVIRONMENT VARCHAR(10); + + DECLARE @REJ_REASON_TEMP_TABLE TABLE (REJ_ID VARCHAR(100), REJ_REASON VARCHAR(900), LANGUAGE VARCHAR(5)); + + SET @PROCEDURE_NAME = 'PRDD_SEND_REJECTION_MAIL' + +-- ==================================================================================================================================== +-- Prüfe Parameter +-- ==================================================================================================================================== + + IF @REF_MSGID IS NULL OR LEN(@REF_MSGID) <= 0 + BEGIN + PRINT @PROCEDURE_NAME + ' - ### Parameter @REF_MSGID is NULL or Empty! ###' + RETURN; + END + + IF @REJ_SOURCE IS NULL OR LEN(@REJ_SOURCE) <= 0 + BEGIN + SET @REJ_SOURCE = 'Unkown Source (PRDD_SEND_REJECTION_MAIL)' + END + + IF @MAIL_TEMPLATE <= 0 + BEGIN + PRINT @PROCEDURE_NAME + ' - ### Parameter @MAIL_TEMPLATE is invalid! ###' + RETURN; + END + +-- ==================================================================================================================================== +-- Lade Daten des E-Mail-Eingangs +-- ==================================================================================================================================== + DECLARE @TEMP_DATE DATETIME + + SELECT + @EMAIL_ADRESS = EMAIL_FROM, + @ORG_EMAIL_SUBJECT = EMAIL_SUBJECT, + @TEMP_DATE = EMAIL_DATE + FROM [DD_ECM].[dbo].[TBEMLP_HISTORY] + WHERE EMAIL_MSGID = @REF_MSGID; + + IF @EMAIL_ADRESS IS NULL OR LEN(@EMAIL_ADRESS) <= 0 + BEGIN + PRINT @PROCEDURE_NAME + ' - ### EMAIL_ADRESS IS NULL or Empty! ###' + SET @EMAIL_ADRESS = 'm.schreiber@digitaldata.works' + SET @ORG_EMAIL_SUBJECT = 'Default Subject!' + SET @TEMP_DATE = '2024-01-01' + END + + SET @ALREADY_SENT_TODAY = 0 + IF @IDB_OBJ_ID > 0 AND @IDB_OBJ_ID <> 99999 + BEGIN + IF EXISTS(SELECT 1 + FROM TBEMLP_EMAIL_OUT + WHERE REFERENCE_ID = @IDB_OBJ_ID AND EMAIL_ADRESS = @EMAIL_ADRESS AND ADDED_WHO = @REJ_SOURCE AND CONVERT(DATE,ADDED_WHEN) = CONVERT(DATE,GETDATE())) + BEGIN + SET @ALREADY_SENT_TODAY = 1 + END + END + ELSE + BEGIN + IF EXISTS(SELECT 1 + FROM TBEMLP_EMAIL_OUT + WHERE REFERENCE_STRING = @REF_MSGID AND EMAIL_ADRESS = @EMAIL_ADRESS AND ADDED_WHO = @REJ_SOURCE AND CONVERT(DATE,ADDED_WHEN) = CONVERT(DATE,GETDATE())) + BEGIN + SET @ALREADY_SENT_TODAY = 1 + END + END + + IF @ALREADY_SENT_TODAY = 1 + BEGIN + PRINT @PROCEDURE_NAME + ' - ### EMAIL with same reference already send today! ###' + --RETURN; + END + + SET @ORG_EMAIL_DATE = CONVERT(VARCHAR(25), @TEMP_DATE, 120) -- yyyy-mm-dd hh:mm:ss + + SELECT + @EMAIL_ADRESS_2 = ITEM_VALUE + FROM DD_ECM.dbo.TBEDMI_ITEM_VALUE + WHERE REFERENCE_GUID = @REF_MSGID + AND SPEC_NAME = 'INVOICE_SELLER_EMAIL'; + +-- ==================================================================================================================================== +-- E-Mail-Absender +-- ==================================================================================================================================== + + IF @SENDING_PROFILE <= 0 + BEGIN + SELECT @SENDING_PROFILE = CONVERT(INTEGER, CAT_STRING) + FROM IDB.dbo.TBIDB_CATALOG + WHERE CAT_TITLE = 'REJECTION_EMAIL_PROFILE' + END + + IF @SENDING_PROFILE <= 0 + BEGIN + PRINT @PROCEDURE_NAME + ' - ### No SENDING PROFILE found! ###' + RETURN; + END + +-- ==================================================================================================================================== +-- Lade Konfiguration aus TBIDB_CATALOG +-- ==================================================================================================================================== + + SELECT @DEPLOYMENT_ENVIRONMENT = CAT_STRING + FROM IDB.dbo.TBIDB_CATALOG + WHERE CAT_TITLE = 'DEPLOYMENT_ENVIRONMENT'; + +-- ==================================================================================================================================== +-- Lade E-Mail-Template(s) +-- ==================================================================================================================================== + + IF NOT EXISTS (SELECT 1 FROM [DD_ECM].[dbo].[TBDD_EMAIL_TEMPLATE] WHERE GUID = @MAIL_TEMPLATE) + BEGIN + PRINT @PROCEDURE_NAME + ' - ### No EMAIL TEMPLATE found! ###' + RETURN; + END + + SELECT + @EMAIL_SUBJECT = EMAIL_SUBJECT, + @EMAIL_BODY1 = EMAIL_BODY1, + @EMAIL_BODY2 = EMAIL_BODY2, + @LANGUAGE = [LANGUAGE], + @CONNECTED_TEMPLATE_ID = CONNECTED_TEMPLATE + FROM [DD_ECM].[dbo].[TBDD_EMAIL_TEMPLATE] + WHERE GUID = @MAIL_TEMPLATE; + + IF @CONNECTED_TEMPLATE_ID > 0 + BEGIN + SELECT + @EMAIL_BODY1_CON = EMAIL_BODY1, + @EMAIL_BODY2_CON = EMAIL_BODY2, + @LANGUAGE_CON = [LANGUAGE] + FROM [DD_ECM].[dbo].[TBDD_EMAIL_TEMPLATE] + WHERE GUID = @CONNECTED_TEMPLATE_ID; + END + ELSE + BEGIN + SET @LANGUAGE_CON = @LANGUAGE + END + +-- ==================================================================================================================================== +-- Lade Ablehnungsgründe in temporäre Tabelle +-- ==================================================================================================================================== + + IF @REJ_REASONS IS NULL OR LEN(@REJ_REASONS) <= 0 + BEGIN + PRINT @PROCEDURE_NAME + ' - ### NO Rejection Reasons! ###' + RETURN; + END + + IF @REJ_REASONS LIKE '%|%' + BEGIN + -- Es gibt mehrere Gründe + DECLARE cursorGetRejReasons CURSOR LOCAL FAST_FORWARD FOR + + SELECT Item FROM DD_ECM.[dbo].[FNCUST_SPLIT_STRING_WITH_GUID] (@REJ_REASONS, '|') + + OPEN cursorGetRejReasons + FETCH NEXT FROM cursorGetRejReasons INTO @REASON_ID + WHILE @@FETCH_STATUS = 0 + BEGIN + + INSERT INTO @REJ_REASON_TEMP_TABLE (REJ_ID, REJ_REASON, [LANGUAGE]) + SELECT TITLE AS REJ_ID, STRING1 AS REJ_REASON, [LANGUAGE] + FROM [DD_ECM].[dbo].[TBDD_GUI_LANGUAGE_PHRASE] + WHERE [TITLE] = 'RejectReason' + @REASON_ID AND [LANGUAGE] IN (@LANGUAGE, @LANGUAGE_CON); + + FETCH NEXT FROM cursorGetRejReasons INTO @REASON_ID + END + CLOSE cursorGetRejReasons + DEALLOCATE cursorGetRejReasons + END + ELSE + BEGIN + INSERT INTO @REJ_REASON_TEMP_TABLE (REJ_ID, REJ_REASON, [LANGUAGE]) + SELECT TITLE AS REJ_ID, STRING1 AS REJ_REASON, [LANGUAGE] + FROM [DD_ECM].[dbo].[TBDD_GUI_LANGUAGE_PHRASE] + WHERE [TITLE] = @REJ_REASONS AND [LANGUAGE] IN (@LANGUAGE, @LANGUAGE_CON); + END + +-- ==================================================================================================================================== +-- Stelle E-Mail Body zusammen +-- ==================================================================================================================================== + DECLARE @REASON_COUNTER INTEGER + + SET @REASON_COUNTER = 1 + + SET @EMAIL_BODY = '' + SET @EMAIL_BODY += @EMAIL_BODY1 + + DECLARE cursorSelectRejReasons CURSOR LOCAL FAST_FORWARD FOR + + SELECT REJ_ID, REJ_REASON + FROM @REJ_REASON_TEMP_TABLE + WHERE [LANGUAGE] = @LANGUAGE; + + OPEN cursorSelectRejReasons + FETCH NEXT FROM cursorSelectRejReasons INTO @REASON_ID, @REJ_REASON + WHILE @@FETCH_STATUS = 0 + BEGIN + + IF @REASON_COUNTER > 1 + BEGIN + SET @EMAIL_BODY += '
' + @REJ_REASON; + END + ELSE + BEGIN + -- 1. Zeile + SET @EMAIL_BODY += @REJ_REASON + END + + SET @REASON_COUNTER += 1; + FETCH NEXT FROM cursorSelectRejReasons INTO @REASON_ID, @REJ_REASON + END + CLOSE cursorSelectRejReasons + DEALLOCATE cursorSelectRejReasons + + SET @EMAIL_BODY += @EMAIL_BODY2 + + IF @CONNECTED_TEMPLATE_ID > 0 + BEGIN + SET @REASON_COUNTER = 1 + SET @EMAIL_BODY += '

====================================================================================================================================

' + SET @EMAIL_BODY += @EMAIL_BODY1_CON + + DECLARE cursorSelectRejReasonsCon CURSOR LOCAL FAST_FORWARD FOR + + SELECT REJ_ID, REJ_REASON + FROM @REJ_REASON_TEMP_TABLE + WHERE [LANGUAGE] = @LANGUAGE_CON; + + OPEN cursorSelectRejReasonsCon + FETCH NEXT FROM cursorSelectRejReasonsCon INTO @REASON_ID, @REJ_REASON + WHILE @@FETCH_STATUS = 0 + BEGIN + + IF @REASON_COUNTER > 1 + BEGIN + SET @EMAIL_BODY += '
' + @REJ_REASON; + END + ELSE + BEGIN + -- 1. Zeile + SET @EMAIL_BODY += @REJ_REASON + END + + SET @REASON_COUNTER += 1; + FETCH NEXT FROM cursorSelectRejReasonsCon INTO @REASON_ID, @REJ_REASON + END + CLOSE cursorSelectRejReasonsCon + DEALLOCATE cursorSelectRejReasonsCon + + SET @EMAIL_BODY += @EMAIL_BODY2_CON + END + + SET @EMAIL_BODY += '

(' + @REJ_REASONS + ')

' + SET @EMAIL_BODY += '' + +-- ==================================================================================================================================== +-- Ersetze Platzhalter in SUBJECT und BODY +-- ==================================================================================================================================== + DECLARE @LAST_USER VARCHAR(100), @LAST_USER_EMAIL VARCHAR(100), @ORG_INVOICE_NR VARCHAR(50), @INVOICE_NR_VALUE VARCHAR(50) + + SET @ORG_INVOICE_NR = '[KEINE BELEGNR GEFUNDEN/GELIEFERT]' + SET @INVOICE_NR_VALUE = '' + SET @LAST_USER = 'No User so far' + SET @LAST_USER_EMAIL = '' + SET @ORG_EMAIL_SUBJECT = REPLACE(@ORG_EMAIL_SUBJECT,'[EXTERNAL] ', '') + + IF EXISTS(SELECT ITEM_VALUE FROM [DD_ECM].[dbo].TBEDMI_ITEM_VALUE WHERE REFERENCE_GUID = @REF_MSGID and SPEC_NAME = 'INVOICE_NUMBER') + BEGIN + SELECT @INVOICE_NR_VALUE = ITEM_VALUE + FROM [DD_ECM].[dbo].TBEDMI_ITEM_VALUE + WHERE REFERENCE_GUID = @REF_MSGID and SPEC_NAME = 'INVOICE_NUMBER'; + + SET @ORG_INVOICE_NR = @INVOICE_NR_VALUE; + END + + IF @IDB_OBJ_ID > 0 AND @IDB_OBJ_ID <> 99999 + BEGIN + SELECT + @LAST_USER = PRENAME + ' ' + COALESCE([NAME],''), + @LAST_USER_EMAIL = EMAIL + FROM [DD_ECM].[dbo].TBDD_USER + --WHERE USERNAME = [DD_ECM].[dbo].[FNPM_LAST_WORKUSER_DOC] (@IDB_OBJ_ID) + END + --PRINT '@REPLACE_PARAM1:' + @REPLACE_PARAM1 + SET @EMAIL_SUBJECT = REPLACE(@EMAIL_SUBJECT, '@ORG_INVOICE_NR', @ORG_INVOICE_NR) + + SET @EMAIL_BODY = REPLACE(@EMAIL_BODY, '@ORG_EMAIL_MSGID', @REF_MSGID) + SET @EMAIL_BODY = REPLACE(@EMAIL_BODY, '@ORG_INVOICE_NR', @ORG_INVOICE_NR) + SET @EMAIL_BODY = REPLACE(@EMAIL_BODY, '@ORG_EMAIL_SUBJECT', @ORG_EMAIL_SUBJECT) + SET @EMAIL_BODY = REPLACE(@EMAIL_BODY, '@ORG_EMAIL_DATE', @ORG_EMAIL_DATE) + SET @EMAIL_BODY = REPLACE(@EMAIL_BODY, '@LAST_USER', @LAST_USER) + SET @EMAIL_BODY = REPLACE(@EMAIL_BODY, '@LAST_USER_EMAIL', @LAST_USER_EMAIL) + SET @EMAIL_BODY = REPLACE(@EMAIL_BODY, '@REPLACE_PARAM1', @REPLACE_PARAM1) + SET @EMAIL_BODY = REPLACE(@EMAIL_BODY, '@REPLACE_PARAM2', @REPLACE_PARAM2) + --Print @EMAIL_BODY +-- ==================================================================================================================================== +-- Ersetze Platzhalter @RECEIPT_EMAIL_PHRASE / @RECEIPT_EMAIL_PHRASE_EN im BODY +-- ==================================================================================================================================== + DECLARE @RECEIPT_EMAIL_DE_PHRASE VARCHAR(100), @RECEIPT_EMAIL_EN_PHRASE VARCHAR(100) + + SET @RECEIPT_EMAIL_DE_PHRASE = 'Email' + SET @RECEIPT_EMAIL_EN_PHRASE = 'Email' + + -- Wenn Belegnummer vorliegt, dann konkreter Text + IF LEN(@INVOICE_NR_VALUE) > 1 + BEGIN + SET @RECEIPT_EMAIL_DE_PHRASE = 'Rechnung ' + @INVOICE_NR_VALUE + SET @RECEIPT_EMAIL_EN_PHRASE = 'Invoice ' + @INVOICE_NR_VALUE + END + + SET @EMAIL_BODY = REPLACE(@EMAIL_BODY, '@RECEIPT_EMAIL_DE_PHRASE', @RECEIPT_EMAIL_DE_PHRASE) + SET @EMAIL_BODY = REPLACE(@EMAIL_BODY, '@RECEIPT_EMAIL_EN_PHRASE', @RECEIPT_EMAIL_EN_PHRASE) + +-- ==================================================================================================================================== +-- Evtl. vorhandener Dateianhang +-- ==================================================================================================================================== + + SET @EMAIL_PATH = '' + IF @IDB_OBJ_ID > 0 AND @IDB_OBJ_ID <> 99999 + BEGIN + SELECT @REL_PATH = [CAT_STRING] FROM [IDB].[dbo].[TBIDB_CATALOG] WHERE [CAT_TITLE] = 'FILESTORE_PRAEFIX'; + SELECT @FILENAME = RELATIVE_PATH FROM [IDB].[dbo].[TBIDB_DOC_INFO] WHERE IDB_OBJ_ID = @IDB_OBJ_ID; + IF LEN(@FILENAME) > 0 + BEGIN + BEGIN + IF @FILENAME NOT LIKE @REL_PATH + '%' + BEGIN + SET @FILENAME = @REL_PATH + @FILENAME + END + END + SET @EMAIL_PATH = @FILENAME + END + ELSE + SET @EMAIL_PATH = 'F:\DocumentProcessing\Output\File\DocumentKindAssigned\ZUGFeRD\Success\archive\' + END + +-- ==================================================================================================================================== +-- Füge E-Mail-Daten in Tabelle ein +-- ==================================================================================================================================== + + INSERT INTO [DD_ECM].[dbo].[TBEMLP_EMAIL_OUT] + ( + [SENDING_PROFILE] -- REQUIRED + , [REFERENCE_ID] -- REQUIRED + , [REFERENCE_STRING] + , [WF_ID] -- REQUIRED + , [EMAIL_ADRESS] -- REQUIRED + , [EMAIL_SUBJ] -- REQUIRED + , [EMAIL_BODY] -- REQUIRED + , [COMMENT] + , [ADDED_WHO] -- REQUIRED + , [EMAIL_ATTMT1] + , [REMINDER_TYPE_ID] + ) VALUES ( + @SENDING_PROFILE + , @IDB_OBJ_ID + , @REF_MSGID + , @WF_ID + , @EMAIL_ADRESS + , @EMAIL_SUBJECT + , @EMAIL_BODY + , @COMMENT + , @REJ_SOURCE + , @EMAIL_PATH + , 77 + ); + +-- ==================================================================================================================================== +-- Füge E-Mail-Daten in Tabelle ein, falls 2. E-Mail-Adresse vorliegt, und +-- diese sich von der 1. E-Mail-Adresse unterscheidet! +-- ==================================================================================================================================== + + IF @DEPLOYMENT_ENVIRONMENT = 'PROD' AND + LEN(@EMAIL_ADRESS_2) > 0 AND @EMAIL_ADRESS <> @EMAIL_ADRESS_2 + BEGIN + INSERT INTO [DD_ECM].[dbo].[TBEMLP_EMAIL_OUT] + ( + [SENDING_PROFILE] -- REQUIRED + , [REFERENCE_ID] -- REQUIRED + , [REFERENCE_STRING] + , [WF_ID] -- REQUIRED + , [EMAIL_ADRESS] -- REQUIRED + , [EMAIL_SUBJ] -- REQUIRED + , [EMAIL_BODY] -- REQUIRED + , [COMMENT] + , [ADDED_WHO] -- REQUIRED + , [EMAIL_ATTMT1] + , [REMINDER_TYPE_ID] + ) VALUES ( + @SENDING_PROFILE + , @IDB_OBJ_ID + , @REF_MSGID + , @WF_ID + , @EMAIL_ADRESS_2 -- EMAIL_ADRESS_2 + , @EMAIL_SUBJECT + , @EMAIL_BODY + , @COMMENT + , @REJ_SOURCE + , @EMAIL_PATH + , 77 + ); + END +END +GO +SET ANSI_NULLS ON +GO + +SET QUOTED_IDENTIFIER ON +GO + + DELETE FROM TBDD_ZUGFERD_VIEW_RECEIPT_TEMPLATE; Insert INTO TBDD_ZUGFERD_VIEW_RECEIPT_TEMPLATE diff --git a/00_DB_SETUP_SINGLE/01_DD_ECM/Update/1.9.8.6.sql b/00_DB_SETUP_SINGLE/01_DD_ECM/Update/1.9.8.6.sql new file mode 100644 index 0000000..740db0f --- /dev/null +++ b/00_DB_SETUP_SINGLE/01_DD_ECM/Update/1.9.8.6.sql @@ -0,0 +1,109 @@ +UPDATE TBDD_BASECONFIG SET DB_VERSION = '1.9.8.6'; +GO + + +DELETE FROM TBDD_ZUGFERD_VIEW_RECEIPT_TEMPLATE; +Insert INTO TBDD_ZUGFERD_VIEW_RECEIPT_TEMPLATE +(SPECNAME, Row_Caption, Area, xPosition, SequenceItem, Y_eq_lastrow, Display) values +('INVOICE_TYPE', '', 'TYPE', 10, 1, 0, 0), +('INVOICE_CURRENCY', '', 'TYPE', 10, 2, 0, 0), +('INVOICE_NUMBER', 'Rechnungsnummer/Invoice-No:', 'HEAD', 10, 3, 0, 1), +('INVOICE_DATE', 'Datum/Date:', 'HEAD', 10, 4, 0, 1), +('INVOICE_SERVICE_DATE','Leistungsdatum/Service date:', 'HEAD', 10, 5, 0, 1), +('INVOICE_SELLER_NAME', '', 'SELLER', 10, 6, 0, 1), +('INVOICE_SELLER_ADDRESS', '', 'SELLER', 10, 7, 0, 1), +('INVOICE_SELLER_POSTALCODE', '', 'SELLER', 10, 8, 0, 1), +('INVOICE_SELLER_CITY', '', 'SELLER', 35, 9, 1, 1), +('INVOICE_SELLER_TAX_ID', 'USt-ID/Seller tax ID:', 'SELLER', 10, 10, 0, 1), +('INVOICE_SELLER_ID', 'Lieferant-Nr/Seller ID:', 'SELLER', 10, 11, 0, 1), +('INVOICE_BUYER_NAME', '', 'BUYER', 10, 12, 0, 1), +('INVOICE_BUYER_ADRESS2', '', 'BUYER', 10, 13, 0, 1), +('INVOICE_BUYER_ADRESS', '', 'BUYER', 10, 14, 0, 1), +('INVOICE_BUYER_POSTALCODE', '', 'BUYER', 10, 15, 0, 1), +('INVOICE_BUYER_CITY', '', 'BUYER', 35, 16, 1, 1), +--('STATIC_Y_SWITCH', '271', 'INTERNAL', 35, 15, 0, 0), +('INVOICE_POSITION_AMOUNT', '', 'POSITION', 10, 17, 0, 0), +('INVOICE_POSITION_UNIT_TYPE', '', 'POSITION', 10, 18, 0, 0), +('INVOICE_POSITION_ARTICLE', '', 'POSITION', 10, 19, 0, 0), +('INVOICE_POSITION_ARTICLE_DESC', '', 'POSITION', 10, 20, 0, 0), +('INVOICE_POSITION_NOTE', '', 'POSITION', 10, 21, 0, 0), +('INVOICE_TAXPOS_TAX_RATE', '', 'POSITION', 10, 22, 0, 0), +('INVOICE_POSITION_TAX_AMOUNT', '', 'POSITION', 10, 23, 0, 1), +('INVOICE_TOTAL_NET', 'Nettobetrag/Net amount:', 'AMOUNT', 10, 400, 0, 1), +('INVOICE_TOTAL_TAX', 'Steuerbetrag/Tax amount:', 'AMOUNT', 10, 401, 0, 1), +('INVOICE_TOTAL_GROSS', 'Bruttobetrag/Gross amount:', 'AMOUNT', 10, 402, 0, 1), +('INVOICE_TAXPOS_RATE', '', 'TAXPOS', 10, 403, 1, 0), +('INVOICE_TAXPOS_AMOUNT', '', 'TAXPOS', 10, 404, 0, 0), +('INVOICE_TAXPOS_TYPE', '', 'TAXPOS', 10, 405, 1, 1), +('INVOICE_TAXPOS_EXEMPTION_REASON', '', 'EXEMPTION', 10, 406, 0, 1), +('INVOICE_TAXPOS_EXEMPTION_REASON_CODE', '', 'EXEMPTION', 10, 407, 0, 1), +('INVOICE_PAYMENT_TERMS','', 'PAYMENT', 10, 500, 0, 1), +('INVOICE_PAYMENT_IBAN','IBAN:', 'PAYMENT', 10, 501, 0, 1), +('INVOICE_PAYMENT_BIC','BIC:', 'PAYMENT', 10, 502, 0, 1); +GO +--CHANGED 25.04.2025 INV_POSITION_UNIT_TYPE integriert +--CHANGED 06.03.2025 INV_POS_NOTE integriert +ALTER FUNCTION [dbo].[FNDD_ZUGFERD_VIEW_RECEIPT_CUST_RESULT] (@pMSGID VARCHAR(100)) +RETURNS TABLE +AS RETURN + ( + SELECt A.SPEC_NAME,A.ITEM_VALUE,A.Area,A.Row_Caption,A.xPosition,A.Y_eq_lastrow,A.SequenceItem ORDER_SEQ,A.Display FROM VWDD_ZUGFERD_VIEW_RECEIPT_TEMPLATE_ITEMS A + WHERE REFERENCE_GUID = @pMSGID + AND A.SPEC_NAME NOT IN ('INVOICE_POSITION_AMOUNT','INVOICE_POSITION_UNIT_TYPE','INVOICE_POSITION_NOTE', + 'INVOICE_TAXPOS_TAX_RATE','INVOICE_POSITION_ARTICLE','INVOICE_POSITION_ARTICLE_DESC','INVOICE_TAXPOS_AMOUNT', + 'INVOICE_TAXPOS_RATE','INVOICE_TAXPOS_TYPE','INVOICE_POSITION_TAX_AMOUNT') + UNION + SELECT SPEC_NAME,ITEM_VALUE,Area,'' Row_Caption,10 xPosition, 0 Y_eq_lastrow,SequenceItem ORDER_SEQ, Display FROM [dbo].[FNDD_ZUGFERD_VIEW_RECEIPT_POSITIONS] (@pMSGID) + UNION + SELECT SPEC_NAME,ITEM_VALUE,Area,'' Row_Caption,10 xPosition, 0 Y_eq_lastrow,SequenceItem ORDER_SEQ, Display FROM [dbo].[FNDD_ZUGFERD_VIEW_RECEIPT_TAX] (@pMSGID) + UNION + SELECT SPECNAME SPEC_NAME,Row_Caption,Area,Row_Caption Row_Caption,10 xPosition, 0 Y_eq_lastrow,SequenceItem ORDER_SEQ, Display FROM TBDD_ZUGFERD_VIEW_RECEIPT_TEMPLATE WHERE Area = 'INTERNAL' + ) +GO + + +SET ANSI_NULLS ON +GO + +SET QUOTED_IDENTIFIER ON +GO + + +--CHANGED 02.06.2025 Nur Items mit INhalt +--CHANGED 25.04.2025 INV_POSITION_UNIT_TYPE integriert +--CHANGED 06.03.2025 INV_POS_NOTE integriert +ALTER FUNCTION [dbo].[FNDD_ZUGFERD_VIEW_RECEIPT_POSITIONS] (@pMSGID VARCHAR(100)) +RETURNS @TABLE TABLE(SPEC_NAME VARCHAR(100),ITEM_VALUE VARCHAR(250),Area VARCHAR(60),SequenceItem INT,Display BIT) +AS +BEGIN + DECLARE @GROUP_COUNTER INT,@INDEX INT = 15 + DECLARE cursGroupCounter CURSOR FOR + select GROUP_COUNTER from TBEDMI_ITEM_VALUE WHERE REFERENCE_GUID = @pMSGID And SPEC_NAME = 'INVOICE_POSITION_AMOUNT' ORDER BY GROUP_COUNTER + OPEN cursGroupCounter + FETCH NEXT FROM cursGroupCounter INTO @GROUP_COUNTER + WHILE @@FETCH_STATUS = 0 + BEGIN + DECLARE @SPEC_NAME VARCHAR(100),@ITEM_VALUE VARCHAR(100),@Display BIT + DECLARE cursPosItems CURSOR FOR + select A.SPEC_NAME,ITEM_VALUE,Display from TBEDMI_ITEM_VALUE A INNER JOIN TBDD_ZUGFERD_VIEW_RECEIPT_TEMPLATE B ON A.SPEC_NAME = B.SPECNAME WHERE REFERENCE_GUID = @pMSGID And A.SPEC_NAME IN ('INVOICE_POSITION_AMOUNT','INVOICE_POSITION_UNIT_TYPE', + 'INVOICE_TAXPOS_TAX_RATE','INVOICE_POSITION_NOTE','INVOICE_POSITION_ARTICLE','INVOICE_POSITION_ARTICLE_DESCRIPTION','INVOICE_POSITION_TAX_AMOUNT') AND GROUP_COUNTER = @GROUP_COUNTER + AND LEN(ITEM_VALUE) > 0 + ORDER BY B.SequenceItem + OPEN cursPosItems + FETCH NEXT FROM cursPosItems INTO @SPEC_NAME,@ITEM_VALUE,@Display + WHILE @@FETCH_STATUS = 0 + BEGIN + SET @INDEX += 1 + INSERT INTO @TABLE (SPEC_NAME,ITEM_VALUE,Area,SequenceItem,Display) VALUES + (@SPEC_NAME,@ITEM_VALUE,'POSITION',@INDEX,@Display) + FETCH NEXT FROM cursPosItems INTO @SPEC_NAME,@ITEM_VALUE,@Display + END + CLOSE cursPosItems + DEALLOCATE cursPosItems + FETCH NEXT FROM cursGroupCounter INTO @GROUP_COUNTER + END + CLOSE cursGroupCounter + DEALLOCATE cursGroupCounter +RETURN +END +GO diff --git a/01_SMART_UP_TOOLS/08_ORGFLOW/SQL/CREATE_DB_OBJECTS_RO.sql b/01_SMART_UP_TOOLS/08_ORGFLOW/SQL/CREATE_DB_OBJECTS_RO.sql index c584c95..b455b6a 100644 --- a/01_SMART_UP_TOOLS/08_ORGFLOW/SQL/CREATE_DB_OBJECTS_RO.sql +++ b/01_SMART_UP_TOOLS/08_ORGFLOW/SQL/CREATE_DB_OBJECTS_RO.sql @@ -11,8 +11,15 @@ ####################################*/ UPDATE TBDD_MODULES SET DB_VERSION = '2.4.8.4' where NAME = 'Record-Organizer' GO - -INSERT INTO TBDD_USER_MODULES (USER_ID,MODULE_ID,IS_ADMIN) +IF EXISTS(select GUID from TBDD_USER_MODULES where USER_ID = (SELECT GUID AS USRID FROM TBDD_USER where USERNAME = '@INSTALL_ADMIN_USER') + AND MODULE_ID = (SELECT GUID FROM TBDD_MODULES WHERE SHORT_NAME = 'ADDI')) + BEGIN + PRINT 'USER-MODULE ZO GIBT ES SCHON!' + UPDATE TBDD_USER_MODULES SET IS_ADMIN = 1 WHERE GUID = (select GUID from TBDD_USER_MODULES where USER_ID = (SELECT GUID AS USRID FROM TBDD_USER where USERNAME = '@INSTALL_ADMIN_USER') + AND MODULE_ID = (SELECT GUID FROM TBDD_MODULES WHERE SHORT_NAME = 'ADDI')) + END +ELSE + INSERT INTO TBDD_USER_MODULES (USER_ID,MODULE_ID,IS_ADMIN) SELECT GUID,(SELECT GUID FROM TBDD_MODULES WHERE SHORT_NAME = 'ADDI'),1 FROM TBDD_USER where USERNAME = '@INSTALL_ADMIN_USER'; GO diff --git a/01_SMART_UP_TOOLS/08_ORGFLOW/SQL/Personalakte/0_Copy_and _Create_Config.sql b/01_SMART_UP_TOOLS/08_ORGFLOW/SQL/Personalakte/0_Copy_and _Create_Config.sql new file mode 100644 index 0000000..b698c25 --- /dev/null +++ b/01_SMART_UP_TOOLS/08_ORGFLOW/SQL/Personalakte/0_Copy_and _Create_Config.sql @@ -0,0 +1,93 @@ + DECLARE @REMOTE_CONF_ID INT,@LOCAL_ENT_ID INT = 15,@PARID INT + DECLARE cursControls CURSOR FOR + SELECT GUID,PARENT_NODE + FROM TBPMO_STRUCTURE_NODES_CONFIGURATION WHERE ENTITY_ID = 15 ORDER BY PARENT_NODE + OPEN cursControls + FETCH NEXT FROM cursControls INTO @REMOTE_CONF_ID,@PARID + WHILE @@FETCH_STATUS = 0 + BEGIN + DECLARE @LOCAL_CTRL_ID INT, @LOCAL_CTRL_SCR_ID INT + INSERT INTO [dbo].[TBPMO_STRUCTURE_NODES_CONFIGURATION] + ([PARENT_NODE] + ,[CONTROL_ID] + ,[NAME] + ,[ENTITY_ID] + ,[TYPE_NODE] + ,[NODE_IMAGE] + ,[CREATE_RECORD] + ,[COMMENT] + ,[EXPAND] + ,[FONT_FAMILY] + ,[FONT_COLOR] + ,[FONT_SIZE] + ,[FONT_STYLE] + ,[BACK_COLOR] +) + + SELECT + [PARENT_NODE] + ,[CONTROL_ID] + ,[NAME] + ,15 + ,[TYPE_NODE] + ,[NODE_IMAGE] + ,[CREATE_RECORD] + ,[COMMENT] + ,[EXPAND] + ,[FONT_FAMILY] + ,[FONT_COLOR] + ,[FONT_SIZE] + ,[FONT_STYLE] + ,[BACK_COLOR] + FROM [172.24.130.1].[DD_ECM].[dbo].[TBPMO_STRUCTURE_NODES_CONFIGURATION] WHERE GUID = 1 + SELECT @LOCAL_CTRL_ID = MAX(GUID) FROM TBPMO_CONTROL; + --CONTROL-SCREEN INSERTEN + INSERT INTO [dbo].[TBPMO_CONTROL_SCREEN] + ([CONTROL_ID] + ,[SCREEN_ID] + ,[CONTROL_TEXT] + ,[X_LOC] + ,[Y_LOC] + ,[HEIGHT] + ,[WIDTH] + ,[FONT_FAMILY] + ,[FONT_COLOR] + ,[FONT_SIZE] + ,[FONT_STYLE] + ,[BACK_COLOR] + ,[TAB_INDEX] + ,[TAB_STOP] ) + SELECT + @LOCAL_CTRL_ID + ,[SCREEN_ID] + ,[CONTROL_TEXT] + ,[X_LOC] + ,[Y_LOC] + ,[HEIGHT] + ,[WIDTH] + ,[FONT_FAMILY] + ,[FONT_COLOR] + ,[FONT_SIZE] + ,[FONT_STYLE] + ,[BACK_COLOR] + ,[TAB_INDEX] + ,[TAB_STOP] + FROM [172.24.130.1].[DD_ECM].[dbo].[TBPMO_CONTROL_SCREEN] WHERE CONTROL_ID = @REMOTE_CONF_ID; + SELECT @LOCAL_CTRL_SCR_ID = MAX(GUID) FROM [TBPMO_CONTROL_SCREEN] WHERE CONTROL_ID = @LOCAL_CTRL_ID; + INSERT INTO [dbo].[TBPMO_CONTROL_LANGUAGE] + ([LANGUAGE_TYPE] + ,[CONTROL_SCREEN_ID] + ,[CAPTION] + ,[HINT]) + SELECT [LANGUAGE_TYPE] + ,@LOCAL_CTRL_SCR_ID + ,[CAPTION] + ,[HINT] FROM [172.24.130.1].[DD_ECM].[dbo].[TBPMO_CONTROL_LANGUAGE] WHERE CONTROL_SCREEN_ID = ( + SELECT GUID FROM [172.24.130.1].[DD_ECM].[dbo].[TBPMO_CONTROL_SCREEN] WHERE CONTROL_ID = @REMOTE_CONF_ID) + FETCH NEXT FROM cursControls INTO @REMOTE_CONF_ID,@PARID + END + CLOSE cursControls + DEALLOCATE cursControls + + + diff --git a/01_SMART_UP_TOOLS/08_ORGFLOW/SQL/Personalakte/1_Create_Demo_Personal.sql b/01_SMART_UP_TOOLS/08_ORGFLOW/SQL/Personalakte/1_Create_Demo_Personal.sql new file mode 100644 index 0000000..01a39c3 --- /dev/null +++ b/01_SMART_UP_TOOLS/08_ORGFLOW/SQL/Personalakte/1_Create_Demo_Personal.sql @@ -0,0 +1,78 @@ +DECLARE @NC_PERSONAL INT,@NC_SF INT,@SN_MAIN_GUID INTEGER,@NODE_PERSONAL INTEGER,@ID1 VARCHAR(100) +SELECT @NC_PERSONAL = GUID FROM TBPMO_STRUCTURE_NODES_CONFIGURATION WHERE NAME = 'Hauptknoten Personal' +SELECT @NC_SF = GUID FROM TBPMO_STRUCTURE_NODES_CONFIGURATION WHERE NAME = 'Dateiablage' +SELECT @SN_MAIN_GUID = [CAT_STRING] FROM TBDD_CATALOG where CAT_TITLE = 'PA_NODE_GUID_STAMM'; + + +DECLARE cursMA CURSOR FOR +SELECT A.Personal FROM + (select 'Fuchs, Nadine' as Personal union + select 'König, Klaus' as Personal union + select 'Müller, Gabriele' as Personal union + select 'Schröder, Anke' as Personal union + select 'Li, Kim' as Personal union + select 'Zimmer, Klaus' as Personal union + select 'Faber, Sandra' as Personal union + select 'Hofamnn, Thomas' as Personal) A -- WHERE NOT EXISTS(SELECT GUID FROM TBPMO_STRUCTURE_NODES WHERE ID1 = A.Personal) + OPEN cursMA + FETCH NEXT FROM cursMA INTO @ID1 + WHILE @@FETCH_STATUS = 0 + BEGIN + IF NOT EXISTS(SELECT GUID FROM [TBPMO_STRUCTURE_NODES] WHERE ID1 = @ID1 and NODE_CONFIG_ID = @NC_PERSONAL AND PARENT_GUID = @SN_MAIN_GUID) + INSERT INTO [dbo].[TBPMO_STRUCTURE_NODES] + ([NODE_CONFIG_ID] + ,[NODE_CAPTION] + ,[ID1] + ,[PARENT_GUID]) + VALUES + (@NC_PERSONAL, + @ID1, + @ID1, + @SN_MAIN_GUID); + ELSE + PRINT 'MITARBEITER-KNOTEN GIBT ES SChon' + SELECT @NODE_PERSONAL = GUID FROM TBPMO_STRUCTURE_NODES WHERE ID1 = @ID1 AND NODE_CONFIG_ID = @NC_PERSONAL; + DECLARE @Folder Varchar(100) + DECLARE CursDokFolder CURSOR FOR + select 'Urlaub' as DOK_FOLDER UNION + select 'Vertragsunterlagen' as DOK_FOLDER UNION + select 'Einstellungsunterlagen' as DOK_FOLDER UNION + select 'Urlaub' as DOK_FOLDER UNION + select 'Weiterbildung' as DOK_FOLDER UNION + select 'Meldungen' as DOK_FOLDER UNION + select 'Lohn und Gehalt' as DOK_FOLDER + OPEN CursDokFolder + FETCH NEXT FROM CursDokFolder INTO @Folder + WHILE @@FETCH_STATUS = 0 + BEGIN + IF NOT EXISTS(SELECT GUID FROM [TBPMO_STRUCTURE_NODES] WHERE ID1 = @ID1 + '-' + @Folder AND PARENT_GUID = @NODE_PERSONAL) + --Dokumentenordner anlegen + INSERT INTO [dbo].[TBPMO_STRUCTURE_NODES] + ([NODE_CONFIG_ID] + ,[NODE_CAPTION] + ,[ID1] + ,[PARENT_GUID]) + VALUES + (@NC_SF, + @Folder, + @ID1 + '-' + @Folder, + @NODE_PERSONAL); + ELSE + PRINT 'Knoten ' + @ID1 + '-' + @Folder + ' gibt es schon!' + FETCH NEXT FROM CursDokFolder INTO @Folder + END + CLOSE CursDokFolder + DEALLOCATE CursDokFolder + + FETCH NEXT FROM cursMA INTO @ID1 + END + CLOSE cursMA + DEALLOCATE cursMA + + + + + + + + diff --git a/01_SMART_UP_TOOLS/08_ORGFLOW/SQL/Personalakte/1_Create_Records_and_Controls.sql b/01_SMART_UP_TOOLS/08_ORGFLOW/SQL/Personalakte/1_Create_Records_and_Controls.sql new file mode 100644 index 0000000..0c3749f --- /dev/null +++ b/01_SMART_UP_TOOLS/08_ORGFLOW/SQL/Personalakte/1_Create_Records_and_Controls.sql @@ -0,0 +1,85 @@ + +-- ============================================= +-- Author: +-- Description: 3 + + --select * from TBPMO_STRUCTURE_NODES where NODE_CONFIG_ID = 19 + + OPEN MYCURSOR + FETCH NEXT FROM MYCURSOR INTO @NODE_GUID,@NODE_CONFIG_ID,@ENTITY_ID,@CAPTION,@ID1,@TYPE_NODE,@PARENT_GUID + WHILE @@FETCH_STATUS = 0 + BEGIN + DECLARE @RECORD_ID INTEGER + + + BEGIN + IF NOT EXISTS(SELECT GUID FROM TBPMO_RECORD WHERE NODE_GUID = @NODE_GUID) + BEGIN + EXEC PRPMO_CREATE_RECORD @RECORD_ID Output,@ENTITY_ID,'DDPA_CREATE' + + IF @RECORD_ID > 0 + BEGIN + UPDATE TBPMO_RECORD SET NODE_GUID = @NODE_GUID WHERE GUID = @RECORD_ID + SET @NODES_CREATED += 1 + END + END + ELSE + BEGIN + SELECT @RECORD_ID = GUID FROM TBPMO_RECORD WHERE NODE_GUID = @NODE_GUID + END + + IF NOT EXISTS(SELECT GUID FROM TBPMO_STRUCTURE_NODES WHERE GUID = @NODE_GUID AND RECORD_ID = @RECORD_ID) + BEGIN + UPDATE TBPMO_STRUCTURE_NODES SET RECORD_ID = @RECORD_ID WHERE GUID = @NODE_GUID + END + + IF @NODE_CONFIG_ID = @NC_PERSON_BASE + BEGIN + DECLARE @NACHNAME VARCHAR(50),@VORNAME VARCHAR(50),@NEW_CONTR_VAL_ID INTEGER + SELECT @NACHNAME = Data FROM dbo.FNDD_SPLIT_STRING(@ID1,',') where SequentialOrder = 1; + SELECT @VORNAME = Data FROM dbo.FNDD_SPLIT_STRING(@ID1,',') where SequentialOrder = 2; + + EXEC PRPMO_CREATE_CONTROL_VALUE @NEW_CONTR_VAL_ID Output,@CTRL_ID_NN,@RECORD_ID,@NACHNAME,'Digital Data' + EXEC PRPMO_CREATE_CONTROL_VALUE @NEW_CONTR_VAL_ID Output,@CTRL_ID_VN,@RECORD_ID,@VORNAME,'Digital Data' + END + + END + --######## + FETCH NEXT FROM MYCURSOR INTO @NODE_GUID,@NODE_CONFIG_ID,@ENTITY_ID,@CAPTION,@ID1,@TYPE_NODE,@PARENT_GUID + END + CLOSE MYCURSOR + DEALLOCATE MYCURSOR + PRINT 'RECORDS CREATED: ' + CONVERT(VARCHAR(20),@NODES_CREATED) +END + + + diff --git a/01_SMART_UP_TOOLS/08_ORGFLOW/SQL/SQL Skripte - Help/COPY_CONTROLS_FOR_ENTITY.sql b/01_SMART_UP_TOOLS/08_ORGFLOW/SQL/SQL Skripte - Help/COPY_CONTROLS_FOR_ENTITY.sql new file mode 100644 index 0000000..a96224a --- /dev/null +++ b/01_SMART_UP_TOOLS/08_ORGFLOW/SQL/SQL Skripte - Help/COPY_CONTROLS_FOR_ENTITY.sql @@ -0,0 +1,107 @@ + DECLARE @REMOTE_CTRL_ID INT,@LOCAL_ENT_ID INT = 15 + DECLARE cursControls CURSOR FOR + SELECT GUID + FROM [172.24.130.1].[DD_ECM].[dbo].[TBPMO_CONTROL] WHERE FORM_ID = 5 and guid <> 1 + OPEN cursControls + FETCH NEXT FROM cursControls INTO @REMOTE_CTRL_ID + WHILE @@FETCH_STATUS = 0 + BEGIN + DECLARE @LOCAL_CTRL_ID INT, @LOCAL_CTRL_SCR_ID INT + INSERT INTO [dbo].[TBPMO_CONTROL] + (FORM_ID + ,[CONTROL_TYPE_ID] + ,[NAME] + ,[FORMAT_TYPE] + ,[SHOW_COLUMN] + ,[COL_NAME] + ,[REQUIRED] + ,[PARENT_CONTROL_ID] + ,[MASTER_DATA_ID] + ,[MULTILINE] + ,[STATIC_LIST] + ,[DEFAULT_VALUE] + ,[SQL_COMMAND_1] + ,[SQL_COMMAND_2] + ,[CONNECTION_ID_1] + ,[CONNECTION_ID_2] + ,[READ_ONLY] + ,[VALIDATION] + ,[VISIBLE] + ,[TREE_VIEW] + ,[SELECT_ONLY] + ,[AUTO_SUGGEST]) + SELECT + @LOCAL_ENT_ID + ,[CONTROL_TYPE_ID] + ,[NAME] + ,[FORMAT_TYPE] + ,[SHOW_COLUMN] + ,[COL_NAME] + ,[REQUIRED] + ,[PARENT_CONTROL_ID] + ,[MASTER_DATA_ID] + ,[MULTILINE] + ,[STATIC_LIST] + ,[DEFAULT_VALUE] + ,[SQL_COMMAND_1] + ,[SQL_COMMAND_2] + ,[CONNECTION_ID_1] + ,[CONNECTION_ID_2] + ,[READ_ONLY] + ,[VALIDATION] + ,[VISIBLE] + ,[TREE_VIEW] + ,[SELECT_ONLY] + ,[AUTO_SUGGEST] + FROM [172.24.130.1].[DD_ECM].[dbo].[TBPMO_CONTROL] WHERE GUID = @REMOTE_CTRL_ID + SELECT @LOCAL_CTRL_ID = MAX(GUID) FROM TBPMO_CONTROL; + --CONTROL-SCREEN INSERTEN + INSERT INTO [dbo].[TBPMO_CONTROL_SCREEN] + ([CONTROL_ID] + ,[SCREEN_ID] + ,[CONTROL_TEXT] + ,[X_LOC] + ,[Y_LOC] + ,[HEIGHT] + ,[WIDTH] + ,[FONT_FAMILY] + ,[FONT_COLOR] + ,[FONT_SIZE] + ,[FONT_STYLE] + ,[BACK_COLOR] + ,[TAB_INDEX] + ,[TAB_STOP] ) + SELECT + @LOCAL_CTRL_ID + ,[SCREEN_ID] + ,[CONTROL_TEXT] + ,[X_LOC] + ,[Y_LOC] + ,[HEIGHT] + ,[WIDTH] + ,[FONT_FAMILY] + ,[FONT_COLOR] + ,[FONT_SIZE] + ,[FONT_STYLE] + ,[BACK_COLOR] + ,[TAB_INDEX] + ,[TAB_STOP] + FROM [172.24.130.1].[DD_ECM].[dbo].[TBPMO_CONTROL_SCREEN] WHERE CONTROL_ID = @REMOTE_CTRL_ID; + SELECT @LOCAL_CTRL_SCR_ID = MAX(GUID) FROM [TBPMO_CONTROL_SCREEN] WHERE CONTROL_ID = @LOCAL_CTRL_ID; + INSERT INTO [dbo].[TBPMO_CONTROL_LANGUAGE] + ([LANGUAGE_TYPE] + ,[CONTROL_SCREEN_ID] + ,[CAPTION] + ,[HINT]) + SELECT [LANGUAGE_TYPE] + ,@LOCAL_CTRL_SCR_ID + ,[CAPTION] + ,[HINT] FROM [172.24.130.1].[DD_ECM].[dbo].[TBPMO_CONTROL_LANGUAGE] WHERE CONTROL_SCREEN_ID = ( + SELECT GUID FROM [172.24.130.1].[DD_ECM].[dbo].[TBPMO_CONTROL_SCREEN] WHERE CONTROL_ID = @REMOTE_CTRL_ID) + FETCH NEXT FROM cursControls INTO @REMOTE_CTRL_ID + END + CLOSE cursControls + DEALLOCATE cursControls + + + diff --git a/01_SMART_UP_TOOLS/08_ORGFLOW/SQL/UPDATE Archiv (added to main script)/2.4.7.4_ENTITY_TABLES.sql b/01_SMART_UP_TOOLS/08_ORGFLOW/SQL/UPDATE Archiv (added to main script)/2.4.7.4_ENTITY_TABLES.sql deleted file mode 100644 index 413b7d7..0000000 --- a/01_SMART_UP_TOOLS/08_ORGFLOW/SQL/UPDATE Archiv (added to main script)/2.4.7.4_ENTITY_TABLES.sql +++ /dev/null @@ -1,1183 +0,0 @@ - ------------------------------------------------------------------------------------------ --- Nur bei der erste Ausführung !!! -ALTER TABLE TBPMO_KONFIGURATION - ADD ENTITY_TABLENAME VARCHAR(50) DEFAULT 'TBPMO_ENTITY_TABLE' NOT NULL -GO ------------------------------------------------------------------------------------------ -ALTER TABLE TBPMO_FORM_SQL ALTER COLUMN SQL_COMMAND NVARCHAR(MAX); -ALTER TABLE TBPMO_FORM_SQL ALTER COLUMN SQL_COMMAND1 NVARCHAR(MAX); -ALTER TABLE TBPMO_FORM_SQL ALTER COLUMN SQL_COMMAND2 NVARCHAR(MAX); -ALTER TABLE TBPMO_FORM_SQL ALTER COLUMN SQL_COMMAND3 NVARCHAR(MAX); -ALTER TABLE TBPMO_FORM_SQL ALTER COLUMN SQL_COMMAND4 NVARCHAR(MAX); -GO -CREATE PROCEDURE PRPMO_CREATE_ENTITY_TABLE(@pENTITY_ID INT) ---ALTER PROCEDURE PRPMO_CREATE_ENTITY_TABLE(@pENTITY_ID INT) -AS -DECLARE @SQL_BEGIN NVARCHAR(MAX), - @SQL_END NVARCHAR(MAX), - @SQL NVARCHAR(MAX), - @SQL_DEF_CONSTR NVARCHAR(MAX), - @CONTROL_ID INT, - @RESULT NVARCHAR(MAX), - @TYPEID INT, - @TABINDEX INT, - @ZAEHLER INT = 1, - @DEFAULT VARCHAR(50), - @COL_NAME VARCHAR(50), - @ENTITY_TABLENAME VARCHAR(50) - - --select Top 10 * from VWTEMP_PMO_FORM1 -DECLARE c_SPALTENNAMEN CURSOR FOR SELECT T.GUID AS CONTROL_ID,'[' + T.COL_NAME + ']' AS 'COL_NAME',T2.GUID AS TYP_ID,T1.TAB_INDEX, T.DEFAULT_VALUE FROM TBPMO_CONTROL T,TBPMO_CONTROL_SCREEN T1,TBPMO_CONTROL_TYPE T2 - WHERE T.SHOW_COLUMN = 1 AND T.[COL_NAME] <> '' AND T.GUID = T1.CONTROL_ID AND T.CONTROL_TYPE_ID = T2.GUID AND T.FORM_ID = @pENTITY_ID AND LEN(ISNULL(T.COL_NAME,'')) > 0 AND T.CONTROL_TYPE_ID NOT IN (1,5) - --UNION - --SELECT T.GUID AS CONTROL_ID,'[' + T3.CAPTION + ']' AS 'COL_NAME',T2.GUID as TYP_ID,T1.TAB_INDEX, T.DEFAULT_VALUE FROM TBPMO_CONTROL T,TBPMO_CONTROL_SCREEN T1,TBPMO_CONTROL_TYPE T2, TBPMO_CONTROL_LANGUAGE T3 - --WHERE T.GUID = T1.CONTROL_ID AND T.CONTROL_TYPE_ID = T2.GUID AND T1.GUID = T3.CONTROL_SCREEN_ID AND T.FORM_ID = 13 AND T.CONTROL_TYPE_ID = 1 AND LEN(ISNULL(T.SQL_COMMAND_1,'')) > 0 - ORDER BY TAB_INDEX -BEGIN - SELECT @ENTITY_TABLENAME = ENTITY_TABLENAME FROM TBPMO_KONFIGURATION WHERE GUID = 1 - - SET @SQL = 'IF EXISTS (SELECT * FROM INFORMATION_SCHEMA.TABLES WHERE TABLE_NAME = ''@TABLE@ENT'') - drop table @TABLE@ENT' + CHAR(13) - SET @SQL = REPLACE(@SQL,'@ENT',CONVERT(VARCHAR(3),@pENTITY_ID)) - SET @SQL = REPLACE(@SQL,'@TABLE',@ENTITY_TABLENAME) - EXEC sp_executesql @SQL - SET @SQL_BEGIN = 'CREATE TABLE @TABLE@ENT(' + CHAR(13) + - '[Record-ID] INT NOT NULL,' + CHAR(13) + - 'ROW_COLOR VARCHAR(50) NOT NULL DEFAULT '''',' + CHAR(13) - SET @SQL_BEGIN = REPLACE(@SQL_BEGIN,'@ENT',CONVERT(VARCHAR(3),@pENTITY_ID)) - SET @SQL_BEGIN = REPLACE(@SQL_BEGIN,'@TABLE',@ENTITY_TABLENAME) - - --SET @SQL_END = ',T.ADDED_WHO as AddedWho,T.ADDED_WHEN as AddedWhen, T.CHANGED_WHO As ChangedWho, T.CHANGED_WHEN As ChangedWhen FROM TBPMO_RECORD T, TBPMO_FORM T1 WHERE T.FORM_ID = T1.GUID AND T.FORM_ID = @FORM_ID' - SET @SQL_END = '[file_exists] BIT NOT NULL DEFAULT 0,' + CHAR(13) + '[file_count] INT NOT NULL DEFAULT 0,' + CHAR(13) + 'AddedWho VARCHAR(50)' + CHAR(13) + ',AddedWhen DATETIME' + CHAR(13) + ', ChangedWho VARCHAR(50)' + CHAR(13) + ',ChangedWhen DATETIME,' + CHAR(13) + 'CONSTRAINT PK_@TABLE@ENT PRIMARY KEY([Record-ID]))' + CHAR(13) - SET @SQL_END = REPLACE(@SQL_END,'@ENT',CONVERT(VARCHAR(3),@pENTITY_ID)) - SET @SQL_END = REPLACE(@SQL_END,'@TABLE',@ENTITY_TABLENAME) - - OPEN c_SPALTENNAMEN - FETCH NEXT FROM c_SPALTENNAMEN INTO @CONTROL_ID,@COL_NAME,@TYPEID,@TABINDEX,@DEFAULT - - WHILE @@FETCH_STATUS = 0 - BEGIN - SET @ZAEHLER = @ZAEHLER + 1 - - BEGIN - IF @TYPEID IN(10,11) --CheckBox,RadioBox - BEGIN - IF @DEFAULT = 'False' - SET @DEFAULT = '0' - ELSE - SET @DEFAULT = '1' - SET @SQL_BEGIN = @SQL_BEGIN + @COL_NAME + ' BIT NOT NULL DEFAULT ' + @DEFAULT + ',' + CHAR(13) - END - ELSE IF @TYPEID = 6 --Picturebox - BEGIN - SET @SQL_BEGIN = @SQL_BEGIN + @COL_NAME + ' VARBINARY(MAX),' + CHAR(13) - ENd - ELSE IF @TYPEID IN(7,12,14) --GridView,CheckedListBox,GridViewCheckable - BEGIN - SET @SQL_BEGIN = @SQL_BEGIN + @COL_NAME + ' VARCHAR(MAX),' + CHAR(13) - END - ELSE IF @TYPEID = 1 --Label - BEGIN - SET @SQL_BEGIN = @SQL_BEGIN + @COL_NAME + ' VARCHAR(MAX),' + CHAR(13) - END - ELSE IF @TYPEID = 4 --DatePicker - BEGIN - SET @SQL_BEGIN = @SQL_BEGIN + @COL_NAME + ' VARCHAR(10),' + CHAR(13) - END - ELSE - BEGIN - SET @SQL_BEGIN = @SQL_BEGIN + @COL_NAME + ' VARCHAR(MAX),' + CHAR(13) - IF LEN(ISNULL(@DEFAULT,'')) > 0 - BEGIN - DECLARE @TEMP_COL_NAME VARCHAR(50) - SET @TEMP_COL_NAME = REPLACE(@COL_NAME,' ','') - SET @TEMP_COL_NAME = REPLACE(@TEMP_COL_NAME,'[','') - SET @TEMP_COL_NAME = REPLACE(@TEMP_COL_NAME,']','') - IF LEN(@SQL_DEF_CONSTR) > 0 - SET @SQL_DEF_CONSTR = @SQL_DEF_CONSTR + CHAR(13) + 'ALTER TABLE @TABLE@ENT ADD CONSTRAINT DEF@TABLE@ENT_@COL_NAME DEFAULT N''@DEFAULT_VALUE'' FOR ' + @COL_NAME + ';' - ELSE - SET @SQL_DEF_CONSTR = 'ALTER TABLE @TABLE@ENT ADD CONSTRAINT DEF@TABLE@ENT_@COL_NAME DEFAULT N''@DEFAULT_VALUE'' FOR ' + @COL_NAME + ';' - BEGIN - SET @SQL_DEF_CONSTR = REPLACE(@SQL_DEF_CONSTR,'@DEFAULT_VALUE',@DEFAULT) - SET @SQL_DEF_CONSTR = REPLACE(@SQL_DEF_CONSTR,'@COL_NAME',@TEMP_COL_NAME) - SET @SQL_DEF_CONSTR = REPLACE(@SQL_DEF_CONSTR,'@ENT',CONVERT(VARCHAR(3),@pENTITY_ID)) - SET @SQL_DEF_CONSTR = REPLACE(@SQL_DEF_CONSTR,'@TABLE',@ENTITY_TABLENAME) - END - END - - END - END - - FETCH NEXT FROM c_SPALTENNAMEN INTO @CONTROL_ID,@COL_NAME,@TYPEID,@TABINDEX,@DEFAULT - END - - CLOSE c_SPALTENNAMEN - DEALLOCATE c_SPALTENNAMEN - - SET @RESULT = @SQL + @SQL_BEGIN + @SQL_END - --PRINT @RESULT - EXEC sp_executesql @RESULT - - IF LEN(@SQL_DEF_CONSTR) > 0 - BEGIN - --PRINT @SQL_DEF_CONSTR - EXEC sp_executesql @SQL_DEF_CONSTR - END -END -GO ------------------------------------------------------------------------------------------ - -CREATE PROCEDURE PRPMO_DOC_RECORD_LINK_UPD_ENTITY_TABLE (@pRECID INT) ---ALTER PROCEDURE PRPMO_DOC_RECORD_LINK_UPD_ENTITY_TABLE (@pRECID INT) -AS -DECLARE @SQL NVARCHAR(MAX), - @COUNT_DOCS INT, - @DOC_EXISTS TINYINT, - @ENT_ID INT, - @ENTITY_TABLENAME VARCHAR(50) -BEGIN - SELECT @ENTITY_TABLENAME = ENTITY_TABLENAME FROM TBPMO_KONFIGURATION WHERE GUID = 1 - - SELECT @ENT_ID = FORM_ID FROM TBPMO_RECORD WHERE GUID = @pRECID - SELECT @COUNT_DOCS = COUNT(GUID) FROM TBPMO_DOC_RECORD_LINK WHERE RECORD_ID = @pRECID - IF @COUNT_DOCS > 0 - SET @DOC_EXISTS = 1 - ELSE - SET @DOC_EXISTS = 0 - - SET @SQL = 'UPDATE @TABLE@ENT_ID SET [file_exists] = @DOC_EXISTS, [file_count] = @COUNT_DOCS WHERE [Record-ID] = @pRECID' - SET @SQL = REPLACE(@SQL,'@pRECID',CONVERT(VARCHAR(10),@pRECID)) - SET @SQL = REPLACE(@SQL,'@DOC_EXISTS',CONVERT(VARCHAR(1),@DOC_EXISTS)) - SET @SQL = REPLACE(@SQL,'@COUNT_DOCS',CONVERT(VARCHAR(10),@COUNT_DOCS)) - SET @SQL = REPLACE(@SQL,'@ENT_ID',CONVERT(VARCHAR(3),@ENT_ID)) - SET @SQL = REPLACE(@SQL,'@TABLE',@ENTITY_TABLENAME) - - EXEC sp_executesql @SQL -END -GO ------------------------------------------------------------------------------------------ - -CREATE PROCEDURE PRPMO_ENTITY_TABLE_IMPORT_RECORDS(@pENTITY_ID INT) ---ALTER PROCEDURE PRPMO_ENTITY_TABLE_IMPORT_RECORDS(@pENTITY_ID INT) -AS -DECLARE @REC_ID INT, - @SQL_INSERT_REC NVARCHAR(MAX), - @SQL_DELETE NVARCHAR(MAX), - @SQL_UPDATE NVARCHAR(MAX), - @CONTROL_ID INT, - @INSERT_COMAMND NVARCHAR(MAX), - @TYPEID INT, - @TABINDEX INT, - @DEFAULT VARCHAR(50), - @COL_NAME VARCHAR(50), - @ENTITY_TABLENAME VARCHAR(50) - -DECLARE cursor_Records CURSOR FOR SELECT GUID FROM TBPMO_RECORD WHERE FORM_ID = @pENTITY_ID -BEGIN - SELECT @ENTITY_TABLENAME = ENTITY_TABLENAME FROM TBPMO_KONFIGURATION WHERE GUID = 1 - - SET @SQL_DELETE = 'DELETE FROM @TABLE@ENT' - SET @SQL_DELETE = REPLACE(@SQL_DELETE,'@ENT',CONVERT(VARCHAR(3),@pENTITY_ID)) - SET @SQL_DELETE = REPLACE(@SQL_DELETE,'@TABLE',@ENTITY_TABLENAME) - EXEC sp_executesql @SQL_DELETE - - OPEN cursor_Records - FETCH NEXT FROM cursor_Records INTO @REC_ID - WHILE @@FETCH_STATUS = 0 - BEGIN - SET @SQL_INSERT_REC = 'INSERT INTO @TABLE@ENT([Record-ID],ROW_COLOR, AddedWho, AddedWhen, ChangedWho, ChangedWhen) SELECT GUID,COLOR,ADDED_WHO,ADDED_WHEN,CHANGED_WHO,CHANGED_WHEN FROM TBPMO_RECORD WHERE GUID = @REC_ID' - - SET @SQL_INSERT_REC = REPLACE(@SQL_INSERT_REC,'@ENT',CONVERT(VARCHAR(3),@pENTITY_ID)) - SET @SQL_INSERT_REC = REPLACE(@SQL_INSERT_REC,'@TABLE',@ENTITY_TABLENAME) - SET @SQL_INSERT_REC = REPLACE(@SQL_INSERT_REC,'@REC_ID',CONVERT(VARCHAR(10),@REC_ID)) - --PRINT @SQL_INSERT_REC - EXEC sp_executesql @SQL_INSERT_REC - EXEC dbo.PRPMO_DOC_RECORD_LINK_UPD_ENTITY_TABLE @REC_ID - - DECLARE cursor_Columns CURSOR FOR SELECT T.GUID,'[' + T.COL_NAME + ']' AS 'COL_NAME',T2.GUID AS TYP_ID FROM TBPMO_CONTROL T,TBPMO_CONTROL_SCREEN T1,TBPMO_CONTROL_TYPE T2 - WHERE T.SHOW_COLUMN = 1 AND T.GUID = T1.CONTROL_ID AND T.CONTROL_TYPE_ID = T2.GUID AND T.FORM_ID = @pENTITY_ID AND LEN(ISNULL(T.COL_NAME,'')) > 0 AND T.CONTROL_TYPE_ID NOT IN (1,5) - ORDER BY TAB_INDEX - - BEGIN - OPEN cursor_Columns - FETCH NEXT FROM cursor_Columns INTO @CONTROL_ID,@COL_NAME,@TYPEID - WHILE @@FETCH_STATUS = 0 - BEGIN - --PRINT 'CONTROL-ID: ' + CONVERT(VARCHAR(3),@CONTROL_ID) + ' - REC-ID: ' + CONVERT(VARCHAR(10),@REC_ID) - SET @SQL_UPDATE = 'UPDATE @TABLE@ENT SET @COL_NAME = ''@VALUE'' WHERE [Record-ID] = @REC_ID' - SET @SQL_UPDATE = REPLACE(@SQL_UPDATE,'@COL_NAME',@COL_NAME) - SET @SQL_UPDATE = REPLACE(@SQL_UPDATE,'@ENT',CONVERT(VARCHAR(3),@pENTITY_ID)) - SET @SQL_UPDATE = REPLACE(@SQL_UPDATE,'@TABLE',@ENTITY_TABLENAME) - -- - IF @TYPEID = 6 --Picturebox - BEGIN - DECLARE @VALUE_VBM VARBINARY(MAX) - - IF EXISTS(SELECT GUID FROM TBPMO_CONTROL_IMAGE WHERE CONTROL_ID = @CONTROL_ID AND RECORD_ID = @REC_ID) - BEGIN - SET @SQL_UPDATE = REPLACE(@SQL_UPDATE,'''@VALUE''','(SELECT IMG FROM TBPMO_CONTROL_IMAGE WHERE CONTROL_ID = @CONTROL_ID AND RECORD_ID = @REC_ID)') - SET @SQL_UPDATE = REPLACE(@SQL_UPDATE,'@REC_ID',CONVERT(VARCHAR(10),@REC_ID)) - SET @SQL_UPDATE = REPLACE(@SQL_UPDATE,'@CONTROL_ID',CONVERT(VARCHAR(10),@CONTROL_ID)) - EXEC sp_executesql @SQL_UPDATE - END - END - ELSE - BEGIN - DECLARE @VALUE VARCHAR(MAX) - IF EXISTS(SELECT GUID FROM TBPMO_CONTROL_VALUE WHERE CONTROL_ID = @CONTROL_ID AND RECORD_ID = @REC_ID) - BEGIN - IF @TYPEID IN(10,11) --CheckBox,RadioBox - BEGIN - SELECT @VALUE = VALUE FROM TBPMO_CONTROL_VALUE WHERE CONTROL_ID = @CONTROL_ID AND RECORD_ID = @REC_ID - SET @SQL_UPDATE = REPLACE(@SQL_UPDATE,'@VALUE',@VALUE) - END - ELSE IF @TYPEID IN(7,12,14) - BEGIN - SELECT @VALUE = dbo.FNPMO_GET_CONTROL_VALUES(@CONTROL_ID, @REC_ID) - SET @SQL_UPDATE = REPLACE(@SQL_UPDATE,'@VALUE',@VALUE) - END - ELSE - SET @SQL_UPDATE = REPLACE(@SQL_UPDATE,'''@VALUE''','(SELECT VALUE FROM TBPMO_CONTROL_VALUE WHERE CONTROL_ID = @CONTROL_ID AND RECORD_ID = @REC_ID)') - - SET @SQL_UPDATE = REPLACE(@SQL_UPDATE,'@REC_ID',CONVERT(VARCHAR(10),@REC_ID)) - SET @SQL_UPDATE = REPLACE(@SQL_UPDATE,'@CONTROL_ID',CONVERT(VARCHAR(10),@CONTROL_ID)) - --PRINT @SQL_UPDATE - EXEC sp_executesql @SQL_UPDATE - END - END - - FETCH NEXT FROM cursor_Columns INTO @CONTROL_ID,@COL_NAME,@TYPEID - END - CLOSE cursor_Columns - DEALLOCATE cursor_Columns - END - - FETCH NEXT FROM cursor_Records INTO @REC_ID - END - CLOSE cursor_Records - DEALLOCATE cursor_Records -END -GO ------------------------------------------------------------------------------------------ - -CREATE PROCEDURE PRPMO_ENTITY_TABLE_UPDATE_COLUMN(@ENTITY_ID INT,@RECORD_ID INT, @CONTROL_ID INTEGER, @COL_NAME VARCHAR(50), @CHANGED_WHO VARCHAR(50),@VALUE_NEW VARCHAR(MAX) = NULL) ---ALTER PROCEDURE PRPMO_ENTITY_TABLE_UPDATE_COLUMN(@ENTITY_ID INT,@RECORD_ID INT, @COL_NAME VARCHAR(50),@CHANGED_WHO VARCHAR(50),@VALUE_NEW VARCHAR(MAX) = NULL) -AS - DECLARE @SQL_UPDATE NVARCHAR(MAX), - @ENTITY_TABLENAME VARCHAR(50), - @TYPE_ID INT - -BEGIN - SELECT @ENTITY_TABLENAME = ENTITY_TABLENAME FROM TBPMO_KONFIGURATION WHERE GUID = 1 - SELECT @TYPE_ID = CONTROL_TYPE_ID FROM TBPMO_CONTROL WHERE GUID = @CONTROL_ID - IF @TYPE_ID IN(7,12,14) --DGV,CheckedListBox,ListBox - SELECT @VALUE_NEW = dbo.FNPMO_GET_CONTROL_VALUES(@CONTROL_ID,@RECORD_ID) - - IF @VALUE_NEW IS NULL - SET @SQL_UPDATE = 'UPDATE @TABLE@ENT_ID SET [@COL_NAME] = NULL,ChangedWho = ''@CHANGED_WHO'',ChangedWhen = ''@CHANGED_WHEN'' WHERE [Record-ID] = @RECORD_ID' - ELSE - SET @SQL_UPDATE = 'UPDATE @TABLE@ENT_ID SET [@COL_NAME] = ''@VALUE_NEW'',ChangedWho = ''@CHANGED_WHO'',ChangedWhen = ''@CHANGED_WHEN'' WHERE [Record-ID] = @RECORD_ID' - - SET @SQL_UPDATE = REPLACE(@SQL_UPDATE,'@ENT_ID',CONVERT(VARCHAR(3),@ENTITY_ID)) - SET @SQL_UPDATE = REPLACE(@SQL_UPDATE,'@TABLE',@ENTITY_TABLENAME) - SET @SQL_UPDATE = REPLACE(@SQL_UPDATE,'@VALUE_NEW',@VALUE_NEW) - SET @SQL_UPDATE = REPLACE(@SQL_UPDATE,'@COL_NAME',@COL_NAME) - SET @SQL_UPDATE = REPLACE(@SQL_UPDATE,'@RECORD_ID',CONVERT(VARCHAR(10),@RECORD_ID)) - SET @SQL_UPDATE = REPLACE(@SQL_UPDATE,'@CHANGED_WHEN',CONVERT(VARCHAR(25),GETDATE())) - SET @SQL_UPDATE = REPLACE(@SQL_UPDATE,'@CHANGED_WHO',@CHANGED_WHO) - - EXEC sp_executesql @SQL_UPDATE -END -GO ------------------------------------------------------------------------------------------ - ---CREATE PROCEDURE PRPMO_ALTER_ENTITY_TABLE(@pENTITY_ID INT,@pCOL_NAME VARCHAR(50),@pCOL_NAME_OLD VARCHAR(50),@pTYP_ID INT,@pDEFAULT_VALUE VARCHAR(100),@pACTION TINYINT = 0) -CREATE PROCEDURE PRPMO_ALTER_ENTITY_TABLE(@pENTITY_ID INT,@pCOL_NAME VARCHAR(50),@pCOL_NAME_OLD VARCHAR(50),@pTYP_ID INT,@pDEFAULT_VALUE VARCHAR(100),@pACTION TINYINT = 0) -AS -DECLARE @SQL NVARCHAR(MAX), - @DEFAULT_VALUE VARCHAR(100), - @ENTITY_TABLENAME VARCHAR(50), - @TEMP_COL_NAME VARCHAR(50), - @SQL_DEF NVARCHAR(MAX), - @DFNAME VARCHAR(50), - @DROP NVARCHAR(500) -BEGIN - SELECT @ENTITY_TABLENAME = ENTITY_TABLENAME FROM TBPMO_KONFIGURATION WHERE GUID = 1 - SET @DEFAULT_VALUE = @pDEFAULT_VALUE - - IF @pACTION = 0 -- Für Insert - BEGIN - SET @SQL = 'ALTER TABLE @TABLE@ENT' + CHAR(13) + 'ADD [@COL_NAME]' - SET @SQL = REPLACE(@SQL,'@ENT',CONVERT(VARCHAR(3),@pENTITY_ID)) - SET @SQL = REPLACE(@SQL,'@TABLE',@ENTITY_TABLENAME) - SET @SQL = REPLACE(@SQL,'@COL_NAME',@pCOL_NAME) - - IF @pTYP_ID IN(10,11) --CheckBox,RadioBox - BEGIN - IF @DEFAULT_VALUE = 'False' - SET @DEFAULT_VALUE = '0' - ELSE - SET @DEFAULT_VALUE = '1' - - SET @SQL = @SQL +' BIT NOT NULL DEFAULT ' + @DEFAULT_VALUE + CHAR(13) - END - ELSE IF @pTYP_ID = 6 --Picturebox - SET @SQL = @SQL +' VARBINARY(MAX)' + CHAR(13) - ELSE IF @pTYP_ID IN(7,12,14) --GridView,CheckedListBox,GridViewCheckable - SET @SQL = @SQL + ' VARCHAR(MAX)' + CHAR(13) - ELSE IF @pTYP_ID = 4 --DatePicker - SET @SQL = @SQL + ' VARCHAR(10)' + CHAR(13) - ELSE - BEGIN - IF LEN(ISNULL(@DEFAULT_VALUE,'')) > 0 - BEGIN - SET @SQL = @SQL + ' VARCHAR(MAX) DEFAULT ''@DEFAULT''' + CHAR(13) - SET @SQL = REPLACE(@SQL,'@DEFAULT',@DEFAULT_VALUE) - END - ELSE - SET @SQL = @SQL + ' VARCHAR(MAX)' + CHAR(13) - END - --PRINT @SQL - - EXEC sp_executesql @SQL - END - ELSE IF @pACTION = 1 -- Für Update - BEGIN - IF LEN(ISNULL(@pCOL_NAME_OLD,'')) > 0 - BEGIN - SET @SQL = '@TABLE@ENT.[@OLDNAME]' - SET @SQL = REPLACE(@SQL,'@ENT',CONVERT(VARCHAR(3),@pENTITY_ID)) - SET @SQL = REPLACE(@SQL,'@TABLE',@ENTITY_TABLENAME) - SET @SQL = REPLACE(@SQL,'@OLDNAME',@pCOL_NAME_OLD) - - --PRINT @COL_NAME - --PRINT @TABLENAME_COL - - --Update des Columnnames - EXEC sp_RENAME @SQL, @pCOL_NAME, 'COLUMN' - - - SET @SQL = 'ALTER TABLE @TABLE@ENT ALTER COLUMN ' - SET @SQL = REPLACE(@SQL,'@ENT',CONVERT(VARCHAR(3),@pENTITY_ID)) - SET @SQL = REPLACE(@SQL,'@TABLE',@ENTITY_TABLENAME) - SET @SQL = @SQL + '[' + @pCOL_NAME + '] ' - - IF @pTYP_ID IN(10,11) --CheckBox,RadioBox - BEGIN - IF @DEFAULT_VALUE = 'False' - SET @DEFAULT_VALUE = '0' - ELSE - SET @DEFAULT_VALUE = '1' - SET @SQL = @SQL +'BIT NOT NULL DEFAULT ' + @DEFAULT_VALUE - END - ELSE IF @pTYP_ID = 6 --Picturebox - SET @SQL = @SQL +'VARBINARY(MAX)' - ELSE IF @pTYP_ID IN(7,12,14) --GridView,CheckedListBox,GridViewCheckable - SET @SQL = @SQL + 'VARCHAR(MAX)' - ELSE IF @pTYP_ID = 4 --DatePicker - SET @SQL = @SQL + 'VARCHAR(10)' - ELSE - BEGIN - SET @SQL = @SQL + 'VARCHAR(MAX)' - IF @DEFAULT_VALUE IS NOT NULL - BEGIN - SET @TEMP_COL_NAME = REPLACE(@TEMP_COL_NAME,' ','') - SET @SQL_DEF = 'ALTER TABLE @TABLE@ENT ADD CONSTRAINT DEF@TABLE@ENT_@COL_NAME DEFAULT N''@DEFAULT_VALUE'' FOR [' + @pCOL_NAME + ']' - SET @SQL_DEF = REPLACE(@SQL_DEF,'@DEFAULT_VALUE',@DEFAULT_VALUE) - SET @SQL_DEF = REPLACE(@SQL_DEF,'@ENT',CONVERT(VARCHAR(3),@pENTITY_ID)) - SET @SQL_DEF = REPLACE(@SQL_DEF,'@TABLE',@ENTITY_TABLENAME) - SET @SQL_DEF = REPLACE(@SQL_DEF,'@COL_NAME',@TEMP_COL_NAME) - END - END - - --PRINT '@ALTER SQL-COMMAND: ' + @SQL - EXEC sp_executesql @SQL - - SET @DFNAME = 'DEF@TABLE@ENT_@COL_NAME' - SET @DFNAME = REPLACE(@DFNAME,'@ENT',CONVERT(VARCHAR(3),@pENTITY_ID)) - SET @DFNAME = REPLACE(@DFNAME,'@TABLE',@ENTITY_TABLENAME) - SET @DFNAME = REPLACE(@DFNAME,'@COL_NAME',@TEMP_COL_NAME) - --PRINT '@DFNAME: ' + @DFNAME - IF EXISTS(SELECT * FROM sys.default_constraints WHERE name = @DFNAME) - BEGIN - --PRINT 'DEFAULT KEY EXISTS' - SET @DROP = 'ALTER TABLE @TABLE@ENT DROP CONSTRAINT DEF@TABLE@ENT_@COL_NAME' - SET @DROP = REPLACE(@DROP,'@ENT',CONVERT(VARCHAR(3),@pENTITY_ID)) - SET @DROP = REPLACE(@DROP,'@TABLE',@ENTITY_TABLENAME) - SET @DROP = REPLACE(@DROP,'@COL_NAME',@TEMP_COL_NAME) - --PRINT @DROP - EXEC sp_executesql @DROP - END - IF LEN(@SQL_DEF) > 0 AND LEN(@DEFAULT_VALUE) > 0 - BEGIN - --PRINT '@SQL DEFAULT CONSTRAINT: ' + @SQL_DEF - EXEC sp_executesql @SQL_DEF - END - - END - END - ELSE IF @pACTION = 2 -- Für Delete - BEGIN - SET @DFNAME = 'DEF@TABLE@ENT_@COL_NAME' - SET @DFNAME = REPLACE(@DFNAME,'@ENT',CONVERT(VARCHAR(3),@pENTITY_ID)) - SET @DFNAME = REPLACE(@DFNAME,'@TABLE',@ENTITY_TABLENAME) - SET @DFNAME = REPLACE(@DFNAME,'@COL_NAME',@TEMP_COL_NAME) - --PRINT '@DFNAME: ' + @DFNAME - IF EXISTS(SELECT * FROM sys.default_constraints WHERE name = @DFNAME) - BEGIN - --PRINT 'DEFAULT KEY EXISTS' - SET @DROP = 'ALTER TABLE @TABLE@ENT DROP CONSTRAINT DEF@TABLE@ENT_@COL_NAME' - SET @DROP = REPLACE(@DROP,'@ENT',CONVERT(VARCHAR(3),@pENTITY_ID)) - SET @DROP = REPLACE(@DROP,'@TABLE',@ENTITY_TABLENAME) - SET @DROP = REPLACE(@DROP,'@COL_NAME',@TEMP_COL_NAME) - --PRINT @DROP - EXEC sp_executesql @DROP - END - SET @SQL = 'ALTER TABLE @TABLE@ENT' + CHAR(13) + ' DROP COLUMN [@COL_NAME]' - SET @SQL = REPLACE(@SQL,'@ENT',CONVERT(VARCHAR(3),@pENTITY_ID)) - SET @SQL = REPLACE(@SQL,'@TABLE',@ENTITY_TABLENAME) - SET @SQL = REPLACE(@SQL,'@COL_NAME',@pCOL_NAME) - EXEC sp_executesql @DROP - END - EXEC PRPMO_CREATE_ENTITY_TABLE_VIEW @pENTITY_ID -END -GO - -ALTER TRIGGER [dbo].[TBPMO_CONTROL_VALUE_AFT_INS] ON [dbo].[TBPMO_CONTROL_VALUE] -FOR INSERT -AS - DECLARE - @RECORD_ID INTEGER, - @CONTROL_ID INTEGER, - @ADDED_WHO VARCHAR(50), - @VALUE_NEW VARCHAR(MAX), - @DOC_ID INTEGER, - @USER_ID INTEGER, - @USER_ID_ECM INTEGER, - @RIGHT INTEGER, - @COUNTER_CONTROL_UPDATE_ID INTEGER, - @ENTITY_ID INTEGER, - @COL_NAME VARCHAR(50) - SELECT - @RECORD_ID = INSERTED.RECORD_ID, - @CONTROL_ID = INSERTED.CONTROL_ID, - @ADDED_WHO = INSERTED.ADDED_WHO, - @VALUE_NEW = INSERTED.VALUE, - @ENTITY_ID = T.FORM_ID, - @COL_NAME = T1.COL_NAME - FROM INSERTED, TBPMO_RECORD T,TBPMO_CONTROL T1 - WHERE INSERTED.RECORD_ID = T.GUID AND - INSERTED.CONTROL_ID = T1.GUID - - EXEC PRPMO_ENTITY_TABLE_UPDATE_COLUMN @ENTITY_ID, @RECORD_ID,@CONTROL_ID, @COL_NAME,@ADDED_WHO,@VALUE_NEW - - IF EXISTS(SELECT CONTROL_ID FROM TBPMO_APPOINTMENT_CONTROLS WHERE CONTROL_ID = @CONTROL_ID) - BEGIN - DECLARE @SUBJECT VARCHAR(100), - @LOCATION VARCHAR(100), - @DESCRIPTION VARCHAR(100) - SELECT @SUBJECT = APPT_SUBJECT, @LOCATION = APPT_LOCATION,@DESCRIPTION = APPT_DESCRIPTION FROM TBPMO_APPOINTMENT_CONTROLS WHERE CONTROL_ID = @CONTROL_ID - - INSERT INTO TBPMO_APPOINTMENTS (Type,[StartDate],[EndDate],[AllDay],[Subject],[Location],[Description],Status,Label,[CustomField1],[CustomField2]) VALUES - (0,CONVERT(DATE,@VALUE_NEW),CONVERT(DATE,@VALUE_NEW),1,@SUBJECT,@LOCATION,@DESCRIPTION,0,2,@RECORD_ID,@CONTROL_ID) - END - - /*###### KUNDEN-INDIVIDUELL - BEGIN ####################################################################*/ - IF @CONTROL_ID = 346 - BEGIN - SELECT @COUNTER_CONTROL_UPDATE_ID = COUNTER_CONTROL_UPDATE_ID + 1 FROM TBPMO_KONFIGURATION WHERE GUID = 1 - UPDATE TBPMO_KONFIGURATION SET COUNTER_CONTROL_UPDATE_ID = @COUNTER_CONTROL_UPDATE_ID WHERE GUID = 1 - DECLARE cursor_DOCS CURSOR FOR - select DocID from VWPMO_DOC_SEARCH T, TBPMO_DOC_RECORD_LINK TRL where T.DocID = TRL.DOC_ID AND - TRL.RECORD_ID = @RECORD_ID - --SELECT [USER_ID] FROM TBDD_GROUPS_USER WHERE GROUP_ID = (SELECT GUID FROM TBDD_USER_GROUPS WHERE NAME = @VALUE_NEW) - OPEN cursor_DOCS - FETCH NEXT FROM cursor_DOCS INTO @DOC_ID - WHILE @@FETCH_STATUS = 0 - BEGIN - BEGIN - DECLARE cursor_User CURSOR FOR - SELECT [USER_ID] FROM TBDD_GROUPS_USER WHERE GROUP_ID = (SELECT GUID FROM TBDD_USER_GROUPS WHERE NAME = @VALUE_NEW) - --select DocID from VWPMO_DOC_SEARCH where RECORD_ID = @RECORD_ID - OPEN cursor_User - FETCH NEXT FROM cursor_User INTO @USER_ID - WHILE @@FETCH_STATUS = 0 - BEGIN - SELECT @USER_ID_ECM = USERID_FK_INT_ECM FROM TBDD_USER WHERE GUID = @USER_ID - EXEC PRPMO_RIGHTS_CHECK_RIGHT @DOC_ID,@USER_ID,@USER_ID_ECM,1,'ADD RIGHT','LESEBERECHTIGUNG TEAM','TBPMO_CONTROL_VALUE_AFT_INS_346', @COUNTER_CONTROL_UPDATE_ID - FETCH NEXT FROM cursor_User INTO @USER_ID - END - CLOSE cursor_User - DEALLOCATE cursor_User - END - FETCH NEXT FROM cursor_DOCS INTO @DOC_ID - END - CLOSE cursor_DOCS - DEALLOCATE cursor_DOCS - END - /*###### KUNDEN-INDIVIDUELL - ENDE ####################################################################*/ -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, - @USER_ID_ECM INTEGER, - @RIGHT INTEGER, - @COUNTER_CONTROL_UPDATE_ID INTEGER, - @UPDATE_SQL NVARCHAR(MAX), - @ENTITY_ID INTEGER, - @COL_NAME VARCHAR(50) - IF UPDATE (VALUE) - BEGIN - SELECT - @CONTROL_ID = DELETED.CONTROL_ID, - @RECORD_ID = DELETED.RECORD_ID, - @VALUE_OLD = DELETED.VALUE, - @ENTITY_ID = T.FORM_ID, - @COL_NAME = T1.COL_NAME - FROM DELETED, TBPMO_RECORD T,TBPMO_CONTROL T1 - WHERE DELETED.RECORD_ID = T.GUID AND - DELETED.CONTROL_ID = T1.GUID - - IF @CONTROL_ID in (29,14,346) - BEGIN - PRINT 'CHANGE OF RIGHT RELEVANT CONTROL' - SELECT @COUNTER_CONTROL_UPDATE_ID = COUNTER_CONTROL_UPDATE_ID + 1 FROM TBPMO_KONFIGURATION WHERE GUID = 1 - UPDATE TBPMO_KONFIGURATION SET COUNTER_CONTROL_UPDATE_ID = @COUNTER_CONTROL_UPDATE_ID WHERE GUID = 1 - END - --RAISERROR (@VALUE , 16, 1) - SELECT - @CHANGE_STEP = CHANGE_STEP, - @CHANGED_WHO = CHANGED_WHO, - @VALUE_NEW = VALUE, - @REDO = REDO - FROM INSERTED - --PRINT 'OLD VALUE: ' + @VALUE_OLD - --PRINT 'NEW VALUE: ' + @VALUE_NEW - IF @CHANGED_WHO IS NULL - BEGIN - SELECT @CHANGED_WHO = IN_WORK_WHO FROM TBPMO_RECORD WHERE GUID = @RECORD_ID - IF @CHANGED_WHO IS NULL - SET @CHANGED_WHO = 'TRIGGER DEFAULT' - END - 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änderungen - IF EXISTS(SELECT LOG_UPDATE FROM TBPMO_RECORD_LOG_CONFIG WHERE CONTROL_ID = @CONTROL_ID AND LOG_UPDATE = 1) - 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 - ELSE - PRINT 'VALUES NOT DIFFERENT' - EXEC PRPMO_ENTITY_TABLE_UPDATE_COLUMN @ENTITY_ID, @RECORD_ID,@CONTROL_ID, @COL_NAME,@CHANGED_WHO,@VALUE_NEW - /*###### KUNDEN-INDIVIDUELL - BEGIN ####################################################################*/ - IF @CONTROL_ID = 29 --Vertragseigner Person - BEGIN - --### Zuerst müssen die Rechte der geänderten Person gelöscht werden - select @USER_ID = dbo.FNPMO_GET_USERID_FORSTRING (@VALUE_OLD) - If @USER_ID IS NOT NULL AND @USER_ID <> 0 - BEGIN - SELECT @USER_ID_ECM = USERID_FK_INT_ECM FROM TBDD_USER WHERE GUID = @USER_ID - DECLARE cursDOC_V1 CURSOR FOR - select DocID from VWPMO_DOC_SEARCH T, TBPMO_DOC_RECORD_LINK TRL where T.DocID = TRL.DOC_ID AND - TRL.RECORD_ID = @RECORD_ID - OPEN cursDOC_V1 - FETCH NEXT FROM cursDOC_V1 INTO @DOC_ID - WHILE @@FETCH_STATUS = 0 - BEGIN - EXEC PRPMO_RIGHTS_CHECK_RIGHT @DOC_ID,@USER_ID,@USER_ID_ECM,3,'DELETE RIGHT','ContractOwner',@CHANGED_WHO, @COUNTER_CONTROL_UPDATE_ID - - FETCH NEXT FROM cursDOC_V1 INTO @DOC_ID - END - CLOSE cursDOC_V1 - DEALLOCATE cursDOC_V1 - END - SET @COUNTER_CONTROL_UPDATE_ID = @COUNTER_CONTROL_UPDATE_ID + 1 - UPDATE TBPMO_KONFIGURATION SET COUNTER_CONTROL_UPDATE_ID = @COUNTER_CONTROL_UPDATE_ID WHERE GUID = 1 - --### Jetzt prüfen der neuen Rechte - select @USER_ID = dbo.FNPMO_GET_USERID_FORSTRING (@VALUE_NEW) - If @USER_ID IS NOT NULL AND @USER_ID <> 0 - BEGIN - SELECT @USER_ID_ECM = USERID_FK_INT_ECM FROM TBDD_USER WHERE GUID = @USER_ID - DECLARE cursDOC_V1 CURSOR FOR - select DocID from VWPMO_DOC_SEARCH T, TBPMO_DOC_RECORD_LINK TRL where T.DocID = TRL.DOC_ID AND - TRL.RECORD_ID = @RECORD_ID - OPEN cursDOC_V1 - FETCH NEXT FROM cursDOC_V1 INTO @DOC_ID - WHILE @@FETCH_STATUS = 0 - BEGIN - EXEC PRPMO_RIGHTS_CHECK_RIGHT @DOC_ID,@USER_ID,@USER_ID_ECM,3,'ADD RIGHT','VERTRAGSEIGNER USER',@CHANGED_WHO, @COUNTER_CONTROL_UPDATE_ID - - FETCH NEXT FROM cursDOC_V1 INTO @DOC_ID - END - CLOSE cursDOC_V1 - DEALLOCATE cursDOC_V1 - END - END - -- ####### Vertragseigner Team ############### - ELSE IF @CONTROL_ID = 14 - BEGIN - /*Die Rechte des des alten Vertragseigner-Teams löschen*/ - DECLARE C_OLDUSER_CONTROWN CURSOR FOR - SELECT T.[USER_ID], T1.USERID_FK_INT_ECM FROM TBDD_GROUPS_USER T, TBDD_USER T1 WHERE T.USER_ID = T1.GUID AND T.GROUP_ID = (SELECT GUID FROM TBDD_USER_GROUPS WHERE UPPER(NAME) = UPPER(@VALUE_OLD)) - OPEN C_OLDUSER_CONTROWN - FETCH NEXT FROM C_OLDUSER_CONTROWN INTO @USER_ID,@USER_ID_ECM - WHILE @@FETCH_STATUS = 0 - BEGIN - DECLARE cursDOC_V2 CURSOR FOR - select DocID from VWPMO_DOC_SEARCH T, TBPMO_DOC_RECORD_LINK TRL where T.DocID = TRL.DOC_ID AND - TRL.RECORD_ID = @RECORD_ID - OPEN cursDOC_V2 - FETCH NEXT FROM cursDOC_V2 INTO @DOC_ID - WHILE @@FETCH_STATUS = 0 - BEGIN - EXEC PRPMO_RIGHTS_CHECK_RIGHT @DOC_ID,@USER_ID,@USER_ID_ECM,3,'DELETE RIGHT','CONTRACTOWNER',@CHANGED_WHO, @COUNTER_CONTROL_UPDATE_ID - FETCH NEXT FROM cursDOC_V2 INTO @DOC_ID - END - CLOSE cursDOC_V2 - DEALLOCATE cursDOC_V2 - - FETCH NEXT FROM C_OLDUSER_CONTROWN INTO @USER_ID,@USER_ID_ECM - END - CLOSE C_OLDUSER_CONTROWN - DEALLOCATE C_OLDUSER_CONTROWN - SET @COUNTER_CONTROL_UPDATE_ID = @COUNTER_CONTROL_UPDATE_ID + 1 - UPDATE TBPMO_KONFIGURATION SET COUNTER_CONTROL_UPDATE_ID = @COUNTER_CONTROL_UPDATE_ID WHERE GUID = 1 - /*Die Rechte des Teams Vertragseigner hinzufügen*/ - DECLARE c_USER CURSOR FOR - SELECT T.[USER_ID], T1.USERID_FK_INT_ECM FROM TBDD_GROUPS_USER T, TBDD_USER T1 WHERE T.USER_ID = T1.GUID AND T.GROUP_ID = (SELECT GUID FROM TBDD_USER_GROUPS WHERE UPPER(NAME) = UPPER(@VALUE_NEW)) - OPEN c_USER - FETCH NEXT FROM c_USER INTO @USER_ID,@USER_ID_ECM - WHILE @@FETCH_STATUS = 0 - BEGIN - DECLARE cursDOC_V2 CURSOR FOR - select DocID from VWPMO_DOC_SEARCH T, TBPMO_DOC_RECORD_LINK TRL where T.DocID = TRL.DOC_ID AND - TRL.RECORD_ID = @RECORD_ID - OPEN cursDOC_V2 - FETCH NEXT FROM cursDOC_V2 INTO @DOC_ID - WHILE @@FETCH_STATUS = 0 - BEGIN - EXEC PRPMO_RIGHTS_CHECK_RIGHT @DOC_ID,@USER_ID,@USER_ID_ECM,3,'ADD RIGHT','CONTRACTOWNER',@CHANGED_WHO,@COUNTER_CONTROL_UPDATE_ID - FETCH NEXT FROM cursDOC_V2 INTO @DOC_ID - END - CLOSE cursDOC_V2 - DEALLOCATE cursDOC_V2 - - FETCH NEXT FROM c_USER INTO @USER_ID,@USER_ID_ECM - END - CLOSE c_USER - DEALLOCATE c_USER - END - - END - /*###### KUNDEN-INDIVIDUELL - END ####################################################################*/ - --Generelle Updates (Datum und Recor-Ä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 TRIGGER [dbo].[TBPMO_CONTROL_VALUE_AFT_DEL] ON [dbo].[TBPMO_CONTROL_VALUE] -FOR DELETE -AS -BEGIN TRY - DECLARE - @RECORD_ID INTEGER, - @CONTROL_ID INTEGER, - @ADDED_WHO VARCHAR(50), - @VALUE_DEL VARCHAR(MAX), - @DOC_ID INTEGER, - @USER_ID INTEGER, - @USER_ID_ECM INTEGER, - @RIGHT INTEGER, - @ENTITY_ID INTEGER, - @COL_NAME VARCHAR(50), - @COUNTER_CONTROL_UPDATE_ID INTEGER - SELECT - @RECORD_ID = DELETED.RECORD_ID, - @CONTROL_ID = DELETED.CONTROL_ID, - @VALUE_DEL = DELETED.VALUE, - @ENTITY_ID = T1.FORM_ID, - @COL_NAME = T1.COL_NAME - FROM DELETED, TBPMO_RECORD T,TBPMO_CONTROL T1 - WHERE DELETED.RECORD_ID = T.GUID AND - DELETED.CONTROL_ID = T1.GUID - - IF EXISTS(SELECT CONTROL_ID FROM TBPMO_APPOINTMENT_CONTROLS WHERE CONTROL_ID = @CONTROL_ID) - DELETE FROM TBPMO_APPOINTMENTS WHERE [CustomField1] = @RECORD_ID AND [CustomField2] = @CONTROL_ID - EXEC PRPMO_ENTITY_TABLE_UPDATE_COLUMN @ENTITY_ID, @RECORD_ID,@CONTROL_ID, @COL_NAME,'' - /*###### KUNDEN-INDIVIDUELL - BEGIN ####################################################################*/ - IF @CONTROL_ID in (29,14,346) - BEGIN - SELECT @COUNTER_CONTROL_UPDATE_ID = COUNTER_CONTROL_UPDATE_ID + 1 FROM TBPMO_KONFIGURATION WHERE GUID = 1 - UPDATE TBPMO_KONFIGURATION SET COUNTER_CONTROL_UPDATE_ID = @COUNTER_CONTROL_UPDATE_ID WHERE GUID = 1 - END - IF @CONTROL_ID = 346 - BEGIN - DECLARE cursor_DOCS CURSOR FOR - select DocID from VWPMO_DOC_SEARCH T, TBPMO_DOC_RECORD_LINK TRL where T.DocID = TRL.DOC_ID AND - TRL.RECORD_ID = @RECORD_ID - --SELECT [USER_ID] FROM TBDD_GROUPS_USER WHERE GROUP_ID = (SELECT GUID FROM TBDD_USER_GROUPS WHERE NAME = @VALUE_NEW) - OPEN cursor_DOCS - FETCH NEXT FROM cursor_DOCS INTO @DOC_ID - WHILE @@FETCH_STATUS = 0 - BEGIN - BEGIN - DECLARE cursor_User CURSOR FOR - SELECT [USER_ID] FROM TBDD_GROUPS_USER WHERE GROUP_ID = (SELECT GUID FROM TBDD_USER_GROUPS WHERE NAME = @VALUE_DEL) - OPEN cursor_User - FETCH NEXT FROM cursor_User INTO @USER_ID - WHILE @@FETCH_STATUS = 0 - BEGIN - SELECT @USER_ID_ECM = USERID_FK_INT_ECM FROM TBDD_USER WHERE GUID = @USER_ID - EXEC PRPMO_RIGHTS_CHECK_RIGHT @DOC_ID,@USER_ID,@USER_ID_ECM,1,'DELETE RIGHT','LESEBERECHTIGUNG TEAM','TBPMO_CONTROL_VALUE_AFT_DEL_346', @COUNTER_CONTROL_UPDATE_ID - FETCH NEXT FROM cursor_User INTO @USER_ID - END - CLOSE cursor_User - DEALLOCATE cursor_User - END - FETCH NEXT FROM cursor_DOCS INTO @DOC_ID - END - CLOSE cursor_DOCS - DEALLOCATE cursor_DOCS - END - /*###### KUNDEN-INDIVIDUELL - ENDE ####################################################################*/ -END TRY -BEGIN CATCH - PRINT 'FEHLER IN TRIGGER: ' + CONVERT(VARCHAR(30),ERROR_PROCEDURE()) + ' - ZEILE: ' + CONVERT(VARCHAR(10),ERROR_LINE()) - + ' - FEHLER-MESSAGE: ' - + CONVERT(VARCHAR(500),ERROR_MESSAGE()) -END CATCH -GO - -ALTER PROCEDURE [dbo].[PRPMO_DELETE_RECORD](@pRECORD_ID INT, @WHO VARCHAR(30)) -AS - DELETE FROM TBPMO_WORKFLOW_TASK_USER WHERE WF_TASK_ID IN (SELECT GUID FROM TBPMO_WORKFLOW_TASK WHERE RECORD_ID = @pRECORD_ID) - DELETE FROM TBPMO_WORKFLOW_TASK WHERE RECORD_ID = @pRECORD_ID - DELETE FROM TBPMO_RECORD_CONNECT WHERE RECORD1_ID = @pRECORD_ID OR RECORD2_ID = @pRECORD_ID - DELETE FROM TBPMO_WORKFLOW_TASK WHERE RECORD_ID = @pRECORD_ID - DELETE FROM TBPMO_CONTROL_VALUE WHERE RECORD_ID = @pRECORD_ID - DELETE FROM TBPMO_WORKFLOW_REMINDER WHERE RECORD_ID = @pRECORD_ID - DELETE FROM TBPMO_FOLLUPEMAIL_RECORD WHERE RECORD_ID = @pRECORD_ID - DELETE FROM TBPMO_RECORD_VARIANT WHERE RECORD_ID = @pRECORD_ID - DELETE FROM TBPMO_RECORD_GEODATA WHERE RECORD_ID = @pRECORD_ID - DELETE FROM TBPMO_DOC_VALUES WHERE RECORD_ID = @pRECORD_ID - - DECLARE @DELETE_SQL NVARCHAR(MAX),@ENTITY_ID INT - SELECT @ENTITY_ID = FORM_ID FROM TBPMO_RECORD WHERE GUID = @pRECORD_ID - SET @DELETE_SQL = 'DELETE FROM TBPMO_ENTITY_TABLE@ENT_ID WHERE [Record-ID] = @RECORD_ID' - SET @DELETE_SQL = REPLACE(@DELETE_SQL,'@ENT_ID',@ENTITY_ID) - SET @DELETE_SQL = REPLACE(@DELETE_SQL,'@RECORD_ID',@pRECORD_ID) - EXEC sp_executesql @DELETE_SQL - DELETE FROM TBPMO_RECORD WHERE GUID = @pRECORD_ID - - INSERT INTO TBPMO_LOG_ESSENTIALS (REFERENCE_KEY,REFERENCE_STRING,COMMENT,ADDED_WHO) VALUES (@pRECORD_ID,'RECORD-ID','RECORD DELETED BY USER',@WHO) - -GO -CREATE TRIGGER [dbo].[TBPMO_CONTROL_AFT_INS] ON [dbo].[TBPMO_CONTROL] -FOR INSERT -AS - DECLARE - @CONTROL_ID INTEGER, - @ADDED_WHO VARCHAR(50), - @DEFAULT_VALUE VARCHAR(100), - @ENTITY_ID INTEGER, - @COL_NAME VARCHAR(50), - @TYP_ID INTEGER, - @SQL NVARCHAR(MAX) - SELECT - @CONTROL_ID = GUID, - @ADDED_WHO = ADDED_WHO, - @DEFAULT_VALUE = DEFAULT_VALUE, - @ENTITY_ID = FORM_ID, - @COL_NAME = COL_NAME - FROM INSERTED - --@pENTITY_ID INT,@pCOL_NAME VARCHAR(50),@pCOL_NAME_OLD VARCHAR(50),@pTYP_ID INT,@pDEFAULT_VALUE VARCHAR(100),@pACTION TINYINT = 0 - EXEC PRPMO_ALTER_ENTITY_TABLE @ENTITY_ID, @COL_NAME, '' ,@TYP_ID,@DEFAULT_VALUE,0 -GO -ALTER TRIGGER [dbo].[TBPMO_CONTROL_AFT_UPD] ON [dbo].[TBPMO_CONTROL] -FOR UPDATE -AS -BEGIN TRY - DECLARE - @CONTROL_ID INTEGER, - @TYP_ID INTEGER, - @TABLENAME_COL NVARCHAR(100), - @NEW_COL_NAME NVARCHAR(100), - @SQL NVARCHAR(MAX), - @ENTITY_ID INTEGER, - @COL_NAME VARCHAR(50), - @COL_NAME_OLD VARCHAR(50), - @DEFAULT_VALUE VARCHAR(MAX), - @SQL_DEF NVARCHAR(1000) - SELECT - @COL_NAME_OLD = COL_NAME - FROM DELETED - SELECT - @CONTROL_ID = GUID, - @TYP_ID = CONTROL_TYPE_ID, - @ENTITY_ID = FORM_ID, - @COL_NAME = COL_NAME, - @DEFAULT_VALUE = DEFAULT_VALUE - FROM INSERTED - --@pENTITY_ID INT,@pCOL_NAME VARCHAR(50),@pCOL_NAME_OLD VARCHAR(50),@pTYP_ID INT,@pDEFAULT_VALUE VARCHAR(100),@pACTION TINYINT = 0 - EXEC PRPMO_ALTER_ENTITY_TABLE @ENTITY_ID, @COL_NAME, @COL_NAME_OLD ,@TYP_ID,@DEFAULT_VALUE,1 - UPDATE TBPMO_CONTROL SET CHANGED_WHEN = GETDATE() FROM INSERTED WHERE TBPMO_CONTROL.GUID = INSERTED.GUID -END TRY -BEGIN CATCH - PRINT 'FEHLER IN PROCEDURE: ' + CONVERT(VARCHAR(30),ERROR_PROCEDURE()) + ' - ZEILE: ' + CONVERT(VARCHAR(10),ERROR_LINE()) - + ' - FEHLER-MESSAGE: ' - + CONVERT(VARCHAR(500),ERROR_MESSAGE()) -END CATCH -GO -CREATE TRIGGER [dbo].[TBPMO_CONTROL_AFT_DEL] ON [dbo].[TBPMO_CONTROL] -FOR DELETE -AS -DECLARE - @CONTROL_ID INTEGER, - @TYP_ID INTEGER, - @TABLENAME_COL NVARCHAR(100), - @NEW_COL_NAME NVARCHAR(100), - @SQL NVARCHAR(MAX), - @ENTITY_ID INTEGER, - @COL_NAME VARCHAR(50), - @COL_NAME_OLD VARCHAR(50), - @DEFAULT_VALUE VARCHAR(MAX), - @SQL_DEF NVARCHAR(1000) - SELECT - @CONTROL_ID = GUID, - @COL_NAME_OLD = COL_NAME, - @TYP_ID = CONTROL_TYPE_ID, - @ENTITY_ID = FORM_ID, - @COL_NAME = COL_NAME, - @DEFAULT_VALUE = DEFAULT_VALUE - FROM DELETED - - EXEC PRPMO_ALTER_ENTITY_TABLE @ENTITY_ID, @COL_NAME, @COL_NAME_OLD ,@TYP_ID,@DEFAULT_VALUE,2 - -GO -CREATE TRIGGER [dbo].[TBPMO_DOC_RECORD_LINK_AFT_DEL] ON [dbo].[TBPMO_DOC_RECORD_LINK] -WITH EXECUTE AS CALLER -FOR DELETE -AS -BEGIN TRY - DECLARE - @RECORD_ID INTEGER, - @DOC_ID INTEGER, - @ENTITY_ID INTEGER - SELECT - @RECORD_ID = RECORD_ID, - @DOC_ID = DOC_ID - FROM DELETED - - SELECT @ENTITY_ID = FORM_ID FROM TBPMO_RECORD WHERE GUID = @RECORD_ID - DELETE FROM TBPMO_DOC_VALUES WHERE DocID = @DOC_ID AND RECORD_ID = @RECORD_ID - - EXEC PRPMO_DOC_RECORD_LINK_UPD_ENTITY_TABLE @RECORD_ID -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 FUNCTION [dbo].[FNPMO_GETUSER_RECORDS_ENTITY_1] (@pUSER_ID INTEGER, @pENTITY_ID INTEGER) -RETURNS @Output TABLE ( - RECORD_ID INTEGER, - WDRIGHT INTEGER -) -AS -BEGIN - INSERT INTO @Output(RECORD_ID,WDRIGHT) - SELECT [Record-ID], 1 FROM VWRENOLIT_CONTRACTS_DE where UNSICHTBAR = 0 - INSERT INTO @Output(RECORD_ID,WDRIGHT) - SELECT [Record-ID], 3 FROM TBPMO_ENTITY_TABLE1 where Unsichtbar = 1 AND Team in - (SELECT T1.NAME FROM TBDD_GROUPS_USER T,TBDD_USER_GROUPS T1 WHERE T.GROUP_ID = T1.GUID AND USER_ID = @pUSER_ID AND T1.GUID IN (1,11)) - RETURN -END -GO -CREATE PROCEDURE [dbo].[PRPMO_COPY_RECORD](@pRECORD_ID INT,@WHO VARCHAR(50)) -AS -DECLARE @NEW_RECORD_ID INT - -BEGIN TRY - INSERT INTO TBPMO_RECORD ( - FORM_ID,ADDED_WHO,RECORD_ENTITY_ID) - SELECT FORM_ID,@WHO,4711 FROM TBPMO_RECORD WHERE GUID = @pRECORD_ID - - SELECT @NEW_RECORD_ID = MAX(GUID) FROM TBPMO_RECORD - - INSERT INTO TBPMO_RECORD_CONNECT(RECORD1_ID,RECORD2_ID,COMMENT) SELECT - RECORD1_ID,@NEW_RECORD_ID,COMMENT FROM TBPMO_RECORD_CONNECT WHERE RECORD2_ID = @pRECORD_ID - - DECLARE @CONTROL_ID INT, - @REC_ID INT, - @VALUE VARCHAR(MAX), - @ADDED_WHO VARCHAR(50) - - DECLARE cursorControlValues CURSOR LOCAL FOR - SELECT CONTROL_ID,@NEW_RECORD_ID,VALUE,@WHO FROM TBPMO_CONTROL_VALUE WHERE RECORD_ID = @pRECORD_ID - OPEN cursorControlValues - FETCH NEXT FROM cursorControlValues INTO @CONTROL_ID,@REC_ID,@VALUE,@ADDED_WHO - WHILE @@FETCH_STATUS = 0 - BEGIN - INSERT INTO TBPMO_CONTROL_VALUE(CONTROL_ID,RECORD_ID,VALUE,ADDED_WHO) VALUES ( - @CONTROL_ID,@REC_ID,@VALUE,@ADDED_WHO) - - FETCH NEXT FROM cursorControlValues INTO @CONTROL_ID,@REC_ID,@VALUE,@ADDED_WHO - END - CLOSE cursorControlValues - DEALLOCATE cursorControlValues - - INSERT INTO TBPMO_CONTROL_IMAGE(CONTROL_ID,RECORD_ID,IMG,ADDED_WHO) SELECT - CONTROL_ID,@NEW_RECORD_ID,IMG,@WHO FROM TBPMO_CONTROL_IMAGE WHERE RECORD_ID = @pRECORD_ID - -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_RECORD_AFT_INS] ON [dbo].[TBPMO_RECORD] -FOR INSERT -AS -BEGIN TRY - DECLARE - @RECORD_ID INTEGER, - @MAX_ID INTEGER, - @FORM_ID INTEGER, - @WF_ID INTEGER, - @PARENT_ID INTEGER, - @ADDED_WHO VARCHAR(50), - @INSERT_SQL NVARCHAR(MAX) - SELECT - @FORM_ID = FORM_ID, - @RECORD_ID = GUID - FROM INSERTED - - SELECT @MAX_ID = ISNULL(MAX(RECORD_ENTITY_ID) + 1,0) FROM TBPMO_RECORD - WHERE FORM_ID = @FORM_ID AND GUID <> @RECORD_ID - SET @INSERT_SQL = 'INSERT INTO TBPMO_ENTITY_TABLE@ENT_ID ([Record-ID],AddedWho,AddedWhen) SELECT GUID,ADDED_WHO,ADDED_WHEN FROM TBPMO_RECORD WHERE GUID = @RECORD_ID' - SET @INSERT_SQL = REPLACE(@INSERT_SQL,'@ENT_ID',CONVERT(VARCHAR(10),@FORM_ID)) - SET @INSERT_SQL = REPLACE(@INSERT_SQL,'@RECORD_ID',@RECORD_ID) - - PRINT @INSERT_SQL - EXEC sp_executesql @INSERT_SQL - --RAISERROR(@INSERT_SQL, 16, 1); - -- ROLLBACK; - UPDATE TBPMO_RECORD SET RECORD_ENTITY_ID = @MAX_ID FROM INSERTED WHERE TBPMO_RECORD.GUID = INSERTED.GUID - ----Überprüfen ob für die Entity_ID Workflows definiert sind? - IF EXISTS( - SELECT DISTINCT T.[ENTITY_ID] FROM TBPMO_WORKFLOW_ENTITY_STATE T,TBPMO_WORKFLOW T1 where T.WF_ID = T1.GUID AND T1.MANUALLY = 0 AND T.[ENTITY_ID] = @FORM_ID - AND T1.CREATE_ON_REC_CREATE = 1 - ) - BEGIN - EXECUTE dbo.PRPMO_CREATE_WF_TASKS @FORM_ID, @RECORD_ID - END - -END TRY -BEGIN CATCH - PRINT 'FEHLER IN TRIGGER: ' + CONVERT(VARCHAR(30),ERROR_PROCEDURE()) + ' - ZEILE: ' + CONVERT(VARCHAR(10),ERROR_LINE()) - + ' - FEHLER-MESSAGE: ' - + CONVERT(VARCHAR(500),ERROR_MESSAGE()) -END CATCH -GO -CREATE PROCEDURE [dbo].[PRPMO_CREATE_ENTITY_TABLE_VIEW](@pENTITY_ID INT) -AS -DECLARE @COL_NAME VARCHAR(50), - @SQL_BEGIN NVARCHAR(4000), - @SQL_END NVARCHAR(4000), - @SQL NVARCHAR(MAX), - @CONTROL_ID INT, - @RESULT NVARCHAR(MAX), - @TYPEID INT, - @TABINDEX INT, - @SQL_LBL VARCHAR(4000), - @ENTITY_TABLENAME VARCHAR(50), - @VWPMO_ENTITY_TABLE VARCHAR(100) - -SELECT @ENTITY_TABLENAME = ENTITY_TABLENAME FROM TBPMO_KONFIGURATION WHERE GUID = 1 - -DECLARE c_SPALTENNAMEN CURSOR FOR SELECT T.GUID,'[' + T.COL_NAME + ']' AS 'COL_NAME',T2.GUID,T1.TAB_INDEX, '' FROM TBPMO_CONTROL T,TBPMO_CONTROL_SCREEN T1,TBPMO_CONTROL_TYPE T2 - WHERE T.SHOW_COLUMN = 1 AND T.[COL_NAME] <> '' AND T.GUID = T1.CONTROL_ID AND T.CONTROL_TYPE_ID = T2.GUID AND T.FORM_ID = @pENTITY_ID AND LEN(ISNULL(T.COL_NAME,'')) > 0 AND T.CONTROL_TYPE_ID NOT IN (1,5) - UNION - SELECT T.GUID,'[' + T.NAME + ']' AS 'COL_NAME',T2.GUID,T1.TAB_INDEX, T.SQL_COMMAND_1 FROM TBPMO_CONTROL T,TBPMO_CONTROL_SCREEN T1,TBPMO_CONTROL_TYPE T2 - WHERE T.GUID = T1.CONTROL_ID AND T.CONTROL_TYPE_ID = T2.GUID AND T.FORM_ID = @pENTITY_ID AND T.CONTROL_TYPE_ID = 1 AND LEN(ISNULL(T.SQL_COMMAND_1,'')) > 0 - ORDER BY TAB_INDEX -BEGIN - SET @VWPMO_ENTITY_TABLE = 'VWPMO_ENTITY_TABLE@pENTITY_ID' - SET @SQL_BEGIN = 'CREATE VIEW @VIEW AS SELECT T.[Record-ID]' + CHAR(13) + ',T.ROW_COLOR' + CHAR(13) + ',@pENTITY_ID AS [Form-ID]' + CHAR(13) + ',' - SET @SQL_BEGIN = REPLACE(@SQL_BEGIN,'@VIEW',@VWPMO_ENTITY_TABLE) - SET @SQL_BEGIN = REPLACE(@SQL_BEGIN,'@pENTITY_ID',CONVERT(VARCHAR(3),@pENTITY_ID)) - - - SET @VWPMO_ENTITY_TABLE = REPLACE(@VWPMO_ENTITY_TABLE,'@pENTITY_ID',CONVERT(VARCHAR(3),@pENTITY_ID)) - - SET @SQL_END = 'T.file_exists as [files?],' + CHAR(13) + 'T.file_count as [file count],' + CHAR(13) + 'T.AddedWho,' + CHAR(13) + 'T.AddedWhen,' + CHAR(13) + 'T.ChangedWho,' + CHAR(13) + 'T.ChangedWhen FROM @TABLE@pENTITY_ID T' - SET @SQL_END = REPLACE(@SQL_END,'@pENTITY_ID',CONVERT(VARCHAR(3),@pENTITY_ID)) - SET @SQL_END = REPLACE(@SQL_END,'@TABLE',@ENTITY_TABLENAME) - SET @SQL = '' - OPEN c_SPALTENNAMEN - FETCH NEXT FROM c_SPALTENNAMEN INTO @CONTROL_ID,@COL_NAME,@TYPEID,@TABINDEX,@SQL_LBL - - WHILE @@FETCH_STATUS = 0 - BEGIN - SET @COL_NAME = REPLACE(@COL_NAME,'lbl','') - --PRINT @COL_NAME - IF @TYPEID IN(10,11) -- CheckBox,RadioBox - SET @SQL = @SQL + 'ISNULL(CASE WHEN UPPER(RTRIM(LTRIM(T.@COL_NAME))) = ''TRUE'' THEN 1 ELSE 0 END,0) AS ' + @COL_NAME + ',' + CHAR(13) - ELSE IF @TYPEID = 6 --PictureBox - SET @SQL = @SQL + 'T.@COL_NAME AS ' + @COL_NAME + CHAR(13) - ELSE IF @TYPEID = 1 --Label mit SQL - BEGIN - SET @SQL_LBL = REPLACE(UPPER(@SQL_LBL),'@RECORD_ID','T.[Record-ID]') - SET @SQL = @SQL + '(' + @SQL_LBL + ') AS ' + @COL_NAME + ',' + CHAR(13) - END - --ELSE IF @TYPEID IN(7,12,14) --DGV,CheckedListBox,ListBox - -- SET @SQL = @SQL + 'dbo.FNPMO_GET_CONTROL_VALUES(' + CONVERT(VARCHAR(20),@CONTROL_ID) + ', T.[Record-ID]) AS ' + @COL_NAME + ',' + CHAR(13) - ELSE IF @TYPEID = 4 --Datepicker - SET @SQL = @SQL + 'T.@COL_NAME AS ' + @COL_NAME + ',' + CHAR(13) - ELSE - SET @SQL = @SQL + 'ISNULL(T.@COL_NAME,'''') AS ' + @COL_NAME + ',' + CHAR(13) - - SET @SQL = REPLACE(@SQL,'@COL_NAME',@COL_NAME) - FETCH NEXT FROM c_SPALTENNAMEN INTO @CONTROL_ID,@COL_NAME,@TYPEID,@TABINDEX,@SQL_LBL - END - - CLOSE c_SPALTENNAMEN - DEALLOCATE c_SPALTENNAMEN - SET @RESULT = @SQL_BEGIN + @SQL + @SQL_END - PRINT @RESULT - - IF EXISTS (SELECT * FROM INFORMATION_SCHEMA.VIEWS WHERE TABLE_NAME = @VWPMO_ENTITY_TABLE) - BEGIN - SET @SQL = 'DROP VIEW [dbo].[@VIEW]' - SET @SQL = REPLACE(@SQL,'@VIEW',@VWPMO_ENTITY_TABLE) - PRINT @SQL - EXEC sp_executesql @SQL - END - EXEC sp_executesql @RESULT - UPDATE TBPMO_FORM_SQL SET SQL_COMMAND1 = @RESULT WHERE FORM_ID = @pENTITY_ID -END -GO -ALTER 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 - --Den Defaultvalue der DropdownListe eintragen - IF (SELECT COUNT(GUID) FROM TBPMO_DOCSEARCH_RESULTLIST_CONFIG WHERE ENTITY_ID = @ENTITY_ID AND TYPE_ID = 3 AND CONFIG_COLUMNS = 1) >= 1 - BEGIN - INSERT INTO TBPMO_DOC_VALUES (DocID,RECORD_ID,CONFIG_ID,VALUE,ADDED_WHO) - SELECT @DOC_ID,@RECORD_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 = 3 - --SELECT T.* 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 = 21 AND T.TYPE_ID = 3 - END - IF (SELECT COUNT(GUID) FROM TBPMO_DOCSEARCH_RESULTLIST_CONFIG WHERE ENTITY_ID = @ENTITY_ID AND TYPE_ID <> 3 AND CONFIG_COLUMNS = 1) >= 1 - INSERT INTO TBPMO_DOC_VALUES (DocID,RECORD_ID,CONFIG_ID,VALUE,ADDED_WHO) - SELECT @DOC_ID,@RECORD_ID,T.GUID,'',@ADDED_WHO FROM TBPMO_DOCSEARCH_RESULTLIST_CONFIG T WHERE T.ENTITY_ID = @ENTITY_ID AND T.TYPE_ID <> 4 AND T.CONFIG_COLUMNS = 1 - --SELECT * FROM TBPMO_DOCSEARCH_RESULTLIST_CONFIG WHERE ENTITY_ID = 21 AND TYPE_ID <> 3 AND CONFIG_COLUMNS = 1 - EXEC PRPMO_DOC_RECORD_LINK_UPD_ENTITY_TABLE @RECORD_ID - /*###### KUNDEN-INDIVIDUELL - BEGIN ####################################################################*/ - DECLARE - @ENITTY_ID INTEGER, - @DOCTYPE VARCHAR(250), - @SUPPLIER VARCHAR(250) - SELECT @ENITTY_ID = FORM_ID FROM TBPMO_RECORD WHERE GUID = @RECORD_ID - - IF @ENITTY_ID = 21 - BEGIN - SELECT @SUPPLIER = VALUE FROM TBPMO_CONTROL_VALUE WHERE RECORD_ID = @RECORD_ID AND CONTROL_ID = 258 - SELECT @DOCTYPE = T.Doctype FROM TBPMO_DOCRESULT_LIST T, TBPMO_DOC_RECORD_LINK T1 WHERE T.DocID = T1.DOC_ID AND T1.RECORD_ID = @RECORD_ID - IF @SUPPLIER <> '' and @DOCTYPE <> '' AND @DOCTYPE IN ('55.SA','23B.NDA/CA') - BEGIN - INSERT INTO TBPMO_DOC_RECORD_LINK (DOC_ID,RECORD_ID,ADDED_WHO) SELECT @DOC_ID,[Record-ID],'TBPMO_DOC_RECORD_LINK_AFT_INS' FROM VWTEMP_PMO_FORM19 where UPPER(Supplier_name) = UPPER(@SUPPLIER) - END - END - /*###### KUNDEN-INDIVIDUELL - ENDE ####################################################################*/ -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 TRIGGER [dbo].[TBPMO_DOCSEARCH_RESULTLIST_CONFIG_AFT_INS] ON [dbo].[TBPMO_DOCSEARCH_RESULTLIST_CONFIG] -AFTER INSERT -AS -BEGIN - DECLARE - @CONFIG_ID INTEGER, - @ENTITY_ID INTEGER, - @ADDED_WHO VARCHAR(50), - @TYPE_ID INTEGER, - @CONFIG_COLUMNS INTEGER, - @DOC_ID INT, - @REC_ID INT, - @VALUE VARCHAR(100) - SELECT - @CONFIG_ID = GUID, - @ENTITY_ID = [ENTITY_ID], - @TYPE_ID = [TYPE_ID], - @ADDED_WHO = ADDED_WHO, - @CONFIG_COLUMNS = CONFIG_COLUMNS - FROM INSERTED - --Den Defaultvalue eintragen - IF @CONFIG_COLUMNS = 1 - BEGIN - DECLARE cursorRecordDocs CURSOR LOCAL FOR - SELECT T.RECORD_ID, T.DOC_ID FROM TBPMO_DOC_RECORD_LINK T, TBPMO_RECORD T1 WHERE T.RECORD_ID = T1.GUID AND T1.FORM_ID = @ENTITY_ID - OPEN cursorRecordDocs - FETCH NEXT FROM cursorRecordDocs INTO @REC_ID,@DOC_ID - WHILE @@FETCH_STATUS = 0 - BEGIN - INSERT INTO TBPMO_DOC_VALUES (DocID,RECORD_ID,CONFIG_ID,VALUE,ADDED_WHO) VALUES ( - @DOC_ID,@REC_ID,@CONFIG_ID,'',@ADDED_WHO) - FETCH NEXT FROM cursorRecordDocs INTO @REC_ID,@DOC_ID - END - CLOSE cursorRecordDocs - DEALLOCATE cursorRecordDocs - END -END -GO \ No newline at end of file diff --git a/01_SMART_UP_TOOLS/08_ORGFLOW/SQL/UPDATE Archiv (added to main script)/PRPMO_AFTER_UPDATE_VALUES.sql b/01_SMART_UP_TOOLS/08_ORGFLOW/SQL/UPDATE Archiv (added to main script)/PRPMO_AFTER_UPDATE_VALUES.sql deleted file mode 100644 index d2ac153..0000000 Binary files a/01_SMART_UP_TOOLS/08_ORGFLOW/SQL/UPDATE Archiv (added to main script)/PRPMO_AFTER_UPDATE_VALUES.sql and /dev/null differ diff --git a/01_SMART_UP_TOOLS/08_ORGFLOW/SQL/UPDATE_SCRIPTS/2.4.8.9.sql b/01_SMART_UP_TOOLS/08_ORGFLOW/SQL/UPDATE_SCRIPTS/2.4.8.9.sql index bb3bf46..83e7f83 100644 --- a/01_SMART_UP_TOOLS/08_ORGFLOW/SQL/UPDATE_SCRIPTS/2.4.8.9.sql +++ b/01_SMART_UP_TOOLS/08_ORGFLOW/SQL/UPDATE_SCRIPTS/2.4.8.9.sql @@ -103,7 +103,7 @@ SELECT TOP 100 PERCENT MAX(T.dwDocID) as DocID ,T.dwParentID ,dbo.FNPMO_GET_WINDREAM_FILE_PATH (MAX(T.dwDocID)) AS FULL_FILENAME - ,(SELECT szLongName from DD_VMP01_APS01_windream60.dbo.BaseAttributes WHERE dwDocID = MAX(T.dwDocID)) AS [Filename] + ,(SELECT szLongName from windream60.dbo.BaseAttributes WHERE dwDocID = MAX(T.dwDocID)) AS [Filename] ,ISNULL(T.wmVar09,'NO DOCTYPE') AS Doctype ,(SELECT MAX(ISNULL(T.dwVersionNumber,'1')) from DD_VMP01_APS01_windream60.dbo.BaseAttributes WHERE dwDocID = MAX(T.dwDocID)) AS [Version] @@ -112,14 +112,14 @@ SELECT TOP 100 PERCENT ,T1.szDocTypeName AS OBJECTTYPE ,T.dwObjectTypeID FROM - DD_VMP01_APS01_windream60.dbo.BaseAttributes T - ,DD_VMP01_APS01_windream60.dbo.ObjectType T1 + windream60.dbo.BaseAttributes T + ,windream60.dbo.ObjectType T1 WHERE --T.dwParentID = 1896955 AND T.dwCatalogID = 1 AND T.dwObjectTypeID = 10005 AND T.dwObjectTypeID = T1.dwObjectTypeID - AND T.szText30 = 'ADDI-RELATION' + AND T.szText38 = 'ADDI-RELATION' GROUP BY T.dwVersionID ,T.dwParentID diff --git a/01_SMART_UP_TOOLS/08_ORGFLOW/SQL/UPDATE_SCRIPTS/2.5.0.1.sql b/01_SMART_UP_TOOLS/08_ORGFLOW/SQL/UPDATE_SCRIPTS/2.5.0.1.sql index 473a672..e3b5bae 100644 --- a/01_SMART_UP_TOOLS/08_ORGFLOW/SQL/UPDATE_SCRIPTS/2.5.0.1.sql +++ b/01_SMART_UP_TOOLS/08_ORGFLOW/SQL/UPDATE_SCRIPTS/2.5.0.1.sql @@ -21,14 +21,14 @@ BEGIN -- SELECT @WM_LAUFWERKBUCHSTABE = WM_LAUFWERKBUCHSTABE FROM TBPMO_KONFIGURATION WHERE GUID = 1 --SELECT @SHAREPATH = WMPATH_PREFIX FROM TBPMO_KONFIGURATION WHERE GUID = 1; - SELECT @FSFLAGS = dwFSFlags FROM [SDD-VMP04-SQL17\DD_DEVELOP01].[sDD_VMP01_APS01_windream60].dbo.BaseAttributes WHERE dwDocID = @pDOCID + SELECT @FSFLAGS = dwFSFlags FROM [windream60].dbo.BaseAttributes WHERE dwDocID = @pDOCID IF @FSFLAGS = 16 BEGIN SET @RESULT = 'THIS IS NOT A FILE!' END ELSE BEGIN - SELECT @DATEINAME = szLongName,@PARENT_ID = dwParentID FROM [SDD-VMP04-SQL17\DD_DEVELOP01].[sDD_VMP01_APS01_windream60].dbo.BaseAttributes WHERE dwDocID = @pDOCID + SELECT @DATEINAME = szLongName,@PARENT_ID = dwParentID FROM [windream60].dbo.BaseAttributes WHERE dwDocID = @pDOCID WHILE @a > 0 BEGIN IF @i = 0 @@ -58,7 +58,7 @@ BEGIN END END - SELECT @PARENTNAME = szLongName,@PARENT_ID = dwParentID FROM [SDD-VMP04-SQL17\DD_DEVELOP01].[sDD_VMP01_APS01_windream60].dbo.BaseAttributes WHERE dwDocID = @DOCID + SELECT @PARENTNAME = szLongName,@PARENT_ID = dwParentID FROM [windream60].dbo.BaseAttributes WHERE dwDocID = @DOCID SET @i = @i + 1 END END diff --git a/01_SMART_UP_TOOLS/08_ORGFLOW/SQL/UPDATE_SCRIPTS/2.5.2.2.sql b/01_SMART_UP_TOOLS/08_ORGFLOW/SQL/UPDATE_SCRIPTS/2.5.2.2.sql index a0f4d18..a03e869 100644 Binary files a/01_SMART_UP_TOOLS/08_ORGFLOW/SQL/UPDATE_SCRIPTS/2.5.2.2.sql and b/01_SMART_UP_TOOLS/08_ORGFLOW/SQL/UPDATE_SCRIPTS/2.5.2.2.sql differ diff --git a/01_SMART_UP_TOOLS/08_ORGFLOW/SQL/UPDATE_SCRIPTS/2.5.3.0.sql b/01_SMART_UP_TOOLS/08_ORGFLOW/SQL/UPDATE_SCRIPTS/2.5.3.0.sql index 369677a..f0447a8 100644 Binary files a/01_SMART_UP_TOOLS/08_ORGFLOW/SQL/UPDATE_SCRIPTS/2.5.3.0.sql and b/01_SMART_UP_TOOLS/08_ORGFLOW/SQL/UPDATE_SCRIPTS/2.5.3.0.sql differ diff --git a/01_SMART_UP_TOOLS/08_ORGFLOW/SQL/UPDATE_SCRIPTS/2.5.4.0.sql b/01_SMART_UP_TOOLS/08_ORGFLOW/SQL/UPDATE_SCRIPTS/2.5.4.0.sql index 4808f43..a9f3458 100644 Binary files a/01_SMART_UP_TOOLS/08_ORGFLOW/SQL/UPDATE_SCRIPTS/2.5.4.0.sql and b/01_SMART_UP_TOOLS/08_ORGFLOW/SQL/UPDATE_SCRIPTS/2.5.4.0.sql differ diff --git a/01_SMART_UP_TOOLS/08_ORGFLOW/SQL/UPDATE_SCRIPTS/2.5.5.2.sql b/01_SMART_UP_TOOLS/08_ORGFLOW/SQL/UPDATE_SCRIPTS/2.5.5.2.sql index bd734ca..705d911 100644 Binary files a/01_SMART_UP_TOOLS/08_ORGFLOW/SQL/UPDATE_SCRIPTS/2.5.5.2.sql and b/01_SMART_UP_TOOLS/08_ORGFLOW/SQL/UPDATE_SCRIPTS/2.5.5.2.sql differ diff --git a/01_SMART_UP_TOOLS/08_ORGFLOW/SQL/UPDATE_SCRIPTS/2.5.5.3.sql b/01_SMART_UP_TOOLS/08_ORGFLOW/SQL/UPDATE_SCRIPTS/2.5.5.3.sql index d1b65c8..bd4ef1e 100644 Binary files a/01_SMART_UP_TOOLS/08_ORGFLOW/SQL/UPDATE_SCRIPTS/2.5.5.3.sql and b/01_SMART_UP_TOOLS/08_ORGFLOW/SQL/UPDATE_SCRIPTS/2.5.5.3.sql differ diff --git a/01_SMART_UP_TOOLS/08_ORGFLOW/SQL/UPDATE_SCRIPTS/2.5.6.sql b/01_SMART_UP_TOOLS/08_ORGFLOW/SQL/UPDATE_SCRIPTS/2.5.6.sql new file mode 100644 index 0000000..27325ef Binary files /dev/null and b/01_SMART_UP_TOOLS/08_ORGFLOW/SQL/UPDATE_SCRIPTS/2.5.6.sql differ diff --git a/01_SMART_UP_TOOLS/10_ENVELOPE_CREATOR/Update/1.5.4.3.sql b/01_SMART_UP_TOOLS/10_ENVELOPE_CREATOR/Update/1.5.4.3.sql index 2098e53..7b18a2e 100644 --- a/01_SMART_UP_TOOLS/10_ENVELOPE_CREATOR/Update/1.5.4.3.sql +++ b/01_SMART_UP_TOOLS/10_ENVELOPE_CREATOR/Update/1.5.4.3.sql @@ -37,6 +37,8 @@ SET ANSI_NULLS ON GO SET QUOTED_IDENTIFIER ON GO +--Changed 12.05.2025 MS Status 3004 when Messages sent +--Changed 09.05.2025 MS Withdrawn nur als Status in History --Changed 23.04.2025 MS Neuer Dokumenten und Withdrawn-Status --CHANGED 06.06.2024 MS Status 2007, emailMeldungen integriert --CHANGED 11.06.2024 MS Status 2007, Cursor für andere REceiver @@ -56,13 +58,19 @@ BEGIN TRY @STATUS = STATUS, @USER_REFERENCE = USER_REFERENCE FROM INSERTED + PRINT '@USER_REFERENCE: ' + @USER_REFERENCE PRINT 'STATUS IS: ' + CONVERT(VARCHAR(10),@STATUS) --PRÜFEN OB ES EIN STATUS VOM WEBCLIENT IST 0 2 IF LEFT(CONVERT(VARCHAR(5),@STATUS),1) = 1 BEGIN PRINT 'REGULÄRER 1erStatus.. ' - IF @STATUS IN (1001, 1002, 1003, 1007, 1008, 1009,10009) /*ENVELOPE QUEUED*/ - UPDATE TBSIG_ENVELOPE SET STATUS = @STATUS WHERE GUID = @ENVELOPE_ID + IF @STATUS IN (1001, 1002, 1003, 1007, 1008, 1009,10009) + BEGIN + UPDATE TBSIG_ENVELOPE SET STATUS = @STATUS WHERE GUID = @ENVELOPE_ID; + --IF @STATUS In (1009,10009) AND @USER_REFERENCE <> 'API' + -- INSERT INTO TBSIG_ENVELOPE_HISTORY (ENVELOPE_ID,STATUS,ADDED_WHEN,ACTION_DATE) VALUES (@ENVELOPE_ID,3006,GETDATE(),GETDATE()); --MessageWithdrawn/Deleted Sent + END + END ELSE IF LEFT(CONVERT(VARCHAR(5),@STATUS),1) = 2 BEGIN @@ -88,7 +96,6 @@ BEGIN TRY SELECT @COMMENT = COMMENT,@REC_EMAIL = USER_REFERENCE FROM INSERTED SELECT @NAME_PORTAL = [EXTERNAL_PROGRAM_NAME],@SENDING_PROFILE = SENDING_PROFILE FROM [DD_ECM].[dbo].[TBSIG_CONFIG]; SELECT @EML_BODY_ADM = BODY,@EML_SUBJ_ADM = SUBJECT FROM TBSIG_EMAIL_TEMPLATE WHERE NAME = 'DocumentRejected_ADM' - SELECT BODY,SUBJECT FROM TBSIG_EMAIL_TEMPLATE WHERE NAME = 'DocumentRejected_ADM' SELECT @EML_BODY_REC = BODY,@EML_SUBJ_REC = SUBJECT FROM TBSIG_EMAIL_TEMPLATE WHERE NAME = 'DocumentRejected_REC' SELECT @EML_BODY_REC2 = BODY,@EML_SUBJ_REC2 = SUBJECT FROM TBSIG_EMAIL_TEMPLATE WHERE NAME = 'DocumentRejected_REC_2' @@ -117,9 +124,10 @@ BEGIN TRY SET @EML_BODY_REC = REPLACE(@EML_BODY_REC,'[DOCUMENT_TITLE]',@TITLE) SET @EML_SUBJ_REC = REPLACE(@EML_SUBJ_REC,'[DOCUMENT_TITLE]',@TITLE) PRINT 'EMAIL2...' + PRINT '@REC_EMAIL: ' + COALESCE(@REC_EMAIL,'IS NULL') INSERT INTO [dbo].[TBEMLP_EMAIL_OUT] (EMAIL_ADRESS, EMAIL_SUBJ, EMAIL_BODY, ADDED_WHO, SENDING_PROFILE, REFERENCE_ID, REFERENCE_STRING, REMINDER_TYPE_ID, WF_ID) VALUES (@REC_EMAIL, @EML_SUBJ_REC, @EML_BODY_REC, 'SIG RECEIVER REJECTED2', @SENDING_PROFILE, @ENVELOPE_ID, @ENV_UUID, 202377, @STATUS); - + PRINT 'EMAIL2 inserted...' /*Andere Receiver über die Ablehnung informieren*/ SET @EML_SUBJ_REC2 = REPLACE(@EML_SUBJ_REC2,'[DOCUMENT_TITLE]',@TITLE) DECLARE @BODY_RECEIVER NVARCHAR(MAX),@EML_RECEIVER2 VARCHAR(250) @@ -145,7 +153,8 @@ BEGIN TRY END CLOSE cursReceiver_TBSIG_ENVELOPE_HISTORY DEALLOCATE cursReceiver_TBSIG_ENVELOPE_HISTORY - UPDATE TBSIG_ENVELOPE SET STATUS = 10007 WHERE GUID = @ENVELOPE_ID /*Umschlag abgelehnt*/ + UPDATE TBSIG_ENVELOPE SET STATUS = 10007 WHERE GUID = @ENVELOPE_ID /*Umschlag abgelehnt*/; + INSERT INTO TBSIG_ENVELOPE_HISTORY (ENVELOPE_ID,STATUS,USER_REFERENCE, ADDED_WHEN,ACTION_DATE) VALUES (@ENVELOPE_ID,3004,@USER_REFERENCE,GETDATE(),GETDATE()); --MessageDeletion Sent END END ELSE IF LEFT(CONVERT(VARCHAR(5),@STATUS),1) = 3 @@ -167,6 +176,8 @@ BEGIN CATCH + ' - ERROR-MESSAGE: ' + CONVERT(VARCHAR(500),ERROR_MESSAGE()) END CATCH + + GO INSERT INTO TBDD_SQL_COMMANDS(TITLE,SQL_COMMAND) VALUES ('REPORT ENV ALL_USER_THIS_MONTH','EXEC PRSIG_ADMIN_GET_ALL_ENV_INV_REPORT 0') GO diff --git a/01_SMART_UP_TOOLS/10_ENVELOPE_CREATOR/Update/1.5.4.4.sql b/01_SMART_UP_TOOLS/10_ENVELOPE_CREATOR/Update/1.5.4.4.sql new file mode 100644 index 0000000..13a521f --- /dev/null +++ b/01_SMART_UP_TOOLS/10_ENVELOPE_CREATOR/Update/1.5.4.4.sql @@ -0,0 +1,150 @@ +UPDATE TBDD_MODULES SET DB_VERSION = '1.5.4.4' WHERE SHORT_NAME = 'SIG_ENV_CR' +GO + +SET ANSI_NULLS ON +GO +SET QUOTED_IDENTIFIER ON +GO +--Changed 22.05.2025 MS Ablehnung über insert mit Envelope-Creator als User +--Changed 23.04.2025 MS Neuer Dokumenten und Withdrawn-Status +--CHANGED 06.06.2024 MS Status 2007, emailMeldungen integriert +--CHANGED 11.06.2024 MS Status 2007, Cursor für andere REceiver +ALTER TRIGGER [dbo].[TBSIG_ENVELOPE_HISTORY_AFT_INS] ON [dbo].[TBSIG_ENVELOPE_HISTORY] +WITH EXECUTE AS CALLER +FOR INSERT +AS +BEGIN TRY + DECLARE + @GUID BIGINT, + @ENVELOPE_ID INTEGER, + @STATUS INTEGER, + @USER_REFERENCE VARCHAR(100) + SELECT + @GUID = GUID, + @ENVELOPE_ID = ENVELOPE_ID, + @STATUS = STATUS, + @USER_REFERENCE = USER_REFERENCE + FROM INSERTED + PRINT 'STATUS IS: ' + CONVERT(VARCHAR(10),@STATUS) + --PRÜFEN OB ES EIN STATUS VOM WEBCLIENT IST 0 2 + IF LEFT(CONVERT(VARCHAR(5),@STATUS),1) = 1 + BEGIN + PRINT 'REGULÄRER 1erStatus.. ' + IF @STATUS IN (1001, 1002, 1003, 1007, 1008, 1009,10009) /*ENVELOPE QUEUED*/ + UPDATE TBSIG_ENVELOPE SET STATUS = @STATUS WHERE GUID = @ENVELOPE_ID + END + ELSE IF LEFT(CONVERT(VARCHAR(5),@STATUS),1) = 2 + BEGIN + + IF @STATUS = 2005 /*DOKUMENT SIGINIERT*/ + BEGIN + DECLARE @COUNT_SIGNED INT, @COUNT_SIGNERS INT + SELECT @COUNT_SIGNED = COUNT(GUID) FROM TBSIG_ENVELOPE_HISTORY WHERE ENVELOPE_ID = @ENVELOPE_ID AND STATUS = 2005 + SELECT @COUNT_SIGNERS = COUNT(REC_ID) FROM VWSIG_ENVELOPE_RECEIVER WHERE ENV_ID = @ENVELOPE_ID + IF @COUNT_SIGNED = @COUNT_SIGNERS + BEGIN + UPDATE TBSIG_ENVELOPE SET STATUS = 1006 WHERE GUID = @ENVELOPE_ID /*FULLY SIGNED*/ + INSERT INTO TBSIG_ENVELOPE_HISTORY (ENVELOPE_ID, USER_REFERENCE, STATUS, ACTION_DATE) VALUES (@ENVELOPE_ID, 'System', 1006, DATEADD(second, 5, GETDATE())) + END + ELSE + UPDATE TBSIG_ENVELOPE SET STATUS = 1005 WHERE GUID = @ENVELOPE_ID /*PARTLY SIGNED*/ + END + ELSE IF @STATUS = 2007 /*VORGANG DURCH USER ABGELEHNT*/ + BEGIN + DECLARE @COMMENT VARCHAR(500),@REC_EMAIL VARCHAR(200),@EML_BODY_ADM VARCHAR(3000),@EML_SUBJ_ADM VARCHAR(3000),@EML_BODY_REC VARCHAR(3000),@EML_SUBJ_REC VARCHAR(3000), + @EML_BODY_REC2 VARCHAR(3000),@EML_SUBJ_REC2 VARCHAR(3000) + ,@ADM_MAIL VARCHAR(250),@ADM_NAME VARCHAR(200),@TITLE VARCHAR(200),@NAME_PORTAL VARCHAR(100),@NAME_RECEIVER VARCHAR(150),@SENDING_PROFILE INT,@ENV_UUID VARCHAR(200) + SELECT @COMMENT = COMMENT,@REC_EMAIL = USER_REFERENCE FROM INSERTED + SELECT @NAME_PORTAL = [EXTERNAL_PROGRAM_NAME],@SENDING_PROFILE = SENDING_PROFILE FROM [DD_ECM].[dbo].[TBSIG_CONFIG]; + SELECT @EML_BODY_ADM = BODY,@EML_SUBJ_ADM = SUBJECT FROM TBSIG_EMAIL_TEMPLATE WHERE NAME = 'DocumentRejected_ADM' + SELECT BODY,SUBJECT FROM TBSIG_EMAIL_TEMPLATE WHERE NAME = 'DocumentRejected_ADM' + SELECT @EML_BODY_REC = BODY,@EML_SUBJ_REC = SUBJECT FROM TBSIG_EMAIL_TEMPLATE WHERE NAME = 'DocumentRejected_REC' + SELECT @EML_BODY_REC2 = BODY,@EML_SUBJ_REC2 = SUBJECT FROM TBSIG_EMAIL_TEMPLATE WHERE NAME = 'DocumentRejected_REC_2' + + SELECT @ADM_MAIL = USER_EMAIL,@ADM_NAME = USER_PRE_NAME, @TITLE = TITLE,@ENV_UUID = [ENVELOPE_UUID] FROM VWSIG_ENVELOPE_DATA WHERE ENVELOPE_ID = @ENVELOPE_ID + + SELECT @NAME_RECEIVER = [NAME] FROM [DD_ECM].[dbo].[VWSIG_ENVELOPE_RECEIVER] where ENV_ID = @ENVELOPE_ID AND REC_EMAIL = @REC_EMAIL + IF @NAME_RECEIVER IS NULL + BEGIN + SET @NAME_RECEIVER = 'signFLOW - SYSTEM' + END + SET @EML_BODY_ADM = REPLACE(@EML_BODY_ADM,'[NAME_RECEIVER]',@NAME_RECEIVER) + SET @EML_BODY_ADM = REPLACE(@EML_BODY_ADM,'[NAME_SENDER]',@ADM_NAME) + --PRINT '#1' + @EML_BODY_ADM + --PRINT '#2' + @EML_BODY_ADM + SET @EML_BODY_ADM = REPLACE(@EML_BODY_ADM,'[DOCUMENT_TITLE]',@TITLE) + --PRINT '#3' + @EML_BODY_ADM + SET @EML_BODY_ADM = REPLACE(@EML_BODY_ADM,'[REASON]',@COMMENT) + --PRINT '#4' + @EML_BODY_ADM + SET @EML_BODY_ADM = REPLACE(@EML_BODY_ADM,'[NAME_PORTAL]',@NAME_PORTAL) + PRINT '@EML_BODY_ADM: ' + PRINT @EML_BODY_ADM + SET @EML_SUBJ_ADM = REPLACE(@EML_SUBJ_ADM,'[DOCUMENT_TITLE]',@TITLE) + PRINT '@EML_SUBJ_ADM: ' + PRINT @EML_SUBJ_ADM + PRINT 'EMAIL1...' + INSERT INTO [dbo].[TBEMLP_EMAIL_OUT] (EMAIL_ADRESS, EMAIL_SUBJ, EMAIL_BODY, ADDED_WHO, SENDING_PROFILE, REFERENCE_ID, REFERENCE_STRING, REMINDER_TYPE_ID, WF_ID) + VALUES (@ADM_MAIL, @EML_SUBJ_ADM, @EML_BODY_ADM, 'SIG RECEIVER REJECTED1', @SENDING_PROFILE, @ENVELOPE_ID, @ENV_UUID, 202377, @STATUS); + SET @EML_BODY_REC = REPLACE(@EML_BODY_REC,'[NAME_SENDER]',@ADM_NAME) + SET @EML_BODY_REC = REPLACE(@EML_BODY_REC,'[NAME_RECEIVER]',@NAME_RECEIVER) + SET @EML_BODY_REC = REPLACE(@EML_BODY_REC,'[DOCUMENT_TITLE]',@TITLE) + SET @EML_BODY_REC = REPLACE(@EML_BODY_REC,'[REASON]',@COMMENT) + SET @EML_BODY_REC = REPLACE(@EML_BODY_REC,'[NAME_PORTAL]',@NAME_PORTAL) + SET @EML_BODY_REC = REPLACE(@EML_BODY_REC,'[DOCUMENT_TITLE]',@TITLE) + SET @EML_SUBJ_REC = REPLACE(@EML_SUBJ_REC,'[DOCUMENT_TITLE]',@TITLE) + + IF @REC_EMAIL <> @ADM_MAIL + BEGIN + PRINT 'EMAIL2...' + INSERT INTO [dbo].[TBEMLP_EMAIL_OUT] (EMAIL_ADRESS, EMAIL_SUBJ, EMAIL_BODY, ADDED_WHO, SENDING_PROFILE, REFERENCE_ID, REFERENCE_STRING, REMINDER_TYPE_ID, WF_ID) + VALUES (@REC_EMAIL, @EML_SUBJ_REC, @EML_BODY_REC, 'SIG RECEIVER REJECTED2', @SENDING_PROFILE, @ENVELOPE_ID, @ENV_UUID, 202377, @STATUS); + END + + /*Andere Receiver über die Ablehnung informieren*/ + SET @EML_SUBJ_REC2 = REPLACE(@EML_SUBJ_REC2,'[DOCUMENT_TITLE]',@TITLE) + DECLARE @BODY_RECEIVER NVARCHAR(MAX),@EML_RECEIVER2 VARCHAR(250) + DECLARE cursReceiver_TBSIG_ENVELOPE_HISTORY CURSOR FOR + SELECT [NAME], [REC_EMAIL] FROM [DD_ECM].[dbo].[VWSIG_ENVELOPE_RECEIVER] where ENV_ID = @ENVELOPE_ID AND REC_EMAIL <> @REC_EMAIL + OPEN cursReceiver_TBSIG_ENVELOPE_HISTORY + FETCH NEXT FROM cursReceiver_TBSIG_ENVELOPE_HISTORY INTO @NAME_RECEIVER,@EML_RECEIVER2 + WHILE @@FETCH_STATUS = 0 + BEGIN + PRINT '@EML_BODY_REC2: ' + @EML_BODY_REC2 + SET @BODY_RECEIVER = @EML_BODY_REC2 + SET @BODY_RECEIVER = REPLACE(@BODY_RECEIVER,'[NAME_SENDER]',@ADM_NAME) + SET @BODY_RECEIVER = REPLACE(@BODY_RECEIVER,'[NAME_RECEIVER]',@NAME_RECEIVER) + SET @BODY_RECEIVER = REPLACE(@BODY_RECEIVER,'[DOCUMENT_TITLE]',@TITLE) + SET @BODY_RECEIVER = REPLACE(@BODY_RECEIVER,'[REASON]',@COMMENT) + SET @BODY_RECEIVER = REPLACE(@BODY_RECEIVER,'[NAME_PORTAL]',@NAME_PORTAL) + SET @BODY_RECEIVER = REPLACE(@BODY_RECEIVER,'[DOCUMENT_TITLE]',@TITLE) + SET @BODY_RECEIVER = REPLACE(@BODY_RECEIVER,'[DOCUMENT_TITLE]',@TITLE) + PRINT 'EMAIL3...' + INSERT INTO [dbo].[TBEMLP_EMAIL_OUT] (EMAIL_ADRESS, EMAIL_SUBJ, EMAIL_BODY, ADDED_WHO, SENDING_PROFILE, REFERENCE_ID, REFERENCE_STRING, REMINDER_TYPE_ID, WF_ID) + VALUES (@EML_RECEIVER2, @EML_SUBJ_REC2, @BODY_RECEIVER, 'SIG RECEIVER REJECTED3', @SENDING_PROFILE, @ENVELOPE_ID, @ENV_UUID, 202377, @STATUS); + FETCH NEXT FROM cursReceiver_TBSIG_ENVELOPE_HISTORY INTO @NAME_RECEIVER,@EML_RECEIVER2 + END + CLOSE cursReceiver_TBSIG_ENVELOPE_HISTORY + DEALLOCATE cursReceiver_TBSIG_ENVELOPE_HISTORY + UPDATE TBSIG_ENVELOPE SET STATUS = 10007 WHERE GUID = @ENVELOPE_ID /*Umschlag abgelehnt*/ + END + END + ELSE IF LEFT(CONVERT(VARCHAR(5),@STATUS),1) = 3 + IF @STATUS = 3001 /*EMAIL OUT SIGNATUREINLADUNG*/ + BEGIN + DECLARE @COUNT_MSG_OUT INT, @COUNT_USERS2_SIGN INT + SELECT @COUNT_MSG_OUT = COUNT(GUID) FROM TBSIG_ENVELOPE_HISTORY WHERE ENVELOPE_ID = @ENVELOPE_ID AND STATUS = 3001 + PRINT '@COUNT_MSG_OUT:' + CONVERT(VARCHAR(3),@COUNT_MSG_OUT) + SELECT @COUNT_USERS2_SIGN = COUNT(REC_ID) FROM VWSIG_ENVELOPE_RECEIVER WHERE ENV_ID = @ENVELOPE_ID + PRINT '@@COUNT_USERS2_SIGN:' + CONVERT(VARCHAR(3),@COUNT_USERS2_SIGN) + IF @COUNT_MSG_OUT = @COUNT_USERS2_SIGN + UPDATE TBSIG_ENVELOPE SET STATUS = 1004 WHERE GUID = @ENVELOPE_ID /*ALL INVITATIONS SENT*/ +-- INSERT INTO TBSIG_ENVELOPE_HISTORY (ENVELOPE_ID,USER_REFERENCE,STATUS,ACTION_DATE) VALUES (@ENVELOPE_ID,'Digital Data Email-Service',1004,GETDATE()) + END + +END TRY +BEGIN CATCH + PRINT 'ERROR IN PROCEDURE: ' + CONVERT(VARCHAR(30),ERROR_PROCEDURE()) + + ' - ERROR-MESSAGE: ' + + CONVERT(VARCHAR(500),ERROR_MESSAGE()) +END CATCH +GO \ No newline at end of file