alter table pruefschritthistory alter column beschreibung varchar(1024) go alter table pruefschritthistory add HistoryArt varchar(255) go update pruefschritthistory set historyart='' go /****** Object: Table [dbo].[ErrinnerungsMail] Script Date: 04.06.2017 10:14:51 ******/ SET ANSI_NULLS ON GO SET QUOTED_IDENTIFIER ON GO CREATE TABLE [dbo].[ErrinnerungsMail]( [Eintragnr] [INT] IDENTITY(1,1) NOT NULL, [mitarbeiternr] [INT] NOT NULL, [Mailtyp1] [INT] NULL, [Mailtyp2] [INT] NULL, [Mailtyp3] [INT] NULL, [Mailtyp4] [INT] NULL, [erstellt_am] [DATETIME] NULL, [mutiert_am] [DATETIME] NULL, [mutierer] [INT] NULL, [aktiv] [BIT] NULL, CONSTRAINT [PK_ErrinnerungsMail_1] PRIMARY KEY CLUSTERED ( [Eintragnr] ASC )WITH (PAD_INDEX = OFF, STATISTICS_NORECOMPUTE = OFF, IGNORE_DUP_KEY = OFF, ALLOW_ROW_LOCKS = ON, ALLOW_PAGE_LOCKS = ON) ON [PRIMARY] ) ON [PRIMARY] GO Go DROP VIEW [dbo].[View_Pruefschritt] GO /****** Object: View [dbo].[View_Pruefschritt] Script Date: 04.06.2017 09:53:53 ******/ SET ANSI_NULLS ON GO SET QUOTED_IDENTIFIER ON GO CREATE VIEW [dbo].[View_Pruefschritt] AS SELECT DISTINCT dbo.Pruefschritt.PruefschrittNr, dbo.Pruefschritt.PruefplanNr, dbo.Pruefplan.Bezeichnung, dbo.PruefSchrittStatus.Bezeichnung AS Status, dbo.PruefSchrittStatus.PruefschrittStatusNr, mitarbeiter_1.name + ' ' + mitarbeiter_1.vorname AS Hauptverantwortung, dbo.mitarbeiter.name + ' ' + dbo.mitarbeiter.vorname AS Verantwortung_ISI, mitarbeiter_2.name + ' ' + mitarbeiter_2.vorname AS Aktuell_Verantwortlich, dbo.Pruefschritt.Termin, dbo.Pruefschritt.Aktiv, dbo.Pruefschritt.Erstellt_am, dbo.Pruefschritt.Mutiert_am, mitarbeiter_4.name + ' ' + mitarbeiter_4.vorname + ', ' + mitarbeiter_4.tgnummer AS Mutierer, dbo.mitarbeiter.mitarbeiternr AS VerantwortungIsiNr, mitarbeiter_1.mitarbeiternr AS VerantwortungNr, mitarbeiter_2.mitarbeiternr AS Aktuelle_VerantwortungNr, dbo.Pruefplan.Beschreibung, dbo.Pruefplan.Pruefgegenstand, dbo.Pruefplan.Hilfsmittel, dbo.Pruefplan.Massnahmen, dbo.Pruefplan.Ergebnisse, dbo.Pruefschritt.Zugewiesen, mitarbeiter_3.name + ' ' + mitarbeiter_3.vorname AS VerantwortungPlan FROM dbo.Pruefschritt INNER JOIN dbo.Pruefplan ON dbo.Pruefschritt.PruefplanNr = dbo.Pruefplan.PruefplanNr INNER JOIN dbo.PruefSchrittStatus ON dbo.Pruefschritt.Statusnr = dbo.PruefSchrittStatus.PruefschrittStatusNr INNER JOIN dbo.mitarbeiter ON dbo.Pruefschritt.VeramtwortungISINr = dbo.mitarbeiter.mitarbeiternr INNER JOIN dbo.mitarbeiter AS mitarbeiter_1 ON dbo.Pruefschritt.VerantwortlichNr = mitarbeiter_1.mitarbeiternr INNER JOIN dbo.mitarbeiter AS mitarbeiter_2 ON dbo.Pruefschritt.Aktueller_Verantwortlicher = mitarbeiter_2.mitarbeiternr INNER JOIN dbo.mitarbeiter AS mitarbeiter_3 ON dbo.Pruefplan.VerantwortungPlanNr = mitarbeiter_3.mitarbeiternr LEFT OUTER JOIN dbo.mitarbeiter AS mitarbeiter_4 ON dbo.Pruefschritt.Mutierer = mitarbeiter_4.mitarbeiternr WHERE (dbo.Pruefschritt.Aktiv = 1) GO /****** Object: StoredProcedure [dbo].[sp_get_Pruefschritthistory] Script Date: 04.06.2017 09:54:39 ******/ DROP PROCEDURE [dbo].[sp_get_Pruefschritthistory] GO /****** Object: StoredProcedure [dbo].[sp_get_Pruefschritthistory] Script Date: 04.06.2017 09:54:39 ******/ SET ANSI_NULLS ON GO SET QUOTED_IDENTIFIER ON GO -- ============================================= -- Author: -- Create date: -- Description: -- ============================================= CREATE PROCEDURE [dbo].[sp_get_Pruefschritthistory] @key INT AS BEGIN SELECT TOP (100) PERCENT dbo.PruefSchrittHistory.PruefSchrittHistoryNr, dbo.PruefSchrittHistory.PruefschrittNr, dbo.PruefSchrittHistory.Eintragdatum, dbo.PruefSchrittHistory.Beschreibung, dbo.PruefSchrittHistory.Aktiv, dbo.PruefSchrittHistory.Erstellt_am, dbo.PruefSchrittHistory.Mutiert_am, dbo.PruefSchrittHistory.HistoryArt, dbo.mitarbeiter.name + ' ' + dbo.mitarbeiter.vorname + ', ' + dbo.mitarbeiter.tgnummer AS Mutierer FROM dbo.PruefSchrittHistory INNER JOIN dbo.mitarbeiter ON dbo.PruefSchrittHistory.Mutierer = dbo.mitarbeiter.mitarbeiternr WHERE (dbo.PruefSchrittHistory.Aktiv = 1) AND (dbo.PruefSchrittHistory.PruefschrittNr = @key) END GO /****** Object: StoredProcedure [dbo].[sp_get_pruefschrittfinding] Script Date: 04.06.2017 09:54:58 ******/ DROP PROCEDURE [dbo].[sp_get_pruefschrittfinding] GO /****** Object: StoredProcedure [dbo].[sp_get_pruefschrittfinding] Script Date: 04.06.2017 09:54:58 ******/ SET ANSI_NULLS ON GO SET QUOTED_IDENTIFIER ON GO -- ============================================= -- Author: -- Create date: -- Description: -- ============================================= CREATE PROCEDURE [dbo].[sp_get_pruefschrittfinding] @key INT AS BEGIN --SELECT * FROM pruefschrittfinding SELECT dbo.PruefschrittFinding.PruefschrittfindingNr, dbo.PruefschrittFinding.Pruefschrittresultatnr, dbo.PruefschrittFinding.Bezeichnung, dbo.PruefschrittFinding.Beschreibung, dbo.PruefschrittFinding.Aktiv, dbo.PruefschrittFinding.Erstellt_am, dbo.PruefschrittFinding.Mutiert_am, dbo.PruefschrittFinding.Wichtigkeitnr, dbo.PruefschrittFinding.Kritikalitaetnr, dbo.PruefschrittFinding.Auswirkungnr, dbo.mitarbeiter.name + ' ' + dbo.mitarbeiter.vorname + ', ' + dbo.mitarbeiter.tgnummer AS Mutierer FROM dbo.PruefschrittFinding INNER JOIN dbo.mitarbeiter ON dbo.PruefschrittFinding.Mutierer = dbo.mitarbeiter.mitarbeiternr WHERE Pruefschrittresultatnr=@key END GO /****** Object: StoredProcedure [dbo].[sp_get_pruefschrittmassnahme] Script Date: 04.06.2017 09:55:14 ******/ DROP PROCEDURE [dbo].[sp_get_pruefschrittmassnahme] GO /****** Object: StoredProcedure [dbo].[sp_get_pruefschrittmassnahme] Script Date: 04.06.2017 09:55:14 ******/ SET ANSI_NULLS ON GO SET QUOTED_IDENTIFIER ON GO -- ============================================= -- Author: -- Create date: -- Description: -- ============================================= CREATE PROCEDURE [dbo].[sp_get_pruefschrittmassnahme] @key INT AS BEGIN --SELECT * FROM dbo.PruefSchrittMassnahme SELECT dbo.PruefSchrittMassnahme.PruefschrittmassnahmeNr, dbo.PruefSchrittMassnahme.Pruefschrittfindingnr, dbo.PruefSchrittMassnahme.Kurzbeschreibung, dbo.PruefSchrittMassnahme.Beschreibung, dbo.PruefSchrittMassnahme.MassnahmeResultat, dbo.PruefSchrittMassnahme.MassnahmeStatusNr, dbo.PruefSchrittMassnahme.Termin, dbo.PruefSchrittMassnahme.VerantwortungNr, dbo.PruefSchrittMassnahme.Aktiv, dbo.PruefSchrittMassnahme.Erstellt_am, dbo.PruefSchrittMassnahme.Mutiert_am, dbo.PruefSchrittMassnahme.Verantwortung, dbo.PruefSchrittMassnahme.VerantwortungIsI, dbo.PruefSchrittMassnahme.Aktueller_Verantwortlicher, dbo.mitarbeiter.name + ' ' + dbo.mitarbeiter.vorname + ', ' + dbo.mitarbeiter.tgnummer AS Mutierer FROM dbo.PruefSchrittMassnahme INNER JOIN dbo.mitarbeiter ON dbo.PruefSchrittMassnahme.Mutierer = dbo.mitarbeiter.mitarbeiternr WHERE Pruefschrittfindingnr=@key END GO /****** Object: Trigger [dbo].[update_pruefschrittresultat] Script Date: 04.06.2017 09:56:02 ******/ SET ANSI_NULLS ON GO SET QUOTED_IDENTIFIER ON GO -- ============================================= -- Author: -- Create date: -- Description: -- ============================================= CREATE TRIGGER [dbo].[update_pruefschrittresultat] ON [dbo].[PruefSchrittResultat] FOR UPDATE AS DECLARE @pruefschrittnr INT DECLARE @pruefschrittresultatnr INT DECLARE @beschreibung_alt VARCHAR(MAX) DECLARE @beschreibung_neu VARCHAR(MAX) DECLARE @mutierer INT DECLARE @mutiereralt INT SELECT @mutierer=mutierer,@pruefschrittresultatnr=Inserted.PruefSchrittResultatNr,@pruefschrittnr=Inserted.PruefschrittNr,@beschreibung_neu=Beschreibung FROM Inserted SELECT @mutiereralt=mutierer,@beschreibung_alt=beschreibung FROM Deleted IF @beschreibung_alt<>@beschreibung_neu BEGIN DECLARE @dbkey INT, @ierrorcode INT EXECUTE sp_get_dbkey 'Pruefschritthistory', @dbkey OUTPUT, @ierrorcode OUTPUT INSERT dbo.PruefSchrittHistory ( PruefSchrittHistoryNr , PruefschrittNr , Eintragdatum , Beschreibung , Aktiv , Erstellt_am , Mutiert_am , Mutierer, HistoryArt ) VALUES ( @dbkey , -- PruefSchrittHistoryNr - int @pruefschrittnr , -- PruefschrittNr - int GETDATE() , -- Eintragdatum - datetime @beschreibung_alt , -- Beschreibung - varchar(1024) 1 , -- Aktiv - bit GETDATE() , -- Erstellt_am - datetime GETDATE() , -- Mutiert_am - datetime @mutiereralt, -- Mutierer - int 'Ursprüngliche Beschreibung' ) END GO update spalten set breite=100 where eintragnr=323 go INSERT dbo.spalten ( eintragnr , tabelle , tabellenspalte , spalte , Readonly , alsHacken , Breite , Reihenfolge , tiptext , aktiv , erstellt_am , mutiert_am , mutierer , mandantnr , NumberFormat ) VALUES ( 431 , -- eintragnr - int 'PruefSchrittHistory' , -- tabelle - varchar(255) 'HistoryArt' , -- tabellenspalte - varchar(255) 'Art' , -- spalte - varchar(255) 1 , -- Readonly - bit 0 , -- alsHacken - bit 130 , -- Breite - int 2 , -- Reihenfolge - int '' , -- tiptext - varchar(255) 1 , -- aktiv - bit GETDATE() , -- erstellt_am - datetime GETDATE() , -- mutiert_am - datetime 1 , -- mutierer - int 1 , -- mandantnr - int '' -- NumberFormat - varchar(255) ) go SET ANSI_NULLS ON GO SET QUOTED_IDENTIFIER ON GO -- ============================================= -- Author: -- Create date: -- Description: -- ============================================= CREATE PROCEDURE [dbo].[sp_erinnerungsmail] @fnkt INT , @param1 VARCHAR(255) = '' , @param2 VARCHAR(255) = '' , @param3 VARCHAR(255) = '' , @param4 VARCHAR(255) = '' AS BEGIN SET NOCOUNT ON; DECLARE @rc INT; IF @fnkt = 1 BEGIN SELECT @rc = COUNT(*) FROM dbo.ErrinnerungsMail WHERE aktiv = 1 AND mitarbeiternr = @param1; IF @rc = 0 BEGIN INSERT dbo.ErrinnerungsMail ( mitarbeiternr , Mailtyp1 , Mailtyp2 , Mailtyp3 , Mailtyp4 , erstellt_am , mutiert_am , mutierer , aktiv ) VALUES ( @param1 , -- mitarbeiternr - int 0 , -- Mailtyp1 - int 0 , -- Mailtyp2 - int 0 , -- Mailtyp3 - int 0 , -- Mailtyp4 - int GETDATE() , -- erstellt_am - datetime GETDATE() , -- mutiert_am - datetime @param1 , -- mutierer - int, 1 -- aktiv ); END; SELECT * FROM dbo.ErrinnerungsMail WHERE aktiv = 1 AND mitarbeiternr = @param1; END; IF @fnkt = 2 BEGIN UPDATE dbo.ErrinnerungsMail SET Mailtyp1 = @param2 , Mailtyp2 = @param3 , mutiert_am = GETDATE() , mutierer = @param1 WHERE mitarbeiternr = @param1; END; END; GO SET ANSI_NULLS ON GO SET QUOTED_IDENTIFIER ON GO CREATE TABLE [dbo].[ErrinnerungsMail]( [Eintragnr] [INT] IDENTITY(1,1) NOT NULL, [mitarbeiternr] [INT] NOT NULL, [Mailtyp1] [INT] NULL, [Mailtyp2] [INT] NULL, [Mailtyp3] [INT] NULL, [Mailtyp4] [INT] NULL, [erstellt_am] [DATETIME] NULL, [mutiert_am] [DATETIME] NULL, [mutierer] [INT] NULL, [aktiv] [BIT] NULL, CONSTRAINT [PK_ErrinnerungsMail_1] PRIMARY KEY CLUSTERED ( [Eintragnr] ASC )WITH (PAD_INDEX = OFF, STATISTICS_NORECOMPUTE = OFF, IGNORE_DUP_KEY = OFF, ALLOW_ROW_LOCKS = ON, ALLOW_PAGE_LOCKS = ON) ON [PRIMARY] ) ON [Dat_1] GO /****** Object: UserDefinedFunction [dbo].[Check_Sendmail] Script Date: 04.06.2017 20:22:20 ******/ SET ANSI_NULLS ON GO SET QUOTED_IDENTIFIER ON GO -- ============================================= -- Author: -- Create date: -- Description: -- ============================================= CREATE FUNCTION [dbo].[Check_Sendmail] ( @date DATE, @verantwortlich INT, @datum DATE, @aktuell_verantwortlich INT ) RETURNS INT AS BEGIN DECLARE @mailtyp1 INT DECLARE @mailtyp2 INT DECLARE @datediff INT DECLARE @result INT SELECT @mailtyp1=mailtyp1, @mailtyp2=mailtyp2 FROM ErrinnerungsMail WHERE aktiv=1 AND mitarbeiternr=@verantwortlich SET @datediff=DATEDIFF(DAY,@date,@datum) SET @result=0 IF @datediff=@mailtyp1 AND @verantwortlich<>@aktuell_verantwortlich SET @result=1 IF @datediff=@mailtyp2 AND @verantwortlich= @aktuell_verantwortlich SET @result=2 RETURN @result END GO /****** Object: StoredProcedure [dbo].[sp_erinnerungsmails] Script Date: 04.06.2017 20:22:55 ******/ SET ANSI_NULLS ON GO SET QUOTED_IDENTIFIER ON GO -- ============================================= -- Author: -- Create date: -- Description: -- ============================================= CREATE PROCEDURE [dbo].[sp_erinnerungsmails] -- Add the parameters for the stored procedure here @datum DATE = '2099-12-31' , @demo INT = 0 AS BEGIN IF @datum = '2099-12-31' SET @datum = GETDATE(); SELECT TOP ( 100 ) PERCENT dbo.Pruefschritt.PruefschrittNr , dbo.Pruefplan.Bezeichnung , dbo.Pruefschritt.Statusnr , dbo.Pruefschritt.VerantwortlichNr , dbo.mitarbeiter.name + ' ' + dbo.mitarbeiter.vorname AS Verantwortlich , dbo.Pruefschritt.Aktueller_Verantwortlicher , mitarbeiter_1.NAME + ' ' + mitarbeiter_1.vorname AS Aktuell_Verantwortlich , dbo.Pruefschritt.Termin , dbo.Check_Sendmail(@datum, dbo.Pruefschritt.VerantwortlichNr, dbo.Pruefschritt.Termin, dbo.Pruefschritt.Aktueller_Verantwortlicher) AS SendTyp INTO #tmp1 FROM dbo.Pruefschritt INNER JOIN dbo.Pruefplan ON dbo.Pruefschritt.PruefplanNr = dbo.Pruefplan.PruefplanNr INNER JOIN dbo.mitarbeiter ON dbo.Pruefschritt.VerantwortlichNr = dbo.mitarbeiter.mitarbeiternr INNER JOIN dbo.mitarbeiter AS mitarbeiter_1 ON dbo.Pruefschritt.Aktueller_Verantwortlicher = mitarbeiter_1.mitarbeiternr WHERE ( dbo.Pruefschritt.Statusnr = 1 ) AND ( dbo.Pruefschritt.Termin < CONVERT(DATETIME, '2099-12-31 00:00:00', 102) ) OR ( dbo.Pruefschritt.Statusnr = 2 ) OR ( dbo.Pruefschritt.Statusnr = 4 ) ORDER BY dbo.Pruefschritt.Termin; DELETE FROM #tmp1 WHERE Sendtyp = 0; -- SELECT * -- FROM #tmp1; IF @demo = 1 BEGIN SELECT sendtyp , Bezeichnung , Termin , CASE sendtyp WHEN 1 THEN 'Assessment bei ' + Aktuell_Verantwortlich + ': Mail an ' + verantwortlich ELSE 'Assessment bei ' + verantwortlich + ': Mail an ' + verantwortlich END AS Aktion FROM #tmp1; END; ELSE BEGIN DECLARE @verantwortlichnr AS INTEGER; DECLARE @aktuell_verantwortlich VARCHAR(255); DECLARE @bezeichnung VARCHAR(255); DECLARE @termin DATE; DECLARE @sendtyp INT; DECLARE @receiver VARCHAR(255); DECLARE @subject VARCHAR(255); DECLARE @body VARCHAR(255); DECLARE @crlf VARCHAR(2); SET @crlf = CHAR(13) + CHAR(10); DECLARE xc CURSOR FOR SELECT sendtyp , bezeichnung , aktuell_verantwortlich , VerantwortlichNr , @termin FROM #tmp1; OPEN xc; FETCH NEXT FROM xc INTO @sendtyp, @bezeichnung, @aktuell_verantwortlich, @verantwortlichnr, @termin; WHILE @@FETCH_STATUS = 0 BEGIN SELECT @receiver = email FROM mitarbeiter WHERE mitarbeiternr = @aktuell_verantwortlich; IF @sendtyp = 1 BEGIN SET @subject = 'Termin Assessment: ' + @bezeichnung; SET @body = 'Guten Tag ' + @crlf + @crlf; SET @body = @body + 'Mit diesem E-Mail möchten wir Sie an folgenden Termin erinnern:' + @crlf + @crlf; SET @body = @body + 'Assessment:' + @bezeichnung + @crlf; SET @body = @body + 'Termin:' + CONVERT(VARCHAR(10), @termin) + @crlf; SET @body = @body + 'Verantwortlich: ' + @aktuell_verantwortlich + @crlf + @crlf; SET @body = @body + 'Freundliche Grüsse
'; SET @body = @body + '----------------------------------
'; SET @body = @body + 'Diese Nachricht wurde automatisch erstellt.'; END; ELSE BEGIN SET @subject = 'Termin Assessment: ' + @bezeichnung; SET @body = 'Guten Tag ' + @crlf + @crlf; SET @body = @body + 'Mit diesem E-Mail möchten wir Sie an folgenden Termin erinnern:' + @crlf + @crlf; SET @body = @body + 'Assessment:' + @bezeichnung + @crlf; SET @body = @body + 'Termin:' + CONVERT(VARCHAR(10), @termin) + @crlf; SET @body = @body + 'Verantwortlich: ' + @aktuell_verantwortlich + @crlf + @crlf; SET @body = @body + 'Freundliche Grüsse
'; SET @body = @body + '----------------------------------
'; SET @body = @body + 'Diese Nachricht wurde automatisch erstellt.'; END; EXEC dbo.sp_sendmail @receiver, @subject, @body; FETCH NEXT FROM xc INTO @sendtyp, @bezeichnung, @aktuell_verantwortlich, @verantwortlichnr, @termin; END; CLOSE xc; DEALLOCATE xc; END; END; GO