You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

561 lines
21 KiB

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: <Author,,Name>
-- Create date: <Create Date,,>
-- Description: <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: <Author,,Name>
-- Create date: <Create Date,,>
-- Description: <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: <Author,,Name>
-- Create date: <Create Date,,>
-- Description: <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: <Author,,Name>
-- Create date: <Create Date,,>
-- Description: <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: <Author,,Name>
-- Create date: <Create Date,,>
-- Description: <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: <Author,,Name>
-- Create date: <Create Date, ,>
-- Description: <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: <Author,,Name>
-- Create date: <Create Date,,>
-- Description: <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<br>';
SET @body = @body
+ '----------------------------------<br>';
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<br>';
SET @body = @body
+ '----------------------------------<br>';
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