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.
AssesmentMgmt/.svn/pristine/09/09c8c0313204dc083f891a762eb...

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