This commit is contained in:
skidoodle 2024-03-13 00:33:46 +01:00
commit e124a47765
19374 changed files with 9806149 additions and 0 deletions

View file

@ -0,0 +1,361 @@
GO
SET ANSI_NULLS, ANSI_PADDING, ANSI_WARNINGS, ARITHABORT, CONCAT_NULL_YIELDS_NULL, QUOTED_IDENTIFIER ON;
SET NUMERIC_ROUNDABORT OFF;
GO
--The column [dbo].[T_FOGLALKOZAS].[C_TANAROKID] on table [dbo].[T_FOGLALKOZAS] must be added, but the column has no default value and does not allow NULL values. If the table contains data, the ALTER script will not work. To avoid this issue you must either: add a default value to the column, mark it as allowing NULL values, or enable the generation of smart-defaults as a deployment option.
--IF EXISTS (select top 1 1 from [dbo].[T_FOGLALKOZAS])
-- RAISERROR (N'Rows were detected. The schema update is terminating because data loss might occur.', 16, 127) WITH NOWAIT
--GO
--Table [dbo].[T_FOGLALKOZASOK_TANAROK] is being dropped. Deployment will halt if the table contains data.
--IF EXISTS (select top 1 1 from [dbo].[T_FOGLALKOZASOK_TANAROK])
-- RAISERROR (N'Rows were detected. The schema update is terminating because data loss might occur.', 16, 127) WITH NOWAIT
GO
PRINT N'Dropping [dbo].[FK_4025554_4025552]...';
IF EXISTS (SELECT 1 FROM sys.foreign_keys where parent_object_id = OBJECT_ID(N'dbo.T_ORARENDIORA') AND name = 'FK_4025554_4025552')
BEGIN
ALTER TABLE [dbo].[T_ORARENDIORA] DROP CONSTRAINT [FK_4025554_4025552];
END
GO
PRINT N'Dropping [dbo].[FK_4026077_4026075]...';
GO
ALTER TABLE [dbo].[T_TANULOTARGYMULASZTASSTATISZT] DROP CONSTRAINT [FK_4026077_4026075];
GO
PRINT N'Dropping [dbo].[FK_4025949_4025947]...';
GO
ALTER TABLE [dbo].[T_TEREM_FOGLALKOZAS] DROP CONSTRAINT [FK_4025949_4025947];
GO
PRINT N'Dropping [dbo].[FK_4025422_4025423]...';
GO
ALTER TABLE [dbo].[T_FOGLALKOZAS] DROP CONSTRAINT [FK_4025422_4025423];
GO
PRINT N'Dropping [dbo].[FK_4025428_4025426]...';
GO
ALTER TABLE [dbo].[T_FOGLALKOZAS] DROP CONSTRAINT [FK_4025428_4025426];
GO
PRINT N'Dropping [dbo].[FK_4025431_4025429]...';
GO
ALTER TABLE [dbo].[T_FOGLALKOZAS] DROP CONSTRAINT [FK_4025431_4025429];
GO
PRINT N'Dropping [dbo].[FK_402542202_402542200]...';
GO
ALTER TABLE [dbo].[T_FOGLALKOZAS] DROP CONSTRAINT [FK_402542202_402542200];
GO
PRINT N'Dropping [dbo].[FK_402542205_402542203]...';
GO
ALTER TABLE [dbo].[T_FOGLALKOZAS] DROP CONSTRAINT [FK_402542205_402542203];
GO
PRINT N'Dropping [dbo].[FK_4025436_4025435]...';
GO
ALTER TABLE [dbo].[T_FOGLALKOZASOK_TANAROK] DROP CONSTRAINT [FK_4025436_4025435];
GO
PRINT N'Dropping [dbo].[FK_4025623_4025622]...';
GO
ALTER TABLE [dbo].[T_TANITASIORA] DROP CONSTRAINT [FK_4025623_4025622];
GO
PRINT N'Dropping [dbo].[FK_4025437_4025435]...';
GO
ALTER TABLE [dbo].[T_FOGLALKOZASOK_TANAROK] DROP CONSTRAINT [FK_4025437_4025435];
GO
PRINT N'Starting rebuilding table [dbo].[T_FOGLALKOZAS]...';
GO
BEGIN TRANSACTION;
SET TRANSACTION ISOLATION LEVEL SERIALIZABLE;
SET XACT_ABORT ON;
CREATE TABLE [dbo].[tmp_ms_xx_T_FOGLALKOZAS] (
[ID] INT IDENTITY (1, 1) NOT NULL,
[C_FOGLALKOZASTIPUSA] INT NOT NULL,
[C_ORASZAM] NUMERIC (10, 2) NOT NULL,
[C_NEV] NVARCHAR (255) NULL,
[C_ERTEKELESKELL] CHAR (1) DEFAULT ('F') NULL,
[C_MULASZTASKELL] CHAR (1) DEFAULT ('F') NULL,
[C_TANARFELVEHETI] CHAR (1) DEFAULT ('T') NULL,
[C_IMPORTALT] CHAR (1) DEFAULT ('F') NULL,
[C_TANTARGYID] INT NULL,
[C_OSZTALYCSOPORTID] INT NULL,
[C_TANAROKID] INT NOT NULL,
[C_INTEZMENYID] INT NOT NULL,
[C_TANEVID] INT NOT NULL,
[TOROLT] CHAR (1) DEFAULT ('F') NOT NULL,
[SERIAL] INT DEFAULT ((0)) NOT NULL,
[LASTCHANGED] DATETIME DEFAULT (getdate()) NOT NULL,
[CREATED] DATETIME DEFAULT (getdate()) NOT NULL,
[MODIFIER] INT NULL,
[CREATOR] INT NULL,
[ELOZOTANEVIREKORDID] INT NULL,
[NNID] INT NULL,
CONSTRAINT [tmp_ms_xx_constraint_PK_T_40254221] PRIMARY KEY CLUSTERED ([ID] ASC)
);
IF EXISTS (SELECT TOP 1 1
FROM [dbo].[T_FOGLALKOZAS])
BEGIN
SET IDENTITY_INSERT [dbo].[tmp_ms_xx_T_FOGLALKOZAS] ON;
INSERT INTO [dbo].[tmp_ms_xx_T_FOGLALKOZAS] ([ID], [C_FOGLALKOZASTIPUSA], [C_ORASZAM], [C_NEV], [C_ERTEKELESKELL], [C_MULASZTASKELL], [C_TANARFELVEHETI], [C_IMPORTALT], [C_TANTARGYID], [C_OSZTALYCSOPORTID], [C_TANAROKID], [C_INTEZMENYID], [C_TANEVID], [TOROLT], [SERIAL], [LASTCHANGED], [CREATED], [MODIFIER], [CREATOR], [ELOZOTANEVIREKORDID], [NNID])
SELECT [ID],
[C_FOGLALKOZASTIPUSA],
[C_ORASZAM],
[C_NEV],
[C_ERTEKELESKELL],
[C_MULASZTASKELL],
[C_TANARFELVEHETI],
[C_IMPORTALT],
[C_TANTARGYID],
[C_OSZTALYCSOPORTID],
ft.[C_TANAROKID],
f.[C_INTEZMENYID],
f.[C_TANEVID],
f.[TOROLT],
f.[SERIAL],
f.[LASTCHANGED],
f.[CREATED],
f.[MODIFIER],
f.[CREATOR],
f.[ELOZOTANEVIREKORDID],
f.[NNID]
FROM [dbo].[T_FOGLALKOZAS] f
INNER JOIN T_FOGLALKOZASOK_TANAROK ft ON ft.C_FOGLALKOZASOKID = ID
ORDER BY [ID] ASC;
SET IDENTITY_INSERT [dbo].[tmp_ms_xx_T_FOGLALKOZAS] OFF;
END
GO
PRINT N'Dropping [dbo].[T_FOGLALKOZASOK_TANAROK]...';
GO
DROP TABLE [dbo].[T_FOGLALKOZASOK_TANAROK];
DROP TABLE [dbo].[T_FOGLALKOZAS];
EXECUTE sp_rename N'[dbo].[tmp_ms_xx_T_FOGLALKOZAS]', N'T_FOGLALKOZAS';
EXECUTE sp_rename N'[dbo].[tmp_ms_xx_constraint_PK_T_40254221]', N'PK_T_4025422', N'OBJECT';
COMMIT TRANSACTION;
SET TRANSACTION ISOLATION LEVEL READ COMMITTED;
GO
PRINT N'Creating [dbo].[T_FOGLALKOZAS].[I_T_4025422_4025423]...';
GO
CREATE NONCLUSTERED INDEX [I_T_4025422_4025423]
ON [dbo].[T_FOGLALKOZAS]([C_INTEZMENYID] ASC, [C_TANEVID] ASC, [C_FOGLALKOZASTIPUSA] ASC);
GO
PRINT N'Creating [dbo].[T_FOGLALKOZAS].[I_T_4025428_4025426]...';
GO
CREATE NONCLUSTERED INDEX [I_T_4025428_4025426]
ON [dbo].[T_FOGLALKOZAS]([C_TANTARGYID] ASC);
GO
PRINT N'Creating [dbo].[T_FOGLALKOZAS].[I_T_4025431_4025429]...';
GO
CREATE NONCLUSTERED INDEX [I_T_4025431_4025429]
ON [dbo].[T_FOGLALKOZAS]([C_OSZTALYCSOPORTID] ASC);
GO
PRINT N'Creating [dbo].[T_FOGLALKOZAS].[I_T_4025437_4025435]...';
GO
CREATE NONCLUSTERED INDEX [I_T_4025437_4025435]
ON [dbo].[T_FOGLALKOZAS]([C_TANAROKID] ASC);
GO
PRINT N'Creating [dbo].[T_FOGLALKOZAS].[I_T_402542202_402542200]...';
GO
CREATE NONCLUSTERED INDEX [I_T_402542202_402542200]
ON [dbo].[T_FOGLALKOZAS]([C_INTEZMENYID] ASC);
GO
PRINT N'Creating [dbo].[T_FOGLALKOZAS].[I_T_402542205_402542203]...';
GO
CREATE NONCLUSTERED INDEX [I_T_402542205_402542203]
ON [dbo].[T_FOGLALKOZAS]([C_TANEVID] ASC);
GO
PRINT N'Creating [dbo].[FK_4026077_4026075]...';
GO
ALTER TABLE [dbo].[T_TANULOTARGYMULASZTASSTATISZT] WITH NOCHECK
ADD CONSTRAINT [FK_4026077_4026075] FOREIGN KEY ([C_TARGYMULASZTASSTATISZTIKAIID]) REFERENCES [dbo].[T_FOGLALKOZAS] ([ID]);
GO
PRINT N'Creating [dbo].[FK_4025949_4025947]...';
GO
ALTER TABLE [dbo].[T_TEREM_FOGLALKOZAS] WITH NOCHECK
ADD CONSTRAINT [FK_4025949_4025947] FOREIGN KEY ([C_FOGLALKOZASID]) REFERENCES [dbo].[T_FOGLALKOZAS] ([ID]);
GO
PRINT N'Creating [dbo].[FK_4025422_4025423]...';
GO
ALTER TABLE [dbo].[T_FOGLALKOZAS] WITH NOCHECK
ADD CONSTRAINT [FK_4025422_4025423] FOREIGN KEY ([C_FOGLALKOZASTIPUSA], [C_INTEZMENYID], [C_TANEVID]) REFERENCES [dbo].[T_FOGLALKOZASTIPUS] ([ID], [C_ALINTEZMENYID], [C_ALTANEVID]);
GO
PRINT N'Creating [dbo].[FK_4025428_4025426]...';
GO
ALTER TABLE [dbo].[T_FOGLALKOZAS] WITH NOCHECK
ADD CONSTRAINT [FK_4025428_4025426] FOREIGN KEY ([C_TANTARGYID]) REFERENCES [dbo].[T_TANTARGY] ([ID]);
GO
PRINT N'Creating [dbo].[FK_4025431_4025429]...';
GO
ALTER TABLE [dbo].[T_FOGLALKOZAS] WITH NOCHECK
ADD CONSTRAINT [FK_4025431_4025429] FOREIGN KEY ([C_OSZTALYCSOPORTID]) REFERENCES [dbo].[T_OSZTALYCSOPORT] ([ID]);
GO
PRINT N'Creating [dbo].[FK_402542202_402542200]...';
GO
ALTER TABLE [dbo].[T_FOGLALKOZAS] WITH NOCHECK
ADD CONSTRAINT [FK_402542202_402542200] FOREIGN KEY ([C_INTEZMENYID]) REFERENCES [dbo].[T_INTEZMENY] ([ID]);
GO
PRINT N'Creating [dbo].[FK_402542205_402542203]...';
GO
ALTER TABLE [dbo].[T_FOGLALKOZAS] WITH NOCHECK
ADD CONSTRAINT [FK_402542205_402542203] FOREIGN KEY ([C_TANEVID]) REFERENCES [dbo].[T_TANEV] ([ID]);
GO
PRINT N'Creating [dbo].[FK_4025437_4025435]...';
GO
ALTER TABLE [dbo].[T_FOGLALKOZAS] WITH NOCHECK
ADD CONSTRAINT [FK_4025437_4025435] FOREIGN KEY ([C_TANAROKID]) REFERENCES [dbo].[T_ALKALMAZOTT] ([ID]);
GO
PRINT N'Refreshing [dbo].[T_FOGLALKOZAS_OSSZES]...';
GO
EXECUTE sp_refreshsqlmodule N'[dbo].[T_FOGLALKOZAS_OSSZES]';
GO
PRINT N'Checking existing data against newly created constraints';
GO
ALTER TABLE [dbo].[T_TANULOTARGYMULASZTASSTATISZT] WITH CHECK CHECK CONSTRAINT [FK_4026077_4026075];
ALTER TABLE [dbo].[T_TEREM_FOGLALKOZAS] WITH CHECK CHECK CONSTRAINT [FK_4025949_4025947];
ALTER TABLE [dbo].[T_FOGLALKOZAS] WITH CHECK CHECK CONSTRAINT [FK_4025422_4025423];
ALTER TABLE [dbo].[T_FOGLALKOZAS] WITH CHECK CHECK CONSTRAINT [FK_4025428_4025426];
ALTER TABLE [dbo].[T_FOGLALKOZAS] WITH CHECK CHECK CONSTRAINT [FK_4025431_4025429];
ALTER TABLE [dbo].[T_FOGLALKOZAS] WITH CHECK CHECK CONSTRAINT [FK_402542202_402542200];
ALTER TABLE [dbo].[T_FOGLALKOZAS] WITH CHECK CHECK CONSTRAINT [FK_402542205_402542203];
ALTER TABLE [dbo].[T_FOGLALKOZAS] WITH CHECK CHECK CONSTRAINT [FK_4025437_4025435];
GO
PRINT N'Update complete.';
GO

View file

@ -0,0 +1,443 @@
GO
SET ANSI_NULLS, ANSI_PADDING, ANSI_WARNINGS, ARITHABORT, CONCAT_NULL_YIELDS_NULL, QUOTED_IDENTIFIER ON;
SET NUMERIC_ROUNDABORT OFF;
GO
/*
The column [dbo].[T_FOGLALKOZAS].[C_TANAROKID] is being dropped, data loss could occur.
The column [dbo].[T_FOGLALKOZAS].[C_TANARID] on table [dbo].[T_FOGLALKOZAS] must be added, but the column has no default value and does not allow NULL values. If the table contains data, the ALTER script will not work. To avoid this issue you must either: add a default value to the column, mark it as allowing NULL values, or enable the generation of smart-defaults as a deployment option.
*/
--IF EXISTS (select top 1 1 from [dbo].[T_FOGLALKOZAS])
-- RAISERROR (N'Rows were detected. The schema update is terminating because data loss might occur.', 16, 127) WITH NOWAIT
GO
PRINT N'Dropping [dbo].[FK_4026077_4026075]...';
GO
ALTER TABLE [dbo].[T_TANULOTARGYMULASZTASSTATISZT] DROP CONSTRAINT [FK_4026077_4026075];
GO
PRINT N'Dropping [dbo].[FK_4025949_4025947]...';
GO
ALTER TABLE [dbo].[T_TEREM_FOGLALKOZAS] DROP CONSTRAINT [FK_4025949_4025947];
GO
PRINT N'Dropping [dbo].[FK_4025422_4025423]...';
GO
ALTER TABLE [dbo].[T_FOGLALKOZAS] DROP CONSTRAINT [FK_4025422_4025423];
GO
PRINT N'Dropping [dbo].[FK_4025428_4025426]...';
GO
ALTER TABLE [dbo].[T_FOGLALKOZAS] DROP CONSTRAINT [FK_4025428_4025426];
GO
PRINT N'Dropping [dbo].[FK_4025431_4025429]...';
GO
ALTER TABLE [dbo].[T_FOGLALKOZAS] DROP CONSTRAINT [FK_4025431_4025429];
GO
PRINT N'Dropping [dbo].[FK_402542202_402542200]...';
GO
ALTER TABLE [dbo].[T_FOGLALKOZAS] DROP CONSTRAINT [FK_402542202_402542200];
GO
PRINT N'Dropping [dbo].[FK_402542205_402542203]...';
GO
ALTER TABLE [dbo].[T_FOGLALKOZAS] DROP CONSTRAINT [FK_402542205_402542203];
GO
PRINT N'Starting rebuilding table [dbo].[T_FOGLALKOZAS]...';
GO
BEGIN TRANSACTION;
SET TRANSACTION ISOLATION LEVEL SERIALIZABLE;
SET XACT_ABORT ON;
CREATE TABLE [dbo].[tmp_ms_xx_T_FOGLALKOZAS] (
[ID] INT IDENTITY (1, 1) NOT NULL,
[C_FOGLALKOZASTIPUSA] INT NOT NULL,
[C_ORASZAM] NUMERIC (10, 2) NOT NULL,
[C_NEV] NVARCHAR (255) NULL,
[C_ERTEKELESKELL] CHAR (1) DEFAULT ('F') NULL,
[C_MULASZTASKELL] CHAR (1) DEFAULT ('F') NULL,
[C_TANARFELVEHETI] CHAR (1) DEFAULT ('T') NULL,
[C_IMPORTALT] CHAR (1) DEFAULT ('F') NULL,
[C_TANTARGYID] INT NULL,
[C_OSZTALYCSOPORTID] INT NULL,
[C_TANARID] INT NOT NULL,
[C_INTEZMENYID] INT NOT NULL,
[C_TANEVID] INT NOT NULL,
[TOROLT] CHAR (1) DEFAULT ('F') NOT NULL,
[SERIAL] INT DEFAULT ((0)) NOT NULL,
[LASTCHANGED] DATETIME DEFAULT (getdate()) NOT NULL,
[CREATED] DATETIME DEFAULT (getdate()) NOT NULL,
[MODIFIER] INT NULL,
[CREATOR] INT NULL,
[ELOZOTANEVIREKORDID] INT NULL,
[NNID] INT NULL,
CONSTRAINT [tmp_ms_xx_constraint_PK_T_40254221] PRIMARY KEY CLUSTERED ([ID] ASC)
);
IF EXISTS (SELECT TOP 1 1
FROM [dbo].[T_FOGLALKOZAS])
BEGIN
SET IDENTITY_INSERT [dbo].[tmp_ms_xx_T_FOGLALKOZAS] ON;
INSERT INTO [dbo].[tmp_ms_xx_T_FOGLALKOZAS] ([ID], [C_FOGLALKOZASTIPUSA], [C_ORASZAM], [C_NEV], [C_ERTEKELESKELL], [C_MULASZTASKELL], [C_TANARFELVEHETI], [C_IMPORTALT], [C_TANTARGYID], [C_OSZTALYCSOPORTID], [C_TANARID], [C_INTEZMENYID], [C_TANEVID], [TOROLT], [SERIAL], [LASTCHANGED], [CREATED], [MODIFIER], [CREATOR], [ELOZOTANEVIREKORDID], [NNID])
SELECT [ID],
[C_FOGLALKOZASTIPUSA],
[C_ORASZAM],
[C_NEV],
[C_ERTEKELESKELL],
[C_MULASZTASKELL],
[C_TANARFELVEHETI],
[C_IMPORTALT],
[C_TANTARGYID],
[C_OSZTALYCSOPORTID],
[C_TANAROKID],
[C_INTEZMENYID],
[C_TANEVID],
[TOROLT],
[SERIAL],
[LASTCHANGED],
[CREATED],
[MODIFIER],
[CREATOR],
[ELOZOTANEVIREKORDID],
[NNID]
FROM [dbo].[T_FOGLALKOZAS]
ORDER BY [ID] ASC;
SET IDENTITY_INSERT [dbo].[tmp_ms_xx_T_FOGLALKOZAS] OFF;
END
DROP TABLE [dbo].[T_FOGLALKOZAS];
EXECUTE sp_rename N'[dbo].[tmp_ms_xx_T_FOGLALKOZAS]', N'T_FOGLALKOZAS';
EXECUTE sp_rename N'[dbo].[tmp_ms_xx_constraint_PK_T_40254221]', N'PK_T_4025422', N'OBJECT';
COMMIT TRANSACTION;
SET TRANSACTION ISOLATION LEVEL READ COMMITTED;
GO
PRINT N'Creating [dbo].[T_FOGLALKOZAS].[I_T_4025422_4025423]...';
GO
CREATE NONCLUSTERED INDEX [I_T_4025422_4025423]
ON [dbo].[T_FOGLALKOZAS]([C_INTEZMENYID] ASC, [C_TANEVID] ASC, [C_FOGLALKOZASTIPUSA] ASC);
GO
PRINT N'Creating [dbo].[T_FOGLALKOZAS].[I_T_4025428_4025426]...';
GO
CREATE NONCLUSTERED INDEX [I_T_4025428_4025426]
ON [dbo].[T_FOGLALKOZAS]([C_TANTARGYID] ASC);
GO
PRINT N'Creating [dbo].[T_FOGLALKOZAS].[I_T_4025431_4025429]...';
GO
CREATE NONCLUSTERED INDEX [I_T_4025431_4025429]
ON [dbo].[T_FOGLALKOZAS]([C_OSZTALYCSOPORTID] ASC);
GO
PRINT N'Creating [dbo].[T_FOGLALKOZAS].[I_T_4025437_4025435]...';
GO
CREATE NONCLUSTERED INDEX [I_T_4025437_4025435]
ON [dbo].[T_FOGLALKOZAS]([C_TANARID] ASC);
GO
PRINT N'Creating [dbo].[T_FOGLALKOZAS].[I_T_402542202_402542200]...';
GO
CREATE NONCLUSTERED INDEX [I_T_402542202_402542200]
ON [dbo].[T_FOGLALKOZAS]([C_INTEZMENYID] ASC);
GO
PRINT N'Creating [dbo].[T_FOGLALKOZAS].[I_T_402542205_402542203]...';
GO
CREATE NONCLUSTERED INDEX [I_T_402542205_402542203]
ON [dbo].[T_FOGLALKOZAS]([C_TANEVID] ASC);
GO
PRINT N'Creating [dbo].[FK_4026077_4026075]...';
GO
ALTER TABLE [dbo].[T_TANULOTARGYMULASZTASSTATISZT] WITH NOCHECK
ADD CONSTRAINT [FK_4026077_4026075] FOREIGN KEY ([C_TARGYMULASZTASSTATISZTIKAIID]) REFERENCES [dbo].[T_FOGLALKOZAS] ([ID]);
GO
PRINT N'Creating [dbo].[FK_4025949_4025947]...';
GO
ALTER TABLE [dbo].[T_TEREM_FOGLALKOZAS] WITH NOCHECK
ADD CONSTRAINT [FK_4025949_4025947] FOREIGN KEY ([C_FOGLALKOZASID]) REFERENCES [dbo].[T_FOGLALKOZAS] ([ID]);
GO
PRINT N'Creating [dbo].[FK_4025422_4025423]...';
GO
ALTER TABLE [dbo].[T_FOGLALKOZAS] WITH NOCHECK
ADD CONSTRAINT [FK_4025422_4025423] FOREIGN KEY ([C_FOGLALKOZASTIPUSA], [C_INTEZMENYID], [C_TANEVID]) REFERENCES [dbo].[T_FOGLALKOZASTIPUS] ([ID], [C_ALINTEZMENYID], [C_ALTANEVID]);
GO
PRINT N'Creating [dbo].[FK_4025428_4025426]...';
GO
ALTER TABLE [dbo].[T_FOGLALKOZAS] WITH NOCHECK
ADD CONSTRAINT [FK_4025428_4025426] FOREIGN KEY ([C_TANTARGYID]) REFERENCES [dbo].[T_TANTARGY] ([ID]);
GO
PRINT N'Creating [dbo].[FK_4025431_4025429]...';
GO
ALTER TABLE [dbo].[T_FOGLALKOZAS] WITH NOCHECK
ADD CONSTRAINT [FK_4025431_4025429] FOREIGN KEY ([C_OSZTALYCSOPORTID]) REFERENCES [dbo].[T_OSZTALYCSOPORT] ([ID]);
GO
PRINT N'Creating [dbo].[FK_402542202_402542200]...';
GO
ALTER TABLE [dbo].[T_FOGLALKOZAS] WITH NOCHECK
ADD CONSTRAINT [FK_402542202_402542200] FOREIGN KEY ([C_INTEZMENYID]) REFERENCES [dbo].[T_INTEZMENY] ([ID]);
GO
PRINT N'Creating [dbo].[FK_402542205_402542203]...';
GO
ALTER TABLE [dbo].[T_FOGLALKOZAS] WITH NOCHECK
ADD CONSTRAINT [FK_402542205_402542203] FOREIGN KEY ([C_TANEVID]) REFERENCES [dbo].[T_TANEV] ([ID]);
GO
PRINT N'Creating [dbo].[tr_foglalkozasLog]...';
GO
CREATE TRIGGER tr_foglalkozasLog ON T_FOGLALKOZAS
FOR INSERT, DELETE, UPDATE AS
BEGIN
SET NOCOUNT ON
DECLARE
@insTable TABLE (objectId int, intezmenyId int, tanevId int, creator int, modifier int, col nvarchar(30), val varchar(max))
DECLARE
@delTable TABLE (objectId int, intezmenyId int, tanevId int, creator int, modifier int, col nvarchar(30), val varchar(max))
DECLARE
@linkTable TABLE (id int, objectId int, intezmenyId int, tanevId int)
DECLARE
@action char(1),
@xml xml
SET @action =
CASE
WHEN NOT EXISTS (SELECT 1 FROM DELETED) THEN 'I'
WHEN NOT EXISTS (SELECT 1 FROM INSERTED) THEN 'D'
ELSE 'U'
END
INSERT INTO @insTable (objectId, intezmenyId, tanevId, creator, modifier, col, val)
SELECT ID, C_INTEZMENYID, C_TANEVID, CREATOR, MODIFIER, col, val
FROM
(
SELECT ID, C_INTEZMENYID AS C_INTEZMENYID, C_TANEVID AS C_TANEVID, CREATOR, MODIFIER, CAST( C_FOGLALKOZASTIPUSA AS nvarchar(MAX)) AS C_FOGLALKOZASTIPUSA, CAST( C_ORASZAM AS nvarchar(MAX)) AS C_ORASZAM, CAST( C_NEV AS nvarchar(MAX)) AS C_NEV, CAST( C_ERTEKELESKELL AS nvarchar(MAX)) AS C_ERTEKELESKELL, CAST( C_MULASZTASKELL AS nvarchar(MAX)) AS C_MULASZTASKELL, CAST( C_TANARFELVEHETI AS nvarchar(MAX)) AS C_TANARFELVEHETI, CAST( C_IMPORTALT AS nvarchar(MAX)) AS C_IMPORTALT, CAST( C_TANTARGYID AS nvarchar(MAX)) AS C_TANTARGYID, CAST( C_OSZTALYCSOPORTID AS nvarchar(MAX)) AS C_OSZTALYCSOPORTID, CAST( C_TANARID AS nvarchar(MAX)) AS C_TANARID, CAST( TOROLT AS nvarchar(MAX)) AS TOROLT, CAST( ELOZOTANEVIREKORDID AS nvarchar(MAX)) AS ELOZOTANEVIREKORDID, CAST( NNID AS nvarchar(MAX)) AS NNID
FROM INSERTED) p
UNPIVOT (val FOR col IN (C_FOGLALKOZASTIPUSA, C_ORASZAM, C_NEV, C_ERTEKELESKELL, C_MULASZTASKELL, C_TANARFELVEHETI, C_IMPORTALT, C_TANTARGYID, C_OSZTALYCSOPORTID, C_TANARID, TOROLT, ELOZOTANEVIREKORDID, NNID)) AS unpvt
INSERT INTO @delTable (objectId, intezmenyId, tanevId, creator, modifier, col, val)
SELECT ID, C_INTEZMENYID, C_TANEVID, CREATOR, MODIFIER, col, val
FROM
(
SELECT ID, C_INTEZMENYID AS C_INTEZMENYID, C_TANEVID AS C_TANEVID, CREATOR, MODIFIER, CAST( C_FOGLALKOZASTIPUSA AS nvarchar(MAX)) AS C_FOGLALKOZASTIPUSA, CAST( C_ORASZAM AS nvarchar(MAX)) AS C_ORASZAM, CAST( C_NEV AS nvarchar(MAX)) AS C_NEV, CAST( C_ERTEKELESKELL AS nvarchar(MAX)) AS C_ERTEKELESKELL, CAST( C_MULASZTASKELL AS nvarchar(MAX)) AS C_MULASZTASKELL, CAST( C_TANARFELVEHETI AS nvarchar(MAX)) AS C_TANARFELVEHETI, CAST( C_IMPORTALT AS nvarchar(MAX)) AS C_IMPORTALT, CAST( C_TANTARGYID AS nvarchar(MAX)) AS C_TANTARGYID, CAST( C_OSZTALYCSOPORTID AS nvarchar(MAX)) AS C_OSZTALYCSOPORTID, CAST( C_TANARID AS nvarchar(MAX)) AS C_TANARID, CAST( TOROLT AS nvarchar(MAX)) AS TOROLT, CAST( ELOZOTANEVIREKORDID AS nvarchar(MAX)) AS ELOZOTANEVIREKORDID, CAST( NNID AS nvarchar(MAX)) AS NNID
FROM DELETED) p
UNPIVOT (val FOR col IN (C_FOGLALKOZASTIPUSA, C_ORASZAM, C_NEV, C_ERTEKELESKELL, C_MULASZTASKELL, C_TANARFELVEHETI, C_IMPORTALT, C_TANTARGYID, C_OSZTALYCSOPORTID, C_TANARID, TOROLT, ELOZOTANEVIREKORDID, NNID)) AS unpvt
IF @action = 'I' BEGIN
INSERT INTO T_ENTITYHISTORY (C_ALTERATIONDATE, C_ENTITYID, C_ENTITYNAME, C_REASON, C_FELHASZNALOID, C_INTEZMENYID, C_TANEVID)
OUTPUT INSERTED.ID, INSERTED.C_ENTITYID, INSERTED.C_INTEZMENYID, INSERTED.C_TANEVID INTO @linkTable
SELECT DISTINCT GETDATE(), objectId, 'T_FOGLALKOZAS', 'New', creator, intezmenyId, tanevId FROM @insTable
INSERT INTO T_ENTITYATTRIBUTEHISTORY (C_CURRENTVALUE, C_ORIGINALVALUE, C_PROPERTYNAME, C_ENTITYHISTORYID)
SELECT val, NULL, col, lk.id
FROM @insTable i
INNER JOIN @linkTable lk ON i.objectId = lk.objectId AND i.intezmenyId = lk.intezmenyId AND i.tanevId = lk.tanevId
END
IF @action = 'D' BEGIN
INSERT INTO T_ENTITYHISTORY (C_ALTERATIONDATE, C_ENTITYID, C_ENTITYNAME, C_REASON, C_FELHASZNALOID, C_INTEZMENYID, C_TANEVID)
OUTPUT INSERTED.ID, INSERTED.C_ENTITYID, INSERTED.C_INTEZMENYID, INSERTED.C_TANEVID INTO @linkTable
SELECT DISTINCT GETDATE(), objectId, 'T_FOGLALKOZAS', 'Removed', modifier, intezmenyId, tanevId FROM @delTable
INSERT INTO T_ENTITYATTRIBUTEHISTORY (C_CURRENTVALUE, C_ORIGINALVALUE, C_PROPERTYNAME, C_ENTITYHISTORYID)
SELECT val, NULL, col, lk.id
FROM @delTable i
INNER JOIN @linkTable lk ON i.objectId = lk.objectId AND i.intezmenyId = lk.intezmenyId AND i.tanevId = lk.tanevId
END
IF @action = 'U' BEGIN
INSERT INTO T_ENTITYHISTORY (C_ALTERATIONDATE, C_ENTITYID, C_ENTITYNAME, C_REASON, C_FELHASZNALOID, C_INTEZMENYID, C_TANEVID)
OUTPUT INSERTED.ID, INSERTED.C_ENTITYID, INSERTED.C_INTEZMENYID, INSERTED.C_TANEVID INTO @linkTable
SELECT DISTINCT GETDATE(), i.objectId, 'T_FOGLALKOZAS',
CASE
WHEN i.val = 'T' AND d.val = 'F' THEN 'Logical Removed'
WHEN i.val = 'F' AND d.val = 'T' THEN 'Restored'
ELSE 'Modified'
END, i.modifier, i.intezmenyId, i.tanevId
FROM @insTable i
INNER JOIN @delTable d ON i.intezmenyId = d.intezmenyId AND i.objectId = d.objectId AND i.tanevId = d.tanevId AND i.col = d.col
WHERE i.col = 'TOROLT' AND d.COL = 'TOROLT'
INSERT INTO T_ENTITYATTRIBUTEHISTORY (C_CURRENTVALUE, C_ORIGINALVALUE, C_PROPERTYNAME, C_ENTITYHISTORYID)
SELECT i.val, d.val, ISNULL(i.col, d.col), lk.id
FROM @delTable d
FULL JOIN @insTable i ON i.objectId = d.objectId AND i.intezmenyId = d.intezmenyId AND i.tanevId = d.tanevId AND i.col = d.col
INNER JOIN @linkTable lk ON ISNULL(i.objectId, d.objectId) = lk.objectId AND ISNULL(i.intezmenyId, d.intezmenyId) = lk.intezmenyId AND ISNULL(i.tanevId, d.tanevId) = lk.tanevId
WHERE (i.val <> d.val OR ((i.val IS NULL OR d.val IS NULL) AND (i.val IS NOT NULL OR d.val IS NOT NULL)))
END
END
GO
PRINT N'Refreshing [dbo].[T_FOGLALKOZAS_OSSZES]...';
GO
EXECUTE sp_refreshsqlmodule N'[dbo].[T_FOGLALKOZAS_OSSZES]';
GO
PRINT N'Checking existing data against newly created constraints';
GO
ALTER TABLE [dbo].[T_TANULOTARGYMULASZTASSTATISZT] WITH CHECK CHECK CONSTRAINT [FK_4026077_4026075];
ALTER TABLE [dbo].[T_TEREM_FOGLALKOZAS] WITH CHECK CHECK CONSTRAINT [FK_4025949_4025947];
ALTER TABLE [dbo].[T_FOGLALKOZAS] WITH CHECK CHECK CONSTRAINT [FK_4025422_4025423];
ALTER TABLE [dbo].[T_FOGLALKOZAS] WITH CHECK CHECK CONSTRAINT [FK_4025428_4025426];
ALTER TABLE [dbo].[T_FOGLALKOZAS] WITH CHECK CHECK CONSTRAINT [FK_4025431_4025429];
ALTER TABLE [dbo].[T_FOGLALKOZAS] WITH CHECK CHECK CONSTRAINT [FK_402542202_402542200];
ALTER TABLE [dbo].[T_FOGLALKOZAS] WITH CHECK CHECK CONSTRAINT [FK_402542205_402542203];
GO
PRINT N'Update complete.';
GO
PRINT '--- intézményi view-k (dbo táblákkal megegyezõ nevû és a tábla_OSSZES nevûek) frissítése ---'
DECLARE @viewname nvarchar(100), @pureview nvarchar(100)
DECLARE semaviewk CURSOR LOCAL FOR
SELECT '['+TABLE_SCHEMA + '].[' + TABLE_NAME + ']', TABLE_NAME
FROM INFORMATION_SCHEMA.TABLES
WHERE TABLE_TYPE = 'VIEW' and TABLE_SCHEMA LIKE 'KR[_]%[_]Schema'
AND TABLE_NAME in ('T_FOGLALKOZAS', 'T_FOGLALKOZAS_OSSZES') -- ha csak néhány VIEW frissült, akkor a gyorsabb futásért ide fel lehet sorolni
ORDER BY TABLE_SCHEMA, TABLE_NAME
OPEN semaviewk
FETCH NEXT FROM semaviewk INTO @viewname, @pureview
WHILE @@FETCH_STATUS = 0 BEGIN
PRINT @viewname
EXEC sp_refreshview @viewname
FETCH NEXT FROM semaviewk INTO @viewname, @pureview
END
CLOSE semaviewk
DEALLOCATE semaviewk
GO
-- Triggerek inicializálás az összes táblára
DECLARE tableCursor CURSOR LOCAL FOR
SELECT DISTINCT TABLE_NAME
FROM INFORMATION_SCHEMA.COLUMNS
WHERE COLUMN_NAME IN ('CREATOR', 'MODIFIER')
AND TABLE_NAME NOT IN ('T_ENTITYHISTORY', 'T_ENTITYATTRIBUTEHISTORY', 'T_LOG', 'T_GLOBALLOCK', 'T_USERPROFILE', 'T_OLDALLATOGATOTTSAG')
AND TABLE_NAME IN (
SELECT t.name
FROM sys.tables t
INNER JOIN sys.schemas s ON s.schema_id = t.schema_id
WHERE s.name ='dbo'
)
DECLARE @table nvarchar(35)
OPEN tableCursor
FETCH NEXT FROM tableCursor INTO @table
WHILE @@FETCH_STATUS = 0 BEGIN
EXEC sp_Global_CreateTriggers @table
FETCH NEXT FROM tableCursor INTO @table
END
CLOSE tableCursor
DEALLOCATE tableCursor

View file

@ -0,0 +1,143 @@
GO
PRINT N'Creating [dbo].[tr_foglalkozasLog]...';
GO
CREATE TRIGGER tr_foglalkozasLog ON T_FOGLALKOZAS
FOR INSERT, DELETE, UPDATE AS
BEGIN
SET NOCOUNT ON
DECLARE
@insTable TABLE (objectId int, intezmenyId int, tanevId int, creator int, modifier int, col nvarchar(30), val varchar(max))
DECLARE
@delTable TABLE (objectId int, intezmenyId int, tanevId int, creator int, modifier int, col nvarchar(30), val varchar(max))
DECLARE
@linkTable TABLE (id int, objectId int, intezmenyId int, tanevId int)
DECLARE
@action char(1),
@xml xml
SET @action =
CASE
WHEN NOT EXISTS (SELECT 1 FROM DELETED) THEN 'I'
WHEN NOT EXISTS (SELECT 1 FROM INSERTED) THEN 'D'
ELSE 'U'
END
INSERT INTO @insTable (objectId, intezmenyId, tanevId, creator, modifier, col, val)
SELECT ID, C_INTEZMENYID, C_TANEVID, CREATOR, MODIFIER, col, val
FROM
(
SELECT ID, C_INTEZMENYID AS C_INTEZMENYID, C_TANEVID AS C_TANEVID, CREATOR, MODIFIER, CAST( C_FOGLALKOZASTIPUSA AS nvarchar(MAX)) AS C_FOGLALKOZASTIPUSA, CAST( C_ORASZAM AS nvarchar(MAX)) AS C_ORASZAM, CAST( C_NEV AS nvarchar(MAX)) AS C_NEV, CAST( C_ERTEKELESKELL AS nvarchar(MAX)) AS C_ERTEKELESKELL, CAST( C_MULASZTASKELL AS nvarchar(MAX)) AS C_MULASZTASKELL, CAST( C_TANARFELVEHETI AS nvarchar(MAX)) AS C_TANARFELVEHETI, CAST( C_IMPORTALT AS nvarchar(MAX)) AS C_IMPORTALT, CAST( C_TANTARGYID AS nvarchar(MAX)) AS C_TANTARGYID, CAST( C_OSZTALYCSOPORTID AS nvarchar(MAX)) AS C_OSZTALYCSOPORTID, CAST( C_TANAROKID AS nvarchar(MAX)) AS C_TANAROKID, CAST( TOROLT AS nvarchar(MAX)) AS TOROLT, CAST( ELOZOTANEVIREKORDID AS nvarchar(MAX)) AS ELOZOTANEVIREKORDID, CAST( NNID AS nvarchar(MAX)) AS NNID
FROM INSERTED) p
UNPIVOT (val FOR col IN (C_FOGLALKOZASTIPUSA, C_ORASZAM, C_NEV, C_ERTEKELESKELL, C_MULASZTASKELL, C_TANARFELVEHETI, C_IMPORTALT, C_TANTARGYID, C_OSZTALYCSOPORTID, C_TANAROKID, TOROLT, ELOZOTANEVIREKORDID, NNID)) AS unpvt
INSERT INTO @delTable (objectId, intezmenyId, tanevId, creator, modifier, col, val)
SELECT ID, C_INTEZMENYID, C_TANEVID, CREATOR, MODIFIER, col, val
FROM
(
SELECT ID, C_INTEZMENYID AS C_INTEZMENYID, C_TANEVID AS C_TANEVID, CREATOR, MODIFIER, CAST( C_FOGLALKOZASTIPUSA AS nvarchar(MAX)) AS C_FOGLALKOZASTIPUSA, CAST( C_ORASZAM AS nvarchar(MAX)) AS C_ORASZAM, CAST( C_NEV AS nvarchar(MAX)) AS C_NEV, CAST( C_ERTEKELESKELL AS nvarchar(MAX)) AS C_ERTEKELESKELL, CAST( C_MULASZTASKELL AS nvarchar(MAX)) AS C_MULASZTASKELL, CAST( C_TANARFELVEHETI AS nvarchar(MAX)) AS C_TANARFELVEHETI, CAST( C_IMPORTALT AS nvarchar(MAX)) AS C_IMPORTALT, CAST( C_TANTARGYID AS nvarchar(MAX)) AS C_TANTARGYID, CAST( C_OSZTALYCSOPORTID AS nvarchar(MAX)) AS C_OSZTALYCSOPORTID, CAST( C_TANAROKID AS nvarchar(MAX)) AS C_TANAROKID, CAST( TOROLT AS nvarchar(MAX)) AS TOROLT, CAST( ELOZOTANEVIREKORDID AS nvarchar(MAX)) AS ELOZOTANEVIREKORDID, CAST( NNID AS nvarchar(MAX)) AS NNID
FROM DELETED) p
UNPIVOT (val FOR col IN (C_FOGLALKOZASTIPUSA, C_ORASZAM, C_NEV, C_ERTEKELESKELL, C_MULASZTASKELL, C_TANARFELVEHETI, C_IMPORTALT, C_TANTARGYID, C_OSZTALYCSOPORTID, C_TANAROKID, TOROLT, ELOZOTANEVIREKORDID, NNID)) AS unpvt
IF @action = 'I' BEGIN
INSERT INTO T_ENTITYHISTORY (C_ALTERATIONDATE, C_ENTITYID, C_ENTITYNAME, C_REASON, C_FELHASZNALOID, C_INTEZMENYID, C_TANEVID)
OUTPUT INSERTED.ID, INSERTED.C_ENTITYID, INSERTED.C_INTEZMENYID, INSERTED.C_TANEVID INTO @linkTable
SELECT DISTINCT GETDATE(), objectId, 'T_FOGLALKOZAS', 'New', creator, intezmenyId, tanevId FROM @insTable
INSERT INTO T_ENTITYATTRIBUTEHISTORY (C_CURRENTVALUE, C_ORIGINALVALUE, C_PROPERTYNAME, C_ENTITYHISTORYID)
SELECT val, NULL, col, lk.id
FROM @insTable i
INNER JOIN @linkTable lk ON i.objectId = lk.objectId AND i.intezmenyId = lk.intezmenyId AND i.tanevId = lk.tanevId
END
IF @action = 'D' BEGIN
INSERT INTO T_ENTITYHISTORY (C_ALTERATIONDATE, C_ENTITYID, C_ENTITYNAME, C_REASON, C_FELHASZNALOID, C_INTEZMENYID, C_TANEVID)
OUTPUT INSERTED.ID, INSERTED.C_ENTITYID, INSERTED.C_INTEZMENYID, INSERTED.C_TANEVID INTO @linkTable
SELECT DISTINCT GETDATE(), objectId, 'T_FOGLALKOZAS', 'Removed', modifier, intezmenyId, tanevId FROM @delTable
INSERT INTO T_ENTITYATTRIBUTEHISTORY (C_CURRENTVALUE, C_ORIGINALVALUE, C_PROPERTYNAME, C_ENTITYHISTORYID)
SELECT val, NULL, col, lk.id
FROM @delTable i
INNER JOIN @linkTable lk ON i.objectId = lk.objectId AND i.intezmenyId = lk.intezmenyId AND i.tanevId = lk.tanevId
END
IF @action = 'U' BEGIN
INSERT INTO T_ENTITYHISTORY (C_ALTERATIONDATE, C_ENTITYID, C_ENTITYNAME, C_REASON, C_FELHASZNALOID, C_INTEZMENYID, C_TANEVID)
OUTPUT INSERTED.ID, INSERTED.C_ENTITYID, INSERTED.C_INTEZMENYID, INSERTED.C_TANEVID INTO @linkTable
SELECT DISTINCT GETDATE(), i.objectId, 'T_FOGLALKOZAS',
CASE
WHEN i.val = 'T' AND d.val = 'F' THEN 'Logical Removed'
WHEN i.val = 'F' AND d.val = 'T' THEN 'Restored'
ELSE 'Modified'
END, i.modifier, i.intezmenyId, i.tanevId
FROM @insTable i
INNER JOIN @delTable d ON i.intezmenyId = d.intezmenyId AND i.objectId = d.objectId AND i.tanevId = d.tanevId AND i.col = d.col
WHERE i.col = 'TOROLT' AND d.COL = 'TOROLT'
INSERT INTO T_ENTITYATTRIBUTEHISTORY (C_CURRENTVALUE, C_ORIGINALVALUE, C_PROPERTYNAME, C_ENTITYHISTORYID)
SELECT i.val, d.val, ISNULL(i.col, d.col), lk.id
FROM @delTable d
FULL JOIN @insTable i ON i.objectId = d.objectId AND i.intezmenyId = d.intezmenyId AND i.tanevId = d.tanevId AND i.col = d.col
INNER JOIN @linkTable lk ON ISNULL(i.objectId, d.objectId) = lk.objectId AND ISNULL(i.intezmenyId, d.intezmenyId) = lk.intezmenyId AND ISNULL(i.tanevId, d.tanevId) = lk.tanevId
WHERE (i.val <> d.val OR ((i.val IS NULL OR d.val IS NULL) AND (i.val IS NOT NULL OR d.val IS NOT NULL)))
END
END
GO
PRINT '--- intézményi view-k (dbo táblákkal megegyezõ nevû és a tábla_OSSZES nevûek) frissítése ---'
DECLARE @viewname nvarchar(100), @pureview nvarchar(100)
DECLARE semaviewk CURSOR LOCAL FOR
SELECT '['+TABLE_SCHEMA + '].[' + TABLE_NAME + ']', TABLE_NAME
FROM INFORMATION_SCHEMA.TABLES
WHERE TABLE_TYPE = 'VIEW' and TABLE_SCHEMA LIKE 'KR[_]%[_]Schema'
AND TABLE_NAME in ('T_FOGLALKOZAS', 'T_FOGLALKOZAS_OSSZES') -- ha csak néhány VIEW frissült, akkor a gyorsabb futásért ide fel lehet sorolni
ORDER BY TABLE_SCHEMA, TABLE_NAME
OPEN semaviewk
FETCH NEXT FROM semaviewk INTO @viewname, @pureview
WHILE @@FETCH_STATUS = 0 BEGIN
PRINT @viewname
EXEC sp_refreshview @viewname
FETCH NEXT FROM semaviewk INTO @viewname, @pureview
END
CLOSE semaviewk
DEALLOCATE semaviewk
GO
-- Triggerek inicializálás az összes táblára
DECLARE tableCursor CURSOR LOCAL FOR
SELECT DISTINCT TABLE_NAME
FROM INFORMATION_SCHEMA.COLUMNS
WHERE COLUMN_NAME IN ('CREATOR', 'MODIFIER')
AND TABLE_NAME NOT IN ('T_ENTITYHISTORY', 'T_ENTITYATTRIBUTEHISTORY', 'T_LOG', 'T_GLOBALLOCK', 'T_USERPROFILE', 'T_OLDALLATOGATOTTSAG')
AND TABLE_NAME IN (
SELECT t.name
FROM sys.tables t
INNER JOIN sys.schemas s ON s.schema_id = t.schema_id
WHERE s.name ='dbo'
)
DECLARE @table nvarchar(35)
OPEN tableCursor
FETCH NEXT FROM tableCursor INTO @table
WHILE @@FETCH_STATUS = 0 BEGIN
EXEC sp_Global_CreateTriggers @table
FETCH NEXT FROM tableCursor INTO @table
END
CLOSE tableCursor
DEALLOCATE tableCursor

View file

@ -0,0 +1,99 @@
-- ==========================================================================================
-- Author: Telek Ákos
-- Create date: 2016.05.31.
-- Description: Törli az alkalmazottakat (akiknél csak az alapadatok vannak kitöltve)
-- ==========================================================================================
IF OBJECT_ID('sp_DeleteAlkalmazottak') IS NOT NULL BEGIN
DROP PROCEDURE sp_DeleteAlkalmazottak
END
GO
CREATE PROCEDURE sp_DeleteAlkalmazottak
@xml xml
AS
BEGIN
SET NOCOUNT ON
SET XACT_ABORT ON
DECLARE @alkalmazottId TABLE (id int);
DECLARE @torlendoId TABLE (id int);
DECLARE @inputId TABLE (id int);
INSERT INTO @inputId
SELECT
sor.value('.', 'int') AS id
FROM @xml.nodes('/Alkalmazottak/IdLista/Id') as sorok(sor)
INSERT INTO @alkalmazottId (id)
SELECT a.ID
FROM T_ALKALMAZOTT a
WHERE EXISTS (SELECT 1 FROM @inputId WHERE id = a.ID)
AND NOT EXISTS (SELECT 1 FROM T_CSOPORT WHERE C_CSOPORTVEZETOID = a.ID)
AND NOT EXISTS (SELECT 1 FROM T_ESZKOZ WHERE C_FELELOSID = a.ID)
AND NOT EXISTS (SELECT 1 FROM T_FALIUJSAGBEJEGYZES WHERE C_BEJEGYZOID = a.ID)
AND NOT EXISTS (SELECT 1 FROM T_FOGLALKOZAS WHERE C_TANARID = a.ID)
AND NOT EXISTS (SELECT 1 FROM T_HELYETTESITESIIDOSZAK WHERE C_HELYETTESTANAROKID = a.ID)
AND NOT EXISTS (SELECT 1 FROM T_IGAZOLAS WHERE C_ROGZITOID = a.ID)
AND NOT EXISTS (SELECT 1 FROM T_JOGYAKORLAT WHERE C_JOGYAKORLATTULAJDONOSID = a.ID)
AND NOT EXISTS (SELECT 1 FROM T_NAPLOELLENORZES WHERE C_ELLENORZOSZEMELYID = a.ID)
AND NOT EXISTS (SELECT 1 FROM T_ORAK_TANAROK WHERE C_TANAROKID = a.ID)
AND NOT EXISTS (SELECT 1 FROM T_ORALATOGATAS WHERE C_ERTEKELOID = a.ID)
AND NOT EXISTS (SELECT 1 FROM T_OSZTALY WHERE C_OFOHELYETTESID = a.ID OR C_OSZTALYFONOKID = a.ID)
AND NOT EXISTS (SELECT 1 FROM T_TANARITANTARGY WHERE C_ALKALMAZOTTID = a.ID)
AND NOT EXISTS (SELECT 1 FROM T_TANARTARGYATLAG WHERE C_TANARIATLAGOKID = a.ID)
AND NOT EXISTS (SELECT 1 FROM T_TANITASIORA WHERE C_HELYETTESITOTANARID = a.ID)
AND NOT EXISTS (SELECT 1 FROM T_TANITASIORA WHERE C_ORATULAJDONOSID = a.ID)
AND NOT EXISTS (SELECT 1 FROM T_TANMENET WHERE C_FELTOLTOID = a.ID)
AND NOT EXISTS (SELECT 1 FROM T_TANULOERTEKELES WHERE C_ERTEKELOID = a.ID)
AND NOT EXISTS (SELECT 1 FROM T_TANULOESEMENY WHERE C_FELJEGYZOID = a.ID)
AND NOT EXISTS (SELECT 1 FROM T_TANULOKOZOSSEGISZOLGALAT WHERE C_FELJEGYZOID = a.ID)
AND NOT EXISTS (SELECT 1 FROM T_TEREM WHERE C_TEREMFELELOSID = a.ID)
AND NOT EXISTS (SELECT 1 FROM T_TEVEKENYSEG WHERE C_ESEMENYTULAJDONOSID = a.ID)
INSERT INTO @torlendoId (id)
SELECT ID
FROM T_FELHASZNALO f
WHERE EXISTS (SELECT 1 FROM @alkalmazottId WHERE id = f.ID)
AND NOT EXISTS (SELECT 1 FROM T_CIMTARCSOPORT WHERE C_TULAJDONOSID = f.ID)
AND NOT EXISTS (SELECT 1 FROM T_CIMZETT_FALIUJSAGBEJEGYZES WHERE C_CIMZETTID = f.ID)
AND NOT EXISTS (SELECT 1 FROM T_CSATOLTFELHASZNALOK_CSATOLTJ WHERE C_CSATOLTFELHASZNALOKID = f.ID)
AND NOT EXISTS (SELECT 1 FROM T_DIGESTMESSAGEQUEUE WHERE C_RECIPIENTID = f.ID)
AND NOT EXISTS (SELECT 1 FROM T_EMAILADATOK WHERE C_EMAILCIMZETTID = f.ID OR C_KULDOID = f.ID)
AND NOT EXISTS (SELECT 1 FROM T_FELHASZNALOBELEPESTORTENET WHERE C_FELHASZNALOID = f.ID)
AND NOT EXISTS (SELECT 1 FROM T_FELHASZNALOERTESITES WHERE C_FELHASZNALOID = f.ID)
AND NOT EXISTS (SELECT 1 FROM T_FELHASZNALOERTESITESBEALLITA WHERE C_FELHASZNALOID = f.ID)
AND NOT EXISTS (SELECT 1 FROM T_IKTATOTTDOKUMENTUMOK WHERE C_DOKUMENTUMPARTNEREID = f.ID OR C_FELTOLTOFELHASZNALOID = f.ID)
AND NOT EXISTS (SELECT 1 FROM T_IMPOSITION WHERE C_BEFIZETESREKOTELEZETTFELHASZ = f.ID OR C_LETREHOZOID = f.ID)
AND NOT EXISTS (SELECT 1 FROM T_JOGOSULTFELHASZNALOK_HOZZARE WHERE C_JOGOSULTFELHASZNALOKID = f.ID)
AND NOT EXISTS (SELECT 1 FROM T_JOGOSULTSAG_FELHASZNALO WHERE C_FELHASZNALOID = f.ID)
AND NOT EXISTS (SELECT 1 FROM T_MESSAGE WHERE C_SENDERID = f.ID)
AND NOT EXISTS (SELECT 1 FROM T_OLDALLATOGATOTTSAG WHERE C_FELHASZNALOID = f.ID)
AND NOT EXISTS (SELECT 1 FROM T_ONLINEUSER WHERE C_FELHASZNALOID = f.ID)
AND NOT EXISTS (SELECT 1 FROM T_PEDAGOGUSELETPALYAMODELL WHERE C_TANARID = f.ID)
AND NOT EXISTS (SELECT 1 FROM T_PERSONMESSAGE WHERE C_RECIPIENTID = f.ID)
AND NOT EXISTS (SELECT 1 FROM T_RESZTVEVOK_TEVEKENYSEGEK WHERE C_RESZTVEVOKID = f.ID)
AND NOT EXISTS (SELECT 1 FROM T_SMS WHERE C_FELHASZNALOID = f.ID)
AND NOT EXISTS (SELECT 1 FROM T_TRANSACTION WHERE C_BEFIZETOID = f.ID)
AND NOT EXISTS (SELECT 1 FROM T_USERNOTIFICATION WHERE C_FELHASZNALOID = f.ID)
AND NOT EXISTS (SELECT 1 FROM T_USERPROFILE WHERE C_FELHASZNALOID = f.ID)
BEGIN TRY
BEGIN TRANSACTION
DELETE FROM T_FELHASZNALO_SZEREPKOR WHERE C_FELHASZNALOID IN (SELECT ID FROM @torlendoId)
DELETE FROM T_FELHASZNALOBELEPES WHERE C_FELHASZNALOID IN (SELECT ID FROM @torlendoId)
DELETE FROM T_EMAIL WHERE C_FELHASZNALOID IN (SELECT ID FROM @torlendoId)
DELETE FROM T_CIM WHERE C_FELHASZNALOID IN (SELECT ID FROM @torlendoId)
DELETE FROM T_TELEFON WHERE C_FELHASZNALOID IN (SELECT ID FROM @torlendoId)
DELETE FROM T_MUNKAUGYIADATOK WHERE C_ALKALMAZOTTID IN (SELECT ID FROM @torlendoId)
DELETE FROM T_CIMTAR WHERE C_TAGOKID IN (SELECT ID FROM @torlendoId)
DELETE FROM T_ALKALMAZOTT WHERE ID IN (SELECT ID FROM @torlendoId)
DELETE FROM T_FELHASZNALO WHERE ID IN (SELECT ID FROM @torlendoId)
select count(1) from @torlendoId
COMMIT TRANSACTION
END TRY
BEGIN CATCH
IF @@TRANCOUNT > 0 AND XACT_STATE() <> 0
ROLLBACK TRAN;
THROW --RETHROW the ERROR
END CATCH
END
GO

View file

@ -0,0 +1,99 @@
IF OBJECT_ID('[dbo].[sp_DeleteAllTTF]', 'P') IS NOT NULL BEGIN
DROP PROCEDURE [dbo].[sp_DeleteAllTTF]
END
GO
CREATE PROCEDURE [dbo].[sp_DeleteAllTTF]
@feladatellatasiHelyId int = null,
@tanevId int
AS
BEGIN
SET NOCOUNT ON;
IF @feladatellatasiHelyId IS NULL BEGIN
DELETE FROM T_FOGLALKOZAS_OSSZES
WHERE ID IN (
SELECT ID FROM T_FOGLALKOZAS_OSSZES f
WHERE NOT EXISTS (SELECT 1 FROM T_ORARENDIORA_OSSZES WHERE f.ID = C_FOGLALKOZASID)
AND NOT EXISTS (SELECT 1 FROM T_TANITASIORA_OSSZES WHERE f.ID = C_FOGLALKOZASID)
AND NOT EXISTS (SELECT 1 FROM T_TEREM_FOGLALKOZAS WHERE f.ID = C_FOGLALKOZASID)
AND NOT EXISTS (SELECT 1 FROM T_TANULOTARGYMULASZTASSTATISZT_OSSZES WHERE f.ID = C_TARGYMULASZTASSTATISZTIKAIID)
AND f.C_IMPORTALT = 'T'
AND f.C_TANEVID = @tanevId
)
END
ELSE BEGIN -- Csak a megadott feladatellátási helyen töröl
DELETE FROM T_FOGLALKOZAS_OSSZES
WHERE ID IN (
SELECT ID FROM T_FOGLALKOZAS_OSSZES f
WHERE NOT EXISTS (SELECT 1 FROM T_ORARENDIORA_OSSZES WHERE f.ID = C_FOGLALKOZASID)
AND NOT EXISTS (SELECT 1 FROM T_TANITASIORA_OSSZES WHERE f.ID = C_FOGLALKOZASID)
AND NOT EXISTS (SELECT 1 FROM T_TEREM_FOGLALKOZAS WHERE f.ID = C_FOGLALKOZASID)
AND NOT EXISTS (SELECT 1 FROM T_TANULOTARGYMULASZTASSTATISZT_OSSZES WHERE f.ID = C_TARGYMULASZTASSTATISZTIKAIID)
AND f.C_IMPORTALT = 'T'
AND f.C_OSZTALYCSOPORTID IN (
SELECT ID FROM T_OSZTALYCSOPORT_OSSZES WHERE C_FELADATELLATASIHELYID = @feladatellatasiHelyId and C_TANEVID = @tanevId
)
AND f.C_TANEVID = @tanevId
)
END -- ENDIF
/*
* Innentől nem kell figyelni a feladatellátási helyet,
* mert a NOT EXISTS (SELECT 1 FROM T_FOGLALKOZAS szerepel mindenütt
*/
DELETE t
FROM T_TANTARGY_OSSZES t
WHERE NOT EXISTS (SELECT 1 FROM T_ORATERVTARGY_OSSZES WHERE C_TANTARGYID = t.ID)
AND NOT EXISTS (SELECT 1 FROM T_TANARITANTARGY_OSSZES WHERE C_TANTARGYID = t.ID)
AND NOT EXISTS (SELECT 1 FROM T_TANITASIORA_OSSZES WHERE C_TANTARGYID = t.ID)
AND NOT EXISTS (SELECT 1 FROM T_TANMENET_OSSZES WHERE C_TANTARGYID = t.ID)
AND NOT EXISTS (SELECT 1 FROM T_TANULOERTEKELES_OSSZES WHERE C_TANTARGYID = t.ID)
AND NOT EXISTS (SELECT 1 FROM T_TANULOESEMENY_OSSZES WHERE C_TANTARGYID = t.ID)
AND NOT EXISTS (SELECT 1 FROM T_TANULOMENTESSEG_OSSZES WHERE C_TANTARGYID = t.ID)
AND NOT EXISTS (SELECT 1 FROM T_TANTARGY_OSSZES WHERE C_FOTARGYID = t.ID)
AND NOT EXISTS (SELECT 1 FROM T_FOGLALKOZAS_OSSZES WHERE C_TANTARGYID = t.ID)
AND NOT EXISTS (SELECT 1 FROM T_ORARENDIORA_OSSZES WHERE C_TANTARGYID = t.ID)
AND C_IMPORTALT = 'T'
AND C_TANEVID = @tanevId
DELETE cso
FROM T_CSOPORTOK_OSZTALYOK cso
WHERE (EXISTS (SELECT 1 FROM T_OSZTALYCSOPORT_OSSZES ocs WHERE C_IMPORTALT = 'T' AND cso.C_CSOPORTOKID = ocs.ID AND ocs.TOROLT='F' )
AND NOT EXISTS (SELECT 1 FROM T_FOGLALKOZAS_OSSZES WHERE C_OSZTALYCSOPORTID = cso.C_CSOPORTOKID))
OR
(EXISTS (SELECT 1 FROM T_OSZTALYCSOPORT_OSSZES ocs WHERE C_IMPORTALT = 'T' AND cso.C_OSZTALYOKID = ocs.ID AND ocs.TOROLT='F' )
AND NOT EXISTS (SELECT 1 FROM T_FOGLALKOZAS_OSSZES WHERE C_OSZTALYCSOPORTID = cso.C_OSZTALYOKID))
DELETE cs
FROM T_CSOPORT_OSSZES cs
WHERE EXISTS (SELECT 1 FROM T_OSZTALYCSOPORT_OSSZES WHERE C_IMPORTALT = 'T' AND cs.ID = ID)
AND NOT EXISTS (SELECT 1 FROM T_FOGLALKOZAS_OSSZES WHERE C_OSZTALYCSOPORTID = cs.ID)
AND NOT EXISTS (SELECT 1 FROM T_CSOPORTOK_OSZTALYOK WHERE C_CSOPORTOKID = cs.ID)
AND NOT EXISTS (SELECT 1 FROM T_ORARENDIORA_OSSZES WHERE C_OSZTALYCSOPORTID = cs.ID)
DELETE o
FROM T_OSZTALY_OSSZES o
WHERE NOT EXISTS (SELECT 1 FROM T_NAPLOELLENORZES_OSSZES WHERE o.ID = C_OSZTALYID)
AND EXISTS (SELECT 1 FROM T_OSZTALYCSOPORT_OSSZES WHERE C_IMPORTALT = 'T' AND o.ID = ID)
AND NOT EXISTS (SELECT 1 FROM T_FOGLALKOZAS_OSSZES WHERE C_OSZTALYCSOPORTID = o.ID)
AND NOT EXISTS (SELECT 1 FROM T_CSOPORT_OSSZES WHERE C_OSZTALYBONTASID = o.ID)
AND NOT EXISTS (SELECT 1 FROM T_CSOPORTOK_OSZTALYOK WHERE C_OSZTALYOKID = o.ID)
AND NOT EXISTS (SELECT 1 FROM T_ORARENDIORA_OSSZES WHERE C_OSZTALYCSOPORTID = o.ID)
AND C_ALTANEVID = @tanevId
DELETE ocs
FROM T_OSZTALYCSOPORT_OSSZES ocs
WHERE NOT EXISTS (SELECT 1 FROM T_OSZTALYCSOPORT_FALIUJSAGBEJE WHERE ocs.ID = C_OSZTALYCSOPORTID)
AND NOT EXISTS (SELECT 1 FROM T_OSZTALYCSOPORT_TANEVRENDJE WHERE ocs.ID = C_OSZTALYCSOPORTID)
AND NOT EXISTS (SELECT 1 FROM T_TANITASIORA_OSSZES WHERE ocs.ID = C_OSZTALYCSOPORTID)
AND NOT EXISTS (SELECT 1 FROM T_TANMENET_OSSZES WHERE ocs.ID = C_OSZTALYCSOPORTID)
AND NOT EXISTS (SELECT 1 FROM T_TANULOCSOPORT_OSSZES WHERE ocs.ID = C_OSZTALYCSOPORTID)
AND NOT EXISTS (SELECT 1 FROM T_TANULOERTEKELES_OSSZES WHERE ocs.ID = C_OSZTALYCSOPORTID)
AND NOT EXISTS (SELECT 1 FROM T_FOGLALKOZAS_OSSZES WHERE C_OSZTALYCSOPORTID = ocs.ID)
AND NOT EXISTS (SELECT 1 FROM T_OSZTALY_OSSZES WHERE ID = ocs.ID)
AND NOT EXISTS (SELECT 1 FROM T_CSOPORT_OSSZES WHERE ID = ocs.ID)
AND NOT EXISTS (SELECT 1 FROM T_ORARENDIORA_OSSZES WHERE C_OSZTALYCSOPORTID = ocs.ID)
AND C_IMPORTALT = 'T'
AND C_TANEVID = @tanevId
END
GO

View file

@ -0,0 +1,82 @@
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
IF OBJECT_ID('[dbo].[sp_FizikaiTorlesTantargyfelosztas]') IS NOT NULL
BEGIN
DROP PROCEDURE [dbo].[sp_FizikaiTorlesTantargyfelosztas]
END
GO
-- =============================================
-- Description: <Fizikailag töröljük az intézmény adott tanévére a tantárgyfelosztást>
-- =============================================
CREATE PROCEDURE [dbo].[sp_FizikaiTorlesTantargyfelosztas]
@pIntezmenyId INT
,@pTanevId INT
,@pUserId INT
WITH EXECUTE AS 'kreta_tech_user'
AS
BEGIN
BEGIN TRY
-- SET NOCOUNT ON added to prevent extra result sets from
-- interfering with SELECT statements.
SET NOCOUNT ON;
DISABLE TRIGGER tr_orarendioraLog ON T_ORARENDIORA;
UPDATE T_ORARENDIORA_OSSZES SET
C_FOGLALKOZASID = NULL
,SERIAL += 1
,LASTCHANGED = GETDATE()
,MODIFIER = @pUserId
FROM
T_ORARENDIORA_OSSZES
WHERE
C_INTEZMENYID = @pIntezmenyId AND
C_TANEVID = @pTanevId AND
C_FOGLALKOZASID IS NOT NULL;
ENABLE TRIGGER tr_orarendioraLog ON T_ORARENDIORA;
DISABLE TRIGGER tr_tanitasioraLog ON T_TANITASIORA;
UPDATE T_TANITASIORA_OSSZES SET
C_FOGLALKOZASID = NULL
,SERIAL += 1
,LASTCHANGED = GETDATE()
,MODIFIER = @pUserId
FROM
T_TANITASIORA_OSSZES
WHERE
C_INTEZMENYID = @pIntezmenyId AND
C_TANEVID = @pTanevId AND
C_FOGLALKOZASID IS NOT NULL;
ENABLE TRIGGER tr_tanitasioraLog ON T_TANITASIORA;
--NOTE: Egyelőre a törléseknél kiszedjük a trigger kikapcsolást, lehet hogy kell a jövőben
--DISABLE TRIGGER tr_foglalkozasLog ON T_FOGLALKOZAS;
DELETE FROM
T_FOGLALKOZAS_OSSZES
WHERE
C_INTEZMENYID = @pIntezmenyId AND
C_TANEVID = @pTanevId;
--NOTE: Egyelőre a törléseknél kiszedjük a trigger kikapcsolást, lehet hogy kell a jövőben
--ENABLE TRIGGER tr_foglalkozasLog ON T_FOGLALKOZAS;
END TRY
BEGIN CATCH
ENABLE TRIGGER tr_orarendioraLog ON T_ORARENDIORA;
ENABLE TRIGGER tr_tanitasioraLog ON T_TANITASIORA;
--NOTE: Egyelőre a törléseknél kiszedjük, lehet hogy kell a jövőben
--ENABLE TRIGGER tr_foglalkozasLog ON T_FOGLALKOZAS;
END CATCH;
END
GO

View file

@ -0,0 +1,91 @@
IF OBJECT_ID('sp_FoglalkozasArchiv') IS NOT NULL BEGIN
DROP PROCEDURE sp_FoglalkozasArchiv
END;
GO
CREATE PROCEDURE sp_FoglalkozasArchiv
@intezmenyId int,
@tanevId int
AS
BEGIN
INSERT INTO T_FOGLALKOZASARCHIV (
[C_ALKALMAZOTTID] -- INT NULL,
,[C_ELFOGADASDATUMA] -- DATETIME NULL,
,[C_FELADATELLATASIHELYID] -- INT NULL,
,[C_FELADATELLATASIHELYNEVE] -- NVARCHAR (255) NULL,
,[C_ORASZAM] -- NUMERIC (10, 2) NULL,
,[C_OSZTALYCSOPORTID] -- INT NULL,
,[C_OSZTALYCSOPORTNEVE] -- NVARCHAR (255) NULL,
,[C_TANARKOTELEZOORASZAMA] -- NUMERIC (10, 2) NULL,
,[C_TANARMUNKAIDOKEDVEZMENYE] -- INT NULL,
,[C_TANARMUNKAIDOKEDVEZMENYOKA] -- NVARCHAR (255) NULL,
,[C_TANARMUNKAIDOKEDVEZMENYOKAID]-- INT NULL,
,[C_TANARMUNKAKORE] -- NVARCHAR (255) NULL,
,[C_TANARMUNKAKOREID] -- INT NULL,
,[C_TANARNEVE] -- NVARCHAR (255) NULL,
,[C_TANARPEDAGOGIAIKEPESITESE] -- NVARCHAR (255) NULL,
,[C_TANARPEDAGOGIAIKEPESITESEID]-- INT NULL,
,[C_TANEVNEVE] -- NVARCHAR (255) NULL,
,[C_TANTARGYID] -- INT NULL,
,[C_TANTARGYNEVE] -- NVARCHAR (255) NULL,
,[C_INTEZMENYID] -- INT NOT NULL,
,[C_TANEVID] -- INT NOT NULL,
,[TOROLT] -- CHAR (1) NULL,
,[SERIAL] -- INT NULL,
,[LASTCHANGED] -- DATETIME NULL,
,[CREATED] -- DATETIME NULL,
,[MODIFIER] -- INT NULL,
,[CREATOR] -- INT NULL,
) SELECT
u.ID AS [C_ALKALMAZOTTID] -- INT NULL,
,GETDATE() AS [C_ELFOGADASDATUMA] -- DATETIME NULL,
,fh.ID AS [C_FELADATELLATASIHELYID] -- INT NULL,
,'' AS [C_FELADATELLATASIHELYNEVE] -- NVARCHAR (255) NULL,
,f.C_ORASZAM AS [C_ORASZAM] -- NUMERIC (10, 2) NULL,
,ocs.ID AS [C_OSZTALYCSOPORTID] -- INT NULL,
,ocs.C_NEV AS [C_OSZTALYCSOPORTNEVE] -- NVARCHAR (255) NULL,
,m.C_KOTELEZOORASZAM AS [C_TANARKOTELEZOORASZAMA] -- NUMERIC (10, 2) NULL,
,m.C_MUNKAIDOKEDVEZMENYORASZAM AS [C_TANARMUNKAIDOKEDVEZMENYE] -- INT NULL,
,mk.C_NAME AS [C_TANARMUNKAIDOKEDVEZMENYOKA] -- NVARCHAR (255) NULL,
,m.C_MUNKAIDOKEDVEZMENYOKA AS [C_TANARMUNKAIDOKEDVEZMENYOKAID]-- INT NULL,
,k.C_NAME AS [C_TANARMUNKAKORE] -- NVARCHAR (255) NULL,
,m.C_MUNKAKORTIPUSA AS [C_TANARMUNKAKOREID] -- INT NULL,
,u.C_NYOMTATASINEV AS [C_TANARNEVE] -- NVARCHAR (255) NULL,
,kp.C_NAME AS [C_TANARPEDAGOGIAIKEPESITESE] -- NVARCHAR (255) NULL,
,m.C_BESOROLASIFOKOZAT AS [C_TANARPEDAGOGIAIKEPESITESEID]-- INT NULL,
,te.C_NEV AS [C_TANEVNEVE] -- NVARCHAR (255) NULL,
,t.ID AS [C_TANTARGYID] -- INT NULL,
,t.C_NEV AS [C_TANTARGYNEVE] -- NVARCHAR (255) NULL,
,f.C_INTEZMENYID AS [C_INTEZMENYID] -- INT NOT NULL,
,f.C_TANEVID AS [C_TANEVID] -- INT NOT NULL,
,'F' AS [TOROLT] -- CHAR (1) NULL,
,0 AS [SERIAL] -- INT NULL,
,NULL AS [LASTCHANGED] -- DATETIME NULL,
,GETDATE() AS [CREATED] -- DATETIME NULL,
,NULL AS [MODIFIER] -- INT NULL,
,NULL AS [CREATOR] -- INT NULL,
-- select count(1)
FROM T_FOGLALKOZAS f
INNER JOIN T_FELHASZNALO u ON u.ID = f.C_TANARID
INNER JOIN T_OSZTALYCSOPORT ocs ON ocs.ID = f.C_OSZTALYCSOPORTID
INNER JOIN T_ALKALMAZOTT a ON a.ID = u.ID
INNER JOIN T_MUNKAUGYIADATOK m ON m.C_ALKALMAZOTTID = a.ID
INNER JOIN T_TANTARGY t ON f.C_TANTARGYID = t.ID
INNER JOIN T_TANEV te ON te.ID = f.C_TANEVID
LEFT JOIN T_DICTIONARYITEMBASE mk ON mk.ID = m.C_MUNKAIDOKEDVEZMENYOKA AND mk.C_TANEVID = f.C_TANEVID AND mk.C_INTEZMENYID = f.C_INTEZMENYID
LEFT JOIN T_DICTIONARYITEMBASE k ON k.ID = m.C_MUNKAKORTIPUSA AND k.C_TANEVID = f.C_TANEVID AND k.C_INTEZMENYID = f.C_INTEZMENYID
LEFT JOIN T_DICTIONARYITEMBASE kp ON kp.ID = m.C_BESOROLASIFOKOZAT AND kp.C_TANEVID = f.C_TANEVID AND kp.C_INTEZMENYID = f.C_INTEZMENYID
INNER JOIN T_FELADATELLATASIHELY fh ON fh.ID = m.C_FELADATELLATASIHELYID
WHERE f.TOROLT = 'F'
/*AND f.C_INTEZMENYID IN (
SELECT DISTINCT e.C_INTEZMENYID FROM T_ENTITYHISTORY e
INNER JOIN T_ENTITYATTRIBUTEHISTORY a ON a.C_ENTITYHISTORYID = e.ID
INNER JOIN T_INTEZMENYADATSZOLGALTATAS i ON i.C_INTEZMENYID = e.C_INTEZMENYID
WHERE e.C_ENTITYNAME IN ('T_INTEZMENYADATSZOLGALTATAS', 'INTEZMENYADATSZOLGALTATAS')
AND a.C_PROPERTYNAME = 'C_VEGLEGESTTF'
AND a.C_CURRENTVALUE = 'T'
AND i.C_VEGLEGESTTF = 'T'
)*/
AND f.C_INTEZMENYID = @intezmenyId AND f.C_TANEVID = @tanevId
END
GO

View file

@ -0,0 +1,60 @@
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
-- =============================================
-- Author: <Hoffmann Zsolt>
-- Create date: <2016.07.05>
-- Description: <Áttanitások lekérdezése riport>
-- =============================================
IF OBJECT_ID('sp_GetAttanitasok') IS NOT NULL BEGIN
DROP PROCEDURE sp_GetAttanitasok
END
GO
CREATE PROCEDURE [sp_GetAttanitasok]
@pTanevString nvarchar(50),
@pFenntarto nvarchar(50)
AS
BEGIN
SET NOCOUNT ON;
SELECT * FROM (
SELECT
fh.C_OKTATASIAZONOSITO ID,
MAX(fh.C_NYOMTATASINEV) TanarNev,
MAX(fh.C_SZULETESIHELY) SzulHely,
MAX(fh.C_SZULETESIDATUM) SzulDatum,
MAX(fh.C_SZULETESINEV) SzulNev,
MAX(fh.C_ANYJANEVE) AnyjaNeve,
STUFF(
(SELECT DISTINCT ', ' + xi.C_NEV
FROM T_INTEZMENYADATOK xi
INNER JOIN T_FELHASZNALO xf ON xi.C_INTEZMENYID = xf.C_INTEZMENYID
WHERE xf.C_OKTATASIAZONOSITO = fh.C_OKTATASIAZONOSITO
FOR XML PATH (''))
, 1, 1, '') as Intezmenyek,
MAX(m.C_KOTELEZOORASZAM) KotelezoOraszam,
SUM(f.C_ORASZAM) TenylegesOraszam,
(SELECT DISTINCT COUNT(xi.C_OMKOD)
FROM T_INTEZMENYADATOK xi
INNER JOIN T_FELHASZNALO xf ON xi.C_INTEZMENYID = xf.C_INTEZMENYID
INNER JOIN T_TANEV xte ON xte.ID = xi.C_TANEVID AND xte.TOROLT = 'F'
WHERE xf.C_OKTATASIAZONOSITO = fh.C_OKTATASIAZONOSITO AND xte.C_NEV = @pTanevString)
IntezmenyekSzama
FROM T_INTEZMENY i
INNER JOIN T_INTEZMENYADATSZOLGALTATAS ia ON ia.C_INTEZMENYID = i.ID AND ia.TOROLT = 'F'
INNER JOIN T_TANEV te ON te.ID = ia.C_TANEVID AND te.TOROLT = 'F'
INNER JOIN T_ALKALMAZOTT a ON a.C_ALINTEZMENYID = i.ID AND a.TOROLT = 'F'
INNER JOIN T_FELHASZNALO fh ON fh.ID = a.ID AND fh.TOROLT = 'F'
INNER JOIN T_FOGLALKOZAS f ON a.ID = f.C_TANARID AND f.TOROLT = 'F'
INNER JOIN T_MUNKAUGYIADATOK m ON m.C_ALKALMAZOTTID = a.ID AND m.TOROLT = 'F' AND (m.C_BETOLTETLENALLASHELY != 'T')
WHERE (fh.C_OKTATASIAZONOSITO IS NOT NULL OR fh.C_OKTATASIAZONOSITO <> '')
AND te.C_NEV = @pTanevString
AND (i.C_FENNTARTOAZONOSITO = @pFenntarto OR @pFenntarto IS NULL)
GROUP BY fh.C_OKTATASIAZONOSITO
) t
WHERE t.IntezmenyekSzama > 1
ORDER BY t.TanarNev
END
GO

View file

@ -0,0 +1,106 @@
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
IF OBJECT_ID('sp_GetElfogadottTantargyfelosztasok') IS NOT NULL
BEGIN
DROP PROCEDURE sp_GetElfogadottTantargyfelosztasok
END
GO
CREATE PROCEDURE sp_GetElfogadottTantargyfelosztasok
@tanevId INT,
@intezmenyId INT,
@isElfogadott BIT,
@isKlebersberg BIT
AS
BEGIN
SET NOCOUNT ON;
--Pedagógusok
SELECT
foglalkozas.C_TANARID PedagogusId
,felhasznalo.C_NYOMTATASINEV PedagogusNev
,munkakor.C_NAME Munkakor
,kepesites.C_NAME Kepesites
,dbo.fnGetDokumentumPedagogusOraszam(foglalkozas.C_TANARID, @isKlebersberg) KotelezoOraszam
,munkaugyiAdatok.C_MUNKAIDOKEDVEZMENYORASZAM MunkaidoKedvezmenyOraszam
,munkaidoKedvezmenyOka.C_NAME MunkaidoKedvezmenyOka
,SUM(foglalkozas.C_ORASZAM) HetiOraszam
,ISNULL(munkaugyiAdatok.C_MUNKAIDOKEDVEZMENYORASZAM, 0) + SUM(foglalkozas.C_ORASZAM) LekotottOraszam
INTO #PedagogusTemp
FROM T_FOGLALKOZAS_OSSZES foglalkozas
INNER JOIN T_MUNKAUGYIADATOK_OSSZES munkaugyiAdatok ON munkaugyiAdatok.C_ALKALMAZOTTID = foglalkozas.C_TANARID
INNER JOIN T_FELHASZNALO_OSSZES felhasznalo ON felhasznalo.ID = foglalkozas.C_TANARID
LEFT JOIN T_DICTIONARYITEMBASE_OSSZES munkakor ON munkakor.ID = munkaugyiAdatok.C_MUNKAKORTIPUSA AND munkaugyiAdatok.C_TANEVID = munkakor.C_TANEVID
LEFT JOIN T_DICTIONARYITEMBASE_OSSZES kepesites ON kepesites.ID = munkaugyiAdatok.C_BESOROLASIFOKOZAT AND munkaugyiAdatok.C_TANEVID = kepesites.C_TANEVID
LEFT JOIN T_DICTIONARYITEMBASE_OSSZES munkaidoKedvezmenyOka ON munkaidoKedvezmenyOka.ID = munkaugyiAdatok.C_MUNKAIDOKEDVEZMENYOKA AND munkaugyiAdatok.C_TANEVID = munkaidoKedvezmenyOka.C_TANEVID
INNER JOIN T_INTEZMENYADATSZOLGALTATAS_OSSZES intezmenyAdatSzolgaltatas ON intezmenyAdatSzolgaltatas.C_TANEVID = foglalkozas.C_TANEVID AND intezmenyAdatSzolgaltatas.TOROLT = 'F'
WHERE
foglalkozas.C_TANEVID = @tanevId
AND foglalkozas.TOROLT = 'F'
AND munkaugyiAdatok.TOROLT = 'F'
AND felhasznalo.C_NYOMTATASINEV NOT LIKE '[[]HO%'
GROUP BY C_TANARID, C_NYOMTATASINEV, munkakor.C_NAME, kepesites.C_NAME, C_KOTELEZOORASZAM, C_MUNKAIDOKEDVEZMENYORASZAM, munkaidoKedvezmenyOka.C_NAME
ORDER BY felhasznalo.C_NYOMTATASINEV
--Osztályok / csoportok
SELECT
osztalyCsoport.C_NEV OsztalyCsoport
,SUM(C_ORASZAM) OsszesOraszam
INTO #OsztalyCsoportTemp
FROM T_FOGLALKOZAS_OSSZES foglalkozas
INNER JOIN T_FELHASZNALO_OSSZES felhasznalo ON felhasznalo.ID = foglalkozas.C_TANARID
INNER JOIN T_OSZTALYCSOPORT_OSSZES osztalyCsoport ON osztalyCsoport.ID = foglalkozas.C_OSZTALYCSOPORTID
INNER JOIN T_TANTARGY_OSSZES tantargy ON tantargy.ID = foglalkozas.C_TANTARGYID
INNER JOIN T_INTEZMENYADATSZOLGALTATAS_OSSZES intezmenyAdatSzolgaltatas ON intezmenyAdatSzolgaltatas.C_TANEVID = foglalkozas.C_TANEVID AND intezmenyAdatSzolgaltatas.TOROLT = 'F'
WHERE
foglalkozas.C_TANEVID = @tanevId
AND foglalkozas.TOROLT = 'F'
AND felhasznalo.C_NYOMTATASINEV NOT LIKE '[[]HO%'
GROUP BY osztalyCsoport.C_NEV
ORDER BY osztalyCsoport.C_NEV
--Tantárgyfelosztás
SELECT
felhasznalo.C_NYOMTATASINEV PedagogusNeve
,osztalyCsoport.C_NEV OsztalyCsoport
,tantargy.C_NEV Tantargy
,foglalkozas.C_ORASZAM Oraszam
INTO #TantargyFelosztasTemp
FROM T_FOGLALKOZAS_OSSZES foglalkozas
INNER JOIN T_FELHASZNALO_OSSZES felhasznalo ON felhasznalo.ID = foglalkozas.C_TANARID
INNER JOIN T_OSZTALYCSOPORT_OSSZES osztalyCsoport ON osztalyCsoport.ID = foglalkozas.C_OSZTALYCSOPORTID
INNER JOIN T_TANTARGY_OSSZES tantargy ON tantargy.ID = foglalkozas.C_TANTARGYID
INNER JOIN T_INTEZMENYADATSZOLGALTATAS_OSSZES intezmenyAdatSzolgaltatas ON intezmenyAdatSzolgaltatas.C_TANEVID = foglalkozas.C_TANEVID AND intezmenyAdatSzolgaltatas.TOROLT = 'F'
WHERE
foglalkozas.C_TANEVID = @tanevId
AND foglalkozas.TOROLT = 'F'
AND felhasznalo.C_NYOMTATASINEV NOT LIKE '[[]HO%'
ORDER BY felhasznalo.C_NYOMTATASINEV
--Fejléc
SELECT
intezmenyAdatok.C_NEV IntezmenyNeve
,tanev.C_NEV Tanev
,intezmenyAdatok.C_ENGEDELYEZETTALLASHELYEK EngedelyezettAllashelyek
,ISNULL('Hatályos: <b>' + FORMAT(intezmenyAdatSzolgaltatas.C_ELFOGADOTTTTFDATUMA, 'yyyy.MM.dd.') +'</b> napjától','') ElfogadasDatuma
,(SELECT SUM(LekotottOraszam) FROM #PedagogusTemp) PedagogusSum
,(SELECT SUM(Osszesoraszam) FROM #OsztalyCsoportTemp) OsztalyCsoportSum
,(SELECT SUM(Oraszam) FROM #TantargyFelosztasTemp) TantargyFelosztasSum
FROM T_INTEZMENYADATOK_OSSZES intezmenyAdatok
INNER JOIN T_TANEV_OSSZES tanev ON tanev.ID = intezmenyAdatok.C_TANEVID
INNER JOIN T_INTEZMENYADATSZOLGALTATAS_OSSZES intezmenyAdatSzolgaltatas ON
intezmenyAdatSzolgaltatas.C_INTEZMENYID = intezmenyAdatok.C_INTEZMENYID
AND intezmenyAdatSzolgaltatas.C_TANEVID = tanev.ID
WHERE
intezmenyAdatok.C_TANEVID = @tanevId
SELECT * FROM #PedagogusTemp ORDER BY PedagogusNev
SELECT * FROM #OsztalyCsoportTemp ORDER BY OsztalyCsoport
SELECT * FROM #TantargyFelosztasTemp ORDER BY PedagogusNeve
END
GO

View file

@ -0,0 +1,47 @@
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
IF OBJECT_ID('[dbo].[sp_GetFelhasznaloErintettTargyai]') IS NOT NULL
BEGIN
DROP PROCEDURE [dbo].[sp_GetFelhasznaloErintettTargyai]
END
GO
-- =============================================
-- Author: <Hoffmann Zsolt>
-- Create date: <2016. 03. 03.>
-- Description: <Felhasználóhoz kötheto tantárgyak és egyéb tantárgyak>
-- =============================================
CREATE PROCEDURE [dbo].[sp_GetFelhasznaloErintettTargyai]
@felhasznaloId int
AS
BEGIN
SET NOCOUNT ON;
with q (ID,Nev,Tipus) as
(select
T_TANTARGY.ID,
T_TANTARGY.C_NEV Nev,
'1' Tipus
from T_TANTARGY
inner join T_FOGLALKOZAS on T_FOGLALKOZAS.C_TANTARGYID = T_TANTARGY.ID
where T_TANTARGY.TOROLT = 'F' and
T_TANTARGY.C_FOTARGYID is null and
T_FOGLALKOZAS.C_TANARID = @felhasznaloId)
select ID,Nev,tipus from q
union
select distinct
T_TANTARGY.ID,
T_TANTARGY.C_NEV Nev,
'3' Tipus
from T_TANTARGY
inner join T_FOGLALKOZAS on T_FOGLALKOZAS.C_TANTARGYID = T_TANTARGY.ID and T_FOGLALKOZAS.TOROLT = 'F'
inner join T_OSZTALYCSOPORT on T_OSZTALYCSOPORT.ID = T_FOGLALKOZAS.C_OSZTALYCSOPORTID and T_OSZTALYCSOPORT.TOROLT = 'F'
inner join T_OSZTALY on T_OSZTALY.ID = T_OSZTALYCSOPORT.ID and T_OSZTALY.TOROLT = 'F'
where T_TANTARGY.TOROLT = 'F' and
(T_OSZTALY.C_OSZTALYFONOKID = @felhasznaloId or T_OSZTALY.C_OFOHELYETTESID = @felhasznaloId) and
T_TANTARGY.ID not in (select ID from q)
END

View file

@ -0,0 +1,45 @@
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
IF OBJECT_ID('[dbo].[sp_GetFelhasznaloFoglalkozasokErtekelesekhez]') IS NOT NULL
BEGIN
DROP PROCEDURE [dbo].[sp_GetFelhasznaloFoglalkozasokErtekelesekhez]
END
GO
-- =============================================
-- Description: <Felhasználóhoz köthetõ foglalkozások az értékelések szûréséhez>
-- =============================================
CREATE PROCEDURE [dbo].[sp_GetFelhasznaloFoglalkozasokErtekelesekhez]
@pTanarID INT,
@pTanevID INT
AS
BEGIN
-- SET NOCOUNT ON added to prevent extra result sets from
-- interfering with SELECT statements.
SET NOCOUNT ON;
SELECT
foglalkozas.ID ID,
osztalyCsoport.C_NEV + ' - ' + tantargy.C_Nev Nev,
osztalyCsoport.C_EVFOLYAMTIPUSA Evfolyam
FROM
T_FOGLALKOZAS_OSSZES foglalkozas
LEFT JOIN T_OSZTALYCSOPORT_OSSZES osztalyCsoport
ON osztalyCsoport.ID = foglalkozas.C_OSZTALYCSOPORTID
LEFT JOIN T_TANTARGY_OSSZES tantargy
ON tantargy.ID = foglalkozas.C_TANTARGYID
LEFT JOIN T_FELHASZNALO_OSSZES felhasznalo
ON felhasznalo.ID = foglalkozas.C_TANARID
WHERE
foglalkozas.TOROLT = 'F' AND
foglalkozas.C_TANEVID = @pTanevID AND
foglalkozas.C_TANARID = @pTanarID
ORDER BY
Evfolyam
END

View file

@ -0,0 +1,95 @@
-- =============================================
-- Author: Sólyom Péter
-- Create date: 2016.04.05.
-- Description: Lekérdezi a felhasználóhoz tartozó jogokat (osztályfőnök, csoportvezető, stb.)
-- =============================================
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
IF OBJECT_ID('dbo.sp_GetFelhasznaloJogok') IS NOT NULL BEGIN
DROP PROCEDURE dbo.sp_GetFelhasznaloJogok
END
GO
CREATE PROCEDURE sp_GetFelhasznaloJogok
@FELHASZNALOID INT,
@SZEREPKORTIPUS INT
AS
BEGIN
-- SET NOCOUNT ON added to prevent extra result sets from
-- interfering with SELECT statements.
SET NOCOUNT ON;
DECLARE @TEMPJOGOK TABLE ( JOG nvarchar(100))
-- SZEREPKÖR JOGOK
IF @SZEREPKORTIPUS = 1757
BEGIN
INSERT INTO @TEMPJOGOK (JOG) VALUES (N'Fenntarto')
END
ELSE IF @SZEREPKORTIPUS = 1758
BEGIN
INSERT INTO @TEMPJOGOK (JOG) VALUES (N'Adminisztrator')
END
ELSE IF @SZEREPKORTIPUS = 1759
BEGIN
INSERT INTO @TEMPJOGOK (JOG) VALUES (N'Penzugy')
END ELSE IF @SZEREPKORTIPUS = 1760
BEGIN
INSERT INTO @TEMPJOGOK (JOG) VALUES (N'Naplo')
END ELSE IF @SZEREPKORTIPUS = 1761
BEGIN
INSERT INTO @TEMPJOGOK (JOG) VALUES (N'Ellenorzo')
END
-- RENDSZERGAZDA VAGY SZUPEROSZTÁLYFŐNÖK
INSERT INTO @TEMPJOGOK
SELECT DISTINCT C_JOG JOG
FROM T_JOGOSULTSAG
JOIN T_JOGOSULTSAG_FELHASZNALO FELHASZNALOJOG ON FELHASZNALOJOG.C_JOGOSULTSAGID = T_JOGOSULTSAG.ID
WHERE T_JOGOSULTSAG.TOROLT = 'F'
AND FELHASZNALOJOG.C_FELHASZNALOID = @FELHASZNALOID
AND T_JOGOSULTSAG.C_SZEREPKORTIPUS = @SZEREPKORTIPUS
UNION
-- OSZTÁLYFŐNÖK
SELECT DISTINCT 'Osztalyfonok'
FROM T_OSZTALY OSZT
WHERE OSZT.C_OSZTALYFONOKID = @FELHASZNALOID OR OSZT.C_OFOHELYETTESID = @FELHASZNALOID AND OSZT.TOROLT ='F'
-- ÉVFOLYAMFELELŐS
UNION
SELECT DISTINCT 'Evfolyamfelelos'
FROM T_OSZTALY OSZT
WHERE OSZT.C_OFOHELYETTESID = @FELHASZNALOID AND OSZT.TOROLT ='F'
-- CSOPORTVEZETŐ
UNION
SELECT DISTINCT 'CsoportVezeto'
FROM T_CSOPORT CSOP
WHERE CSOP.C_CSOPORTVEZETOID = @FELHASZNALOID AND CSOP.TOROLT = 'F'
-- SZUPEROSZTÁLYFŐNÖK (IGAZGATÓ, ÉVFOLYAMFELELŐS)
UNION
SELECT DISTINCT 'SzuperOsztalyfonok'
FROM T_MUNKAUGYIADATOK MUNKAUGY
WHERE MUNKAUGY.C_ALKALMAZOTTID = @FELHASZNALOID
AND MUNKAUGY.TOROLT='F'
AND MUNKAUGY.C_MUNKAKORTIPUSA IN (1762,1763) -- IGAZGATÓ VAGY IGAZGATÓ HELYETTES
UNION -- TANÁR
SELECT DISTINCT 'Tanar'
FROM T_TANARITANTARGY TT
WHERE TT.C_ALKALMAZOTTID = @FELHASZNALOID AND TT.TOROLT = 'F'
UNION
SELECT DISTINCT 'Tanar'
FROM T_FOGLALKOZAS FOGL
WHERE FOGL.C_TANARID = @FELHASZNALOID AND FOGL.TOROLT = 'F'
UNION
SELECT 'Tanulo'
FROM T_TANULO tt
WHERE ID= @FELHASZNALOID
SELECT t.JOG
FROM @TEMPJOGOK T
JOIN T_JOGOSULTSAG JOGOS ON JOGOS.C_JOG = T.JOG
WHERE JOGOS.C_SZEREPKORTIPUS = @SZEREPKORTIPUS
END
GO

View file

@ -0,0 +1,99 @@
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
IF OBJECT_ID('[dbo].[sp_GetFelhasznaloOsztalyCsoportTantargyakErtekelesekhez]') IS NOT NULL
BEGIN
DROP PROCEDURE [dbo].[sp_GetFelhasznaloOsztalyCsoportTantargyakErtekelesekhez]
END
GO
-- =============================================
-- Description: <Felhasználóhoz köthető osztály/csoport->tantárgy az értékelések szűréséhez>
-- =============================================
CREATE PROCEDURE [dbo].[sp_GetFelhasznaloOsztalyCsoportTantargyakErtekelesekhez]
@pTanarID INT,
@pTanevID INT
AS
BEGIN
-- SET NOCOUNT ON added to prevent extra result sets from
-- interfering with SELECT statements.
SET NOCOUNT ON;
SELECT
ID,
Nev,
'' Tipus
FROM
(
SELECT DISTINCT
CONVERT(VARCHAR(10), osztalyCsoport.ID) + '¤' + CONVERT(VARCHAR(10), tantargy.ID) ID,
osztalyCsoport.C_NEV + ' - ' + tantargy.C_Nev Nev,
'TTF' Tipus,
evfolyamTipus.C_ORDER EvfolyamTipusOrder
FROM
T_FOGLALKOZAS_OSSZES foglalkozas
LEFT JOIN T_OSZTALYCSOPORT_OSSZES osztalyCsoport
ON osztalyCsoport.ID = foglalkozas.C_OSZTALYCSOPORTID
LEFT JOIN T_TANTARGY_OSSZES tantargy
ON tantargy.ID = foglalkozas.C_TANTARGYID
LEFT JOIN T_FELHASZNALO_OSSZES felhasznalo
ON felhasznalo.ID = foglalkozas.C_TANARID
LEFT JOIN T_DICTIONARYITEMBASE_OSSZES evfolyamTipus
ON osztalyCsoport.C_EVFOLYAMTIPUSA = evfolyamTipus.ID AND osztalyCsoport.C_TANEVID = evfolyamTipus.C_TANEVID
WHERE
foglalkozas.TOROLT = 'F' AND
foglalkozas.C_TANEVID = @pTanevID AND
foglalkozas.C_TANARID = @pTanarID
UNION
SELECT DISTINCT
CONVERT(VARCHAR(10), osztalyCsoport.ID) + '¤' + CONVERT(VARCHAR(10), tantargy.ID) ID,
osztalyCsoport.C_NEV + ' - ' + tantargy.C_Nev Nev,
'Saját óra' Tipus,
evfolyamTipus.C_ORDER EvfolyamTipusOrder
FROM
T_TANITASIORA_OSSZES tanitasiOra
LEFT JOIN T_OSZTALYCSOPORT_OSSZES osztalyCsoport
ON osztalyCsoport.ID = tanitasiOra.C_OSZTALYCSOPORTID
LEFT JOIN T_TANTARGY_OSSZES tantargy
ON tantargy.ID = tanitasiOra.C_TANTARGYID
LEFT JOIN T_DICTIONARYITEMBASE_OSSZES evfolyamTipus
ON osztalyCsoport.C_EVFOLYAMTIPUSA = evfolyamTipus.ID AND osztalyCsoport.C_TANEVID = evfolyamTipus.C_TANEVID
WHERE
tanitasiOra.TOROLT = 'F' AND
tanitasiOra.C_TANEVID = @pTanevID AND
tanitasiOra.C_ORATULAJDONOSID = @pTanarID
UNION
SELECT DISTINCT
CONVERT(VARCHAR(10), osztalyCsoport.ID) + '¤' + CONVERT(VARCHAR(10), tantargy.ID) ID,
osztalyCsoport.C_NEV + ' - ' + tantargy.C_Nev Nev,
'Értékelt óra' Tipus,
evfolyamTipus.C_ORDER EvfolyamTipusOrder
FROM
T_TANULOERTEKELES_OSSZES ertekeles
LEFT JOIN T_OSZTALYCSOPORT_OSSZES osztalyCsoport
ON osztalyCsoport.ID = ertekeles.C_OSZTALYCSOPORTID
LEFT JOIN T_TANTARGY_OSSZES tantargy
ON tantargy.ID = ertekeles.C_TANTARGYID
LEFT JOIN T_DICTIONARYITEMBASE_OSSZES evfolyamTipus
ON osztalyCsoport.C_EVFOLYAMTIPUSA = evfolyamTipus.ID AND osztalyCsoport.C_TANEVID = evfolyamTipus.C_TANEVID
WHERE
ertekeles.TOROLT = 'F' AND
ertekeles.C_TANEVID = @pTanevID AND
ertekeles.C_ERTEKELOID = @pTanarID
) innerSelect
GROUP BY
ID, Nev, EvfolyamTipusOrder
ORDER BY
EvfolyamTipusOrder
END

View file

@ -0,0 +1,44 @@
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
IF OBJECT_ID('[dbo].[sp_GetFelhasznaloOsztalyaiByFoglalkozas]') IS NOT NULL
BEGIN
DROP PROCEDURE [dbo].[sp_GetFelhasznaloOsztalyaiByFoglalkozas]
END
GO
-- =============================================
-- Description: <Felhasználóhoz köthetõ osztályok foglalkozások alapján az értékelések szûréséhez>
-- =============================================
CREATE PROCEDURE [dbo].[sp_GetFelhasznaloOsztalyaiByFoglalkozas]
@felhasznaloId INT
AS
BEGIN
-- SET NOCOUNT ON added to prevent extra result sets from
-- interfering with SELECT statements.
SET NOCOUNT ON;
SELECT
osztalyCsoport.ID ID,
osztalyCsoport.C_NEV Nev,
'1' Tipus,
osztalyCsoport.C_EVFOLYAMTIPUSA Evfolyam
FROM
T_FOGLALKOZAS foglalkozas
LEFT JOIN T_OSZTALYCSOPORT osztalyCsoport
ON osztalyCsoport.ID = foglalkozas.C_OSZTALYCSOPORTID
LEFT JOIN T_TANTARGY tantargy
ON tantargy.ID = foglalkozas.C_TANTARGYID
LEFT JOIN T_FELHASZNALO felhasznalo
ON felhasznalo.ID = foglalkozas.C_TANARID
WHERE
foglalkozas.TOROLT = 'F' AND
foglalkozas.C_TANARID = @felhasznaloId
ORDER BY
Evfolyam
END

View file

@ -0,0 +1,98 @@
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
IF OBJECT_ID('[dbo].[sp_GetFogadooraInfo]') IS NOT NULL
BEGIN
DROP PROCEDURE [dbo].[sp_GetFogadooraInfo]
END
GO
CREATE PROCEDURE [dbo].[sp_GetFogadooraInfo]
@alkalmazottId INT,
@tanevId INT
AS
BEGIN
SET NOCOUNT ON;
--fejléc
SELECT
i.C_NEV as intezmeny
,m.C_NEV as mukodesihely
,d.C_NAME as oktatasiNevelesiFeladatTipus
,ISNULL(i.C_VAROS + ', ', '') + FORMAT(GETDATE(), 'yyyy. MMMM dd.', 'hu-hu') AS kelt
FROM T_INTEZMENYADATOK_OSSZES i
INNER JOIN T_MUKODESIHELY_OSSZES m ON i.C_INTEZMENYID = m.C_INTEZMENYID AND m.TOROLT = 'F'
INNER JOIN T_FELADATELLATASIHELY_OSSZES f ON m.ID = f.C_MUKODESIHELYID AND f.TOROLT = 'F' AND f.C_TANEVID = @tanevId
INNER JOIN T_DICTIONARYITEMBASE_OSSZES d ON d.id = f.C_OKTATASINEVELESIFELADATTIPUS AND d.C_TANEVID = @tanevId
WHERE
i.C_TANEVID = @tanevId
--tanulocsoport
SELECT DISTINCT
tn.ID as tanuloID
,tn.c_nyomtatasinev as TanuloNeve
FROM T_FOGLALKOZAS_OSSZES f
INNER JOIN T_TANTARGY_OSSZES t ON t.ID = f.C_TANTARGYID
INNER JOIN T_FELHASZNALO_OSSZES fh ON fh.id = f.C_TANARID
INNER JOIN T_OSZTALYCSOPORT_OSSZES ocs ON ocs.ID = f.C_OSZTALYCSOPORTID
LEFT JOIN T_CSOPORTOK_OSZTALYOK cso ON cso.C_CSOPORTOKID = ocs.ID
LEFT JOIN T_OSZTALYCSOPORT_OSSZES csocs ON csocs.ID = cso.C_OSZTALYOKID
INNER JOIN T_TANULOCSOPORT_OSSZES tcs ON tcs.C_OSZTALYCSOPORTID = ocs.ID AND tcs.TOROLT = 'F'
INNER JOIN T_FELHASZNALO_OSSZES tn ON tn.ID = tcs.C_TANULOID
WHERE
f.C_TANARID = @alkalmazottId
AND (tcs.C_KILEPESDATUM IS NULL OR tcs.C_KILEPESDATUM > GETDATE())
AND f.C_TANEVID=@TANEVID
AND f.TOROLT='F'
ORDER BY TanuloNeve
--tanuloinfo
SELECT e.ID, tn.ID as tanuloID, tn.C_NYOMTATASINEV as tanuloNev, FORMAT(e.C_ERTEKELESDATUM, 'd', 'hu-hu') as ertekelesDatuma,
dt.C_NAME as ertekelesTipusa, dm.C_NAME as ertekelesModja, e.C_ERTEKELESSZOVEG as feljegyzes,
fh.C_NYOMTATASINEV as tanarNev, do.C_NAME as osztalyzat, ocs.ID as csoportID, ocs.C_NEV as csoportNev,
t.id as tantargyID, t.C_NEV as tantargyNev
FROM T_TANULOERTEKELES_OSSZES e
INNER JOIN T_OSZTALYZATERTEKELES_OSSZES oe ON e.ID = oe.ID
INNER JOIN T_OSZTALYCSOPORT_OSSZES ocs ON ocs.ID = e.C_OSZTALYCSOPORTID
INNER JOIN T_FOGLALKOZAS_OSSZES f ON f.C_OSZTALYCSOPORTID = ocs.ID
INNER JOIN T_TANTARGY_OSSZES t ON t.ID = f.C_TANTARGYID and e.C_TANTARGYID = t.ID
INNER JOIN T_FELHASZNALO_OSSZES fh ON fh.id = f.C_TANARID
INNER JOIN T_TANULOCSOPORT_OSSZES tcs ON tcs.C_OSZTALYCSOPORTID = ocs.ID AND tcs.C_TANULOID = e.C_TANULOID AND tcs.TOROLT = 'F'
INNER JOIN T_FELHASZNALO_OSSZES tn ON tn.ID = tcs.C_TANULOID
INNER JOIN T_DICTIONARYITEMBASE_OSSZES dt ON dt.ID = e.C_ERTEKELESTIPUSA AND dt.C_TANEVID = @tanevId
INNER JOIN T_DICTIONARYITEMBASE_OSSZES dm ON (dm.ID = oe.C_ERTEKELESMODJA AND DM.C_INTEZMENYID = OE.C_ALINTEZMENYID AND DM.C_TANEVID = OE.C_ALTANEVID)
INNER JOIN T_DICTIONARYITEMBASE_OSSZES do ON (do.ID = e.C_OSZTALYZAT AND Do.C_INTEZMENYID = E.C_INTEZMENYID AND Do.C_TANEVID = E.C_TANEVID)
WHERE
f.C_TANARID = @alkalmazottId
AND (tcs.C_KILEPESDATUM IS NULL OR tcs.C_KILEPESDATUM > GETDATE())
AND e.C_TANEVID=@tanevId
AND e.TOROLT='F'
UNION ALL
SELECT e.ID, tn.ID as tanuloID, tn.C_NYOMTATASINEV as tanuloNev, FORMAT(e.C_ERTEKELESDATUM, 'd', 'hu-hu') as ertekelesDatuma,
dt.C_NAME as ertekelesTipusa, null as ertekelesModja, e.C_ERTEKELESSZOVEG as feljegyzes,
fh.C_NYOMTATASINEV as tanarNev, dm.C_NAME + ', ' + ds.C_NAME as osztalyzat, ocs.ID as csoportID, ocs.C_NEV as csoportNev,
t.id as tantargyID, t.C_NEV as tantargyNev
FROM T_TANULOERTEKELES_OSSZES e
INNER JOIN T_OSZTALYFONOKIERTEKELES_OSSZES oe ON e.ID = oe.ID
INNER JOIN T_OSZTALYCSOPORT_OSSZES ocs ON ocs.ID = e.C_OSZTALYCSOPORTID
INNER JOIN T_FOGLALKOZAS_OSSZES f ON f.C_OSZTALYCSOPORTID = ocs.ID
INNER JOIN T_TANTARGY_OSSZES t ON t.ID = f.C_TANTARGYID and e.C_TANTARGYID = t.ID
INNER JOIN T_FELHASZNALO_OSSZES fh ON fh.id = f.C_TANARID
INNER JOIN T_TANULOCSOPORT_OSSZES tcs ON tcs.C_OSZTALYCSOPORTID = ocs.ID AND tcs.C_TANULOID = e.C_TANULOID AND tcs.TOROLT = 'F'
INNER JOIN T_FELHASZNALO_OSSZES tn ON tn.ID = tcs.C_TANULOID
INNER JOIN T_DICTIONARYITEMBASE_OSSZES dt ON dt.ID = e.C_ERTEKELESTIPUSA AND dt.C_TANEVID = @tanevId
INNER JOIN T_DICTIONARYITEMBASE_OSSZES dm ON dm.ID = oe.C_MAGATARTAS AND dm.C_TANEVID = @tanevId
INNER JOIN T_DICTIONARYITEMBASE_OSSZES ds ON ds.ID = oe.C_SZORGALOM AND ds.C_TANEVID = @tanevId
WHERE
f.C_TANARID = @alkalmazottId
AND (tcs.C_KILEPESDATUM IS NULL OR tcs.C_KILEPESDATUM > GETDATE())
AND e.C_TANEVID=@TANEVID
AND e.TOROLT='F'
END
GO

View file

@ -0,0 +1,109 @@
-- =============================================
-- Author: <Hoffmann Zsolt>
-- Midifier: Telek Ákos
-- Create date: <2016. 07. 27.>
-- Description: <Haladási munkafüzet, tanmenet>
-- =============================================
IF OBJECT_ID('sp_GetHaladasiMunkafuzetTanmenet') IS NOT NULL BEGIN
DROP PROCEDURE sp_GetHaladasiMunkafuzetTanmenet
END
GO
CREATE PROCEDURE sp_GetHaladasiMunkafuzetTanmenet
@tanevID int,
@tanarID int
AS
BEGIN
SET NOCOUNT ON;
DECLARE
@foglalkozasID INT = 0
,@foglalkozasNev VARCHAR(255)
SELECT DISTINCT
f.ID
,ocs.C_NEV + ' - ' + tt.C_NEV AS Nev
,f.C_TANTARGYID
,f.C_OSZTALYCSOPORTID
,f.C_INTEZMENYID
INTO #Foglalkozasok
FROM T_FOGLALKOZAS_OSSZES f
INNER JOIN T_OSZTALYCSOPORT_OSSZES ocs on ocs.ID = f.C_OSZTALYCSOPORTID and ocs.TOROLT = 'F'
INNER JOIN T_TANTARGY_OSSZES tt on tt.ID = f.C_TANTARGYID
WHERE f.TOROLT = 'F'
AND f.C_TANEVID = @tanevID
AND f.C_TANARID = @tanarID
AND tt.TOROLT = 'F'
SELECT ID, Nev FROM #Foglalkozasok
DECLARE @sorszamTable TABLE (
tanitasiOraId int PRIMARY KEY
,evesOraszam int
,foglalkozasId int
)
INSERT INTO @sorszamTable (tanitasiOraId, evesOraszam, foglalkozasId)
SELECT s.Id, s.EvesSorszam, f.ID FROM #Foglalkozasok f
CROSS APPLY dbo.fnGetEvesOraszamLista(
f.C_TANTARGYID
,f.C_OSZTALYCSOPORTID
,@tanarID
,GETDATE()
,f.C_INTEZMENYID
,@tanevID
) s
DECLARE foglalkozasCursor CURSOR FOR
SELECT ID FROM #Foglalkozasok
OPEN foglalkozasCursor
FETCH NEXT FROM foglalkozasCursor into @foglalkozasId
WHILE @@FETCH_STATUS = 0 BEGIN
SELECT DISTINCT
tn.ID
,CASE
WHEN tn.C_MEGTARTOTT = 'T' then s.evesOraszam --tn.C_ORAEVESSORSZAM
ELSE '-'
END AS OraSorszam
,tn.C_TEMA Tema
,CASE
WHEN tn.C_HELYETTESITOTANARID is null then ''
ELSE 'H'
END AS Helyettesites
,tn.C_DATUM Datum
,tn.C_ORASZAM OraSzam
,tn.C_MEGJEGYZES Megjegyzes
,tn.C_HAZIFELADAT HaziFeladat
,tn.C_TULORA TulOra
,tn.C_TAMOPORA TamopOra
,tn.C_NEMSZAKRENDSZERUORA NemszakrendszeruOra
,tn.C_IKTTANORA IktOra
,tn.C_NEMZETISEGIORA NemzetisegiOra
,tn.C_MINDENNAPOSTESTNEVELES TestnevelesOra
,tn.C_IPRTANORA IprOra
,tn.C_DIFFERENCIALT DifferencialtOra
,tn.C_KOOPERATIV KooperativOra
,tn.C_MERES MeresOra
,tn.C_DRAMA DramaOra
,tn.C_PARHUZAMOSORA ParhuzamosOra
,tn.C_TIOP12 TiopOra
FROM T_TANITASIORA_OSSZES tn
LEFT JOIN @sorszamTable s ON s.tanitasiOraId = tn.ID
WHERE tn.TOROLT = 'F'
AND tn.C_TANEVID = @tanevID
AND tn.C_FOGLALKOZASID = @foglalkozasId
FETCH NEXT FROM foglalkozasCursor into @foglalkozasId
END
CLOSE foglalkozasCursor
DEALLOCATE foglalkozasCursor
DROP TABLE #Foglalkozasok
END;
GO

View file

@ -0,0 +1,114 @@
-- =============================================
-- Author: <Hoffmann Zsolt>
-- Create date: <2016. 07. 26.>
-- Description: <Haladási napló>
-- =============================================
IF OBJECT_ID('sp_GetHaladasiNaploAdatok') IS NOT NULL BEGIN
DROP PROCEDURE sp_GetHaladasiNaploAdatok
END
GO
CREATE PROCEDURE [dbo].[sp_GetHaladasiNaploAdatok]
@tanevID int,
@osztalyID int
AS
BEGIN
DECLARE @foglalkozasID INT = 0
DECLARE @foglalkozasNev VARCHAR(255)
SET NOCOUNT ON;
SELECT DISTINCT
f.id
,ocs.C_NEV + ' - ' + tt.C_NEV AS Nev
,f.C_TANTARGYID
,f.C_OSZTALYCSOPORTID
,f.C_INTEZMENYID
,f.C_TANARID AS C_TANARID
INTO #Foglalkozasok
FROM T_FOGLALKOZAS_OSSZES f
INNER JOIN T_OSZTALYCSOPORT_OSSZES OCS on OCS.ID = f.C_OSZTALYCSOPORTID and OCS.TOROLT = 'F'
LEFT JOIN T_CSOPORTOK_OSZTALYOK cso on cso.C_CSOPORTOKID = ocs.ID
INNER JOIN T_TANTARGY_OSSZES tt on tt.ID = f.C_TANTARGYID and tt.TOROLT = 'F'
WHERE f.TOROLT = 'F'
AND f.C_TANEVID = @tanevID
AND (ocs.ID = @osztalyID OR cso.C_OSZTALYOKID = @osztalyID)
SELECT
fog.ID
, Nev+' - '+felh.C_NYOMTATASINEV Nev
FROM #Foglalkozasok fog
INNER JOIN T_FELHASZNALO_OSSZES felh on fog.C_TANARID=felh.ID
DECLARE @sorszamTable TABLE (
tanitasiOraId int-- PRIMARY KEY
,evesOraszam int
,foglalkozasId int
)
INSERT INTO @sorszamTable (tanitasiOraId, evesOraszam, foglalkozasId)
SELECT s.Id, s.EvesSorszam, f.ID FROM #Foglalkozasok f
CROSS APPLY dbo.fnGetEvesOraszamLista(
f.C_TANTARGYID
,f.C_OSZTALYCSOPORTID
,f.C_TANARID
,GETDATE()
,f.C_INTEZMENYID
,@tanevID
) s
DECLARE foglalkozasCursor CURSOR FOR
SELECT ID FROM #Foglalkozasok
OPEN foglalkozasCursor
FETCH NEXT FROM foglalkozasCursor into @foglalkozasId
WHILE @@FETCH_STATUS = 0 BEGIN
SELECT DISTINCT
CASE
WHEN tn.C_MEGTARTOTT = 'T' THEN s.evesOraszam -- tn.C_ORAEVESSORSZAM
ELSE '-'
END AS OraSorszam
,fh.C_NYOMTATASINEV TanarNev
,tn.C_TEMA Tema
,CASE
WHEN tn.C_HELYETTESITOTANARID IS NULL THEN ''
ELSE 'H'
END AS Helyettesites
,FORMAT(tn.C_DATUM, 'yyyy.MM.dd.') Datum
,tn.C_ORASZAM OraSzam
,tn.C_MEGJEGYZES Megjegyzes
,tn.C_HAZIFELADAT HaziFeladat
,tn.C_TULORA TulOra
,tn.C_TAMOPORA TamopOra
,tn.C_NEMSZAKRENDSZERUORA NemszakrendszeruOra
,tn.C_IKTTANORA IktOra
,tn.C_NEMZETISEGIORA NemzetisegiOra
,tn.C_MINDENNAPOSTESTNEVELES TestnevelesOra
,tn.C_IPRTANORA IprOra
,tn.C_DIFFERENCIALT DifferencialtOra
,tn.C_KOOPERATIV KooperativOra
,tn.C_MERES MeresOra
,tn.C_DRAMA DramaOra
,tn.C_PARHUZAMOSORA ParhuzamosOra
,tn.C_TIOP12 TiopOra
FROM T_TANITASIORA_OSSZES tn
INNER JOIN T_ORAK_TANAROK ot ON ot.C_ORAKID = tn.ID
INNER JOIN T_FELHASZNALO fh ON fh.ID = ot.C_TANAROKID
LEFT JOIN @sorszamTable s ON s.tanitasiOraId = tn.ID
WHERE tn.TOROLT = 'F'
AND tn.C_TANEVID = @tanevID
AND tn.C_FOGLALKOZASID = @foglalkozasID
ORDER BY FORMAT(tn.C_DATUM, 'yyyy.MM.dd.')
FETCH NEXT FROM foglalkozasCursor
INTO @foglalkozasId
END
CLOSE foglalkozasCursor
DEALLOCATE foglalkozasCursor
DROP TABLE #Foglalkozasok
END
GO

View file

@ -0,0 +1,200 @@
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
IF OBJECT_ID('dbo.sp_GetHelyettesitesekOrarend') IS NOT NULL BEGIN
DROP PROCEDURE dbo.sp_GetHelyettesitesekOrarend
END
GO
CREATE PROCEDURE [dbo].[sp_GetHelyettesitesekOrarend]
@IntezmenyId int,
@TanevId int,
@IdoszakKezdete datetime,
@IdoszakVege datetime,
@TanarId int,
@CsakOrarendiOrak bit
AS
BEGIN
SET NOCOUNT ON;
DECLARE @KezdoHet int = DATEPART( ISO_WEEK, @IdoszakKezdete);
DECLARE @ZaroHet int = DATEPART( ISO_WEEK, @IdoszakVege);
SELECT Distinct
Datum,
ISNULL(TanevHetirend, NapHetirend) Hetirend,
ISNULL(TanevHetNapja, NapHetNapja) HetNapja,
OsztalyCsoportId
INTO #TEMPORARENDINAPOK
FROM (
SELECT
NAPTARINAP.Datum Datum,
NAPTARINAP.NapHetirend,
NAPTARINAP.NapHetNapja,
NAPTARINAP.TanevHetirend,
NAPTARINAP.TanevHetNapja,
NAPTARINAP.OsztalyCsoportId
FROM (
(
SELECT
C_NAPDATUMA Datum,
C_HETIREND NapHetirend,
IIF(C_HETNAPJA = 1407, dbo.fnGetHetNapja(C_NAPDATUMA), C_HETNAPJA) NapHetNapja,
null TanevHetirend,
null TanevHetNapja,
null OsztalyCsoportId
FROM T_NAPTARINAP_OSSZES
WHERE (TOROLT = 'F' AND C_NAPDATUMA >= @IdoszakKezdete AND C_NAPDATUMA < @IdoszakVege AND C_INTEZMENYID = @IntezmenyId AND C_TANEVID=@TanevId)
)
union
(
SELECT
NAPTARINAP.C_NAPDATUMA Datum,
NAPTARINAP.C_HETIREND NapHetirend,
IIF(NAPTARINAP.C_HETNAPJA = 1407, dbo.fnGetHetNapja(C_NAPDATUMA), NAPTARINAP.C_HETNAPJA) NapHetNapja,
tanevRendHetirend.C_HETIREND TanevHetirend,
tanevRendHetirend.C_HETNAPJA TanevHetNapja,
tanevRendHetirend.C_OSZTALYCSOPORTID OsztalyCsoportId
FROM T_NAPTARINAP_OSSZES NAPTARINAP
inner JOIN (
SELECT
C_DATUM,
C_HETIREND,
T_OSZTALYCSOPORT_TANEVRENDJE.C_OSZTALYCSOPORTID,
IIF(C_HETNAPJA = 1407, dbo.fnGetHetNapja(C_DATUM), C_HETNAPJA) AS C_HETNAPJA
from T_TANEVRENDJE_OSSZES
inner Join T_OSZTALYCSOPORT_TANEVRENDJE on T_OSZTALYCSOPORT_TANEVRENDJE.C_TANEVRENDJEID = T_TANEVRENDJE_OSSZES.ID
WHERE TOROLT = 'F' AND C_INTEZMENYID = @IntezmenyId AND C_TANEVID=@TanevId And TOROLT = 'F') tanevRendHetirend on tanevRendHetirend.C_DATUM = NAPTARINAP.C_NAPDATUMA
WHERE (TOROLT = 'F' AND NAPTARINAP.C_NAPDATUMA >= @IdoszakKezdete AND NAPTARINAP.C_NAPDATUMA < @IdoszakVege AND C_INTEZMENYID = @IntezmenyId AND C_TANEVID=@TanevId)
)
) NAPTARINAP
) result
DECLARE @VegzosUtolsoTanitasiNap_spGetOrarend DATETIME;
SELECT
@VegzosUtolsoTanitasiNap_spGetOrarend = C_DATUM
FROM
T_TANEVRENDJE
WHERE
TOROLT = 'F'
AND C_TANEVID = (SELECT ID FROM T_TANEV WHERE TOROLT = 'F' AND C_AKTIV = 'T' AND C_INTEZMENYID = @IntezmenyId)
AND C_NAPTIPUSA = 1402 AND C_INTEZMENYID = @IntezmenyId AND C_TANEVID=@TanevId
/*Tanítási órák*/
SELECT
TANITASIORA.ID Id,
TANITASIORA.C_ORARENDIORAID ORARENDIID,
TANITASIORA.C_BONTOTT Bontott,
(SELECT T_NAPTARINAP.C_HETIREND FROM T_NAPTARINAP WHERE T_NAPTARINAP.ID = TANITASIORA.C_NAPTARINAPID) Hetirend,
TANITASIORA.C_HETNAPJA HetNapja,
'' ErvenyessegKezdete,
'' ErvenyessegVege,
TANITASIORA.C_ORAKEZDETE OraKezdete,
TANITASIORA.C_ORAVEGE OraVege,
TANITASIORA.C_ORASZAM Oraszam,
ISNULL(TARGY.C_ROVIDNEV, TARGY.C_NEV) TargyNev,
TANITASIORA.C_MEGTARTOTT Megtartott,
TANITASIORA.C_CSENGETESIRENDORAID CsengetesiRendOraID,
OSZTALY.C_NEV OsztalyNev,
CAST(null AS int) TanevRendOsztalyCsoportId,
TANAR.C_NYOMTATASINEV TanarNev,
TEREM.C_NEV TeremNev,
'TanitasiOra' OraTipus,
''Hianyzas,
'' Keses,
TANITASIORA.C_HELYETTESITOTANARID HelyettesitoTanarID,
TANAR.ID TanarID,
TANITASIORA.C_ADMINALTALKIIRT AdminAltalKiirt
INTO #TEMPORAK
FROM T_TANITASIORA TANITASIORA
LEFT JOIN T_TANTARGY TARGY ON (TARGY.ID = TANITASIORA.C_TANTARGYID AND TARGY.C_INTEZMENYID = @IntezmenyId AND TARGY.C_TANEVID=@TanevId)
LEFT JOIN T_ORAK_TANAROK ON TANITASIORA.ID = T_ORAK_TANAROK.C_ORAKID
LEFT JOIN T_FELHASZNALO TANAR ON T_ORAK_TANAROK.C_TANAROKID = TANAR.ID
LEFT JOIN T_OSZTALYCSOPORT OSZTALY ON (TANITASIORA.C_OSZTALYCSOPORTID = OSZTALY.ID AND OSZTALY.C_INTEZMENYID = @IntezmenyId AND OSZTALY.C_TANEVID=@TanevId)
LEFT JOIN T_TEREM TEREM ON (TEREM.id = TANITASIORA.C_TEREMID AND TEREM.C_INTEZMENYID = @IntezmenyId AND TEREM.C_TANEVID=@TanevId)
WHERE
@CsakOrarendiOrak = 0 AND TANITASIORA.TOROLT='F' AND TANITASIORA.C_INTEZMENYID = @IntezmenyId AND TANITASIORA.C_TANEVID=@TanevId
AND TANITASIORA.C_CSENGETESIRENDORAID IS NOT NULL
AND (TANITASIORA.C_ORAKEZDETE >= @IdoszakKezdete
AND TANITASIORA.C_ORAVEGE <= (CASE WHEN OSZTALY.C_VEGZOSEVFOLYAM = 'T' AND @VegzosUtolsoTanitasiNap_spGetOrarend IS NOT NULL AND @IdoszakVege > @VegzosUtolsoTanitasiNap_spGetOrarend THEN @VegzosUtolsoTanitasiNap_spGetOrarend ELSE @IdoszakVege END))
AND (@TanarId IS NULL OR ( TANITASIORA.C_HELYETTESITOTANARID = @TanarId OR TANITASIORA.C_ORATULAJDONOSID = @TanarId OR T_ORAK_TANAROK.C_TANAROKID = @TanarId))
/*Órarendi órák*/
INSERT INTO #TEMPORAK
SELECT DISTINCT
OrarendiOrak.Id, ORARENDIID, Bontott, Hetirend, HetNapja, ErvenyessegKezdete, ErvenyessegVege, OraKezdete, OraVege,
Oraszam, TargyNev, Megtartott, CsengetesiRendOraID, OsztalyNev, TanevRendOsztalyCsoportId,TanarNev, TeremNev, OraTipus, Hianyzas, Keses,
T_HELYETTESITESIIDOSZAK.C_HELYETTESTANAROKID HelyettesitoTanarID, TanarID,AdminAltalKiirt
FROM (
SELECT
T_ORARENDIORA.ID Id,
T_ORARENDIORA.ID ORARENDIID,
T_ORARENDIORA.C_BONTOTT Bontott,
T_ORARENDIORA.C_HETIREND Hetirend,
T_ORARENDIORA.C_HETNAPJA HetNapja,
T_ORARENDIORA.C_ORAERVENYESSEGKEZDETE ErvenyessegKezdete,
T_ORARENDIORA.C_ORAERVENYESSEGVEGE ErvenyessegVege,
DATEADD(HOUR, DATEPART(HOUR, T_ORARENDIORA.C_ORAKEZDETE), DATEADD(MINUTE, DATEPART(MINUTE, T_ORARENDIORA.C_ORAKEZDETE), ORARENDINAPOK.DATUM)) OraKezdete,
DATEADD(HOUR, DATEPART(HOUR, T_ORARENDIORA.C_ORAVEGE), DATEADD(MINUTE, DATEPART(MINUTE, T_ORARENDIORA.C_ORAVEGE), ORARENDINAPOK.DATUM)) OraVege,
T_ORARENDIORA.C_ORASZAM Oraszam,
ISNULL(TARGY.C_ROVIDNEV, TARGY.C_NEV) TargyNev,
'F' Megtartott,
T_ORARENDIORA.C_CSENGETESIRENDORAID CsengetesiRendOraID,
OSZTALY.C_NEV OsztalyNev,
ORARENDINAPOK.OsztalyCsoportId TanevRendOsztalyCsoportId,
TANAR.C_NYOMTATASINEV TanarNev,
TEREM.C_NEV TeremNev,
'OrarendiOra' OraTipus,
'F' Hianyzas,
'F' Keses,
TANAR.ID TanarID,
'F' AdminAltalKiirt
FROM
T_ORARENDIORA
INNER JOIN T_FOGLALKOZAS ON (T_FOGLALKOZAS.ID= T_ORARENDIORA.C_FOGLALKOZASID AND T_FOGLALKOZAS.C_INTEZMENYID = @IntezmenyId AND T_FOGLALKOZAS.C_TANEVID=@TanevId)
INNER JOIN T_NAPTARINAP NAPTAR ON (( T_ORARENDIORA.C_HETIREND = 1554 OR NAPTAR.C_HETIREND = T_ORARENDIORA.C_HETIREND ) AND NAPTAR.C_HETNAPJA = T_ORARENDIORA.C_HETNAPJA AND NAPTAR.C_INTEZMENYID = @IntezmenyId AND NAPTAR.C_TANEVID=@TanevId)
INNER JOIN #TEMPORARENDINAPOK ORARENDINAPOK ON (( T_ORARENDIORA.C_HETIREND = 1554 OR ORARENDINAPOK.HETIREND = T_ORARENDIORA.C_HETIREND ) AND ORARENDINAPOK.HETNAPJA = T_ORARENDIORA.C_HETNAPJA And (T_ORARENDIORA.C_OSZTALYCSOPORTID = ORARENDINAPOK.OsztalyCsoportId or ORARENDINAPOK.OsztalyCsoportId is null) )
LEFT JOIN T_TANTARGY TARGY ON (TARGY.ID= T_FOGLALKOZAS.C_TANTARGYID AND TARGY.TOROLT = 'F' AND TARGY.C_INTEZMENYID = @IntezmenyId AND TARGY.C_TANEVID=@TanevId)
LEFT JOIN T_FELHASZNALO TANAR ON T_FOGLALKOZAS.C_TANAROKID = TANAR.ID AND TANAR.TOROLT= 'F'
LEFT JOIN T_OSZTALYCSOPORT OSZTALY ON (T_FOGLALKOZAS.C_OSZTALYCSOPORTID = OSZTALY.ID AND OSZTALY.C_INTEZMENYID = @IntezmenyId AND OSZTALY.C_TANEVID=@TanevId)
LEFT JOIN T_TEREM TEREM ON (TEREM.id = T_ORARENDIORA.C_TEREMID AND TEREM.C_INTEZMENYID = @IntezmenyId AND TEREM.C_TANEVID=@TanevId)
WHERE
T_ORARENDIORA.TOROLT='F'
AND T_ORARENDIORA.C_CSENGETESIRENDORAID IS NOT NULL
AND T_ORARENDIORA.C_INTEZMENYID = @IntezmenyId AND T_ORARENDIORA.C_TANEVID=@TanevId
AND T_ORARENDIORA.C_ORAERVENYESSEGVEGE >= @IdoszakKezdete AND T_ORARENDIORA.C_ORAERVENYESSEGKEZDETE <= (CASE WHEN OSZTALY.C_VEGZOSEVFOLYAM = 'T' AND @VegzosUtolsoTanitasiNap_spGetOrarend IS NOT NULL AND @IdoszakVege > @VegzosUtolsoTanitasiNap_spGetOrarend THEN @VegzosUtolsoTanitasiNap_spGetOrarend ELSE @IdoszakVege END)
AND NAPTAR.C_NAPDATUMA BETWEEN @IdoszakKezdete AND (CASE WHEN OSZTALY.C_VEGZOSEVFOLYAM = 'T' AND @VegzosUtolsoTanitasiNap_spGetOrarend IS NOT NULL AND @IdoszakVege > @VegzosUtolsoTanitasiNap_spGetOrarend THEN @VegzosUtolsoTanitasiNap_spGetOrarend ELSE @IdoszakVege END)
--AND NAPTAR.C_NAPDATUMA BETWEEN CAST(T_ORARENDIORA.C_ORAERVENYESSEGKEZDETE AS DATE) AND CAST(T_ORARENDIORA.C_ORAERVENYESSEGVEGE AS DATE)
AND (
(NAPTAR.C_NAPDATUMA >= T_ORARENDIORA.C_ORAERVENYESSEGKEZDETE AND NAPTAR.C_NAPDATUMA < T_ORARENDIORA.C_ORAERVENYESSEGVEGE)
OR
(NAPTAR.C_NAPDATUMA = T_ORARENDIORA.C_ORAERVENYESSEGKEZDETE AND NAPTAR.C_NAPDATUMA = T_ORARENDIORA.C_ORAERVENYESSEGVEGE)
)
) OrarendiOrak
LEFT JOIN T_HELYETTESITESIIDOSZAK ON (OrarendiOrak.ID = T_HELYETTESITESIIDOSZAK.C_HELYETTESITETTORARENDID And T_HELYETTESITESIIDOSZAK.C_HETSORSZAMA >= @KezdoHet AND (T_HELYETTESITESIIDOSZAK.C_HETSORSZAMA <= @ZaroHet)
) WHERE (@TanarId IS NULL OR OrarendiOrak.TanarID = @TanarId OR T_HELYETTESITESIIDOSZAK.C_HELYETTESTANAROKID = @TanarId)
AND NOT EXISTS (
SELECT 1 FROM #TEMPORAK TANORAK WHERE TANORAK.ORARENDIID = OrarendiOrak.ID AND DATEDIFF(DAY, TANORAK.OraKezdete, OrarendiOrak.OraKezdete) = 0 AND DATEDIFF(DAY, TANORAK.OraVege, OrarendiOrak.OraVege) = 0
)
--SELECT * FROM #TEMPORAK order by orakezdete
SELECT t.*, hi.ID as HelyettesitesId, f.C_NYOMTATASINEV as HelyettesitoTanarNev FROM #TEMPORAK t
LEFT JOIN T_HELYETTESITESIIDOSZAK hi ON hi.C_HELYETTESITETTORARENDID = t.ORARENDIID AND DATEDIFF(DAY, t.OraKezdete, hi.C_HELYETTESITESNAPJA) = 0
LEFT JOIN T_FELHASZNALO f ON f.ID = hi.C_HELYETTESTANAROKID
ORDER BY t.orakezdete
DROP TABLE #TEMPORAK
DROP TABLE #TEMPORARENDINAPOK
END

View file

@ -0,0 +1,50 @@
GO
/****** Object: StoredProcedure [dbo].[sp_GetJelenletiIvAdatok] Script Date: 2016.01.27. 11:15:53 ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
IF OBJECT_ID('dbo.sp_GetJelenletiIvAdatok') IS NOT NULL BEGIN
DROP PROCEDURE dbo.sp_GetJelenletiIvAdatok
END
GO
CREATE PROCEDURE [dbo].[sp_GetJelenletiIvAdatok]
@foglalkozasId int,
@TanevId int
AS
BEGIN
SET NOCOUNT ON;
--Fejléc
select
T_FOGLALKOZAS_OSSZES.ID,
T_OSZTALYCSOPORT_OSSZES.C_NEV OsztCsopNev,
T_TANTARGY_OSSZES.C_NEV TargyNev,
T_FELHASZNALO_OSSZES.C_NYOMTATASINEV TanarNev,
T_INTEZMENYADATOK_OSSZES.C_NEV Intezmeny
from T_FOGLALKOZAS_OSSZES
left join T_OSZTALYCSOPORT_OSSZES on T_OSZTALYCSOPORT_OSSZES.ID = T_FOGLALKOZAS_OSSZES.C_OSZTALYCSOPORTID and T_OSZTALYCSOPORT_OSSZES.TOROLT = 'F'
left join T_TANTARGY_OSSZES on T_TANTARGY_OSSZES.ID = T_FOGLALKOZAS_OSSZES.C_TANTARGYID and T_TANTARGY_OSSZES.TOROLT = 'F'
left join T_INTEZMENYADATOK_OSSZES on T_INTEZMENYADATOK_OSSZES.C_INTEZMENYID = T_FOGLALKOZAS_OSSZES.C_INTEZMENYID and T_INTEZMENYADATOK_OSSZES.C_TANEVID = T_FOGLALKOZAS_OSSZES.C_TANEVID and T_INTEZMENYADATOK_OSSZES.TOROLT = 'F'
left join T_FELHASZNALO_OSSZES ON T_FELHASZNALO_OSSZES.ID = T_FOGLALKOZAS_OSSZES.C_TANARID and T_FELHASZNALO_OSSZES.TOROLT = 'F'
where T_FOGLALKOZAS_OSSZES.TOROLT = 'F'
and T_FOGLALKOZAS_OSSZES.ID = @foglalkozasId
and T_FOGLALKOZAS_OSSZES.C_TANEVID = @TanevId
select distinct
T_FELHASZNALO_OSSZES.ID,
T_FELHASZNALO_OSSZES.C_OKTATASIAZONOSITO OMID,
T_FELHASZNALO_OSSZES.C_NYOMTATASINEV TanuloNev
from T_TANULO_OSSZES
left join T_FELHASZNALO_OSSZES on T_FELHASZNALO_OSSZES.ID = T_TANULO_OSSZES.ID and T_FELHASZNALO_OSSZES.TOROLT = 'F'
left join (select C_TANULOID,C_OSZTALYCSOPORTID from T_TANULOCSOPORT_OSSZES
where TOROLT = 'F' and C_BELEPESDATUM < GETDATE() and (C_KILEPESDATUM is null or C_KILEPESDATUM > GETDATE())) TCS on TCS.C_TANULOID = T_TANULO_OSSZES.ID
left join T_FOGLALKOZAS_OSSZES on T_FOGLALKOZAS_OSSZES.C_OSZTALYCSOPORTID = TCS.C_OSZTALYCSOPORTID and T_FOGLALKOZAS_OSSZES.TOROLT = 'F'
where T_TANULO_OSSZES.TOROLT = 'F'
and T_FOGLALKOZAS_OSSZES.ID = @foglalkozasId
and T_FOGLALKOZAS_OSSZES.C_TANEVID = @TanevId
order by T_FELHASZNALO_OSSZES.C_NYOMTATASINEV
END

View file

@ -0,0 +1,339 @@
IF OBJECT_ID('[DBO].[sp_GetNapkozisNaplo]') IS NOT NULL BEGIN
DROP PROCEDURE [DBO].[sp_GetNapkozisNaplo]
END
GO
CREATE PROCEDURE [DBO].[sp_GetNapkozisNaplo]
@tanevId INT
,@intezmenyId INT
,@csoportId INT
,@iskolaErdekuSzamit BIT
AS
BEGIN
SET NOCOUNT ON;
--Tanulók adatai, elérhetőségei
DECLARE @tanulok table (
Id int, Nev nvarchar(max), Osztaly nvarchar(max), Sorszam nvarchar(max), Torzslapszam nvarchar(max), Allampolgarsaga nvarchar(max), DiakIg nvarchar(max),
SzulHely nvarchar(max), SzulIdo nvarchar(max), Anyja nvarchar(max), Taj nvarchar(max), OktAzon nvarchar(max), Kilepes nvarchar(max), Kepzes nvarchar(max),
TanuloCimTipus nvarchar(max), TanuloCim nvarchar(max), TanuloEmail nvarchar(max), szoc nvarchar(max)
)
INSERT INTO @tanulok
SELECT DISTINCT
t.id Id
,iif(tcs.c_kilepesdatum is not null,f.c_nyomtatasinev+' (kilépett)', f.c_nyomtatasinev) as Nev
,dbo.fnGetDokumentumTanuloAktualisOsztaly(t.Id) as Osztaly
,t.c_naplosorszam as Sorszam
,t.c_beirasinaplosorszam as Torzslapszam
,Allampolgarsaga.Allampolgarsaga as Allampolgarsag
,t.c_diakigazolvanyszam as DiakIg
,f.c_szuletesihely as SzulHely
,FORMAT(f.c_szuletesidatum, 'yyyy.MM.dd.') as SzulIdo
,f.c_anyjaneve as Anyja
,f.c_tajszam as Taj
,f.c_oktatasiazonosito as OktAzon
,FORMAT(tcs.c_kilepesdatum, 'yyyy.MM.dd.') as Kilepes
,tt.c_nev as Kepzes
,cim.Tipus
,cim.cim
,email.c_emailcim as TanuloEmail
,IIF(t.C_MAGANTANULO = 'T', 'Magántanuló (eü. ok), ', '') +
IIF(t.C_JOGVISZONYATSZUNETELTETO = 'T', 'Jogviszony szüneteltetve, ', '') +
IIF(t.C_SZAKMAIGYAKORLATON = 'T', 'Szakmai gyakorlat, ', '') +
IIF(t.C_SZOCIALISTAMOGATAS = 'T', 'Szociális támogatás, ', '') AS szoc
FROM T_TANULOCSOPORT_OSSZES tcs
INNER JOIN T_FELHASZNALO_OSSZES f ON f.id=tcs.c_tanuloid AND f.torolt='F'
INNER JOIN T_TANULO_OSSZES t ON t.ID = f.ID
INNER JOIN T_TANTERV_OSSZES tt ON tt.ID = t.C_TANTERVID AND tt.TOROLT = 'F' AND tt.C_TANEVID = @tanevId
INNER JOIN (SELECT distinct d.id Id, d.c_name Allampolgarsaga FROM T_DICTIONARYITEMBASE_OSSZES d) Allampolgarsaga ON Allampolgarsaga.Id=f.c_allampolgarsaga
INNER JOIN (
SELECT f.id Tanulo, dt.c_name Tipus, c.c_iranyitoszam+', '+c.c_varos+' '+c.c_kozterulet+' '+dj.c_name+' '+c.c_hazszam as Cim
FROM t_cim c
INNER JOIN (SELECT distinct d.id, d.c_name FROM t_dictionaryitembase_osszes d )dt ON dt.id=c.c_cimtipusa
INNER JOIN t_felhasznalo_osszes f ON f.id=c.c_felhasznaloid
INNER JOIN (SELECT distinct d.id, d.c_name FROM t_dictionaryitembase_osszes d)dj ON dj.id=c.c_kozteruletjellege
WHERE c.c_cimtipusa=907 AND c.c_gondviseloid is null AND c.torolt='F' AND c.c_intezmenyid=@intezmenyid)cim ON cim.Tanulo=tcs.c_tanuloid
LEFT JOIN T_TELEFON_OSSZES tel ON tel.c_felhasznaloid=f.id AND tel.c_gondviseloid is null AND tel.torolt='F' AND tel.c_alapertelmezett='T'
LEFT JOIN T_EMAIL_OSSZES email ON email.c_felhasznaloid=tcs.c_tanuloid AND email.c_gondviseloid is null AND email.torolt='F' AND email.c_alapertelmezett='T'
WHERE tcs.c_osztalycsoportid=@csoportId AND tcs.c_tanevid=@tanevid AND tcs.torolt='F'
--Kezdőoldal
SELECT ia.c_nev as IntezmenyNev, dbo.fnGetDokumentumIntezmenyCime(@tanevId) as IntezmenyCim, ia.c_omkod as OMKOD, ia.c_igazgatoneve as IntezmenyVezeto, ocs.c_nev NapkozisCsoport, iif(len(ocs.c_nev)>17, SUBSTRING (ocs.c_nev, 1 , 17)+'...', ocs.c_nev) RovidNev,
isnull(f.c_nyomtatasinev,'-') as CsoportVezeto, isnull(cs.c_csoportnaploleiras,'-') as CsoportNaploLeiras, FORMAT(cs.c_csoportnaplomegnyitasa, 'yyyy.MM.dd.') as Megnyitas,
isnull(FORMAT(cs.c_csoportnaplozarasa, 'yyyy.MM.dd.'),'-') as Lezaras
FROM T_INTEZMENY_OSSZES i
INNER JOIN T_INTEZMENYADATOK_OSSZES ia ON ia.c_intezmenyid = i.id
INNER JOIN T_OSZTALYCSOPORT_OSSZES ocs ON ocs.c_intezmenyid=i.id AND ocs.c_tanevid = @tanevid AND ocs.id = @csoportId
INNER JOIN T_CSOPORT_OSSZES cs ON cs.id = ocs.id
LEFT JOIN T_FELHASZNALO_OSSZES f ON f.id = cs.c_csoportvezetoid
WHERE i.id = @intezmenyid
AND ia.c_tanevid = @tanevid
--Csoportot vezette
SELECT isnull(f.c_nyomtatasinev,'-') as CsoportVezeto FROM T_CSOPORT_OSSZES cs
LEFT JOIN T_FELHASZNALO_OSSZES f ON f.id=cs.c_csoportvezetoid
WHERE cs.id=@csoportId AND cs.c_altanevid=@tanevid AND cs.c_alintezmenyid=@intezmenyid
--Tanulók
SELECT DISTINCT Nev, Osztaly, OktAzon
FROM @tanulok
ORDER BY Nev
--Naplóhetek
DECLARE @elsonap as date
DECLARE @utolsonap as date
IF (
SELECT c_osztalycsoportid FROM T_OSZTALYCSOPORT_TANEVRENDJE otr
INNER JOIN t_tanevrendje_osszes tr ON tr.id=otr.c_tanevrendjeid AND tr.c_naptipusa=1394
WHERE c_osztalycsoportid=@csoportid
) IS NULL begin
SET @elsonap= (SELECT top 1 c_datum FROM t_tanevrendje_osszes tr WHERE c_naptipusa=1394 AND c_tanevid=@tanevId AND c_intezmenyid=@intezmenyId AND torolt='F' AND c_osszescsoportravonatkozik='T')
END
ELSE BEGIN
SET @elsonap = (
SELECT top 1 tr.C_DATUM
FROM T_OSZTALYCSOPORT_TANEVRENDJE otr
INNER JOIN t_tanevrendje_osszes tr ON tr.id=otr.c_tanevrendjeid AND tr.c_naptipusa=1394
WHERE c_osztalycsoportid=@csoportid)
END
IF (
SELECT c_osztalycsoportid
FROM T_OSZTALYCSOPORT_TANEVRENDJE otr
INNER JOIN t_tanevrendje_osszes tr ON tr.id=otr.c_tanevrendjeid AND tr.c_naptipusa=1395
WHERE c_osztalycsoportid=@csoportId
) IS NULL
BEGIN
SET @utolsonap = (SELECT top 1 c_datum FROM t_tanevrendje_osszes tr WHERE c_naptipusa=1395 AND c_tanevid=@tanevId AND c_intezmenyid=@intezmenyId AND torolt='F' AND c_osszescsoportravonatkozik='T')
END
ELSE BEGIN
SET @utolsonap = (
SELECT top 1 tr.C_DATUM
FROM T_OSZTALYCSOPORT_TANEVRENDJE otr
INNER JOIN t_tanevrendje_osszes tr ON tr.id=otr.c_tanevrendjeid AND tr.c_naptipusa=1395
WHERE c_osztalycsoportid=@csoportId)
END
SELECT
nn.C_HETSORSZAMA Het
,FORMAT(MIN(nn.C_NAPDATUMA), 'yyyy.MM.dd.') HetEleje
,FORMAT(MAX(nn.C_NAPDATUMA), 'yyyy.MM.dd.') HetVege
FROM T_NAPTARINAP_OSSZES nn
WHERE
nn.C_NAPDATUMA BETWEEN @ElsoNap AND @UtolsoNap
AND nn.C_HETNAPJA BETWEEN 1407 AND 1413
AND nn.TOROLT='F'
AND nn.c_tanevId = @tanevId
GROUP BY nn.C_HETSORSZAMA
ORDER BY MIN(nn.C_NAPDATUMA)
--Tanuló adatok
SELECT * FROM @tanulok ORDER BY Nev
--Mulasztások
DECLARE @Mulasztasok TABLE ( IgazoltE nvarchar(1), Tanulo int, Tipus int)
DECLARE @FelevVege DATE = (SELECT TOP 1 C_DATUM FROM T_TANEVRENDJE_OSSZES tr WHERE C_NAPTIPUSA = 1400 AND C_TANEVID=@tanevId AND TOROLT = 'F')
SELECT
DATEPART(MONTH,tao.C_DATUM) Honap
,tm.ID Id
,C_IGAZOLT IgazoltE
,tm.C_ORATANULOIID TanuloId
,C_IGAZOLASTIPUSA IgazolasTipus
,C_DATUM Datum
,C_TIPUS Tipus
,C_KESESPERCBEN KesesPercben
INTO #mulasztasTmp
FROM T_TANULOMULASZTAS_OSSZES tm
INNER JOIN T_TANITASIORA_OSSZES tao ON tao.ID = tm.C_TANITASIORAKID
INNER JOIN @tanulok tanulok ON tanulok.ID = tm.C_ORATANULOIID
INNER JOIN T_TANULOCSOPORT_OSSZES tcs ON tcs.C_OSZTALYCSOPORTID = tao.C_OSZTALYCSOPORTID and tanulok.ID = tcs.C_TANULOID
WHERE
tm.TOROLT = 'F'
AND (@iskolaErdekuSzamit = 1 OR (C_IGAZOLASTIPUSA <> 1533 OR C_IGAZOLASTIPUSA IS NULL))
AND tcs.C_BELEPESDATUM <= tao.C_DATUM
AND (tcs.C_KILEPESDATUM IS NULL OR tcs.C_KILEPESDATUM >= tao.C_DATUM)
INSERT INTO @Mulasztasok
SELECT 'T', ID, Tipus FROM @tanulok
CROSS JOIN (SELECT DISTINCT Id FROM T_DICTIONARYITEMBASE_OSSZES WHERE C_TANEVID = @tanevId AND C_TYPE LIKE 'igazolastipus' AND (@iskolaErdekuSzamit = 1 OR Id <> 1533) ) Tipus (Tipus)
--hiányzás
--Összes
SELECT s.id tanuloId, cast('mulasztás' as nvarchar(100)) tipus,
isnull(ni.[9],0) '09.', isnull(ni.[10],0) '10.', isnull(ni.[11],0) '11.', isnull(ni.[12],0) '12.',
isnull(ni.[1],0) '01.', isnull(ni.[2],0) '02.', isnull(ni.[3],0) '03.', isnull(ni.[4],0) '04.', isnull(ni.[5],0) '05.', isnull(ni.[6],0) '06.',
isnull(Felev,0) 'felev', [9]+[10]+[11]+[12]+[1]+[2]+[3]+[4]+[5]+[6] 'osszesen', 1 Rendez
INTO #MulasztasVegleges
FROM @tanulok s
LEFT JOIN (SELECT * FROM (SELECT Id, TanuloId, Honap FROM #mulasztasTmp WHERE Tipus = 1500) a PIVOT (COUNT(ID) FOR Honap IN ([9], [10], [11], [12], [1], [2], [3], [4], [5], [6]))piv )ni on ni.TanuloId=s.Id
LEFT JOIN (SELECT COUNT(Id) Felev, TanuloId FROM #mulasztasTmp WHERE Tipus = 1500 AND Datum <= @FelevVege GROUP BY TanuloId) felev on felev.TanuloId=s.id
--igazolt
INSERT INTO #MulasztasVegleges
SELECT s.id, 'igazolt',
isnull(ni.[9],0) '09.', isnull(ni.[10],0) '10.', isnull(ni.[11],0) '11.', isnull(ni.[12],0) '12.',
isnull(ni.[1],0) '01.', isnull(ni.[2],0) '02.', isnull(ni.[3],0) '03.', isnull(ni.[4],0) '04.', isnull(ni.[5],0) '05.', isnull(ni.[6],0) '06.',
isnull(Felev,0) 'felev', [9]+[10]+[11]+[12]+[1]+[2]+[3]+[4]+[5]+[6] 'osszesen', 2 Rendez
FROM @tanulok s
LEFT JOIN (SELECT * FROM (SELECT Id, Honap, TanuloId, IgazoltE, Tipus FROM #mulasztasTmp) a PIVOT (COUNT(ID) FOR Honap IN ([9], [10], [11], [12], [1], [2], [3], [4], [5], [6]))piv WHERE IgazoltE = 'T' AND Tipus = 1500 )ni on ni.TanuloId=s.Id
LEFT JOIN (SELECT COUNT(Id) Felev, TanuloId FROM #mulasztasTmp WHERE IgazoltE = 'T' AND Tipus = 1500 AND Datum <= @FelevVege GROUP BY TanuloId) felev on felev.TanuloId=s.id
--igazolatlan
INSERT INTO #MulasztasVegleges
SELECT s.id, 'igazolatlan',
isnull(ni.[9],0) '09.', isnull(ni.[10],0) '10.', isnull(ni.[11],0) '11.', isnull(ni.[12],0) '12.',
isnull(ni.[1],0) '01.', isnull(ni.[2],0) '02.', isnull(ni.[3],0) '03.', isnull(ni.[4],0) '04.', isnull(ni.[5],0) '05.', isnull(ni.[6],0) '06.',
isnull(Felev,0) 'felev', [9]+[10]+[11]+[12]+[1]+[2]+[3]+[4]+[5]+[6] 'osszesen', 4999 Rendez
FROM @tanulok s
LEFT JOIN (SELECT * FROM (SELECT Id, Honap, TanuloId, IgazoltE, Tipus FROM #mulasztasTmp) a PIVOT (COUNT(ID) FOR Honap IN ([9], [10], [11], [12], [1], [2], [3], [4], [5], [6]))piv WHERE IgazoltE = 'F' AND Tipus = 1500 )ni on ni.TanuloId=s.Id
LEFT JOIN (SELECT COUNT(Id) Felev, TanuloId FROM #mulasztasTmp WHERE IgazoltE = 'F' AND Tipus = 1500 AND Datum <= @FelevVege GROUP BY TanuloId, IgazolasTipus) felev on felev.TanuloId=s.id
--KÉSÉS
INSERT INTO #MulasztasVegleges
SELECT s.ID, 'késés (p)',
isnull(ni.[9],0) '09.', isnull(ni.[10],0) '10.', isnull(ni.[11],0) '11.', isnull(ni.[12],0) '12.',
isnull(ni.[1],0) '01.', isnull(ni.[2],0) '02.', isnull(ni.[3],0) '03.', isnull(ni.[4],0) '04.', isnull(ni.[5],0) '05.', isnull(ni.[6],0) '06.',
isnull(Felev,0) 'felev',
isnull(ni.[9],0)+isnull(ni.[10],0)+isnull(ni.[11],0)+isnull(ni.[12],0)+ isnull(ni.[1],0)+
isnull(ni.[2],0)+isnull(ni.[3],0)+isnull(ni.[4],0)+isnull(ni.[5],0)+isnull(ni.[6],0)
'osszesen', 5000 Rendez
FROM @tanulok s
LEFT JOIN (SELECT * FROM (SELECT KesesPercben, Honap, TanuloId FROM #mulasztasTmp WHERE Tipus = 1499) a PIVOT (SUM(KesesPercben) FOR Honap IN ([9], [10], [11], [12], [1], [2], [3], [4], [5], [6]))piv)ni on ni.TanuloId=s.Id
LEFT JOIN (SELECT SUM(KesesPercben) Felev, TanuloId FROM #mulasztasTmp WHERE Tipus = 1499 AND Datum <= @FelevVege GROUP BY TanuloId) felev on felev.TanuloId=s.id
--igazolt
INSERT INTO #MulasztasVegleges
select s.id, '* igazolt (p)',
isnull(ni.[9],0) '09.', isnull(ni.[10],0) '10.', isnull(ni.[11],0) '11.', isnull(ni.[12],0) '12.',
isnull(ni.[1],0) '01.', isnull(ni.[2],0) '02.', isnull(ni.[3],0) '03.', isnull(ni.[4],0) '04.', isnull(ni.[5],0) '05.', isnull(ni.[6],0) '06.',
isnull(Felev,0) 'felev',
isnull(ni.[9],0)+isnull(ni.[10],0)+isnull(ni.[11],0)+isnull(ni.[12],0)+ isnull(ni.[1],0)+
isnull(ni.[2],0)+isnull(ni.[3],0)+isnull(ni.[4],0)+isnull(ni.[5],0)+isnull(ni.[6],0)'osszesen', 5001 Rendez
FROM @tanulok s
LEFT JOIN (SELECT * FROM (SELECT KesesPercben, Honap, TanuloId, IgazoltE, Tipus FROM #mulasztasTmp) a PIVOT (SUM(KesesPercben) FOR Honap IN ([9], [10], [11], [12], [1], [2], [3], [4], [5], [6]))piv WHERE IgazoltE = 'T' AND Tipus = 1499)ni on ni.TanuloId=s.Id
LEFT JOIN (SELECT SUM(KesesPercben) Felev, TanuloId FROM #mulasztasTmp WHERE IgazoltE = 'T' AND Tipus = 1499 AND Datum <= @FelevVege GROUP BY TanuloId) felev on felev.TanuloId=s.id
--igazolatlan
INSERT INTO #MulasztasVegleges
SELECT s.id, '* igazolatlan (p)',
isnull(ni.[9],0) '09.', isnull(ni.[10],0) '10.', isnull(ni.[11],0) '11.', isnull(ni.[12],0) '12.',
isnull(ni.[1],0) '01.', isnull(ni.[2],0) '02.', isnull(ni.[3],0) '03.', isnull(ni.[4],0) '04.', isnull(ni.[5],0) '05.', isnull(ni.[6],0) '06.',
isnull(Felev,0) 'felev',
isnull(ni.[9],0)+isnull(ni.[10],0)+isnull(ni.[11],0)+isnull(ni.[12],0)+ isnull(ni.[1],0)+
isnull(ni.[2],0)+isnull(ni.[3],0)+isnull(ni.[4],0)+isnull(ni.[5],0)+isnull(ni.[6],0) 'osszesen', 5002 Rendez
from @tanulok s
LEFT JOIN (SELECT * FROM (SELECT KesesPercben, Honap, TanuloId, IgazoltE, Tipus FROM #mulasztasTmp) a PIVOT (SUM(KesesPercben) FOR Honap IN ([9], [10], [11], [12], [1], [2], [3], [4], [5], [6]))piv WHERE IgazoltE = 'F' AND Tipus = 1499)ni on ni.TanuloId=s.Id
LEFT JOIN (SELECT SUM(KesesPercben) Felev, TanuloId FROM #mulasztasTmp WHERE IgazoltE = 'F' AND Tipus = 1499 AND Datum <= @FelevVege GROUP BY TanuloId) felev on felev.TanuloId=s.id
SELECT DISTINCT Mulasztas.tanuloid, Mulasztas.tipus, Mulasztas.[09.] sz, Mulasztas.[10.] o, Mulasztas.[11.] n, Mulasztas.[12.] d,
Mulasztas.[01.] j, Mulasztas.[02.] f, Mulasztas.[03.] m, Mulasztas.[04.] a, Mulasztas.[05.] ma, Mulasztas.[06.] jun,
mulasztas.felev felev, ISNULL(Mulasztas.osszesen,0) Osszesen, mulasztas.Rendez
FROM #MulasztasVegleges Mulasztas
ORDER BY Rendez
--Napló
SELECT distinct nn.c_hetsorszama as Het, d.Nap as Nap, FORMAT(nn.c_napdatuma, 'yyyy. MMMM dd.', 'hu-hu') as Datum FROM T_NAPTARINAP_OSSZES nn
LEFT JOIN T_TANITASIORA_OSSZES tao ON tao.c_datum=nn.c_napdatuma AND tao.c_osztalycsoportid=@csoportid AND tao.torolt='F'
LEFT JOIN (SELECT distinct d.id as ID, d.c_name Nap FROM T_DICTIONARYITEMBASE_OSSZES d) d ON d.id=nn.c_hetnapja
LEFT JOIN T_FOGLALKOZAS_OSSZES fog ON fog.id=tao.c_foglalkozasid AND fog.c_tanevid=@tanevid
LEFT JOIN T_FELHASZNALO_OSSZES f ON f.id=fog.c_tanarid AND f.torolt='F'
WHERE nn.c_napdatuma>=@elsonap AND nn.c_napdatuma<=@utolsonap
ORDER BY nn.c_hetsorszama,FORMAT(nn.c_napdatuma, 'yyyy. MMMM dd.', 'hu-hu')
--Napló adatok
SELECT DISTINCT
tao.C_ORASZAM Oraszam
,tao.C_HETSORSZAMA Het
,FORMAT(tao.C_DATUM, 'yyyy. MMMM dd.', 'hu-hu') Datum
,tao.C_DATUM
,f.C_NYOMTATASINEV Tanar
,tao.C_TEMA Tema
,ROW_NUMBER() OVER (ORDER BY tao.C_ORAKEZDETE) OraSorszam
,C_ORAKEZDETE
FROM T_TANITASIORA_OSSZES tao
LEFT JOIN T_FOGLALKOZAS_OSSZES fog ON fog.id = tao.C_FOGLALKOZASID AND fog.TOROLT = 'F'
LEFT JOIN T_FELHASZNALO_OSSZES f ON f.id = fog.C_TANARID AND f.TOROLT = 'F'
WHERE
tao.C_OSZTALYCSOPORTID = @csoportid
AND tao.TOROLT = 'F'
ORDER BY tao.C_ORAKEZDETE, tao.C_ORASZAM
--Napló mulasztás
SELECT C_HETSORSZAMA Het, C_NYOMTATASINEV Tanulo,
MAX([1]) AS [Hetfo], MAX([2]) AS [Kedd], MAX([3]) AS [Szerda],
MAX([4]) AS [Csutortok], MAX([5]) AS [Pentek], MAX([6]) AS [Szombat]
FROM (
SELECT C_HETSORSZAMA, C_NYOMTATASINEV, [0], [1], [2], [3], [4], [5], [6]
FROM (
SELECT DISTINCT n.C_NAPTARINAPID, DATEPART(dw,n.C_DATUM) AS NAP, t.C_NYOMTATASINEV, n.C_HETSORSZAMA,
'[' + STUFF((
SELECT ', ' + CAST(o.C_ORASZAM AS VARCHAR(3)) + IIF(tm.C_TIPUS = 1499, '(k)','')
FROM T_TANULOMULASZTAS_OSSZES tm
INNER JOIN T_TANITASIORA_OSSZES o ON o.ID = tm.C_TANITASIORAKID
WHERE n.C_NAPTARINAPID = o.C_NAPTARINAPID
AND m.C_ORATANULOIID = tm.C_ORATANULOIID
AND tm.C_TANEVID = @tanevId
and tm.torolt='F' and tm.c_intezmenyId=@intezmenyId and o.c_tanevId=@tanevId
and o.C_OSZTALYCSOPORTID = @csoportId
and o.TOROLT = 'F'
ORDER BY o.C_NAPTARINAPID, o.C_ORASZAM
FOR XML PATH(''), TYPE).value('.', 'varchar(max)'),1,2,'') + '] ' + CAST(SUM(IIF(m.C_IGAZOLT = 'T', 1, 0)) AS varchar(2)) + '/' + CAST(SUM(IIF(m.C_IGAZOLT = 'F', 1, 0)) AS varchar(2)) AS hianyzas
FROM T_TANITASIORA_OSSZES n
INNER JOIN T_TANULOMULASZTAS_OSSZES m ON m.C_TANITASIORAKID = n.ID and m.torolt='F'
INNER JOIN T_FELHASZNALO_OSSZES t ON t.ID = m.C_ORATANULOIID
WHERE
n.C_TANEVID = @tanevId
AND m.C_TANEVID = @tanevId
AND (@iskolaErdekuSzamit = 1 OR C_IGAZOLASTIPUSA <> 1533)
and n.C_OSZTALYCSOPORTID = @csoportId
and n.TOROLT = 'F'
GROUP BY n.C_NAPTARINAPID, C_ORATANULOIID, C_NYOMTATASINEV, n.C_HETSORSZAMA, n.C_DATUM) AS SUB
PIVOT
(
MAX(HIANYZAS)
FOR NAP IN ([0], [1], [2], [3], [4], [5], [6])
) AS PivotTable
) AS ASD
GROUP BY C_HETSORSZAMA, C_NYOMTATASINEV
ORDER BY C_HETSORSZAMA
--Tanuló feljegyzései
SELECT
tte.C_TANULOID AS Tanulo
,FORMAT(tao.c_datum, 'yyyy.MM.dd.') AS Idopont
,d.C_NAME AS Tipus
,te.C_TARTALOM AS Feljegyzes
,f.C_NYOMTATASINEV AS Feljegyzo
FROM T_TANULO_TANULOESEMENY tte
INNER JOIN T_TANULOESEMENY_OSSZES te ON te.Id = tte.C_TANULOESEMENYID
INNER JOIN T_TANITASIORA_OSSZES tao ON tao.Id = te.C_TANITASIORAID
INNER JOIN T_FELHASZNALO_OSSZES f ON f.Id = te.C_FELJEGYZOID
INNER JOIN T_DICTIONARYITEMBASE_OSSZES d ON d.Id = te.C_TIPUS
WHERE
C_OSZTALYCSOPORTID = @csoportId
AND te.TOROLT = 'F'
AND C_TIPUS <> 1534
--Tanuló gondviselői
SELECT 'Gondviselő ('+Rokonsag.Rokonsag+'):' as Fejlec, tcs.c_tanuloid Tanulo, g.c_nev Gondviselo, gcim.Tipus Tipus,gcim.Cim as Cim, gtel.c_telefonszam Telefon, gemail.C_EMAILCIM Email
FROM T_TANULOCSOPORT_OSSZES tcs
INNER JOIN T_GONDVISELO_OSSZES g ON g.c_tanuloid=tcs.c_tanuloid AND g.torolt='F'
LEFT JOIN (
SELECT g.id Gondviselo, dt.c_name Tipus, c.c_iranyitoszam+', '+c.c_varos+' '+c.c_kozterulet+' '+dj.c_name+' '+c.c_hazszam as Cim
FROM T_CIM_OSSZES c
INNER JOIN (SELECT distinct d.id, d.c_name FROM T_DICTIONARYITEMBASE_OSSZES d )dt ON dt.id=c.c_cimtipusa
INNER JOIN t_gondviselo_osszes g ON g.id=c.c_gondviseloid AND g.torolt='F'
INNER JOIN (SELECT distinct d.id, d.c_name FROM T_DICTIONARYITEMBASE_OSSZES d )dj ON dj.id=c.c_kozteruletjellege
)gcim ON gcim.Gondviselo=g.id
LEFT JOIN T_TELEFON_OSSZES gtel ON gtel.c_gondviseloid=g.id AND gtel.torolt='F'
LEFT JOIN T_EMAIL_OSSZES gemail ON gemail.c_gondviseloid=g.id AND gemail.torolt='F'
LEFT JOIN (SELECT distinct d.id Id, d.c_name Rokonsag FROM T_DICTIONARYITEMBASE_OSSZES d) Rokonsag ON Rokonsag.Id=g.c_rokonsagfoka
WHERE tcs.c_osztalycsoportid=@csoportId AND tcs.c_tanevid=@tanevid AND tcs.torolt='F'
END
GO

View file

@ -0,0 +1,149 @@
GO
/****** Object: StoredProcedure [dbo].[sp_GetNaploEllenorzes] Script Date: 2016.03.29. 10:44:59 ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
IF OBJECT_ID('[DBO].[sp_GetNaploEllenorzes]') IS NOT NULL BEGIN
DROP PROCEDURE [DBO].[sp_GetNaploEllenorzes]
END
GO
-- =============================================
-- Author: Kelemen Attila
-- Create date: 2016.03.21.
-- Description: Naplóellenőrzés összegzése
-- =============================================
CREATE PROCEDURE [dbo].[sp_GetNaploEllenorzes]
@osztalyId int
AS
BEGIN
-- SET NOCOUNT ON added to prevent extra result sets from
-- interfering with SELECT statements.
SET NOCOUNT ON;
select
'' Osszegzes,
Eszrevetelek.EV,
Eszrevetelek.HetSzama ID,
count(1) NemNaplozottOrakSzama,
(case when T_NAPLOELLENORZES.ID IS NULL then 'F' else 'T' end) Ellenorizve,
T_NAPLOELLENORZES.ID EllenorzesID,
Ellenorzo.C_NYOMTATASINEV EllenorzoSzemely,
T_NAPLOELLENORZES.C_ELLENORZESDATUMA EllenorzesDatum,
T_NAPLOELLENORZES.C_ESZREVETEL Eszrevetel,
Eszrevetelek.OsztalyID
from (
select KapcsolodoCsoportok.OsztalyID osztalyID,
KapcsolodoCsoportok.OsztalyNev OsztalyNev,
naptar.C_HETSORSZAMA HetSzama,
YEAR(naptar.c_napdatuma) EV
from T_ORARENDIORA
inner join T_FOGLALKOZAS on T_FOGLALKOZAS.ID= T_ORARENDIORA.C_FOGLALKOZASID
left join T_TANTARGY on T_TANTARGY.ID= T_FOGLALKOZAS.C_TANTARGYID
inner join T_NAPTARINAP naptar on (( CONVERT(date,naptar.C_NAPDATUMA) BETWEEN CONVERT(date,T_ORARENDIORA.C_ORAERVENYESSEGKEZDETE) AND CONVERT(date,T_ORARENDIORA.C_ORAERVENYESSEGVEGE))
AND (naptar.C_HETIREND = T_ORARENDIORA.C_HETIREND OR T_ORARENDIORA.C_HETIREND = 1554
AND naptar.C_HETNAPJA = T_ORARENDIORA.C_HETNAPJA) )
left join T_TANITASIORA ON (T_TANITASIORA.C_ORARENDIORAID = T_ORARENDIORA.ID AND
T_TANITASIORA.TOROLT='F' AND
naptar.C_NAPDATUMA = T_TANITASIORA.C_DATUM)
left join (select T_OSZTALYCSOPORT.ID OsztalyID,
T_OSZTALYCSOPORT.C_NEV OsztalyNev,
kcs.CsoportID
from T_OSZTALYCSOPORT
--Az osztályhoz kapcsolódó csoportok óráit is listázzuk
left join (Select OsztalyID,
OsztalyNev,
CsoportID
from (select C_OSZTALYCSOPORTID OsztalyID,
T_OSZTALYCSOPORT.C_NEV OsztalyNev,
C_TANULOID TanuloID
from T_TANULOCSOPORT
INNER JOIN T_OSZTALY on T_TANULOCSOPORT.C_OSZTALYCSOPORTID = T_OSZTALY.ID
INNER JOIN T_OSZTALYCSOPORT on T_OSZTALY.ID = T_OSZTALYCSOPORT.ID
where T_TANULOCSOPORT.TOROLT='F'
and T_TANULOCSOPORT.C_BELEPESDATUM < GETDATE()
and (T_TANULOCSOPORT.C_KILEPESDATUM is null or T_TANULOCSOPORT.C_KILEPESDATUM >= GETDATE())) OsztalyTanuloi
inner join
(select T_CSOPORT.ID CsoportID,
C_TANULOID TanuloID
from T_TANULOCSOPORT
inner join T_CSOPORT on T_TANULOCSOPORT.ID=T_CSOPORT.ID
where T_CSOPORT.TOROLT='F'
and T_TANULOCSOPORT.TOROLT='F'
and T_TANULOCSOPORT.C_BELEPESDATUM < GETDATE()
and (T_TANULOCSOPORT.C_KILEPESDATUM is null or T_TANULOCSOPORT.C_KILEPESDATUM >= GETDATE())) Csoportok
on OsztalyTanuloi.TanuloID = Csoportok.TanuloID) kcs
on kcs.OsztalyID = T_OSZTALYCSOPORT.ID
where T_OSZTALYCSOPORt.TOROLT = 'F') KapcsolodoCsoportok
on KapcsolodoCsoportok.OsztalyID = @osztalyId
and KapcsolodoCsoportok.OsztalyID = T_FOGLALKOZAS.C_OSZTALYCSOPORTID
where
T_ORARENDIORA.TOROLT='F'
and naptar.TOROLT = 'F'
and T_FOGLALKOZAS.TOROLT='F'
and GETDATE() >= naptar.C_NAPDATUMA
and T_TANITASIORA.ID IS NULL
and KapcsolodoCsoportok.OsztalyID = @osztalyId
union all
select KapcsolodoCsoportok.OsztalyID osztalyID,
KapcsolodoCsoportok.OsztalyNev OsztalyNev,
naptar.C_HETSORSZAMA HetSzama,
YEAR(naptar.c_napdatuma) EV
from T_TANITASIORA
inner join T_FOGLALKOZAS on T_FOGLALKOZAS.ID= T_TANITASIORA.C_FOGLALKOZASID
inner join T_NAPTARINAP naptar on T_TANITASIORA.C_DATUM = naptar.C_NAPDATUMA
left join (select T_OSZTALYCSOPORT.ID OsztalyID,
T_OSZTALYCSOPORT.C_NEV OsztalyNev,
kcs.CsoportID
from T_OSZTALYCSOPORT
left join (Select OsztalyID,
OsztalyNev,
CsoportID
from
(select C_OSZTALYCSOPORTID OsztalyID,
T_OSZTALYCSOPORT.C_NEV OsztalyNev,
C_TANULOID TanuloID
from T_TANULOCSOPORT
inner join T_OSZTALY on T_TANULOCSOPORT.C_OSZTALYCSOPORTID = T_OSZTALY.ID
inner join T_OSZTALYCSOPORT on T_OSZTALY.ID = T_OSZTALYCSOPORT.ID
where T_TANULOCSOPORT.TOROLT='F'
and T_TANULOCSOPORT.C_BELEPESDATUM < GETDATE()
and (T_TANULOCSOPORT.C_KILEPESDATUM is null or T_TANULOCSOPORT.C_KILEPESDATUM >= GETDATE())) OsztalyTanuloi
inner join
(select T_CSOPORT.ID CsoportID,
C_TANULOID TanuloID
from T_TANULOCSOPORT
inner join T_CSOPORT on T_TANULOCSOPORT.ID=T_CSOPORT.ID
where T_CSOPORT.TOROLT='F'
and T_TANULOCSOPORT.TOROLT='F'
and T_TANULOCSOPORT.C_BELEPESDATUM < GETDATE()
and (T_TANULOCSOPORT.C_KILEPESDATUM is null or T_TANULOCSOPORT.C_KILEPESDATUM >= GETDATE())
) Csoportok on OsztalyTanuloi.TanuloID = Csoportok.TanuloID) kcs
on kcs.OsztalyID = T_OSZTALYCSOPORT.ID
where T_OSZTALYCSOPORt.TOROLT = 'F')
KapcsolodoCsoportok on
KapcsolodoCsoportok.OsztalyID = @osztalyId
and KapcsolodoCsoportok.OsztalyID = T_FOGLALKOZAS.C_OSZTALYCSOPORTID
where T_TANITASIORA.C_ORARENDIORAID is null
and T_TANITASIORA.C_MEGTARTOTT is null
and KapcsolodoCsoportok.OsztalyID = @osztalyId
) Eszrevetelek
left join T_NAPLOELLENORZES on ( T_NAPLOELLENORZES.C_OSZTALYID = @osztalyId
AND T_NAPLOELLENORZES.C_HETSORSZAMA = Eszrevetelek.HetSzama
AND T_NAPLOELLENORZES.TOROLT = 'F')
left join T_FELHASZNALO Ellenorzo on Ellenorzo.ID = T_NAPLOELLENORZES.C_ELLENORZOSZEMELYID
group by Eszrevetelek.EV,
Eszrevetelek.HetSzama,
T_NAPLOELLENORZES.ID,
Ellenorzo.C_NYOMTATASINEV,
T_NAPLOELLENORZES.C_ELLENORZESDATUMA,
T_NAPLOELLENORZES.C_ESZREVETEL,
T_NAPLOELLENORZES.C_OSZTALYID,
Eszrevetelek.OsztalyID
order by EV desc, Eszrevetelek.HetSzama desc
END

View file

@ -0,0 +1,125 @@
GO
/****** Object: StoredProcedure [dbo].[sp_GetNaploEllenorzesTetelek] Script Date: 2016.03.29. 9:17:20 ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
IF OBJECT_ID('[DBO].[sp_GetNaploEllenorzesTetelek]') IS NOT NULL BEGIN
DROP PROCEDURE [DBO].[sp_GetNaploEllenorzesTetelek]
END
GO
-- =============================================
-- Author: Kelemen Attila
-- Create date: 2016.03.21.
-- Description: Naplóellenőrzés tételei
-- =============================================
CREATE PROCEDURE [dbo].[sp_GetNaploEllenorzesTetelek]
@osztalyId int,
@hetSorszam int
AS
BEGIN
-- SET NOCOUNT ON added to prevent extra result sets from
-- interfering with SELECT statements.
SET NOCOUNT ON;
select * from
(
--Órarendi órák, amikhez nem tartozik tanóra
select T_ORARENDIORA.ID Id,
naptar.C_HETSORSZAMA HetSzama,
naptar.C_NAPDATUMA Datum,
naptar.C_HETNAPJA Hetnapja,
T_ORARENDIORA.C_ORASZAM Oraszam,
osztaly.C_NEV OsztalyNev,
T_TANTARGY.C_NEV TargyNev,
--Ha van helyettesítő, akkor annak a nevére van szükségünk
(select top 1 tanar.C_NYOMTATASINEV from T_FELHASZNALO tanar
where ((T_TANITASIORA.C_HELYETTESITOTANARID IS null and T_FOGLALKOZAS.C_TANARID = tanar.ID)
OR (T_TANITASIORA.C_HELYETTESITOTANARID IS not null and T_TANITASIORA.C_HELYETTESITOTANARID= tanar.ID))) TanarNev
FROM
T_ORARENDIORA
inner join T_FOGLALKOZAS on T_FOGLALKOZAS.ID= T_ORARENDIORA.C_FOGLALKOZASID AND T_FOGLALKOZAS.TOROLT='F'
left join T_TANTARGY on T_TANTARGY.ID= T_FOGLALKOZAS.C_TANTARGYID
inner join T_NAPTARINAP naptar on (( CONVERT(date,naptar.C_NAPDATUMA) BETWEEN CONVERT(date,T_ORARENDIORA.C_ORAERVENYESSEGKEZDETE) AND CONVERT(date,T_ORARENDIORA.C_ORAERVENYESSEGVEGE))
AND
(naptar.C_HETIREND = T_ORARENDIORA.C_HETIREND OR T_ORARENDIORA.C_HETIREND = 1554
AND naptar.C_HETNAPJA = T_ORARENDIORA.C_HETNAPJA) )
LEFT JOIN T_TANITASIORA ON (T_TANITASIORA.C_ORARENDIORAID = T_ORARENDIORA.ID AND T_TANITASIORA.TOROLT='F' AND naptar.C_NAPDATUMA = T_TANITASIORA.C_DATUM
--AND T_TANITASIORA.C_MEGTARTOTT IS NULL
)
inner join T_OSZTALYCSOPORT osztaly on T_FOGLALKOZAS.C_OSZTALYCSOPORTID = osztaly.ID AND osztaly.TOROLT='F'
--Az osztályhoz kapcsolódó csoportok óráit is listázzuk
left join (Select OsztalyID, CsoportID from
(select C_OSZTALYCSOPORTID OsztalyID, C_TANULOID TanuloID from T_TANULOCSOPORT INNER JOIN T_OSZTALY ON T_TANULOCSOPORT.C_OSZTALYCSOPORTID = T_OSZTALY.ID
WHERE T_TANULOCSOPORT.TOROLT='F'
and T_TANULOCSOPORT.C_BELEPESDATUM < GETDATE()
and (T_TANULOCSOPORT.C_KILEPESDATUM is null or T_TANULOCSOPORT.C_KILEPESDATUM >= GETDATE())) OsztalyTanuloi
INNER JOIN
(SELECT T_CSOPORT.ID CsoportID, C_TANULOID TanuloID FROM T_TANULOCSOPORT
INNER JOIN T_CSOPORT ON T_TANULOCSOPORT.ID=T_CSOPORT.ID
WHERE T_CSOPORT.TOROLT='F'
AND T_TANULOCSOPORT.TOROLT='F'
and T_TANULOCSOPORT.C_BELEPESDATUM < GETDATE()
and (T_TANULOCSOPORT.C_KILEPESDATUM is null or T_TANULOCSOPORT.C_KILEPESDATUM >= GETDATE())
) Csoportok ON OsztalyTanuloi.TanuloID = Csoportok.TanuloID) KapcsolodoCsoportok ON
KapcsolodoCsoportok.OsztalyID = @osztalyId
where T_ORARENDIORA.TOROLT='F'
AND naptar.TOROLT = 'F'
AND GETDATE() >= naptar.C_NAPDATUMA
AND T_TANITASIORA.ID IS NULL
AND (osztaly.ID = @osztalyId OR osztaly.ID = KapcsolodoCsoportok.CsoportID)
and naptar.C_HETSORSZAMA = @hetSorszam
UNION ALL
--Tanítási órák, amikhez nem tartozik órarendi óra
select T_TANITASIORA.ID Id,
naptar.C_HETSORSZAMA HetSzama,
naptar.C_NAPDATUMA Datum,
naptar.C_HETNAPJA Hetnapja,
T_TANITASIORA.C_ORASZAM Oraszam,
osztaly.C_NEV OsztalyNev,
T_TANTARGY.C_NEV TargyNev,
tanar.C_NYOMTATASINEV TanarNev
from T_TANITASIORA
inner join T_NAPTARINAP naptar on (T_TANITASIORA.C_DATUM = naptar.C_NAPDATUMA)
inner join T_FOGLALKOZAS on T_FOGLALKOZAS.ID= T_TANITASIORA.C_FOGLALKOZASID
left join T_OSZTALYCSOPORT osztaly on T_FOGLALKOZAS.C_OSZTALYCSOPORTID = osztaly.ID
left join T_TANTARGY on T_TANTARGY.ID= T_FOGLALKOZAS.C_TANTARGYID
left join T_FELHASZNALO tanar on
--Ha van helyettesítő, akkor aszerint joinolunk
(case when T_TANITASIORA.C_HELYETTESITOTANARID IS not null then T_TANITASIORA.C_HELYETTESITOTANARID
else T_FOGLALKOZAS.C_TANARID end) = tanar.ID
left join (Select OsztalyID, CsoportID from
(select C_OSZTALYCSOPORTID OsztalyID, C_TANULOID TanuloID from T_TANULOCSOPORT INNER JOIN T_OSZTALY ON T_TANULOCSOPORT.C_OSZTALYCSOPORTID = T_OSZTALY.ID
WHERE T_TANULOCSOPORT.TOROLT='F'
and T_TANULOCSOPORT.C_BELEPESDATUM < GETDATE()
and (T_TANULOCSOPORT.C_KILEPESDATUM is null or T_TANULOCSOPORT.C_KILEPESDATUM >= GETDATE())) OsztalyTanuloi
INNER JOIN
(SELECT T_CSOPORT.ID CsoportID, C_TANULOID TanuloID FROM T_TANULOCSOPORT
INNER JOIN T_CSOPORT ON T_TANULOCSOPORT.ID=T_CSOPORT.ID
WHERE T_CSOPORT.TOROLT='F'
AND T_TANULOCSOPORT.TOROLT='F'
and T_TANULOCSOPORT.C_BELEPESDATUM < GETDATE()
and (T_TANULOCSOPORT.C_KILEPESDATUM is null or T_TANULOCSOPORT.C_KILEPESDATUM >= GETDATE())
) Csoportok ON OsztalyTanuloi.TanuloID = Csoportok.TanuloID) KapcsolodoCsoportok ON
KapcsolodoCsoportok.OsztalyID = @osztalyId
where T_TANITASIORA.C_ORARENDIORAID is null
AND T_TANITASIORA.C_MEGTARTOTT is null
AND (osztaly.ID = @osztalyId OR osztaly.ID = KapcsolodoCsoportok.CsoportID)
and naptar.C_HETSORSZAMA = @hetSorszam
) Orak
ORDER BY Datum DESC
END

View file

@ -0,0 +1,67 @@
GO
/****** Object: StoredProcedure [dbo].[sp_GetOsszesNemBejegyzettOra] Script Date: 2016.01.27. 11:35:23 ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
IF OBJECT_ID('[DBO].[sp_GetOsszesNemBejegyzettOra]') IS NOT NULL BEGIN
DROP PROCEDURE [DBO].[sp_GetOsszesNemBejegyzettOra]
END
GO
-- =============================================
-- Author: <Kelemen Attila>
-- Create date: <2016. 01. 07.>
-- Description: <Azok a megtartott, vagy elmaradt órák, amik nincsenek bejegyezve a naplóba, havi bontásban, tanáronként>
-- =============================================
CREATE PROCEDURE [dbo].[sp_GetOsszesNemBejegyzettOra]
@tanevID int,
@mindenHeten int
AS
BEGIN
-- SET NOCOUNT ON added to prevent extra result sets from
-- interfering with SELECT statements.
SET NOCOUNT ON;
--Nem naplózott órák
select
MONTH(naptar.C_NAPDATUMA) Honap,
T_FELHASZNALO.C_NYOMTATASINEV TanarNeve,
COUNT(*)
FROM
T_ORARENDIORA
inner join T_FOGLALKOZAS on T_FOGLALKOZAS.ID= T_ORARENDIORA.C_FOGLALKOZASID
inner join T_NAPTARINAP naptar on ((naptar.C_NAPDATUMA BETWEEN T_ORARENDIORA.C_ORAERVENYESSEGKEZDETE AND T_ORARENDIORA.C_ORAERVENYESSEGVEGE)
AND (naptar.C_HETIREND = T_ORARENDIORA.C_HETIREND OR T_ORARENDIORA.C_HETIREND = @mindenHeten)) -- Minden héten
INNER JOIN T_CSENGETESIRENDORA on T_ORARENDIORA.C_CSENGETESIRENDORAID=T_CSENGETESIRENDORA.ID
LEFT JOIN T_TANITASIORA ON T_TANITASIORA.C_ORARENDIORAID = T_ORARENDIORA.ID AND T_TANITASIORA.TOROLT='F'
inner join T_FELHASZNALO on T_FOGLALKOZAS.C_TANARID = T_FELHASZNALO.ID
WHERE
T_ORARENDIORA.TOROLT='F'
AND naptar.TOROLT = 'F' AND T_FOGLALKOZAS.TOROLT='F'
AND T_FOGLALKOZAS.TOROLT='F'
AND T_FELHASZNALO.TOROLT='F'
AND GETDATE() >= naptar.C_NAPDATUMA
AND T_TANITASIORA.ID IS NULL
AND T_FOGLALKOZAS.C_TANEVID = @tanevID
group by MONTH(naptar.C_NAPDATUMA), T_FELHASZNALO.C_NYOMTATASINEV
order by case --Hónapok sorrendje
when MONTH(naptar.C_NAPDATUMA) = 9 then 1
when MONTH(naptar.C_NAPDATUMA) = 10 then 2
when MONTH(naptar.C_NAPDATUMA) = 11 then 3
when MONTH(naptar.C_NAPDATUMA) = 12 then 4
when MONTH(naptar.C_NAPDATUMA) = 1 then 5
when MONTH(naptar.C_NAPDATUMA) = 2 then 6
when MONTH(naptar.C_NAPDATUMA) = 3 then 7
when MONTH(naptar.C_NAPDATUMA) = 4 then 8
when MONTH(naptar.C_NAPDATUMA) = 5 then 9
when MONTH(naptar.C_NAPDATUMA) = 6 then 10
when MONTH(naptar.C_NAPDATUMA) = 7 then 11
when MONTH(naptar.C_NAPDATUMA) = 8 then 12
end;
END

View file

@ -0,0 +1,140 @@
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
IF OBJECT_ID('[dbo].[sp_GetPedagogusAltalAdottErtekelesek]') IS NOT NULL
BEGIN
DROP PROCEDURE [dbo].[sp_GetPedagogusAltalAdottErtekelesek]
END
GO
-- ===================================================================
-- Javított: Badits-Nyáradi József 2017.07.11.
-- ===================================================================
CREATE PROCEDURE [dbo].[sp_GetPedagogusAltalAdottErtekelesek]
@pTanarId INT,
@pEvkozi INT,
@pFelevi INT,
@pEvvegi INT,
@pTanevId INT,
@pFelevVegeNaptipusId INT,
@pErtekelesmodSuly BIT = 0
AS
BEGIN
DECLARE @osztalyId INT = 0;
DECLARE @tantargyId INT = 0;
DECLARE @rowId INT = 0;
DECLARE @maxCharNumErtekelesSzoveg INT = 20;
SET NOCOUNT ON;
DECLARE @felevVege DATE = (
SELECT COALESCE(
(SELECT C_DATUM FROM T_TANEVRENDJE WHERE C_TANEVID = @pTanevId AND C_NAPTIPUSA = @pFelevVegeNaptipusId),
GETDATE())
);
SELECT T_TANARIATLAGSULY.C_ERTEKELESMODJA AS ID, T_DICTIONARYITEMBASE.C_NAME, T_TANARIATLAGSULY.C_ERTEKELESMODJA, C_SULY, CAST(C_SULY AS NVARCHAR) + '%' AS C_SULYSZAZALEK, ' (' + NCHAR(97 + ROW_NUMBER() OVER(ORDER BY T_DICTIONARYITEMBASE.C_ORDER ASC) - 1) + ')' AS Row#
INTO #tempTanariAtlagsuly
FROM T_TANARIATLAGSULY
INNER JOIN T_ERTEKELESMOD ON T_ERTEKELESMOD.ID = T_TANARIATLAGSULY.C_ERTEKELESMODJA
LEFT JOIN T_DICTIONARYITEMBASE ON T_DICTIONARYITEMBASE.ID = T_ERTEKELESMOD.ID
WHERE T_TANARIATLAGSULY.TOROLT = 'F' AND T_TANARIATLAGSULY.C_TANEVID = @pTanevId AND T_DICTIONARYITEMBASE.TOROLT = 'F' AND T_DICTIONARYITEMBASE.C_TANEVID = @pTanevId
ORDER BY T_DICTIONARYITEMBASE.C_ORDER;
SELECT DISTINCT T_FOGLALKOZAS_OSSZES.ID, T_TANTARGY_OSSZES.ID AS TANTARGYID, T_OSZTALYCSOPORT_OSSZES.ID AS OSZTALYID, T_OSZTALYCSOPORT_OSSZES.C_NEV + '_' + T_TANTARGY_OSSZES.C_NEV AS NEV
INTO #tempFoglalkozasok
FROM T_FOGLALKOZAS_OSSZES
INNER JOIN T_OSZTALYCSOPORT_OSSZES ON T_OSZTALYCSOPORT_OSSZES.ID = T_FOGLALKOZAS_OSSZES.C_OSZTALYCSOPORTID
INNER JOIN T_TANTARGY_OSSZES ON T_TANTARGY_OSSZES.ID = T_FOGLALKOZAS_OSSZES.C_TANTARGYID
LEFT JOIN T_OSZTALY_OSSZES ON T_OSZTALY_OSSZES.ID = T_OSZTALYCSOPORT_OSSZES.ID AND T_OSZTALY_OSSZES.TOROLT = 'F'
LEFT JOIN T_CSOPORT_OSSZES ON T_CSOPORT_OSSZES.C_OSZTALYBONTASID = T_OSZTALY_OSSZES.ID AND T_CSOPORT_OSSZES.TOROLT = 'F'
WHERE T_FOGLALKOZAS_OSSZES.TOROLT = 'F' AND T_TANTARGY_OSSZES.TOROLT = 'F' AND T_OSZTALYCSOPORT_OSSZES.TOROLT = 'F' AND
T_FOGLALKOZAS_OSSZES.C_TANARID = @pTanarId AND T_FOGLALKOZAS_OSSZES.C_TANEVID = @pTanevId;
DECLARE @tempErtekeles TABLE (ID INT, TANULOID INT, NEV NVARCHAR(255), C_BELEPESDATUM NVARCHAR(15), C_KILEPESDATUM NVARCHAR(15), OSZTID INT, ERTEKELESDATUMA NVARCHAR(255), ERTEKELESTIPUSA INT, ERTEKELESMODJA INT, ERTEKELES NVARCHAR(MAX), OSZTALYZAT INT, HONAP INT);
SELECT * FROM #tempFoglalkozasok;
WHILE (1 = 1)
BEGIN
DELETE FROM @tempErtekeles;
SELECT TOP 1 @rowId = ID, @tantargyId = TANTARGYID, @osztalyId = OSZTALYID
FROM #tempFoglalkozasok
WHERE ID > @rowId
ORDER BY ID;
IF @@ROWCOUNT = 0
BEGIN
BREAK;
END
INSERT INTO @tempErtekeles
SELECT *
FROM (
SELECT DISTINCT T_TANULOERTEKELES_OSSZES.ID, T_TANULOCSOPORT_OSSZES.C_TANULOID AS TANULOID, T_FELHASZNALO_OSSZES.C_NYOMTATASINEV AS NEV, COALESCE(FORMAT(C_BELEPESDATUM, 'yyyy. MM. dd'), '') AS C_BELEPESDATUM, COALESCE(FORMAT(C_KILEPESDATUM, 'yyyy. MM. dd'), '') AS C_KILEPESDATUM,
T_TANULOCSOPORT_OSSZES.C_OSZTALYCSOPORTID AS OSZTID,
T_TANULOERTEKELES_OSSZES.C_ERTEKELESDATUM AS ERTEKELESDATUMA, T_TANULOERTEKELES_OSSZES.C_ERTEKELESTIPUSA AS ERTEKELESTIPUSA, T_OSZTALYZATERTEKELES_OSSZES.C_ERTEKELESMODJA AS ERTEKELESMODJA,
(
(CASE WHEN C_ERTEKELESTIPUSA NOT IN (@pEvkozi, @pFelevi, @pEvvegi) THEN '{' ELSE '' END) +
COALESCE(CONVERT(NVARCHAR, TDIB_JEGY.C_VALUE), (CASE WHEN C_ERTEKELESSZOVEG IS NOT NULL THEN '[' + CASE WHEN LEN(C_ERTEKELESSZOVEG) > @maxCharNumErtekelesSzoveg THEN STUFF(C_ERTEKELESSZOVEG, @maxCharNumErtekelesSzoveg, 1000000, '...') ELSE C_ERTEKELESSZOVEG END + ']' ELSE NULL END), CONVERT(NVARCHAR, C_SZAZALEK) + '%') +
(CASE WHEN C_ERTEKELESTIPUSA NOT IN (@pEvkozi, @pFelevi, @pEvvegi) THEN '}' ELSE '' END) +
(CASE WHEN @pErtekelesmodSuly = 1 AND C_ERTEKELESTIPUSA IN (@pEvkozi) AND ISNULL(TANARIATLAGSULY.C_SULY, 100) <> 100 THEN TANARIATLAGSULY.Row# ELSE '' END)
) AS ERTEKELES,
TDIB_JEGY.C_VALUE AS OSZTALYZAT, (CASE WHEN MONTH(C_ERTEKELESDATUM) >= 9 THEN 100 WHEN MONTH(C_ERTEKELESDATUM) > 1 AND MONTH(C_ERTEKELESDATUM) < 9 THEN 200 ELSE (CASE WHEN C_ERTEKELESDATUM > @felevVege THEN 200 ELSE 100 END) END) + MONTH(C_ERTEKELESDATUM) AS HONAP
FROM T_TANULOCSOPORT_OSSZES
INNER JOIN T_FELHASZNALO_OSSZES ON T_FELHASZNALO_OSSZES.ID = T_TANULOCSOPORT_OSSZES.C_TANULOID
LEFT JOIN T_TANULOERTEKELES_OSSZES ON T_TANULOERTEKELES_OSSZES.C_TANTARGYID = @tantargyId AND T_TANULOERTEKELES_OSSZES.C_TANULOID = T_TANULOCSOPORT_OSSZES.C_TANULOID AND T_TANULOERTEKELES_OSSZES.TOROLT = 'F' AND T_TANULOERTEKELES_OSSZES.C_TANEVID = @pTanevId AND T_TANULOERTEKELES_OSSZES.C_ERTEKELOID = @pTanarId
LEFT JOIN T_OSZTALYZATERTEKELES_OSSZES ON T_OSZTALYZATERTEKELES_OSSZES.ID = T_TANULOERTEKELES_OSSZES.ID AND T_OSZTALYZATERTEKELES_OSSZES.TOROLT = 'F' AND T_OSZTALYZATERTEKELES_OSSZES.c_altanevId = @pTanevId
LEFT JOIN T_DICTIONARYITEMBASE_OSSZES AS TDIB_JEGY ON TDIB_JEGY.ID = T_TANULOERTEKELES_OSSZES.C_OSZTALYZAT AND TDIB_JEGY.TOROLT = 'F' AND TDIB_JEGY.C_TANEVID = @pTanevId
LEFT JOIN #tempTanariAtlagsuly AS TANARIATLAGSULY on TANARIATLAGSULY.C_ERTEKELESMODJA = T_OSZTALYZATERTEKELES_OSSZES.C_ERTEKELESMODJA
WHERE T_TANULOCSOPORT_OSSZES.C_TANEVID = @pTanevId AND T_TANULOCSOPORT_OSSZES.C_OSZTALYCSOPORTID = @osztalyId
) AS tempErtekeles;
SELECT RESULT.*
FROM (
SELECT PIVOTERTEKEL.TANULOID AS ID, NEV AS "Név", BESOROLAS AS "Csoport tagja",
[109] AS Szeptember, [110] AS Október, [111] AS November, [112] AS December, [101] AS "Január / I.", FELEV.JEGY AS [I. félév$@8], [201] AS "Január / II.", [202] AS Február, [203] AS Március, [204] AS Április, [205] AS Május, [206] AS Június,
EVVEGE.JEGY AS [II. félév$@9], ATLAG.SULYOZOTTATLAG AS "Átlag"
FROM (
SELECT DISTINCT T1.NEV, C_BELEPESDATUM + ' - ' + C_KILEPESDATUM AS BESOROLAS, STUFF (
(
SELECT ', ' + ISNULL(T2.ERTEKELES, '')
FROM @tempErtekeles AS T2
WHERE T1.TANULOID = T2.TANULOID AND T1.HONAP = T2.HONAP AND T1.ERTEKELESTIPUSA NOT IN (@pFelevi, @pEvvegi) AND T2.ERTEKELESTIPUSA NOT IN (@pFelevi, @pEvvegi) -- = @pEvkozi--AND T1.ERTEKELESTIPUSA = @pEvkozi
ORDER BY ERTEKELESDATUMA
FOR XML PATH ('')
), 1, 2, '') AS ERTEKELESEK, T1.HONAP, T1.TANULOID
FROM @tempErtekeles AS T1
) AS ERDEMJEGYEK
PIVOT ( MAX(ERTEKELESEK) FOR HONAP IN ([109], [110], [111], [112], [101], [201], [202], [203], [204], [205], [206])) AS PIVOTERTEKEL
LEFT JOIN (
SELECT TANULOID, AVG(OSZTALYZAT) AS JEGY
FROM @tempErtekeles
WHERE ERTEKELESTIPUSA = @pFelevi
GROUP BY TANULOID
) AS FELEV ON PIVOTERTEKEL.TANULOID = FELEV.TANULOID
LEFT JOIN (
SELECT TANULOID, AVG(OSZTALYZAT) AS JEGY
FROM @tempErtekeles
WHERE ERTEKELESTIPUSA = @pEvvegi
GROUP BY TANULOID
) AS EVVEGE ON PIVOTERTEKEL.TANULOID = EVVEGE.TANULOID
LEFT JOIN (
SELECT TANULOID, ROUND(AVG(CAST(OSZTALYZAT AS FLOAT)), 2) AS ATLAG, ROUND(SUM(CAST(OSZTALYZAT AS FLOAT) * CAST(ISNULL(T_TANARIATLAGSULY.C_SULY, 100) AS FLOAT) / 100) / SUM(CAST(ISNULL(T_TANARIATLAGSULY.C_SULY, 100) AS FLOAT) / 100), 2) AS SULYOZOTTATLAG
FROM @tempErtekeles AS tempErtekeles
LEFT JOIN T_TANARIATLAGSULY on T_TANARIATLAGSULY.C_ERTEKELESMODJA = tempErtekeles.ERTEKELESMODJA AND T_TANARIATLAGSULY.TOROLT = 'F' AND T_TANARIATLAGSULY.C_TANEVID = @pTanevId
WHERE ERTEKELESTIPUSA = @pEvkozi AND OSZTALYZAT IS NOT NULL
GROUP BY TANULOID
) AS ATLAG ON PIVOTERTEKEL.TANULOID = ATLAG.TANULOID
) AS RESULT
ORDER BY NEV;
END
SELECT ID, Row# AS "Jelmagyarázat", C_NAME AS "Értékelésmód", C_SULYSZAZALEK AS "Értékelés súlyozása"
FROM #tempTanariAtlagsuly
ORDER BY Row#;
IF OBJECT_ID('tempdb..#tempErtekeles') IS NOT NULL DROP TABLE #tempErtekeles
IF OBJECT_ID('tempdb..#tempFoglalkozasok') IS NOT NULL DROP TABLE #tempFoglalkozasok
IF OBJECT_ID('tempdb..#tempTanariAtlagsuly') IS NOT NULL DROP TABLE #tempTanariAtlagsuly
END
GO

View file

@ -0,0 +1,187 @@
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
IF OBJECT_ID('sp_GetPedagogusOrarend') IS NOT NULL
BEGIN
DROP PROCEDURE sp_GetPedagogusOrarend
END
GO
CREATE PROCEDURE sp_GetPedagogusOrarend
@intezmenyId INT,
@tanevId INT,
@pedagogusId INT,
@aktivTanevId INT,
@reszletes BIT = 0
AS
BEGIN
SET NOCOUNT ON;
IF @reszletes = 1
BEGIN
SELECT TOP(1)
f.C_NYOMTATASINEV as TANAR_NEV
,i.C_NEV as INTEZMENY_NEV
,i.C_OMKOD as INTEZMENY_OMKOD
FROM T_ALKALMAZOTT_OSSZES a
INNER JOIN T_FELHASZNALO_OSSZES f ON f.ID = a.ID AND f.TOROLT = 'F'
INNER JOIN T_FOGLALKOZAS_OSSZES fo ON fo.C_TANARID = a.ID AND fo.TOROLT = 'F'
INNER JOIN T_OSZTALYCSOPORT_OSSZES ocs ON ocs.ID = fo.C_OSZTALYCSOPORTID AND ocs.TOROLT = 'F'
INNER JOIN T_INTEZMENYADATOK_OSSZES i ON i.C_INTEZMENYID = a.C_ALINTEZMENYID AND i.C_TANEVID = a.C_ALTANEVID AND i.TOROLT = 'F'
WHERE
a.ID = @pedagogusId
AND a.C_ALTANEVID = @tanevId
AND i.C_INTEZMENYID = @intezmenyId
AND a.TOROLT = 'F'
END
DECLARE @UtolsoNap DATE = (SELECT TOP 1 C_DATUM FROM T_TANEVRENDJE_OSSZES WHERE C_NAPTIPUSA=1395 AND C_TANEVID=@tanevid AND TOROLT='F')
,@ElsoNap DATE = (SELECT TOP 1 C_DATUM FROM T_TANEVRENDJE_OSSZES WHERE C_NAPTIPUSA=1394 AND C_TANEVID=@tanevid AND TOROLT='F')
,@IdoszakKezdete DATE
,@IdoszakVege DATE
IF (@tanevId = @AktivtanevId AND GETDATE() <= @UtolsoNap)
BEGIN
IF (GETDATE() <= @ElsoNap)
BEGIN
SET @IdoszakKezdete = (SELECT TOP 1 C_HETKEZDONAPJA FROM T_NAPTARIHET_OSSZES WHERE C_HETSORSZAMA = 1 AND TOROLT = 'F' AND C_TANEVID = @tanevId)
SET @IdoszakVege = (SELECT TOP 1 C_HETUTOLSONAPJA FROM T_NAPTARIHET_OSSZES WHERE C_HETSORSZAMA = 3 AND TOROLT = 'F' AND C_TANEVID = @tanevId)
END
ELSE
BEGIN
SET @IdoszakKezdete =(SELECT TOP 1 nh.C_HETKEZDONAPJA FROM T_NAPTARIHET_OSSZES nh WHERE CONVERT(DATE, GETDATE())>=CONVERT(DATE, NH.C_HETKEZDONAPJA) AND CONVERT(DATE, GETDATE())<=CONVERT(DATE, nh.C_HETUTOLSONAPJA) and nh.TOROLT='F' and nh.C_TANEVID=@tanevid)
SET @IdoszakVege = DATEADD(DAY, 13, @IdoszakKezdete)
END
END
ELSE
BEGIN
SET @IdoszakVege =(SELECT TOP 1 nh.C_HETUTOLSONAPJA FROM T_NAPTARIHET_OSSZES nh WHERE @UtolsoNap>=CONVERT(DATE, nh.C_HETKEZDONAPJA) AND @UtolsoNap<=CONVERT(DATE, nh.C_HETUTOLSONAPJA) AND nh.TOROLT='F' AND nh.C_TANEVID=@tanevId)
SET @IdoszakKezdete = DATEADD(DAY, -13, @IdoszakVege)
END
DECLARE @temp TABLE (HetirendId INT, HetnapjaId INT, Oraszam NVARCHAR(20), TantargyNev NVARCHAR(MAX), TeremNev NVARCHAR(MAX), OsztalyCsoportNev NVARCHAR(MAX))
INSERT INTO @temp
SELECT
OrarendiOra.C_HETIREND HetirendId
,OrarendiOra.C_HETNAPJA HetnapjaId
,CAST(DATEPART(HOUR, C_ORAKEZDETE) AS NVARCHAR(10)) + ':' + CAST(FORMAT(DATEPART(MINUTE, C_ORAKEZDETE), '00') AS NVARCHAR(10))
+ ' -' + char(13) + char(10) + CAST(DATEPART(HOUR, C_ORAVEGE) AS NVARCHAR(10)) + ':' + CAST(FORMAT(DATEPART(MINUTE, C_ORAVEGE), '00') AS NVARCHAR(10)) Oraszam
,ISNULL(Tantargy.C_NEVNYOMTATVANYBAN, Tantargy.C_NEV) TantargyNev
,Terem.C_NEV TeremNev
,ocs.C_NEV OsztalyCsoportNev
FROM T_ORARENDIORA_OSSZES OrarendiOra
INNER JOIN T_TANTARGY_OSSZES Tantargy ON Tantargy.Id = OrarendiOra.C_TANTARGYID
INNER JOIN T_TEREM_OSSZES Terem ON Terem.Id = OrarendiOra.C_TEREMID
INNER JOIN T_OSZTALYCSOPORT_OSSZES ocs ON ocs.ID = OrarendiOra.C_OSZTALYCSOPORTID
WHERE
OrarendiOra.Torolt = 'F'
AND OrarendiOra.C_ORAERVENYESSEGKEZDETE <= @IdoszakVege
AND OrarendiOra.C_ORAERVENYESSEGVEGE >= @IdoszakKezdete
AND OrarendiOra.C_ORAERVENYESSEGKEZDETE <> OrarendiOra.C_ORAERVENYESSEGVEGE
AND OrarendiOra.C_TANARID = @pedagogusId
AND C_ORAERVENYESSEGVEGE - C_ORAERVENYESSEGKEZDETE > 60
DECLARE @Hetirendek TABLE (Id INT)
DECLARE @HetirendCount INT = (SELECT COUNT(DISTINCT oo.C_HETIREND) FROM T_ORARENDIORA_OSSZES oo WHERE oo.TOROLT='F' AND oo.C_TANEVID=@tanevId)
IF (@HetirendCount=1)
BEGIN
INSERT INTO @Hetirendek
SELECT DISTINCT oo.c_hetirend FROM T_ORARENDIORA_OSSZES oo WHERE oo.TOROLT='F' AND oo.C_TANEVID=@tanevId
END
ELSE
BEGIN
INSERT INTO @Hetirendek
SELECT DISTINCT oo.C_HETIREND from T_ORARENDIORA_OSSZES oo WHERE oo.TOROLT='F' AND oo.C_TANEVID=@tanevId AND oo.C_HETIREND<>1554
END
DECLARE @Orakezdetek TABLE (idotartam NVARCHAR(20), Ora INT, Perc INT)
INSERT INTO @orakezdetek
SELECT DISTINCT
CAST(DATEPART(HOUR, C_ORAKEZDETE) AS NVARCHAR(10)) + ':' + CAST(FORMAT(DATEPART(MINUTE, C_ORAKEZDETE), '00') AS NVARCHAR(10))
+ ' -' + char(13) + char(10) + CAST(DATEPART(HOUR, C_ORAVEGE) AS NVARCHAR(10)) + ':' + CAST(FORMAT(DATEPART(MINUTE, C_ORAVEGE), '00') AS NVARCHAR(10)) KezdVeg
,DATEPART(HH, C_ORAKEZDETE)
,DATEPART(MINUTE, C_ORAKEZDETE)
FROM T_ORARENDIORA_OSSZES
WHERE
C_TANEVID = @tanevId
AND TOROLT = 'F'
AND C_ORAERVENYESSEGVEGE - C_ORAERVENYESSEGKEZDETE > 60
DECLARE @OsszesOra TABLE (Hetirend INT, Nap INT, Oraszam NVARCHAR(20))
INSERT INTO @OsszesOra
SELECT DISTINCT oo.Id, Nap.Nap , OraSzam.OraSzam FROM @Hetirendek oo
CROSS JOIN (SELECT Idotartam FROM @Orakezdetek) OraSzam (OraSzam)
CROSS JOIN (VALUES (1408),(1409),(1410),(1411),(1412), (1413)) Nap (Nap)
DECLARE @TenylegesOra TABLE (Hetirend INT, Nap INT, OraSzam NVARCHAR(20), Foglalkozas NVARCHAR(MAX))
DECLARE @Orarend TABLE (PedagogusId INT, Ora NVARCHAR(20), Hetirend INT, Nap INT, Foglalkozas NVARCHAR(MAX), PedagogusNev NVARCHAR(MAX))
DECLARE kur CURSOR FOR
SELECT Id FROM @Hetirendek
DECLARE @HetirendId int
OPEN kur
FETCH NEXT FROM kur INTO @HetirendId
WHILE @@FETCH_STATUS = 0
BEGIN
INSERT INTO @TenylegesOra
SELECT DISTINCT
@HetirendId
,veg.HetnapjaId
,veg.Oraszam
,STUFF((SELECT DISTINCT CAST('<b>' + bveg.TantargyNev + '</b>' + ' (' + OsztalyCsoportNev + ', ' + bveg.TeremNev + ')' + CHAR(13) + CHAR(10) AS VARCHAR(max))
FROM @temp bveg
WHERE bveg.HetnapjaId=veg.HetnapjaId
AND bveg.Oraszam=veg.Oraszam
AND (bveg.HetirendId=@HetirendId OR bveg.HetirendId=1554)
FOR XML PATH(''), TYPE)
.value('.','NVARCHAR(MAX)'),1,0,'') Foglalkozasok
FROM @temp veg
FETCH NEXT FROM kur INTO @HetirendId
END
CLOSE kur
DEALLOCATE kur
DECLARE @pedagogusNev NVARCHAR(MAX) = (SELECT C_NYOMTATASINEV FROM T_FELHASZNALO_OSSZES WHERE ID = @pedagogusId)
/*Végleges órarend*/
INSERT INTO @Orarend
SELECT @pedagogusId
, OsszesOra.Oraszam
, OsszesOra.Hetirend
, OsszesOra.Nap
, TenylegesOra.Foglalkozas
, @pedagogusNev Pedagogusnev
FROM @OsszesOra OsszesOra
LEFT JOIN @TenylegesOra TenylegesOra ON OsszesOra.Hetirend=TenylegesOra.Hetirend AND OsszesOra.Nap=TenylegesOra.Nap AND OsszesOra.Oraszam=TenylegesOra.Oraszam
ORDER BY OsszesOra.Hetirend, OsszesOra.Nap, OsszesOra.Oraszam
SELECT
PedagogusId
,pv.Ora
,Hetirend
,PedagogusNev
,[1408] 'Hetfo'
,[1409] 'Kedd'
,[1410] 'Szerda'
,[1411] 'Csutortok'
,[1412] 'Pentek'
,[1413] 'Szombat'
, dic.C_NAME HETIREND_DNAME
,ok.Ora Rendez_ora
,ok.Perc Rendez_perc
FROM @Orarend
PIVOT (MAX(Foglalkozas) FOR Nap in([1408],[1409],[1410],[1411],[1412],[1413]))pv
INNER JOIN T_DICTIONARYITEMBASE_OSSZES dic ON dic.id=Hetirend AND dic.C_TANEVID = @tanevId
INNER JOIN @Orakezdetek ok ON ok.Idotartam = pv.Ora
ORDER BY Hetirend, Ora
END
GO

View file

@ -0,0 +1,82 @@
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
IF OBJECT_ID('[dbo].[sp_GetPedagogusOrarendOsszes]') IS NOT NULL
BEGIN
DROP PROCEDURE [dbo].[sp_GetPedagogusOrarendOsszes]
END
GO
CREATE PROCEDURE [dbo].[sp_GetPedagogusOrarendOsszes]
@tanevID INT,
@intezmenyId INT,
@aktivTanevId INT
AS
BEGIN
SELECT DISTINCT
ia.C_NEV as intezmeny
, m.C_NEV as mukodesihely
, d.C_NAME as oktatasiNevelesiFeladatTipus
, ISNULL(ia.C_VAROS + ', ', '') + FORMAT(GETDATE(), 'yyyy.MM.dd.') AS kelt
FROM T_INTEZMENY_OSSZES i
INNER JOIN T_INTEZMENYADATOK_OSSZES ia ON ia.C_INTEZMENYID=I.ID AND ia.C_TANEVID = @tanevid
INNER JOIN T_MUKODESIHELY_OSSZES m ON ia.C_INTEZMENYID = m.C_INTEZMENYID AND m.TOROLT = 'F' AND m.C_TANEVID = @tanevID
INNER JOIN T_FELADATELLATASIHELY_OSSZES f ON m.ID = f.C_MUKODESIHELYID AND f.TOROLT = 'F' AND f.C_TANEVID = @tanevID
INNER JOIN (SELECT DISTINCT ID, C_NAME FROM T_DICTIONARYITEMBASE_OSSZES) d ON d.id = f.C_OKTATASINEVELESIFELADATTIPUS
WHERE
i.id=@intezmenyId
AND I.TOROLT='F'
DECLARE @tabla TABLE (
PedagogusId INT,
Ora NVARCHAR(MAX),
Hetirend INT,
PedagogusNev NVARCHAR(MAX),
Hetfo NVARCHAR(MAX),
Kedd NVARCHAR(MAX),
Szerda NVARCHAR(MAX),
Csutortok NVARCHAR(MAX),
Pentek NVARCHAR(MAX),
Szombat NVARCHAR(MAX),
Hetirend_DNAME NVARCHAR(MAX),
Rendez_ora INT,
Rendez_perc INT
)
DECLARE kurzor CURSOR FOR
SELECT
ID
FROM T_ALKALMAZOTT_OSSZES a
INNER JOIN (SELECT DISTINCT c_tanarid FROM T_FOGLALKOZAS) f on f.c_tanarid=a.id
WHERE
a.torolt='F'
AND a.C_ALTANEVID=@tanevID
DECLARE @TanarId int
OPEN kurzor
FETCH NEXT FROM kurzor INTO @TanarId
WHILE @@FETCH_STATUS = 0 BEGIN
INSERT INTO @tabla
EXEC sp_GetPedagogusOrarend @intezmenyId, @tanevid, @tanarid, @aktivTanevId
FETCH NEXT FROM kurzor INTO @TanarId
END
CLOSE kurzor
DEALLOCATE kurzor
SELECT
*
FROM @tabla
ORDER BY Hetirend, Ora
END
GO

View file

@ -0,0 +1,77 @@
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
CREATE PROCEDURE [dbo].[sp_GetPedagogusOrarendje]
@PedagogusId int,
@TanevId int
AS
BEGIN
SET NOCOUNT ON;
declare @tmpTable table (TanarId int, Ora int, Hetirend int, TanarNev nvarchar(255), [1408] nvarchar(255), [1409] nvarchar(255), [1410] nvarchar(255), [1411] nvarchar(255), [1412] nvarchar(255), [1413] nvarchar(255))
DECLARE @ID INT = 0
WHILE (1 = 1)
BEGIN
SELECT TOP 1 @ID = ID FROM T_HETIRENDTIPUS_OSSZES WHERE TOROLT ='F' and ID != 1554 and ID > @ID and C_ALTANEVID = @TanevId ORDER BY ID
IF @@ROWCOUNT = 0 BREAK;
declare @Napok table (NapId int) insert into @Napok select ID from T_DICTIONARYITEMBASE_OSSZES where ID in (1408,1409,1410,1411,1412,1413) and C_TANEVID = @TanevId
declare @Orak table (OraId int) insert into @Orak select C_ORASZAM from T_CSENGETESIRENDORA where TOROLT = 'F' and C_TANEVID = @TanevId
declare @TenylegesOrak table (OraId int, NapId int, Leiras nvarchar(MAX), HetirendID int)
insert into @TenylegesOrak
select
csro.C_ORASZAM as ORASZAM
,oo.C_HETNAPJA as HETNAP
,ocs.C_NEV + ' - ' + tt.C_NEV + ' - ' + t.C_NEV as MATRIX_DATA
,@ID AS HetiRendID
from T_ALKALMAZOTT_OSSZES a
join T_FELHASZNALO_OSSZES f on f.ID = a.ID
join T_FOGLALKOZAS_OSSZES fo on fo.C_TANARID = a.ID
join T_TANTARGY_OSSZES tt on tt.ID = fo.C_TANTARGYID
join T_OSZTALYCSOPORT_OSSZES ocs on ocs.ID = fo.C_OSZTALYCSOPORTID
join T_ORARENDIORA_OSSZES oo on oo.C_FOGLALKOZASID = fo.ID
join T_TEREM_OSSZES t on t.ID = oo.C_TEREMID
left outer join T_CSENGETESIRENDORA_OSSZES csro on csro.ID = oo.C_CSENGETESIRENDORAID
where
a.ID = @PedagogusId
and a.C_ALTANEVID = @TanevId
and oo.C_HETIREND in (@ID,1554)
insert into @tmpTable
select * from
(
select
@PedagogusId as TanarId,
O.OraId as Ora
,N.NapId as Nap
,T.Leiras as Leiras
,@ID as HetiRend
,(select top 1 f.C_NYOMTATASINEV from T_FELHASZNALO_OSSZES f where f.ID = @PedagogusId and f.C_TANEVID = @TanevId and f.TOROLT = 'F') as TanarNev
from @Napok N
cross join @Orak O
left join @TenylegesOrak T on T.NapId = N.NapId and T.OraId = O.OraId AND T.HetiRendID in (@ID,1554)
) o1
PIVOT
(
MAX (Leiras)
FOR [Nap]
IN ([1408], [1409], [1410], [1411], [1412], [1413])
) p1
END
select * from @tmpTable
END
GO

View file

@ -0,0 +1,109 @@
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
IF OBJECT_ID('sp_GetPedagogusStatuszRiport', 'P') IS NOT NULL BEGIN
DROP PROCEDURE sp_GetPedagogusStatuszRiport
END
GO
CREATE PROCEDURE [dbo].[sp_GetPedagogusStatuszRiport]
@fenntartoId nvarchar(max) = null,
@intezmenyId int = null,
@tanevId int = null,
@statuszSzam int = null,
@tanarId int = null
AS
BEGIN
SET NOCOUNT ON;
select
FE.ID,
I.ID IntId,
F.C_TANEVID TanevId,
FE.C_OKTATASIAZONOSITO OktAzon,
FE.C_NYOMTATASINEV TanarNev,
STATUSZ.KotelezoOraszam KotelezoOraszam,
HETI.HetiOraszam HetiOraszam,
HETI.MunkaidoKedvezmeny MunkaidoKedvezmeny,
SUM(F.C_ORASZAM) OsszesOraszam,
cast(STATUSZ.StatuszSzam as decimal(10,2)) StatuszSzam,
cast(TANORAI.Ossz as decimal(10,2)) TanoraiOraszam,
cast(SUM(F.C_ORASZAM) - TANORAI.Ossz as decimal(10,2)) NemTanoraiOraszam
from T_FOGLALKOZAS F
inner join T_TANTARGY TT on TT.ID = F.C_TANTARGYID and TT.TOROLT = 'F'
inner join T_FELHASZNALO FE on FE.ID = F.C_TANARID and FE.TOROLT = 'F'
inner join T_INTEZMENYADATOK IA on IA.C_TANEVID = F.C_TANEVID and IA.C_INTEZMENYID = F.C_INTEZMENYID and IA.TOROLT = 'F'
inner join T_INTEZMENY I on I.ID = IA.C_INTEZMENYID and I.TOROLT = 'F'
inner join
(
select distinct
MU.C_ALKALMAZOTTID ID,
isnull(MU.C_MUNKAIDOKEDVEZMENYORASZAM, 0) MunkaidoKedvezmeny,
MU.C_KOTELEZOORASZAM - isnull(MU.C_MUNKAIDOKEDVEZMENYORASZAM, 0) HetiOraszam
from T_MUNKAUGYIADATOK MU
where MU.TOROLT = 'F'
) HETI
on HETI.ID = FE.ID
inner join
(select
T_FOGLALKOZAS.C_INTEZMENYID IntId,
T_FOGLALKOZAS.C_TANEVID TanevId,
T_FOGLALKOZAS.C_TANARID TanarId,
MunkaU.Kotelezo KotelezoOraszam,
IIF(SUM(T_FOGLALKOZAS.C_ORASZAM) < Kotelezo - Kedvezmeny,
CAST(SUM(T_FOGLALKOZAS.C_ORASZAM) AS DECIMAL) / CAST((Kotelezo - Kedvezmeny) AS DECIMAL),
1 + (cast((SUM(T_FOGLALKOZAS.C_ORASZAM) - (Kotelezo - Kedvezmeny)) as decimal) / @statuszSzam)) StatuszSzam
from T_FOGLALKOZAS
INNER JOIN T_OSZTALYCSOPORT_OSSZES ON T_FOGLALKOZAS.C_OSZTALYCSOPORTID = T_OSZTALYCSOPORT_OSSZES.ID
inner join T_ALKALMAZOTT on T_ALKALMAZOTT.ID = T_FOGLALKOZAS.C_TANARID and T_ALKALMAZOTT.TOROLT = 'F'
inner join T_MUNKAUGYIADATOK on T_MUNKAUGYIADATOK.C_ALKALMAZOTTID = T_ALKALMAZOTT.ID and T_MUNKAUGYIADATOK.TOROLT ='F'
INNER JOIN (SELECT C_ALKALMAZOTTID, C_KOTELEZOORASZAM Kotelezo, IIF(C_MUNKAIDOKEDVEZMENYORASZAM IS NULL, 0, C_MUNKAIDOKEDVEZMENYORASZAM) Kedvezmeny FROM T_MUNKAUGYIADATOK
WHERE TOROLT = 'F' and C_KOTELEZOORASZAM > 0 /*and C_KOTELEZOORASZAM - isnull(C_MUNKAIDOKEDVEZMENYORASZAM, 0) > 0*/
) MunkaU ON
MunkaU.C_ALKALMAZOTTID = T_ALKALMAZOTT.ID
where T_FOGLALKOZAS.TOROLT = 'F'
AND T_OSZTALYCSOPORT_OSSZES.TOROLT='F'
and T_MUNKAUGYIADATOK.C_KOTELEZOORASZAM is not null
group by T_FOGLALKOZAS.C_INTEZMENYID, T_FOGLALKOZAS.C_TANEVID,T_FOGLALKOZAS.C_TANARID, MunkaU.Kotelezo,MunkaU.Kedvezmeny
) STATUSZ
on STATUSZ.IntId = I.ID and STATUSZ.TanevId = F.C_TANEVID and STATUSZ.TanarId = FE.ID
inner join
(
select
F.C_INTEZMENYID IntId,
F.C_TANEVID TanevId,
F.C_TANARID TanarId,
isnull(OSZTCSOP.ORASZAM, 0) Ossz
from T_FOGLALKOZAS F
left join
(
select
F.C_TANARID TanarId,
SUM(F.C_ORASZAM) OraSzam
from T_FOGLALKOZAS F
inner join T_OSZTALY O on O.ID = F.C_OSZTALYCSOPORTID and O.TOROLT = 'F'
where F.TOROLT = 'F'
group by F.C_TANARID
union all
select
F.C_TANARID TanarId,
SUM(F.C_ORASZAM) OraSzam
from T_FOGLALKOZAS F
inner join T_CSOPORT CS on CS.ID = F.C_OSZTALYCSOPORTID and CS.TOROLT = 'F'
where F.TOROLT = 'F'
and CS.C_TIPUSA = 1031
group by F.C_TANARID
) OSZTCSOP
on OSZTCSOP.TanarId = F.C_TANARID
where F.TOROLT = 'F'
group by F.C_INTEZMENYID, F.C_TANEVID,F.C_TANARID, OSZTCSOP.ORASZAM
)TANORAI
on TANORAI.IntId = I.ID and TANORAI.TanevId = F.C_TANEVID and TANORAI.TanarId = FE.ID
where F.TOROLT = 'F'
and I.C_FENNTARTOAZONOSITO = @fenntartoId
and (I.ID = @intezmenyId or @intezmenyId is null)
and (F.C_TANEVID = @tanevId or @tanevId is null)
and (FE.ID = @tanarId or @tanarId is null)
group by FE.ID, I.ID, F.C_TANEVID, FE.C_OKTATASIAZONOSITO, FE.C_NYOMTATASINEV, STATUSZ.KotelezoOraszam, HETI.HetiOraszam, HETI.MunkaidoKedvezmeny, STATUSZ.StatuszSzam, TANORAI.Ossz
END

View file

@ -0,0 +1,100 @@
GO
/****** Object: StoredProcedure [dbo].[sp_GetRiportAllashelyKimutatas] Script Date: 2016.09.15. 15:06:35 ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
IF OBJECT_ID('[DBO].[sp_GetRiportAllashelyKimutatas]') IS NOT NULL BEGIN
DROP PROCEDURE [DBO].[sp_GetRiportAllashelyKimutatas]
END
GO
CREATE PROCEDURE [sp_GetRiportAllashelyKimutatas]
@fenntartoId int,
@intezmenyId int,
@tanevNev nvarchar(20)
AS
BEGIN
SET NOCOUNT ON
DECLARE @intezmenyTable table (
id int primary key,
tanevId int
)
IF @fenntartoId IS NOT NULL AND @intezmenyId IS NOT NULL BEGIN
INSERT INTO @intezmenyTable (id)
SELECT i.ID FROM T_INTEZMENY i
WHERE i.C_FENNTARTOAZONOSITO = @fenntartoId
AND i.ID = @intezmenyId
AND i.TOROLT = 'F'
END
IF @fenntartoId IS NOT NULL AND @intezmenyId IS NULL BEGIN
INSERT INTO @intezmenyTable (id)
SELECT i.ID FROM T_INTEZMENY i
WHERE i.C_FENNTARTOAZONOSITO = @fenntartoId
AND i.TOROLT = 'F'
END
IF @fenntartoId IS NULL AND @intezmenyId IS NOT NULL BEGIN
INSERT INTO @intezmenyTable (id)
SELECT i.ID FROM T_INTEZMENY i
WHERE i.ID = @intezmenyId
AND i.TOROLT = 'F'
END
IF @fenntartoId IS NULL AND @intezmenyId IS NULL BEGIN
INSERT INTO @intezmenyTable (id)
SELECT i.ID FROM T_INTEZMENY i
WHERE i.TOROLT = 'F'
END
IF NOT EXISTS (SELECT 1 FROM @intezmenyTable) BEGIN
RETURN
END
UPDATE i
SET i.tanevId = t.ID
FROM @intezmenyTable i
INNER JOIN T_TANEV t ON t.C_INTEZMENYID = i.id
WHERE t.C_NEV = @tanevNev
AND t.TOROLT = 'F'
/* DECLARE @resultTable table(
ReportName nvarchar(30),
ReportKey1 nvarchar(255),
ReportKey2 nvarchar(255),
ReportValue float
)
*/
--INSERT INTO @resultTable (ReportName, ReportKey1, ReportKey2, ReportValue)
SELECT 'TTFAlkalmazottRiport' AS ReportName, 'Alkalmazott' AS ReportKey1, NULL AS ReportKey2, COUNT(distinct f.C_TANARID) AS ReportValue1, NULL AS ReportValue2, NULL AS ReportValue3
FROM T_FOGLALKOZAS f
INNER JOIN @intezmenyTable i ON f.C_INTEZMENYID = i.id AND f.C_TANEVID = i.tanevId
WHERE f.TOROLT = 'F'
UNION ALL
--INSERT INTO @resultTable (ReportName, ReportKey1, ReportKey2, ReportValue)
SELECT 'ÖsszÓraszámRiport' AS ReportName, d.C_NAME AS ReportKey1, NULL AS ReportKey2, IIF(SUM(f.C_ORASZAM) IS NULL, 0, SUM(f.C_ORASZAM)) AS ReportValue1, COUNT(distinct f.C_TANARID) as ReportValue2, COUNT(distinct OCS.ID) AS ReportValue3
FROM T_FOGLALKOZAS f
INNER JOIN T_TANTARGY t ON f.C_TANTARGYID = t.ID
INNER JOIN T_MUNKAUGYIADATOK m ON f.C_TANARID = m.C_ALKALMAZOTTID
INNER JOIN T_DICTIONARYITEMBASE d ON d.C_INTEZMENYID = t.C_INTEZMENYID AND t.C_TANEVID = d.C_TANEVID AND d.ID = t.C_TARGYKATEGORIA
INNER JOIN @intezmenyTable i ON f.C_INTEZMENYID = i.id AND f.C_TANEVID = i.tanevId
INNER JOIN T_OSZTALYCSOPORT OCS ON OCS.ID = f.C_OSZTALYCSOPORTID
WHERE f.TOROLT = 'F'
GROUP BY d.C_NAME
UNION ALL
SELECT 'ÖsszÓraszámRiport' AS ReportName, 'SUM' AS ReportKey1, NULL AS ReportKey2, IIF(SUM(f.C_ORASZAM) IS NULL, 0, SUM(f.C_ORASZAM)) AS ReportValue1, NULL as ReportValue2, NULL as ReportValue3
FROM T_FOGLALKOZAS f
INNER JOIN T_TANTARGY t ON f.C_TANTARGYID = t.ID
INNER JOIN T_MUNKAUGYIADATOK m ON f.C_TANARID = m.C_ALKALMAZOTTID
INNER JOIN T_DICTIONARYITEMBASE d ON d.C_INTEZMENYID = t.C_INTEZMENYID AND t.C_TANEVID = d.C_TANEVID AND d.ID = t.C_TARGYKATEGORIA
INNER JOIN @intezmenyTable i ON f.C_INTEZMENYID = i.id AND f.C_TANEVID = i.tanevId
WHERE f.TOROLT = 'F'
-- SELECT ReportName, ReportKey1, ReportKey2, ReportValue FROM @resultTable
END

View file

@ -0,0 +1,89 @@
IF OBJECT_ID('sp_GetRiportBetoltetlenAllashelyek') IS NOT NULL BEGIN
DROP PROCEDURE sp_GetRiportBetoltetlenAllashelyek
END
GO
CREATE PROCEDURE sp_GetRiportBetoltetlenAllashelyek
@fenntartoId int,
@intezmenyId int,
@tanevNev nvarchar(20)
AS
BEGIN
SET NOCOUNT ON
DECLARE @intezmenyTable table (
id int primary key,
tanevId int
)
IF @fenntartoId IS NOT NULL AND @intezmenyId IS NOT NULL BEGIN
INSERT INTO @intezmenyTable (id)
SELECT i.ID FROM T_INTEZMENY i
WHERE i.C_FENNTARTOAZONOSITO = @fenntartoId
AND i.ID = @intezmenyId
AND i.TOROLT = 'F'
END
IF @fenntartoId IS NOT NULL AND @intezmenyId IS NULL BEGIN
INSERT INTO @intezmenyTable (id)
SELECT i.ID FROM T_INTEZMENY i
WHERE i.C_FENNTARTOAZONOSITO = @fenntartoId
AND i.TOROLT = 'F'
END
IF @fenntartoId IS NULL AND @intezmenyId IS NOT NULL BEGIN
INSERT INTO @intezmenyTable (id)
SELECT i.ID FROM T_INTEZMENY i
WHERE i.ID = @intezmenyId
AND i.TOROLT = 'F'
END
IF @fenntartoId IS NULL AND @intezmenyId IS NULL BEGIN
INSERT INTO @intezmenyTable (id)
SELECT i.ID FROM T_INTEZMENY i
WHERE i.TOROLT = 'F'
END
IF NOT EXISTS (SELECT 1 FROM @intezmenyTable) BEGIN
RETURN
END
UPDATE i
SET i.tanevId = t.ID
FROM @intezmenyTable i
INNER JOIN T_TANEV t ON t.C_INTEZMENYID = i.id
WHERE t.C_NEV = @tanevNev
AND t.TOROLT = 'F'
/*DECLARE @resultTable table(
ReportName nvarchar(30),
ReportKey1 nvarchar(255),
ReportKey2 nvarchar(255),
ReportValue int
)
*/
-- INSERT INTO @resultTable (ReportName, ReportKey1, ReportKey2, ReportValue)
SELECT 'BetöltetlenÁllásRiport' AS ReportName, 'Betöltetlen állás' AS ReportKey1, NULL AS ReportKey2, COUNT(1) AS ReportValue
FROM T_FELHASZNALO f
INNER JOIN T_MUNKAUGYIADATOK m ON f.ID = m.C_ALKALMAZOTTID
INNER JOIN @intezmenyTable i ON f.C_INTEZMENYID = i.id AND f.C_TANEVID = i.tanevId
WHERE m.C_BETOLTETLENALLASHELY = 'T'
AND f.TOROLT = 'F'
-- AND m.C_MUNKAVISZONYTIPUSA = 647
UNION ALL
-- INSERT INTO @resultTable (ReportName, ReportKey1, ReportKey2, ReportValue)
SELECT 'BetöltetlenÁllásTantargyRiport' AS ReportName, d.C_NAME AS ReportKey1, NULL AS ReportKey2, SUM(f.C_ORASZAM) AS ReportValue
FROM T_FOGLALKOZAS f
INNER JOIN T_TANTARGY t ON f.C_TANTARGYID = t.ID
INNER JOIN T_MUNKAUGYIADATOK m ON f.C_TANARID = m.C_ALKALMAZOTTID
INNER JOIN T_DICTIONARYITEMBASE d ON d.C_INTEZMENYID = t.C_INTEZMENYID AND t.C_TANEVID = d.C_TANEVID AND d.ID = t.C_TARGYKATEGORIA
INNER JOIN @intezmenyTable i ON f.C_INTEZMENYID = i.id AND f.C_TANEVID = i.tanevId
WHERE f.TOROLT = 'F'
-- AND m.C_MUNKAVISZONYTIPUSA = 647
AND m.C_BETOLTETLENALLASHELY = 'T'
GROUP BY d.C_NAME
--SELECT ReportName, ReportKey1, ReportKey2, ReportValue FROM @resultTable
END
GO

View file

@ -0,0 +1,77 @@
IF OBJECT_ID('sp_GetRiportCsoportnontas') IS NOT NULL BEGIN
DROP PROCEDURE sp_GetRiportCsoportnontas
END
GO
CREATE PROCEDURE sp_GetRiportCsoportnontas
@fenntartoId int,
@intezmenyId int,
@tanevNev nvarchar(20)
AS
BEGIN
SET NOCOUNT ON
DECLARE @intezmenyTable table (
id int primary key,
tanevId int
)
IF @fenntartoId IS NOT NULL AND @intezmenyId IS NOT NULL BEGIN
INSERT INTO @intezmenyTable (id)
SELECT i.ID FROM T_INTEZMENY i
WHERE i.C_FENNTARTOAZONOSITO = @fenntartoId
AND i.ID = @intezmenyId
AND i.TOROLT = 'F'
END
IF @fenntartoId IS NOT NULL AND @intezmenyId IS NULL BEGIN
INSERT INTO @intezmenyTable (id)
SELECT i.ID FROM T_INTEZMENY i
WHERE i.C_FENNTARTOAZONOSITO = @fenntartoId
AND i.TOROLT = 'F'
END
IF @fenntartoId IS NULL AND @intezmenyId IS NOT NULL BEGIN
INSERT INTO @intezmenyTable (id)
SELECT i.ID FROM T_INTEZMENY i
WHERE i.ID = @intezmenyId
AND i.TOROLT = 'F'
END
IF @fenntartoId IS NULL AND @intezmenyId IS NULL BEGIN
INSERT INTO @intezmenyTable (id)
SELECT i.ID FROM T_INTEZMENY i
WHERE i.TOROLT = 'F'
END
IF NOT EXISTS (SELECT 1 FROM @intezmenyTable) BEGIN
RETURN
END
UPDATE i
SET i.tanevId = t.ID
FROM @intezmenyTable i
INNER JOIN T_TANEV t ON t.C_INTEZMENYID = i.id
WHERE t.C_NEV = @tanevNev
AND t.TOROLT = 'F'
/* DECLARE @resultTable table(
ReportName nvarchar(30),
ReportKey1 nvarchar(255),
ReportKey2 nvarchar(255),
ReportValue int
)
*/
-- INSERT INTO @resultTable (ReportName, ReportKey1, ReportKey2, ReportValue)
SELECT 'CsoportbontásosTantargyRiport' AS ReportName, d.C_NAME AS ReportKey1, NULL AS ReportKey2, COUNT(1) AS ReportValue
FROM T_FOGLALKOZAS f
INNER JOIN T_TANTARGY t ON f.C_TANTARGYID = t.ID
INNER JOIN T_MUNKAUGYIADATOK m ON f.C_TANARID = m.C_ALKALMAZOTTID
INNER JOIN T_DICTIONARYITEMBASE d ON d.C_INTEZMENYID = t.C_INTEZMENYID AND t.C_TANEVID = d.C_TANEVID AND d.ID = t.C_TARGYKATEGORIA
INNER JOIN @intezmenyTable i ON f.C_INTEZMENYID = i.id AND f.C_TANEVID = i.tanevId
WHERE f.TOROLT = 'F'
AND EXISTS (SELECT 1 FROM T_CSOPORT WHERE ID = f.C_OSZTALYCSOPORTID)
GROUP BY d.C_NAME
--SELECT ReportName, ReportKey1, ReportKey2, ReportValue FROM @resultTable
END
GO

View file

@ -0,0 +1,113 @@
IF OBJECT_ID('sp_GetRiportTanariAdatok') IS NOT NULL BEGIN
DROP PROCEDURE sp_GetRiportTanariAdatok
END
GO
CREATE PROCEDURE sp_GetRiportTanariAdatok
@fenntartoId int,
@intezmenyId int,
@tanevNev nvarchar(20)
AS
BEGIN
SET NOCOUNT ON
DECLARE @intezmenyTable table (
id int primary key,
tanevId int
)
IF @fenntartoId IS NOT NULL AND @intezmenyId IS NOT NULL BEGIN
INSERT INTO @intezmenyTable (id)
SELECT i.ID FROM T_INTEZMENY i
WHERE i.C_FENNTARTOAZONOSITO = @fenntartoId
AND i.ID = @intezmenyId
AND i.TOROLT = 'F'
END
IF @fenntartoId IS NOT NULL AND @intezmenyId IS NULL BEGIN
INSERT INTO @intezmenyTable (id)
SELECT i.ID FROM T_INTEZMENY i
WHERE i.C_FENNTARTOAZONOSITO = @fenntartoId
AND i.TOROLT = 'F'
END
IF @fenntartoId IS NULL AND @intezmenyId IS NOT NULL BEGIN
INSERT INTO @intezmenyTable (id)
SELECT i.ID FROM T_INTEZMENY i
WHERE i.ID = @intezmenyId
AND i.TOROLT = 'F'
END
IF @fenntartoId IS NULL AND @intezmenyId IS NULL BEGIN
INSERT INTO @intezmenyTable (id)
SELECT i.ID FROM T_INTEZMENY i
WHERE i.TOROLT = 'F'
END
IF NOT EXISTS (SELECT 1 FROM @intezmenyTable) BEGIN
RETURN
END
UPDATE i
SET i.tanevId = t.ID
FROM @intezmenyTable i
INNER JOIN T_TANEV t ON t.C_INTEZMENYID = i.id
WHERE t.C_NEV = @tanevNev
AND t.TOROLT = 'F'
SELECT 'NemRiport' AS ReportName,
CASE C_NEME
WHEN 4 THEN 'Férfi'
WHEN 5 THEN ''
ELSE 'Nincs adat'
END AS ReportKey1, NULL AS ReportKey2, COUNT(1) AS ReportValue
FROM T_FELHASZNALO f
INNER JOIN @intezmenyTable i ON f.C_INTEZMENYID = i.id AND f.C_TANEVID = i.tanevId
WHERE EXISTS (SELECT 1 FROM T_MUNKAUGYIADATOK m WHERE m.C_ALKALMAZOTTID = f.ID AND m.C_BETOLTETLENALLASHELY = 'F')
AND f.TOROLT = 'F'
GROUP BY C_NEME
UNION ALL
SELECT 'MunkaviszonyRiport' AS ReportName, d.C_NAME AS ReportKey1, NULL AS ReportKey2, COUNT(1) AS ReportValue
FROM T_FELHASZNALO f
INNER JOIN T_MUNKAUGYIADATOK m ON f.ID = m.C_ALKALMAZOTTID
INNER JOIN @intezmenyTable i ON f.C_INTEZMENYID = i.id AND f.C_TANEVID = i.tanevId
LEFT JOIN T_DICTIONARYITEMBASE d ON d.C_INTEZMENYID = m.C_INTEZMENYID AND m.C_TANEVID = d.C_TANEVID AND d.ID = m.C_MUNKAVISZONYTIPUSA
WHERE m.C_BETOLTETLENALLASHELY = 'F'
AND f.TOROLT = 'F'
GROUP BY d.C_NAME
UNION ALL
SELECT 'ÖtévRiport',
CASE f.C_NEME
WHEN 4 THEN 'Férfi'
WHEN 5 THEN ''
ELSE 'Nincs adat'
END, p.nev, COUNT(1)
FROM T_FELHASZNALO f
LEFT JOIN (VALUES
('11-15', 11, 15), ('16-20', 16, 20), ('21-25', 21, 25), ('26-30', 26, 30), ('31-35', 31, 35), ('36-40', 36, 40), ('41-45', 41, 45),
('46-50', 46, 50), ('51-55', 51, 55), ('56-60', 56, 60), ('61-65', 61, 65), ('66-70', 66, 70), ('71-75', 71, 75),
('76-80', 76, 80), ('81-85', 81, 85), ('86-90', 86, 90), ('81-95', 81, 95), ('96-100', 96, 100), ('101-105', 101, 105)
) p (nev, also, felso) ON
CASE
WHEN DATEADD(YY, DATEDIFF(yy, f.C_SZULETESIDATUM, GETDATE()), f.C_SZULETESIDATUM) < GETDATE() THEN DATEDIFF(yy, f.C_SZULETESIDATUM, GETDATE())
ELSE DATEDIFF(yy, f.C_SZULETESIDATUM,GETDATE()) - 1
END BETWEEN p.also AND p.felso
INNER JOIN @intezmenyTable i ON f.C_INTEZMENYID = i.id AND f.C_TANEVID = i.tanevId
WHERE EXISTS (SELECT 1 FROM T_MUNKAUGYIADATOK m WHERE m.C_ALKALMAZOTTID = f.ID AND m.C_BETOLTETLENALLASHELY = 'F')
AND f.TOROLT = 'F'
GROUP BY f.C_NEME, p.nev
UNION ALL
SELECT 'TantargyRiport' AS ReportName, d.C_NAME AS ReportKey1, NULL AS ReportKey2, COUNT(DISTINCT f.C_TANARID) AS ReportValue
FROM T_FOGLALKOZAS f
INNER JOIN T_TANTARGY t ON f.C_TANTARGYID = t.ID
INNER JOIN T_DICTIONARYITEMBASE d ON d.C_INTEZMENYID = t.C_INTEZMENYID AND t.C_TANEVID = d.C_TANEVID AND d.ID = t.C_TARGYKATEGORIA
INNER JOIN @intezmenyTable i ON f.C_INTEZMENYID = i.id AND f.C_TANEVID = i.tanevId
WHERE f.TOROLT = 'F'
GROUP BY d.C_NAME
END

View file

@ -0,0 +1,98 @@
GO
/****** Object: StoredProcedure [dbo].[sp_GetRiportTanuloKorfa] Script Date: 2016.09.07. 15:37:13 ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
IF OBJECT_ID('[DBO].[sp_GetRiportTantargyiOktatok]') IS NOT NULL BEGIN
DROP PROCEDURE [DBO].[sp_GetRiportTantargyiOktatok]
END
GO
create PROCEDURE [sp_GetRiportTantargyiOktatok]
@fenntartoId int,
@intezmenyId int,
@targykategoriaId int
AS
BEGIN
SET NOCOUNT ON
DECLARE @intezmenyTable table (
id int primary key,
tanevId int
)
IF @fenntartoId IS NOT NULL AND @intezmenyId IS NOT NULL BEGIN
INSERT INTO @intezmenyTable (id)
SELECT i.ID FROM T_INTEZMENY i
WHERE i.C_FENNTARTOAZONOSITO = @fenntartoId
AND i.ID = @intezmenyId
AND i.TOROLT = 'F'
END
IF @fenntartoId IS NOT NULL AND @intezmenyId IS NULL BEGIN
INSERT INTO @intezmenyTable (id)
SELECT i.ID FROM T_INTEZMENY i
WHERE i.C_FENNTARTOAZONOSITO = @fenntartoId
AND i.TOROLT = 'F'
END
IF @fenntartoId IS NULL AND @intezmenyId IS NOT NULL BEGIN
INSERT INTO @intezmenyTable (id)
SELECT i.ID FROM T_INTEZMENY i
WHERE i.ID = @intezmenyId
AND i.TOROLT = 'F'
END
IF @fenntartoId IS NULL AND @intezmenyId IS NULL BEGIN
INSERT INTO @intezmenyTable (id)
SELECT i.ID FROM T_INTEZMENY i
WHERE i.TOROLT = 'F'
END
IF NOT EXISTS (SELECT 1 FROM @intezmenyTable) BEGIN
RETURN
END
UPDATE i
SET i.tanevId = t.ID
FROM @intezmenyTable i
INNER JOIN T_TANEV t ON t.C_INTEZMENYID = i.id
AND t.TOROLT = 'F'
;WITH age AS (
SELECT 0 AS kor
UNION ALL
SELECT kor + 1 FROM age WHERE kor + 1 <= 100
)
SELECT 'TantargyiOktatokRiport' ReportName,
p.nev ReportKey1,
CASE f.C_NEME
WHEN 4 THEN 'Férfi'
WHEN 5 THEN ''
ELSE 'Nincs adat'
END ReportKey2
, COUNT(1) ReportValue
FROM T_FELHASZNALO f
LEFT JOIN (VALUES
('11-15', 11, 15), ('16-20', 16, 20), ('21-25', 21, 25), ('26-30', 26, 30), ('31-35', 31, 35), ('36-40', 36, 40), ('41-45', 41, 45),
('46-50', 46, 50), ('51-55', 51, 55), ('56-60', 56, 60), ('61-65', 61, 65), ('66-70', 66, 70), ('71-75', 71, 75),
('76-80', 76, 80), ('81-85', 81, 85), ('86-90', 86, 90), ('81-95', 81, 95), ('96-100', 96, 100), ('101-105', 101, 105)
) p (nev, also, felso) ON
CASE
WHEN DATEADD(YY, DATEDIFF(yy, f.C_SZULETESIDATUM, GETDATE()), f.C_SZULETESIDATUM) < GETDATE() THEN DATEDIFF(yy, f.C_SZULETESIDATUM, GETDATE())
ELSE DATEDIFF(yy, f.C_SZULETESIDATUM,GETDATE()) - 1
END BETWEEN p.also AND p.felso
INNER JOIN @intezmenyTable i ON f.C_INTEZMENYID = i.id AND f.C_TANEVID = i.tanevId
WHERE EXISTS (SELECT 1 FROM T_ALKALMAZOTT a WHERE a.ID = f.ID)
AND EXISTS (SELECT 1 FROM T_FOGLALKOZAS
INNER JOIN T_TANTARGY ON T_FOGLALKOZAS.C_TANTARGYID = T_TANTARGY.ID
WHERE T_TANTARGY.C_TARGYKATEGORIA = @targykategoriaId
AND T_FOGLALKOZAS.C_TANARID = f.ID
)
AND f.TOROLT = 'F'
GROUP BY f.C_NEME, p.nev
END

View file

@ -0,0 +1,177 @@
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
IF OBJECT_ID('[dbo].[sp_GetSzakmaiGyNaplo]') IS NOT NULL
BEGIN
DROP PROCEDURE [dbo].[sp_GetSzakmaiGyNaplo]
END
GO
CREATE PROCEDURE [dbo].[sp_GetSzakmaiGyNaplo]
@tanevId INT,
@intezmenyId INT,
@csoportId INT,
@iskolaErdekuSzamit BIT
AS
BEGIN
SET NOCOUNT ON;
--Kezdőoldal
select ia.c_nev as IntezmenyNev, dbo.fnGetDokumentumIntezmenyCime(@tanevId) as IntezmenyCim, ia.c_omkod as OMKOD, ia.c_igazgatoneve as IntezmenyVezeto, ocs.c_nev NapkozisCsoport,
isnull(f.c_nyomtatasinev,'-') as CsoportVezeto, isnull(cs.c_csoportnaploleiras,'-') as CsoportNaploLeiras, FORMAT(cs.c_csoportnaplomegnyitasa, 'yyyy. MMMM dd.', 'hu-hu') as Megnyitas,
isnull(FORMAT(cs.c_csoportnaplozarasa, 'yyyy. MMMM dd.', 'hu-hu'),'-') as Lezaras, t.c_nev as Tanev, cs.c_csoportnaploleiras as Megjegyzes
from T_INTEZMENY_OSSZES i
inner join T_INTEZMENYADATOK_OSSZES ia on ia.c_intezmenyid=i.id
inner join T_OSZTALYCSOPORT_OSSZES ocs on ocs.c_intezmenyid=i.id
inner join T_CSOPORT_OSSZES cs on cs.id=ocs.id
left join T_FELHASZNALO_OSSZES f on f.id=cs.c_csoportvezetoid
inner join T_TANEV_OSSZES t on t.id=ia.c_tanevid
where i.id=@intezmenyid and ia.c_tanevid=@tanevid and ocs.id=@csoportId
--Csoport tanulóinak osztályai
select Osztaly.Osztaly, count(c_tanuloid) Tanulo from t_tanulocsoport tcs
inner join (select tcs.c_tanuloid Tanulo, ocs.c_nev as Osztaly, tcs.c_kilepesdatum Kilepes from T_TANULOCSOPORT_OSSZES tcs
inner join T_OSZTALY_OSSZES o on o.id=tcs.c_osztalycsoportid and o.torolt='F'
inner join T_OSZTALYCSOPORT_OSSZES ocs on o.id=ocs.id
where tcs.c_kilepesdatum is null and tcs.c_intezmenyid=@intezmenyid and tcs.c_tanevid=@tanevid) osztaly on osztaly.Tanulo=tcs.c_tanuloid and tcs.TOROLT='F'
where tcs.c_osztalycsoportid=@csoportId
group by osztaly.Osztaly
DECLARE @tanulo TABLE (Tanulo int, Osztaly nvarchar(max), RovidNev nvarchar(max))
insert into @tanulo
select f.id as Tanulo, Osztaly.Osztaly, Osztaly.Osztaly RovidNev from T_TANULOCSOPORT_OSSZES tcs
inner join (select tcs.c_tanuloid Tanulo, ocs.c_nev Osztaly from t_tanulocsoport tcs
inner join t_osztaly o on o.id=tcs.c_osztalycsoportid and o.torolt='F'
inner join t_osztalycsoport ocs on ocs.id=tcs.c_osztalycsoportid
where tcs.c_kilepesdatum is null and tcs.c_tanevid=@tanevid) Osztaly on Osztaly.Tanulo=tcs.c_tanuloid and tcs.TOROLT='F'
inner join t_felhasznalo f on f.id=tcs.c_tanuloid
where tcs.c_osztalycsoportid=@csoportId
declare @datum date=getdate()
create table #OraSorszam (TanitasioraId int, OraSorszam int)
insert into #OraSorszam
EXEC [sp_GetOraSorszamByOsztaly]
@osztalyCsoportId = @csoportId,
@datum = @datum,
@intezmenyId = @intezmenyId,
@tanevId = @tanevId
declare @mulasztas table (Csoport nvarchar(1), Tanulo int, Oraszam int)
insert into @mulasztas
select 'x' Csoport, tm.c_oratanuloiid Tanulo, oes.OraSorszam AS OraSzam from T_TANULOMULASZTAS_OSSZES tm
inner join T_TANITASIORA_OSSZES tao on tm.c_tanitasiorakid=tao.id and tao.c_tanevid=@tanevid
LEFT JOIN #OraSorszam oes on oes.TanitasioraId=tao.id
where
tao.c_osztalycsoportid=@csoportId
AND tm.torolt='F'
AND tm.c_tanevid=@tanevid
AND tm.c_intezmenyid=@intezmenyid
AND (@iskolaErdekuSzamit = 1 OR (C_IGAZOLASTIPUSA <> 1533 OR C_IGAZOLASTIPUSA IS NULL))
select f.c_nyomtatasinev Tanulo, tanulo.RovidNev Osztaly, m.[1], m.[2], m.[3], m.[4], m.[5], m.[6], m.[7], m.[8], m.[9], m.[10],
m.[11], m.[12], m.[13], m.[14], m.[15], m.[16], m.[17], m.[18],m.[19],m.[20],
m.[21], m.[22], m.[23], m.[24], m.[25], m.[26], m.[27], m.[28],m.[29],m.[30],
m.[31], m.[32], m.[33], m.[34], m.[35], m.[36], m.[37], m.[38],m.[39],m.[40],
m.[41], m.[42], m.[43], m.[44], m.[45], m.[46], m.[47], m.[48],m.[49],m.[50],
osszesM.Osszes
from @tanulo tanulo
left join (select * from @mulasztas mulasztas pivot (max(Csoport) for Oraszam in ([1], [2], [3], [4], [5], [6], [7], [8], [9], [10],
[11], [12], [13], [14], [15], [16], [17], [18],[19],[20],
[21], [22], [23], [24], [25], [26], [27], [28],[29],[30],
[31], [32], [33], [34], [35], [36], [37], [38],[39],[40],
[41], [42], [43], [44], [45], [46], [47], [48],[49],[50])) pv)m on m.Tanulo=tanulo.Tanulo
inner join T_FELHASZNALO_OSSZES f on f.id=tanulo.Tanulo
left join (select Tanulo, count(Csoport) as Osszes from @mulasztas m group by Tanulo) osszesM on osszesM.Tanulo=tanulo.Tanulo
order by f.c_nyomtatasinev
--napló
declare @letszam int=(select count(tcs.c_tanuloid) from T_TANULOCSOPORT_OSSZES tcs where tcs.c_osztalycsoportid=@csoportId and tcs.Torolt='F')
select convert(nvarchar(max),datepart(year,tao.c_orakezdete))+'. '+convert(nvarchar(max),datepart(month,tao.c_orakezdete))+'. '+convert(nvarchar(max),datepart(day,tao.c_orakezdete))+'.' as Datum,
tao.c_tema as Tema, @letszam-isnull(hianyzo.Hianyzok,0) as Letszam, f.c_nyomtatasinev as Pedagogus from T_TANITASIORA_OSSZES tao
inner join T_FOGLALKOZAS_OSSZES fog on fog.id=tao.c_foglalkozasid
left join (select tm.c_tanitasiorakid as Tanitasiora, count(tm.c_oratanuloiid) Hianyzok from T_TANULOMULASZTAS_OSSZES tm where tm.Torolt='F' group by tm.c_tanitasiorakid ) hianyzo on hianyzo.Tanitasiora=tao.id
inner join T_FELHASZNALO_OSSZES f on f.id=iif(tao.c_helyettesitotanarid is not null,tao.c_helyettesitotanarid, fog.c_tanarid)
where tao.c_osztalycsoportid=@csoportId and tao.torolt='F' and tao.c_tanevid=@tanevid and tao.c_intezmenyid=@intezmenyid
order by tao.c_orakezdete
--hiányzások
declare @hianyzas table (Tanulo int, Osztaly nvarchar(max), Honap int, IgazoltE nvarchar(1))
insert into @hianyzas
select Tanulo, RovidNev, datepart(month,tao.c_datum) as Honap, tm.c_igazolt as IgazoltE from @tanulo tanulo
left join T_TANULOMULASZTAS_OSSZES tm on tm.c_oratanuloiid=tanulo.Tanulo and tm.torolt='F' and tm.c_tanevid=@tanevid
left join T_TANITASIORA_OSSZES tao on tao.id=tm.c_tanitasiorakid and tao.c_tanevid=@tanevid
where
tao.c_osztalycsoportid=@csoportId
AND tao.torolt='F'
AND (@iskolaErdekuSzamit = 1 OR (C_IGAZOLASTIPUSA <> 1533 OR C_IGAZOLASTIPUSA IS NULL))
select f.c_nyomtatasinev as Tanulo, tanulo.RovidNev Osztaly,
--igazolt
iif(i.[1]=0,null, i.[1]) as [1], iif(i.[2]=0,null, i.[2]) as [2], iif(i.[3]=0,null, i.[3]) as [3], iif(i.[4]=0,null, i.[4]) as [4], iif(i.[5]=0,null, i.[5]) as [5],iif(i.[6]=0,null, i.[6]) as [6],
iif(i.[7]=0,null, i.[7]) as [7], iif(i.[8]=0,null, i.[8]) as [8], iif(i.[9]=0,null, i.[9]) as [9], iif(i.[10]=0,null, i.[10]) as [10], iif(i.[11]=0,null, i.[11]) as [11], iif(i.[12]=0,null, i.[12]) as [12],
--igazolatlan
iif(ni.[1]=0,null, ni.[1]) as n1, iif(ni.[2]=0,null, ni.[2]) as n2, iif(ni.[3]=0,null, ni.[3]) as n3, iif(ni.[4]=0,null, ni.[4]) as n4, iif(ni.[5]=0,null, ni.[5]) as n5,iif(ni.[6]=0,null, ni.[6]) as n6,
iif(ni.[7]=0,null, ni.[7]) as n7, iif(ni.[8]=0,null, ni.[8]) as n8, iif(ni.[9]=0,null, ni.[9]) as n9, iif(ni.[10]=0,null, ni.[10]) as n10, iif(ni.[11]=0,null, ni.[11]) as n11, iif(ni.[12]=0,null, ni.[12]) as n12,
igazolt.Igazolt, igazolatlan.Igazolatlan
from @tanulo tanulo
left join (select pv.* from @hianyzas hianyzas pivot (count(Honap) for Honap in ([1], [2], [3], [4], [5], [6], [7], [8], [9], [10], [11], [12]))pv where pv.IgazoltE='T')i on tanulo.Tanulo=i.Tanulo
left join (select pv.* from @hianyzas hianyzas pivot (count(Honap) for Honap in ([1], [2], [3], [4], [5], [6], [7], [8], [9], [10], [11], [12]))pv where pv.IgazoltE='F')ni on tanulo.Tanulo=ni.Tanulo
left join (select hianyzas.Tanulo Tanulo, count(IgazoltE) as Igazolt from @hianyzas hianyzas where hianyzas.IgazoltE='T' group by hianyzas.Tanulo) igazolt on igazolt.Tanulo=tanulo.Tanulo
left join (select hianyzas.Tanulo Tanulo, count(IgazoltE) as Igazolatlan from @hianyzas hianyzas where hianyzas.IgazoltE='F' group by hianyzas.Tanulo) igazolatlan on igazolatlan.Tanulo=tanulo.Tanulo
inner join T_FELHASZNALO_OSSZES f on f.id=tanulo.Tanulo
--Mulasztások összesen
declare @hianyzasOssz table (Osztaly int, Honap int, IgazoltE nvarchar(1))
insert into @hianyzasOssz
select @csoportId, datepart(month,tao.c_datum) as Honap, tm.c_igazolt as IgazoltE from @tanulo tanulo
left join T_TANULOMULASZTAS_OSSZES tm on tm.c_oratanuloiid=tanulo.Tanulo and tm.torolt='F' and tm.c_tanevid=@tanevid
left join T_TANITASIORA_OSSZES tao on tao.id=tm.c_tanitasiorakid and tao.c_tanevid=@tanevid
where
tao.c_osztalycsoportid=@csoportId
and tao.torolt='F'
AND (@iskolaErdekuSzamit = 1 OR (C_IGAZOLASTIPUSA <> 1533 OR C_IGAZOLASTIPUSA IS NULL))
declare @igazoltH table (Csoport int, [1] int, [2] int, [3] int, [4] int, [5] int, [6] int, [7] int, [8] int, [9] int, [10] int,
[11] int, [12] int)
insert into @igazoltH
select @csoportId, iif(i.[1]=0,null, i.[1]) as [1], iif(i.[2]=0,null, i.[2]) as [2], iif(i.[3]=0,null, i.[3]) as [3], iif(i.[4]=0,null, i.[4]) as [4], iif(i.[5]=0,null, i.[5]) as [5],iif(i.[6]=0,null, i.[6]) as [6],
iif(i.[7]=0,null, i.[7]) as [7], iif(i.[8]=0,null, i.[8]) as [8], iif(i.[9]=0,null, i.[9]) as [9], iif(i.[10]=0,null, i.[10]) as [10], iif(i.[11]=0,null, i.[11]) as [11], iif(i.[12]=0,null, i.[12]) as [12]
from @hianyzasOssz ho pivot (count(Honap) for Honap in ([1], [2], [3], [4], [5], [6], [7], [8], [9], [10], [11], [12]))i where i.IgazoltE='T'
--Mulasztott órák összesen
declare @igazolatlanH table (Csoport int, [1] int, [2] int, [3] int, [4] int, [5] int, [6] int, [7] int, [8] int, [9] int, [10] int,
[11] int, [12] int)
insert into @igazolatlanH
select @csoportId, iif(ni.[1]=0,null, ni.[1]) as n1, iif(ni.[2]=0,null, ni.[2]) as n2, iif(ni.[3]=0,null, ni.[3]) as n3, iif(ni.[4]=0,null, ni.[4]) as n4, iif(ni.[5]=0,null, ni.[5]) as n5,iif(ni.[6]=0,null, ni.[6]) as n6,
iif(ni.[7]=0,null, ni.[7]) as n7, iif(ni.[8]=0,null, ni.[8]) as n8, iif(ni.[9]=0,null, ni.[9]) as n9, iif(ni.[10]=0,null, ni.[10]) as n10, iif(ni.[11]=0,null, ni.[11]) as n11, iif(ni.[12]=0,null, ni.[12]) as n12
from @hianyzasOssz ho pivot (count(Honap) for Honap in ([1], [2], [3], [4], [5], [6], [7], [8], [9], [10], [11], [12]))ni where ni.IgazoltE='F'
select iif(i.[1]=0,null, i.[1]) as [1], iif(i.[2]=0,null, i.[2]) as [2], iif(i.[3]=0,null, i.[3]) as [3], iif(i.[4]=0,null, i.[4]) as [4], iif(i.[5]=0,null, i.[5]) as [5],iif(i.[6]=0,null, i.[6]) as [6],
iif(i.[7]=0,null, i.[7]) as [7], iif(i.[8]=0,null, i.[8]) as [8], iif(i.[9]=0,null, i.[9]) as [9], iif(i.[10]=0,null, i.[10]) as [10], iif(i.[11]=0,null, i.[11]) as [11], iif(i.[12]=0,null, i.[12]) as [12],
iif(ni.[1]=0,null, ni.[1]) as n1, iif(ni.[2]=0,null, ni.[2]) as n2, iif(ni.[3]=0,null, ni.[3]) as n3, iif(ni.[4]=0,null, ni.[4]) as n4, iif(ni.[5]=0,null, ni.[5]) as n5,iif(ni.[6]=0,null, ni.[6]) as n6,
iif(ni.[7]=0,null, ni.[7]) as n7, iif(ni.[8]=0,null, ni.[8]) as n8, iif(ni.[9]=0,null, ni.[9]) as n9, iif(ni.[10]=0,null, ni.[10]) as n10, iif(ni.[11]=0,null, ni.[11]) as n11, iif(ni.[12]=0,null, ni.[12]) as n12
from @igazolth i
left join @igazolatlanH ni on i.Csoport=ni.csoport
--Mulasztó tanulók szama
declare @Igazolt table (Csoport Int, Osszes int)
insert into @Igazolt
select @csoportId as Id, count(Tanulo) as IgazoltOsszes from (select distinct tanulo from @hianyzas where IgazoltE='T')m
select i.Osszes IgazoltOsszes, ni.Osszes IgazolatlanOsszes from @Igazolt i
left join (select @csoportId as Id, count(Tanulo) as Osszes from (select distinct tanulo from @hianyzas where IgazoltE='F')m) ni on ni.Id=i.Csoport
--Mulasztott órák összesen-összesen
declare @IgazoltOsszesOsszes table (Csoport Int, Osszes int)
insert into @IgazoltOsszesOsszes
select @csoportId, count(IgazoltE) from @hianyzasOssz where IgazoltE='T'
select ioo.Osszes IgazoltOsszesOsszes, nioo.Osszes as IgazolatlanOsszesOsszes from @IgazoltOsszesOsszes ioo
left join (select @csoportId as Id, count(IgazoltE) Osszes from @hianyzasOssz where IgazoltE='F') nioo on nioo.Id=ioo.Csoport
END
GO

View file

@ -0,0 +1,120 @@
-- ================================
-- CREATED: 2017-02-17
-- CREATOR: Telek Ákos
-- ================================
--
-- A négy paraméter az alábbi:
-- • Tanár ID-ja
-- • Kellenek-e osztályok (ez szinte mindig igaz érték, azt állítja, hogy a lekérdezés a kapcsolódó osztályokat is include-olja)
-- • Kellenek-e csoportok (ez azt állítja, hogy a lekérdezés a kapcsolódó csoportokat is include-olja)
-- • Kellenek-e azok, amelyekben "csak" tanít, azaz nem ofő, vagy ilyesmi, hanem csak tanítja (ez pl osztályfőnöki funkcióknál, mulasztások kezelése hasonló esetekben hamis, azaz 0, de például feljegyzéseknél igaz).
-- Ahol át kell vezetni (zárójelben a három változó paraméter státusza):
-- • Tanári feladatok / Feljegyzések (1,1,1), Faliújság (1,1,1) illetve Tanított tanulók (1,1,1)
-- • Osztályfőnöki feladatok / Igazolások (1,1,0), Mulasztások kezelése (1,1,0), Naplóellenőrzés (1,0,0), Osztály tanulói (1,0,0)
-- • Dokumentumoknál, ha tanár nyitja meg, akkor szintén
--
-- Használata:
--
-- DECLARE @kapcsolodoOsztalyok TABLE (ID int)
-- INSERT INTO @kapcsolodoOsztalyok (ID)
-- EXEC sp_GetTanarKapcsolodoOsztalyai (150621, 1, 1, 1)
--
-- SELECT *
-- FROM T_TABLE t
-- INNER JOIN @kapcsolodoOsztalyok k ON t.C_OSZTALYCSOPORTID = k.ID
--
IF OBJECT_ID(N'dbo.sp_GetTanarKapcsolodoOsztalyai') IS NOT NULL BEGIN
DROP PROCEDURE dbo.sp_GetTanarKapcsolodoOsztalyai
END
GO
CREATE PROCEDURE dbo.sp_GetTanarKapcsolodoOsztalyai
@tanarId int
,@osztalyKell bit = 1
,@csoportKell bit = 1
,@tartottOraKell bit = 1
AS
BEGIN
DECLARE @sql nvarchar(max)
IF 1758 IN (SELECT C_SZEREPKORTIPUS FROM T_FELHASZNALO_SZEREPKOR INNER JOIN T_SZEREPKOR ON T_SZEREPKOR.ID = T_FELHASZNALO_SZEREPKOR.C_SZEREPKORID WHERE T_FELHASZNALO_SZEREPKOR.C_FELHASZNALOID = @tanarId) BEGIN
IF @osztalyKell = 1 BEGIN
SET @sql = N'
SELECT o.ID
FROM T_OSZTALY o
WHERE C_ALTANEVID = (SELECT ID FROM T_TANEV WHERE C_AKTIV = ''T'')
AND TOROLT = ''F'''
END
IF @csoportKell = 1 BEGIN
SET @sql = ISNULL(@sql + CHAR(13) + CHAR(10) + N'UNION' + CHAR(13) + CHAR(10), N'') + N'
SELECT cs.ID
FROM T_CSOPORT cs
WHERE C_ALTANEVID = (SELECT ID FROM T_TANEV WHERE C_AKTIV = ''T'')
AND TOROLT = ''F'''
END
END
ELSE BEGIN
IF (SELECT C_MUNKAKORTIPUSA FROM T_MUNKAUGYIADATOK WHERE C_ALKALMAZOTTID = @tanarId) IN (1762, 1763, 3027, 3028) BEGIN
IF @osztalyKell = 1 BEGIN
SET @sql = N'
SELECT o.ID
FROM T_OSZTALY o
WHERE C_ALTANEVID = (SELECT ID FROM T_TANEV WHERE C_AKTIV = ''T'')
AND TOROLT = ''F'''
END
IF @csoportKell = 1 BEGIN
SET @sql = ISNULL(@sql + CHAR(13) + CHAR(10) + N'UNION' + CHAR(13) + CHAR(10), N'') + N'
SELECT cs.ID
FROM T_CSOPORT cs
WHERE C_ALTANEVID = (SELECT ID FROM T_TANEV WHERE C_AKTIV = ''T'')
AND TOROLT = ''F'''
END
END
ELSE BEGIN
IF @osztalyKell = 1 BEGIN
SET @sql = N'
SELECT ocs.ID
FROM T_OSZTALYCSOPORT ocs
INNER JOIN T_OSZTALY o ON o.ID = ocs.ID
WHERE (o.C_OSZTALYFONOKID = @tanarId OR o.C_OFOHELYETTESID = @tanarId)
AND ocs.TOROLT = ''F'''
END
IF @csoportKell = 1 BEGIN
SET @sql = ISNULL(@sql + CHAR(13) + CHAR(10) + N'UNION' + CHAR(13) + CHAR(10), N'') + N'
SELECT ocs.ID
FROM T_OSZTALYCSOPORT ocs
INNER JOIN T_CSOPORT cs ON cs.ID = ocs.ID
WHERE cs.C_CSOPORTVEZETOID = @tanarId
AND ocs.TOROLT = ''F'''
END
IF @tartottOraKell = 1 BEGIN
IF @osztalyKell = 1 BEGIN
SET @sql = ISNULL(@sql + CHAR(13) + CHAR(10) + 'UNION' + CHAR(13) + CHAR(10), '') + '
SELECT f.C_OSZTALYCSOPORTID
FROM T_FOGLALKOZAS f
INNER JOIN T_OSZTALY o ON o.id = f.C_OSZTALYCSOPORTID
WHERE f.C_TANARID = @tanarId
AND f.TOROLT = ''F''
AND o.TOROLT = ''F'''
END
IF @osztalyKell = 1 BEGIN
SET @sql = ISNULL(@sql + CHAR(13) + CHAR(10) + 'UNION' + CHAR(13) + CHAR(10), '') + '
SELECT f.C_OSZTALYCSOPORTID
FROM T_FOGLALKOZAS f
INNER JOIN T_CSOPORT cs ON cs.id = f.C_OSZTALYCSOPORTID
WHERE f.C_TANARID = @tanarId
AND f.TOROLT = ''F''
AND cs.TOROLT = ''F'''
END
END
END
END
EXEC sp_executesql @sql, N'@tanarId int', @tanarId
END
GO

View file

@ -0,0 +1,86 @@
-- =============================================
-- Description: Rudlof Kristóf - Tanár órarendi lefedettség
-- =============================================
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
IF OBJECT_ID('[dbo].[sp_GetTanarOrarendLefedettseg]') IS NOT NULL
BEGIN
DROP PROCEDURE [dbo].[sp_GetTanarOrarendLefedettseg]
END
GO
CREATE PROCEDURE [dbo].[sp_GetTanarOrarendLefedettseg]
@intezmenyId int,
@tanevId int
AS
BEGIN
SET NOCOUNT ON;
DECLARE @AktivtanevId INT = (SELECT Id FROM T_TANEV_OSSZES tanev WHERE C_AKTIV='T' AND C_INTEZMENYID = @intezmenyId AND TOROLT = 'F')
DECLARE @UtolsoNap DATE = (SELECT TOP 1 C_DATUM FROM T_TANEVRENDJE_OSSZES WHERE C_NAPTIPUSA=1395 AND C_TANEVID=@tanevid AND TOROLT='F')
,@ElsoNap DATE = (SELECT TOP 1 C_DATUM FROM T_TANEVRENDJE_OSSZES WHERE C_NAPTIPUSA=1394 AND C_TANEVID=@tanevid AND TOROLT='F')
,@IdoszakKezdete DATE
,@IdoszakVege DATE
IF (@tanevId = @AktivtanevId AND GETDATE() <= @UtolsoNap)
BEGIN
IF (GETDATE() <= @ElsoNap)
BEGIN
SET @IdoszakKezdete = (SELECT TOP 1 C_HETKEZDONAPJA FROM T_NAPTARIHET_OSSZES WHERE C_HETSORSZAMA = 1 AND TOROLT = 'F' AND C_TANEVID = @tanevId)
SET @IdoszakVege = (SELECT TOP 1 C_HETUTOLSONAPJA FROM T_NAPTARIHET_OSSZES WHERE C_HETSORSZAMA = 3 AND TOROLT = 'F' AND C_TANEVID = @tanevId)
END
ELSE
BEGIN
SET @IdoszakKezdete =(SELECT TOP 1 nh.C_HETKEZDONAPJA FROM T_NAPTARIHET_OSSZES nh WHERE CONVERT(DATE, GETDATE())>=CONVERT(DATE, NH.C_HETKEZDONAPJA) AND CONVERT(DATE, GETDATE())<=CONVERT(DATE, nh.C_HETUTOLSONAPJA) and nh.TOROLT='F' and nh.C_TANEVID=@tanevid)
SET @IdoszakVege = DATEADD(DAY, 13, @IdoszakKezdete)
END
END
ELSE
BEGIN
SET @IdoszakVege =(SELECT TOP 1 nh.C_HETUTOLSONAPJA FROM T_NAPTARIHET_OSSZES nh WHERE @UtolsoNap>=CONVERT(DATE, nh.C_HETKEZDONAPJA) AND @UtolsoNap<=CONVERT(DATE, nh.C_HETUTOLSONAPJA) AND nh.TOROLT='F' AND nh.C_TANEVID=@tanevId)
SET @IdoszakKezdete = DATEADD(DAY, -13, @IdoszakVege)
END
--órarendi lefedettség
CREATE TABLE #csoportok (CsoportId INT, Pedagogus NVARCHAR(MAX), CsoportTipus NVARCHAR(MAX), Oraszam float, Hetirend NVARCHAR(MAX))
INSERT INTO #csoportok
SELECT DISTINCT
cs.ID
,f.C_NYOMTATASINEV
,d.C_NAME
,fog.C_ORASZAM
,Hetirend.C_NAME
FROM T_FOGLALKOZAS_OSSZES fog
LEFT JOIN T_CSOPORT_OSSZES cs ON cs.Id = fog.C_OSZTALYCSOPORTID AND cs.TOROLT='F' AND cs.C_ALTANEVID=@tanevId
LEFT JOIN T_OSZTALY_OSSZES o ON o.Id = fog.C_OSZTALYCSOPORTID AND o.TOROLT='F' AND o.C_ALTANEVID=@tanevId
INNER JOIN T_ORARENDIORA_OSSZES oo ON oo.C_FOGLALKOZASID = fog.ID
AND C_ORAERVENYESSEGKEZDETE <= @IdoszakVege
AND C_ORAERVENYESSEGVEGE >= @IdoszakKezdete
AND oo.C_TANEVID=@tanevid
AND oo.torolt='F'
INNER JOIN T_FELHASZNALO_OSSZES f ON f.ID=fog.C_TANARID AND f.C_INTEZMENYID=@intezmenyId AND f.C_TANEVID=@tanevid AND f.TOROLT='F'
LEFT JOIN (SELECT DISTINCT d.ID, d.C_NAME FROM T_DICTIONARYITEMBASE_OSSZES d)d ON d.ID=cs.C_TIPUSA
INNER JOIN (SELECT DISTINCT d.ID, d.C_NAME FROM T_DICTIONARYITEMBASE_OSSZES d) Hetirend ON Hetirend.ID=oo.C_HETIREND
SELECT Pedagogus COLUMN456, ISNULL(CsoportTipus, 'Osztály') COLUMN262, SUM(Oraszam) COLUMN3670 FROM #csoportok cs GROUP BY Pedagogus, CsoportTipus ORDER BY Pedagogus, ISNULL(CsoportTipus, 'Osztály')
--órarendi lefedettség hetirenden
DECLARE @cols AS NVARCHAR(MAX),
@query AS NVARCHAR(MAX)
SELECT DISTINCT @cols= ISNULL(@cols + ',','') + QUOTENAME(Hetirend) FROM #csoportok
SET @query='SELECT DISTINCT Pedagogus COLUMN456, ISNULL(CsoportTipus, ''Osztály'') COLUMN262, '+@cols+' FROM #csoportok cs PIVOT (SUM(Oraszam) FOR Hetirend IN ('+@cols+')) pv ORDER BY Pedagogus, ISNULL(CsoportTipus, ''Osztály'')'
EXEC sp_executesql @query;
DROP TABLE #csoportok
END
GO

View file

@ -0,0 +1,244 @@
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
IF OBJECT_ID('[dbo].[sp_GetTanoranKivuliNaplo]') IS NOT NULL
BEGIN
DROP PROCEDURE [dbo].[sp_GetTanoranKivuliNaplo]
END
GO
CREATE PROCEDURE [dbo].[sp_GetTanoranKivuliNaplo]
@tanevId INT,
@intezmenyId INT,
@csoportId INT,
@iskolaErdekuSzamit BIT
AS
BEGIN
SET NOCOUNT ON;
--Fejlecoldal (Fejléc)
SELECT
ia.C_NEV IntezmenyNev
,dbo.fnGetDokumentumIntezmenyCime(@tanevId) as IntezmenyCim
,ia.C_OMKOD OMKOD
,ia.C_IGAZGATONEVE IntezmenyVezeto
,ocs.C_NEV Csoport
,ISNULL(f.C_NYOMTATASINEV,'-') CsoportVezeto
,ISNULL(cs.C_CSOPORTNAPLOLEIRAS,'-') CsoportNaploLeiras
,FORMAT(cs.C_CSOPORTNAPLOMEGNYITASA, 'yyyy. MMMM dd.', 'hu-hu') Megnyitas
,ISNULL(FORMAT(cs.C_CSOPORTNAPLOZARASA, 'yyyy. MMMM dd.', 'hu-hu'),'-') Lezaras
,t.C_NEV as Tanev
,cs.C_CSOPORTNAPLOLEIRAS Megjegyzes
FROM T_INTEZMENY_OSSZES i
INNER JOIN T_INTEZMENYADATOK_OSSZES ia on ia.C_INTEZMENYID=i.ID
INNER JOIN T_OSZTALYCSOPORT_OSSZES ocs on ocs.C_INTEZMENYID=i.ID
INNER JOIN T_CSOPORT_OSSZES cs on cs.ID=ocs.ID
LEFT JOIN T_FELHASZNALO_OSSZES f on f.ID=cs.C_CSOPORTVEZETOID
INNER JOIN T_TANEV_OSSZES t on t.ID=ia.C_TANEVID
WHERE
i.ID=@intezmenyid
AND ia.C_TANEVID=@tanevid
AND ocs.ID=@csoportId
--Osztaly (Csoport tanulóinak osztályai)
SELECT
Osztaly.Osztaly Osztaly
,COUNT(C_TANULOID) Tanulo
FROM T_TANULOCSOPORT_OSSZES tcs
INNER JOIN (SELECT tcs.C_TANULOID Tanulo, ocs.C_NEV as Osztaly, tcs.C_KILEPESDATUM Kilepes FROM T_TANULOCSOPORT_OSSZES tcs
INNER JOIN T_OSZTALY_OSSZES o on o.id=tcs.C_OSZTALYCSOPORTID AND o.TOROLT='F'
INNER JOIN T_OSZTALYCSOPORT_OSSZES ocs on o.ID=ocs.ID
WHERE tcs.TOROLT='F') osztaly on osztaly.Tanulo=tcs.C_TANULOID
WHERE tcs.C_OSZTALYCSOPORTID=@csoportId AND tcs.TOROLT='F' AND tcs.C_KILEPESDATUM IS NULL
GROUP BY osztaly.Osztaly
--Mulasztasok
DECLARE @datum DATE = GETDATE()
CREATE TABLE #OraSorszam (TanitasioraId INT, OraSorszam INT)
INSERT INTO #OraSorszam
EXEC sp_GetOraSorszamByOsztaly
@osztalyCsoportId = @csoportId,
@datum = @datum,
@intezmenyId = @intezmenyId,
@tanevId = @tanevId
DECLARE @tanulo TABLE (Tanulo INT, Osztaly NVARCHAR(MAX))
DECLARE @FelevVege DATE = (SELECT TOP 1 C_DATUM FROM T_TANEVRENDJE_OSSZES te WHERE te.C_NAPTIPUSA=1400 AND te.C_INTEZMENYID=@intezmenyid AND te.C_TANEVID=@tanevid AND te.TOROLT='F')
INSERT INTO @tanulo
SELECT
f.id as Tanulo
,Osztaly.Osztaly Osztaly
FROM T_TANULOCSOPORT_OSSZES tcs
INNER JOIN (SELECT tcs.C_TANULOID Tanulo, ocs.C_NEV Osztaly from T_TANULOCSOPORT_OSSZES tcs
INNER JOIN T_OSZTALY_OSSZES o on o.id=tcs.C_OSZTALYCSOPORTID AND o.TOROLT='F'
INNER JOIN T_OSZTALYCSOPORT_OSSZES ocs on ocs.id=tcs.C_OSZTALYCSOPORTID
WHERE tcs.c_tanevid=@tanevid AND tcs.TOROLT = 'F') Osztaly on Osztaly.Tanulo=tcs.C_TANULOID
INNER JOIN T_FELHASZNALO_OSSZES f on f.id=tcs.C_TANULOID
WHERE
tcs.C_OSZTALYCSOPORTID=@csoportId
AND tcs.TOROLT='F'
DECLARE @mulasztas TABLE (Csoport NVARCHAR(1), Tanulo INT, Oraszam INT, Felev INT)
INSERT INTO @mulasztas
SELECT
'x' Csoport
,tm.C_ORATANULOIID Tanulo
,oes.OraSorszam OraSzam
,iif(tao.C_DATUM < @FelevVege,1,2)
FROM T_TANULOMULASZTAS_OSSZES tm
INNER JOIN T_TANITASIORA_OSSZES tao ON tm.C_TANITASIORAKID=tao.ID
LEFT JOIN #OraSorszam oes ON oes.TanitasioraId=tao.ID
WHERE
tao.C_OSZTALYCSOPORTID=@csoportId
AND tao.TOROLT='F'
and tm.TOROLT='F'
AND tm.C_TANEVID=@tanevid
AND tm.c_TIPUS IN (1499,1500)
AND (@iskolaErdekuSzamit = 1 OR (C_IGAZOLASTIPUSA <> 1533 OR C_IGAZOLASTIPUSA IS NULL))
SELECT f.C_NYOMTATASINEV Tanulo, tanulo.Osztaly,
m.[1], m.[2], m.[3], m.[4], m.[5], m.[6], m.[7], m.[8], m.[9], m.[10],
m.[11], m.[12], m.[13], m.[14], m.[15], m.[16], m.[17], m.[18],m.[19],m.[20],
m.[21], m.[22], m.[23], m.[24], m.[25], m.[26], m.[27], m.[28],m.[29],m.[30],
m.[31], m.[32], m.[33], m.[34], m.[35], m.[36], m.[37], m.[38],m.[39],m.[40],
m.[41], m.[42], m.[43], m.[44], m.[45], m.[46], m.[47], m.[48],m.[49],m.[50],
osszesM.Osszes, /*1. félév*/
m2.[1] m1, m2.[2] m2, m2.[3] m3, m2.[4] m4, m2.[5] m5, m2.[6] m6, m2.[7] m7, m2.[8] m8, m2.[9] m9, m2.[10] m10,
m2.[11] m11, m2.[12] m12, m2.[13] m13, m2.[14] m14, m2.[15] m15, m2.[16] m16, m2.[17] m17, m2.[18] m18, m2.[19] m19, m2.[20] m20,
m2.[21] m21, m2.[22] m22, m2.[23] m23, m2.[24] m24, m2.[25] m25, m2.[26] m26, m2.[27] m27, m2.[28] m28, m2.[29] m29, m2.[30] m30,
m2.[31] m31, m2.[32] m32, m2.[33] m33, m2.[34] m34, m2.[35] m35, m2.[36] m36, m2.[37] m37, m2.[38] m38, m2.[39] m39, m2.[40] m40,
m2.[41] m41, m2.[42] m42, m2.[43] m43, m2.[44] m44, m2.[45] m45, m2.[46] m46, m2.[47] m47, m2.[48] m48, m2.[49] m49, m2.[50] m50,
osszesM2.Osszes OsszesM/*2. félév*/
FROM @tanulo tanulo
/* 1. félév*/
LEFT JOIN (SELECT * FROM @mulasztas mulasztas PIVOT (MAX(Csoport) FOR Oraszam IN ([1], [2], [3], [4], [5], [6], [7], [8], [9], [10],
[11], [12], [13], [14], [15], [16], [17], [18],[19],[20],
[21], [22], [23], [24], [25], [26], [27], [28],[29],[30],
[31], [32], [33], [34], [35], [36], [37], [38],[39],[40],
[41], [42], [43], [44], [45], [46], [47], [48],[49],[50])) pv WHERE pv.Felev=1)m ON m.Tanulo=tanulo.Tanulo
LEFT JOIN (SELECT * FROM @mulasztas mulasztas PIVOT (MAX(Csoport) FOR Oraszam IN ([1], [2], [3], [4], [5], [6], [7], [8], [9], [10],
[11], [12], [13], [14], [15], [16], [17], [18],[19],[20],
[21], [22], [23], [24], [25], [26], [27], [28],[29],[30],
[31], [32], [33], [34], [35], [36], [37], [38],[39],[40],
[41], [42], [43], [44], [45], [46], [47], [48],[49],[50])) pv WHERE pv.Felev=2)m2 ON m2.Tanulo=tanulo.Tanulo
INNER JOIN T_FELHASZNALO_OSSZES f on f.id=tanulo.Tanulo
LEFT JOIN(SELECT Tanulo, COUNT(Csoport) Osszes FROM @mulasztas m WHERE Felev=1 GROUP BY Tanulo) osszesM ON osszesM.Tanulo=tanulo.Tanulo
LEFT JOIN (SELECT Tanulo, COUNT(Csoport) Osszes FROM @mulasztas m WHERE Felev=2 GROUP BY Tanulo) osszesM2 ON osszesM2.Tanulo=tanulo.Tanulo
ORDER BY f.C_NYOMTATASINEV
--Napló
DECLARE @letszam INT=(SELECT COUNT(tcs.C_TANULOID) FROM T_TANULOCSOPORT_OSSZES tcs WHERE tcs.C_OSZTALYCSOPORTID=@csoportId AND tcs.TOROLT='F')
SELECT
FORMAT(tao.C_DATUM, 'yyyy.MM.dd.') Datum
,tao.C_TEMA Tema
,@letszam-isnull(hianyzo.Hianyzok,0)Letszam
,f.C_NYOMTATASINEV Pedagogus
FROM T_TANITASIORA_OSSZES tao
LEFT JOIN T_FOGLALKOZAS_OSSZES fog ON fog.ID=tao.C_FOGLALKOZASID
LEFT JOIN (SELECT tm.C_TANITASIORAKID Tanitasiora, COUNT(tm.C_ORATANULOIID) Hianyzok from T_TANULOMULASZTAS_OSSZES tm where tm.torolt='F' AND C_TIPUS IN (1499,1500) GROUP BY tm.C_TANITASIORAKID ) hianyzo on hianyzo.Tanitasiora=tao.ID
LEFT JOIN T_FELHASZNALO_OSSZES f ON f.id=IIF(tao.C_HELYETTESITOTANARID IS NOT NULL,tao.C_HELYETTESITOTANARID, fog.C_TANARID)
WHERE
tao.C_OSZTALYCSOPORTID=@csoportId
AND tao.TOROLT='F'
ORDER BY tao.C_ORAKEZDETE
--Hiányzások
DECLARE @hianyzas TABLE (Tanulo INT, Osztaly NVARCHAR(MAX), Honap INT, IgazoltE NVARCHAR(1))
INSERT INTO @hianyzas
SELECT
Tanulo
,Osztaly
,DATEPART(MONTH,tao.C_DATUM) Honap
,tm.C_IGAZOLT IgazoltE
FROM @tanulo tanulo
LEFT JOIN T_TANULOMULASZTAS_OSSZES tm ON tm.C_ORATANULOIID=tanulo.Tanulo AND tm.TOROLT='F' AND tm.C_TANEVID=@tanevid
LEFT JOIN T_TANITASIORA_OSSZES tao ON tao.id=tm.C_TANITASIORAKID AND tao.C_TANEVID=@tanevid
WHERE
tao.C_OSZTALYCSOPORTID=@csoportId
AND C_TIPUS IN (1499,1500)
AND (@iskolaErdekuSzamit = 1 OR (C_IGAZOLASTIPUSA <> 1533 OR C_IGAZOLASTIPUSA IS NULL))
AND tao.torolt='F'
SELECT f.C_NYOMTATASINEV as Tanulo, tanulo.Osztaly,
--igazolt
iif(i.[1]=0,null, i.[1]) as [1], iif(i.[2]=0,null, i.[2]) as [2], iif(i.[3]=0,null, i.[3]) as [3], iif(i.[4]=0,null, i.[4]) as [4], iif(i.[5]=0,null, i.[5]) as [5],iif(i.[6]=0,null, i.[6]) as [6],
iif(i.[7]=0,null, i.[7]) as [7], iif(i.[8]=0,null, i.[8]) as [8], iif(i.[9]=0,null, i.[9]) as [9], iif(i.[10]=0,null, i.[10]) as [10], iif(i.[11]=0,null, i.[11]) as [11], iif(i.[12]=0,null, i.[12]) as [12],
--igazolatlan
iif(ni.[1]=0,null, ni.[1]) as n1, iif(ni.[2]=0,null, ni.[2]) as n2, iif(ni.[3]=0,null, ni.[3]) as n3, iif(ni.[4]=0,null, ni.[4]) as n4, iif(ni.[5]=0,null, ni.[5]) as n5,iif(ni.[6]=0,null, ni.[6]) as n6,
iif(ni.[7]=0,null, ni.[7]) as n7, iif(ni.[8]=0,null, ni.[8]) as n8, iif(ni.[9]=0,null, ni.[9]) as n9, iif(ni.[10]=0,null, ni.[10]) as n10, iif(ni.[11]=0,null, ni.[11]) as n11, iif(ni.[12]=0,null, ni.[12]) as n12,
igazolt.Igazolt, igazolatlan.Igazolatlan
FROM @tanulo tanulo
LEFT JOIN (SELECT pv.* from @hianyzas hianyzas PIVOT (COUNT(Honap) FOR Honap IN ([1], [2], [3], [4], [5], [6], [7], [8], [9], [10], [11], [12]))pv WHERE pv.IgazoltE='T')i ON tanulo.Tanulo=i.Tanulo
LEFT JOIN (SELECT pv.* from @hianyzas hianyzas PIVOT (COUNT(Honap) FOR Honap IN ([1], [2], [3], [4], [5], [6], [7], [8], [9], [10], [11], [12]))pv WHERE pv.IgazoltE='F')ni ON tanulo.Tanulo=ni.Tanulo
LEFT JOIN (SELECT hianyzas.Tanulo Tanulo, COUNT(IgazoltE) as Igazolt from @hianyzas hianyzas WHERE hianyzas.IgazoltE='T' GROUP BY hianyzas.Tanulo) igazolt ON igazolt.Tanulo=tanulo.Tanulo
LEFT JOIN (SELECT hianyzas.Tanulo Tanulo, COUNT(IgazoltE) as Igazolatlan from @hianyzas hianyzas WHERE hianyzas.IgazoltE='F' GROUP BY hianyzas.Tanulo) igazolatlan ON igazolatlan.Tanulo=tanulo.Tanulo
INNER JOIN T_FELHASZNALO_OSSZES f ON f.id=tanulo.Tanulo
ORDER BY C_NYOMTATASINEV
--Hiányzások (Összesítő)
DECLARE @hianyzasOssz TABLE (Osztaly INT, Honap INT, IgazoltE NVARCHAR(1))
INSERT INTO @hianyzasOssz
SELECT
@csoportId
,DATEPART(MONTH,tao.C_DATUM) Honap
,tm.C_IGAZOLT IgazoltE
FROM @tanulo tanulo
LEFT JOIN T_TANULOMULASZTAS_OSSZES tm ON tm.C_ORATANULOIID=tanulo.Tanulo AND tm.TOROLT='F' AND tm.C_TANEVID=@tanevid
LEFT JOIN T_TANITASIORA_OSSZES tao ON tao.id=tm.C_TANITASIORAKID AND tao.C_TANEVID=@tanevid
WHERE
tao.C_OSZTALYCSOPORTID=@csoportId
AND tao.TOROLT='F'
AND C_TIPUS IN (1499,1500)
AND (@iskolaErdekuSzamit = 1 OR (C_IGAZOLASTIPUSA <> 1533 OR C_IGAZOLASTIPUSA IS NULL))
DECLARE @igazoltH TABLE (Csoport INT, [1] INT, [2] INT, [3] INT, [4] INT, [5] INT, [6] INT, [7] INT, [8] INT, [9] INT, [10] INT,
[11] INT, [12] INT)
INSERT INTO @igazoltH
SELECT @csoportId, iif(i.[1]=0,null, i.[1]) as [1], iif(i.[2]=0,null, i.[2]) as [2], iif(i.[3]=0,null, i.[3]) as [3], iif(i.[4]=0,null, i.[4]) as [4], iif(i.[5]=0,null, i.[5]) as [5],iif(i.[6]=0,null, i.[6]) as [6],
iif(i.[7]=0,null, i.[7]) as [7], iif(i.[8]=0,null, i.[8]) as [8], iif(i.[9]=0,null, i.[9]) as [9], iif(i.[10]=0,null, i.[10]) as [10], iif(i.[11]=0,null, i.[11]) as [11], iif(i.[12]=0,null, i.[12]) as [12]
from @hianyzasOssz ho pivot (count(Honap) for Honap in ([1], [2], [3], [4], [5], [6], [7], [8], [9], [10], [11], [12]))i where i.IgazoltE='T'
DECLARE @igazolatlanH TABLE (Csoport INT, [1] INT, [2] INT, [3] INT, [4] INT, [5] INT, [6] INT, [7] INT, [8] INT, [9] INT, [10] INT,
[11] INT, [12] INT)
INSERT INTO @igazolatlanH
SELECT @csoportId, iif(ni.[1]=0,null, ni.[1]) as n1, iif(ni.[2]=0,null, ni.[2]) as n2, iif(ni.[3]=0,null, ni.[3]) as n3, iif(ni.[4]=0,null, ni.[4]) as n4, iif(ni.[5]=0,null, ni.[5]) as n5,iif(ni.[6]=0,null, ni.[6]) as n6,
iif(ni.[7]=0,null, ni.[7]) as n7, iif(ni.[8]=0,null, ni.[8]) as n8, iif(ni.[9]=0,null, ni.[9]) as n9, iif(ni.[10]=0,null, ni.[10]) as n10, iif(ni.[11]=0,null, ni.[11]) as n11, iif(ni.[12]=0,null, ni.[12]) as n12
from @hianyzasOssz ho pivot (count(Honap) for Honap in ([1], [2], [3], [4], [5], [6], [7], [8], [9], [10], [11], [12]))ni where ni.IgazoltE='F'
--Hiányzás (Mulasztott órák összesen)
SELECT iif(i.[1]=0,null, i.[1]) as [1], iif(i.[2]=0,null, i.[2]) as [2], iif(i.[3]=0,null, i.[3]) as [3], iif(i.[4]=0,null, i.[4]) as [4], iif(i.[5]=0,null, i.[5]) as [5],iif(i.[6]=0,null, i.[6]) as [6],
iif(i.[7]=0,null, i.[7]) as [7], iif(i.[8]=0,null, i.[8]) as [8], iif(i.[9]=0,null, i.[9]) as [9], iif(i.[10]=0,null, i.[10]) as [10], iif(i.[11]=0,null, i.[11]) as [11], iif(i.[12]=0,null, i.[12]) as [12],
iif(ni.[1]=0,null, ni.[1]) as n1, iif(ni.[2]=0,null, ni.[2]) as n2, iif(ni.[3]=0,null, ni.[3]) as n3, iif(ni.[4]=0,null, ni.[4]) as n4, iif(ni.[5]=0,null, ni.[5]) as n5,iif(ni.[6]=0,null, ni.[6]) as n6,
iif(ni.[7]=0,null, ni.[7]) as n7, iif(ni.[8]=0,null, ni.[8]) as n8, iif(ni.[9]=0,null, ni.[9]) as n9, iif(ni.[10]=0,null, ni.[10]) as n10, iif(ni.[11]=0,null, ni.[11]) as n11, iif(ni.[12]=0,null, ni.[12]) as n12
from @igazolth i
left join @igazolatlanH ni on ni.Csoport=i.csoport
--Hiányzás (Mulasztó tanulók száma)
DECLARE @Igazolt TABLE (Csoport INT, Osszes INT)
INSERT INTO @Igazolt
SELECT @csoportId Id, COUNT(Tanulo) IgazoltOsszes FROM (SELECT DISTINCT tanulo FROM @hianyzas WHERE IgazoltE='T')m
SELECT i.Osszes IgazoltOsszes, ni.Osszes IgazolatlanOsszes FROM @Igazolt i
LEFT JOIN (SELECT @csoportId Id, COUNT(Tanulo) as Osszes FROM (SELECT DISTINCT tanulo FROM @hianyzas WHERE IgazoltE='F')m) ni ON ni.Id=i.Csoport
--Hiányzás (Mulasztott órák Összesen-Összesen)
DECLARE @IgazoltOsszesOsszes TABLE (Csoport INT, Osszes INT)
INSERT INTO @IgazoltOsszesOsszes
SELECT @csoportId, COUNT(IgazoltE) FROM @hianyzasOssz WHERE IgazoltE='T'
SELECT ioo.Osszes IgazoltOsszesOsszes, nioo.Osszes as IgazolatlanOsszesOsszes FROM @IgazoltOsszesOsszes ioo
LEFT JOIN (SELECT @csoportId Id, count(IgazoltE) Osszes FROM @hianyzasOssz WHERE IgazoltE='F') nioo ON nioo.Id=ioo.Csoport
END
GO

View file

@ -0,0 +1,63 @@
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
IF OBJECT_ID('sp_GetTantargyStatuszRiport', 'P') IS NOT NULL BEGIN
DROP PROCEDURE sp_GetTantargyStatuszRiport
END
GO
CREATE PROCEDURE sp_GetTantargyStatuszRiport
@fenntartoId nvarchar(max) = null,
@intezmenyId int = null,
@tanevId int = null,
@statuszSzam int = null
AS
BEGIN
SET NOCOUNT ON;
select
ROW_NUMBER() OVER(ORDER BY TT.C_TARGYKATEGORIA) AS ID,
TT.C_TARGYKATEGORIA TargyKategoriaTipus,
SUM(F.C_ORASZAM) OsszesOraszam,
cast(SUM(F.C_ORASZAM) / @statuszSzam as decimal(10,2)) ElmeletiStatuszSzam,
isnull(STATUSZ.StatuszSzam, 0) StatuszSzam,
count(DISTINCT F.C_TANARID) PedagogusSzam
from T_FOGLALKOZAS F
inner join T_TANTARGY TT on TT.ID = F.C_TANTARGYID and TT.TOROLT = 'F'
inner join T_INTEZMENYADATOK IA on IA.C_TANEVID = F.C_TANEVID and IA.C_INTEZMENYID = F.C_INTEZMENYID and IA.TOROLT = 'F'
inner join T_INTEZMENY I on I.ID = IA.C_INTEZMENYID and I.TOROLT = 'F'
inner join
(select
SZUM.TargyKategoria,
cast(sum(SZUM.StatuszSzam) as decimal(10,2)) StatuszSzam
from
(
select
TT.C_TARGYKATEGORIA TargyKategoria,
IIF(SUM(T_FOGLALKOZAS.C_ORASZAM) <= Kotelezo - Kedvezmeny,
CAST(SUM(T_FOGLALKOZAS.C_ORASZAM) AS DECIMAL) / CAST((Kotelezo - Kedvezmeny)AS DECIMAL),
1 + (cast((SUM(T_FOGLALKOZAS.C_ORASZAM) - (Kotelezo - Kedvezmeny)) as integer) / @statuszSzam)) StatuszSzam
from T_FOGLALKOZAS
inner join T_ALKALMAZOTT on T_ALKALMAZOTT.ID = T_FOGLALKOZAS.C_TANARID and T_ALKALMAZOTT.TOROLT = 'F'
inner join T_MUNKAUGYIADATOK on T_MUNKAUGYIADATOK.C_ALKALMAZOTTID = T_ALKALMAZOTT.ID and T_MUNKAUGYIADATOK.TOROLT ='F'
INNER JOIN (SELECT C_ALKALMAZOTTID, C_KOTELEZOORASZAM Kotelezo, IIF(C_MUNKAIDOKEDVEZMENYORASZAM IS NULL, 0, C_MUNKAIDOKEDVEZMENYORASZAM) Kedvezmeny FROM T_MUNKAUGYIADATOK
WHERE TOROLT = 'F' and C_KOTELEZOORASZAM > 0 and C_KOTELEZOORASZAM - isnull(C_MUNKAIDOKEDVEZMENYORASZAM, 0) > 0
) MunkaU ON
MunkaU.C_ALKALMAZOTTID = T_ALKALMAZOTT.ID
inner join T_TANTARGY TT on TT.ID = T_FOGLALKOZAS.C_TANTARGYID and TT.TOROLT = 'F'
where T_FOGLALKOZAS.TOROLT = 'F'
and T_MUNKAUGYIADATOK.C_KOTELEZOORASZAM is not null
and (T_FOGLALKOZAS.C_INTEZMENYID = @intezmenyId or @intezmenyId is null)
and (T_FOGLALKOZAS.C_TANEVID = @tanevId or @tanevId is null)
group by T_FOGLALKOZAS.C_INTEZMENYID, T_FOGLALKOZAS.C_TANEVID,TT.C_TARGYKATEGORIA, MunkaU.Kotelezo,MunkaU.Kedvezmeny
) SZUM
group by SZUM.TargyKategoria ) STATUSZ
on STATUSZ.TargyKategoria = TT.C_TARGYKATEGORIA
where F.TOROLT = 'F'
and (I.C_FENNTARTOAZONOSITO = @fenntartoId or @fenntartoId is null)
and (I.ID = @intezmenyId or @intezmenyId is null)
and (IA.C_TANEVID = @tanevId or @tanevId is null)
group by TT.C_TARGYKATEGORIA, STATUSZ.StatuszSzam
END

View file

@ -0,0 +1,92 @@
GO
/****** Object: StoredProcedure [dbo].[sp_GetTantargyakElmaradtOraiTanaronkent] Script Date: 2016.01.28. 16:21:17 ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
IF OBJECT_ID('[dbo].[sp_GetTantargyakElmaradtOraiTanaronkent]') IS NOT NULL
BEGIN
DROP PROCEDURE [dbo].[sp_GetTantargyakElmaradtOraiTanaronkent]
END
GO
-- =============================================
-- Author: <Kelemen Attila>
-- Create date: <2016. 01. 07.>
-- Description: <Elmaradt órák tanáronként, tantárgyanként>
-- =============================================
CREATE PROCEDURE [dbo].[sp_GetTantargyakElmaradtOraiTanaronkent]
@tanevID int,
@intezmenyId int
AS
BEGIN
-- SET NOCOUNT ON added to prevent extra result sets from
-- interfering with SELECT statements.
SET NOCOUNT ON;
select * from
--Évfolyamonként
(select
T_FELHASZNALO_OSSZES.ID TanarID,
T_FELHASZNALO_OSSZES.C_NYOMTATASINEV TanarNev,
T_TANTARGY_OSSZES.C_NEV Tantargy,
T_OSZTALYCSOPORT_OSSZES.C_EVFOLYAMTIPUSA Evfolyam,
COUNT(T_TANITASIORA_OSSZES.ID) MegtartottOrak
FROM T_TANTARGY_OSSZES
right JOIN T_TANITASIORA_OSSZES on T_TANTARGY_OSSZES.ID = T_TANITASIORA_OSSZES.C_TANTARGYID
INNER JOIN T_FOGLALKOZAS_OSSZES ON T_TANTARGY_OSSZES.ID = T_FOGLALKOZAS_OSSZES.C_TANTARGYID
INNER JOIN T_OSZTALYCSOPORT_OSSZES ON T_FOGLALKOZAS_OSSZES.C_OSZTALYCSOPORTID = T_OSZTALYCSOPORT_OSSZES.ID
INNER JOIN T_OSZTALY_OSSZES ON T_OSZTALYCSOPORT_OSSZES.ID = T_OSZTALY_OSSZES.ID
INNER JOIN T_FELHASZNALO_OSSZES ON T_FELHASZNALO_OSSZES.ID = T_FOGLALKOZAS_OSSZES.C_TANARID
WHERE
T_TANTARGY_OSSZES.TOROLT='F'
AND T_TANITASIORA_OSSZES.TOROLT='F'
AND T_FOGLALKOZAS_OSSZES.TOROLT='F'
AND T_OSZTALYCSOPORT_OSSZES.TOROLT='F'
AND T_OSZTALY_OSSZES.TOROLT='F'
AND T_FOGLALKOZAS_OSSZES.C_FOGLALKOZASTIPUSA = 1339 --Tanórai foglalkozás
AND T_TANITASIORA_OSSZES.C_MEGTARTOTT='F'
AND T_TANTARGY_OSSZES.C_TANEVID = @tanevID
AND T_TANTARGY_OSSZES.C_TANEVID = @intezmenyId
GROUP BY T_FELHASZNALO_OSSZES.ID, T_TANTARGY_OSSZES.C_NEV, T_OSZTALYCSOPORT_OSSZES.C_EVFOLYAMTIPUSA, T_FELHASZNALO_OSSZES.C_NYOMTATASINEV
UNION
--Összes
select
T_FELHASZNALO_OSSZES.ID TanarID,
T_FELHASZNALO_OSSZES.C_NYOMTATASINEV TanarNeve,
T_TANTARGY_OSSZES.C_NEV Tantargy,
NULL Evfolyam,
COUNT(T_TANITASIORA_OSSZES.ID) MegtartottOrak
FROM T_TANTARGY_OSSZES
INNER JOIN T_TANITASIORA_OSSZES on T_TANTARGY_OSSZES.ID = T_TANITASIORA_OSSZES.C_TANTARGYID
INNER JOIN T_FOGLALKOZAS_OSSZES ON T_TANTARGY_OSSZES.ID = T_FOGLALKOZAS_OSSZES.C_TANTARGYID
INNER JOIN T_OSZTALYCSOPORT_OSSZES ON T_FOGLALKOZAS_OSSZES.C_OSZTALYCSOPORTID = T_OSZTALYCSOPORT_OSSZES.ID
INNER JOIN T_OSZTALY_OSSZES ON T_OSZTALYCSOPORT_OSSZES.ID = T_OSZTALY_OSSZES.ID
INNER JOIN T_FELHASZNALO_OSSZES ON T_FELHASZNALO_OSSZES.ID = T_FOGLALKOZAS_OSSZES.C_TANARID
WHERE
T_TANTARGY_OSSZES.TOROLT='F'
AND T_TANITASIORA_OSSZES.TOROLT='F'
AND T_FOGLALKOZAS_OSSZES.TOROLT='F'
AND T_OSZTALYCSOPORT_OSSZES.TOROLT='F'
AND T_OSZTALY_OSSZES.TOROLT='F'
AND T_TANITASIORA_OSSZES.C_MEGTARTOTT='F'
AND T_TANTARGY_OSSZES.C_TANEVID = @tanevID
AND T_TANTARGY_OSSZES.C_TANEVID = @intezmenyId
AND T_FOGLALKOZAS_OSSZES.C_FOGLALKOZASTIPUSA = 1339 --Tanórai foglalkozás
GROUP BY T_FELHASZNALO_OSSZES.ID, T_TANTARGY_OSSZES.C_NEV, T_FELHASZNALO_OSSZES.C_NYOMTATASINEV) Orak
order by TanarNev, Tantargy, Evfolyam
END
GO

View file

@ -0,0 +1,92 @@
GO
/****** Object: StoredProcedure [dbo].[sp_GetTantargyakMegtartottOraiTanaronkent] Script Date: 2016.01.28. 16:22:53 ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
IF OBJECT_ID('[dbo].[sp_GetTantargyakMegtartottOraiTanaronkent]') IS NOT NULL
BEGIN
DROP PROCEDURE [dbo].[sp_GetTantargyakMegtartottOraiTanaronkent]
END
GO
-- =============================================
-- Author: <Kelemen Attila>
-- Create date: <2016. 01. 07.>
-- Description: <Megtartott órák tanáronként, tantárgyanként>
-- =============================================
CREATE PROCEDURE [dbo].[sp_GetTantargyakMegtartottOraiTanaronkent]
@tanevID int,
@intezmenyId int
AS
BEGIN
-- SET NOCOUNT ON added to prevent extra result sets from
-- interfering with SELECT statements.
SET NOCOUNT ON;
select * from
--Évfolyamonként
(select
T_FELHASZNALO_OSSZES.ID TanarID,
T_FELHASZNALO_OSSZES.C_NYOMTATASINEV TanarNev,
T_TANTARGY_OSSZES.C_NEV Tantargy,
T_OSZTALYCSOPORT_OSSZES.C_EVFOLYAMTIPUSA Evfolyam,
COUNT(T_TANITASIORA_OSSZES.ID) MegtartottOrak
FROM T_TANTARGY_OSSZES
right JOIN T_TANITASIORA_OSSZES on T_TANTARGY_OSSZES.ID = T_TANITASIORA_OSSZES.C_TANTARGYID
INNER JOIN T_FOGLALKOZAS_OSSZES ON T_TANTARGY_OSSZES.ID = T_FOGLALKOZAS_OSSZES.C_TANTARGYID
INNER JOIN T_OSZTALYCSOPORT_OSSZES ON T_FOGLALKOZAS_OSSZES.C_OSZTALYCSOPORTID = T_OSZTALYCSOPORT_OSSZES.ID
INNER JOIN T_OSZTALY_OSSZES ON T_OSZTALYCSOPORT_OSSZES.ID = T_OSZTALY_OSSZES.ID
INNER JOIN T_FELHASZNALO_OSSZES ON T_FELHASZNALO_OSSZES.ID = T_FOGLALKOZAS_OSSZES.C_TANARID
WHERE
T_TANTARGY_OSSZES.TOROLT='F'
AND T_TANITASIORA_OSSZES.TOROLT='F'
AND T_FOGLALKOZAS_OSSZES.TOROLT='F'
AND T_OSZTALYCSOPORT_OSSZES.TOROLT='F'
AND T_OSZTALY_OSSZES.TOROLT='F'
AND T_TANITASIORA_OSSZES.C_MEGTARTOTT='T'
AND T_FOGLALKOZAS_OSSZES.C_FOGLALKOZASTIPUSA = 1339 --Tanórai foglalkozás
AND T_TANTARGY_OSSZES.C_TANEVID = @tanevID
AND T_TANTARGY_OSSZES.C_TANEVID = @intezmenyId
GROUP BY T_FELHASZNALO_OSSZES.ID, T_TANTARGY_OSSZES.C_NEV, T_OSZTALYCSOPORT_OSSZES.C_EVFOLYAMTIPUSA, T_FELHASZNALO_OSSZES.C_NYOMTATASINEV
UNION
--Összes
select
T_FELHASZNALO_OSSZES.ID TanarID,
T_FELHASZNALO_OSSZES.C_NYOMTATASINEV TanarNeve,
T_TANTARGY_OSSZES.C_NEV Tantargy,
NULL Evfolyam,
COUNT(T_TANITASIORA_OSSZES.ID) MegtartottOrak
FROM T_TANTARGY_OSSZES
INNER JOIN T_TANITASIORA_OSSZES on T_TANTARGY_OSSZES.ID = T_TANITASIORA_OSSZES.C_TANTARGYID
INNER JOIN T_FOGLALKOZAS_OSSZES ON T_TANTARGY_OSSZES.ID = T_FOGLALKOZAS_OSSZES.C_TANTARGYID
INNER JOIN T_OSZTALYCSOPORT_OSSZES ON T_FOGLALKOZAS_OSSZES.C_OSZTALYCSOPORTID = T_OSZTALYCSOPORT_OSSZES.ID
INNER JOIN T_OSZTALY_OSSZES ON T_OSZTALYCSOPORT_OSSZES.ID = T_OSZTALY_OSSZES.ID
INNER JOIN T_FELHASZNALO_OSSZES ON T_FELHASZNALO_OSSZES.ID = T_FOGLALKOZAS_OSSZES.C_TANARID
WHERE
T_TANTARGY_OSSZES.TOROLT='F'
AND T_TANITASIORA_OSSZES.TOROLT='F'
AND T_FOGLALKOZAS_OSSZES.TOROLT='F'
AND T_OSZTALYCSOPORT_OSSZES.TOROLT='F'
AND T_OSZTALY_OSSZES.TOROLT='F'
AND T_TANITASIORA_OSSZES.C_MEGTARTOTT='T'
AND T_TANTARGY_OSSZES.C_TANEVID = @tanevID
AND T_TANTARGY_OSSZES.C_TANEVID = @intezmenyId
AND T_FOGLALKOZAS_OSSZES.C_FOGLALKOZASTIPUSA = 1339 --Tanórai foglalkozás
GROUP BY T_FELHASZNALO_OSSZES.ID, T_TANTARGY_OSSZES.C_NEV, T_FELHASZNALO_OSSZES.C_NYOMTATASINEV) Orak
order by TanarNev, Tantargy, Evfolyam
END
GO

View file

@ -0,0 +1,55 @@
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
IF OBJECT_ID('sp_GetTantargyiStatuszPedagogusonkent', 'P') IS NOT NULL BEGIN
DROP PROCEDURE sp_GetTantargyiStatuszPedagogusonkent
END
GO
CREATE PROCEDURE [dbo].[sp_GetTantargyiStatuszPedagogusonkent]
@intezmenyId int,
@tanevId int,
@tanarId int,
@statuszSzam int
AS
BEGIN
SET NOCOUNT ON;
select
ROW_NUMBER() OVER(ORDER BY SZUM.TargyKategoriaTipus) AS ID,
SZUM.IntId,
SZUM.TanevId,
SZUM.TanarId,
SZUM.TargyKategoriaTipus,
SZUM.OsszesOraszam,
cast(sum(SZUM.StatuszSzam) as decimal(10,2)) StatuszSzam
from
(
select
T_FOGLALKOZAS.C_INTEZMENYID IntId,
T_FOGLALKOZAS.C_TANEVID TanevId,
T_FOGLALKOZAS.C_TANARID TanarId,
TT.C_TARGYKATEGORIA TargyKategoriaTipus,
SUM(T_FOGLALKOZAS.C_ORASZAM) OsszesOraszam,
IIF(SUM(T_FOGLALKOZAS.C_ORASZAM) <= Kotelezo - Kedvezmeny,
CAST(SUM(T_FOGLALKOZAS.C_ORASZAM) AS DECIMAL) / CAST((Kotelezo - Kedvezmeny)AS DECIMAL),
1 + (cast((SUM(T_FOGLALKOZAS.C_ORASZAM) - (Kotelezo - Kedvezmeny)) as integer) / @statuszSzam)) StatuszSzam
from T_FOGLALKOZAS
inner join T_ALKALMAZOTT on T_ALKALMAZOTT.ID = T_FOGLALKOZAS.C_TANARID and T_ALKALMAZOTT.TOROLT = 'F'
inner join T_MUNKAUGYIADATOK on T_MUNKAUGYIADATOK.C_ALKALMAZOTTID = T_ALKALMAZOTT.ID and T_MUNKAUGYIADATOK.TOROLT ='F'
INNER JOIN (SELECT C_ALKALMAZOTTID, C_KOTELEZOORASZAM Kotelezo, IIF(C_MUNKAIDOKEDVEZMENYORASZAM IS NULL, 0, C_MUNKAIDOKEDVEZMENYORASZAM) Kedvezmeny FROM T_MUNKAUGYIADATOK
WHERE TOROLT = 'F' and C_KOTELEZOORASZAM > 0 and C_KOTELEZOORASZAM - isnull(C_MUNKAIDOKEDVEZMENYORASZAM, 0) > 0
) MunkaU ON
MunkaU.C_ALKALMAZOTTID = T_ALKALMAZOTT.ID
inner join T_TANTARGY TT on TT.ID = T_FOGLALKOZAS.C_TANTARGYID and TT.TOROLT = 'F'
where T_FOGLALKOZAS.TOROLT = 'F'
and T_FOGLALKOZAS.C_INTEZMENYID = @intezmenyId
and T_FOGLALKOZAS.C_TANEVID = @tanevId
and T_FOGLALKOZAS.C_TANARID = @tanarId
and T_MUNKAUGYIADATOK.C_KOTELEZOORASZAM is not null
group by T_FOGLALKOZAS.C_INTEZMENYID, T_FOGLALKOZAS.C_TANEVID,T_FOGLALKOZAS.C_TANARID, TT.C_TARGYKATEGORIA, MunkaU.Kotelezo,MunkaU.Kedvezmeny
) SZUM
group by SZUM.IntId, SZUM.TanevId,SZUM.TanarId, SZUM.TargyKategoriaTipus, SZUM.OsszesOraszam
END

View file

@ -0,0 +1,50 @@
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
IF OBJECT_ID('[dbo].[sp_GetTanulokJelenletiIvAlkalmankent]') IS NOT NULL
BEGIN
DROP PROCEDURE [dbo].[sp_GetTanulokJelenletiIvAlkalmankent]
END
GO
-- =============================================
-- Author: Dőrr Tamás
-- Create date: 2015.12.15.
-- Description: sp_GetTanulokJelenletiIvAlkalmankent
-- =============================================
CREATE PROCEDURE [dbo].[sp_GetTanulokJelenletiIvAlkalmankent]
@foglalkozasId INT,
@tanevId INT
AS
BEGIN
SET NOCOUNT ON;
SELECT
fog.C_NEV Foglalkozas
,t.C_NEV Tantargy
, f.C_NYOMTATASINEV Tanar
, i.C_NEV Intezmeny
, i.C_VAROS Varos
FROM T_FOGLALKOZAS_OSSZES fog
INNER JOIN T_FELHASZNALO_OSSZES f ON f.id = fog.C_TANARID
INNER JOIN T_INTEZMENYADATOK_OSSZES i ON i.C_INTEZMENYID = fog.C_INTEZMENYID
INNER JOIN T_TANTARGY_OSSZES t ON t.ID = fog.C_TANTARGYID
WHERE
fog.id= @foglalkozasId
SELECT
C_OKTATASIAZONOSITO OktAzon,
C_NYOMTATASINEV NEV
FROM t_felhasznalo_osszes f
INNER JOIN T_TANULOCSOPORT_OSSZES tcs ON f.ID=tcs.C_TANULOID
INNER JOIN T_OSZTALYCSOPORT_OSSZES ocs ON ocs.ID=tcs.C_OSZTALYCSOPORTID
INNER JOIN T_FOGLALKOZAS_OSSZES fog ON fog.C_OSZTALYCSOPORTID = ocs.ID
WHERE
fog.ID=@foglalkozasId
AND tcs.TOROLT='F'
ORDER BY C_NYOMTATASINEV
END

View file

@ -0,0 +1,827 @@
IF OBJECT_ID('[dbo].[sp_ImportASC]') IS NOT NULL BEGIN
DROP PROCEDURE [dbo].[sp_ImportASC]
END
GO
CREATE PROCEDURE [dbo].[sp_ImportASC]
@importXml xml,
@regiTorlese bit,
@ervenyessegFilebanSzerepel bit,
@feladatellatasiHelyId int,
@tanevId int,
@intezmenyId int,
@userId int
AS
BEGIN
SET NOCOUNT ON
SET XACT_ABORT ON
DECLARE @mukodsesiHely int
DECLARE @osztalyCsoport table (
osztalyCsoportID nvarchar(32),
nev nvarchar(255),
osztalyCsoport varchar(2),
id int
)
INSERT INTO @osztalyCsoport (osztalyCsoportID, nev, osztalyCsoport)
SELECT
sor.value('(OsztalyId)[1]', 'nvarchar(32)') AS osztalcsoportId,
sor.value('(Nev)[1]', 'varchar(255)') AS nev,
'O'
FROM @importXml.nodes('/AscImport/OsztalyLista/Osztaly') as sorok(sor)
INSERT INTO @osztalyCsoport (osztalyCsoportID, nev, osztalyCsoport)
SELECT
sor.value('(Id)[1]', 'nvarchar(32)') AS osztalcsoportId,
sor.value('(Nev)[1]', 'varchar(255)') AS nev,
'CS'
FROM @importXml.nodes('/AscImport/CsoportLista/Csoport') as sorok(sor)
UPDATE x
SET x.id = ocs.ID
FROM @osztalyCsoport x
INNER JOIN T_OSZTALYCSOPORT_OSSZES ocs ON x.nev = ocs.C_NEV AND ocs.C_TANEVID = @tanevId
WHERE ocs.TOROLT = 'F'
DECLARE @tantargy table (
tantargyId nvarchar(32),
nev nvarchar(255),
osztalyCsoport varchar(2),
id int
)
INSERT INTO @tantargy (tantargyId, nev)
SELECT
sor.value('(TantargyId)[1]', 'nvarchar(32)') AS tantargyId,
sor.value('(Nev)[1]', 'varchar(255)') AS nev
FROM @importXml.nodes('/AscImport/TantargyLista/Tantargy') as sorok(sor)
UPDATE x
SET x.id = t.ID
FROM @tantargy x
INNER JOIN T_TANTARGY_OSSZES t ON x.nev = t.C_NEV AND t.C_TANEVID = @tanevId
WHERE t.TOROLT = 'F'
/* TEREM temp TÁBLÁBA */
DECLARE @terem TABLE (
teremId nvarchar(32),
nev nvarchar(255),
kapacitas int,
id int
)
INSERT INTO @terem (teremId, nev, kapacitas)
SELECT
sor.value('(TeremId)[1]', 'nvarchar(32)') AS teremId,
sor.value('(Nev)[1]', 'nvarchar(255)') AS nev,
sor.value('(Kapacitas)[1]', 'int') AS kapacitas
FROM @importXml.nodes('/AscImport/TeremLista/Terem') as sorok(sor)
UPDATE x
SET x.id = t.ID
FROM @terem x
INNER JOIN T_TEREM_OSSZES t ON x.nev = t.C_NEV AND t.C_TANEVID = @tanevId
WHERE t.TOROLT = 'F'
/* HETIREND temp TÁBLÁBA */
DECLARE @hetirend TABLE (
hetirendId nvarchar(32),
nev nvarchar(255),
id int
)
INSERT INTO @hetirend (hetirendId, nev)
SELECT
sor.value('(HetirendId)[1]', 'nvarchar(32)') AS hetirendId,
sor.value('(Nev)[1]', 'nvarchar(255)') AS nev
FROM @importXml.nodes('/AscImport/HetirendLista/Hetirend') as sorok(sor)
UPDATE x
SET x.id = d.ID
FROM @hetirend x
INNER JOIN T_DICTIONARYITEMBASE_OSSZES d ON x.nev = d.C_NAME AND d.C_TANEVID = @tanevId AND C_TYPE = 'HetiRendTipus' AND d.TOROLT = 'F'
/* CSENGETÉSIREND temp TÁBLÁBA */
DECLARE @csengetesiRendOra TABLE (
csengetesiRendOraId nvarchar(32),
starttime time,
endtime time,
sorszam int,
id int
)
INSERT INTO @csengetesiRendOra (csengetesiRendOraId, starttime, endtime, sorszam)
SELECT
sor.value('(CsengetesiRendOraId)[1]', 'nvarchar(32)') AS csengetesiRendOraId,
sor.value('(Starttime)[1]', 'time') AS starttime,
sor.value('(Endtime)[1]', 'time') AS endtime,
sor.value('(Sorszam)[1]', 'int') AS sorszam
FROM @importXml.nodes('/AscImport/CsengetesiRendOraLista/CsengetesiRendOra') as sorok(sor)
UPDATE x
SET x.id = cs.ID
FROM @csengetesiRendOra x
INNER JOIN T_CSENGETESIRENDORA_OSSZES cs ON x.sorszam = cs.C_ORASZAM AND cs.C_TANEVID = @tanevId
WHERE cs.C_CSENGETESIRENDID = (SELECT MIN(ID) FROM T_CSENGETESIREND_OSSZES csr WHERE /*csr.C_IMPORTALT = 'T' AND*/ csr.C_TANEVID = @tanevId AND csr.TOROLT = 'F')
DECLARE @tanar TABLE (
tanarId nvarchar(32),
nev nvarchar(200),
id int
)
INSERT INTO @tanar (tanarId, nev)
SELECT
sor.value('(Id)[1]', 'nvarchar(32)') AS tanarId,
sor.value('(Nev)[1]', 'varchar(200)') AS tanarNev
FROM @importXml.nodes('/AscImport/TanarLista/Tanar') as sorok(sor)
UPDATE x
SET x.id = f.ID
FROM @tanar x
INNER JOIN T_FELHASZNALO_OSSZES f ON f.C_NYOMTATASINEV = x.nev AND f.TOROLT = 'F'
WHERE EXISTS (SELECT 1 FROM T_ALKALMAZOTT_OSSZES a WHERE a.ID = f.ID AND a.C_ALINTEZMENYID = f.C_INTEZMENYID AND a.C_ALTANEVID = f.C_TANEVID AND a.TOROLT = 'F')
AND C_TANEVID = @tanevId
AND C_INTEZMENYID = @intezmenyId
/* ÓRARENDIÓRA temp TÁBLÁBA */
DECLARE @orarendiOra TABLE (
teremID nvarchar(32),
tanarID nvarchar(32),
hetNapja nvarchar(10),
hetirendID nvarchar(32),
osztalyID nvarchar(32),
csoportID nvarchar(32),
tantargyID nvarchar(32),
hetiOraszam float,
sorszam int,
ervenyessegKezdete datetime,
ervenyessegVege datetime
)
INSERT INTO @orarendiOra (
teremID,
tanarID,
hetNapja,
hetirendID,
osztalyID,
csoportID,
tantargyID,
hetiOraszam,
sorszam,
ervenyessegKezdete,
ervenyessegVege
)
SELECT
sor.value('(TeremId)[1]', 'nvarchar(32)') AS teremID,
sor.value('(TanarId)[1]', 'nvarchar(32)') AS tanarID,
sor.value('(HetNapja)[1]', 'nvarchar(10)') AS hetNapja,
sor.value('(HetirendId)[1]', 'nvarchar(32)') AS hetirendID,
NULLIF(sor.value('(OsztalyId)[1]', 'nvarchar(32)'), '') AS osztalyID,
NULLIF(sor.value('(CsoportId)[1]', 'nvarchar(32)'), '') AS csoportID,
sor.value('(TantargyId)[1]', 'nvarchar(32)') AS tantargyID,
sor.value('(HetiOraszam)[1]', 'float') AS hetiOraszam,
sor.value('(Sorszam)[1]', 'int') AS sorszam,
sor.value('(ErvenyessegKezdete)[1]', 'datetime') AS ervenyessegKezdete,
IIF(sor.value('(ErvenyessegVege)[1]', 'datetime') = '19000101', NULL, sor.value('(ErvenyessegVege)[1]', 'datetime')) AS ervenyessegVege
FROM @importXml.nodes('/AscImport/OrarendiOraLista/OrarendiOra') as sorok(sor)
DECLARE
@utolsoTannap datetime
,@utolsoTannapVegzos datetime
-- Utolsó tanitási nap
SELECT @utolsoTannap = C_DATUM + 1
FROM T_TANEVRENDJE_OSSZES
WHERE C_NAPTIPUSA = 1395
AND C_INTEZMENYID = @intezmenyId
AND C_TANEVID = @tanevId
AND TOROLT = 'F'
-- Utolsó tanitási nap végzősöknek
SELECT @utolsoTannapVegzos = C_DATUM + 1
FROM T_TANEVRENDJE_OSSZES
WHERE C_NAPTIPUSA = 1402
AND C_TANEVID = @tanevId
AND C_INTEZMENYID = @intezmenyId
AND TOROLT = 'F'
UPDATE o
SET ervenyessegVege = CASE WHEN ocsk.C_VEGZOSEVFOLYAM = 'F' THEN @utolsoTannap ELSE @utolsoTannapVegzos END
FROM @orarendiOra o
INNER JOIN @osztalyCsoport ocs ON o.osztalyID = ocs.osztalyCsoportID
INNER JOIN T_OSZTALYCSOPORT_OSSZES ocsk ON ocs.id = ocsk.ID AND ocsk.TOROLT = 'F'
WHERE ocs.osztalyCsoport = 'O'
AND ervenyessegVege IS NULL
AND ocsk.C_TANEVID = @tanevId
UPDATE @orarendiOra
SET ervenyessegVege = @utolsoTannap
WHERE ervenyessegVege IS NULL
DECLARE @linkTable TABLE (
insertedID int, tempId nvarchar(32), act nvarchar(20)
)
BEGIN TRY
BEGIN TRANSACTION
SELECT @mukodsesiHely = MIN(ID) FROM T_MUKODESIHELY_OSSZES WHERE C_TANEVID = @tanevId
MERGE T_TEREM_OSSZES trg
USING (
SELECT * FROM @terem WHERE nev <> '-') src ON src.ID = trg.ID AND trg.C_TANEVID = @tanevId AND trg.TOROLT = 'F'
--WHEN MATCHED THEN
-- UPDATE SET
-- trg.C_KAPACITAS = src.kapacitas
-- trg.SERIAL = trg.SERIAL + 1
-- ,trg.LASTCHANGED = GETDATE()
-- ,trg.MODIFIER = @userId
WHEN NOT MATCHED THEN
INSERT (
C_JELLEG
,C_NEV
,C_MUKODESIHELYID
,C_INTEZMENYID
,C_TANEVID
,MODIFIER
,CREATOR
) VALUES (
181 -- osztályterem
,src.nev
,@mukodsesiHely
,@intezmenyId
,@tanevId
,@userId
,@userId
)
OUTPUT INSERTED.ID, src.teremId, $action
INTO @linkTable(insertedID, tempId, act);
UPDATE x
SET x.id = y.insertedID
FROM @terem x
INNER JOIN @linkTable y ON x.teremId = y.tempId
WHERE x.ID IS NULL
DELETE FROM @linktable
SET @feladatellatasiHelyId = ISNULL(@feladatellatasiHelyId,
(SELECT MIN(ID)
FROM T_FELADATELLATASIHELY_OSSZES
WHERE C_INTEZMENYID = @intezmenyID
AND C_TANEVID = @tanevID)
)
MERGE T_OSZTALYCSOPORT_OSSZES trg
USING (SELECT * FROM @osztalyCsoport WHERE ID IS NULL) src ON 1 = 2
WHEN NOT MATCHED THEN
INSERT (
C_MEGJEGYZES
,C_NEV
,C_VEGZOSEVFOLYAM
,C_EVFOLYAMTIPUSA
,C_IMPORTALT
,C_TERVEZETTLETSZAM
,C_TEREMID
,C_FELADATELLATASIHELYID
,C_INTEZMENYID
,C_TANEVID
,MODIFIER
,CREATOR
) VALUES (
NULL -- C_MEGJEGYZES - nvarchar(255)
,src.nev -- C_NEV - nvarchar(255)
,'F' -- C_VEGZOSEVFOLYAM - char(1)
,1296 -- C_EVFOLYAMTIPUSA - int
,'T' -- C_IMPORTALT - char(1)
,NULL -- C_TERVEZETTLETSZAM - int
,NULL -- C_TEREMID - int
,@feladatellatasiHelyId -- C_FELADATELLATASIHELYID - int
,@intezmenyId -- C_INTEZMENYID - int
,@tanevId -- C_TANEVID - int
,@userId -- MODIFIER - int
,@userId -- CREATOR - int
)
OUTPUT INSERTED.ID, src.osztalycsoportId, $action
INTO @linkTable(insertedID, tempId, act);
UPDATE x
SET x.id = y.insertedID
FROM @osztalyCsoport x
INNER JOIN @linkTable y ON x.osztalycsoportId = y.tempId
WHERE x.ID IS NULL
INSERT INTO T_OSZTALY_OSSZES (
ID
,C_KEPZESIFORMA
,C_OSZTALYNAPLOLEIRASA
,C_OSZTALYNAPLOMEGNYITASA
,C_OSZTALYNAPLOZARASA
,C_OSZTALYFONOKID
,C_OFOHELYETTESID
,C_TANTERVID
,C_ALINTEZMENYID
,C_ALTANEVID
,MODIFIER
,CREATOR
) SELECT
x.id AS ID -- ID - int
,1096 AS C_KEPZESIFORMA -- C_KEPZESIFORMA - int
,NULL AS C_OSZTALYNAPLOLEIRASA -- C_OSZTALYNAPLOLEIRASA - nvarchar(MAX)
,NULL AS C_OSZTALYNAPLOMEGNYITASA -- C_OSZTALYNAPLOMEGNYITASA - datetime
,NULL AS C_OSZTALYNAPLOZARASA -- C_OSZTALYNAPLOZARASA - datetime
,NULL AS C_OSZTALYFONOKID -- C_OSZTALYFONOKID - int
,NULL AS C_OFOHELYETTESID -- C_OFOHELYETTESID - int
,NULL AS C_TANTERVID -- C_TANTERVID - int
,@intezmenyId AS C_ALINTEZMENYID -- C_ALINTEZMENYID - int
,@tanevId AS C_ALTANEVID -- C_ALTANEVID - int
,@userId AS MODIFIER -- MODIFIER - int
,@userId AS CREATOR -- CREATOR - int
FROM @osztalyCsoport x
INNER JOIN @linktable y ON x.id = y.insertedID
WHERE osztalyCsoport = 'O'
INSERT INTO T_CSOPORT_OSSZES (
ID
,C_TIPUSA
,C_CSOPORTNAPLOLEIRAS
,C_CSOPORTNAPLOMEGNYITASA
,C_CSOPORTNAPLOZARASA
,C_CSOPORTVEZETOID
,C_OSZTALYBONTASID
,C_ALINTEZMENYID
,C_ALTANEVID
,MODIFIER
,CREATOR
) SELECT
x.id AS ID -- ID - int
,1031 AS C_TIPUSA -- C_TIPUSA - int
,NULL AS C_CSOPORTNAPLOLEIRAS -- C_CSOPORTNAPLOLEIRAS - nvarchar(MAX)
,NULL AS C_CSOPORTNAPLOMEGNYITASA -- C_CSOPORTNAPLOMEGNYITASA - datetime
,NULL AS C_CSOPORTNAPLOZARASA -- C_CSOPORTNAPLOZARASA - datetime
,NULL AS C_CSOPORTVEZETOID -- C_CSOPORTVEZETOID - int
,NULL AS C_OSZTALYBONTASID -- C_OSZTALYBONTASID - int
,@intezmenyId AS C_ALINTEZMENYID -- C_ALINTEZMENYID - int
,@tanevId AS C_ALTANEVID -- C_ALTANEVID - int
,@userId AS MODIFIER -- MODIFIER - int
,@userId AS CREATOR -- CREATOR - int
FROM @osztalyCsoport x
INNER JOIN @linktable y ON x.id = y.insertedID
WHERE osztalyCsoport = 'CS'
DELETE FROM @linktable
MERGE T_TANTARGY_OSSZES trg
USING (SELECT * FROM @tantargy WHERE ID IS NULL) src ON 1 = 2
WHEN NOT MATCHED THEN
INSERT (
C_GYAKORLATI
,C_NEV
,C_ROVIDNEV
,C_TARGYKATEGORIA
,C_ALTANTARGYKENTNYOMTATVANYBAN
,C_NEVNYOMTATVANYBAN
,C_TANORANKIVULI
,C_IMPORTALT
,C_FOTARGYE
,C_FOTARGYID
,C_INTEZMENYID
,C_TANEVID
,MODIFIER
,CREATOR
) VALUES (
'F' -- C_GYAKORLATI - char(1)
,nev -- C_NEV - nvarchar(255)
,LEFT(nev, 20) -- C_ROVIDNEV - nvarchar(20)
,1197 -- C_TARGYKATEGORIA - int
,NULL -- C_ALTANTARGYKENTNYOMTATVANYBAN - char(1)
,NULL -- C_NEVNYOMTATVANYBAN - nvarchar(255)
,'F' -- C_TANORANKIVULI - char(1)
,'T' -- C_IMPORTALT - char(1)
,'F' -- C_FOTARGYE - char(1)
,NULL -- C_FOTARGYID - int
,@intezmenyId -- C_INTEZMENYID - int
,@tanevId -- C_TANEVID - int
,@userId -- MODIFIER - int
,@userId -- CREATOR - int
)
OUTPUT INSERTED.ID, src.tantargyId, $action
INTO @linkTable(insertedID, tempId, act);
UPDATE x
SET x.id = y.insertedID
FROM @tantargy x
INNER JOIN @linkTable y ON x.tantargyId = y.tempId
WHERE x.ID IS NULL
DELETE FROM @linktable
DECLARE @foglalkozas TABLE (
foglalozasId int IDENTITY(1, 1)
,tantargyId int
,tanarId int
,osztalyCsoportId int
,hetiOraszam float
,nev nvarchar(255)
,id int
)
INSERT INTO @foglalkozas (
tantargyId
,tanarId
,osztalyCsoportId
,hetiOraszam
,nev
,id
) SELECT
tt.ID
,fh.ID
,ISNULL(cs.ID, o.ID)
,oraszam
,tt.nev + ' - ' + ISNULL(cs.nev, o.nev) + ' - ' + x.tanar AS nev
,x.existItemId AS id
FROM (
SELECT
NULLIF(sor.value('(osztaly)[1]', 'nvarchar(32)'), '') AS osztaly
,NULLIF(sor.value('(csoport)[1]', 'nvarchar(32)'), '') AS csoport
,sor.value('(tantargy)[1]', 'nvarchar(32)') AS tantargy
,sor.value('(oraszam)[1]', 'float') AS oraszam
,sor.value('(tanar)[1]', 'nvarchar(32)') AS tanar
,NULLIF(sor.value('(existItemId)[1]', 'nvarchar(32)'), 0) AS existItemId
FROM @importXml.nodes('/AscImport/TantargyfelosztasLista/Tantargyfelosztas') as sorok(sor)
) x
LEFT JOIN @osztalyCsoport cs ON cs.nev = x.csoport
LEFT JOIN @osztalyCsoport o ON o.nev = x.osztaly
INNER JOIN @tantargy tt ON tt.nev = x.tantargy
INNER JOIN T_FELHASZNALO_OSSZES fh ON fh.C_NYOMTATASINEV = x.tanar AND fh.C_TANEVID = @tanevId AND fh.TOROLT = 'F'
WHERE EXISTS (SELECT 1 FROM T_ALKALMAZOTT_OSSZES a WHERE a.ID = fh.ID AND a.C_ALTANEVID = fh.C_TANEVID AND a.TOROLT = 'F')
/* Az importtal bekerült foglalkozások beszúrása */
MERGE T_FOGLALKOZAS_OSSZES trg
USING (select * FROM @foglalkozas WHERE ID IS NULL) src ON 1 = 2
WHEN NOT MATCHED THEN
INSERT (
C_FOGLALKOZASTIPUSA
,C_ORASZAM
,C_NEV
,C_ERTEKELESKELL
,C_MULASZTASKELL
,C_TANARFELVEHETI
,C_IMPORTALT
,C_TANTARGYID
,C_OSZTALYCSOPORTID
,C_INTEZMENYID
,C_TANEVID
,MODIFIER
,CREATOR
) VALUES (
1338 -- C_FOGLALKOZASTIPUSA - int
,hetiOraszam -- C_ORASZAM - numeric(10, 2)
,nev -- C_NEV - nvarchar(255)
,'T' -- C_ERTEKELESKELL - char(1)
,'T' -- C_MULASZTASKELL - char(1)
,'T' -- C_TANARFELVEHETI - char(1)
,'T' -- C_IMPORTALT - char(1)
,tantargyId -- C_TANTARGYID - int
,osztalyCsoportId -- C_OSZTALYCSOPORTID - int
,@intezmenyId -- C_INTEZMENYID - int
,@tanevId -- C_TANEVID - int
,@userId -- MODIFIER - int
,@userId -- CREATOR - int
)
OUTPUT INSERTED.ID, src.foglalozasId, $action
INTO @linkTable(insertedID, tempId, act);
UPDATE x
SET x.id = y.insertedID
FROM @foglalkozas x
INNER JOIN @linkTable y ON x.foglalozasId = y.tempId
WHERE x.ID IS NULL
DELETE FROM @linktable
/* Az importtal bekerült foglalkozások beszúrása */
INSERT INTO @foglalkozas (
tantargyId
,tanarId
,osztalyCsoportId
,hetiOraszam
,nev
,id
) SELECT
tt.id AS tantargyId
,a.id AS tanarId
,ocs.id AS osztalyCsoportId
,COUNT(1) AS hetiOraszam
,MIN(tt.nev) + ' - ' + MIN(ocs.nev) + ' - ' + MIN(a.nev) AS nev
,MIN(ff.ID) AS id
FROM @orarendiOra o
INNER JOIN @tanar a ON a.tanarID = o.tanarID
INNER JOIN @tantargy tt ON tt.tantargyID = o.tantargyID
INNER JOIN @osztalyCsoport ocs ON (ocs.osztalyCsoportID = o.CsoportId AND ocs.osztalyCsoport = 'CS')
LEFT JOIN (
SELECT f.ID, f.C_TANTARGYID, f.C_OSZTALYCSOPORTID, f.C_TANARID
FROM T_FOGLALKOZAS_OSSZES f
WHERE f.TOROLT = 'F'
AND f.C_TANEVID = @tanevId
) ff
ON ff.C_TANTARGYID = tt.ID
AND ff.C_TANARID = a.ID
AND ff.C_OSZTALYCSOPORTID = ocs.ID
GROUP BY tt.id, a.id, ocs.id
INSERT INTO @foglalkozas (
tantargyId
,tanarId
,osztalyCsoportId
,hetiOraszam
,nev
,id
) SELECT
tt.id AS tantargyId
,a.id AS tanarId
,ocs.id AS osztalyCsoportId
,COUNT(1) AS hetiOraszam
,MIN(tt.nev) + ' - ' + MIN(ocs.nev) + ' - ' + MIN(a.nev) AS nev
,MIN(ff.ID) AS id
FROM @orarendiOra o
INNER JOIN @tanar a ON a.tanarID = o.tanarID
INNER JOIN @tantargy tt ON tt.tantargyID = o.tantargyID
INNER JOIN @osztalyCsoport ocs ON (ocs.osztalyCsoportID = o.OsztalyId AND ocs.osztalyCsoport = 'O') AND o.csoportId IS NULL
LEFT JOIN (
SELECT f.ID, f.C_TANTARGYID, f.C_OSZTALYCSOPORTID, f.C_TANARID
FROM T_FOGLALKOZAS_OSSZES f
WHERE f.TOROLT = 'F' AND f.C_TANEVID = @tanevId
) ff ON ff.C_TANTARGYID = tt.ID
AND ff.C_TANARID = a.ID
AND ff.C_OSZTALYCSOPORTID = ocs.ID
GROUP BY tt.id, a.id, ocs.id
/* Az órarendi órából keletkező foglalkozások beszúrása */
MERGE T_FOGLALKOZAS_OSSZES trg
USING (SELECT * FROM @foglalkozas WHERE ID IS NULL) src ON 1 = 2
WHEN NOT MATCHED THEN
INSERT (
C_FOGLALKOZASTIPUSA
,C_ORASZAM
,C_NEV
,C_ERTEKELESKELL
,C_MULASZTASKELL
,C_TANARFELVEHETI
,C_IMPORTALT
,C_TANTARGYID
,C_OSZTALYCSOPORTID
,C_INTEZMENYID
,C_TANEVID
,MODIFIER
,CREATOR
) VALUES (
1338 -- C_FOGLALKOZASTIPUSA - int
,hetiOraszam -- C_ORASZAM - numeric(10, 2)
,nev -- C_NEV - nvarchar(255)
,'T' -- C_ERTEKELESKELL - char(1)
,'T' -- C_MULASZTASKELL - char(1)
,'T' -- C_TANARFELVEHETI - char(1)
,'T' -- C_IMPORTALT - char(1)
,tantargyId -- C_TANTARGYID - int
,osztalyCsoportId -- C_OSZTALYCSOPORTID - int
,@intezmenyId -- C_INTEZMENYID - int
,@tanevId -- C_TANEVID - int
,@userId -- MODIFIER - int
,@userId -- CREATOR - int
)
OUTPUT INSERTED.ID, src.foglalozasId, $action
INTO @linkTable(insertedID, tempId, act);
UPDATE x
SET x.id = y.insertedID
FROM @foglalkozas x
INNER JOIN @linkTable y ON x.foglalozasId = y.tempId
WHERE x.ID IS NULL
DELETE FROM @linktable
/* T_HETIRENDTIPUS INSERT */
SELECT @mukodsesiHely = MIN(ID) FROM T_MUKODESIHELY_OSSZES WHERE C_TANEVID = @tanevId AND TOROLT = 'F'
MERGE T_DICTIONARYITEMBASE_OSSZES trg
USING @hetirend src ON src.ID = trg.ID AND trg.C_INTEZMENYID = @intezmenyid AND trg.C_TANEVID = @tanevId AND trg.TOROLT = 'F'
WHEN NOT MATCHED THEN
INSERT (
C_VALUE
,C_NAME
,C_VISIBLE
,C_TYPE
,C_INTEZMENYID
,C_TANEVID
,MODIFIER
,CREATOR
) VALUES (
0
,src.nev + ' (importálva: ' + CONVERT(varchar(20), GETDATE(), 120) + ')'
,'T'
,'HetirendTipus'
,@intezmenyID
,@tanevID
,NULL
,@userId
)
OUTPUT INSERTED.ID, src.hetirendID, $action
INTO @linkTable(insertedID, tempId, act);
UPDATE x
SET x.id = y.insertedID
FROM @hetirend x
INNER JOIN @linkTable y ON x.hetirendId = y.tempId
WHERE x.ID IS NULL;
INSERT INTO T_HETIRENDTIPUS_OSSZES (
ID
,C_ALINTEZMENYID
,C_ALTANEVID
,MODIFIER
,CREATOR
) SELECT
x.ID AS ID -- ID - int
,@intezmenyId AS C_ALINTEZMENYID -- C_ALINTEZMENYID - int
,@tanevId AS C_ALTANEVID -- C_ALTANEVID - int
,NULL AS MODIFIER -- MODIFIER - int
,@userId AS CREATOR -- CREATOR - int
FROM @hetirend x
WHERE NOT EXISTS (SELECT 1 FROM T_HETIRENDTIPUS_OSSZES ht WHERE ht.ID = x.ID AND C_ALTANEVID = @tanevId AND TOROLT = 'F')
DECLARE @ids TABLE (
id int
)
DECLARE @ervenyessegKezdete datetime
/* T_ORARENDIORA INSERT */
IF @regiTorlese = 1 BEGIN
IF @ervenyessegFilebanSzerepel = 0 BEGIN
SELECT TOP(1) @ervenyessegKezdete = ervenyessegKezdete
FROM @orarendiOra
UPDATE T_ORARENDIORA_OSSZES
SET
C_ORAERVENYESSEGVEGE = @ervenyessegKezdete
,SERIAL += 1
,LASTCHANGED = GETDATE()
,MODIFIER = @userId
WHERE C_ORAERVENYESSEGVEGE > @ervenyessegKezdete
AND C_TANEVID = @tanevId
AND C_ORAERVENYESSEGVEGE <> C_ORAERVENYESSEGKEZDETE
AND TOROLT = 'F'
AND C_ORAERVENYESSEGKEZDETE < @ervenyessegKezdete
END
ELSE BEGIN
UPDATE T_ORARENDIORA_OSSZES
SET TOROLT = 'T'
,SERIAL += 1
,LASTCHANGED = GETDATE()
,MODIFIER = @userId
WHERE TOROLT = 'F'
AND C_TANEVID = @tanevId
AND C_ORAERVENYESSEGVEGE <> C_ORAERVENYESSEGKEZDETE
END
END
DECLARE @csengetesiRendId int
SELECT @csengetesiRendId = ID FROM T_CSENGETESIREND_OSSZES WHERE C_AKTIV = 'T' AND C_TANEVID = @tanevId AND TOROLT = 'F'
INSERT INTO T_ORARENDIORA_OSSZES (
C_HETIREND
,C_HETNAPJA
,C_ORASZAM
,C_ORAERVENYESSEGKEZDETE
,C_INTEZMENYID
,C_TANEVID
,C_BONTOTT
,C_ORAERVENYESSEGVEGE
,C_ORAKEZDETE
,C_ORAVEGE
,C_TEREMID
,C_FOGLALKOZASID
,C_CSENGETESIRENDORAID
,C_TANTARGYID
,C_OSZTALYCSOPORTID
,C_TANARID
,C_ORATULAJDONOSID
,MODIFIER
,CREATOR
,C_IMPORTALT
,C_CSENGETESIRENDID
) SELECT --'T_ORARENDIORA',
h.id AS C_HETIREND
,CASE o.hetNapja
WHEN 'Hétfő' THEN 1408
WHEN 'Kedd' THEN 1409
WHEN 'Szerda' THEN 1410
WHEN 'Csütörtök' THEN 1411
WHEN 'Péntek' THEN 1412
WHEN 'Szombat' THEN 1413
WHEN 'Vasárnap' THEN 1414
ELSE 1407
END AS C_HETNAPJA -- ?
,csro.C_ORASZAM AS C_ORASZAM
,o.ervenyessegKezdete AS C_ORAERVENYESSEGKEZDETE
,@intezmenyID AS C_INTEZMENYID
,@tanevId AS C_TANEVID
,'F' AS C_BONTOTT
,o.ervenyessegVege AS C_ORAERVENYESSEGVEGE
,csro.C_KEZDETE AS C_ORAKEZDETE
,csro.C_VEGE AS C_ORAVEGE
,t.id AS C_TEREMID
,ff.ID AS C_FOGLALKOZASID -- ?
,csro.ID AS C_CSENGETESIRENDORAID
,tt.ID AS C_TANTARGYID -- ?
,oszt.ID AS C_OSZTALYCSOPORTID -- ?
,a.ID AS C_TANARID -- ?
,@userId AS C_ORATULAJDONOSID -- ?
,NULL AS MODIFIER
,@userId AS CREATOR
,'T' AS C_IMPORTALT
,csro.C_CSENGETESIRENDID AS C_CSENGETESIRENDID
FROM @orarendiOra o
INNER JOIN @terem t ON t.teremID = o.teremID
INNER JOIN @tanar a ON a.tanarID = o.tanarID
INNER JOIN @tantargy tt ON tt.tantargyID = o.tantargyID
INNER JOIN @osztalyCsoport oszt ON oszt.osztalyCsoportID = o.OsztalyId AND oszt.osztalyCsoport = 'O' AND o.csoportId IS NULL
INNER JOIN (
SELECT f.ID, f.C_TANTARGYID, f.C_OSZTALYCSOPORTID, f.C_TANARID
FROM T_FOGLALKOZAS_OSSZES f
WHERE f.TOROLT = 'F' AND f.C_TANEVID = @tanevId
) ff ON ff.C_TANTARGYID = tt.ID AND ff.C_TANARID = a.ID AND ff.C_OSZTALYCSOPORTID = oszt.ID--ISNULL(cs.ID, oszt.ID)
INNER JOIN @hetirend h ON o.hetirendID = h.hetirendId
INNER JOIN T_CSENGETESIRENDORA_OSSZES csro ON csro.C_ORASZAM = o.sorszam AND csro.C_CSENGETESIRENDID = @csengetesiRendId AND csro.TOROLT = 'F';
INSERT INTO T_ORARENDIORA_OSSZES (
C_HETIREND
,C_HETNAPJA
,C_ORASZAM
,C_ORAERVENYESSEGKEZDETE
,C_INTEZMENYID
,C_TANEVID
,C_BONTOTT
,C_ORAERVENYESSEGVEGE
,C_ORAKEZDETE
,C_ORAVEGE
,C_TEREMID
,C_FOGLALKOZASID
,C_CSENGETESIRENDORAID
,C_TANTARGYID
,C_OSZTALYCSOPORTID
,C_TANARID
,C_ORATULAJDONOSID
,MODIFIER
,CREATOR
,C_IMPORTALT
,C_CSENGETESIRENDID
) SELECT --'T_ORARENDIORA',
h.id AS C_HETIREND
,CASE o.hetNapja
WHEN 'Hétfő' THEN 1408
WHEN 'Kedd' THEN 1409
WHEN 'Szerda' THEN 1410
WHEN 'Csütörtök' THEN 1411
WHEN 'Péntek' THEN 1412
WHEN 'Szombat' THEN 1413
WHEN 'Vasárnap' THEN 1414
ELSE 1407
END AS C_HETNAPJA -- ?
,csro.C_ORASZAM AS C_ORASZAM
,o.ervenyessegKezdete AS C_ORAERVENYESSEGKEZDETE
,@intezmenyID AS C_INTEZMENYID
,@tanevId AS C_TANEVID
,'F' AS C_BONTOTT
,o.ervenyessegVege AS C_ORAERVENYESSEGVEGE
,csro.C_KEZDETE AS C_ORAKEZDETE
,csro.C_VEGE AS C_ORAVEGE
,t.id AS C_TEREMID
,ff.ID AS C_FOGLALKOZASID -- ?
,csro.ID AS C_CSENGETESIRENDORAID
,tt.ID AS C_TANTARGYID -- ?
,cs.ID AS C_OSZTALYCSOPORTID -- ?
,a.ID AS C_TANARID -- ?
,@userId AS C_ORATULAJDONOSID -- ?
,NULL AS MODIFIER
,@userId AS CREATOR
,'T' AS C_IMPORTALT
,csro.C_CSENGETESIRENDID AS C_CSENGETESIRENDID
FROM @orarendiOra o
INNER JOIN @terem t ON t.teremID = o.teremID
INNER JOIN @tanar a ON a.tanarID = o.tanarID
INNER JOIN @tantargy tt ON tt.tantargyID = o.tantargyID
INNER JOIN @osztalyCsoport cs ON cs.osztalyCsoportID = o.CsoportId AND cs.osztalyCsoport = 'CS'
INNER JOIN (
SELECT f.ID, f.C_TANTARGYID, f.C_OSZTALYCSOPORTID, f.C_TANARID
FROM T_FOGLALKOZAS_OSSZES f
WHERE f.TOROLT = 'F' AND f.C_TANEVID = @tanevId
) ff ON ff.C_TANTARGYID = tt.ID AND ff.C_TANARID = a.ID AND ff.C_OSZTALYCSOPORTID = cs.ID
INNER JOIN @hetirend h ON o.hetirendID = h.hetirendId
INNER JOIN T_CSENGETESIRENDORA_OSSZES csro ON csro.C_ORASZAM = o.sorszam AND csro.C_CSENGETESIRENDID = @csengetesiRendId AND csro.TOROLT = 'F';
COMMIT TRANSACTION
-- ROLLBACK TRANSACTION
END TRY
BEGIN CATCH
IF @@TRANCOUNT > 0 AND XACT_STATE() <> 0
ROLLBACK TRANSACTION;
THROW
END CATCH
END
GO

View file

@ -0,0 +1,106 @@
IF OBJECT_ID('sp_ImportTanoranKivuliFogl', 'P') IS NOT NULL BEGIN
DROP PROCEDURE sp_ImportTanoranKivuliFogl
END
GO
CREATE PROCEDURE sp_ImportTanoranKivuliFogl
@xml xml,
@userID int,
@tanevID int,
@intezmenyID int
AS
BEGIN
BEGIN TRY
SET NOCOUNT ON
SET XACT_ABORT ON
DECLARE @tbl TABLE (
ID int,
C_NEV nvarchar(255),
C_TANARID int,
C_TANTARGYID int,
C_OSZTALYCSOPORTID int,
C_FOGLALKOZASTIPUSA int,
C_ORASZAM float,
C_MULASZTASKELL char(1),
C_ERTEKELESKELL char(1)
)
INSERT INTO @tbl
SELECT
NULL AS ID,
sor.value('(foglalkozas-neve)[1]', 'nvarchar(255)') AS C_NEV,
sor.value('(tanar)[1]', 'int') AS C_TANARID,
sor.value('(tantargy)[1]', 'int') AS C_TANTARGYID,
sor.value('(osztcsop)[1]', 'int') AS C_OSZTALYCSOPORTID,
sor.value('(foglalkozas-tipusa)[1]', 'int') AS C_FOGLALKOZASTIPUSA,
sor.value('(heti-oraszam)[1]', 'float') AS C_ORASZAM,
sor.value('(mulasztas-kell)[1]', 'char(1)') AS C_MULASZTASKELL,
sor.value('(ertekeles-kell)[1]', 'char(1)') AS C_ERTEKELESKELL
FROM @xml.nodes('/TanoranKivuliFoglImport/TanoranKivuliFoglLista/TanoranKivuliFogl') as sorok(sor)
BEGIN TRANSACTION
UPDATE f
SET f.C_FOGLALKOZASTIPUSA = t.C_FOGLALKOZASTIPUSA -- int
,f.C_ORASZAM = t.C_ORASZAM -- numeric(10, 2)
,f.C_NEV = t.C_NEV -- nvarchar(255)
,f.C_ERTEKELESKELL = t.C_ERTEKELESKELL -- char(1)
,f.C_MULASZTASKELL = t.C_MULASZTASKELL -- char(1)
,f.SERIAL = f.SERIAL + 1 -- int
,f.LASTCHANGED = GETDATE() -- datetime
,f.MODIFIER = @userID -- int
FROM T_FOGLALKOZAS f
INNER JOIN @tbl t ON f.C_TANTARGYID = t.C_TANTARGYID
AND f.C_OSZTALYCSOPORTID = t.C_OSZTALYCSOPORTID
AND f.C_TANEVID = @tanevID AND f.C_TANARID = t.C_TANARID
INSERT INTO T_FOGLALKOZAS (
C_FOGLALKOZASTIPUSA
,C_ORASZAM
,C_NEV
,C_ERTEKELESKELL
,C_MULASZTASKELL
,C_TANARFELVEHETI
,C_IMPORTALT
,C_TANTARGYID
,C_OSZTALYCSOPORTID
,C_TANARID
,C_INTEZMENYID
,C_TANEVID
,MODIFIER
,CREATOR
) SELECT
t.C_FOGLALKOZASTIPUSA AS C_FOGLALKOZASTIPUSA -- C_FOGLALKOZASTIPUSA - int
,t.C_ORASZAM AS C_ORASZAM -- C_ORASZAM - numeric(10, 2)
,t.C_NEV AS C_NEV -- C_NEV - nvarchar(255)
,t.C_ERTEKELESKELL AS C_ERTEKELESKELL -- C_ERTEKELESKELL - char(1)
,t.C_MULASZTASKELL AS C_MULASZTASKELL -- C_MULASZTASKELL - char(1)
,NULL AS C_TANARFELVEHETI -- C_TANARFELVEHETI - char(1)
,'F' AS C_IMPORTALT -- C_IMPORTALT - char(1)
,t.C_TANTARGYID AS C_TANTARGYID -- C_TANTARGYID - int
,t.C_OSZTALYCSOPORTID AS C_OSZTALYCSOPORTID -- C_OSZTALYCSOPORTID - int
,t.C_TANARID
,@intezmenyID AS C_INTEZMENYID
,@tanevID AS C_TANEVID -- C_TANEVID - int
,NULL AS MODIFIER -- MODIFIER - int
,@userID AS CREATOR -- CREATOR - int
FROM @tbl t
WHERE NOT EXISTS (
SELECT 1 FROM T_FOGLALKOZAS f
WHERE f.C_TANTARGYID = t.C_TANTARGYID
AND f.C_OSZTALYCSOPORTID = t.C_OSZTALYCSOPORTID
AND f.C_TANEVID = @tanevID
AND f.C_TANARID = t.C_TANARID
)
COMMIT TRANSACTION
END TRY
BEGIN CATCH
IF @@TRANCOUNT > 0 AND XACT_STATE() <> 0
ROLLBACK TRANSACTION;
THROW
END CATCH
END
GO

View file

@ -0,0 +1,379 @@
IF OBJECT_ID('sp_ImportTantargyFelosztas', 'P') IS NOT NULL BEGIN
DROP PROCEDURE sp_ImportTantargyFelosztas
END
GO
CREATE PROCEDURE sp_ImportTantargyFelosztas
@importXml xml,
@tanevId int,
@feladatellatasiHelyId int,
@intezmenyId int,
@userId int
AS
BEGIN
SET NOCOUNT ON;
SET XACT_ABORT ON;
DECLARE
@root int
DECLARE @tbl TABLE (
osztalyID int,
osztalyNev nvarchar(255),
csoportID int,
csoportNev nvarchar(255),
tantargyID int,
tantargyNev nvarchar(255),
oraszam float,
tanarID int,
tanarNev nvarchar(255),
szulDatum datetime,
foglalkozasID int,
existItemId int
)
SET @root = @importXml.exist('/TantargyfelosztasImport')
--SELECT @importXml;
IF @root = 1 BEGIN
INSERT INTO @tbl
SELECT
NULL AS osztalyID,
sor.value('(osztaly)[1]', 'nvarchar(255)') AS osztalyNev,
NULL AS csoportID,
sor.value('(csoport)[1]', 'nvarchar(255)') AS csoportNev,
NULL AS tantargyID,
sor.value('(tantargy)[1]', 'nvarchar(255)') AS tantargyNev,
sor.value('(oraszam)[1]', 'float') AS oraszam,
NULL AS tanarID,
sor.value('(tanar)[1]', 'nvarchar(255)') AS tanarNev,
sor.value('(szuldatum)[1]', 'varchar(10)')AS szulDatum,
NULL AS foglalkozasID,
sor.value('(existItemId)[1]', 'int') AS existItemId
FROM @importXml.nodes('/TantargyfelosztasImport/TantargyfelosztasLista/Tantargyfelosztas') as sorok(sor)
END
ELSE BEGIN
INSERT INTO @tbl
SELECT
NULL AS osztalyID,
sor.value('(osztaly)[1]', 'nvarchar(255)') AS osztalyNev,
NULL AS csoportID,
sor.value('(csoport)[1]', 'nvarchar(255)') AS csoportNev,
NULL AS tantargyID,
sor.value('(tantargy)[1]', 'nvarchar(255)') AS tantargyNev,
sor.value('(oraszam)[1]', 'float') AS oraszam,
NULL AS tanarID,
sor.value('(tanar)[1]', 'nvarchar(255)') AS tanarNev,
sor.value('(szuldatum)[1]', 'varchar(10)')AS szulDatum,
NULL AS foglalkozasID,
sor.value('(existItemId)[1]', 'int') AS existItemId
FROM @importXml.nodes('/TantargyfelosztasLista/Tantargyfelosztas') as sorok(sor)
END
BEGIN TRY
BEGIN TRAN
UPDATE t
SET t.C_IMPORTALT = 'T'
FROM T_TANTARGY_OSSZES AS t
INNER JOIN T_FOGLALKOZAS_OSSZES fo ON t.ID = fo.C_TANTARGYID AND fo.C_TANEVID = t.C_TANEVID
WHERE fo.ID IN (SELECT existItemId FROM @tbl WHERE existItemId <> 0)
AND t.C_TANEVID = @tanevId
UPDATE ocs
SET ocs.C_IMPORTALT = 'T'
FROM T_OSZTALYCSOPORT_OSSZES AS ocs
INNER JOIN T_FOGLALKOZAS_OSSZES fo ON ocs.ID = fo.C_OSZTALYCSOPORTID AND ocs.C_TANEVID = fo.C_TANEVID
INNER JOIN T_TANTARGY_OSSZES t ON t.ID = fo.C_TANTARGYID AND t.C_TANEVID = fo.C_TANEVID
WHERE fo.ID IN (SELECT existItemId FROM @tbl WHERE existItemId <> 0)
AND ocs.C_TANEVID = @tanevId
UPDATE fo
SET fo.C_IMPORTALT = 'T'
FROM T_FOGLALKOZAS_OSSZES AS fo
where fo.ID IN (SELECT existItemId FROM @tbl WHERE existItemId <> 0)
AND fo.C_TANEVID = @tanevId
/*TÖRÖLJÜK AZ IMPORTÁLTakat*/
EXEC sp_DeleteAllTTF @feladatellatasiHelyId = @feladatellatasiHelyId, @tanevId = @tanevId
UPDATE f
SET
f.C_ORASZAM = temp.oraszam
,f.C_IMPORTALT = 'T'
,f.SERIAL += 1
,f.LASTCHANGED = GETDATE()
,f.MODIFIER = @userId
FROM T_FOGLALKOZAS_OSSZES f
INNER JOIN @tbl temp ON f.C_NEV = temp.tantargyNev + ' - ' + ISNULL(temp.csoportNev, temp.osztalyNev) + ' - ' + temp.tanarNev
WHERE f.C_INTEZMENYID = @intezmenyId
AND f.C_TANEVID = @tanevId
AND f.TOROLT = 'F'
UPDATE o
SET o.tanarID = fh.ID
FROM @tbl o
INNER JOIN T_FELHASZNALO_OSSZES fh ON fh.C_NYOMTATASINEV = o.tanarNev AND fh.C_SZULETESIDATUM = ISNULL(o.szulDatum, fh.C_SZULETESIDATUM)
INNER JOIN T_ALKALMAZOTT_OSSZES a ON fh.ID = a.ID
WHERE fh.C_TANEVID = @tanevId
AND fh.TOROLT = 'F'
/*töltjük a tantárgyakat*/
INSERT INTO T_TANTARGY_OSSZES (
C_GYAKORLATI
,C_NEV
,C_ROVIDNEV
,C_TARGYKATEGORIA
,C_ALTANTARGYKENTNYOMTATVANYBAN
,C_NEVNYOMTATVANYBAN
,C_TANORANKIVULI
,C_FOTARGYID
,C_INTEZMENYID
,C_TANEVID
,MODIFIER
,CREATOR
,C_IMPORTALT
,SERIAL
) SELECT DISTINCT
'F' AS C_GYAKORLATI -- C_GYAKORLATI - char(1)
,o.tantargyNev AS C_NEV -- C_NEV - nvarchar(255)
,LEFT(o.tantargyNev, 20) AS C_ROVIDNEV -- C_ROVIDNEV - nvarchar(20)
,1197 AS C_TARGYKATEGORIA /*Na*/ -- C_TARGYKATEGORIA - int
,NULL AS C_ALTANTARGYKENTNYOMTATVANYBAN -- C_ALTANTARGYKENTNYOMTATVANYBAN - char(1)
,NULL AS C_NEVNYOMTATVANYBAN -- C_NEVNYOMTATVANYBAN - nvarchar(255)
,'F' AS C_TANORANKIVULI -- C_TANORANKIVULI - char(1)
,NULL AS C_FOTARGYID -- C_FOTARGYID - int
,@intezmenyId AS C_INTEZMENYID
,@tanevId AS C_TANEVID
,NULL AS MODIFIER -- MODIFIER - int
,@userId AS CREATOR -- CREATOR - int
,'T' AS C_IMPORTALT -- C_IMPORTALT char(1)
,0 AS SERIAL
FROM @tbl o
WHERE NOT EXISTS (SELECT 1 FROM T_TANTARGY_OSSZES WHERE C_NEV = o.tantargyNev AND C_TANEVID = @tanevId AND TOROLT = 'F')
UPDATE o
SET o.tantargyID = t.ID
FROM @tbl o
INNER JOIN T_TANTARGY_OSSZES t ON t.C_NEV = o.tantargyNev AND t.C_TANEVID = @tanevId AND t.TOROLT = 'F'
/* OSZTÁLY */
INSERT INTO T_OSZTALYCSOPORT_OSSZES (
C_MEGJEGYZES
,C_NEV
,C_VEGZOSEVFOLYAM
,C_EVFOLYAMTIPUSA
,C_TANEVID
,C_TEREMID
,C_FELADATELLATASIHELYID
,C_INTEZMENYID
,MODIFIER
,CREATOR
,C_IMPORTALT
,SERIAL
) SELECT DISTINCT
NULL AS C_MEGJEGYZES -- C_MEGJEGYZES - nvarchar(255)
,o.osztalyNev AS C_NEV -- C_NEV - nvarchar(255)
,'F' AS C_VEGZOSEVFOLYAM -- C_VEGZOSEVFOLYAM - char(1)
,1296 AS C_EVFOLYAMTIPUSA -- C_EVFOLYAMTIPUSA - int
,@tanevId AS C_TANEVID -- C_TANEVID - int
,NULL AS C_TEREMID -- C_TEREMID - int
,@feladatellatasiHelyId AS C_FELADATELLATASIHELYID -- C_FELADATELLATASIHELYID - int
,@intezmenyId AS C_INTEZMENYID
,NULL AS MODIFIER -- MODIFIER - int
,@userId AS CREATOR -- CREATOR - int
,'T' AS C_IMPORTALT -- C_IMPORTALT char(1)
,0 AS SERIAL
FROM @tbl o
WHERE NOT EXISTS (SELECT 1 FROM T_OSZTALYCSOPORT_OSSZES WHERE C_NEV = o.osztalyNev AND C_TANEVID = @tanevId AND TOROLT = 'F')
AND o.OsztalyNev IS NOT NULL AND o.OsztalyNev <> ''
UPDATE o
SET o.osztalyID = t.ID
FROM @tbl o
INNER JOIN T_OSZTALYCSOPORT_OSSZES t ON t.C_NEV = o.osztalyNev AND C_TANEVID = @tanevId AND TOROLT = 'F'
INSERT INTO T_OSZTALY_OSSZES (
ID
,C_KEPZESIFORMA
,C_OSZTALYFONOKID
,C_OFOHELYETTESID
,C_TANTERVID
,C_ALINTEZMENYID
,C_ALTANEVID
,MODIFIER
,CREATOR
,SERIAL
) SELECT DISTINCT
o.osztalyID AS ID -- ID - int
,1096 AS C_KEPZESIFORMA /*Nappali rendszerű iskolai oktatás*/ -- C_KEPZESIFORMA - int
,NULL AS C_OSZTALYFONOKID -- C_OSZTALYFONOKID - int
,NULL AS C_OFOHELYETTESID -- C_OFOHELYETTESID - int
,NULL AS C_TANTERVID -- C_TANTERVID - int
,@intezmenyId
,@tanevId
,NULL AS MODIFIER -- MODIFIER - int
,@userId AS CREATOR -- CREATOR - int
,0 AS SERIAL
FROM @tbl o
WHERE NOT EXISTS (SELECT 1 FROM T_OSZTALY_OSSZES WHERE ID = o.osztalyID AND C_ALTANEVID = @tanevId AND TOROLT = 'F')
AND o.osztalyID IS NOT NULL
INSERT INTO T_OSZTALYCSOPORT_OSSZES (
C_MEGJEGYZES
,C_NEV
,C_VEGZOSEVFOLYAM
,C_EVFOLYAMTIPUSA
,C_TANEVID
,C_TEREMID
,C_FELADATELLATASIHELYID
,C_INTEZMENYID
,MODIFIER
,CREATOR
,C_IMPORTALT
,SERIAL
) SELECT DISTINCT
NULL AS C_MEGJEGYZES -- C_MEGJEGYZES - nvarchar(255)
,IIF(o.csoportNev IS NULL, o.osztalyNev, o.csoportNev) AS C_NEV -- C_NEV - nvarchar(255)
,'F' AS C_VEGZOSEVFOLYAM -- C_VEGZOSEVFOLYAM - char(1)
,1296 AS C_EVFOLYAMTIPUSA -- C_EVFOLYAMTIPUSA - int Default(NA)
,@tanevId AS C_TANEVID -- C_TANEVID - int
,NULL AS C_TEREMID -- C_TEREMID - int
,@feladatellatasiHelyId AS C_FELADATELLATASIHELYID -- C_FELADATELLATASIHELYID - int
,@intezmenyId AS C_INTEZMENYID
,NULL AS MODIFIER -- MODIFIER - int
,@userId AS CREATOR -- CREATOR - int
,'T' AS C_IMPORTALT -- C_IMPORTALT char(1)
,0 AS SERIAL
FROM @tbl o
WHERE NOT EXISTS (SELECT 1 FROM T_OSZTALYCSOPORT_OSSZES WHERE C_NEV = o.csoportNev AND C_TANEVID = @tanevId AND TOROLT = 'F')
AND o.csoportNev IS NOT NULL AND o.csoportNev <> ''
UPDATE o
SET o.csoportID = t.ID
FROM @tbl o
INNER JOIN T_OSZTALYCSOPORT_OSSZES t ON t.C_NEV = o.csoportNev AND C_TANEVID = @tanevId AND TOROLT = 'F'
INSERT INTO T_CSOPORT_OSSZES (
ID
,C_TIPUSA
,C_CSOPORTNAPLOLEIRAS
,C_CSOPORTNAPLOMEGNYITASA
,C_CSOPORTNAPLOZARASA
,C_CSOPORTVEZETOID
,C_OSZTALYBONTASID
,C_ALINTEZMENYID
,C_ALTANEVID
,MODIFIER
,CREATOR
,SERIAL
) SELECT DISTINCT
o.csoportID AS ID -- ID - int
,1031 AS C_TIPUSA /*Na*/ -- C_TIPUSA - int
,NULL AS C_CSOPORTNAPLOLEIRAS -- C_CSOPORTNAPLOLEIRAS - nvarchar(MAX)
,NULL AS C_CSOPORTNAPLOMEGNYITASA -- C_CSOPORTNAPLOMEGNYITASA - datetime
,NULL AS C_CSOPORTNAPLOZARASA -- C_CSOPORTNAPLOZARASA - datetime
,NULL AS C_CSOPORTVEZETOID -- C_CSOPORTVEZETOID - int
,IIF(o.osztalyNev IS NULL, NULL, o.osztalyId) AS C_OSZTALYBONTASID -- C_OSZTALYBONTASID - int
,@intezmenyId
,@tanevId
,NULL AS MODIFIER -- MODIFIER - int
,@userId AS CREATOR -- CREATOR - int
,0 AS SERIAL
FROM @tbl o
WHERE NOT EXISTS (SELECT 1 FROM T_CSOPORT_OSSZES WHERE ID = o.csoportID AND C_ALTANEVID = @tanevId AND TOROLT = 'F')
AND o.csoportID IS NOT NULL
DECLARE @linkTable TABLE (
id int,
osztalyCsoportId int,
tantargyID int,
tanarID int
);
MERGE T_FOGLALKOZAS_OSSZES trg
USING (SELECT ISNULL(o.csoportID, o.osztalyID) osztalyCsoportId, o.tantargyID, o.tanarID, SUM(o.oraszam) oraszam,
MAX(o.tantargyNev) + ' - ' + MAX(ISNULL(o.csoportNev, o.osztalyNev)) + ' - ' + MAX(o.tanarNev) as foglalkozasNev
FROM @tbl o
WHERE NOT EXISTS (
SELECT 1 FROM T_FOGLALKOZAS_OSSZES f
WHERE f.C_TANTARGYID = o.tantargyID
AND f.C_OSZTALYCSOPORTID = o.csoportID
AND f.C_TANARID = o.tanarID
AND f.C_TANEVID = @tanevId
)
GROUP BY ISNULL(o.csoportID, o.osztalyID), o.tantargyID, o.tanarID
) src ON 1 = 0
WHEN NOT MATCHED THEN
INSERT (
C_FOGLALKOZASTIPUSA
,C_ORASZAM
,C_NEV
,C_ERTEKELESKELL
,C_MULASZTASKELL
,C_TANARFELVEHETI
,C_TANTARGYID
,C_OSZTALYCSOPORTID
,C_TANARID
,C_INTEZMENYID
,C_TANEVID
,MODIFIER
,CREATOR
,C_IMPORTALT
,SERIAL
) VALUES(
--IIF (src.osztalyCsoportId IS NOT NULL, 1368 /*Tanóra (osztálybontásos)*/, 1339/*Tanóra*/) /*Na*/ -- C_FOGLALKOZASTIPUSA - int
IIF (EXISTS(select 1 from T_CSOPORT cs where cs.ID = src.osztalyCsoportId), 1368 /*Tanóra (osztálybontásos)*/, 1339/*Tanóra*/) /*Na*/ -- C_FOGLALKOZASTIPUSA - int
,src.oraszam -- C_ORASZAM - int
,src.foglalkozasNev -- C_NEV - nvarchar(255)
,'T' -- C_ERTEKELESKELL - char(1)
,'T' -- C_MULASZTASKELL - char(1)
,'T' -- C_TANARFELVEHETI - char(1)
,src.tantargyID -- C_TANTARGYID - int
,src.osztalyCsoportId -- C_OSZTALYCSOPORTID - int
,src.tanarID
,@intezmenyId
,@tanevId -- C_TANEVID - int
,NULL -- MODIFIER - int
,@userId -- CREATOR - int
,'T' -- C_IMPORTALT char(1)
,0
)
OUTPUT INSERTED.ID, src.osztalyCsoportId, src.tantargyID, src.tanarID
INTO @linkTable(id, osztalyCsoportId, tantargyID, tanarID);
/*csoport - osztaly*/
UPDATE o
SET o.foglalkozasID = f.id
FROM @tbl o
INNER JOIN @linkTable f ON f.osztalyCsoportId = ISNULL(o.csoportID, o.osztalyID) AND f.tantargyID = o.tantargyID AND f.tanarID = o.tanarID
WHERE o.foglalkozasID IS NULL
/*osztaly*/
UPDATE o
SET o.foglalkozasID = f.id
FROM @tbl o
INNER JOIN @linkTable f ON f.osztalyCsoportId = o.osztalyID AND f.tantargyID = o.tantargyID AND f.tanarID = o.tanarID
WHERE o.foglalkozasID IS NULL
COMMIT TRANSACTION
END TRY
BEGIN CATCH
IF @@TRANCOUNT > 0
ROLLBACK TRAN;
THROW
END CATCH
END

View file

@ -0,0 +1,57 @@
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
IF OBJECT_ID('sp_PedagogusNemBejegyzettOraiOsszes') IS NOT NULL
BEGIN
DROP PROCEDURE sp_PedagogusNemBejegyzettOraiOsszes
END
GO
CREATE PROCEDURE sp_PedagogusNemBejegyzettOraiOsszes
@tanevID INT,
@mindenHeten INT
AS
BEGIN
SET NOCOUNT ON;
SELECT DISTINCT
T_FELHASZNALO_OSSZES.ID Id
, T_FELHASZNALO_OSSZES.C_NYOMTATASINEV Nev
FROM T_FOGLALKOZAS_OSSZES
INNER JOIN T_FELHASZNALO_OSSZES ON T_FELHASZNALO_OSSZES.ID=T_FOGLALKOZAS_OSSZES.C_TANARID
WHERE
T_FOGLALKOZAS_OSSZES.C_TANEVID=@tanevId
AND T_FOGLALKOZAS_OSSZES.TOROLT = 'F'
DECLARE kurzor CURSOR FOR
SELECT DISTINCT
T_FELHASZNALO_OSSZES.ID Id
FROM T_FOGLALKOZAS_OSSZES
INNER JOIN T_FELHASZNALO_OSSZES ON T_FELHASZNALO_OSSZES.ID=T_FOGLALKOZAS_OSSZES.C_TANARID
WHERE
T_FOGLALKOZAS_OSSZES.C_TANEVID=@tanevId
AND T_FOGLALKOZAS_OSSZES.TOROLT = 'F'
DECLARE @pedagogusId INT
OPEN kurzor
FETCH NEXT FROM kurzor INTO @pedagogusId
WHILE @@FETCH_STATUS = 0 BEGIN
EXEC sp_PedagogusNemBejegyzettOrai @tanevID, @mindenHeten, @pedagogusId
FETCH NEXT FROM kurzor INTO @pedagogusId
END
CLOSE kurzor
DEALLOCATE kurzor
END
GO

View file

@ -0,0 +1,329 @@
GO
/****** Object: StoredProcedure [dbo].[sp_SetRendszerErtesitesek] Script Date: 2016.06.09. 14:34:01 ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
IF OBJECT_ID('dbo.sp_SetRendszerErtesitesek') IS NOT NULL
BEGIN
DROP PROCEDURE [dbo].[sp_SetRendszerErtesitesek]
END
GO
-- =============================================
-- Author: DT
-- Create date: 2016-03-21
-- Description: Rendszer értesítések tábla frissítése
-- =============================================
CREATE PROCEDURE [dbo].[sp_SetRendszerErtesitesek]
AS
BEGIN
SET NOCOUNT ON;
/*Globál UPDATE*/
UPDATE T_RENDSZERERTESITESEK
SET C_FRISSITESIDEJE = GETDATE()
,LASTCHANGED = GETDATE()
,C_KELLFRISSITES = 'F'
WHERE TOROLT = 'F'
/*Az elektronikus naplóban nincs beállítva a visszamenőleges beírás korlátozása!*/
/*
A rendszerben ...
tanuló nincs osztályba sorolva!
*/
UPDATE T_RENDSZERERTESITESEK
SET C_TANULOKOSZTALYBASOROLASA =
( SELECT COUNT(1)
FROM T_TANULO t
LEFT JOIN T_TANULOCSOPORT TCS ON ( TCS.C_TANULOID = t.ID
AND TCS.TOROLT = 'F'
AND TCS.C_BELEPESDATUM < GETDATE()
AND (TCS.C_KILEPESDATUM is null OR TCS.C_KILEPESDATUM >= GETDATE())
AND T_RENDSZERERTESITESEK.C_INTEZMENYID = TCS.C_INTEZMENYID
AND T_RENDSZERERTESITESEK.C_TANEVID = TCS.C_TANEVID
)
WHERE T.TOROLT = 'F' AND TCS.ID IS NULL
AND T_RENDSZERERTESITESEK.C_INTEZMENYID = T.C_ALINTEZMENYID
AND T_RENDSZERERTESITESEK.C_TANEVID = T.C_ALTANEVID
)
WHERE TOROLT = 'F'
/*
Az órarendben ... órában tanulóütközés van,
azonos órában a tanulónak több tanóra IS rögzítve van!
*/
UPDATE T_RENDSZERERTESITESEK
SET C_ORARENDTANULOUTKOZESEK =
( SELECT count(1)
FROM (
SELECT sub.C_HETIREND, sub.C_HETNAPJA, sub.C_CSENGETESIRENDORAID, sub.C_TANULOID, COUNT(1) AS cnt
FROM (
SELECT o.C_HETIREND, o.C_HETNAPJA, o.C_CSENGETESIRENDORAID, tcs.C_TANULOID--, COUNT(1)
FROM T_ORARENDIORA o
INNER JOIN T_FOGLALKOZAS F ON F.ID = o.C_FOGLALKOZASID AND F.TOROLT = 'F'
INNER JOIN T_OSZTALYCSOPORT OCS ON OCS.ID = F.C_OSZTALYCSOPORTID AND OCS.TOROLT = 'F'
INNER JOIN T_TANULOCSOPORT TCS ON TCS.C_OSZTALYCSOPORTID = OCS.ID AND TCS.TOROLT = 'F'
WHERE o.TOROLT = 'F'
AND F.C_FOGLALKOZASTIPUSA IN (1339, 1368)
AND o.C_ORAERVENYESSEGKEZDETE < GETDATE()
AND (o.C_ORAERVENYESSEGVEGE > GETDATE() OR o.C_ORAERVENYESSEGVEGE IS NULL)
AND tcs.C_BELEPESDATUM < GETDATE()
AND (tcs.C_KILEPESDATUM > GETDATE() OR tcs.C_KILEPESDATUM IS NULL)
AND O.C_INTEZMENYID = T_RENDSZERERTESITESEK.C_INTEZMENYID
AND O.C_TANEVID = T_RENDSZERERTESITESEK.C_TANEVID
UNION ALL
SELECT n.C_HETIREND, o.C_HETNAPJA, o.C_CSENGETESIRENDORAID, tcs.C_TANULOID
FROM T_TANITASIORA o
INNER JOIN T_FOGLALKOZAS F ON F.ID = o.C_FOGLALKOZASID AND F.TOROLT = 'F'
INNER JOIN T_OSZTALYCSOPORT OCS ON OCS.ID = F.C_OSZTALYCSOPORTID AND OCS.TOROLT = 'F'
INNER JOIN T_TANULOCSOPORT TCS ON TCS.C_OSZTALYCSOPORTID = OCS.ID AND TCS.TOROLT = 'F'
INNER JOIN T_NAPTARINAP n ON n.ID = o.C_NAPTARINAPID AND n.TOROLT = 'F'
WHERE o.TOROLT = 'F'
AND F.C_FOGLALKOZASTIPUSA IN (1339, 1368)
AND tcs.C_BELEPESDATUM < GETDATE()
AND (tcs.C_KILEPESDATUM > GETDATE() OR tcs.C_KILEPESDATUM IS NULL)
AND o.C_ORARENDIORAID IS NULL
AND o.C_DATUM > getdate() - 1
AND O.C_INTEZMENYID = T_RENDSZERERTESITESEK.C_INTEZMENYID
AND O.C_TANEVID = T_RENDSZERERTESITESEK.C_TANEVID
) sub
GROUP BY sub.C_HETIREND, sub.C_HETNAPJA, sub.C_CSENGETESIRENDORAID, sub.C_TANULOID
HAVING COUNT(1) > 1
) A )
WHERE TOROLT = 'F'
/*
Az intézménynek hiányosan vannak kitöltve az adatai!
Ennek következményeként a dokumentumokban az intézmény adatai nem jelennek meg!
*/
UPDATE T_RENDSZERERTESITESEK
SET C_INTEZMENYHIANYOSADATOK = IIF(
(SELECT count(1)
FROM T_INTEZMENYADATOK i
WHERE i.TOROLT = 'F'
AND (C_NEV IS NULL
OR C_OMKOD IS NULL
OR C_IRANYITOSZAM IS NULL
OR C_VAROS IS NULL
OR C_KOZTERULETNEV IS NULL
OR C_KOZTERULETJELLEG IS NULL
OR C_HAZSZAM IS NULL
OR C_IGAZGATONEVE IS NULL)
AND I.C_INTEZMENYID = T_RENDSZERERTESITESEK.C_INTEZMENYID
AND I.C_TANEVID = T_RENDSZERERTESITESEK.C_TANEVID
) > 0, 'T', 'F' )
WHERE TOROLT = 'F'
/*
A rendszerben ...
tanulónak nem megfelelő formátumú az oktatási azonosítója.
*/
UPDATE T_RENDSZERERTESITESEK
SET C_TANULOHIANYOSOKTATASIAZONOSI = (
SELECT count(1)
FROM T_TANULO t
INNER JOIN T_FELHASZNALO f ON f.ID = t.ID AND f.TOROLT = 'F'
WHERE t.TOROLT = 'F'
AND (f.C_OKTATASIAZONOSITO NOT LIKE '7%'
OR f.C_OKTATASIAZONOSITO LIKE '%[^0-9]%'
OR LEN(f.C_OKTATASIAZONOSITO) <> 11)
AND T.C_ALINTEZMENYID = T_RENDSZERERTESITESEK.C_INTEZMENYID
AND T.C_ALTANEVID = T_RENDSZERERTESITESEK.C_TANEVID
)
WHERE TOROLT = 'F'
/*
A rendszerben ...
tanárnak nem megfelelő formátumú az oktatási azonosítója.
*/
UPDATE T_RENDSZERERTESITESEK
SET C_TANAROKHIANYOSOKTATASIAZONOS = (
SELECT count(1)
FROM T_ALKALMAZOTT a
INNER JOIN T_FELHASZNALO f ON f.ID = a.ID AND f.TOROLT = 'F'
WHERE a.TOROLT = 'F'
AND (f.C_OKTATASIAZONOSITO not like '7%'
or f.C_OKTATASIAZONOSITO LIKE '%[^0-9]%'
or LEN(f.C_OKTATASIAZONOSITO) <> 11)
AND A.C_ALINTEZMENYID = T_RENDSZERERTESITESEK.C_INTEZMENYID
AND A.C_ALTANEVID = T_RENDSZERERTESITESEK.C_TANEVID
)
WHERE TOROLT = 'F'
/*
A tantárgyfelosztásban ...
tanár nem szerepel!
*/
UPDATE T_RENDSZERERTESITESEK
SET C_TANTARGYFELOSZTASTANARNINCSE = (
SELECT COUNT(1)
FROM T_ALKALMAZOTT a
LEFT JOIN T_FOGLALKOZAS F ON ( A.ID = F.C_TANARID AND F.TOROLT = 'F'
AND F.C_INTEZMENYID = A.C_ALINTEZMENYID
AND F.C_TANEVID = A.C_ALTANEVID
)
WHERE a.TOROLT = 'F' AND f.ID IS NULL
AND A.C_ALINTEZMENYID = T_RENDSZERERTESITESEK.C_INTEZMENYID
AND A.C_ALTANEVID = T_RENDSZERERTESITESEK.C_TANEVID
)
WHERE TOROLT = 'F'
/*
A tantárgyak közül ...
tantárgy nem szerepel a tantárgyfelosztásban!
*/
UPDATE T_RENDSZERERTESITESEK
SET C_TANTARGYFELOSZTASTANTARGYNIN = (
SELECT count(1)
FROM T_TANTARGY tt
LEFT JOIN T_FOGLALKOZAS f ON ( f.C_TANTARGYID = tt.ID AND f.TOROLT = 'F'
AND F.C_INTEZMENYID = T_RENDSZERERTESITESEK.C_INTEZMENYID
AND F.C_TANEVID = T_RENDSZERERTESITESEK.C_TANEVID
)
WHERE f.ID IS NULL AND TT.TOROLT = 'F'
AND TT.C_INTEZMENYID = T_RENDSZERERTESITESEK.C_INTEZMENYID
AND TT.C_TANEVID = T_RENDSZERERTESITESEK.C_TANEVID
)
WHERE TOROLT = 'F'
/*
Az osztályok ill. tanórai célú csoportok közül ...
nem szerepel a tantárgyfelosztásban!
*/
UPDATE T_RENDSZERERTESITESEK
SET C_TANTARGYFELOSZTASOSZTALYOKNI = (
SELECT count(1)
FROM T_OSZTALYCSOPORT ocs
LEFT JOIN T_FOGLALKOZAS f ON ( f.C_OSZTALYCSOPORTID = ocs.ID AND f.TOROLT = 'F'
AND F.C_INTEZMENYID = T_RENDSZERERTESITESEK.C_INTEZMENYID
AND F.C_TANEVID = T_RENDSZERERTESITESEK.C_TANEVID
)
WHERE ocs.TOROLT = 'F' AND f.ID IS NULL
AND ( EXISTS ( SELECT 1 FROM T_OSZTALY WHERE T_OSZTALY.ID = OCS.ID ) -- OSZTÁLY
OR
EXISTS ( SELECT 1 FROM T_CSOPORT WHERE T_CSOPORT.C_TIPUSA = 1034 AND T_CSOPORT.ID = OCS.ID) -- CSOPORT
)
AND ocs.C_INTEZMENYID = T_RENDSZERERTESITESEK.C_INTEZMENYID
AND ocs.C_TANEVID = T_RENDSZERERTESITESEK.C_TANEVID
)
WHERE TOROLT = 'F'
/*
Az órarendben ... órában teremütközés van,
azonos teremben több óra IS szerepel!
*/
UPDATE T_RENDSZERERTESITESEK
SET C_ORARENDTEREMUTKOZES = ( SELECT COUNT(1)
FROM (
SELECT sub.C_HETIREND, sub.C_HETNAPJA, sub.C_TEREMID, sub.C_CSENGETESIRENDORAID, COUNT(1) cnt
FROM (
SELECT DISTINCT o.C_HETIREND, o.C_HETNAPJA, o.C_TEREMID, o.C_CSENGETESIRENDORAID, o.C_FOGLALKOZASID
FROM T_ORARENDIORA o
INNER JOIN T_TEREM t ON t.ID = o.C_TEREMID AND t.TOROLT = 'F'
INNER JOIN T_FOGLALKOZAS f ON f.ID = o.C_FOGLALKOZASID AND f.TOROLT = 'F'
WHERE o.C_ORAERVENYESSEGKEZDETE < GETDATE() AND (o.C_ORAERVENYESSEGVEGE > GETDATE() OR o.C_ORAERVENYESSEGVEGE IS NULL)
AND t.C_TOBBORATLEHETTARTANI = 'F'
AND o.TOROLT = 'F'
AND O.C_INTEZMENYID = T_RENDSZERERTESITESEK.C_INTEZMENYID
AND O.C_TANEVID = T_RENDSZERERTESITESEK.C_TANEVID
UNION
SELECT DISTINCT n.C_HETIREND , n.C_HETNAPJA, o.C_TEREMID, o.C_CSENGETESIRENDORAID, o.C_FOGLALKOZASID
FROM T_TANITASIORA o
INNER JOIN T_NAPTARINAP n ON n.ID = o.C_NAPTARINAPID AND n.TOROLT = 'F'
INNER JOIN T_FOGLALKOZAS f ON f.ID = o.C_FOGLALKOZASID AND f.TOROLT = 'F'
INNER JOIN T_TEREM t ON t.ID = o.C_TEREMID AND t.TOROLT = 'F'
WHERE o.C_ORARENDIORAID IS NULL
AND n.C_NAPDATUMA > GETDATE() - 1
AND t.C_TOBBORATLEHETTARTANI = 'F'
AND o.TOROLT = 'F'
AND O.C_INTEZMENYID = T_RENDSZERERTESITESEK.C_INTEZMENYID
AND O.C_TANEVID = T_RENDSZERERTESITESEK.C_TANEVID
) sub
GROUP BY sub.C_HETIREND, sub.C_HETNAPJA, sub.C_TEREMID, sub.C_CSENGETESIRENDORAID
HAVING COUNT(1) > 1
) tbl )
WHERE TOROLT = 'F'
/*
Az órarendben ... órában tanárütközés szerepel,
azonos órában a pedagógushoz több tanóra IS tartozik.
*/
UPDATE T_RENDSZERERTESITESEK
SET C_ORARENDTANARUTKOZES = ( SELECT count(1)
FROM (
SELECT sub.C_TANARID, sub.C_HETIREND, sub.C_HETNAPJA, sub.C_CSENGETESIRENDORAID, COUNT(1) cnt
FROM (
SELECT f.C_TANARID, o.C_HETIREND, o.C_HETNAPJA, o.C_CSENGETESIRENDORAID, o.C_TEREMID
FROM T_ORARENDIORA o
INNER JOIN T_FOGLALKOZAS f ON f.ID = o.C_FOGLALKOZASID AND f.TOROLT = 'F'
WHERE o.TOROLT = 'F'
AND o.C_ORAERVENYESSEGKEZDETE < GETDATE()
AND (o.C_ORAERVENYESSEGVEGE > GETDATE() OR o.C_ORAERVENYESSEGVEGE IS NULL)
AND O.C_INTEZMENYID = T_RENDSZERERTESITESEK.C_INTEZMENYID
AND O.C_TANEVID = T_RENDSZERERTESITESEK.C_TANEVID
UNION
SELECT ISNULL(o.C_HELYETTESITOTANARID, f.C_TANARID) AS C_TANAROKID, n.C_HETIREND, o.C_HETNAPJA, o.C_CSENGETESIRENDORAID, o.C_TEREMID
FROM T_TANITASIORA o
INNER JOIN T_FOGLALKOZAS f ON f.ID = o.C_FOGLALKOZASID AND f.TOROLT = 'F'
INNER JOIN T_NAPTARINAP n ON n.ID = o.C_NAPTARINAPID AND n.TOROLT = 'F'
WHERE o.TOROLT = 'F'
AND o.C_ORARENDIORAID IS NULL
AND o.C_DATUM > getdate() - 1
AND O.C_INTEZMENYID = T_RENDSZERERTESITESEK.C_INTEZMENYID
AND O.C_TANEVID = T_RENDSZERERTESITESEK.C_TANEVID
) sub
GROUP BY sub.C_TANARID, sub.C_HETIREND, sub.C_HETNAPJA, sub.C_CSENGETESIRENDORAID
HAVING COUNT(1) > 1
) tbl )
WHERE TOROLT = 'F'
/*
Azon tanulók száma, akik osztályba vannak sorolva, de nincs tantervük
*/
UPDATE T_RENDSZERERTESITESEK
SET C_TANTERVNELKULITANULOK = (
SELECT count(1)
FROM (
select distinct T_TANULO.ID
from T_TANULOCSOPORT
inner join T_TANULO on (T_TANULO.ID = T_TANULOCSOPORT.C_TANULOID and T_TANULO.TOROLT = 'F')
where T_TANULO.C_TANTERVID is null
and T_TANULOCSOPORT.TOROLT = 'F'
and T_TANULOCSOPORT.C_BELEPESDATUM < GETDATE()
and (T_TANULOCSOPORT.C_KILEPESDATUM is null or T_TANULOCSOPORT.C_KILEPESDATUM > GETDATE())
AND T_TANULOCSOPORT.C_INTEZMENYID = T_RENDSZERERTESITESEK.C_INTEZMENYID
AND T_TANULOCSOPORT.C_TANEVID = T_RENDSZERERTESITESEK.C_TANEVID
) tbl )
WHERE TOROLT = 'F'
/*
Nincs beállítva aktív csengetési rend
*/
UPDATE T_RENDSZERERTESITESEK
SET C_AKTIVCSENGETESIREND = ( SELECT IIF(EXISTS(SELECT 1
FROM T_CSENGETESIREND
WHERE C_AKTIV = 'T'
AND T_CSENGETESIREND.C_INTEZMENYID = T_RENDSZERERTESITESEK.C_INTEZMENYID
AND T_CSENGETESIREND.C_TANEVID = T_RENDSZERERTESITESEK.C_TANEVID),
'F', 'T') )
WHERE TOROLT = 'F'
END