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,625 @@
GO
SET ANSI_NULLS, ANSI_PADDING, ANSI_WARNINGS, ARITHABORT, CONCAT_NULL_YIELDS_NULL, QUOTED_IDENTIFIER ON;
SET NUMERIC_ROUNDABORT OFF;
GO
PRINT N'Dropping [dbo].[T_ORARENDIORA].[C_TANORANKIVULIFOGLALKOZAS].[MS_Description]...';
GO
EXECUTE sp_dropextendedproperty @name = N'MS_Description', @level0type = N'SCHEMA', @level0name = N'dbo', @level1type = N'TABLE', @level1name = N'T_ORARENDIORA', @level2type = N'COLUMN', @level2name = N'C_TANORANKIVULIFOGLALKOZAS';
GO
PRINT N'Dropping [dbo].[T_OSZTALY].[C_TECHNIKAIOSZTALY].[MS_Description]...';
GO
EXECUTE sp_dropextendedproperty @name = N'MS_Description', @level0type = N'SCHEMA', @level0name = N'dbo', @level1type = N'TABLE', @level1name = N'T_OSZTALY', @level2type = N'COLUMN', @level2name = N'C_TECHNIKAIOSZTALY';
GO
PRINT N'Dropping [dbo].[T_TANITASIORA].[C_TANORANKIVULIFOGLALKOZAS].[MS_Description]...';
GO
EXECUTE sp_dropextendedproperty @name = N'MS_Description', @level0type = N'SCHEMA', @level0name = N'dbo', @level1type = N'TABLE', @level1name = N'T_TANITASIORA', @level2type = N'COLUMN', @level2name = N'C_TANORANKIVULIFOGLALKOZAS';
GO
DECLARE @sql NVARCHAR(MAX) = ''
SELECT @sql += 'ALTER TABLE ' + tables.name + ' DROP CONSTRAINT IF EXISTS ' + default_constraints.name + ';' + char(13) + char(10)
FROM sys.all_columns
INNER JOIN sys.tables ON all_columns.object_id = tables.object_id
INNER JOIN sys.schemas ON tables.schema_id = schemas.schema_id
INNER JOIN sys.default_constraints ON all_columns.default_object_id = default_constraints.object_id
WHERE schemas.name = 'dbo'
AND tables.name = 'T_ORARENDIORA'
AND all_columns.name IN ('C_TANORANKIVULIFOGLALKOZAS')
SELECT @sql += 'ALTER TABLE ' + tables.name + ' DROP CONSTRAINT IF EXISTS ' + default_constraints.name + ';' + char(13) + char(10)
FROM sys.all_columns
INNER JOIN sys.tables ON all_columns.object_id = tables.object_id
INNER JOIN sys.schemas ON tables.schema_id = schemas.schema_id
INNER JOIN sys.default_constraints ON all_columns.default_object_id = default_constraints.object_id
WHERE schemas.name = 'dbo'
AND tables.name = 'T_TANULO'
AND all_columns.name IN ('C_SNILETSZAMSULY')
SELECT @sql += 'ALTER TABLE ' + tables.name + ' DROP CONSTRAINT IF EXISTS ' + default_constraints.name + ';' + char(13) + char(10)
FROM sys.all_columns
INNER JOIN sys.tables ON all_columns.object_id = tables.object_id
INNER JOIN sys.schemas ON tables.schema_id = schemas.schema_id
INNER JOIN sys.default_constraints ON all_columns.default_object_id = default_constraints.object_id
WHERE schemas.name = 'dbo'
AND tables.name = 'T_TANITASIORA'
AND all_columns.name IN ('C_TANORANKIVULIFOGLALKOZAS')
SELECT @sql += 'ALTER TABLE ' + tables.name + ' DROP CONSTRAINT IF EXISTS ' + default_constraints.name + ';' + char(13) + char(10)
FROM sys.all_columns
INNER JOIN sys.tables ON all_columns.object_id = tables.object_id
INNER JOIN sys.schemas ON tables.schema_id = schemas.schema_id
INNER JOIN sys.default_constraints ON all_columns.default_object_id = default_constraints.object_id
WHERE schemas.name = 'dbo'
AND tables.name = 'T_OSZTALY'
AND all_columns.name IN ('C_TECHNIKAIOSZTALY')
EXEC sp_executesql @sql
GO
PRINT N'Altering [dbo].[T_FELHASZNALO]...';
GO
ALTER TABLE [dbo].[T_FELHASZNALO]
ADD [C_MEGJEGYZES] NVARCHAR (500) NULL;
GO
PRINT N'Altering [dbo].[T_ORARENDIORA]...';
GO
ALTER TABLE [dbo].[T_ORARENDIORA] DROP COLUMN [C_TANORANKIVULIFOGLALKOZAS];
GO
PRINT N'Altering [dbo].[T_OSZTALYCSOPORT]...';
GO
ALTER TABLE [dbo].[T_OSZTALYCSOPORT]
ADD [C_ISTECHNIKAI] CHAR (1) DEFAULT ('F') NOT NULL;
GO
UPDATE ocs
SET ocs.C_ISTECHNIKAI = o.C_TECHNIKAIOSZTALY
FROM T_OSZTALYCSOPORT ocs
INNER JOIN T_OSZTALY o ON o.ID = ocs.ID
GO
PRINT N'Altering [dbo].[T_OSZTALY]...';
GO
ALTER TABLE [dbo].[T_OSZTALY] DROP COLUMN [C_TECHNIKAIOSZTALY];
GO
PRINT N'Altering [dbo].[T_TANITASIORA]...';
GO
ALTER TABLE [dbo].[T_TANITASIORA] DROP COLUMN [C_TANORANKIVULIFOGLALKOZAS];
GO
PRINT N'Altering [dbo].[T_TANTARGY]...';
GO
ALTER TABLE [dbo].[T_TANTARGY]
ADD [C_MEGJEGYZES] NVARCHAR (500) NULL,
[C_MUFAJTANSZAKID] INT DEFAULT ((7815)) NOT NULL,
[C_SORSZAM] INT DEFAULT ((1000)) NOT NULL;
GO
PRINT N'Altering [dbo].[T_TANULO]...';
GO
ALTER TABLE [dbo].[T_TANULO] ALTER COLUMN [C_SNILETSZAMSULY] INT NOT NULL;
GO
ALTER TABLE [dbo].[T_TANULO]
ADD [C_TANTERVIJELLEMZOID] INT NULL;
GO
PRINT N'Altering [dbo].[T_TANULOTANUGYIADATOK]...';
GO
ALTER TABLE [dbo].[T_TANULOTANUGYIADATOK]
ADD [C_TANTERVIJELLEMZOID] INT NULL;
GO
PRINT N'Altering [dbo].[T_TEREM]...';
GO
ALTER TABLE [dbo].[T_TEREM]
ADD [C_MEGJEGYZES] NVARCHAR (500) NULL;
GO
PRINT N'Creating [dbo].[T_MUFAJTANSZAKTIPUS]...';
GO
CREATE TABLE [dbo].[T_MUFAJTANSZAKTIPUS] (
[ID] INT NOT NULL,
[C_ALINTEZMENYID] INT NOT NULL,
[C_ALTANEVID] INT NOT NULL,
[TOROLT] CHAR (1) NOT NULL,
[SERIAL] INT NOT NULL,
[LASTCHANGED] DATETIME NOT NULL,
[CREATED] DATETIME NOT NULL,
[MODIFIER] INT NULL,
[CREATOR] INT NULL,
[ELOZOTANEVIREKORDID] INT NULL,
[ELOZOTANEVIREKORDIDA] INT NULL,
[NNID] INT NULL,
CONSTRAINT [PK_MufajTanszakTipus] PRIMARY KEY CLUSTERED ([ID] ASC, [C_ALINTEZMENYID] ASC, [C_ALTANEVID] ASC)
);
GO
PRINT N'Creating [dbo].[T_TANTERVIJELLEMZOTIPUS]...';
GO
CREATE TABLE [dbo].[T_TANTERVIJELLEMZOTIPUS] (
[ID] INT NOT NULL,
[C_ALINTEZMENYID] INT NOT NULL,
[C_ALTANEVID] INT NOT NULL,
[TOROLT] CHAR (1) NOT NULL,
[SERIAL] INT NOT NULL,
[LASTCHANGED] DATETIME NOT NULL,
[CREATED] DATETIME NOT NULL,
[MODIFIER] INT NULL,
[CREATOR] INT NULL,
[ELOZOTANEVIREKORDID] INT NULL,
[ELOZOTANEVIREKORDIDA] INT NULL,
[NNID] INT NULL,
CONSTRAINT [PK_TanterviJellemzoTipus] PRIMARY KEY CLUSTERED ([ID] ASC, [C_ALINTEZMENYID] ASC, [C_ALTANEVID] ASC)
);
GO
PRINT N'Creating unnamed constraint on [dbo].[T_TANULO]...';
GO
ALTER TABLE [dbo].[T_TANULO]
ADD DEFAULT ((1)) FOR [C_SNILETSZAMSULY];
GO
PRINT N'Creating unnamed constraint on [dbo].[T_MUFAJTANSZAKTIPUS]...';
GO
ALTER TABLE [dbo].[T_MUFAJTANSZAKTIPUS]
ADD DEFAULT ('F') FOR [TOROLT];
GO
PRINT N'Creating unnamed constraint on [dbo].[T_MUFAJTANSZAKTIPUS]...';
GO
ALTER TABLE [dbo].[T_MUFAJTANSZAKTIPUS]
ADD DEFAULT ((0)) FOR [SERIAL];
GO
PRINT N'Creating unnamed constraint on [dbo].[T_MUFAJTANSZAKTIPUS]...';
GO
ALTER TABLE [dbo].[T_MUFAJTANSZAKTIPUS]
ADD DEFAULT (getdate()) FOR [CREATED];
GO
PRINT N'Creating unnamed constraint on [dbo].[T_MUFAJTANSZAKTIPUS]...';
GO
ALTER TABLE [dbo].[T_MUFAJTANSZAKTIPUS]
ADD DEFAULT (getdate()) FOR [LASTCHANGED];
GO
PRINT N'Creating unnamed constraint on [dbo].[T_TANTERVIJELLEMZOTIPUS]...';
GO
ALTER TABLE [dbo].[T_TANTERVIJELLEMZOTIPUS]
ADD DEFAULT ((0)) FOR [SERIAL];
GO
PRINT N'Creating unnamed constraint on [dbo].[T_TANTERVIJELLEMZOTIPUS]...';
GO
ALTER TABLE [dbo].[T_TANTERVIJELLEMZOTIPUS]
ADD DEFAULT (getdate()) FOR [LASTCHANGED];
GO
PRINT N'Creating unnamed constraint on [dbo].[T_TANTERVIJELLEMZOTIPUS]...';
GO
ALTER TABLE [dbo].[T_TANTERVIJELLEMZOTIPUS]
ADD DEFAULT ('F') FOR [TOROLT];
GO
PRINT N'Creating unnamed constraint on [dbo].[T_TANTERVIJELLEMZOTIPUS]...';
GO
ALTER TABLE [dbo].[T_TANTERVIJELLEMZOTIPUS]
ADD DEFAULT (getdate()) FOR [CREATED];
GO
PRINT N'Creating [dbo].[FK_MufajTanszakTipus_Id_AlintezmenyId_AltanevId_REF_DictionaryItemBase]...';
GO
ALTER TABLE [dbo].[T_MUFAJTANSZAKTIPUS] WITH NOCHECK
ADD CONSTRAINT [FK_MufajTanszakTipus_Id_AlintezmenyId_AltanevId_REF_DictionaryItemBase] FOREIGN KEY ([ID], [C_ALINTEZMENYID], [C_ALTANEVID]) REFERENCES [dbo].[T_DICTIONARYITEMBASE] ([ID], [C_INTEZMENYID], [C_TANEVID]);
GO
PRINT N'Creating [dbo].[FK_MufajTanszakTipus_AlIntezmenyId_REF_Intezmeny]...';
GO
ALTER TABLE [dbo].[T_MUFAJTANSZAKTIPUS] WITH NOCHECK
ADD CONSTRAINT [FK_MufajTanszakTipus_AlIntezmenyId_REF_Intezmeny] FOREIGN KEY ([C_ALINTEZMENYID]) REFERENCES [dbo].[T_INTEZMENY] ([ID]);
GO
PRINT N'Creating [dbo].[FK_MufajTanszakTipus_AlTanevId_REF_Tanev]...';
GO
ALTER TABLE [dbo].[T_MUFAJTANSZAKTIPUS] WITH NOCHECK
ADD CONSTRAINT [FK_MufajTanszakTipus_AlTanevId_REF_Tanev] FOREIGN KEY ([C_ALTANEVID]) REFERENCES [dbo].[T_TANEV] ([ID]);
GO
PRINT N'Creating [dbo].[FK_TanterviJellemzoTipus_Id_AlintezmenyId_AltanevId_REF_DictionaryItemBase]...';
GO
ALTER TABLE [dbo].[T_TANTERVIJELLEMZOTIPUS] WITH NOCHECK
ADD CONSTRAINT [FK_TanterviJellemzoTipus_Id_AlintezmenyId_AltanevId_REF_DictionaryItemBase] FOREIGN KEY ([ID], [C_ALINTEZMENYID], [C_ALTANEVID]) REFERENCES [dbo].[T_DICTIONARYITEMBASE] ([ID], [C_INTEZMENYID], [C_TANEVID]);
GO
PRINT N'Creating [dbo].[FK_TanterviJellemzoTipus_AlIntezmenyId_REF_Intezmeny]...';
GO
ALTER TABLE [dbo].[T_TANTERVIJELLEMZOTIPUS] WITH NOCHECK
ADD CONSTRAINT [FK_TanterviJellemzoTipus_AlIntezmenyId_REF_Intezmeny] FOREIGN KEY ([C_ALINTEZMENYID]) REFERENCES [dbo].[T_INTEZMENY] ([ID]);
GO
PRINT N'Creating [dbo].[FK_TanterviJellemzoTipus_AlTanevId_REF_Tanev]...';
GO
ALTER TABLE [dbo].[T_TANTERVIJELLEMZOTIPUS] WITH NOCHECK
ADD CONSTRAINT [FK_TanterviJellemzoTipus_AlTanevId_REF_Tanev] FOREIGN KEY ([C_ALTANEVID]) REFERENCES [dbo].[T_TANEV] ([ID]);
GO
PRINT N'Creating [dbo].[FK_Tantargy_MufajTanszakId_IntezmenyId_TanevId_REF_MufajTanszakTipus]...';
GO
ALTER TABLE [dbo].[T_TANTARGY] WITH NOCHECK
ADD CONSTRAINT [FK_Tantargy_MufajTanszakId_IntezmenyId_TanevId_REF_MufajTanszakTipus] FOREIGN KEY ([C_MUFAJTANSZAKID], [C_INTEZMENYID], [C_TANEVID]) REFERENCES [dbo].[T_MUFAJTANSZAKTIPUS] ([ID], [C_ALINTEZMENYID], [C_ALTANEVID]);
GO
PRINT N'Creating [dbo].[FK_Tanulo_TanterviJellemzoId_AlintezmenyId_AltanevId_REF_TanterviJellemzoTipus]...';
GO
ALTER TABLE [dbo].[T_TANULO] WITH NOCHECK
ADD CONSTRAINT [FK_Tanulo_TanterviJellemzoId_AlintezmenyId_AltanevId_REF_TanterviJellemzoTipus] FOREIGN KEY ([C_TANTERVIJELLEMZOID], [C_ALINTEZMENYID], [C_ALTANEVID]) REFERENCES [dbo].[T_TANTERVIJELLEMZOTIPUS] ([ID], [C_ALINTEZMENYID], [C_ALTANEVID]);
GO
PRINT N'Creating [dbo].[FK_TanuloTanugyiAdatok_TanterviJellemzoId_IntezmenyId_TanevId_REF_TanterviJellemzoTipus]...';
GO
ALTER TABLE [dbo].[T_TANULOTANUGYIADATOK] WITH NOCHECK
ADD CONSTRAINT [FK_TanuloTanugyiAdatok_TanterviJellemzoId_IntezmenyId_TanevId_REF_TanterviJellemzoTipus] FOREIGN KEY ([C_TANTERVIJELLEMZOID], [C_INTEZMENYID], [C_TANEVID]) REFERENCES [dbo].[T_TANTERVIJELLEMZOTIPUS] ([ID], [C_ALINTEZMENYID], [C_ALTANEVID]);
GO
PRINT N'Creating [dbo].[T_MUFAJTANSZAKTIPUS].[ID].[MS_Description]...';
GO
EXECUTE dev.uspAddOrUpdateExtendedProperty @name = N'MS_Description', @value = N'A rekord egyedi azonosítója, generált IDENTITY(1, 1) (kivéve altáblák esetén, ahol a főtábla ID-ját kapja)', @level0type = N'SCHEMA', @level0name = N'dbo', @level1type = N'TABLE', @level1name = N'T_MUFAJTANSZAKTIPUS', @level2type = N'COLUMN', @level2name = N'ID';
GO
PRINT N'Creating [dbo].[T_MUFAJTANSZAKTIPUS].[C_ALINTEZMENYID].[MS_Description]...';
GO
EXECUTE dev.uspAddOrUpdateExtendedProperty @name = N'MS_Description', @value = N'Az intézmény ID-ja, amihez a rekord tartozik (altábla esetén)', @level0type = N'SCHEMA', @level0name = N'dbo', @level1type = N'TABLE', @level1name = N'T_MUFAJTANSZAKTIPUS', @level2type = N'COLUMN', @level2name = N'C_ALINTEZMENYID';
GO
PRINT N'Creating [dbo].[T_MUFAJTANSZAKTIPUS].[C_ALTANEVID].[MS_Description]...';
GO
EXECUTE dev.uspAddOrUpdateExtendedProperty @name = N'MS_Description', @value = N'A tanév ID-ja, amihez a rekord tartozik (altábla esetén)', @level0type = N'SCHEMA', @level0name = N'dbo', @level1type = N'TABLE', @level1name = N'T_MUFAJTANSZAKTIPUS', @level2type = N'COLUMN', @level2name = N'C_ALTANEVID';
GO
PRINT N'Creating [dbo].[T_MUFAJTANSZAKTIPUS].[TOROLT].[MS_Description]...';
GO
EXECUTE dev.uspAddOrUpdateExtendedProperty @name = N'MS_Description', @value = N'A rekord logikai töröltségét jelző flag', @level0type = N'SCHEMA', @level0name = N'dbo', @level1type = N'TABLE', @level1name = N'T_MUFAJTANSZAKTIPUS', @level2type = N'COLUMN', @level2name = N'TOROLT';
GO
PRINT N'Creating [dbo].[T_MUFAJTANSZAKTIPUS].[SERIAL].[MS_Description]...';
GO
EXECUTE dev.uspAddOrUpdateExtendedProperty @name = N'MS_Description', @value = N'Minden C# kódból történő módosítás esetén eggyel nő az értéke. Hogy párhuzamos módosítás esetnán ne íródjanak felül az adatok', @level0type = N'SCHEMA', @level0name = N'dbo', @level1type = N'TABLE', @level1name = N'T_MUFAJTANSZAKTIPUS', @level2type = N'COLUMN', @level2name = N'SERIAL';
GO
PRINT N'Creating [dbo].[T_MUFAJTANSZAKTIPUS].[LASTCHANGED].[MS_Description]...';
GO
EXECUTE dev.uspAddOrUpdateExtendedProperty @name = N'MS_Description', @value = N' A rekord utolsó módosításának időpontja', @level0type = N'SCHEMA', @level0name = N'dbo', @level1type = N'TABLE', @level1name = N'T_MUFAJTANSZAKTIPUS', @level2type = N'COLUMN', @level2name = N'LASTCHANGED';
GO
PRINT N'Creating [dbo].[T_MUFAJTANSZAKTIPUS].[CREATED].[MS_Description]...';
GO
EXECUTE dev.uspAddOrUpdateExtendedProperty @name = N'MS_Description', @value = N'A rekord létrehozásának időpontja ', @level0type = N'SCHEMA', @level0name = N'dbo', @level1type = N'TABLE', @level1name = N'T_MUFAJTANSZAKTIPUS', @level2type = N'COLUMN', @level2name = N'CREATED';
GO
PRINT N'Creating [dbo].[T_MUFAJTANSZAKTIPUS].[MODIFIER].[MS_Description]...';
GO
EXECUTE dev.uspAddOrUpdateExtendedProperty @name = N'MS_Description', @value = N'A rekordot utoljára módosító felhasználó ID-ja', @level0type = N'SCHEMA', @level0name = N'dbo', @level1type = N'TABLE', @level1name = N'T_MUFAJTANSZAKTIPUS', @level2type = N'COLUMN', @level2name = N'MODIFIER';
GO
PRINT N'Creating [dbo].[T_MUFAJTANSZAKTIPUS].[CREATOR].[MS_Description]...';
GO
EXECUTE dev.uspAddOrUpdateExtendedProperty @name = N'MS_Description', @value = N'A rekordot létrehozó felhasználó ID-ja', @level0type = N'SCHEMA', @level0name = N'dbo', @level1type = N'TABLE', @level1name = N'T_MUFAJTANSZAKTIPUS', @level2type = N'COLUMN', @level2name = N'CREATOR';
GO
PRINT N'Creating [dbo].[T_MUFAJTANSZAKTIPUS].[ELOZOTANEVIREKORDID].[MS_Description]...';
GO
EXECUTE dev.uspAddOrUpdateExtendedProperty @name = N'MS_Description', @value = N'A rekord előző tanévben lévő ID-ja', @level0type = N'SCHEMA', @level0name = N'dbo', @level1type = N'TABLE', @level1name = N'T_MUFAJTANSZAKTIPUS', @level2type = N'COLUMN', @level2name = N'ELOZOTANEVIREKORDID';
GO
PRINT N'Creating [dbo].[T_MUFAJTANSZAKTIPUS].[ELOZOTANEVIREKORDIDA].[MS_Description]...';
GO
EXECUTE dev.uspAddOrUpdateExtendedProperty @name = N'MS_Description', @value = N'A rekord előző tanévben lévő ID-ja (altábla esetén) ', @level0type = N'SCHEMA', @level0name = N'dbo', @level1type = N'TABLE', @level1name = N'T_MUFAJTANSZAKTIPUS', @level2type = N'COLUMN', @level2name = N'ELOZOTANEVIREKORDIDA';
GO
PRINT N'Creating [dbo].[T_MUFAJTANSZAKTIPUS].[NNID].[MS_Description]...';
GO
EXECUTE dev.uspAddOrUpdateExtendedProperty @name = N'MS_Description', @value = N'A rekord régi, Neptun Naplóban lévő ID-ja. (migrációval került be)', @level0type = N'SCHEMA', @level0name = N'dbo', @level1type = N'TABLE', @level1name = N'T_MUFAJTANSZAKTIPUS', @level2type = N'COLUMN', @level2name = N'NNID';
GO
PRINT N'Creating [dbo].[T_TANTERVIJELLEMZOTIPUS].[ID].[MS_Description]...';
GO
EXECUTE dev.uspAddOrUpdateExtendedProperty @name = N'MS_Description', @value = N'A rekord egyedi azonosítója, generált IDENTITY(1, 1) (kivéve altáblák esetén, ahol a főtábla ID-ját kapja)', @level0type = N'SCHEMA', @level0name = N'dbo', @level1type = N'TABLE', @level1name = N'T_TANTERVIJELLEMZOTIPUS', @level2type = N'COLUMN', @level2name = N'ID';
GO
PRINT N'Creating [dbo].[T_TANTERVIJELLEMZOTIPUS].[C_ALINTEZMENYID].[MS_Description]...';
GO
EXECUTE dev.uspAddOrUpdateExtendedProperty @name = N'MS_Description', @value = N'Az intézmény ID-ja, amihez a rekord tartozik (altábla esetén)', @level0type = N'SCHEMA', @level0name = N'dbo', @level1type = N'TABLE', @level1name = N'T_TANTERVIJELLEMZOTIPUS', @level2type = N'COLUMN', @level2name = N'C_ALINTEZMENYID';
GO
PRINT N'Creating [dbo].[T_TANTERVIJELLEMZOTIPUS].[C_ALTANEVID].[MS_Description]...';
GO
EXECUTE dev.uspAddOrUpdateExtendedProperty @name = N'MS_Description', @value = N'A tanév ID-ja, amihez a rekord tartozik (altábla esetén)', @level0type = N'SCHEMA', @level0name = N'dbo', @level1type = N'TABLE', @level1name = N'T_TANTERVIJELLEMZOTIPUS', @level2type = N'COLUMN', @level2name = N'C_ALTANEVID';
GO
PRINT N'Creating [dbo].[T_TANTERVIJELLEMZOTIPUS].[TOROLT].[MS_Description]...';
GO
EXECUTE dev.uspAddOrUpdateExtendedProperty @name = N'MS_Description', @value = N'A rekord logikai töröltségét jelző flag', @level0type = N'SCHEMA', @level0name = N'dbo', @level1type = N'TABLE', @level1name = N'T_TANTERVIJELLEMZOTIPUS', @level2type = N'COLUMN', @level2name = N'TOROLT';
GO
PRINT N'Creating [dbo].[T_TANTERVIJELLEMZOTIPUS].[SERIAL].[MS_Description]...';
GO
EXECUTE dev.uspAddOrUpdateExtendedProperty @name = N'MS_Description', @value = N'Minden C# kódból történő módosítás esetén eggyel nő az értéke. Hogy párhuzamos módosítás esetnán ne íródjanak felül az adatok', @level0type = N'SCHEMA', @level0name = N'dbo', @level1type = N'TABLE', @level1name = N'T_TANTERVIJELLEMZOTIPUS', @level2type = N'COLUMN', @level2name = N'SERIAL';
GO
PRINT N'Creating [dbo].[T_TANTERVIJELLEMZOTIPUS].[LASTCHANGED].[MS_Description]...';
GO
EXECUTE dev.uspAddOrUpdateExtendedProperty @name = N'MS_Description', @value = N' A rekord utolsó módosításának időpontja', @level0type = N'SCHEMA', @level0name = N'dbo', @level1type = N'TABLE', @level1name = N'T_TANTERVIJELLEMZOTIPUS', @level2type = N'COLUMN', @level2name = N'LASTCHANGED';
GO
PRINT N'Creating [dbo].[T_TANTERVIJELLEMZOTIPUS].[CREATED].[MS_Description]...';
GO
EXECUTE dev.uspAddOrUpdateExtendedProperty @name = N'MS_Description', @value = N'A rekord létrehozásának időpontja ', @level0type = N'SCHEMA', @level0name = N'dbo', @level1type = N'TABLE', @level1name = N'T_TANTERVIJELLEMZOTIPUS', @level2type = N'COLUMN', @level2name = N'CREATED';
GO
PRINT N'Creating [dbo].[T_TANTERVIJELLEMZOTIPUS].[MODIFIER].[MS_Description]...';
GO
EXECUTE dev.uspAddOrUpdateExtendedProperty @name = N'MS_Description', @value = N'A rekordot utoljára módosító felhasználó ID-ja', @level0type = N'SCHEMA', @level0name = N'dbo', @level1type = N'TABLE', @level1name = N'T_TANTERVIJELLEMZOTIPUS', @level2type = N'COLUMN', @level2name = N'MODIFIER';
GO
PRINT N'Creating [dbo].[T_TANTERVIJELLEMZOTIPUS].[CREATOR].[MS_Description]...';
GO
EXECUTE dev.uspAddOrUpdateExtendedProperty @name = N'MS_Description', @value = N'A rekordot létrehozó felhasználó ID-ja', @level0type = N'SCHEMA', @level0name = N'dbo', @level1type = N'TABLE', @level1name = N'T_TANTERVIJELLEMZOTIPUS', @level2type = N'COLUMN', @level2name = N'CREATOR';
GO
PRINT N'Creating [dbo].[T_TANTERVIJELLEMZOTIPUS].[ELOZOTANEVIREKORDID].[MS_Description]...';
GO
EXECUTE dev.uspAddOrUpdateExtendedProperty @name = N'MS_Description', @value = N'A rekord előző tanévben lévő ID-ja', @level0type = N'SCHEMA', @level0name = N'dbo', @level1type = N'TABLE', @level1name = N'T_TANTERVIJELLEMZOTIPUS', @level2type = N'COLUMN', @level2name = N'ELOZOTANEVIREKORDID';
GO
PRINT N'Creating [dbo].[T_TANTERVIJELLEMZOTIPUS].[ELOZOTANEVIREKORDIDA].[MS_Description]...';
GO
EXECUTE dev.uspAddOrUpdateExtendedProperty @name = N'MS_Description', @value = N'A rekord előző tanévben lévő ID-ja (altábla esetén) ', @level0type = N'SCHEMA', @level0name = N'dbo', @level1type = N'TABLE', @level1name = N'T_TANTERVIJELLEMZOTIPUS', @level2type = N'COLUMN', @level2name = N'ELOZOTANEVIREKORDIDA';
GO
PRINT N'Creating [dbo].[T_TANTERVIJELLEMZOTIPUS].[NNID].[MS_Description]...';
GO
EXECUTE dev.uspAddOrUpdateExtendedProperty @name = N'MS_Description', @value = N'A rekord régi, Neptun Naplóban lévő ID-ja. (migrációval került be)', @level0type = N'SCHEMA', @level0name = N'dbo', @level1type = N'TABLE', @level1name = N'T_TANTERVIJELLEMZOTIPUS', @level2type = N'COLUMN', @level2name = N'NNID';
GO
PRINT N'Creating [dbo].[T_OSZTALYCSOPORT].[C_TECHNIKAIOSZTALY].[MS_Description]...';
GO
EXECUTE dev.uspAddOrUpdateExtendedProperty @name = N'MS_Description', @value = N'Jelölés, hogy az osztály csak technikai jellegu (például jogviszonyszünetelo tanulóknak)', @level0type = N'SCHEMA', @level0name = N'dbo', @level1type = N'TABLE', @level1name = N'T_OSZTALYCSOPORT', @level2type = N'COLUMN', @level2name = N'C_ISTECHNIKAI';
GO
EXEC dev.uspCreateDictionaryItems @IntezmenyId = NULL, @pTanevNev = NULL
GO
PRINT N'Checking existing data against newly created constraints';
GO
ALTER TABLE [dbo].[T_MUFAJTANSZAKTIPUS] WITH CHECK CHECK CONSTRAINT [FK_MufajTanszakTipus_Id_AlintezmenyId_AltanevId_REF_DictionaryItemBase];
ALTER TABLE [dbo].[T_MUFAJTANSZAKTIPUS] WITH CHECK CHECK CONSTRAINT [FK_MufajTanszakTipus_AlIntezmenyId_REF_Intezmeny];
ALTER TABLE [dbo].[T_MUFAJTANSZAKTIPUS] WITH CHECK CHECK CONSTRAINT [FK_MufajTanszakTipus_AlTanevId_REF_Tanev];
ALTER TABLE [dbo].[T_TANTERVIJELLEMZOTIPUS] WITH CHECK CHECK CONSTRAINT [FK_TanterviJellemzoTipus_Id_AlintezmenyId_AltanevId_REF_DictionaryItemBase];
ALTER TABLE [dbo].[T_TANTERVIJELLEMZOTIPUS] WITH CHECK CHECK CONSTRAINT [FK_TanterviJellemzoTipus_AlIntezmenyId_REF_Intezmeny];
ALTER TABLE [dbo].[T_TANTERVIJELLEMZOTIPUS] WITH CHECK CHECK CONSTRAINT [FK_TanterviJellemzoTipus_AlTanevId_REF_Tanev];
ALTER TABLE [dbo].[T_TANTARGY] WITH CHECK CHECK CONSTRAINT [FK_Tantargy_MufajTanszakId_IntezmenyId_TanevId_REF_MufajTanszakTipus];
ALTER TABLE [dbo].[T_TANULO] WITH CHECK CHECK CONSTRAINT [FK_Tanulo_TanterviJellemzoId_AlintezmenyId_AltanevId_REF_TanterviJellemzoTipus];
ALTER TABLE [dbo].[T_TANULOTANUGYIADATOK] WITH CHECK CHECK CONSTRAINT [FK_TanuloTanugyiAdatok_TanterviJellemzoId_IntezmenyId_TanevId_REF_TanterviJellemzoTipus];
GO
PRINT N'Update complete.';
GO
EXEC dev.uspCreateSchemaViews 'T_MUFAJTANSZAKTIPUS, T_TANTERVIJELLEMZOTIPUS ,T_TANULO, T_FELHASZNALO, T_TANTARGY, T_TANULOTANUGYIADATOK, T_OSZTALY, T_OSZTALYCSOPORT, T_ORARENDIORA, T_TANITASIORA, T_TEREM'
GO
EXEC dev.sp_Global_GenerateAsyncAuditTriggerAll
GO
ALTER QUEUE auditLog.[AuditQueue]
WITH ACTIVATION (
STATUS = ON,
PROCEDURE_NAME = auditLog.usp_AuditProcessing,
MAX_QUEUE_READERS = 10,
EXECUTE AS 'Kreta_tech_user'
);
GO

View file

@ -0,0 +1,127 @@
IF OBJECT_ID('dbo.sp_CsengetesiRendOrakTorles') IS NOT NULL BEGIN
DROP PROCEDURE dbo.sp_CsengetesiRendOrakTorles
END
GO
CREATE PROCEDURE [dbo].[sp_CsengetesiRendOrakTorles]
@TanevId int,
@xml xml
AS
BEGIN
-- SET NOCOUNT ON added to prevent extra result sets from
-- interfering with SELECT statements.
SET NOCOUNT ON;
DECLARE @torlendoCsengetesiRendek TABLE (id int);
INSERT INTO @torlendoCsengetesiRendek
SELECT
sor.value('.', 'int') AS id
FROM @xml.nodes('/CsengetesiRendOraTorles/IdLista/Id') as sorok(sor)
SELECT
ID oraId,
csengrendOraId,
newCsengrendOraId,
newOraKezdete,
newOraVege,
ISNULL(newOraszam, 0) newOraszam,
newCsengrendId,
IsTanora,
UpdateVegeDate,
UpdateKezdeteDate,
UpdateType
INTO #TEMPmodositandoOrak
from (
select kapcsolodoOrak.ID,
kapcsolodoOrak.C_CSENGETESIRENDID,
kapcsolodoOrak.C_CSENGETESIRENDORAID csengrendOraId,
kapcsolodoOrak.C_ORASZAM,
alapcsora.C_KEZDETE,
alapcsora.C_VEGE,
kapcsolodoOrak.C_ORAKEZDETE,
kapcsolodoOrak.C_ORAVEGE,
kapcsolodoOrak.Tanora IsTanora,
csengrend.ID newCsengrendOraId,
csengrend.C_CSENGETESIRENDID newCsengrendId,
csengrend.C_KEZDETE newOraKezdete,
csengrend.C_VEGE newOraVege,
csengrend.C_ORASZAM newOraszam
,IIF(kapcsolodoOrak.Tanora = 0 and cast(alapcsora.C_VEGE as time) = cast(kapcsolodoOrak.C_ORAVEGE as time) and csengrend.C_VEGE is not null, 1, 0) UpdateVegeDate
,IIF(kapcsolodoOrak.Tanora = 0 and cast(alapcsora.C_KEZDETE as time) = cast(kapcsolodoOrak.C_ORAKEZDETE as time) and csengrend.C_KEZDETE is not null, 1, 0) UpdateKezdeteDate
,IIF(csengrend.ID is null, 1, 0) UpdateType
from (
select
x.ID,
C_CSENGETESIRENDID,
C_CSENGETESIRENDORAID,
C_ORASZAM,
C_ORAKEZDETE,
C_ORAVEGE,
Tanora
from(
select ID,
C_CSENGETESIRENDID,
C_CSENGETESIRENDORAID,
C_ORASZAM,
C_ORAKEZDETE,
C_ORAVEGE,
0 Tanora
from T_ORARENDIORA_OSSZES
union
select ID,
C_CSENGETESIRENDID,
C_CSENGETESIRENDORAID,
C_ORASZAM,
C_ORAKEZDETE,
C_ORAVEGE,
1 Tanora
from T_TANITASIORA_OSSZES
) x
inner join @torlendoCsengetesiRendek torlendoIdk on torlendoIdk.id = x.C_CSENGETESIRENDORAID
) kapcsolodoOrak
left join (
select
ID,
C_KEZDETE,
C_VEGE
from T_CSENGETESIRENDORA_OSSZES) alapcsora on alapcsora.ID = kapcsolodoOrak.C_CSENGETESIRENDORAID
left join (select csora.ID,
csora.C_CSENGETESIRENDID,
csora.C_KEZDETE,
csora.C_VEGE,
csora.C_ORASZAM
from T_CSENGETESIRENDORA_OSSZES csora
inner join T_CSENGETESIREND_OSSZES on csora.C_CSENGETESIRENDID = T_CSENGETESIREND_OSSZES.ID And T_CSENGETESIREND_OSSZES.C_AKTIV = 'T'
where csora.C_TANEVID = @TanevId)csengrend on csengrend.C_ORASZAM = kapcsolodoOrak.C_ORASZAM and csengrend.ID != kapcsolodoOrak.C_CSENGETESIRENDORAID
)t
UPDATE o
SET
o.C_ORAVEGE = IIF(temp.UpdateVegeDate = 1,
DATEADD(HOUR, datepart(hour, temp.newOraVege),DATEADD(MINUTE,datepart(minute, temp.newOraVege),CAST(CAST(o.C_ORAVEGE AS DATE) as datetime))),
o.C_ORAVEGE),
o.C_ORAKEZDETE = IIF(temp.UpdateKezdeteDate = 1,
DATEADD(HOUR, datepart(hour, temp.newOraVege),DATEADD(MINUTE,datepart(minute, temp.newOraVege),CAST(CAST(o.C_ORAKEZDETE AS DATE) as datetime))),
o.C_ORAKEZDETE),
o.C_CSENGETESIRENDID = temp.newCsengrendId,
o.C_CSENGETESIRENDORAID = temp.newCsengrendOraId,
o.C_ORASZAM = temp.newOraszam
from T_ORARENDIORA_OSSZES o
inner join #TEMPmodositandoOrak temp on temp.csengrendOraId = o.C_CSENGETESIRENDORAID and temp.IsTanora = 0
UPDATE t
SET
t.C_CSENGETESIRENDID = temp.newCsengrendId,
t.C_CSENGETESIRENDORAID = temp.newCsengrendOraId,
t.C_ORASZAM = temp.newOraszam
from T_TANITASIORA_OSSZES t
inner join #TEMPmodositandoOrak temp on temp.csengrendOraId = t.C_CSENGETESIRENDORAID and temp.IsTanora = 1
DELETE csro
FROM T_CSENGETESIRENDORA_OSSZES csro
inner join @torlendoCsengetesiRendek torlendoIdk on torlendoIdk.id = csro.ID
DROP TABLE #TEMPmodositandoOrak
END

View file

@ -0,0 +1,84 @@
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
IF OBJECT_ID('[dbo].[sp_GetOsztalyTanuloinakHaviMulasztasaiOsszesitoje]') IS NOT NULL
BEGIN
DROP PROCEDURE [dbo].[sp_GetOsztalyTanuloinakHaviMulasztasaiOsszesitoje]
END
GO
CREATE PROCEDURE [dbo].[sp_GetOsztalyTanuloinakHaviMulasztasaiOsszesitoje]
@pTanevId INT,
@pIntezmenyId INT,
@pOsztalyId INT,
@pElmeletgyakorlat BIT = 0,
@pMulasztandoOrakszamaTeljesNaposMulasztashoz INT = 3
AS
BEGIN
DECLARE @honapok TABLE(honap INT, honapnev NVARCHAR(max));
INSERT INTO @honapok
SELECT DISTINCT (3 + d.c_value) % 12 + 1 AS c_value, d.c_name as Honap
FROM T_DICTIONARYITEMBASE_OSSZES d
WHERE c_type LIKE 'honap%'
ORDER BY c_value;
SELECT honapnev FROM @honapok;
DECLARE honap_cursor CURSOR FOR
SELECT DISTINCT (3 + d.c_value) % 12 + 1 AS honap_sorrend, d.c_value AS honap
FROM T_DICTIONARYITEMBASE_OSSZES d
WHERE c_type LIKE 'honap%'
ORDER BY honap_sorrend;
DECLARE @honap_sorrend INT, @honap INT;
OPEN honap_cursor
FETCH NEXT FROM honap_cursor
INTO @honap_sorrend, @honap;
WHILE @@FETCH_STATUS = 0
BEGIN
EXEC [sp_GetOsztalyTanuloinakHaviMulasztasaiOsszesitoje_honapra] @pTanevId, @pIntezmenyId, @pOsztalyId, @honap, @pElmeletgyakorlat, @pMulasztandoOrakszamaTeljesNaposMulasztashoz
FETCH NEXT FROM honap_cursor
INTO @honap_sorrend, @honap
END
CLOSE honap_cursor
DEALLOCATE honap_cursor
SELECT
ocs.ID AS OsztalyId
,ocs.C_EVFOLYAMTIPUSA AS EvfolyamTipusa
,ocs.C_FELADATELLATASIHELYID AS FeladatEllatasiHelyId
,o.C_OSZTALYFONOKID AS OsztalyfonokId
,o.C_TANTERVID AS TantervId
,ocs.C_KEPZESIFORMA AS KepzesiForma
,o.C_AGAZAT AS Agazat
,o.C_SZAKMACSOPORT AS SzakmaCsoport
,o.C_SZAKKEPESITES Szakkepesites
,o.C_RESZSZAKKEPESITES Reszszakkepesites
,ocs.C_KERESZTFELEVES OJCSJKeresztfeleves
,ocs.C_VEGZOSEVFOLYAM CSJVegzosEvfolyamu
,ocs.C_ISTECHNIKAI OJTechnikaiOsztaly
,o.C_NEMZETISEGI OJNemzetisegi
,o.C_KETTANNYELVU OJKettannyelvu
,o.C_NYELVIELOKESZITO OJNyelviElokeszito
,ocs.C_ISGYOGYPEDAGOGIAILOGOPEDIAI OJIsGyogypedagogiaiLogopediai
,o.C_SPORT OJSportOsztaly
,o.C_AJPROGRAM OJAranyJanosProgram
FROM T_OSZTALYCSOPORT_OSSZES ocs
INNER JOIN T_OSZTALY_OSSZES o ON o.ID = ocs.ID
WHERE ocs.ID = @pOsztalyId
AND ocs.C_TANEVID = @pTanevId
AND ocs.C_INTEZMENYID = @pIntezmenyId
AND ocs.TOROLT = 'F'
END
SELECT
tanuloID AS TanuloId
,tanuloNeve AS TanuloNeve
,oktAzon AS OktAzon
FROM fnGetDokumentumTanuloiAlapadatok(@pOsztalyId, @pTanevId, 'T')
GO

View file

@ -0,0 +1,252 @@
DROP PROCEDURE IF EXISTS sp_GetTanuloiAdatlapAdatok
GO
CREATE PROCEDURE [dbo].[sp_GetTanuloiAdatlapAdatok]
@osztCsopID INT,
@TanevId INT
AS
BEGIN
SET NOCOUNT ON;
CREATE TABLE #JogviszonyVege (TanuloId int,Datum date)
INSERT INTO #JogviszonyVege
SELECT
TanuloId
,MAX(C_KILEPESDATUM)
FROM fnGetDokumentumOsztalyokCsoportokTanuloi(@tanevId, @osztCsopID, 'T') Tanulok
INNER JOIN T_TANULOCSOPORT_OSSZES TanuloCsoport ON TanuloCsoport.C_TANULOID = Tanulok.TanuloId AND TanuloCsoport.TOROLT = 'F' AND TanuloCsoport.C_TANEVID = @TanevId
INNER JOIN T_OSZTALY_OSSZES Osztaly ON Osztaly.ID = TanuloCsoport.C_OSZTALYCSOPORTID AND Osztaly.TOROLT = 'F' AND C_ALTANEVID = @TanevId
GROUP BY TanuloId
DECLARE @DefaultFeladatKategoriaId int = (SELECT C_FELADATKATEGORIAID FROM T_OSZTALYCSOPORT_OSSZES WHERE ID = @osztCsopID)
--Fejléc
SELECT
T_INTEZMENYADATOK_OSSZES.C_NEV IntezmenyNeve,
T_INTEZMENYADATOK_OSSZES.C_VAROS IntezmenyVaros,
dbo.fnGetDokumentumIntezmenyCime(@tanevId) IntezmenyCime,
T_INTEZMENYADATOK_OSSZES.C_OMKOD OMKod,
T_INTEZMENYADATOK_OSSZES.C_TELEFONSZAM TELEFON,
T_INTEZMENYADATOK_OSSZES.C_EMAILCIM EMAILCIM,
T_TANEV_OSSZES.C_NEV TANEV,
o.C_OSZTALYFONOKID PartnerID,
f.C_NYOMTATASINEV OSZTALYFONOK,
ocs.C_NEV OSZTALYNEV
,@osztCsopID OsztalyId
FROM T_INTEZMENYADATOK_OSSZES
INNER JOIN T_TANEV_OSSZES on T_TANEV_OSSZES.ID = T_INTEZMENYADATOK_OSSZES.C_TANEVID and T_TANEV_OSSZES.TOROLT = 'F'
INNER JOIN T_OSZTALYCSOPORT_OSSZES ocs ON ocs.ID = @osztCsopID AND ocs.TOROLT = 'F' AND ocs.C_FELADATKATEGORIAID = @DefaultFeladatKategoriaId
LEFT JOIN T_OSZTALY_OSSZES o ON o.ID = ocs.ID AND o.TOROLT = 'F'
LEFT JOIN T_FELHASZNALO_OSSZES f ON f.ID = o.C_OSZTALYFONOKID AND f.TOROLT = 'F'
WHERE
T_INTEZMENYADATOK_OSSZES.TOROLT = 'F'
AND T_INTEZMENYADATOK_OSSZES.C_TANEVID = @TanevId
CREATE TABLE #EmailCimTableTemp (FelhasznaloId INT, EmailCim NVARCHAR(MAX))
INSERT INTO #EmailCimTableTemp
SELECT
TanuloId
,C_EMAILCIM
FROM fnGetDokumentumOsztalyokCsoportokTanuloi(@tanevId, @osztCsopID, 'T') tanulo
INNER JOIN T_EMAIL_OSSZES email ON email.C_FELHASZNALOID = TanuloId
WHERE
email.TOROLT = 'F'
AND email.C_TANEVID = @TanevId
AND LEN(C_EMAILCIM) > 0
CREATE TABLE #EmailCimTable (FelhasznaloId INT, EmailCim NVARCHAR(MAX))
INSERT INTO #EmailCimTable
SELECT DISTINCT
FelhasznaloId
,STUFF((
SELECT DISTINCT CAST(Btemp.EmailCim AS NVARCHAR(MAX)) + CHAR(13) + CHAR(10)
FROM #EmailCimTableTemp btemp
WHERE
temp.FelhasznaloId = btemp.FelhasznaloId
FOR XML PATH(''), TYPE)
.value('.','NVARCHAR(MAX)'),1,0,'') Email
FROM #EmailCimTableTemp temp
CREATE TABLE #TelefonszamTableTemp (FelhasznaloId INT, Telefonszam NVARCHAR(MAX))
INSERT INTO #TelefonszamTableTemp
SELECT
TanuloId
,C_TELEFONSZAM
FROM fnGetDokumentumOsztalyokCsoportokTanuloi(@tanevId, @osztCsopID, 'T') tanulo
INNER JOIN T_TELEFON_OSSZES telefon ON telefon.C_FELHASZNALOID = TanuloId
WHERE
telefon.TOROLT = 'F'
AND telefon.C_TANEVID = @TanevId
AND LEN(C_TELEFONSZAM) > 0
CREATE TABLE #TelefonszamTable (FelhasznaloId INT, Telefonszam NVARCHAR(MAX))
INSERT INTO #TelefonszamTable
SELECT DISTINCT
FelhasznaloId
,STUFF((
SELECT DISTINCT CAST(Btemp.Telefonszam AS NVARCHAR(MAX)) + CHAR(13) + CHAR(10)
FROM #TelefonszamTableTemp btemp
WHERE
temp.FelhasznaloId = btemp.FelhasznaloId
FOR XML PATH(''), TYPE)
.value('.','NVARCHAR(MAX)'),1,0,'') Telefonszam
FROM #TelefonszamTableTemp temp
CREATE TABLE #TanuloCimTable (FelhasznaloId INT, Cim NVARCHAR(MAX), Cimtipusa INT)
INSERT INTO #TanuloCimTable
SELECT DISTINCT
TanuloId
,STUFF((
SELECT CAST(Btemp.Cim AS NVARCHAR(MAX)) + CHAR(13) + CHAR(10)
FROM fnGetDokumentumTanuloOrGondviseloCim(0, @tanevId, @osztCsopID) btemp
WHERE
temp.TanuloId = btemp.TanuloId
AND temp.CimTipusa = btemp.CimTipusa
FOR XML PATH(''), TYPE)
.value('.','NVARCHAR(MAX)'),1,0,'') Cim
,temp.CimTipusa
FROM fnGetDokumentumTanuloOrGondviseloCim(0, @tanevId, @osztCsopID) temp
CREATE TABLE #GondviselokTableTemp (FelhasznaloId INT, Gondviselo NVARCHAR(MAX))
INSERT INTO #GondviselokTableTemp
SELECT
Gondviselo.TanuloId TanuloId
,Gondviselo.GondviseloNev + ISNULL('('+rokonsagiFoka.C_NAME+')', '') Gondviselo
FROM fnGetDokumentumGondviselok (@osztCsopID, @tanevId, 'F', 'T') Gondviselo
LEFT JOIN T_DICTIONARYITEMBASE_OSSZES rokonsagiFoka ON Gondviselo.RokonsagifokId = rokonsagiFoka.ID AND rokonsagiFoka.C_TANEVID = @TanevId
CREATE TABLE #GondviselokTable (FelhasznaloId INT, Gondviselo NVARCHAR(MAX))
INSERT INTO #GondviselokTable
SELECT DISTINCT
FelhasznaloId
,STUFF((
SELECT ', ' + btemp.Gondviselo
FROM #GondviselokTableTemp btemp
WHERE
temp.FelhasznaloId = btemp.FelhasznaloId
FOR XML PATH(''), TYPE)
.value('.','NVARCHAR(MAX)'),1,2,'') Gondviselo
FROM #GondviselokTableTemp temp
--Tanulók Adatai
SELECT DISTINCT
tta.C_BEIRASINAPLOSORSZAM,
tta.C_NAPLOSORSZAM NaploSorszam,
tta.C_TORZSLAPSZAM TorzslapSzam,
T_TANEV_OSSZES.C_NEV TANEV,
T_OSZTALYCSOPORT_OSSZES.C_NEV OSZTALYNEV,
T_OSZTALYCSOPORT_OSSZES.C_KEPZESIFORMA Kepzesiforma,
T_FELHASZNALO_OSSZES.C_NYOMTATASINEV NEV,
gondviselo.Gondviselo GONDVISELO,
T_FELHASZNALO_OSSZES.C_SZULETESINEV SZULETESINEV,
T_FELHASZNALO_OSSZES.C_ANYJANEVE ANYJANEVE,
T_FELHASZNALO_OSSZES.C_OKTATASIAZONOSITO,
T_FELHASZNALO_OSSZES.C_SZULETESIHELY,
T_FELHASZNALO_OSSZES.C_SZULETESIORSZAG Szuletesiorszag,
FORMAT(T_FELHASZNALO_OSSZES.C_SZULETESIDATUM, 'yyyy.MM.dd.') C_SZULETESIDATUM,
T_FELHASZNALO_OSSZES.C_ALLAMPOLGARSAGA Allampolgarsag,
T_FELHASZNALO_OSSZES.C_ANYANYELVE Anyanyelv,
tta.C_NYILVANTARTASKEZDETE,
tta.C_TANKOTELEZETT Tankotelezett,
tta.C_TANKOTELEZETTSEGVEGE,
tta.C_JOGVISZONYVARHATOBEFEJEZESE,
T_TANULO_OSSZES.C_DIAKIGAZOLVANYSZAM,
T_TANULO_OSSZES.C_DIAKIGAZOLVANYKELTE,
T_TANULO_OSSZES.C_BANKSZAMLASZAM,
AllandoLakcim.Cim,
TartozkodasiHely.CIM TartozkodasiHely,
telefon.Telefonszam C_TELEFONSZAM,
email.EmailCim C_EMAILCIM,
tta.C_BEJARO Bejaro,
tta.C_SZAKMAIGYAKORLATON Szakmaigyak,
tta.C_VENDEG Vendeg,
tta.C_JOGVISZONYATSZUNETELTETO Jogviszonyszunetelteto,
tta.C_MAGANTANULO Magantanulo,
maganTanuloOk.C_NAME as C_MAGANTANULOSAGANAKOKA,
tta.C_MAGANTANULOSAGKEZDETE,
T_TANULO_OSSZES.C_SZAKKEPESITESSZAMA,
T_TANULO_OSSZES.C_TANULOIJOGVISZONYOSELTARTOTT,
T_TANULO_OSSZES.C_TOBBGYERMEKIGAZOLASSZAMA,
tta.C_EVISMETLO Evismetlo,
T_TANULO_OSSZES.C_SZOCIALISTAMOGATAS Szoctam,
T_TANULO_OSSZES.C_HATRANYOSHELYZETU,
T_TANULO_OSSZES.C_VESZELYEZTETETT Veszelyeztetett,
T_TANULO_OSSZES.C_HALMOZOTTANFOGYATEKOS Halmfogyatekos,
T_TANULO_OSSZES.C_ETKEZESIKEDVEZMENY,
tta.C_TERITESIDIJATFIZETO Teriteses,
tta.C_TANDIJATFIZETO Tandijas,
T_TANULO_OSSZES.C_INGYENESTANKONVYELLATASA,
tta.C_TANULOSZERZODESES Tanszerzodeses,
tta.C_POLGARISZERZODESES Polgszerzodeses,
T_TANULO_OSSZES.C_RENDSZERESGYERMEKVEDELMIKEDV,
T_TANULO_OSSZES.C_ALLAMIGONDOZOTT Allamigond,
T_TANULO_OSSZES.C_KOLLEGIUMIELLATASOS Kollegiumi,
T_TANULO_OSSZES.C_TARTOSGYOGYKEZELESSZAMA,
T_TANULO_OSSZES.C_SAJATOSNEVELESU Sajatosnevelesu,
T_TANULO_OSSZES.C_SNILETSZAMSULY,
T_TANULO_OSSZES.C_SNIKIALLITOINTEZMENY,
FORMAT(T_TANULO_OSSZES.C_SNIOKMANYERVENYESSEGKEZDETE, 'yyyy.MM.dd.') C_SNIOKMANYERVENYESSEGKEZDETE,
T_TANULO_OSSZES.C_BTMPROBLEMAS Btmproblemas,
T_TANULO_OSSZES.C_BTMLETSZAMSULY,
T_TANULO_OSSZES.C_BTMHATAROZATOKMANYSZAM,
FORMAT(T_TANULO_OSSZES.C_BTMOKMANYERVENYESSEGKEZDETE, 'yyyy.MM.dd.') C_BTMOKMANYERVENYESSEGKEZDETE,
T_TANULO_OSSZES.C_BTMKIALLITOINTEZMENY,
T_TANULO_OSSZES.C_ELSOINTEZMENYOMKOD,
T_FELHASZNALO_OSSZES.C_IGAZOLVANYSZAM,
igazolvanyTipusa.C_NAME AS IgazolvanyTipusa
,T_TANULO_OSSZES.ID AS TanuloId
,@osztCsopID AS OsztalyId
,JogviszonyVege.Datum JogviszonyVege
,STUFF((SELECT ', ' + Tartalom
FROM fnGetDokumentumTanulokFeljegyzesei(@tanevId, @osztCsopID, null)
WHERE TanuloId = T_FELHASZNALO_OSSZES.ID
AND Tipusa = 1545 --KRETA2-3028
FOR XML PATH(''), TYPE).value('.', 'NVARCHAR(MAX)'),1,2,'') AS Bejegyzes
FROM T_FELHASZNALO_OSSZES
INNER JOIN T_TANULOCSOPORT_OSSZES on T_TANULOCSOPORT_OSSZES.C_TANULOID = T_FELHASZNALO_OSSZES.ID AND T_TANULOCSOPORT_OSSZES.C_OSZTALYCSOPORTID = @osztCsopID
INNER JOIN T_TANULO_OSSZES on T_TANULO_OSSZES.ID = T_FELHASZNALO_OSSZES.ID
INNER JOIN T_OSZTALYCSOPORT_OSSZES on T_OSZTALYCSOPORT_OSSZES.ID = T_TANULOCSOPORT_OSSZES.C_OSZTALYCSOPORTID AND T_OSZTALYCSOPORT_OSSZES.C_FELADATKATEGORIAID = @DefaultFeladatKategoriaId
INNER JOIN T_OSZTALY_OSSZES on T_OSZTALY_OSSZES.ID = T_OSZTALYCSOPORT_OSSZES.ID
INNER JOIN fnGetOsztalyCsoportTanuloinakTanugyiAdatai (@osztCsopID,default) tta ON tta.TanuloId=T_FELHASZNALO_OSSZES.ID
INNER JOIN T_TANEV_OSSZES on T_TANEV_OSSZES.ID = T_OSZTALYCSOPORT_OSSZES.C_TANEVID
LEFT JOIN #TelefonszamTable telefon on telefon.FelhasznaloId = T_FELHASZNALO_OSSZES.ID
LEFT JOIN #EmailCimTable email on email.FelhasznaloId = T_FELHASZNALO_OSSZES.ID
LEFT JOIN #GondviselokTable gondviselo on gondviselo.FelhasznaloId = T_FELHASZNALO_OSSZES.ID
LEFT JOIN T_DICTIONARYITEMBASE_OSSZES igazolvanyTipusa ON T_FELHASZNALO_OSSZES.C_IGAZOLVANYTIPUSA = igazolvanyTipusa.ID AND igazolvanyTipusa.C_TANEVID = @TanevId
LEFT JOIN T_DICTIONARYITEMBASE_OSSZES maganTanuloOk ON tta.C_MAGANTANULOSAGANAKOKAID = maganTanuloOk.ID AND maganTanuloOk.C_TANEVID = @TanevId AND maganTanuloOk.TOROLT='F'
LEFT JOIN #TanuloCimTable AllandoLakcim ON AllandoLakcim.FelhasznaloId = T_FELHASZNALO_OSSZES.ID AND AllandoLakcim.Cimtipusa = 907
LEFT JOIN #TanuloCimTable TartozkodasiHely ON TartozkodasiHely.FelhasznaloId = T_FELHASZNALO_OSSZES.ID AND TartozkodasiHely.Cimtipusa = 909
INNER JOIN #JogviszonyVege JogviszonyVege ON JogviszonyVege.TanuloId = T_TANULOCSOPORT_OSSZES.C_TANULOID
WHERE
T_FELHASZNALO_OSSZES.TOROLT = 'F'
AND T_TANEV_OSSZES.TOROLT = 'F'
AND T_TANULOCSOPORT_OSSZES.TOROLT = 'F'
AND T_OSZTALYCSOPORT_OSSZES.TOROLT = 'F'
ORDER BY T_FELHASZNALO_OSSZES.C_NYOMTATASINEV
SELECT
o.ID AS OsztalyId
,ocs.C_EVFOLYAMTIPUSA AS EvfolyamTipusa
,ocs.C_FELADATELLATASIHELYID AS FeladatEllatasiHelyId
,ocs.C_KEPZESIFORMA AS KepzesiForma
,o.C_OSZTALYFONOKID AS OsztalyfonokId
,o.C_TANTERVID AS TantervId
,o.C_SZAKMACSOPORT AS SzakmaCsoport
,o.C_AGAZAT AS Agazat
,o.C_SZAKKEPESITES AS Szakkepesites
,o.C_RESZSZAKKEPESITES AS Reszszakkepesites
,ocs.C_KERESZTFELEVES OJCSJKeresztfeleves
,ocs.C_VEGZOSEVFOLYAM CSJVegzosEvfolyamu
,ocs.C_ISTECHNIKAI OJTechnikaiOsztaly
,o.C_NEMZETISEGI OJNemzetisegi
,o.C_KETTANNYELVU OJKettannyelvu
,o.C_NYELVIELOKESZITO OJNyelviElokeszito
,ocs.C_ISGYOGYPEDAGOGIAILOGOPEDIAI OJIsGyogypedagogiaiLogopediai
,o.C_SPORT OJSportOsztaly
,o.C_AJPROGRAM OJAranyJanosProgram
FROM T_OSZTALY_OSSZES AS o
INNER JOIN T_OSZTALYCSOPORT_OSSZES ocs ON ocs.ID = o.ID AND ocs.TOROLT = 'F'
WHERE o.ID = @osztCsopID
END
GO

View file

@ -0,0 +1,87 @@
DROP PROCEDURE IF EXISTS dbo.sp_GetTanulokFeljegyzesekReszletezese
GO
-- =============================================
-- Author: Dőrr Tamás
-- Create date: 2015.12.15.
-- Description: sp_GetTanulokFeljegyzesekReszletezese
-- =============================================
CREATE PROCEDURE [dbo].[sp_GetTanulokFeljegyzesekReszletezese]
@pOsztalyId int,
@pTanevId int
AS
BEGIN
SET NOCOUNT ON;
DECLARE @feladatKategoriaId int = (SELECT C_FELADATKATEGORIAID FROM T_OSZTALYCSOPORT_OSSZES WHERE ID = @pOsztalyId)
SELECT DISTINCT
@pOsztalyId AS OsztalyId
,ocs.C_NEV AS OSZTALYCSOPORT_NEV
,ofo.C_NYOMTATASINEV AS OSZTFO_NEV
,i.C_IGAZGATONEVE AS INT_IGAZGATO_NEV
,i.C_NEV AS INT_NEV
,i.C_IRANYITOSZAM AS INT_IRSZAM
,i.C_VAROS AS INT_VAROS
,dbo.fnGetDokumentumIntezmenyCime(@pTanevId) AS INT_CIM
,i.C_OMKOD AS INT_OMKOD
FROM T_OSZTALYCSOPORT_OSSZES ocs
INNER JOIN T_OSZTALY_OSSZES o ON ocs.ID = o.ID AND o.torolt='F'
LEFT JOIN T_FELHASZNALO_OSSZES ofo ON ofo.ID = o.C_OSZTALYFONOKID AND ofo.TOROLT = 'F'
INNER JOIN T_INTEZMENYADATOK_OSSZES i on i.C_INTEZMENYID=ocs.C_INTEZMENYID AND i.C_TANEVID = ocs.C_TANEVID AND i.Torolt = 'F'
WHERE
ocs.ID = @pOsztalyId
AND ocs.C_FELADATKATEGORIAID = @feladatKategoriaId
SELECT
Datum as KEZDET
,d.C_NAME AS C_TIPUS
,tcs.C_TANULOID AS TANULO_ID
,ft.C_NYOMTATASINEV AS TANULO_NEV
,FeljegyzoNeve AS FELJEGYZO_NEV
,Tartalom AS TARTALOM
,Megjegyzes AS MEGJEGYZES
,ft.C_NYOMTATASINEV + ' ' + CAST(tcs.C_TANULOID AS NVARCHAR) AS GROUPPARAMETER
,@pOsztalyId AS OsztalyId
,ft.C_OKTATASIAZONOSITO AS TanuloOktAzon
,esemenyek.FeljegyzoId AS FeljegyzoId
,ff.C_OKTATASIAZONOSITO AS FeljegyzoOktAzon
FROM T_TANULOCSOPORT_OSSZES tcs
INNER JOIN T_OSZTALYCSOPORT_OSSZES ocs ON ocs.ID = tcs.C_OSZTALYCSOPORTID AND ocs.C_FELADATKATEGORIAID = @feladatKategoriaId AND ocs.TOROLT = 'F'
LEFT JOIN fnGetDokumentumTanulokFeljegyzesei(@pTanevId, @pOsztalyId, 0) esemenyek ON esemenyek.TanuloId = tcs.C_TANULOID AND esemenyek.Tipusa != 1534
LEFT JOIN T_FELHASZNALO_OSSZES ft ON ft.ID = tcs.C_TANULOID AND ft.TOROLT = 'F'
LEFT JOIN T_FELHASZNALO_OSSZES ff ON ff.ID = esemenyek.FeljegyzoId AND ff.TOROLT = 'F'
LEFT JOIN T_DICTIONARYITEMBASE_OSSZES d ON d.id = Tipusa AND d.C_TANEVID = ft.C_TANEVID AND d.C_INTEZMENYID = ft.C_INTEZMENYID AND d.TOROLT = 'F'
WHERE tcs.C_OSZTALYCSOPORTID = @pOsztalyId
AND tcs.C_TANEVID = @pTanevId
AND tcs.TOROLT= 'F'
ORDER BY ft.C_NYOMTATASINEV
SELECT
o.ID AS OsztalyId
,ocs.C_EVFOLYAMTIPUSA AS EvfolyamTipusa
,ocs.C_FELADATELLATASIHELYID AS FeladatEllatasiHelyId
,ocs.C_KEPZESIFORMA AS KepzesiForma
,o.C_OSZTALYFONOKID AS OsztalyfonokId
,o.C_TANTERVID AS TantervId
,o.C_SZAKMACSOPORT AS SzakmaCsoport
,o.C_AGAZAT AS Agazat
,o.C_SZAKKEPESITES AS Szakkepesites
,o.C_RESZSZAKKEPESITES AS Reszszakkepesites
,ocs.C_KERESZTFELEVES AS OJCSJKeresztfeleves
,ocs.C_VEGZOSEVFOLYAM AS CSJVegzosEvfolyamu
,ocs.C_ISTECHNIKAI AS OJTechnikaiOsztaly
,o.C_NEMZETISEGI AS OJNemzetisegi
,o.C_KETTANNYELVU AS OJKettannyelvu
,o.C_NYELVIELOKESZITO AS OJNyelviElokeszito
,ocs.C_ISGYOGYPEDAGOGIAILOGOPEDIAI AS OJIsGyogypedagogiaiLogopediai
,o.C_SPORT AS OJSportOsztaly
,o.C_AJPROGRAM AS OJAranyJanosProgram
FROM T_OSZTALY_OSSZES AS o
INNER JOIN T_OSZTALYCSOPORT_OSSZES ocs ON ocs.ID = o.ID AND ocs.TOROLT = 'F' AND ocs.C_FELADATKATEGORIAID = @feladatKategoriaId
WHERE
o.ID = @pOsztalyId
END
GO

View file

@ -0,0 +1,509 @@
DROP PROCEDURE IF EXISTS [dbo].sp_Nyomtatvany_Excel_IdoszakiOsztalyStatisztika
GO
CREATE PROCEDURE [dbo].[sp_Nyomtatvany_Excel_IdoszakiOsztalyStatisztika]
@pTanevId int,
@pOsztalyId int,
@pIntezmenyId int,
@pErtekelestipusaId int,
@pLezaroNaptipusId int,
@pMulasztasTipusIdKeses int = 1499,
@pMulasztasTipusIdHianyzas int = 1500,
@pTanevrendjeTanevKezdeteNaptipusId int = 1394, --Tanévrendje első nap típus
@pTanoraiDicseretTipusId int = 1536, -- Tanórai dicséret
@pFelszereleshianyTipusId int = 6324, -- Felszereléshiány
@pHaziFeladatHianyTipusId int = 6325, -- Házi feladat hiány
@pAtsoroltTanuloAdatok int = 1,
@pElmeletgyakorlat bit = 0
AS
BEGIN
SET NOCOUNT ON;
--Const
DECLARE
@ElsoFelveVege int = 1400
,@IneVege int = 1403
,@IIIneVege int = 1404
,@UtolsoTanitasiNap int = 1395
,@VegzosUtolsoTanitasiNap int = 1402
,@kesespercHianyzashoz int = 45
,@kesespercGyakHianyzashoz int = 45
,@iskolaErdekuParam int = 1683
,@idoszakEleje date
,@idoszakVege date
--Iskolaerdeku tavollet szamit
DECLARE
@iskolaErdekuSzamit bit = [dbo].fnGetRendszerbeallitasEnumBool(@iskolaErdekuParam, @pIntezmenyId, @pTanevId)
--Osztaly jellemzo
,@keresztFeleves bit = (SELECT IIF(C_KERESZTFELEVES = 'T', 1, 0) FROM T_OSZTALYCSOPORT_OSSZES WHERE ID = @pOsztalyId)
,@vegzosEvfolyamu bit = (SELECT IIF(C_VEGZOSEVFOLYAM = 'T', 1, 0) FROM T_OSZTALYCSOPORT_OSSZES WHERE ID = @pOsztalyId)
--Osztalyjellemzok alapjan a lezaro naptipus csereje
SET @pLezaroNaptipusId = (
SELECT CASE
WHEN @keresztFeleves = 0 AND @vegzosEvfolyamu = 1 AND @pLezaroNaptipusId = @UtolsoTanitasiNap THEN @VegzosUtolsoTanitasiNap
WHEN @keresztFeleves = 0 THEN @pLezaroNaptipusId
WHEN @pLezaroNaptipusId = @ElsoFelveVege THEN @UtolsoTanitasiNap
WHEN @pLezaroNaptipusId = @UtolsoTanitasiNap THEN @ElsoFelveVege
WHEN @pLezaroNaptipusId = @IneVege THEN @IIIneVege
WHEN @pLezaroNaptipusId = @IIIneVege THEN @IneVege
END
)
CREATE TABLE #aktualisOsztalyCsoportok (
OSZTALYCSOPORTID int
)
CREATE TABLE #osztalyTanulok (
TANULOID int PRIMARY KEY
,BELEPESDATUM DATE
,KILEPESDATUM DATE
)
CREATE TABLE #szurtErtekeles (
T_TANULOERTEKELES_ID int PRIMARY KEY
,C_TANULOID int
,ERTEKELES nvarchar(max)
,ERTEKELES_SZOVEG_MEGJEGYZES nvarchar(max)
,C_ERTEKELESDATUM DATETIME
,C_TANTARGYID int
,TANTARGY_NEV nvarchar(255) COLLATE DATABASE_DEFAULT
,TARGYKATEGORIA_NEV nvarchar(255) COLLATE DATABASE_DEFAULT
,TARGYKATEGORIA_SORSZAM int
,T_TANTARGY_C_FOTARGYE char(1) COLLATE DATABASE_DEFAULT
,T_TANTARGY_C_ALTANTARGYKENTNYOMTATVANYBAN char(1) COLLATE DATABASE_DEFAULT
,C_OSZTALYCSOPORTID int
)
CREATE TABLE #szurtMulasztas (
TIPUS_CHAR char(1)
,C_TIPUS int
,C_IGAZOLT char(1) COLLATE DATABASE_DEFAULT
,C_TANULOID int
,C_GYAKORLATI char(1) COLLATE DATABASE_DEFAULT
,KESESPERC int
,MULASZTASOK_SZAMA int
,HOZOTTIGAZOLTMULTASZTASOK_SZAMA int
,HOZOTTIGAZOLATLANTMULTASZTASOK_SZAMA int
,FELDOLGOZATLANOK_SZAMA int
)
CREATE TABLE #Tanulok (
TanuloId int
)
CREATE TABLE #Tipusok (
Tipus_Char char(1)
,Igazolt char(1)
,Tipus int
,Gyakorlati char(1)
)
SELECT TOP 1 @idoszakEleje =
ISNULL(tr.C_DATUM,te.C_KEZDONAP)
FROM T_TANEV_OSSZES te
LEFT JOIN T_TANEVRENDJE_OSSZES tr ON tr.C_TANEVID = te.ID AND tr.TOROLT='F' AND tr.C_NAPTIPUSA = @pTanevrendjeTanevKezdeteNaptipusId
LEFT JOIN T_OSZTALYCSOPORT_TANEVRENDJE ocstr ON ocstr.C_TANEVRENDJEID = tr.ID
AND (ocstr.C_OSZTALYCSOPORTID IS NULL OR ocstr.C_OSZTALYCSOPORTID = @pOsztalyId)
WHERE te.ID = @pTanevId
ORDER BY ocstr.C_OSZTALYCSOPORTID DESC
SELECT @idoszakVege= ISNULL(
(
SELECT TOP 1
C_DATUM
FROM T_TANEVRENDJE_OSSZES tr
LEFT JOIN T_OSZTALYCSOPORT_TANEVRENDJE ocstr ON tr.ID = ocstr.C_TANEVRENDJEID
AND (ocstr.C_OSZTALYCSOPORTID IS NULL OR ocstr.C_OSZTALYCSOPORTID = @pOsztalyId)
WHERE tr.C_TANEVID = @pTanevId AND tr.C_NAPTIPUSA = @pLezaroNaptipusId AND tr.TOROLT = 'F'
ORDER BY ocstr.C_OSZTALYCSOPORTID DESC
)
,GETDATE()
)
IF @pAtsoroltTanuloAdatok IN (0,1)
BEGIN
INSERT INTO #aktualisOsztalyCsoportok (OSZTALYCSOPORTID)
SELECT ID
FROM fnGetDokumentumKapcsolodoOsztalycsoportok(@pOsztalyId, @pTanevId, DEFAULT)
END
ELSE
BEGIN
INSERT INTO #aktualisOsztalyCsoportok (OSZTALYCSOPORTID)
SELECT KapcsOszt.ID
FROM fnGetKapcsolodoOsztalycsoportokByDate(@pOsztalyId, @idoszakEleje, @idoszakVege) KapcsOszt
WHERE (ID IN (
SELECT ID
FROM T_OSZTALY_OSSZES
UNION
SELECT ID
FROM T_CSOPORT_OSSZES
WHERE C_TIPUSA IN (SELECT ID FROM fnGetTanoraiCeluCsoportTipusok(@pTanevId))
)
)
END
-- TANULÓK insert
INSERT INTO #osztalyTanulok (
TANULOID
,BELEPESDATUM
,KILEPESDATUM
)
SELECT
fh.ID
,tcs.C_BELEPESDATUM
,tcs.C_KILEPESDATUM
FROM T_FELHASZNALO_OSSZES fh
INNER JOIN T_TANULOCSOPORT_OSSZES tcs ON tcs.C_TANULOID = fh.ID AND tcs.TOROLT='F'
AND tcs.C_BELEPESDATUM < @idoszakVege
AND (tcs.C_KILEPESDATUM IS NULL OR tcs.C_KILEPESDATUM >= @idoszakVege) AND tcs.C_OSZTALYCSOPORTID = @pOsztalyId
WHERE fh.TOROLT = 'F' AND fh.C_TANEVID = @pTanevId
-- ÉRTÉKELÉS insert
INSERT INTO #szurtErtekeles (
T_TANULOERTEKELES_ID
,C_TANULOID
,ERTEKELES
,ERTEKELES_SZOVEG_MEGJEGYZES
,C_ERTEKELESDATUM
,C_TANTARGYID
,TANTARGY_NEV
,TARGYKATEGORIA_NEV
,TARGYKATEGORIA_SORSZAM
,T_TANTARGY_C_FOTARGYE
,T_TANTARGY_C_ALTANTARGYKENTNYOMTATVANYBAN
,C_OSZTALYCSOPORTID
)
SELECT
ROW_NUMBER() OVER (ORDER BY TanuloId)
,TanuloId
,COALESCE(CAST(ErtekelesOsztalyzatValue AS nvarchar(max)),
IIF(ErtekelesSzoveg IS NOT NULL, CASE WHEN ErtekelesSzovegRovidNev IN ('1', '2', '3', '4', '5') THEN 'Sz' ELSE ErtekelesSzovegRovidNev END, NULL),
'%')
,ISNULL(ErtekelesSzoveg, ISNULL(ErtekelesSzazalek + ' ', '') + ISNULL(ErtekelesTema, ''))
,Datum
,TantargyId
,COALESCE(TantargyNevNyomtatvanyban, TantargyNev) AS TANTARGY_NEV
,dib.C_NAME
,dib.C_VALUE
,FotargyE
,Altantargy
,OsztalyCsoportId
FROM fnGetDokumentumErtekelesekOsztalyonkent (@pTanevId, @pOsztalyId, @pErtekelestipusaId, DEFAULT, DEFAULT, @pAtsoroltTanuloAdatok, DEFAULT) AS ERTEKELESEK
LEFT JOIN T_DICTIONARYITEMBASE_OSSZES dib ON dib.ID = ERTEKELESEK.TargyKategoriaId AND dib.C_TANEVID = @pTanevId
WHERE TantargyId IS NOT NULL AND (FotargyE = 'T' OR Altantargy = 'T')
--MULASZTÁS insert
INSERT INTO #Tipusok (Tipus_Char,Igazolt,Tipus,Gyakorlati)VALUES
('H','T',1500,'T'),('H','F',1500,'T'),('K','T',1499,'T'),('K','F',1499,'T'),
('H','T',1500,'F'),('H','F',1500,'F'),('K','T',1499,'F'),('K','F',1499,'F')
,('H','-',1500,'T'),('H','-',1500,'F'),('K','-',1499,'T'),('K','-',1499,'F')
INSERT INTO #Tanulok
SELECT DISTINCT
tcs.C_TANULOID
FROM T_TANULOCSOPORT_OSSZES tcs
WHERE tcs.C_OSZTALYCSOPORTID = @pOsztalyId AND tcs.TOROLT = 'F' AND tcs.C_TANEVID = @pTanevId
INSERT INTO #szurtMulasztas (TIPUS_CHAR, C_TIPUS, C_IGAZOLT, C_TANULOID, C_GYAKORLATI,KESESPERC,MULASZTASOK_SZAMA, HOZOTTIGAZOLTMULTASZTASOK_SZAMA, HOZOTTIGAZOLATLANTMULTASZTASOK_SZAMA, FELDOLGOZATLANOK_SZAMA)
SELECT Tipus_Char, Tipus,Igazolt,TanuloId, Gyakorlati,0,0,0,0,0
FROM #Tanulok
CROSS APPLY #Tipusok
UPDATE szm SET
KESESPERC = m.KesesPercben
,MULASZTASOK_SZAMA = m.MULASZTASOK_SZAMA
,HOZOTTIGAZOLTMULTASZTASOK_SZAMA = ISNULL(IIF(szm.C_IGAZOLT = 'T',hianyzas.HOZOTTIGAZOLTHIANYZAS,0),0)
,HOZOTTIGAZOLATLANTMULTASZTASOK_SZAMA = ISNULL(IIF(szm.C_IGAZOLT = 'F',hianyzas.HOZOTTIGAZOLATLANHIANYZAS,0),0)
FROM #szurtMulasztas szm
LEFT JOIN (
SELECT
m.Tipusa
,m.Igazolt
,m.TanuloId
,m.Gyakorlati
,SUM(ISNULL(KesesPercben,0)) as KesesPercben
,ISNULL(COUNT(m.Tipusa),0) AS MULASZTASOK_SZAMA
FROM fnGetDokumentumMulasztasokOsztalyonkentReszletes (@pTanevId, @pOsztalyId, @iskolaErdekuSzamit, 0, IIF(@pAtsoroltTanuloAdatok > 0, 1, 0), @idoszakEleje, @idoszakVege, DEFAULT) m
WHERE m.Igazolt IS NOT NULL
AND m.Tipusa BETWEEN @pMulasztasTipusIdKeses AND @pMulasztasTipusIdHianyzas
GROUP BY m.Tipusa, m.Igazolt, m.TanuloId, m.Gyakorlati
) m ON m.Gyakorlati = szm.C_GYAKORLATI
AND m.Tipusa = szm.C_TIPUS
AND m.Igazolt = szm.C_IGAZOLT
AND m.TanuloId = szm.C_TANULOID
LEFT JOIN (
SELECT
tcs.C_TANULOID
,SUM(tta.C_HOZOTTIGAZOLTHIANYZAS) as HOZOTTIGAZOLTHIANYZAS
,SUM(tta.C_HOZOTTIGAZOLATLANHIANYZAS) as HOZOTTIGAZOLATLANHIANYZAS
FROM T_TANULOCSOPORT_OSSZES tcs
INNER JOIN T_TANULOTANUGYIADATOK_OSSZES tta ON tta.C_TANULOCSOPORTID = tcs.ID
AND tta.C_TANEVID = @pTanevId AND tta.TOROLT = 'F'
WHERE tcs.C_OSZTALYCSOPORTID = @pOsztalyId
AND tcs.C_TANEVID = @pTanevId
AND tcs.C_BELEPESDATUM < @idoszakVege
AND tcs.TOROLT = 'F'
GROUP BY tcs.C_TANULOID
) hianyzas on hianyzas.C_TANULOID = szm.C_TANULOID
AND szm.TIPUS_CHAR = 'H'
AND szm.C_GYAKORLATI = 'F'
UPDATE szm SET
FELDOLGOZATLANOK_SZAMA = IIF(m.Tipusa = 1500, ISNULL(m.MULASZTASOK_SZAMA, 0), ISNULL(m.KesesPercben, 0))
FROM #szurtMulasztas szm
LEFT JOIN (
SELECT
m.Tipusa
,m.Igazolt
,m.TanuloId
,m.Gyakorlati
,SUM(ISNULL(KesesPercben,0)) as KesesPercben
,ISNULL(COUNT(m.Tipusa),0) AS MULASZTASOK_SZAMA
FROM fnGetDokumentumMulasztasokOsztalyonkentReszletes (@pTanevId, @pOsztalyId, @iskolaErdekuSzamit, 0, IIF(@pAtsoroltTanuloAdatok > 0, 1, 0), @idoszakEleje, @idoszakVege, DEFAULT) m
WHERE m.Igazolt IS NULL
AND m.Tipusa BETWEEN @pMulasztasTipusIdKeses AND @pMulasztasTipusIdHianyzas
GROUP BY m.Tipusa, m.Igazolt, m.TanuloId, m.Gyakorlati
) m ON m.Gyakorlati = szm.C_GYAKORLATI
AND m.Tipusa = szm.C_TIPUS
AND (m.Igazolt IS NULL AND szm.C_IGAZOLT='-')
AND m.TanuloId = szm.C_TANULOID
--==================== SELECTEK ==========================
-- OSZTÁLY
SELECT
o.ID
,ocs.C_NEV
,ocs.C_VEGZOSEVFOLYAM
,fh.C_NYOMTATASINEV
,o.C_OSZTALYNAPLOMEGNYITASA
,o.C_OSZTALYNAPLOZARASA
,o.C_OSZTALYFONOKID
FROM T_OSZTALY_OSSZES o
INNER JOIN T_OSZTALYCSOPORT_OSSZES ocs ON ocs.ID = o.ID AND ocs.TOROLT='F'
LEFT JOIN T_FELHASZNALO_OSSZES fh ON o.C_OSZTALYFONOKID = fh.ID AND fh.TOROLT='F'
INNER JOIN T_FELADATELLATASIHELY_OSSZES felh ON felh.ID = ocs.C_FELADATELLATASIHELYID AND felh.TOROLT='F'
WHERE ocs.ID = @pOsztalyId
--TANULÓK LISTA
SELECT
fh.ID as C_TANULOID
,fh.C_NYOMTATASINEV as TANULONEV
,fh.C_ANYJANEVE as ANYJANEVE
,fh.C_OKTATASIAZONOSITO as OKTATASIAZONOSITO
,BELEPESDATUM as BELEPESDATUM
,KILEPESDATUM as KILEPESDATUM
FROM T_FELHASZNALO_OSSZES fh
INNER JOIN #osztalyTanulok AS ot ON ot.TANULOID = fh.ID
WHERE fh.TOROLT='F'
ORDER BY fh.C_NYOMTATASINEV;
-- TANTÁRGYAK (TANTÁRGYFELOSZTÁS, ÉRTÉKELÉS)
SELECT DISTINCT
C_TANTARGYID
,TANTARGY_NEV
,TARGYKATEGORIA_NEV
,TARGYKATEGORIA_SORSZAM
,C_FOTARGYE
,C_ALTANTARGYKENTNYOMTATVANYBAN
FROM (
SELECT DISTINCT
f.C_TANTARGYID
,COALESCE(tgy.C_NEVNYOMTATVANYBAN, tgy.C_NEV) as TANTARGY_NEV
,dib.C_NAME as TARGYKATEGORIA_NEV
,dib.C_VALUE as TARGYKATEGORIA_SORSZAM
,tgy.C_FOTARGYE
,tgy.C_ALTANTARGYKENTNYOMTATVANYBAN
FROM T_FOGLALKOZAS_OSSZES f
INNER JOIN #aktualisOsztalyCsoportok ocs ON ocs.OSZTALYCSOPORTID = f.C_OSZTALYCSOPORTID
INNER JOIN T_TANTARGY_OSSZES tgy ON tgy.ID = f.C_TANTARGYID AND tgy.C_TANEVID = @pTanevId
LEFT JOIN T_DICTIONARYITEMBASE_OSSZES dib ON dib.ID = tgy.C_TARGYKATEGORIA AND dib.C_TANEVID = @pTanevId AND dib.C_DICTIONARYTYPEID = 36 AND dib.TOROLT='F'
WHERE f.TOROLT = 'F' AND (tgy.C_FOTARGYE = 'T' OR tgy.C_ALTANTARGYKENTNYOMTATVANYBAN = 'T')
UNION
SELECT DISTINCT
C_TANTARGYID
,TANTARGY_NEV
,TARGYKATEGORIA_NEV
,TARGYKATEGORIA_SORSZAM
,T_TANTARGY_C_FOTARGYE AS C_FOTARGYE
,T_TANTARGY_C_ALTANTARGYKENTNYOMTATVANYBAN AS C_ALTANTARGYKENTNYOMTATVANYBAN
FROM #szurtErtekeles
WHERE (@pAtsoroltTanuloAdatok = 2 OR C_OSZTALYCSOPORTID IN (SELECT OSZTALYCSOPORTID FROM #aktualisOsztalyCsoportok))
) AS TANTARGYAK
ORDER BY TARGYKATEGORIA_SORSZAM, TANTARGY_NEV;
-- ÉRTÉKELÉS lista
SELECT *
FROM #szurtErtekeles;
--MAGATARTÁS-SZORGALOM
SELECT
ROW_NUMBER() OVER (ORDER BY TanuloId) AS ID
,TanuloId AS C_TANULOID
,COALESCE(CAST(MagatartasOsztalyzatValue AS nvarchar(6)), CAST(MagatartasErtekOsztalyzatkent AS nvarchar(6)), MagatartasSzovegRovidNev) AS MagatartasOsztalyzat
,MagatartasErtek
,COALESCE(CAST(SzorgalomOsztalyzatValue AS nvarchar(6)), CAST(SzorgalomErtekOsztalyzatkent AS nvarchar(6)), SzorgalomSzovegRovidNev) AS SzorgalomOsztalyzat
,SzorgalomErtek
,ErtekelesSzoveg AS C_ERTEKELESSZOVEG
,Datum AS C_ERTEKELESDATUM
,'F' AS TOROLT -- y tho?
FROM fnGetDokumentumErtekelesekOsztalyonkent (@pTanevId, @pOsztalyId, @pErtekelestipusaId, DEFAULT, DEFAULT, @pAtsoroltTanuloAdatok, DEFAULT) AS ERTEKELESEK
WHERE TantargyId IS NULL AND (@pAtsoroltTanuloAdatok > 0 OR OsztalyCsoportId IN (SELECT OSZTALYCSOPORTID FROM #aktualisOsztalyCsoportok));
--MULASZTÁS stat
IF @pElmeletgyakorlat=0
BEGIN
SELECT
szm.TIPUS_CHAR
,szm.C_TIPUS
,szm.C_IGAZOLT
,szm.C_TANULOID
,szm.KESESPERC
,szm.KESESORA
,ISNULL(szm.MULASZTASOK_SZAMA,0) +
IIF(szm.TIPUS_CHAR = 'K',0,IIF(szm.C_IGAZOLT = 'T',szm.HOZOTTIGAZOLTMULTASZTASOK_SZAMA,szm.HOZOTTIGAZOLATLANTMULTASZTASOK_SZAMA))
AS MULASZTASOK_SZAMA
,IIF(szm.TIPUS_CHAR = 'K',0,IIF(szm.C_IGAZOLT = 'T',szm.HOZOTTIGAZOLTMULTASZTASOK_SZAMA,szm.HOZOTTIGAZOLATLANTMULTASZTASOK_SZAMA))
AS HOZOTTMULASZTASOK_SZAMA
,szm.FELDOLGOZATLANOK_SZAMA
FROM (
SELECT
TIPUS_CHAR
,C_TIPUS
,C_IGAZOLT
,C_TANULOID
,SUM(KESESPERC) AS KESESPERC
,SUM(KESESPERC)/@kesespercHianyzashoz AS KESESORA
,SUM(ISNULL(MULASZTASOK_SZAMA,0)) AS MULASZTASOK_SZAMA
,SUM(HOZOTTIGAZOLTMULTASZTASOK_SZAMA) AS HOZOTTIGAZOLTMULTASZTASOK_SZAMA
,SUM(HOZOTTIGAZOLATLANTMULTASZTASOK_SZAMA) AS HOZOTTIGAZOLATLANTMULTASZTASOK_SZAMA
,SUM(FELDOLGOZATLANOK_SZAMA) AS FELDOLGOZATLANOK_SZAMA
FROM #szurtMulasztas
GROUP BY TIPUS_CHAR, C_TIPUS, C_IGAZOLT, C_TANULOID) AS szm
ORDER BY szm.C_TANULOID, szm.C_TIPUS DESC, szm.C_IGAZOLT DESC
SELECT
C_IGAZOLT
,C_TANULOID
,SUM(MULASZTASOK_SZAMA) AS MULASZTASOK_SZAMA
FROM (
SELECT
TIPUS_CHAR
,C_TIPUS
,C_IGAZOLT
,C_TANULOID
,SUM(KESESPERC)/@kesespercHianyzashoz AS MULASZTASOK_SZAMA
FROM #szurtMulasztas
WHERE TIPUS_CHAR = 'K'
GROUP BY TIPUS_CHAR, C_TIPUS, C_IGAZOLT, C_TANULOID
UNION ALL
SELECT
TIPUS_CHAR
,C_TIPUS
,C_IGAZOLT
,C_TANULOID
,SUM(MULASZTASOK_SZAMA) AS MULASZTASOK_SZAMA
FROM #szurtMulasztas
WHERE TIPUS_CHAR = 'H'
GROUP BY TIPUS_CHAR, C_TIPUS, C_IGAZOLT, C_TANULOID
) AS KM
GROUP BY C_IGAZOLT, C_TANULOID
ORDER BY C_TANULOID, C_IGAZOLT DESC
END
ELSE
BEGIN
SELECT
szm.TIPUS_CHAR,
szm.C_TIPUS,
szm.C_IGAZOLT,
szm.C_TANULOID,
szm.KESESPERC,
szm.KESESORA,
ISNULL(szm.MULASZTASOK_SZAMA,0) +
IIF(szm.TIPUS_CHAR = 'K' OR szm.C_GYAKORLATI = 'T',0,IIF( tcs.C_BELEPESDATUM < @idoszakVege,IIF(szm.C_IGAZOLT = 'T',tta.C_HOZOTTIGAZOLTHIANYZAS,tta.C_HOZOTTIGAZOLATLANHIANYZAS),0))
AS MULASZTASOK_SZAMA,
IIF(szm.TIPUS_CHAR = 'K',0,IIF( tcs.C_BELEPESDATUM < @idoszakVege,IIF(szm.C_IGAZOLT = 'T',tta.C_HOZOTTIGAZOLTHIANYZAS,tta.C_HOZOTTIGAZOLATLANHIANYZAS),0))
AS HOZOTTMULASZTASOK_SZAMA,
szm.C_GYAKORLATI
,szm.FELDOLGOZATLANOK_SZAMA
FROM (
SELECT
TIPUS_CHAR,
C_TIPUS,
C_IGAZOLT,
C_TANULOID,
KESESPERC,
KESESPERC/(CASE WHEN C_GYAKORLATI = 'T' THEN @kesespercGyakHianyzashoz ELSE @kesespercHianyzashoz END) AS KESESORA,
MULASZTASOK_SZAMA,
C_GYAKORLATI
,FELDOLGOZATLANOK_SZAMA
FROM #szurtMulasztas ) AS szm
INNER JOIN T_TANULOCSOPORT tcs ON tcs.C_TANULOID = szm.C_TANULOID AND tcs.C_OSZTALYCSOPORTID = @pOsztalyId AND tcs.C_TANEVID = @pTanevId AND tcs.TOROLT = 'F'
INNER JOIN T_TANULOTANUGYIADATOK tta ON tta.C_TANULOCSOPORTID = tcs.ID AND tta.C_TANEVID = @pTanevId AND tta.TOROLT = 'F'
ORDER BY szm.C_TANULOID, szm.C_TIPUS DESC, szm.C_IGAZOLT DESC
SELECT C_IGAZOLT, C_TANULOID, SUM(MULASZTASOK_SZAMA) AS MULASZTASOK_SZAMA, C_GYAKORLATI
FROM (
SELECT TIPUS_CHAR, C_TIPUS, C_IGAZOLT, C_TANULOID, KESESPERC/(CASE WHEN C_GYAKORLATI = 'T' THEN @kesespercGyakHianyzashoz ELSE @kesespercHianyzashoz END) AS MULASZTASOK_SZAMA, C_GYAKORLATI
FROM #szurtMulasztas
WHERE TIPUS_CHAR = 'K'
UNION ALL
SELECT TIPUS_CHAR, C_TIPUS, C_IGAZOLT, C_TANULOID, MULASZTASOK_SZAMA, C_GYAKORLATI
FROM #szurtMulasztas
WHERE TIPUS_CHAR = 'H'
) AS KM
GROUP BY C_IGAZOLT, C_TANULOID, C_GYAKORLATI
ORDER BY C_TANULOID, C_IGAZOLT DESC;
END
--TANÓRAI FELJEGYZÉSEK
SELECT
C_TANULOID
,SUM(IIF(C_TIPUS = @pTanoraiDicseretTipusId, 1, 0)) AS TanoraiDicseret
,SUM(IIF(C_TIPUS = @pFelszereleshianyTipusId, 1, 0)) AS FelszerelesHiany
,SUM(IIF(C_TIPUS = @pHaziFeladatHianyTipusId, 1, 0)) AS HaziFeladatHiany
,'F' AS TOROLT
FROM T_TANULOESEMENY_OSSZES AS TANULOESEMENY
INNER JOIN T_TANITASIORA_OSSZES AS TANITASIORA ON TANITASIORA.ID = TANULOESEMENY.C_TANITASIORAID
INNER JOIN T_TANULO_TANULOESEMENY AS TANULO_TANULOE ON TANULO_TANULOE.C_TANULOESEMENYID = TANULOESEMENY.ID
INNER JOIN T_DICTIONARYITEMBASE AS TIPUS ON TIPUS.ID = TANULOESEMENY.C_TIPUS AND TIPUS.C_TANEVID = TANULOESEMENY.C_TANEVID
INNER JOIN #osztalyTanulok AS OSZTALYTANULOK ON OSZTALYTANULOK.TANULOID = TANULO_TANULOE.C_TANULOID
INNER JOIN #aktualisOsztalyCsoportok AS OSZTALYCSOPORT ON OSZTALYCSOPORT.OSZTALYCSOPORTID = TANITASIORA.C_OSZTALYCSOPORTID
LEFT JOIN T_CSOPORT_OSSZES AS CSOPORT ON CSOPORT.ID = OSZTALYCSOPORT.OSZTALYCSOPORTID
LEFT JOIN T_OSZTALY_OSSZES AS OSZTALY ON OSZTALY.ID = OSZTALYCSOPORT.OSZTALYCSOPORTID
WHERE TANULOESEMENY.TOROLT = 'F' AND TANITASIORA.TOROLT = 'F' AND TANULOESEMENY.C_TANEVID = @pTanevId AND C_TANITASIORAID IS NOT NULL
AND TANITASIORA.C_DATUM BETWEEN @idoszakEleje AND @idoszakVege
AND TANITASIORA.C_OSZTALYCSOPORTID IN (SELECT OSZTALYCSOPORTID FROM #aktualisOsztalyCsoportok)
GROUP BY C_TANULOID
-- Osztály adatok az iktatáshoz
SELECT
f.C_NYOMTATASINEV Osztalyfonok
,f.ID OsztalyfonokId
,ocs.C_NEV Osztalynev
,@pOsztalyId OsztalyId
,ocs.C_EVFOLYAMTIPUSA EvfolyamTipusa
,ocs.C_FELADATELLATASIHELYID FeladatEllatasiHelyId
,o.C_TANTERVID TantervId
,ocs.C_KEPZESIFORMA KepzesiForma
,o.C_AGAZAT Agazat
,o.C_SZAKMACSOPORT SzakmaCsoport
,o.C_SZAKKEPESITES Szakkepesites
,o.C_RESZSZAKKEPESITES Reszszakkepesites
,ocs.C_KERESZTFELEVES OJCSJKeresztfeleves
,ocs.C_VEGZOSEVFOLYAM CSJVegzosEvfolyamu
,ocs.C_ISTECHNIKAI OJTechnikaiOsztaly
,o.C_NEMZETISEGI OJNemzetisegi
,o.C_KETTANNYELVU OJKettannyelvu
,o.C_NYELVIELOKESZITO OJNyelviElokeszito
,ocs.C_ISGYOGYPEDAGOGIAILOGOPEDIAI OJIsGyogypedagogiaiLogopediai
,o.C_SPORT OJSportOsztaly
,o.C_AJPROGRAM OJAranyJanosProgram
FROM T_OSZTALYCSOPORT_OSSZES ocs
INNER JOIN T_OSZTALY_OSSZES o ON o.ID = ocs.id
LEFT JOIN T_FELHASZNALO_OSSZES f ON f.ID = o.C_OSZTALYFONOKID
WHERE ocs.ID = @pOsztalyId AND ocs.C_TANEVID = @pTanevId AND ocs.TOROLT = 'F';
SELECT
C_TANULOID
,[D] AS Dicseret
,[K] AS Kituno
FROM (
SELECT
C_TANULOID
,T_TANULOERTEKELES_ID
,LEFT(ERTEKELES_SZOVEG_MEGJEGYZES, 1) AS Szoveg
FROM #szurtErtekeles
WHERE ERTEKELES = '5'
AND LTRIM(RTRIM(REPLACE(REPLACE(REPLACE(REPLACE(ERTEKELES_SZOVEG_MEGJEGYZES,char(160),char(32)),char(32),'(¤¤)'),'¤)(¤',''),'(¤¤)',char(32)))) IN ( 'Dicséret', 'Kitűnő' )
) AS s
PIVOT(COUNT(T_TANULOERTEKELES_ID) FOR Szoveg IN ([D], [K])) piv
ORDER BY C_TANULOID
END
GO

View file

@ -0,0 +1,197 @@
DROP PROCEDURE IF EXISTS sp_Nyomtatvany_Excel_IdoszakiOsztalyokCsoportokTantargyiStatisztika
GO
CREATE PROCEDURE [dbo].[sp_Nyomtatvany_Excel_IdoszakiOsztalyokCsoportokTantargyiStatisztika]
@pTanevId INT,
@pErtekelestipusaId INT,
@pTanevrendjeTanevKezdeteNaptipusId INT = 1394, --Tanévrendje első nap típus
@pLezaroNaptipusId INT,
@pAtsoroltTanuloAdatok INT = 1
AS
BEGIN
SET NOCOUNT ON;
DECLARE @ElsoFelveVege INT = 1400
DECLARE @IneVege INT = 1403
DECLARE @IIIneVege INT = 1404
DECLARE @UtolsoTanitasiNap INT = 1395
DECLARE @VegzosUtolsoTanitasiNap INT = 1402
DECLARE @osztalyok TABLE(OSZTALYID INT, NEV NVARCHAR(MAX), EVFOLYAM INT, SORREND INT);
DECLARE @tantargyak TABLE(TANTARGYID INT, TANTARGY_NEV NVARCHAR(MAX), TARGYKATEGORIA_NEV NVARCHAR(MAX), TARGYKATEGORIA_SORSZAM INT, C_FOTARGYE CHAR(1), C_ALTANTARGYKENTNYOMTATVANYBAN CHAR(1));
DECLARE @osztalyokCsoportokErtekeles TABLE (TECHNIKAIID NVARCHAR(MAX), OSZTALYCSOPORTID INT, OSZTALYCSOPORTNEV NVARCHAR(MAX), SORREND INT, TANTARGYID INT, TANTARGYNEV NVARCHAR(MAX), AKTUALISLETSZAM INT, ATLAG FLOAT);
DECLARE @osztalyTanulok TABLE (TANULOID INT PRIMARY KEY, BELEPESDATUM DATE, KILEPESDATUM DATE);
DECLARE @DefaultFeladatKategoriaId int = 7553 /*OktNevelesiKategoriaEnum.Alapkepzes*/
INSERT INTO @tantargyak (TANTARGYID, TANTARGY_NEV, TARGYKATEGORIA_NEV, TARGYKATEGORIA_SORSZAM, C_FOTARGYE, C_ALTANTARGYKENTNYOMTATVANYBAN)
SELECT TANTARGYAK.ID AS TANTARGYID, COALESCE(TANTARGYAK.C_NEVNYOMTATVANYBAN, TANTARGYAK.C_NEV) AS TANTARGY_NEV, TARGYKATEG.C_NAME AS TARGYKATEGORIA_NEV, TARGYKATEG.C_VALUE AS TARGYKATEGORIA_SORSZAM, TANTARGYAK.C_FOTARGYE, TANTARGYAK.C_ALTANTARGYKENTNYOMTATVANYBAN
FROM T_TANTARGY_OSSZES AS TANTARGYAK
LEFT JOIN T_DICTIONARYITEMBASE_OSSZES AS TARGYKATEG ON TARGYKATEG.ID = TANTARGYAK.C_TARGYKATEGORIA AND TARGYKATEG.C_TANEVID = TANTARGYAK.C_TANEVID
WHERE TANTARGYAK.TOROLT = 'F' AND TANTARGYAK.C_TANEVID = @pTanevId
ORDER BY TARGYKATEGORIA_SORSZAM, TANTARGY_NEV;
SELECT CAST(OSZTALYCSOPORT.ID AS nvarchar(MAX)) + '_' + CAST(OSZTALYCSOPORT.ID AS nvarchar(MAX)) AS TECHNIKAIID, OSZTALYCSOPORT.ID AS OSZTALYID, OSZTALYCSOPORT.C_NEV AS NEV,
OSZTALYCSOPORT.C_EVFOLYAMTIPUSA AS EVFOLYAM, EVFOLYAM.C_ORDER AS SORREND, (SELECT COUNT(TanuloId) FROM fnGetDokumentumOsztalyokCsoportokTanuloi(@pTanevId, OSZTALYCSOPORT.ID, 0)) AS AKTUALISLETSZAM,
C_KERESZTFELEVES AS KERESZTFELEVES, C_VEGZOSEVFOLYAM AS VEGZOSEVFOLYAM,
ROW_NUMBER() OVER(ORDER BY EVFOLYAM.C_ORDER ASC, OSZTALYCSOPORT.C_NEV ASC) AS Row#
,@pTanevId TanevId
,OSZTALY.C_OSZTALYFONOKID OsztalyfonokId
,OSZTALYCSOPORT.C_FELADATELLATASIHELYID FeladatEllatasiHelyId
,OSZTALY.C_TANTERVID TantervId
,OSZTALYCSOPORT.C_KEPZESIFORMA KepzesiForma
,OSZTALY.C_AGAZAT Agazat
,OSZTALY.C_SZAKMACSOPORT SzakmaCsoport
,OSZTALY.C_SZAKKEPESITES Szakkepesites
,OSZTALY.C_RESZSZAKKEPESITES Reszszakkepesites
,OSZTALYCSOPORT.C_KERESZTFELEVES OJCSJKeresztfeleves
,OSZTALYCSOPORT.C_VEGZOSEVFOLYAM CSJVegzosEvfolyamu
,OSZTALYCSOPORT.C_ISTECHNIKAI OJTechnikaiOsztaly
,OSZTALY.C_NEMZETISEGI OJNemzetisegi
,OSZTALY.C_KETTANNYELVU OJKettannyelvu
,OSZTALY.C_NYELVIELOKESZITO OJNyelviElokeszito
,OSZTALYCSOPORT.C_ISGYOGYPEDAGOGIAILOGOPEDIAI OJIsGyogypedagogiaiLogopediai
,OSZTALY.C_SPORT OJSportOsztaly
,OSZTALY.C_AJPROGRAM OJAranyJanosProgram
INTO #tempOsztalyok
FROM T_OSZTALY_OSSZES AS OSZTALY
JOIN T_OSZTALYCSOPORT_OSSZES AS OSZTALYCSOPORT ON OSZTALY.ID = OSZTALYCSOPORT.ID AND OSZTALYCSOPORT.C_FELADATKATEGORIAID = @DefaultFeladatKategoriaId
JOIN T_DICTIONARYITEMBASE_OSSZES AS EVFOLYAM ON EVFOLYAM.ID = OSZTALYCSOPORT.C_EVFOLYAMTIPUSA AND EVFOLYAM.TOROLT = 'F' AND EVFOLYAM.C_TANEVID = OSZTALY.C_ALTANEVID
WHERE OSZTALYCSOPORT.TOROLT = 'F' AND OSZTALY.C_ALTANEVID = @pTanevId
ORDER BY Row#;
DECLARE @pOsztalyId INT = 0;
DECLARE @sorrend INT = 0;
DECLARE @keresztFeleves BIT = 0;
DECLARE @vegzosEvfolyamu BIT = 0;
WHILE (1 = 1)
BEGIN
SELECT TOP 1 @pOsztalyId = OSZTALYID, @sorrend = Row#, @keresztFeleves = IIF(KERESZTFELEVES = 'T', 1, 0), @vegzosEvfolyamu = IIF(VEGZOSEVFOLYAM = 'T', 1, 0)
FROM #tempOsztalyok
WHERE @sorrend < Row#
ORDER BY Row#;
IF @@ROWCOUNT = 0
BEGIN
BREAK;
END
--Osztalyjellemzok alapjan a nyito/lezaro naptipus csereje
DECLARE @pKezdeteOsztalyNaptipusId INT = (
IIF(@keresztFeleves = 0, @pTanevrendjeTanevKezdeteNaptipusId,
CASE
WHEN @pLezaroNaptipusId = @ElsoFelveVege THEN @ElsoFelveVege
WHEN @pLezaroNaptipusId = @UtolsoTanitasiNap THEN @pTanevrendjeTanevKezdeteNaptipusId
WHEN @pLezaroNaptipusId = @IneVege THEN @ElsoFelveVege
WHEN @pLezaroNaptipusId = @IIIneVege THEN @pTanevrendjeTanevKezdeteNaptipusId
END)
)
DECLARE @pLezaroOsztalyNaptipusId INT = (
IIF(@keresztFeleves = 0, IIF(@vegzosEvfolyamu = 1 AND @pLezaroNaptipusId = @UtolsoTanitasiNap, @VegzosUtolsoTanitasiNap, @pLezaroNaptipusId),
CASE
WHEN @pLezaroNaptipusId = @ElsoFelveVege THEN @UtolsoTanitasiNap
WHEN @pLezaroNaptipusId = @UtolsoTanitasiNap THEN @ElsoFelveVege
WHEN @pLezaroNaptipusId = @IneVege THEN @IIIneVege
WHEN @pLezaroNaptipusId = @IIIneVege THEN @IneVege
END)
)
DECLARE @idoszakEleje DATE = (
SELECT ISNULL(
(SELECT TOP 1 C_DATUM
FROM T_TANEVRENDJE_OSSZES
LEFT JOIN T_OSZTALYCSOPORT_TANEVRENDJE ON T_TANEVRENDJE_OSSZES.ID = T_OSZTALYCSOPORT_TANEVRENDJE.C_TANEVRENDJEID
WHERE C_TANEVID = @pTanevId AND C_NAPTIPUSA = @pKezdeteOsztalyNaptipusId AND TOROLT = 'F' AND (C_OSZTALYCSOPORTID IS NULL OR C_OSZTALYCSOPORTID = @pOsztalyId)
ORDER BY C_OSZTALYCSOPORTID DESC),
(SELECT TOP 1 C_KEZDONAP FROM T_TANEV_OSSZES WHERE ID = @pTanevId))
);
DECLARE @idoszakVege DATE = (
SELECT ISNULL(
(SELECT TOP 1 C_DATUM
FROM T_TANEVRENDJE_OSSZES
LEFT JOIN T_OSZTALYCSOPORT_TANEVRENDJE ON T_TANEVRENDJE_OSSZES.ID = T_OSZTALYCSOPORT_TANEVRENDJE.C_TANEVRENDJEID
WHERE C_TANEVID = @pTanevId AND C_NAPTIPUSA = @pLezaroOsztalyNaptipusId AND TOROLT = 'F' AND (C_OSZTALYCSOPORTID IS NULL OR C_OSZTALYCSOPORTID = @pOsztalyId)
ORDER BY C_OSZTALYCSOPORTID DESC),
GETDATE())
);
INSERT INTO @osztalyTanulok (TANULOID, BELEPESDATUM, KILEPESDATUM) (
SELECT T_FELHASZNALO_OSSZES.ID AS TANULOID, C_BELEPESDATUM, C_KILEPESDATUM
FROM T_FELHASZNALO_OSSZES
INNER JOIN (
SELECT tcs.C_TANULOID, tcs.C_OSZTALYCSOPORTID, tcs.C_BELEPESDATUM, tcs.C_KILEPESDATUM
FROM T_TANULOCSOPORT_OSSZES tcs
INNER JOIN T_OSZTALYCSOPORT_OSSZES ocs ON ocs.ID=tcs.C_OSZTALYCSOPORTID AND ocs.C_FELADATKATEGORIAID = @DefaultFeladatKategoriaId AND ocs.TOROLT='F'
WHERE tcs.TOROLT = 'F' AND tcs.C_BELEPESDATUM < @idoszakVege
AND (tcs.C_KILEPESDATUM IS NULL OR tcs.C_KILEPESDATUM >= @idoszakVege)
) AS TANCSOPORT ON TANCSOPORT.C_TANULOID = T_FELHASZNALO_OSSZES.ID
WHERE T_FELHASZNALO_OSSZES.TOROLT = 'F' AND TANCSOPORT.C_OSZTALYCSOPORTID = @pOsztalyId AND T_FELHASZNALO_OSSZES.C_TANEVID = @pTanevId
);
INSERT INTO @osztalyokCsoportokErtekeles(TECHNIKAIID, OSZTALYCSOPORTID, OSZTALYCSOPORTNEV, SORREND, TANTARGYID, TANTARGYNEV, AKTUALISLETSZAM, ATLAG)
SELECT CAST(@pOsztalyId AS nvarchar(MAX)) + '_' + CAST(OsztalyCsoportId AS nvarchar(MAX)) AS TechnikaiId, OsztalyCsoportId, OSZTALYCSOPORT.C_NEV + (IIF(CSOPORT.ID IS NOT NULL, ' (' + (SELECT C_NEV FROM T_OSZTALYCSOPORT_OSSZES WHERE ID = @pOsztalyId) + ')', '')) AS OsztalyCsoportNev, @sorrend,
TantargyId, TantargyNev,
(SELECT COUNT(TanuloId) FROM (
SELECT TanuloId FROM fnGetDokumentumOsztalyokCsoportokTanuloi(@pTanevId, OsztalyCsoportId, 0)
INTERSECT
SELECT TanuloId FROM fnGetDokumentumOsztalyokCsoportokTanuloi(@pTanevId, @pOsztalyId, 0)) AS T) AS Aktualisletszam,
AVG(CAST (ErtekelesOsztalyzatValue AS float)) AS Atlag
FROM fnGetDokumentumErtekelesekOsztalyonkent(@pTanevId, @pOsztalyId, @pErtekelestipusaId, DEFAULT, DEFAULT, 1, DEFAULT) AS ERTEKELESEK
INNER JOIN @osztalyTanulok AS OSZTALYTANULOK ON OSZTALYTANULOK.TANULOID = ERTEKELESEK.TanuloId
INNER JOIN T_OSZTALYCSOPORT_OSSZES AS OSZTALYCSOPORT ON OSZTALYCSOPORT.ID = OsztalyCsoportId AND OSZTALYCSOPORT.C_FELADATKATEGORIAID = @DefaultFeladatKategoriaId
LEFT JOIN T_CSOPORT_OSSZES AS CSOPORT ON CSOPORT.ID = OSZTALYCSOPORT.ID
WHERE IsMagatartasSzorgalom = 'F'
GROUP BY OsztalyCsoportId, OSZTALYCSOPORT.C_NEV, TantargyId, TantargyNev, CSOPORT.ID
END
SELECT *
FROM (
SELECT DISTINCT TECHNIKAIID, OSZTALYCSOPORTID, OSZTALYCSOPORTNEV, AKTUALISLETSZAM, SORREND
FROM @osztalyokCsoportokErtekeles
UNION
SELECT TECHNIKAIID, OSZTALYID AS OSZTALYCSOPORTID, NEV AS OSZTALYCSOPORTNEV, AKTUALISLETSZAM, Row# AS SORREND
FROM #tempOsztalyok
) AS OSZTALYOKCSOPORTOK
ORDER BY SORREND, OSZTALYCSOPORTNEV;
SELECT DISTINCT TANTARGYID, TANTARGY_NEV
FROM @tantargyak;
SELECT *
FROM @osztalyokCsoportokErtekeles;
select OSZTALYID AS OsztalyId
,EVFOLYAM AS EvfolyamTipusa
,FeladatEllatasiHelyId
,KepzesiForma
,OsztalyfonokId
,TantervId
,OJAranyJanosProgram
,OJCSJKeresztfeleves
,OJKettannyelvu
,OJIsGyogypedagogiaiLogopediai
,OJNemzetisegi
,OJNyelviElokeszito
,OJSportOsztaly
,OJTechnikaiOsztaly
,SzakmaCsoport
,Agazat
,Szakkepesites
,Reszszakkepesites from #tempOsztalyok;
select cs.ID CsoportId
,cs.C_CSOPORTVEZETOID as Csoportvezeto
,cs.C_TIPUSA as CsoportTipus
,ocs.C_KERESZTFELEVES as OJCSJKeresztfeleves
,ocs.C_VEGZOSEVFOLYAM as CSJVegzosEvfolyamu
from T_CSOPORT_OSSZES cs
inner join @osztalyokCsoportokErtekeles ocse on ocse.OSZTALYCSOPORTID = cs.iD
inner join T_OSZTALYCSOPORT_OSSZES ocs on ocs.ID = cs.ID;
IF OBJECT_ID('tempdb..#tempOsztalyok') IS NOT NULL DROP TABLE #tempOsztalyok
IF OBJECT_ID('tempdb..#tempErtekeles') IS NOT NULL DROP TABLE #tempErtekeles
END
GO

View file

@ -0,0 +1,456 @@
DROP PROCEDURE IF EXISTS [dbo].[sp_Nyomtatvany_Excel_IdoszakiOsztalyokTantargyiStatisztika]
GO
CREATE PROCEDURE [dbo].[sp_Nyomtatvany_Excel_IdoszakiOsztalyokTantargyiStatisztika]
@pTanevId int
,@pIntezmenyId int
,@pErtekelestipusaId int
,@pLezaroNaptipusId int
,@pTanoraiCsoportTipusIds int = 1034
,@pMulasztasTipusIdKeses int = 1499
,@pMulasztasTipusIdHianyzas int = 1500
,@pNemMulasztaIgazolasTipusIds int = 1532 -- Iskola érdekű távollét
,@pTanevrendjeTanevKezdeteNaptipusId int = 1394 --Tanévrendje első nap típus
,@pAtsoroltTanuloAdatok int = 1
,@pElmeletgyakorlat bit = 0
AS
BEGIN
SET NOCOUNT ON;
--Const
DECLARE
@ElsoFelveVege int = 1400
,@IneVege int = 1403
,@IIIneVege int = 1404
,@UtolsoTanitasiNap int = 1395
,@VegzosUtolsoTanitasiNap int = 1402
,@iskolaErdekuSzamit bit = dbo.fnGetRendszerbeallitasEnumBool(1683, @pIntezmenyId, @pTanevId)
,@DefaultFeladatKategoriaId int = 7553 /*OktNevelesiKategoriaEnum.Alapkepzes*/
CREATE TABLE #tantargyak (
TantargyId int
,TantargyNev nvarchar(255)
,TargykategoriaSorszam int
)
CREATE TABLE #osztalyokTanulokszama (
OsztalyId int
,TanulokSzama int
)
CREATE TABLE #osztalyokErtekeles (
OsztalyId int
,TantargyId int
,Atlag float
)
CREATE TABLE #osztalyokMagszorg (
OsztalyId int
,MagAtlag float
,SzorgAtlag float
)
CREATE TABLE #osztalyokMulasztas (
OsztalyId int
,TIPUS_CHAR char(1)
,C_TIPUS int
,C_IGAZOLT char(1)
,MulasztasokSzama int
,C_GYAKORLATI char(1)
,DESCR char(3)
)
CREATE TABLE #szurtMulasztas (
TIPUS_CHAR char(1)
,C_TIPUS int
,C_IGAZOLT char(1)
,C_TANULOID int
,C_GYAKORLATI char(1)
,KESESPERC int
,MulasztasokSzama int
)
CREATE TABLE #tempMulasztas (
TIPUS int
,IGAZOLT char(1)
,GYAKORLATI char(1)
,KESESPERC int
,MulasztasokSzama int
,OsztalyId int
)
CREATE TABLE #csopTip (
ID int PRIMARY KEY CLUSTERED
)
CREATE TABLE #OsztalyokTanulok(
OsztalyId int
,TanuloId int
,BelepesDatum datetime
,KilepesDatum datetime
INDEX IX_OT CLUSTERED (TanuloId)
)
CREATE TABLE #tempOsztalyok(
OsztalyId int
,OsztalyNev nvarchar(255)
,Sorrend int
,KereszFeleves char(1)
,VegzosEVfolyam char(1)
,Letszam int
,IdoszakKezdeteNaptipusId int
,IdoszakVegeNaptipusId int
,IdoszakKezdete datetime
,IdoszakVege datetime
INDEX IX_tmpO CLUSTERED(OsztalyId)
)
CREATE TABLE #tempOsztalyErtekelesek(
TantargyId int
,Osztalyzat int
,TanuloId int
,OsztalyId int
,MagatartasOsztalyzat int
,SzorgalomOsztalyzat int
INDEX IX_tmpO_tgy CLUSTERED(TantargyId)
)
-- TANTÁRGYAK
INSERT INTO #tantargyak (
TantargyId
,TantargyNev
,TargyKategoriaSorszam
)
SELECT
tgy.ID AS TantargyId
,COALESCE(tgy.C_NEVNYOMTATVANYBAN, tgy.C_NEV) AS TantargyNev
,ISNULL(dibKat.C_VALUE,0)
FROM T_TANTARGY_OSSZES tgy
INNER JOIN T_DICTIONARYITEMBASE_OSSZES AS dibKat ON dibKat.ID = tgy.C_TARGYKATEGORIA AND dibKat.C_TANEVID = tgy.C_TANEVID
WHERE tgy.TOROLT = 'F' AND tgy.C_TANEVID = @pTanevId
INSERT INTO #tantargyak(
TantargyId
,TantargyNev
,TargyKategoriaSorszam
)
VALUES(-1,'Magatartás',-2),(-2,'Szorgalom',-1)
-- OSZTÁLYOK
INSERT INTO #tempOsztalyok(
OsztalyId
,OsztalyNev
,Sorrend
,KereszFeleves
,VegzosEVfolyam
,Letszam
,IdoszakKezdeteNaptipusId
,IdoszakVegeNaptipusId
)
SELECT
ocs.ID AS OsztalyId
,ocs.C_NEV AS OsztalyNev
,dibEvf.C_ORDER AS Sorrend
,ocs.C_KERESZTFELEVES AS KereszFeleves
,ocs.C_VEGZOSEVFOLYAM AS VegzosEVfolyam
,0 Letszam
,IIF(ocs.C_KERESZTFELEVES = 'F', @pTanevrendjeTanevKezdeteNaptipusId,
CASE
WHEN @pLezaroNaptipusId = @ElsoFelveVege THEN @ElsoFelveVege
WHEN @pLezaroNaptipusId = @UtolsoTanitasiNap THEN @pTanevrendjeTanevKezdeteNaptipusId
WHEN @pLezaroNaptipusId = @IneVege THEN @ElsoFelveVege
WHEN @pLezaroNaptipusId = @IIIneVege THEN @pTanevrendjeTanevKezdeteNaptipusId
END) IdoszakKezdeteNaptipusId
,IIF(ocs.C_KERESZTFELEVES = 'F', IIF(ocs.C_VEGZOSEVFOLYAM = 'T' AND @pLezaroNaptipusId = @UtolsoTanitasiNap, @VegzosUtolsoTanitasiNap, @pLezaroNaptipusId),
CASE
WHEN @pLezaroNaptipusId = @ElsoFelveVege THEN @UtolsoTanitasiNap
WHEN @pLezaroNaptipusId = @UtolsoTanitasiNap THEN @ElsoFelveVege
WHEN @pLezaroNaptipusId = @IneVege THEN @IIIneVege
WHEN @pLezaroNaptipusId = @IIIneVege THEN @IneVege
END) IdoszakVegeNaptipusId
FROM T_OSZTALYCSOPORT_OSSZES ocs
INNER JOIN T_OSZTALY_OSSZES o ON o.ID = ocs.ID
INNER JOIN T_DICTIONARYITEMBASE_OSSZES AS dibEvf ON dibEvf.ID = ocs.C_EVFOLYAMTIPUSA AND dibEvf.TOROLT = 'F'
AND dibEvf.C_TANEVID = ocs.C_TANEVID
WHERE ocs.TOROLT = 'F'
AND ocs.C_TANEVID = @pTanevId
AND ocs.C_FELADATKATEGORIAID = @DefaultFeladatKategoriaId
UPDATE #tempOsztalyok SET
IdoszakKezdete = ISNULL(
(SELECT TOP 1 C_DATUM
FROM T_TANEVRENDJE_OSSZES tr
LEFT JOIN T_OSZTALYCSOPORT_TANEVRENDJE ocstr ON tr.ID = ocstr.C_TANEVRENDJEID
WHERE tr.C_TANEVID = @pTanevId AND tr.C_NAPTIPUSA = IdoszakKezdeteNaptipusId AND tr.TOROLT = 'F' AND (C_OSZTALYCSOPORTID IS NULL OR C_OSZTALYCSOPORTID = OsztalyId)
ORDER BY C_OSZTALYCSOPORTID DESC),
(SELECT TOP 1 C_KEZDONAP FROM T_TANEV_OSSZES WHERE ID = @pTanevId))
,IdoszakVege = ISNULL(
(SELECT TOP 1 C_DATUM
FROM T_TANEVRENDJE_OSSZES tr
LEFT JOIN T_OSZTALYCSOPORT_TANEVRENDJE ocstr ON tr.ID = ocstr.C_TANEVRENDJEID
WHERE tr.C_TANEVID = @pTanevId AND tr.C_NAPTIPUSA = IdoszakVegeNaptipusId AND TOROLT = 'F' AND (C_OSZTALYCSOPORTID IS NULL OR C_OSZTALYCSOPORTID = OsztalyId)
ORDER BY C_OSZTALYCSOPORTID DESC),
GETDATE())
UPDATE #tempOsztalyok SET Letszam = DB FROM (
SELECT
COUNT(*) db
,o.OsztalyId
FROM #tempOsztalyok o
INNER JOIN T_TANULOCSOPORT_OSSZES tcso ON tcso.C_OSZTALYCSOPORTID = o.OsztalyId
AND tcso.TOROLT='F'
AND o.IdoszakVege BETWEEN tcso.C_BELEPESDATUM AND ISNULL(tcso.C_KILEPESDATUM,'22000101')
GROUP BY o.OsztalyId) x
WHERE x.OsztalyId = #tempOsztalyok.OsztalyId
INSERT INTO #OsztalyokTanulok(
OsztalyId
,TanuloId
,BelepesDatum
,KilepesDatum
)
SELECT DISTINCT
o.OsztalyId
,tcso.C_TANULOID
,tcso.C_BELEPESDATUM
,tcso.C_KILEPESDATUM
FROM T_TANULOCSOPORT_OSSZES tcso
INNER JOIN #tempOsztalyok o ON o.OsztalyId = tcso.C_OSZTALYCSOPORTID
WHERE tcso.TOROLT='F' AND tcso.C_TANEVID = @pTanevId
AND o.IdoszakVege BETWEEN tcso.C_BELEPESDATUM AND ISNULL(tcso.C_KILEPESDATUM,'22000101')
INSERT INTO #csopTip(ID)
SELECT Id FROM fnGetDokumentumOsztalyVagyTanoraiCsoport (@pTanevId)
INSERT INTO #tempMulasztas(
TIPUS
,IGAZOLT
,GYAKORLATI
,KESESPERC
,MulasztasokSzama
,OsztalyId
)
SELECT
tm.C_TIPUS -- 1500 hiányzás, 1499 késés
,tm.C_IGAZOLT
,tgy.C_GYAKORLATI
,SUM(tm.C_KESESPERCBEN)
,COUNT(tm.ID) AS MulasztasokSzama
,o.OsztalyId
FROM T_TANULOMULASZTAS_OSSZES tm
INNER JOIN T_TANITASIORA_OSSZES tao ON tao.ID = tm.C_TANITASIORAKID
AND tao.TOROLT = 'F'
AND tao.C_MEGTARTOTT = 'T'
AND tao.C_TANEVID = @pTanevId
INNER JOIN #OsztalyokTanulok ot ON ot.TanuloId = tm.C_ORATANULOIID
INNER JOIN #tempOsztalyok o ON o.OsztalyId = ot.OsztalyId
AND tao.C_DATUM <= o.IdoszakVege
INNER JOIN T_TANTARGY_OSSZES tgy ON tgy.ID = tao.C_TANTARGYID AND tgy.TOROLT='F'
INNER JOIN #csopTip csop ON csop.ID=tao.C_OSZTALYCSOPORTID
WHERE tm.C_TIPUS BETWEEN 1499 AND 1500
AND ot.BelepesDatum <= tao.C_DATUM AND (ot.KilepesDatum IS NULL OR ot.KilepesDatum >= tao.C_DATUM)
AND (@iskolaErdekuSzamit = 1 OR ISNULL(C_IGAZOLASTIPUSA,0)<>1533)
AND tm.TOROLT = 'F' AND tm.C_IGAZOLT IS NOT NULL
AND tm.C_TANEVID = @pTanevId
GROUP BY C_TIPUS, C_IGAZOLT, C_GYAKORLATI, o.OsztalyId
--ÉRTÉKELÉS LISTA
INSERT INTO #tempOsztalyErtekelesek(
TantargyId
,Osztalyzat
,TanuloId
,OsztalyId
,MagatartasOsztalyzat
,SzorgalomOsztalyzat
)
SELECT
te.C_TANTARGYID as TantargyId
,ertekelesOsztalyzat.C_VALUE Osztalyzat
,te.C_TANULOID TanuloId
,o.OsztalyId OsztalyId
,ISNULL(magatartasOsztalyzat.C_VALUE,magatartasErtek.C_VALUE + 1) MagatartasOsztalyzat
,ISNULL(szorgalomOsztalyzat.C_VALUE,szorgalomErtek.C_VALUE+1) SzorgalomOsztalyzat
FROM T_TANULOERTEKELES_OSSZES te
INNER JOIN #OsztalyokTanulok t ON t.TanuloId = te.C_TANULOID
INNER JOIN #tempOsztalyok o ON o.OsztalyId = t.OsztalyId
INNER JOIN #csopTip tanorai ON tanorai.ID = te.C_OSZTALYCSOPORTID
LEFT JOIN T_TANTARGY_OSSZES tgy ON tgy.ID= te.C_TANTARGYID AND tgy.TOROLT='F'
LEFT JOIN T_DICTIONARYITEMBASE_OSSZES ertekelesOsztalyzat ON ertekelesOsztalyzat.ID = te.C_ERTEKELESOSZTALYZATID
AND ertekelesOsztalyzat.C_TANEVID = @pTanevId
AND ertekelesOsztalyzat.C_TYPE = 'OsztalyzatTipus'
AND ertekelesOsztalyzat.TOROLT='F'
LEFT JOIN T_DICTIONARYITEMBASE_OSSZES magatartasOsztalyzat ON magatartasOsztalyzat.ID = te.C_MAGATARTASOSZTALYZATID
AND magatartasOsztalyzat.C_TANEVID = @pTanevId
AND magatartasOsztalyzat.C_TYPE = 'OsztalyzatTipus'
AND magatartasOsztalyzat.TOROLT='F'
LEFT JOIN T_DICTIONARYITEMBASE_OSSZES szorgalomOsztalyzat ON szorgalomOsztalyzat.ID = te.C_SZORGALOMOSZTALYZATID
AND szorgalomOsztalyzat.C_TANEVID = @pTanevId
AND szorgalomOsztalyzat.C_TYPE = 'OsztalyzatTipus'
AND szorgalomOsztalyzat.TOROLT='F'
LEFT JOIN T_DICTIONARYITEMBASE_OSSZES magatartasErtek ON magatartasErtek.ID = te.C_MAGATARTASERTEKID
AND magatartasErtek.C_TANEVID = @pTanevId
AND magatartasErtek.C_TYPE = 'MagatartasErtekelesTipus'
AND magatartasErtek.TOROLT='F'
LEFT JOIN T_DICTIONARYITEMBASE_OSSZES szorgalomErtek ON szorgalomErtek.ID = te.C_SZORGALOMERTEKID
AND szorgalomErtek.C_TANEVID = @pTanevId
AND szorgalomErtek.C_TYPE = 'SzorgalomErtekelesTipus'
AND szorgalomErtek.TOROLT='F'
WHERE te.C_TANEVID = @pTanevId
AND te.TOROLT = 'F'
AND C_TIPUSID = @pErtekelestipusaId
AND ISNULL(tgy.C_TARGYKATEGORIA,0) <> 1248
INSERT INTO #osztalyokErtekeles (
OSZTALYID
,TANTARGYID
,ATLAG
)
SELECT
OsztalyId
,TantargyId
,ROUND(AVG(CAST(Osztalyzat AS float)), 2) AS ATLAG
FROM #tempOsztalyErtekelesek AS ERTEKELESEK
WHERE TantargyId IS NOT NULL
AND Osztalyzat IS NOT NULL
GROUP BY OsztalyId,TantargyId
--MAGATARTAS-SZORGALOM LISTA
INSERT INTO #osztalyokMagszorg (
OSZTALYID
,MAGATLAG
,SZORGATLAG
)
SELECT
OsztalyId
,ROUND(AVG(CAST(MagatartasOsztalyzat AS float)), 2) AS MAGATLAG
,ROUND(AVG(CAST(SzorgalomOsztalyzat AS float)), 2) AS SZORGATLAG
FROM #tempOsztalyErtekelesek AS ERTEKELESEK
WHERE TantargyId IS NULL
AND SzorgalomOsztalyzat IS NOT NULL
AND MagatartasOsztalyzat IS NOT NULL
GROUP BY OsztalyId
CREATE TABLE #OsztalyHozottMulasztas (
OsztalyID int
,Gyakorlati char(1)
,HozottIgazolt int
,HozottIgazolatlan int
)
INSERT INTO #OsztalyHozottMulasztas (
OsztalyID
,HozottIgazolt
,HozottIgazolatlan
)
SELECT
o.OsztalyId
,SUM(IIF(tcs.C_BELEPESDATUM < IdoszaKVege,ISNULL(tta.C_HOZOTTIGAZOLTHIANYZAS,0),0))
,SUM(IIF(tcs.C_BELEPESDATUM < IdoszaKVege,ISNULL(tta.C_HOZOTTIGAZOLATLANHIANYZAS,0),0))
FROM #tempOsztalyok o
INNER JOIN T_OSZTALYCSOPORT_OSSZES ocs ON ocs.ID = o.OsztalyId AND ocs.TOROLT = 'F'
INNER JOIN T_TANULOCSOPORT_OSSZES tcs ON tcs.C_OSZTALYCSOPORTID = ocs.ID AND ocs.C_TANEVID = @pTanevId AND tcs.TOROLT = 'F'
INNER JOIN T_TANULOTANUGYIADATOK tta ON tta.C_TANULOCSOPORTID = tcs.ID AND tta.C_TANEVID = @pTanevId AND tta.TOROLT = 'F'
GROUP BY o.OsztalyId
UPDATE mul
SET MulasztasokSzama += hmul.HozottIgazolt
FROM #OsztalyHozottMulasztas hmul
INNER JOIN #tempMulasztas mul on hmul.OsztalyID = mul.OsztalyId
WHERE mul.Gyakorlati = 'F' AND mul.IGAZOLT = 'T' AND mul.TIPUS = 1500
UPDATE mul
SET MulasztasokSzama += hmul.HozottIgazolatlan
FROM #OsztalyHozottMulasztas hmul
INNER JOIN #tempMulasztas mul on hmul.OsztalyID = mul.OsztalyId
WHERE mul.Gyakorlati = 'F' AND mul.IGAZOLT = 'F' AND mul.TIPUS = 1500
UPDATE #tempMulasztas SET
MulasztasokSzama = NULL
WHERE KESESPERC IS NOT NULL
SELECT
OsztalyId
,OsztalyNev
,Letszam
FROM #tempOsztalyok
ORDER BY Sorrend,OsztalyNev
SELECT
TantargyId
,TantargyNev
FROM #tantargyak
ORDER BY TargyKategoriaSorszam,TantargyNev
SELECT
tgy.TantargyId
,o.Osztalyid
,o.OsztalyNev
,tgy.TantargyNev
,ert.Atlag
FROM #tantargyak tgy
INNER JOIN #osztalyokErtekeles ert ON ert.TantargyId = tgy.TantargyId
INNER JOIN #tempOsztalyok o ON o.OsztalyId = ert.OsztalyId
UNION
SELECT
tgy.TantargyId
,o.Osztalyid
,o.OsztalyNev
,tgy.TantargyNev
,mag.MagAtlag
FROM #tantargyak tgy
INNER JOIN #osztalyokMagszorg mag ON tgy.TantargyId = -1
INNER JOIN #tempOsztalyok o ON o.OsztalyId = mag.OsztalyId
UNION
SELECT
tgy.TantargyId
,o.Osztalyid
,o.OsztalyNev
,tgy.TantargyNev
,szorg.SzorgAtlag
FROM #tantargyak tgy
INNER JOIN #osztalyokMagszorg szorg ON tgy.TantargyId = -2
INNER JOIN #tempOsztalyok o ON o.OsztalyId = szorg.OsztalyId
IF @pElmeletgyakorlat = 0
BEGIN
SELECT
OsztalyId
,Tipus
,Igazolt
,SUM(KESESPERC)/45 as Késés
,SUM(MulasztasokSzama) as Mulasztás
FROM #tempMulasztas
GROUP BY OsztalyId,Tipus,Igazolt
END
ELSE
BEGIN
SELECT
OsztalyId
,Tipus
,Igazolt
,Gyakorlati
,SUM(KESESPERC)/45 as Késés
,SUM(MulasztasokSzama) as Mulasztás
FROM #tempMulasztas
GROUP BY OsztalyId,Tipus,Igazolt,Gyakorlati
END
-- iktatási adatok (ez maradjon az utolsó tábla)
SELECT
tempo.OsztalyId
,ocs.C_EVFOLYAMTIPUSA AS EvfolyamTipusa
,ocs.C_FELADATELLATASIHELYID AS FeladatEllatasiHelyId
,ocs.C_KEPZESIFORMA AS KepzesiForma
,o.C_OSZTALYFONOKID AS OsztalyfonokId
,o.C_TANTERVID AS TantervId
,o.C_AJPROGRAM AS OJAranyJanosProgram
,ocs.C_KERESZTFELEVES AS OJCSJKeresztfeleves
,o.C_KETTANNYELVU AS OJKettannyelvu
,ocs.C_ISGYOGYPEDAGOGIAILOGOPEDIAI AS OJIsGyogypedagogiaiLogopediai
,o.C_NEMZETISEGI AS OJNemzetisegi
,o.C_NYELVIELOKESZITO AS OJNyelviElokeszito
,o.C_SPORT AS OJSportOsztaly
,ocs.C_ISTECHNIKAI AS OJTechnikaiOsztaly
,o.C_SZAKMACSOPORT AS SzakmaCsoport
,o.C_AGAZAT AS Agazat
,o.C_SZAKKEPESITES AS Szakkepesites
,o.C_RESZSZAKKEPESITES AS Reszszakkepesites
FROM #tempOsztalyok tempo
INNER JOIN T_OSZTALYCSOPORT_OSSZES ocs ON ocs.ID = tempo.OsztalyId
AND ocs.TOROLT = 'F'
INNER JOIN T_OSZTALY_OSSZES o ON o.ID = ocs.ID
AND o.TOROLT ='F'
-- iktatási adatok vége
END
GO

View file

@ -0,0 +1,173 @@
DROP PROCEDURE IF EXISTS [dbo].[sp_Nyomtatvany_Excel_OsztalyTanuloinakGyakorlatiOraMulasztasiSzazalekStatisztika]
GO
CREATE PROCEDURE [dbo].[sp_Nyomtatvany_Excel_OsztalyTanuloinakGyakorlatiOraMulasztasiSzazalekStatisztika]
@pTanevId INT,
@pOsztalyId INT,
@pMulasztasTipusIdKeses INT = 1499,
@pMulasztasTipusIdHianyzas INT = 1500,
@pTanevrendjeTanevKezdeteNaptipusId INT = 1394, --Tanévrendje első nap típus
@pMegtartottVagyMegtarthato INT = 1,
@pAtsoroltTanuloAdatok INT = 1,
@tanitasiHetekSzamaVegzos INT,
@tanitasiHetekSzamaNemVegzos INT,
@isAltantargyBeszamitasa BIT
AS
BEGIN
DECLARE @iskolaErdekuParam INT = 1683;
DECLARE @iskolaErdekuSzamit BIT = dbo.fnGetRendszerbeallitasEnumBool(@iskolaErdekuParam, (SELECT C_INTEZMENYID FROM T_TANEV_OSSZES WHERE ID = @pTanevId), @pTanevId);
DECLARE @idoszakEleje DATE = (
SELECT ISNULL(
(SELECT TOP 1 C_DATUM
FROM T_TANEVRENDJE_OSSZES
LEFT JOIN T_OSZTALYCSOPORT_TANEVRENDJE ON T_TANEVRENDJE_OSSZES.ID = T_OSZTALYCSOPORT_TANEVRENDJE.C_TANEVRENDJEID
WHERE C_TANEVID = @pTanevId AND C_NAPTIPUSA = @pTanevrendjeTanevKezdeteNaptipusId AND TOROLT = 'F' AND (C_OSZTALYCSOPORTID IS NULL OR C_OSZTALYCSOPORTID = @pOsztalyId)
ORDER BY C_OSZTALYCSOPORTID DESC),
(SELECT TOP 1 C_KEZDONAP FROM T_TANEV_OSSZES WHERE ID = @pTanevId))
);
DECLARE @idoszakVege DATE = GETDATE();
DECLARE @osztalyTanulok TABLE (TANULOID INT PRIMARY KEY, TANULONEV NVARCHAR(MAX), BELEPESDATUM DATE, KILEPESDATUM DATE, OKTATASIAZONOSITO NVARCHAR(20));
DECLARE @tantargyak TABLE(TANTARGYID INT, TANTARGY_NEV NVARCHAR(MAX), TARGYKATEGORIA_NEV NVARCHAR(MAX), TARGYKATEGORIA_SORSZAM INT, C_FOTARGYE CHAR(1), C_ALTANTARGYKENTNYOMTATVANYBAN CHAR(1));
INSERT INTO @osztalyTanulok (TANULOID, TANULONEV, BELEPESDATUM, KILEPESDATUM, OKTATASIAZONOSITO)
SELECT FELHASZNALO.ID AS TANULOID, C_NYOMTATASINEV, C_BELEPESDATUM, C_KILEPESDATUM, C_OKTATASIAZONOSITO
FROM T_FELHASZNALO_OSSZES AS FELHASZNALO
INNER JOIN (
SELECT C_TANULOID, C_OSZTALYCSOPORTID, C_BELEPESDATUM, C_KILEPESDATUM
FROM T_TANULOCSOPORT_OSSZES AS TANULOCSOPORT
WHERE TANULOCSOPORT.TOROLT = 'F' AND TANULOCSOPORT.C_OSZTALYCSOPORTID = @pOsztalyId AND TANULOCSOPORT.C_BELEPESDATUM < @idoszakVege
AND (TANULOCSOPORT.C_KILEPESDATUM IS NULL OR TANULOCSOPORT.C_KILEPESDATUM >= @idoszakVege)
) AS TANCSOPORT ON TANCSOPORT.C_TANULOID = FELHASZNALO.ID
WHERE FELHASZNALO.TOROLT = 'F' AND TANCSOPORT.C_OSZTALYCSOPORTID = @pOsztalyId AND FELHASZNALO.C_TANEVID = @pTanevId;
DECLARE @aktualisOsztalyCsoportok TABLE (OSZTALYCSOPORTID INT);
IF @pAtsoroltTanuloAdatok = 0
BEGIN
INSERT INTO @aktualisOsztalyCsoportok (OSZTALYCSOPORTID)
SELECT ID
FROM fnGetDokumentumKapcsolodoOsztalycsoportok(@pOsztalyId, @pTanevId, DEFAULT)
END
ELSE IF @pAtsoroltTanuloAdatok = 1
BEGIN
INSERT INTO @aktualisOsztalyCsoportok (OSZTALYCSOPORTID)
SELECT ID
FROM fnGetDokumentumKapcsolodoOsztalycsoportok(@pOsztalyId, @pTanevId, DEFAULT)
END
ELSE
BEGIN
INSERT INTO @aktualisOsztalyCsoportok (OSZTALYCSOPORTID)
SELECT ID
FROM fnGetKapcsolodoOsztalycsoportokByDate(@pOsztalyId, @idoszakEleje, @idoszakVege)
WHERE (ID IN (SELECT ID FROM T_OSZTALY_OSSZES) OR ID IN (SELECT ID FROM T_CSOPORT_OSSZES WHERE C_TIPUSA IN (SELECT ID FROM fnGetTanoraiCeluCsoportTipusok(@pTanevId))));
END
INSERT INTO @tantargyak (TANTARGYID, TANTARGY_NEV, TARGYKATEGORIA_NEV, TARGYKATEGORIA_SORSZAM, C_FOTARGYE, C_ALTANTARGYKENTNYOMTATVANYBAN)
SELECT DISTINCT TANTARGYAK.ID AS TANTARGYID, TANTARGY_NEV, TARGYKATEGORIA_NEV, TARGYKATEGORIA_SORSZAM, C_FOTARGYE, C_ALTANTARGYKENTNYOMTATVANYBAN
FROM (
SELECT DISTINCT C_TANTARGYID AS ID, COALESCE(TANTARGY.C_NEVNYOMTATVANYBAN, TANTARGY.C_NEV) AS TANTARGY_NEV, TARGYKATEG.C_NAME AS TARGYKATEGORIA_NEV, TARGYKATEG.C_VALUE AS TARGYKATEGORIA_SORSZAM, C_FOTARGYE, C_ALTANTARGYKENTNYOMTATVANYBAN
FROM T_FOGLALKOZAS_OSSZES
INNER JOIN @aktualisOsztalyCsoportok AS OSZTALYCSOPORT ON OSZTALYCSOPORT.OSZTALYCSOPORTID = T_FOGLALKOZAS_OSSZES.C_OSZTALYCSOPORTID
INNER JOIN T_TANTARGY_OSSZES AS TANTARGY ON TANTARGY.ID = T_FOGLALKOZAS_OSSZES.C_TANTARGYID AND TANTARGY.C_TANEVID = T_FOGLALKOZAS_OSSZES.C_TANEVID
LEFT JOIN T_DICTIONARYITEMBASE_OSSZES AS TARGYKATEG ON TARGYKATEG.ID = TANTARGY.C_TARGYKATEGORIA AND TARGYKATEG.C_TANEVID = @pTanevId
WHERE T_FOGLALKOZAS_OSSZES.TOROLT = 'F' AND TANTARGY.C_GYAKORLATI = 'T'
UNION
SELECT DISTINCT C_TANTARGYID AS ID, COALESCE(TANTARGY.C_NEVNYOMTATVANYBAN, TANTARGY.C_NEV) AS TANTARGY_NEV, TARGYKATEG.C_NAME AS TARGYKATEGORIA_NEV, TARGYKATEG.C_VALUE AS TARGYKATEGORIA_SORSZAM, C_FOTARGYE, C_ALTANTARGYKENTNYOMTATVANYBAN
FROM T_TANITASIORA_OSSZES
INNER JOIN T_TANTARGY_OSSZES AS TANTARGY ON TANTARGY.ID = T_TANITASIORA_OSSZES.C_TANTARGYID AND TANTARGY.C_TANEVID = T_TANITASIORA_OSSZES.C_TANEVID
LEFT JOIN T_DICTIONARYITEMBASE_OSSZES AS TARGYKATEG ON TARGYKATEG.ID = TANTARGY.C_TARGYKATEGORIA AND TARGYKATEG.C_TANEVID = @pTanevId
WHERE T_TANITASIORA_OSSZES.TOROLT = 'F' AND C_OSZTALYCSOPORTID IN (SELECT OSZTALYCSOPORTID FROM @aktualisOsztalyCsoportok) AND TANTARGY.C_GYAKORLATI = 'T'
) AS TANTARGYAK
ORDER BY TARGYKATEGORIA_SORSZAM, TANTARGY_NEV;
SELECT DISTINCT TANULOID, TANULONEV, OKTATASIAZONOSITO
FROM @osztalyTanulok
ORDER BY TANULONEV;
SELECT DISTINCT TANTARGYID, TANTARGY_NEV
FROM @tantargyak;
SELECT * INTO #tempMulasztas FROM fnGetDokumentumMulasztasokOsztalyonkentReszletes (@pTanevId, @pOsztalyId, @iskolaErdekuSzamit, DEFAULT, @pAtsoroltTanuloAdatok, DEFAULT, DEFAULT, DEFAULT) WHERE Tipusa IN (@pMulasztasTipusIdKeses, @pMulasztasTipusIdHianyzas)
CREATE TABLE #tempTanorak (Orakszama INT, TanuloId INT, TantargyId INT, TantargyNev NVARCHAR(MAX) COLLATE Hungarian_CI_AI, Fotargye CHAR(1) COLLATE Hungarian_CI_AI, Altargye CHAR(1) COLLATE Hungarian_CI_AI, Gyakorlati CHAR(1) COLLATE Hungarian_CI_AI)
IF @pMegtartottVagyMegtarthato = 1
BEGIN
INSERT INTO #tempTanorak
SELECT Orakszama, TanuloId, TantargyId, TantargyNev, Fotargye, Altargye, Gyakorlati
FROM fnGetDokumentumOsztalyTanuloinakMegtarthatoOrakTantargyankent (@pTanevId, @pOsztalyId, @pAtsoroltTanuloAdatok, @tanitasiHetekSzamaVegzos, @tanitasiHetekSzamaNemVegzos, @isAltantargyBeszamitasa)
END
ELSE
BEGIN
INSERT INTO #tempTanorak
SELECT Orakszama, TanuloId, TantargyId, TantargyNev, Fotargye, Altargye, Gyakorlati
FROM fnGetDokumentumOsztalyTanuloinakMegtartottOrakTantargyankent (@pTanevId, @pOsztalyId)
END
SELECT MegtartottOrak.TanuloId, MegtartottOrak.TantargyId, MegtartottOrak.Gyakorlati,
CAST(Mulasztasokszam AS float) / Orakszama AS MulasztasArany, CAST(Mulasztasokszam AS float) / Orakszama * 100 AS MulasztasSzazalek,
CAST(Mulasztasokszam AS NVARCHAR) + '/' + CAST(Orakszama AS NVARCHAR) AS Info
FROM (
SELECT SUM(CAST(IIF(Tipusa = @pMulasztasTipusIdHianyzas, 1, IIF(Tipusa = @pMulasztasTipusIdKeses,CAST(KesesPercben AS FLOAT) / 45, 0)) AS FLOAT)) AS Mulasztasokszam, TanuloId, TantargyId, Gyakorlati
FROM #tempMulasztas
WHERE Gyakorlati = 'T'
GROUP BY TanuloId, TantargyId, Gyakorlati
) AS Mulasztasok
INNER JOIN (
SELECT Orakszama, Tanuloid, TantargyId, Gyakorlati, TantargyNev
FROM #tempTanorak
WHERE Gyakorlati = 'T'
) AS MegtartottOrak
ON MegtartottOrak.TantargyId = Mulasztasok.TantargyId
AND MegtartottOrak.TanuloId = Mulasztasok.TanuloId
AND MegtartottOrak.Gyakorlati = Mulasztasok.Gyakorlati
ORDER BY TanuloId, TantargyId
SELECT MegtartottOrak.TanuloId, MegtartottOrak.Gyakorlati,
CAST(Mulasztasokszam AS float) / Orakszama AS MulasztasArany, CAST(Mulasztasokszam AS float) / Orakszama * 100 AS MulasztasSzazalek,
CAST(Mulasztasokszam AS NVARCHAR) + '/' + CAST(Orakszama AS NVARCHAR) AS Info
FROM (
SELECT SUM(CAST(IIF(Tipusa = @pMulasztasTipusIdHianyzas, 1, IIF(Tipusa = @pMulasztasTipusIdKeses,CAST(KesesPercben AS FLOAT) / 45, 0)) AS FLOAT)) AS Mulasztasokszam, TanuloId, Gyakorlati
FROM #tempMulasztas
WHERE Gyakorlati = 'T'
GROUP BY TanuloId, Gyakorlati
) AS Mulasztasok
INNER JOIN (
SELECT Tanuloid, Gyakorlati, SUM(Orakszama) as Orakszama
FROM #tempTanorak
WHERE Gyakorlati = 'T'
GROUP BY Tanuloid, Gyakorlati
) AS MegtartottOrak
ON
MegtartottOrak.TanuloId = Mulasztasok.TanuloId
AND MegtartottOrak.Gyakorlati = Mulasztasok.Gyakorlati
ORDER BY TanuloId
IF OBJECT_ID('tempdb..#tempTanorak') IS NOT NULL DROP TABLE #tempTanorak
IF OBJECT_ID('tempdb..#tempMulasztas') IS NOT NULL DROP TABLE #tempMulasztas
-- Osztály adatok az iktatáshoz
SELECT
f.C_NYOMTATASINEV Osztalyfonok
,f.ID OsztalyfonokId
,ocs.C_NEV Osztalynev
,@pOsztalyId OsztalyId
,ocs.C_EVFOLYAMTIPUSA EvfolyamTipusa
,ocs.C_FELADATELLATASIHELYID FeladatEllatasiHelyId
,o.C_TANTERVID TantervId
,ocs.C_KEPZESIFORMA KepzesiForma
,o.C_AGAZAT Agazat
,o.C_SZAKMACSOPORT SzakmaCsoport
,o.C_SZAKKEPESITES Szakkepesites
,o.C_RESZSZAKKEPESITES Reszszakkepesites
,ocs.C_KERESZTFELEVES OJCSJKeresztfeleves
,ocs.C_VEGZOSEVFOLYAM CSJVegzosEvfolyamu
,ocs.C_ISTECHNIKAI OJTechnikaiOsztaly
,o.C_NEMZETISEGI OJNemzetisegi
,o.C_KETTANNYELVU OJKettannyelvu
,o.C_NYELVIELOKESZITO OJNyelviElokeszito
,ocs.C_ISGYOGYPEDAGOGIAILOGOPEDIAI OJIsGyogypedagogiaiLogopediai
,o.C_SPORT OJSportOsztaly
,o.C_AJPROGRAM OJAranyJanosProgram
FROM T_OSZTALYCSOPORT_OSSZES ocs
INNER JOIN T_OSZTALY_OSSZES o ON o.ID = ocs.id
LEFT JOIN T_FELHASZNALO_OSSZES f ON f.ID = o.C_OSZTALYFONOKID
WHERE
ocs.ID = @pOsztalyId AND ocs.C_TANEVID = @pTanevId AND ocs.TOROLT = 'F';
END;
GO

View file

@ -0,0 +1,185 @@
DROP PROCEDURE IF EXISTS [dbo].[sp_Nyomtatvany_Excel_OsztalyTanuloinakMulasztasiSzazalekStatisztika]
GO
CREATE PROCEDURE [dbo].[sp_Nyomtatvany_Excel_OsztalyTanuloinakMulasztasiSzazalekStatisztika]
@pTanevId INT,
@pOsztalyId INT,
@pMulasztasTipusIdKeses INT = 1499,
@pMulasztasTipusIdHianyzas INT = 1500,
@pTanevrendjeTanevKezdeteNaptipusId INT = 1394, --Tanévrendje első nap típus
@pMegtartottVagyMegtarthato INT = 1,
@pAtsoroltTanuloAdatok INT = 1,
@tanitasiHetekSzamaVegzos INT = 32,
@tanitasiHetekSzamaNemVegzos INT = 36,
@isAltantargyBeszamitasa BIT
AS
BEGIN
DECLARE @tanevrendjeTanevUtolsoTanitasiNapNaptipusId INT
DECLARE @iskolaErdekuParam INT = 1683;
DECLARE @iskolaErdekuSzamit BIT = dbo.fnGetRendszerbeallitasEnumBool(@iskolaErdekuParam, (SELECT C_INTEZMENYID FROM T_TANEV_OSSZES WHERE ID = @pTanevId), @pTanevId);
DECLARE @osztId INT,
@osztNev NVARCHAR(50),
@isKeresztfeleves CHAR(1),
@isVegzos CHAR(1);
SELECT TOP(1)
@osztId = ocs.ID
,@osztNev = ocs.C_NEV
,@isKeresztfeleves = ocs.C_KERESZTFELEVES
,@isVegzos = ocs.C_VEGZOSEVFOLYAM
FROM T_OSZTALYCSOPORT_OSSZES ocs
WHERE ocs.TOROLT = 'F'
AND ocs.ID = @pOsztalyId
AND ocs.C_TANEVID = @pTanevId
DECLARE @idoszakEleje DATE = (
SELECT ISNULL(
(SELECT TOP 1 C_DATUM
FROM T_TANEVRENDJE_OSSZES
LEFT JOIN T_OSZTALYCSOPORT_TANEVRENDJE ON T_TANEVRENDJE_OSSZES.ID = T_OSZTALYCSOPORT_TANEVRENDJE.C_TANEVRENDJEID
WHERE C_TANEVID = @pTanevId AND C_NAPTIPUSA = @pTanevrendjeTanevKezdeteNaptipusId AND TOROLT = 'F' AND (C_OSZTALYCSOPORTID IS NULL OR C_OSZTALYCSOPORTID = @pOsztalyId)
ORDER BY C_OSZTALYCSOPORTID DESC),
(SELECT TOP 1 C_KEZDONAP FROM T_TANEV_OSSZES WHERE ID = @pTanevId AND TOROLT = 'F'))
);
SET @tanevrendjeTanevUtolsoTanitasiNapNaptipusId = (
CASE
WHEN @isVegzos = 'T' THEN 1402 -- Utolsó tanítási nap a végzős évfolyamokon
WHEN @isKeresztfeleves = 'T' AND @isVegzos = 'T' THEN 7602 --Utolsó tanítási nap a végzős évfolyamokon (keresztféléves képzésben)
ELSE 1395 --Utolsó tanítási nap
END
)
DECLARE @idoszakVege DATE = (
SELECT ISNULL(
(SELECT TOP 1 C_DATUM
FROM T_TANEVRENDJE_OSSZES
LEFT JOIN T_OSZTALYCSOPORT_TANEVRENDJE ON T_TANEVRENDJE_OSSZES.ID = T_OSZTALYCSOPORT_TANEVRENDJE.C_TANEVRENDJEID
WHERE C_TANEVID = @pTanevId AND C_NAPTIPUSA = @tanevrendjeTanevUtolsoTanitasiNapNaptipusId AND TOROLT = 'F' AND (C_OSZTALYCSOPORTID IS NULL OR C_OSZTALYCSOPORTID = @pOsztalyId)),
GETDATE())
);
DECLARE @osztalyTanulok TABLE (TANULOID INT PRIMARY KEY, TANULONEV NVARCHAR(MAX), BELEPESDATUM DATE, KILEPESDATUM DATE, OKTATASIAZONOSITO NVARCHAR(20));
DECLARE @tantargyak TABLE(TANTARGYID INT, TANTARGY_NEV NVARCHAR(MAX), TARGYKATEGORIA_NEV NVARCHAR(MAX), TARGYKATEGORIA_SORSZAM INT, C_FOTARGYE CHAR(1), C_ALTANTARGYKENTNYOMTATVANYBAN CHAR(1));
INSERT INTO @osztalyTanulok (TANULOID, TANULONEV, BELEPESDATUM, KILEPESDATUM, OKTATASIAZONOSITO)
SELECT FELHASZNALO.ID AS TANULOID, C_NYOMTATASINEV, C_BELEPESDATUM, C_KILEPESDATUM, C_OKTATASIAZONOSITO
FROM T_FELHASZNALO_OSSZES AS FELHASZNALO
INNER JOIN (
SELECT C_TANULOID, C_OSZTALYCSOPORTID, C_BELEPESDATUM, C_KILEPESDATUM
FROM T_TANULOCSOPORT_OSSZES AS TANULOCSOPORT
WHERE TANULOCSOPORT.TOROLT = 'F' AND TANULOCSOPORT.C_OSZTALYCSOPORTID = @pOsztalyId AND C_TANEVID = @pTanevId AND TANULOCSOPORT.C_BELEPESDATUM < @idoszakVege
AND (TANULOCSOPORT.C_KILEPESDATUM IS NULL OR TANULOCSOPORT.C_KILEPESDATUM >= @idoszakVege)
) AS TANCSOPORT ON TANCSOPORT.C_TANULOID = FELHASZNALO.ID
WHERE FELHASZNALO.TOROLT = 'F' AND TANCSOPORT.C_OSZTALYCSOPORTID = @pOsztalyId AND FELHASZNALO.C_TANEVID = @pTanevId;
DECLARE @aktualisOsztalyCsoportok TABLE (OSZTALYCSOPORTID INT);
IF @pAtsoroltTanuloAdatok = 0
BEGIN
INSERT INTO @aktualisOsztalyCsoportok (OSZTALYCSOPORTID)
SELECT ID
FROM fnGetDokumentumKapcsolodoOsztalycsoportok(@pOsztalyId, @pTanevId, DEFAULT)
END
ELSE IF @pAtsoroltTanuloAdatok = 1
BEGIN
INSERT INTO @aktualisOsztalyCsoportok (OSZTALYCSOPORTID)
SELECT ID
FROM fnGetDokumentumKapcsolodoOsztalycsoportok(@pOsztalyId, @pTanevId, DEFAULT)
END
ELSE
BEGIN
INSERT INTO @aktualisOsztalyCsoportok (OSZTALYCSOPORTID)
SELECT ID
FROM fnGetKapcsolodoOsztalycsoportokByDate(@pOsztalyId, @idoszakEleje, @idoszakVege)
WHERE (ID IN (SELECT ID FROM T_OSZTALY_OSSZES) OR ID IN (SELECT ID FROM T_CSOPORT_OSSZES WHERE C_TIPUSA IN (SELECT ID FROM fnGetTanoraiCeluCsoportTipusok(@pTanevId))));
END
INSERT INTO @tantargyak (TANTARGYID, TANTARGY_NEV, TARGYKATEGORIA_NEV, TARGYKATEGORIA_SORSZAM, C_FOTARGYE, C_ALTANTARGYKENTNYOMTATVANYBAN)
SELECT DISTINCT TANTARGYAK.ID AS TANTARGYID, TANTARGY_NEV, TARGYKATEGORIA_NEV, TARGYKATEGORIA_SORSZAM, C_FOTARGYE, C_ALTANTARGYKENTNYOMTATVANYBAN
FROM (
SELECT DISTINCT C_TANTARGYID AS ID, COALESCE(TANTARGY.C_NEVNYOMTATVANYBAN, TANTARGY.C_NEV) AS TANTARGY_NEV, TARGYKATEG.C_NAME AS TARGYKATEGORIA_NEV, TARGYKATEG.C_VALUE AS TARGYKATEGORIA_SORSZAM, C_FOTARGYE, C_ALTANTARGYKENTNYOMTATVANYBAN
FROM T_FOGLALKOZAS_OSSZES
INNER JOIN @aktualisOsztalyCsoportok AS OSZTALYCSOPORT ON OSZTALYCSOPORT.OSZTALYCSOPORTID = T_FOGLALKOZAS_OSSZES.C_OSZTALYCSOPORTID
INNER JOIN T_TANTARGY_OSSZES AS TANTARGY ON TANTARGY.ID = T_FOGLALKOZAS_OSSZES.C_TANTARGYID AND TANTARGY.C_TANEVID = T_FOGLALKOZAS_OSSZES.C_TANEVID
LEFT JOIN T_DICTIONARYITEMBASE_OSSZES AS TARGYKATEG ON TARGYKATEG.ID = TANTARGY.C_TARGYKATEGORIA AND TARGYKATEG.C_TANEVID = @pTanevId
WHERE T_FOGLALKOZAS_OSSZES.TOROLT = 'F'
UNION
SELECT DISTINCT C_TANTARGYID AS ID, COALESCE(TANTARGY.C_NEVNYOMTATVANYBAN, TANTARGY.C_NEV) AS TANTARGY_NEV, TARGYKATEG.C_NAME AS TARGYKATEGORIA_NEV, TARGYKATEG.C_VALUE AS TARGYKATEGORIA_SORSZAM, C_FOTARGYE, C_ALTANTARGYKENTNYOMTATVANYBAN
FROM T_TANITASIORA_OSSZES
INNER JOIN T_TANTARGY_OSSZES AS TANTARGY ON TANTARGY.ID = T_TANITASIORA_OSSZES.C_TANTARGYID AND TANTARGY.C_TANEVID = T_TANITASIORA_OSSZES.C_TANEVID
LEFT JOIN T_DICTIONARYITEMBASE_OSSZES AS TARGYKATEG ON TARGYKATEG.ID = TANTARGY.C_TARGYKATEGORIA AND TARGYKATEG.C_TANEVID = @pTanevId
WHERE T_TANITASIORA_OSSZES.TOROLT = 'F' AND C_OSZTALYCSOPORTID IN (SELECT OSZTALYCSOPORTID FROM @aktualisOsztalyCsoportok)
) AS TANTARGYAK
ORDER BY TARGYKATEGORIA_SORSZAM, TANTARGY_NEV;
SELECT DISTINCT TANULOID, TANULONEV, OKTATASIAZONOSITO
FROM @osztalyTanulok
ORDER BY TANULONEV;
SELECT DISTINCT TANTARGYID, TANTARGY_NEV
FROM @tantargyak;
SELECT * INTO #tempMulasztas FROM fnGetDokumentumMulasztasokOsztalyonkentReszletes (@pTanevId, @pOsztalyId, @iskolaErdekuSzamit, DEFAULT, @pAtsoroltTanuloAdatok, DEFAULT, DEFAULT, DEFAULT) WHERE Tipusa IN (@pMulasztasTipusIdKeses, @pMulasztasTipusIdHianyzas)
CREATE TABLE #tempTanorak (Orakszama INT, TanuloId INT, TantargyId INT, TantargyNev NVARCHAR(MAX) COLLATE Hungarian_CI_AI, Fotargye CHAR(1) COLLATE Hungarian_CI_AI, Altargye CHAR(1) COLLATE Hungarian_CI_AI, Gyakorlati CHAR(1) COLLATE Hungarian_CI_AI)
IF @pMegtartottVagyMegtarthato = 1
BEGIN
INSERT INTO #tempTanorak
SELECT Orakszama, TanuloId, TantargyId, TantargyNev, Fotargye, Altargye, Gyakorlati
FROM fnGetDokumentumOsztalyTanuloinakMegtarthatoOrakTantargyankent (@pTanevId, @pOsztalyId, @pAtsoroltTanuloAdatok, @tanitasiHetekSzamaVegzos, @tanitasiHetekSzamaNemVegzos, @isAltantargyBeszamitasa)
END
ELSE
BEGIN
INSERT INTO #tempTanorak
SELECT Orakszama, TanuloId, TantargyId, TantargyNev, Fotargye, Altargye, Gyakorlati
FROM fnGetDokumentumOsztalyTanuloinakMegtartottOrakTantargyankent (@pTanevId, @pOsztalyId)
END
SELECT MegtartottOrak.TanuloId, MegtartottOrak.TantargyId, MegtartottOrak.Gyakorlati,
IIF(ISNULL(Orakszama,0) = 0, 0, ROUND((CAST(Mulasztasokszam AS float) / Orakszama), 2, 1)) AS MulasztasArany,
IIF(ISNULL(Orakszama,0) = 0, 0, ROUND((CAST(Mulasztasokszam AS float) / Orakszama * 100), 2, 1)) AS MulasztasSzazalek,
CAST(Mulasztasokszam AS NVARCHAR) + '/' + CAST(Orakszama AS NVARCHAR) AS Info
FROM (
SELECT SUM(CAST(IIF(Tipusa = @pMulasztasTipusIdHianyzas, 1, IIF(Tipusa = @pMulasztasTipusIdKeses,CAST(KesesPercben AS FLOAT) / 45, 0)) AS FLOAT)) AS Mulasztasokszam, TanuloId, TantargyId, Gyakorlati
FROM #tempMulasztas
GROUP BY TanuloId, TantargyId, Gyakorlati
) AS Mulasztasok
INNER JOIN (
SELECT Orakszama, Tanuloid, TantargyId, Gyakorlati, TantargyNev
FROM #tempTanorak
) AS MegtartottOrak
ON MegtartottOrak.TantargyId = Mulasztasok.TantargyId
AND MegtartottOrak.TanuloId = Mulasztasok.TanuloId
AND MegtartottOrak.Gyakorlati = Mulasztasok.Gyakorlati
INNER JOIN T_FELHASZNALO_OSSZES ON T_FELHASZNALO_OSSZES.ID = MegtartottOrak.TanuloId
IF OBJECT_ID('tempdb..#tempTanorak') IS NOT NULL DROP TABLE #tempTanorak
IF OBJECT_ID('tempdb..#tempMulasztas') IS NOT NULL DROP TABLE #tempMulasztas
-- Osztály adatok az iktatáshoz
SELECT
f.C_NYOMTATASINEV Osztalyfonok
,f.ID OsztalyfonokId
,ocs.C_NEV Osztalynev
,@pOsztalyId OsztalyId
,ocs.C_EVFOLYAMTIPUSA EvfolyamTipusa
,ocs.C_FELADATELLATASIHELYID FeladatEllatasiHelyId
,o.C_TANTERVID TantervId
,ocs.C_KEPZESIFORMA KepzesiForma
,o.C_AGAZAT Agazat
,o.C_SZAKMACSOPORT SzakmaCsoport
,o.C_SZAKKEPESITES Szakkepesites
,o.C_RESZSZAKKEPESITES Reszszakkepesites
,ocs.C_KERESZTFELEVES OJCSJKeresztfeleves
,ocs.C_VEGZOSEVFOLYAM CSJVegzosEvfolyamu
,ocs.C_ISTECHNIKAI OJTechnikaiOsztaly
,o.C_NEMZETISEGI OJNemzetisegi
,o.C_KETTANNYELVU OJKettannyelvu
,o.C_NYELVIELOKESZITO OJNyelviElokeszito
,ocs.C_ISGYOGYPEDAGOGIAILOGOPEDIAI OJIsGyogypedagogiaiLogopediai
,o.C_SPORT OJSportOsztaly
,o.C_AJPROGRAM OJAranyJanosProgram
FROM T_OSZTALYCSOPORT_OSSZES ocs
INNER JOIN T_OSZTALY_OSSZES o ON o.ID = ocs.id
LEFT JOIN T_FELHASZNALO_OSSZES f ON f.ID = o.C_OSZTALYFONOKID
WHERE
ocs.ID = @pOsztalyId AND ocs.C_TANEVID = @pTanevId AND ocs.TOROLT = 'F';
END;
GO

View file

@ -0,0 +1,124 @@
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
IF OBJECT_ID('[dbo].[sp_PedagogusNemBejegyzettOrai]') IS NOT NULL
BEGIN
DROP PROCEDURE [dbo].[sp_PedagogusNemBejegyzettOrai]
END
GO
CREATE PROCEDURE [dbo].[sp_PedagogusNemBejegyzettOrai]
@tanevID INT,
@mindenHeten INT,
@tanarID INT
AS
BEGIN
SET NOCOUNT ON;
DECLARE @vegzosUtolsoNapDatuma DATE = (SELECT C_DATUM FROM T_TANEVRENDJE_OSSZES WHERE C_TANEVID = @tanevId AND TOROLT = 'F' AND C_NAPTIPUSA = 1402)
DECLARE @OsztalyCsoportokTanevRendje TABLE (OsztalyCsoportId INT, Datum DATE, isOrarendiNap NVARCHAR(1))
INSERT INTO @OsztalyCsoportokTanevRendje
SELECT
C_OSZTALYCSOPORTID
,C_DATUM
,C_ORARENDINAP
FROM T_OSZTALYCSOPORT_TANEVRENDJE ocstr
INNER JOIN T_TANEVRENDJE_OSSZES tr ON tr.Id = ocstr.C_TANEVRENDJEID
WHERE
TOROLT = 'F'
AND tr.C_OSSZESCSOPORTRAVONATKOZIK = 'F'
AND tr.C_ORARENDINAP = 'F'
SELECT
CONVERT(NVARCHAR(10),ROW_NUMBER() OVER (ORDER BY Napdatuma ))+'.' COLUMN440
,FORMAT(Napdatuma, 'yyyy.MM.dd.') COLUMN273
,Oraszam COLUMN274
,OsztalyNev COLUMN673
,TanarNev COLUMN456
,TantargyNev COLUMN252
,TeremNev COLUMN2477
,Hetirend COLUMN4252
FROM (
SELECT
naptar.C_NAPDATUMA Napdatuma
,oo.C_ORASZAM Oraszam
,ocs.C_NEV OsztalyNev
,f.C_NYOMTATASINEV TanarNev
,t.C_NEV TantargyNev
,ter.C_NEV TeremNev
,d.C_NAME Hetirend
FROM T_ORARENDIORA_OSSZES oo
INNER JOIN T_NAPTARINAP_OSSZES naptar ON ((naptar.C_NAPDATUMA >= oo.C_ORAERVENYESSEGKEZDETE
AND oo.C_ORAERVENYESSEGVEGE> naptar.C_NAPDATUMA) OR (naptar.C_NAPDATUMA=oo.C_ORAERVENYESSEGKEZDETE AND naptar.C_NAPDATUMA=oo.C_ORAERVENYESSEGVEGE))
AND (naptar.C_HETIREND = oo.C_HETIREND OR oo.C_HETIREND = @mindenHeten)
AND oo.C_HETNAPJA=naptar.C_HETNAPJA
AND (naptar.C_NAPTIPUSA NOT IN (1386,1387,1389,1391,1392,1396,1397,1398,1399,1401))
LEFT JOIN T_TANEVRENDJE_OSSZES tr ON tr.C_DATUM = naptar.C_NAPDATUMA AND tr.C_TANEVID = naptar.C_TANEVID AND tr.TOROLT = 'F' AND tr.C_OSSZESCSOPORTRAVONATKOZIK = 'T'
LEFT JOIN @OsztalyCsoportokTanevRendje OsztalyCsoportokTanevRendje ON OsztalyCsoportokTanevRendje.Datum = naptar.C_NAPDATUMA AND OsztalyCsoportokTanevRendje.OsztalyCsoportId = oo.C_OSZTALYCSOPORTID
LEFT JOIN T_TANITASIORA_OSSZES tao ON
naptar.C_NAPDATUMA=tao.C_DATUM
AND tao.C_OSZTALYCSOPORTID = oo.C_OSZTALYCSOPORTID
AND tao.C_TANTARGYID = oo.C_TANTARGYID
AND oo.C_TANARID IN (tao.C_TANARID, tao.C_HELYETTESITOTANARID, tao.C_ORATULAJDONOSID)
AND tao.C_HETNAPJA = oo.C_HETNAPJA
AND tao.C_ORASZAM = oo.C_ORASZAM
AND tao.C_DATUM BETWEEN oo.C_ORAERVENYESSEGKEZDETE AND oo.C_ORAERVENYESSEGVEGE
AND tao.TOROLT='F'
LEFT JOIN T_HELYETTESITESIIDOSZAK_OSSZES hely ON hely.C_HELYETTESITETTORARENDID = oo.ID AND CAST(hely.C_HELYETTESITESNAPJA AS DATE) = naptar.C_NAPDATUMA
INNER JOIN T_FELHASZNALO_OSSZES f ON f.ID = oo.C_TANARID
INNER JOIN T_OSZTALYCSOPORT_OSSZES ocs ON ocs.ID = oo.C_OSZTALYCSOPORTID
INNER JOIN T_TANTARGY_OSSZES t ON t.ID = oo.C_TANTARGYID
INNER JOIN T_TEREM_OSSZES ter ON ter.ID = oo.C_TEREMID
INNER JOIN (SELECT DISTINCT ID, C_NAME FROM T_DICTIONARYITEMBASE_OSSZES) d ON d.ID = oo.C_HETIREND
WHERE
oo.C_TANEVID=@tanevId
AND oo.TOROLT='F'
AND oo.C_TANARID = @tanarID
AND naptar.C_NAPDATUMA <= IIF(C_VEGZOSEVFOLYAM = 'T' AND @vegzosUtolsoNapDatuma < GETDATE(), @vegzosUtolsoNapDatuma, GETDATE())
AND tao.ID IS NULL
AND hely.ID IS NULL
AND oo.TOROLT='F'
AND oo.C_CSENGETESIRENDID IS NOT NULL
AND naptar.C_TANEVID = @tanevID
AND (tr.C_ORARENDINAP = 'T' OR tr.C_ORARENDINAP IS NULL)
AND (OsztalyCsoportokTanevRendje.isOrarendiNap = 'T' OR OsztalyCsoportokTanevRendje.isOrarendiNap IS NULL)
UNION
SELECT
naptar.C_NAPDATUMA
,oo.C_ORASZAM
,ocs.C_NEV
,f.C_NYOMTATASINEV
,t.C_NEV
,ter.C_NEV
,d.C_NAME
FROM T_HELYETTESITESIIDOSZAK_OSSZES hi
INNER JOIN T_ORARENDIORA_OSSZES oo on oo.Id=hi.C_HELYETTESITETTORARENDID
INNER JOIN T_NAPTARINAP_OSSZES naptar on naptar.C_NAPDATUMA = CAST(hi.C_HELYETTESITESNAPJA AS DATE) AND naptar.C_TANEVID=hi.C_TANEVID AND naptar.C_INTEZMENYID=hi.C_INTEZMENYID
LEFT JOIN T_FELHASZNALO_OSSZES f ON oo.C_TANARID = f.ID
LEFT JOIN T_FELHASZNALO_OSSZES fh ON hi.C_HELYETTESTANAROKID = f.ID
LEFT JOIN T_OSZTALYCSOPORT_OSSZES ocs ON ocs.ID=oo.C_OSZTALYCSOPORTID
LEFT JOIN T_TANTARGY_OSSZES t ON t.ID=oo.C_TANTARGYID
LEFT JOIN T_TEREM_OSSZES ter ON ter.ID=oo.C_TEREMID
LEFT JOIN T_DICTIONARYITEMBASE_OSSZES d on d.id=oo.C_HETIREND AND d.C_TANEVID=oo.C_TANEVID AND d.C_INTEZMENYID=oo.C_INTEZMENYID
WHERE
hi.C_HELYETTESITESNAPJA <= IIF(C_VEGZOSEVFOLYAM = 'T', @vegzosUtolsoNapDatuma, GETDATE())
AND hi.TOROLT='F'
AND oo.C_CSENGETESIRENDID IS NOT NULL
AND oo.TOROLT='F'
AND hi.C_HELYETTESTANAROKID = @tanarID
AND NOT EXISTS (
SELECT 1 FROM T_ORARENDIORA ooo
JOIN T_TANITASIORA tao ON tao.C_ORARENDIORAGROUPID = ooo.C_ORARENDIORAGROUPID AND tao.C_DATUM BETWEEN ooo.C_ORAERVENYESSEGKEZDETE AND ooo.C_ORAERVENYESSEGVEGE
WHERE tao.C_DATUM = CAST(hi.C_HELYETTESITESNAPJA AS DATE) AND ooo.ID=hi.C_HELYETTESITETTORARENDID AND tao.TOROLT='F'
)
) orak
ORDER BY Napdatuma, Oraszam
END
GO

View file

@ -0,0 +1,382 @@
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
DROP PROCEDURE IF EXISTS uspGetErtesitesAltEsMulAdatok
GO
CREATE PROCEDURE uspGetErtesitesAltEsMulAdatok
@pOsztalyId INT,
@pTanevId INT,
@pTankoteles BIT,
@pIskolaErdekuSzamit BIT,
@pIsSzulonek BIT = 1,
@pIgazolatlanOrakSzama INT
AS
BEGIN
SET NOCOUNT ON;
--Mulasztasok
DECLARE @Mulasztasok TABLE (
TanuloId INT
,TanuloCsoportId INT
,Igazolt INT
,Igazolatlan INT
,ElmeletIgazolt INT
,ElmeletIgazolatlan INT
,GyakorlatIgazolt INT
,GyakorlatIgazolatlan INT
,ElmeletOsszes INT
,GyakorlatOsszes INT
,Osszes INT
)
DECLARE @Gondviselok TABLE (TanuloId INT, GondviseloId INT, RokonsagiFokId INT, GondviseloNev NVARCHAR(MAX))
DECLARE @TanuloCimTable TABLE (FelhasznaloId INT, Cim NVARCHAR(MAX), Cimtipusa INT)
DECLARE @GondViseloCimTable TABLE (GondviseloId INT, Cim NVARCHAR(MAX), Cimtipusa INT)
DECLARE @EmailCimTableTemp TABLE (FelhasznaloId INT, EmailCim NVARCHAR(MAX), GondviseloId INT)
DECLARE @EmailCimTanuloTable TABLE (FelhasznaloId INT, EmailCim NVARCHAR(MAX))
DECLARE @EmailCimGondviseloTable TABLE (FelhasznaloId INT, GondviseloId INT, EmailCim NVARCHAR(MAX))
DECLARE @TelefonTableTemp TABLE (FelhasznaloId INT, Telefon NVARCHAR(MAX), GondviseloId INT)
DECLARE @TanuloTelefonTable TABLE (FelhasznaloId INT, Telefon NVARCHAR(MAX))
DECLARE @GondviseloTelefonTable TABLE (FelhasznaloID INT, GondviseloId INT, Telefon NVARCHAR(MAX))
DECLARE @IktatasAdatok TABLE (
OsztalyId INT
,Evfolyam INT
,FeladatEllatasiHelyId INT
,KepzesiForma INT
,OsztalyFonokId INT
,TantervId INT
,SzakmaCsoport INT
,Agazat INT
,Szakkepesites INT
,Reszszakkepesites INT
,OJCSJKeresztfeleves CHAR
,OJTechnikaiOsztaly CHAR
,OJNemzetisegi CHAR
,OJKettannyelvu CHAR
,OJNyelviElokeszito CHAR
,OJIsGyogypedagogiaiLogopediai CHAR
,OJSportOsztaly CHAR
,OJAranyJanosProgram CHAR
)
CREATE TABLE #tanuloiAdatok (
TanuloId int
,TanuloCsoportId int
,TANULONEV nvarchar(510)
,ANYJANEVE nvarchar(128)
,SZULETESIHELY nvarchar(100)
,SZULETESIDATUM datetime
,TorzslapSzam nvarchar(100)
,INT_IGAZGATO_NEV nvarchar(510)
,INT_NEV nvarchar(510)
,INT_OMKOD nvarchar(40)
,INT_VAROS nvarchar(510)
,INT_CIM nvarchar(MAX)
,OSZTALYCSOPORT_NEV nvarchar(510)
,OSZTFO_NEV nvarchar(510)
,IGAZOLT int
,IGAZOLATLAN int
,TanuloAllandoCim nvarchar(MAX)
,TanuloTartozkodasiCim nvarchar(MAX)
,TanuloOktAzon nvarchar(40)
,HozottIgazolt int
,HozottIgazolatlan int
,HozottIgazoltKeses int
,HozottIgazolatlanKeses int
,BelepesDatum datetime
)
INSERT INTO @Mulasztasok
EXEC sp_GetDokumentumMulasztasok
@osztalyID = @pOsztalyId,
@tanevId = @pTanevId,
@elmeletiOraPercben = 45,
@gyakorlatiOraPercben = 45,
@ertekelesTipus = 1520, --évvégi
@iskolaErdekuSzamit = @pIskolaErdekuSzamit
SELECT
TanuloId Id
,TanuloCsoportId
,BelepesDatum
,ISNULL(KilepesDatum, GETDATE()) KilepesDatum
INTO #students
FROM fnGetDokumentumOsztalyokCsoportokTanuloi(@pTanevId, @pOsztalyId, 'T')
INSERT INTO @Gondviselok
SELECT
TanuloId
,GondviseloId
,RokonsagifokId
,GondviseloNev
FROM fnGetDokumentumGondviselok (@pOsztalyId, @pTanevId, 'F', 'T')
INSERT INTO @TanuloCimTable
SELECT DISTINCT
TanuloId
,STUFF((
SELECT DISTINCT CAST(btemp.Cim AS NVARCHAR(MAX)) + CHAR(13) + CHAR(10)
FROM fnGetDokumentumTanuloOrGondviseloCim (0, @pTanevId, @pOsztalyId) btemp
WHERE temp.TanuloId = btemp.TanuloId
AND temp.CimTipusa = btemp.CimTipusa
FOR XML PATH(''), TYPE)
.value('.','NVARCHAR(MAX)'),1,0,'')
,temp.CimTipusa
FROM fnGetDokumentumTanuloOrGondviseloCim (0, @pTanevId, @pOsztalyId) temp
INSERT INTO @GondViseloCimTable
SELECT DISTINCT
GondviseloId
,STUFF((
SELECT DISTINCT CAST(btemp.Cim AS NVARCHAR(MAX)) + CHAR(13) + CHAR(10)
FROM fnGetDokumentumTanuloOrGondviseloCim (1, @pTanevId, @pOsztalyId) btemp
WHERE temp.GondviseloId = btemp.GondviseloId
AND temp.CimTipusa = btemp.CimTipusa
FOR XML PATH(''), TYPE)
.value('.','NVARCHAR(MAX)'),1,0,'')
,temp.CimTipusa
FROM fnGetDokumentumTanuloOrGondviseloCim (1, @pTanevId, @pOsztalyId) temp
INSERT INTO @EmailCimTableTemp
SELECT
TanuloId
,C_EMAILCIM
,C_GONDVISELOID
FROM fnGetDokumentumOsztalyokCsoportokTanuloi(@pTanevId, @pOsztalyId, 'T') tanulo
INNER JOIN T_EMAIL_OSSZES email ON email.C_FELHASZNALOID = TanuloId
WHERE email.TOROLT = 'F'
AND email.C_TANEVID = @pTanevId
AND LEN(C_EMAILCIM) > 0
UNION
SELECT
TanuloId
,C_EMAILCIM
,GondviseloId
FROM @Gondviselok
INNER JOIN T_EMAIL_OSSZES email ON email.C_GONDVISELOID = GondviseloId
WHERE email.TOROLT = 'F'
AND email.C_TANEVID = @pTanevId
AND LEN(C_EMAILCIM) > 0
INSERT INTO @EmailCimTanuloTable
SELECT DISTINCT
FelhasznaloId
,STUFF((
SELECT DISTINCT CAST(btemp.EmailCim AS NVARCHAR(MAX)) + CHAR(13) + CHAR(10)
FROM @EmailCimTableTemp btemp
WHERE temp.FelhasznaloId = btemp.FelhasznaloId
AND btemp.GondviseloId IS NULL
FOR XML PATH(''), TYPE)
.value('.','NVARCHAR(MAX)'),1,0,'') Email
FROM @EmailCimTableTemp temp
WHERE GondviseloId IS NULL
INSERT INTO @EmailCimGondviseloTable
SELECT DISTINCT
FelhasznaloId
,GondviseloId
,STUFF((
SELECT DISTINCT CAST(btemp.EmailCim AS NVARCHAR(MAX)) + CHAR(13) + CHAR(10)
FROM @EmailCimTableTemp btemp
WHERE temp.GondviseloId = btemp.GondviseloId
AND btemp.GondviseloId IS NOT NULL
FOR XML PATH(''), TYPE)
.value('.','NVARCHAR(MAX)'),1,0,'') Email
FROM @EmailCimTableTemp temp
WHERE GondviseloId IS NOT NULL
INSERT INTO @TelefonTableTemp
SELECT
TanuloId
,C_TELEFONSZAM
,C_GONDVISELOID
FROM fnGetDokumentumOsztalyokCsoportokTanuloi(@pTanevId, @pOsztalyId, 'T') tanulo
INNER JOIN T_TELEFON_OSSZES telefon ON telefon.C_FELHASZNALOID = TanuloId
WHERE telefon.TOROLT = 'F'
AND telefon.C_TANEVID = @pTanevId
AND LEN(telefon.C_TELEFONSZAM) > 0
UNION
SELECT
TanuloId
,C_TELEFONSZAM
,GondviseloId
FROM @Gondviselok gondviselo
INNER JOIN T_TELEFON_OSSZES telefon ON telefon.C_GONDVISELOID = GondviseloId
WHERE telefon.TOROLT = 'F'
AND telefon.C_TANEVID = @pTanevId
AND LEN(telefon.C_TELEFONSZAM) > 0
INSERT INTO @TanuloTelefonTable
SELECT DISTINCT
FelhasznaloId
,STUFF((
SELECT DISTINCT CAST(btemp.Telefon AS NVARCHAR(MAX)) + CHAR(13) + CHAR(10)
FROM @TelefonTableTemp btemp
WHERE temp.FelhasznaloId = btemp.FelhasznaloId
AND GondviseloId IS NULL
FOR XML PATH(''), TYPE)
.value('.','NVARCHAR(MAX)'),1,0,'')
FROM @TelefonTableTemp temp
WHERE GondviseloId IS NULL
INSERT INTO @GondviseloTelefonTable
SELECT DISTINCT
FelhasznaloId
,GondviseloId
,STUFF((
SELECT DISTINCT CAST(btemp.Telefon AS NVARCHAR(MAX)) + CHAR(13) + CHAR(10)
FROM @TelefonTableTemp btemp
WHERE temp.FelhasznaloId = btemp.FelhasznaloId
AND temp.GondviseloId = btemp.GondviseloId
AND GondviseloId IS NOT NULL
FOR XML PATH(''), TYPE)
.value('.','NVARCHAR(MAX)'),1,0,'')
FROM @TelefonTableTemp temp
WHERE GondviseloId IS NOT NULL
SELECT
TanuloId
,Gondviselok.GondviseloId
,Gondviselok.GondviseloNev GondviseloNev
,Cim GondviseloAllandoCim
,Telefon GondviseloTelefon
,RokonsagiFok.C_NAME GondviseloRokonsagiFoka
INTO #GondviseloAdatok
FROM @Gondviselok Gondviselok
INNER JOIN T_DICTIONARYITEMBASE_OSSZES RokonsagiFok ON RokonsagiFok.Id = Gondviselok.RokonsagiFokId AND RokonsagiFok.C_TANEVID = @pTanevId
LEFT JOIN @GondViseloCimTable GondviseloCim ON GondviseloCim.GondviseloId = Gondviselok.GondviseloId
LEFT JOIN @GondviseloTelefonTable GondviseloTelefon ON GondviseloTelefon.GondviseloId = Gondviselok.GondviseloId
ORDER BY TanuloId
--Tanulói adatok
INSERT INTO #tanuloiAdatok
SELECT
TanuloAdatok.ID AS TanuloId
,OsztalyTanuloi.TanuloCsoportId
,TanuloAdatok.C_NYOMTATASINEV TANULONEV
,TanuloAdatok.C_ANYJANEVE ANYJANEVE
,TanuloAdatok.C_SZULETESIHELY SZULETESIHELY
,TanuloAdatok.C_SZULETESIDATUM SZULETESIDATUM
,TanuloAdatok.C_NYILVANTARTASISZAM TorzslapSzam
,IntezmenyAdatok.C_IGAZGATONEVE INT_IGAZGATO_NEV
,IntezmenyAdatok.C_NEV INT_NEV
,IntezmenyAdatok.C_OMKOD INT_OMKOD
,IntezmenyAdatok.C_VAROS INT_VAROS
,dbo.fnGetDokumentumIntezmenyCime(@pTanevId) INT_CIM
,(SELECT C_NEV FROM T_OSZTALYCSOPORT_OSSZES WHERE ID = @pOsztalyId) OSZTALYCSOPORT_NEV
,Osztalyfonok.C_NYOMTATASINEV OSZTFO_NEV
,ISNULL(Mulasztas.Igazolt,0) IGAZOLT
,ISNULL(Mulasztas.Igazolatlan,0) IGAZOLATLAN
,TanuloAllandoCimTable.CIM TanuloAllandoCim
,TanuloTartozkodasiCimTable.Cim TanuloTartozkodasiCim
,TanuloAdatok.C_OKTATASIAZONOSITO AS TanuloOktAzon
,TanugyiAdatok.C_HOZOTTIGAZOLTHIANYZAS AS HozottIgazolt
,TanugyiAdatok.C_HOZOTTIGAZOLATLANHIANYZAS AS HozottIgazolatlan
,TanugyiAdatok.C_HOZOTTIGAZOLTKESESPERCBEN AS HozottIgazoltKeses
,TanugyiAdatok.C_HOZOTTIGAZOLATLANKESESPERCBE AS HozottIgazolatlanKeses
,OsztalyTanuloi.BelepesDatum AS BelepesDatum
FROM #students OsztalyTanuloi
INNER JOIN T_FELHASZNALO_OSSZES TanuloAdatok ON TanuloAdatok.ID = OsztalyTanuloi.ID AND TanuloAdatok.TOROLT = 'F'
INNER JOIN T_TANULO_OSSZES Tanulo ON Tanulo.ID = TanuloAdatok.ID AND Tanulo.TOROLT = 'F'
INNER JOIN T_INTEZMENYADATOK_OSSZES IntezmenyAdatok ON IntezmenyAdatok.C_TANEVID = TanuloAdatok.C_TANEVID
AND IntezmenyAdatok.TOROLT = 'F'
INNER JOIN T_TANULOTANUGYIADATOK_OSSZES AS TanugyiAdatok ON TanugyiAdatok.C_TANULOCSOPORTID = OsztalyTanuloi.TanuloCsoportId
LEFT JOIN T_OSZTALY_OSSZES Osztaly ON Osztaly.ID = @pOsztalyId AND Osztaly.TOROLT = 'F'
LEFT JOIN T_FELHASZNALO_OSSZES Osztalyfonok ON Osztalyfonok.ID = Osztaly.C_OSZTALYFONOKID AND Osztalyfonok.TOROLT = 'F'
LEFT JOIN @Mulasztasok Mulasztas ON Mulasztas.TanuloId = TanuloAdatok.ID
AND Mulasztas.TanuloCsoportId = OsztalyTanuloi.TanuloCsoportId
LEFT JOIN @TanuloCimTable TanuloAllandoCimTable ON TanuloAllandoCimTable.FelhasznaloId = OsztalyTanuloi.ID
AND TanuloAllandoCimTable.Cimtipusa = 907
LEFT JOIN @TanuloCimTable TanuloTartozkodasiCimTable ON TanuloTartozkodasiCimTable.FelhasznaloId = OsztalyTanuloi.ID
AND TanuloTartozkodasiCimTable.Cimtipusa = 909
WHERE TanugyiAdatok.C_TANKOTELEZETT = IIF(@pTankoteles = 0, 'F', 'T')
ORDER BY TanuloAdatok.C_NYOMTATASINEV
IF @pIsSzulonek = 1 BEGIN
SELECT DISTINCT
ta.*
,GondviseloAdatok.GondviseloNev
,GondviseloAdatok.GondviseloAllandoCim
,GondviseloAdatok.GondviseloTelefon
,GondviseloRokonsagiFoka
FROM #tanuloiAdatok AS ta
LEFT JOIN #GondviseloAdatok GondviseloAdatok ON GondviseloAdatok.TanuloId = ta.TanuloId
WHERE ta.IGAZOLATLAN >= @pIgazolatlanOrakSzama
ORDER BY TANULONEV
END
ELSE BEGIN
SELECT DISTINCT
ta.*
FROM #tanuloiAdatok AS ta
WHERE ta.Igazolatlan >= @pIgazolatlanOrakSzama
ORDER BY TANULONEV
END
--Mulasztások részletezése
SELECT
Mulasztasok.TanuloId
,Mulasztasok.TanuloCsoportId
,Mulasztasok.OsztalyCsoportId
,Mulasztasok.OsztalyCsoportNev
,MulasztasTipus.C_NAME Tipusa
,Mulasztasok.Igazolt
,Mulasztasok.IgazolasTipusa
,Mulasztasok.KesesPercben
,Mulasztasok.Datum
,Mulasztasok.Oraszam
,Mulasztasok.TantargyId
,Mulasztasok.TantargyNev
FROM fnGetDokumentumMulasztasokOsztalyonkentReszletes(@pTanevId, @pOsztalyId, @pIskolaErdekuSzamit, DEFAULT, DEFAULT, DEFAULT, DEFAULT, DEFAULT) Mulasztasok
LEFT JOIN T_DICTIONARYITEMBASE_OSSZES MulasztasTipus ON MulasztasTipus.Id = Mulasztasok.Tipusa
AND MulasztasTipus.C_TANEVID = @pTanevId
INNER JOIN #tanuloiAdatok AS ta ON ta.TanuloId = Mulasztasok.TanuloId
AND ta.IGAZOLATLAN >= @pIgazolatlanOrakSzama
WHERE Mulasztasok.Igazolt = 'F'
--Gondviselo adatok
SELECT * from #GondviseloAdatok AS Gondviselok
LEFT JOIN @Mulasztasok Mulasztasok ON Mulasztasok.TanuloId = Gondviselok.TanuloId
INNER JOIN #tanuloiAdatok AS ta ON ta.TanuloId = Mulasztasok.TanuloId
AND ta.IGAZOLATLAN >= @pIgazolatlanOrakSzama
--Iktatási adatok
INSERT INTO @IktatasAdatok
SELECT
@pOsztalyId
,ocs.C_EVFOLYAMTIPUSA
,ocs.C_FELADATELLATASIHELYID
,ocs.C_KEPZESIFORMA
,o.C_OSZTALYFONOKID
,o.C_TANTERVID
,o.C_SZAKMACSOPORT
,o.C_AGAZAT
,o.C_SZAKKEPESITES
,o.C_RESZSZAKKEPESITES
,ocs.C_KERESZTFELEVES
,ocs.C_ISTECHNIKAI as C_TECHNIKAIOSZTALY
,o.C_NEMZETISEGI
,o.C_KETTANNYELVU
,o.C_NYELVIELOKESZITO
,ocs.C_ISGYOGYPEDAGOGIAILOGOPEDIAI
,o.C_SPORT
,o.C_AJPROGRAM
FROM T_OSZTALYCSOPORT_OSSZES ocs
INNER JOIN T_OSZTALY_OSSZES o ON o.ID = ocs.ID
WHERE ocs.ID = @pOsztalyId AND ocs.TOROLT = 'F'
AND ocs.C_TANEVID = @pTanevId;
SELECT * from @IktatasAdatok;
DROP TABLE #GondviseloAdatok
DROP TABLE #tanuloiAdatok
DROP TABLE #students
END
GO

View file

@ -0,0 +1,506 @@
DROP PROCEDURE IF EXISTS [dbo].[uspGetErtesitoNyomtatvany]
GO
-- =====================================================================
-- Description: értesítõ nyomtatvány (félévi, év végi, I. negyedévi...)
-- =====================================================================
CREATE PROCEDURE [dbo].[uspGetErtesitoNyomtatvany]
@pOsztalyId int
,@pTanevId int
,@pErtekelesTipus int
,@pElmeletGyakorlat bit = 0
,@pKesesTipus int = 1499
,@pElmeletiOraPercben int = 45
,@pGyakorlatiOraPercben int = 45
,@pIskolaErdekuSzamit bit
,@pIsKozossegiSzolgalat bit
,@pTanuloId int = NULL
,@pIsMuveszetOktatasi bit = 0
,@pIsShowTanuloiAtlag bit = 0
,@tanitasiHetekSzamaVegzos int = 32
,@tanitasiHetekSzamaNemVegzos int = 36
,@isAltantargyBeszamitasa bit = 0
,@nyomtatvanyNyelvEnum int = 0
,@kiiratkozottTanulokMegjelenitese bit = 1
AS
BEGIN
SET NOCOUNT ON;
DECLARE
@EsemenyTipus int
,@IdoszakVegeTanevRendje int
,@IdoszakVege date
,@OsztalycsoportVezeto nvarchar(max)
,@OsztalycsoportNev nvarchar(max)
SET @EsemenyTipus =
CASE @pErtekelesTipus
WHEN 1519 THEN 1547 --félévi
WHEN 1520 THEN 1548 --év végi
WHEN 1522 THEN 1549 --I. negyedévi
WHEN 1524 THEN 1550 --II. negyedévi
WHEN 1523 THEN 1551 --III. negyedévi
END
SET @IdoszakVegeTanevRendje =
CASE @pErtekelesTipus
WHEN 1519 THEN 1400 --félévi
WHEN 1520 THEN 1395 --év végi
WHEN 1522 THEN 1403 --I. negyedévi
WHEN 1524 THEN 1400 --II. negyedévi
WHEN 1523 THEN 1404 --III. negyedévi
END
CREATE TABLE #ErtekelesResult (
TanuloId int
,TanuloCsoportId int
,Targy nvarchar(max)
,Jegyzet nvarchar(max)
,Ertekeles nvarchar(max)
,ErtekelesValue int
,ErtekelesJegyzettel nvarchar(max)
,Oraszam float
,RENDEZ1 int
,RENDEZ2 nvarchar(max)
,RENDEZ3 int
,RENDEZ4 int
,RENDEZ5 nvarchar(max)
/*nemzetiségi törzslaphoz kell*/
,ErtekelesTemaIdegenNyelven nvarchar(max)
,ErtekelesSzovegIdegenNyelven nvarchar(max)
,ErtekelesValueIdegenNyelven nvarchar(max)
,ErtekelesOsztalyzatIdegenNyelven nvarchar(max)
,ErtekelesSzazalek nvarchar(max)
,Jeloles nvarchar(max)
,TantargyNevIdegenNyelven nvarchar(max)
/**/
,TantargyId int
,INDEX IX_01 CLUSTERED (TanuloId, TanuloCsoportId)
)
CREATE TABLE #MulasztasResult (
TanuloId int
,TanuloCsoportId int
,Igazolt int
,Igazolatlan int
,ElmeletIgazolt int
,ElmeletIgazolatlan int
,GyakorlatIgazolt int
,GyakorlatIgazolatlan int
,ElmeletOsszes int
,GyakorlatOsszes int
,Osszes int
,INDEX IX_01 CLUSTERED (TanuloId, TanuloCsoportId)
)
CREATE TABLE #TanuloResult (
TANULOID int
,TanuloCsoportId int
,BelepesDatum date
,KilepesDatum date
,TANULONEV nvarchar(max)
,OKTATASIAZONOSITO nvarchar(max)
,TORZSLAPSZAM nvarchar(max)
,SZULHELY nvarchar(max)
,SZULIDO nvarchar(max)
,ANYJANEVE nvarchar(max)
,PRIMARY KEY (TANULOID, TanuloCsoportId, BelepesDatum)
)
SET @IdoszakVege = (SELECT TOP 1 ISNULL(C_DATUM, GETDATE()) FROM T_TANEVRENDJE_OSSZES tr WHERE C_NAPTIPUSA = @IdoszakVegeTanevRendje AND C_TANEVID = @pTanevId AND TOROLT = 'F')
SET @OsztalycsoportNev = (SELECT C_NEV FROM T_OSZTALYCSOPORT_OSSZES WHERE ID = @pOsztalyId)
IF (@pIsMuveszetOktatasi = 0) BEGIN
SET @OsztalycsoportVezeto = (SELECT C_NYOMTATASINEV FROM T_OSZTALY_OSSZES Osztaly INNER JOIN T_FELHASZNALO_OSSZES felhasznalo ON Osztaly.C_OSZTALYFONOKID = felhasznalo.ID WHERE Osztaly.ID = @pOsztalyId)
END
ELSE BEGIN
SET @OsztalycsoportVezeto = (SELECT C_NYOMTATASINEV FROM T_CSOPORT_OSSZES Csoport INNER JOIN T_FELHASZNALO_OSSZES felhasznalo ON Csoport.C_CSOPORTVEZETOID = felhasznalo.ID WHERE Csoport.ID = @pOsztalyId)
END
-- Fejléc
IF @pIsMuveszetOktatasi = 0 BEGIN
SELECT
ia.C_NEV AS IntezmenyNeve
,ia.C_VAROS AS IntezmenyVaros
,dbo.fnGetDokumentumIntezmenyCime(@pTanevId) AS IntezmenyCime
,ia.C_IGAZGATONEVE AS IntezmenyVezeto
,ia.C_OMKOD AS OMKod
,ia.C_TELEFONSZAM AS TELEFON
,ia.C_EMAILCIM AS EMAILCIM
,tv.C_NEV AS TANEV
,ia.C_VAROS AS VAROS
,ofo.C_NYOMTATASINEV AS OSZTALYFONOK
,ofo.ID AS OsztalyFonokId
,ocs.C_NEV AS OSZTALYNEV
,@pOsztalyId AS OsztalyId
,GETDATE() AS Datum
,ocs.C_EVFOLYAMTIPUSA AS EvfolyamTipusa
,ocs.C_FELADATELLATASIHELYID AS FeladatEllatasiHelyId
,o.C_TANTERVID AS TantervId
,ocs.C_KEPZESIFORMA AS KepzesiForma
,o.C_AGAZAT AS Agazat
,o.C_SZAKMACSOPORT AS SzakmaCsoport
,o.C_SZAKKEPESITES AS Szakkepesites
,o.C_RESZSZAKKEPESITES AS Reszszakkepesites
,ocs.C_KERESZTFELEVES AS OJCSJKeresztfeleves
,ocs.C_VEGZOSEVFOLYAM AS CSJVegzosEvfolyamu
,ocs.C_isTECHNIKAI AS OJTechnikaiOsztaly
,o.C_NEMZETISEGI AS OJNemzetisegi
,o.C_KETTANNYELVU AS OJKettannyelvu
,o.C_NYELVIELOKESZITO AS OJNyelviElokeszito
,ocs.C_ISGYOGYPEDAGOGIAILOGOPEDIAI AS OJIsGyogypedagogiaiLogopediai
,o.C_SPORT AS OJSportOsztaly
,o.C_AJPROGRAM AS OJAranyJanosProgram
FROM T_OSZTALYCSOPORT_OSSZES ocs
INNER JOIN T_INTEZMENYADATOK_OSSZES ia ON ocs.C_TANEVID = ia.C_TANEVID and ocs.TOROLT = 'F'
INNER JOIN T_OSZTALY_OSSZES o ON ocs.ID = o.ID AND o.TOROLT = 'F'
LEFT JOIN T_FELHASZNALO_OSSZES ofo on ofo.ID = o.C_OSZTALYFONOKID
INNER JOIN T_TANEV_OSSZES tv ON tv.ID = ocs.C_TANEVID AND tv.TOROLT = 'F'
WHERE ia.TOROLT = 'F'
AND tv.ID = @pTanevId
AND ocs.id = @pOsztalyId
END
ELSE BEGIN
SELECT
T_INTEZMENYADATOK_OSSZES.C_NEV AS IntezmenyNeve
,T_INTEZMENYADATOK_OSSZES.C_VAROS AS IntezmenyVaros
,dbo.fnGetDokumentumIntezmenyCime(@pTanevId) AS IntezmenyCime
,T_INTEZMENYADATOK_OSSZES.C_IGAZGATONEVE AS IntezmenyVezeto
,T_INTEZMENYADATOK_OSSZES.C_OMKOD AS OMKod
,T_INTEZMENYADATOK_OSSZES.C_TELEFONSZAM AS TELEFON
,T_INTEZMENYADATOK_OSSZES.C_EMAILCIM AS EMAILCIM
,T_TANEV_OSSZES.C_NEV AS TANEV
,T_INTEZMENYADATOK_OSSZES.C_VAROS AS VAROS
,ofo.C_NYOMTATASINEV AS CsoportVezeto
,ofo.ID AS CsoportVezetoId
,ocs.C_NEV AS OSZTALYNEV
,@pOsztalyId AS CsoportId
,GETDATE() AS Datum
,ocs.C_EVFOLYAMTIPUSA AS EvfolyamTipusa
,ocs.C_FELADATELLATASIHELYID AS FeladatEllatasiHelyId
,o.C_TIPUSA AS CsoportTipusa
,ocs.C_KERESZTFELEVES AS OJCSJKeresztfeleves
,ocs.C_VEGZOSEVFOLYAM AS CSJVegzosEvfolyamu
FROM T_INTEZMENYADATOK_OSSZES
INNER JOIN T_OSZTALYCSOPORT_OSSZES ocs on ocs.id = @pOsztalyId and ocs.C_INTEZMENYID = T_INTEZMENYADATOK_OSSZES.C_INTEZMENYID and ocs.C_TANEVID = T_INTEZMENYADATOK_OSSZES.C_TANEVID and ocs.TOROLT = 'F'
INNER JOIN T_CSOPORT_OSSZES o ON ocs.ID = o.ID AND o.torolt='F'
LEFT JOIN T_FELHASZNALO_OSSZES ofo on ofo.ID = o.C_CSOPORTVEZETOID
INNER JOIN T_TANEV_OSSZES ON T_TANEV_OSSZES.ID = T_INTEZMENYADATOK_OSSZES.C_TANEVID AND T_TANEV_OSSZES.C_INTEZMENYID = T_INTEZMENYADATOK_OSSZES.C_INTEZMENYID AND T_TANEV_OSSZES.TOROLT = 'F'
WHERE T_INTEZMENYADATOK_OSSZES.TOROLT = 'F'
AND T_TANEV_OSSZES.ID = @pTanevId
END
--PRINT ' TANULÓK ---------------------------------------------------------------'
IF @pTanuloId IS NOT NULL BEGIN
INSERT INTO #TanuloResult
SELECT
dk.TanuloId
,dk.TanuloCsoportId
,dk.BelepesDatum
,dk.KilepesDatum
,IIF(@nyomtatvanyNyelvEnum = 0, fh.C_NYOMTATASINEV, fh.C_UTONEV + ' ' + fh.C_VEZETEKNEV)
,fh.C_OKTATASIAZONOSITO
,dk.Torzslapszam
,fh.C_SZULETESIHELY
,dbo.fnGetDokumentumDatumFormatum(fh.C_SZULETESIDATUM)
,fh.C_ANYJANEVE
FROM fnGetDokumentumOsztalyokCsoportokTanuloi(@pTanevId, @pOsztalyId, 'T') dk
INNER JOIN T_FELHASZNALO_OSSZES fh ON fh.Id = dk.TanuloId
WHERE dk.TanuloId = @pTanuloId
AND (@kiiratkozottTanulokMegjelenitese = 1 OR (KilepesDatum IS NULL OR KilepesDatum >= @IdoszakVege))
SELECT
TANULOID
,TanuloCsoportId
,BelepesDatum
,KilepesDatum
,TANULONEV
,OKTATASIAZONOSITO
,TORZSLAPSZAM
,SZULHELY
,SZULIDO
,ANYJANEVE
,@OsztalycsoportNev AS Osztaly
,@pOsztalyId AS OsztalyId
,@OsztalycsoportVezeto AS Osztalyfonok
FROM #TanuloResult
ORDER BY TANULONEV
END
ELSE BEGIN
INSERT INTO #TanuloResult
SELECT
dk.TanuloId
,dk.TanuloCsoportId
,dk.BelepesDatum
,dk.KilepesDatum
,IIF(@nyomtatvanyNyelvEnum = 0, fh.C_NYOMTATASINEV, fh.C_UTONEV + ' ' + fh.C_VEZETEKNEV)
,fh.C_OKTATASIAZONOSITO
,dk.Torzslapszam
,fh.C_SZULETESIHELY
,dbo.fnGetDokumentumDatumFormatum(fh.C_SZULETESIDATUM)
,fh.C_ANYJANEVE
FROM fnGetDokumentumOsztalyokCsoportokTanuloi(@pTanevId, @pOsztalyId, 'T') dk
INNER JOIN T_FELHASZNALO_OSSZES fh ON fh.Id = dk.TanuloId
WHERE @kiiratkozottTanulokMegjelenitese = 1 OR (KilepesDatum IS NULL OR KilepesDatum >= @IdoszakVege)
SELECT
TANULOID
,TanuloCsoportId
,BelepesDatum
,KilepesDatum
,TANULONEV
,OKTATASIAZONOSITO
,TORZSLAPSZAM
,SZULHELY
,SZULIDO
,ANYJANEVE
,@OsztalycsoportNev AS Osztaly
,@pOsztalyId AS OsztalyId
,@OsztalycsoportVezeto AS Osztalyfonok
FROM #TanuloResult
ORDER BY TANULONEV
END
--PRINT ' ÉRTÉKELÉSEK ---------------------------------------------------------------'
INSERT INTO #ErtekelesResult (
TanuloId
,TanuloCsoportId
,Targy
,Jegyzet
,Ertekeles
,ErtekelesValue
,ErtekelesJegyzettel
,Oraszam
,RENDEZ1
,RENDEZ2
,RENDEZ3
,RENDEZ4
,RENDEZ5
,ErtekelesTemaIdegenNyelven
,ErtekelesSzovegIdegenNyelven
,ErtekelesValueIdegenNyelven
,ErtekelesOsztalyzatIdegenNyelven
,ErtekelesSzazalek
,Jeloles
,TantargyNevIdegenNyelven
,TantargyId
) EXEC uspGetDokumentumErtekelesek
@osztalyId = @pOsztalyId
,@tanevId = @pTanevId
,@ertekelesTipus = @pErtekelesTipus
,@isMuveszetOktatasi = @pIsMuveszetOktatasi
,@tanitasiHetekSzamaVegzos = @tanitasiHetekSzamaVegzos
,@tanitasiHetekSzamaNemVegzos = @tanitasiHetekSzamaNemVegzos
,@isAltantargyBeszamitasa = @isAltantargyBeszamitasa
,@nyomtatvanyNyelvEnum = @nyomtatvanyNyelvEnum
,@idegenNyelvId = 0
SELECT
ertekeles.TanuloId
,ertekeles.TanuloCsoportId
,Targy
,TantargyId
,Jegyzet
,Ertekeles
,ErtekelesValue
,ErtekelesJegyzettel
,Oraszam
,RENDEZ1
,RENDEZ2
,RENDEZ3
,RENDEZ4
,RENDEZ5
,'' TanarNev
FROM #ErtekelesResult ertekeles
INNER JOIN #TanuloResult Tanulok ON Tanulok.TANULOID = ertekeles.TanuloId AND Tanulok.TanuloCsoportId = ertekeles.TanuloCsoportId
ORDER BY ertekeles.TanuloId, RENDEZ1, RENDEZ2, RENDEZ3, RENDEZ4, RENDEZ5
IF(@pIsShowTanuloiAtlag = 1) BEGIN
PRINT 'Tanuló Átlaga'
SELECT
atlag.TanuloId TanuloId
,atlag.TanuloCsoportId
,REPLACE(CAST(AVG(ErtekelesValue * 1.0) AS DECIMAL(10,2)), '.', ',') ErtekelesAtlag
FROM #ErtekelesResult atlag
INNER JOIN #TanuloResult Tanulok ON Tanulok.TANULOID = atlag.TanuloId AND Tanulok.TanuloCsoportId = atlag.TanuloCsoportId
GROUP BY atlag.TanuloId, atlag.TanuloCsoportId
END
--PRINT 'MULASZTÁSOK ---------------------------------------------------------------'
INSERT INTO #MulasztasResult (
TanuloId
,TanuloCsoportId
,Igazolt
,Igazolatlan
,ElmeletIgazolt
,ElmeletIgazolatlan
,GyakorlatIgazolt
,GyakorlatIgazolatlan
,ElmeletOsszes
,GyakorlatOsszes
,Osszes
) EXEC sp_GetDokumentumMulasztasok
@osztalyId = @pOsztalyId
,@tanevId = @pTanevId
,@elmeletiOraPercben = @pElmeletiOraPercben
,@gyakorlatiOraPercben = @pGyakorlatiOraPercben
,@ertekelesTipus = @pErtekelesTipus
,@iskolaErdekuSzamit = @pIskolaErdekuSzamit
,@isMuveszetOktatasi = @pIsMuveszetOktatasi
SELECT
mu.TanuloId
,mu.TanuloCsoportId
,Igazolt
,Igazolatlan
,ElmeletIgazolt
,ElmeletIgazolatlan
,GyakorlatIgazolt
,GyakorlatIgazolatlan
,ElmeletOsszes
,GyakorlatOsszes
,Osszes
FROM #MulasztasResult mu
INNER JOIN #TanuloResult Tanulok ON Tanulok.TANULOID = mu.TanuloId AND Tanulok.TanuloCsoportId = mu.TanuloCsoportId
--PRINT 'MENTESSÉGEK ---------------------------------------------------------------'
SELECT
Mentessegek.TanuloId
,Mentessegek.TanuloCsoportId
,TantargyNev
,MentessegOka
FROM fnGetDokumentumTanuloMentessegei(@pTanevId, @pOsztalyId, DEFAULT) Mentessegek
INNER JOIN #TanuloResult Tanulok ON Tanulok.TANULOID = Mentessegek.TanuloId AND Tanulok.TanuloCsoportId = Mentessegek.TanuloCsoportId
--PRINT 'TANULÓ elérhetőségei ---------------------------------------------------------------'
SELECT
GondviseloNev GondviseloNeve
,Gondviselo.TanuloId
FROM fnGetDokumentumGondviselok (@pOsztalyId, @pTanevId, 'F', 'T') Gondviselo
INNER JOIN #TanuloResult Tanulok ON Tanulok.TANULOID = Gondviselo.TanuloId
SELECT DISTINCT
TanuloTable.TanuloId AS tanuloID
,C_IRANYITOSZAM + ' ' + C_VAROS + ', ' + C_KOZTERULET + ' ' + kozterulet.C_NAME + ' ' + C_HAZSZAM AS CimText
,cimTipus.C_NAME AS CimTipusa
FROM #TanuloResult TanuloTable
INNER JOIN T_CIM_OSSZES cim ON cim.C_FELHASZNALOID = TanuloTable.TanuloId
INNER JOIN T_DICTIONARYITEMBASE_OSSZES kozterulet ON kozterulet.Id = C_KOZTERULETJELLEGE AND kozterulet.C_TANEVID = @pTanevId
INNER JOIN T_DICTIONARYITEMBASE_OSSZES cimTipus ON cim.C_CIMTIPUSA = cimTipus.ID AND cimTipus.C_TANEVID = @pTanevId
WHERE cim.TOROLT = 'F'
AND cim.C_GONDVISELOID IS NULL
AND cim.C_ALAPERTELMEZETT = 'T'
AND cim.C_TANEVID = @pTanevId
--Tanuló összefüggő szakmai gyakorlat
SELECT
SzakmaiGyakorlat.TanuloId
,SzakmaiGyakorlat.TanuloCsoportId
,isTeljesitett
,Ertekeles
,Megjegyzes
,Datum
FROM fnGetDokumentumOsszefuggoSzakmaiGyakorlat(@pTanevId, @pOsztalyId) SzakmaiGyakorlat
INNER JOIN #TanuloResult Tanulok ON Tanulok.TANULOID = SzakmaiGyakorlat.TanuloId AND Tanulok.TanuloCsoportId = SzakmaiGyakorlat.TanuloCsoportId
--PRINT 'Osztály adatok az iktatáshoz ---------------------------------------------------------------'
IF @pIsMuveszetOktatasi = 0 BEGIN
SELECT
f.C_NYOMTATASINEV AS Osztalyfonok
,f.ID AS OsztalyfonokId
,ocs.C_NEV AS Osztalynev
,@pOsztalyId AS OsztalyId
,ocs.C_EVFOLYAMTIPUSA AS EvfolyamTipusa
,ocs.C_FELADATELLATASIHELYID AS FeladatEllatasiHelyId
,o.C_TANTERVID AS TantervId
,ocs.C_KEPZESIFORMA AS KepzesiForma
,o.C_AGAZAT AS Agazat
,o.C_SZAKMACSOPORT AS SzakmaCsoport
,o.C_SZAKKEPESITES AS Szakkepesites
,o.C_RESZSZAKKEPESITES AS Reszszakkepesites
,ocs.C_KERESZTFELEVES AS OJCSJKeresztfeleves
,ocs.C_VEGZOSEVFOLYAM AS CSJVegzosEvfolyamu
,ocs.C_isTECHNIKAI AS OJTechnikaiOsztaly
,o.C_NEMZETISEGI AS OJNemzetisegi
,o.C_KETTANNYELVU AS OJKettannyelvu
,o.C_NYELVIELOKESZITO AS OJNyelviElokeszito
,ocs.C_ISGYOGYPEDAGOGIAILOGOPEDIAI AS OJIsGyogypedagogiaiLogopediai
,o.C_SPORT AS OJSportOsztaly
,o.C_AJPROGRAM AS OJAranyJanosProgram
FROM T_OSZTALYCSOPORT_OSSZES ocs
INNER JOIN T_OSZTALY_OSSZES o ON o.ID = ocs.id
LEFT JOIN T_FELHASZNALO_OSSZES f ON f.ID = o.C_OSZTALYFONOKID
WHERE ocs.ID = @pOsztalyId
AND ocs.C_TANEVID = @pTanevId
AND ocs.TOROLT = 'F';
END
ELSE BEGIN
SELECT
f.C_NYOMTATASINEV AS CsoportVezeto
,f.ID AS CsoportVezetoId
,ocs.C_NEV AS OSZTALYNEV
,@pOsztalyId AS CsoportId
,ocs.C_EVFOLYAMTIPUSA AS EvfolyamTipusa
,ocs.C_FELADATELLATASIHELYID AS FeladatEllatasiHelyId
,ocs.C_KERESZTFELEVES AS OJCSJKeresztfeleves
,ocs.C_VEGZOSEVFOLYAM AS CSJVegzosEvfolyamu
,cs.C_TIPUSA AS CsoportTipusa
FROM T_OSZTALYCSOPORT_OSSZES ocs
INNER JOIN T_CSOPORT_OSSZES cs ON cs.ID = ocs.id
LEFT JOIN T_FELHASZNALO_OSSZES f ON f.ID = cs.C_CSOPORTVEZETOID
WHERE ocs.ID = @pOsztalyId
AND ocs.C_TANEVID = @pTanevId
AND ocs.TOROLT = 'F';
END
--Bejegyzések
SELECT
TanuloTable.TanuloId
,TanuloTable.TanuloCsoportId
,'A tanév során ' + CAST(SUM(Oraszam) AS nvarchar(max)) + ' óra közösségi szolgálatot teljesített.' AS Bejegyzes
FROM fnGetDokumentumKozossegiSzolgalatOsztalyonkent (@pTanevId, @pOsztalyId, 0) bejegyzes
INNER JOIN #TanuloResult TanuloTable ON bejegyzes.TanuloId = TanuloTable.TanuloId AND bejegyzes.TanuloCsoportId = TanuloTable.TanuloCsoportId
WHERE @pIsKozossegiSzolgalat = 1
-- AND ((@IdoszakVegeTanevRendje = 1395) OR (IntervallumVege <= @IdoszakVege OR @IdoszakVege BETWEEN IntervallumKezdete AND IntervallumVege))
GROUP BY TanuloTable.TanuloId, TanuloTable.TanuloCsoportId
UNION
SELECT
bejegyzes.TanuloId AS TanuloId
,TanuloCsoportId
,Tartalom AS Bejegyzes
FROM fnGetDokumentumTanulokFeljegyzesei(@pTanevId, @pOsztalyId, 0) bejegyzes
INNER JOIN #TanuloResult TanuloTable ON bejegyzes.TanuloId = TanuloTable.TanuloId
WHERE Tipusa IN (1546, @EsemenyTipus)
AND BelepesDatum <= Datum
AND (KilepesDatum IS NULL OR KilepesDatum > Datum)
-- Zaradekok
IF (@pErtekelesTipus IN (1519, 1520))
BEGIN
EXEC dbo.uspGetDokumentumTanuloZaradekai
@tanevId = @pTanevId
,@osztalyId = @pOsztalyId
,@kellVegzaradek = 1
,@kellAtsorolasiZaradek = 1
,@idegenNyelvId = 0
END
ELSE
BEGIN
SELECT
NULL AS TanuloId
,NULL AS TanuloCsoportId
,'' AS Bejegyzes
,'' AS BejegyzesIdegenNyelven
END
END
GO

View file

@ -0,0 +1,262 @@
DROP PROCEDURE IF EXISTS [dbo].[uspGetHaladasiNaploAdatok]
GO
CREATE PROCEDURE [dbo].[uspGetHaladasiNaploAdatok]
@tanevID int,
@osztalyID int = null,
@tanarID int = null,
@feladatKategoriaId int = null
AS
BEGIN
DECLARE @cTantargyId INT = 0
DECLARE @cOsztalyCsoportId INT = 0
DECLARE @cTanarId INT = 0
DECLARE @foglalkozasNev VARCHAR(255)
SET NOCOUNT ON;
CREATE TABLE #Foglalkozasok (
Nev nvarchar(511) COLLATE Hungarian_CI_AI
,C_TANTARGYID int
,C_OSZTALYCSOPORTID int
,C_INTEZMENYID int
,C_TANARID int
,VanTTF char(1)
)
INSERT INTO #Foglalkozasok
SELECT DISTINCT
ocs.C_NEV + ' - ' + tt.C_NEV AS Nev
,tn.C_TANTARGYID
,tn.C_OSZTALYCSOPORTID
,tn.C_INTEZMENYID
,tn.C_TANARID AS C_TANARID
,IIF(f.ID IS NULL,'F','T') AS VanTTF
FROM T_TANITASIORA_OSSZES tn
LEFT JOIN T_FOGLALKOZAS_OSSZES f ON f.C_TANTARGYID = tn.C_TANTARGYID AND f.C_OSZTALYCSOPORTID = tn.C_OSZTALYCSOPORTID AND f.C_TANARID = tn.C_TANARID AND f.TOROLT = 'F'
INNER JOIN T_OSZTALYCSOPORT_OSSZES OCS on OCS.ID = tn.C_OSZTALYCSOPORTID and OCS.TOROLT = 'F' AND (OCS.C_FELADATKATEGORIAID = @feladatKategoriaId OR @feladatKategoriaId IS NULL)
INNER JOIN T_TANTARGY_OSSZES tt on tt.ID = tn.C_TANTARGYID and tt.TOROLT = 'F'
LEFT JOIN (SELECT ID FROM fnGetDokumentumKapcsolodoOsztalycsoportok(@osztalyID, @tanevID, 0)) kocs ON kocs.ID = ocs.ID AND @osztalyID IS NOT NULL
WHERE tn.TOROLT = 'F'
AND tn.C_TANEVID = @tanevID
AND (
((@osztalyID IS NOT NULL) AND (kocs.ID IS NOT NULL))
OR
((@tanarID IS NOT NULL) AND tn.C_TANARID = @tanarID)
)
ORDER BY VanTTF DESC, Nev ASC
SELECT
IIF(fog.VanTTF = 'F','Egyedi-','') + Nev + ' - ' + felh.C_NYOMTATASINEV AS Nev
,fog.VanTTF AS VanTTF
FROM #Foglalkozasok fog
INNER JOIN T_FELHASZNALO_OSSZES felh on fog.C_TANARID = felh.ID
ORDER BY fog.VanTTF DESC, Nev ASC
DECLARE @sorszamTable TABLE (
tanitasiOraId int-- PRIMARY KEY
,evesOraszam int
,foglalkozasId int
)
INSERT INTO @sorszamTable (tanitasiOraId, evesOraszam)
SELECT s.Id, s.EvesSorszam 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 C_TANTARGYID, C_OSZTALYCSOPORTID, C_TANARID FROM #Foglalkozasok ORDER BY VanTTF DESC, Nev ASC
OPEN foglalkozasCursor
FETCH NEXT FROM foglalkozasCursor into @cTantargyId, @cOsztalyCsoportId, @cTanarId
WHILE @@FETCH_STATUS = 0 BEGIN
SELECT DISTINCT
CASE
WHEN tn.C_MEGTARTOTT = 'T' THEN CAST(s.evesOraszam AS nvarchar(max))
ELSE '-'
END AS OraSorszam
,fh.C_NYOMTATASINEV AS TanarNev
,fh.C_OKTATASIAZONOSITO AS TanarOktAzon
,tn.C_TEMA AS Tema
,IIF(tn.C_HELYETTESITOTANARID IS NOT NULL, 'T', 'F') AS Helyettesitett
,FORMAT(tn.C_DATUM, 'yyyy.MM.dd.') AS Datum
,tn.C_ORASZAM AS OraSzam
,tn.C_MEGJEGYZES AS Megjegyzes
,ISNULL(tn.C_HAZIFELADAT,hf.C_FELADATSZOVEGE) AS HaziFeladat
,tn.C_TULORA AS TulOra
,tn.C_TAMOPORA AS TamopOra
,tn.C_NEMSZAKRENDSZERUORA AS NemszakrendszeruOra
,tn.C_IKTTANORA AS IktOra
,tn.C_NEMZETISEGIORA AS NemzetisegiOra
,tn.C_ISFELNOTTOKTATASISZERZODES AS IsFelnottoktatasiSzerzodes
,tn.C_MINDENNAPOSTESTNEVELES AS TestnevelesOra
,tn.C_IPRTANORA AS IprOra
,tn.C_DIFFERENCIALT AS DifferencialtOra
,tn.C_KOOPERATIV AS KooperativOra
,tn.C_MERES AS MeresOra
,tn.C_DRAMA AS DramaOra
,tn.C_PARHUZAMOSORA AS ParhuzamosOra
,tn.C_TIOP12 AS TiopOra
,tn.C_VEKOP73317 AS VEKOP73317
,tn.C_KAPORA AS KAPOra
,tn.C_BONTOTT AS Bontott
,tn.C_MULTIKULTURALISORA AS Multikulturalis
,tn.C_EFOP32317 AS EFOP32317
,tn.C_GINOP623 AS GINOP623
,tn.C_EFOP31716 AS EFOP31716
,tn.C_EFOP33717 AS EFOP33717
,tn.C_TIOP1111212012001 AS TIOP1111212012001
,tn.C_EFOP23517 AS EFOP23517
-- Komplex alapprogram adatok
,tn.C_ISDFHTORA AS DFHTora
,tn.C_ISDFHTKIPORA AS DFHTKIPora
,tn.C_KIPORA KIPOra
,tn.C_ISTEORAD AS TEorad
,tn.C_ISRAHANGOLODAS AS Rahangolodas
,tn.C_KOMPLEXORA AS Komplexora
,tn.C_ISDIGITALISALAPUALPROGRAM AS DigitalisAlapuAlprogram
,tn.C_ISTESTMOZGASALAPUALPROGRAM AS TestmozgasAlapuAlprogram
,tn.C_ISELETGYAKORLATALAPUALPROGRA AS EletGyakorlatAlapuAlprogram
,tn.C_ISMUVESZETALAPUALPROGRAM AS MuveszetAlapuAlprogram
,tn.C_ISLOGIKAALAPUALPROGRAM AS LogikaiAlapuAlprogram
FROM T_TANITASIORA_OSSZES tn
INNER JOIN T_FELHASZNALO_OSSZES fh ON fh.ID = tn.C_TANARID
LEFT JOIN @sorszamTable s ON s.tanitasiOraId = tn.ID
LEFT JOIN T_HAZIFELADATOK_OSSZES hf ON hf.C_TANITASIORAID = tn.ID AND hf.TOROLT = 'F'
WHERE
tn.TOROLT = 'F'
AND tn.C_TANEVID = @tanevID
AND tn.C_TANARID = @cTanarId
AND tn.C_TANTARGYID = @cTantargyId
AND tn.C_OSZTALYCSOPORTID = @cOsztalyCsoportId
ORDER BY Datum
FETCH NEXT FROM foglalkozasCursor
INTO @cTantargyId, @cOsztalyCsoportId, @cTanarId
END
CLOSE foglalkozasCursor
DEALLOCATE foglalkozasCursor
IF (SELECT COUNT(Nev) FROM #Foglalkozasok) = 0 BEGIN
DECLARE @nincsAdat TABLE (
OraSorszam nvarchar(max)
,TanarNev nvarchar(1)
,TanarOktAzon nvarchar(1)
,Tema nvarchar(1)
,Helyettesitett nvarchar(1)
,Datum datetime
,OraSzam int
,Megjegyzes nvarchar(1)
,HaziFeladat nvarchar(1)
,TulOra char
,TamopOra char
,NemszakrendszeruOra char
,IktOra char
,NemzetisegiOra char
,TestnevelesOra char
,IprOra char
,DifferencialtOra char
,KooperativOra char
,MeresOra char
,DramaOra char
,ParhuzamosOra char
,TiopOra char
,VEKOP73317 char
,KAPOra char
,Bontott char
,Multikulturalis char
,EFOP32317 char
,GINOP623 char
,EFOP31716 char
,EFOP33717 char
,TIOP1111212012001 char
,EFOP23517 char
-- Komplex alapprogram adatok
,DFHTora char
,DFHTKIPora char
,KIPOra char
,TEorad char
,Rahangolodas char
,Komplexora char
,DigitalisAlapuAlprogram char
,TestmozgasAlapuAlprogram char
,EletGyakorlatAlapuAlprogram char
,MuveszetAlapuAlprogram char
,LogikaiAlapuAlprogram char
)
SELECT * FROM @nincsAdat;
END
-- Iktatás adatok
IF @tanarID IS NOT NULL BEGIN
SELECT
f.ID AS PedagogusId
,f.C_OKTATASIAZONOSITO AS PedagogusOktAzon
,mua.C_FELADATELLATASIHELYID AS FeladatEllatasiHelyId
FROM T_FELHASZNALO_OSSZES AS f
LEFT JOIN T_MUNKAUGYIADATOK_OSSZES AS mua ON mua.C_ALKALMAZOTTID = f.ID
WHERE f.ID = @tanarID
AND f.C_TANEVID = @tanevID
END
IF @osztalyID IS NOT NULL BEGIN
DECLARE @isCsoport INT = (SELECT COUNT(ID) FROM T_CSOPORT_OSSZES WHERE ID = @osztalyID)
IF @isCsoport = 0 BEGIN
SELECT
ocs.ID AS OsztalyId
,o.C_OSZTALYFONOKID AS OsztalyfonokId
,ocs.C_EVFOLYAMTIPUSA AS EvfolyamTipusa
,ocs.C_FELADATELLATASIHELYID AS FeladatEllatasiHelyId
,o.C_TANTERVID AS TantervId
,ocs.C_KEPZESIFORMA AS KepzesiForma
,o.C_AGAZAT AS Agazat
,o.C_SZAKMACSOPORT AS SzakmaCsoport
,o.C_SZAKKEPESITES AS Szakkepesites
,o.C_RESZSZAKKEPESITES AS Reszszakkepesites
,ocs.C_KERESZTFELEVES AS OJCSJKeresztfeleves
,ocs.C_VEGZOSEVFOLYAM AS CSJVegzosEvfolyamu
,ocs.C_ISTECHNIKAI AS OJTechnikaiOsztaly
,o.C_NEMZETISEGI AS OJNemzetisegi
,o.C_KETTANNYELVU AS OJKettannyelvu
,o.C_NYELVIELOKESZITO AS OJNyelviElokeszito
,ocs.C_ISGYOGYPEDAGOGIAILOGOPEDIAI AS OJIsGyogypedagogiaiLogopediai
,o.C_SPORT AS OJSportOsztaly
,o.C_AJPROGRAM AS OJAranyJanosProgram
FROM T_OSZTALYCSOPORT_OSSZES ocs
INNER JOIN T_OSZTALY_OSSZES AS o ON ocs.id = o.ID
WHERE ocs.TOROLT='F'
AND ocs.ID = @osztalyId
AND ocs.C_TANEVID = @tanevId
END
ELSE BEGIN
SELECT
ocs.ID AS CsoportId
,cs.C_CSOPORTVEZETOID AS CsoportvezetoId
,cs.C_TIPUSA AS CsoportTipusa
,ISNULL(ocs.C_EVFOLYAMTIPUSA, 1296) AS EvfolyamTipusa -- 1296 = Na
,ocs.C_FELADATELLATASIHELYID AS FeladatEllatasiHelyId
,ocs.C_KERESZTFELEVES AS OJCSJKeresztfeleves
,ocs.C_VEGZOSEVFOLYAM AS CSJVegzosEvfolyamu
FROM T_OSZTALYCSOPORT_OSSZES AS ocs
INNER JOIN T_CSOPORT_OSSZES cs ON cs.ID = ocs.ID
WHERE ocs.TOROLT = 'F'
AND ocs.ID = @osztalyID
AND ocs.C_TANEVID = @tanevID
END
SELECT DISTINCT
felh.ID AS TanarId
,felh.C_OKTATASIAZONOSITO AS TanarOktAzon
FROM #Foglalkozasok fogl
INNER JOIN T_FELHASZNALO_OSSZES felh ON felh.ID = fogl.C_TANARID
END
DROP TABLE #Foglalkozasok
END
GO

View file

@ -0,0 +1,92 @@
DROP PROCEDURE IF EXISTS uspGetIskolalatogatasiIgazolas
GO
CREATE PROCEDURE uspGetIskolalatogatasiIgazolas
@osztalyId int
,@tanevId int
AS BEGIN
SET NOCOUNT ON;
-- fejléc
SELECT
IntezmenyAdatok.C_NEV AS IntezmenyNeve
,IntezmenyAdatok.C_IGAZGATONEVE AS IGAZGATONEVE
,IntezmenyAdatok.C_VAROS AS IntezmenyVaros
,dbo.fnGetDokumentumIntezmenyCime(@tanevId) AS IntezmenyCime
,C_OSZTALYFONOKID AS PartnerID
,KepzesTipus.C_NAME AS KepzesForma
,Tanev.C_NEV AS TANEV
,ocs.C_NEV AS Osztaly
,ocs.ID AS OsztalyId
,ocs.C_EVFOLYAMTIPUSA AS EvfolyamTipusa
,ocs.C_FELADATELLATASIHELYID AS FeladatEllatasiHelyId
,ocs.C_KEPZESIFORMA AS KepzesiForma
,Osztaly.C_OSZTALYFONOKID AS OsztalyFonokId
,Osztaly.C_TANTERVID AS TantervId
,ocs.C_KERESZTFELEVES AS OJCSJKeresztfeleves
,ocs.C_ISTECHNIKAI AS OJTechnikaiOsztaly
,Osztaly.C_NEMZETISEGI AS OJNemzetisegi
,Osztaly.C_KETTANNYELVU AS OJKettannyelvu
,Osztaly.C_NYELVIELOKESZITO AS OJNyelviElokeszito
,ocs.C_ISGYOGYPEDAGOGIAILOGOPEDIAI AS OJIsGyogypedagogiaiLogopediai
,Osztaly.C_SPORT AS OJSportOsztaly
,Osztaly.C_AJPROGRAM AS OJAranyJanosProgram
,Osztaly.C_SZAKMACSOPORT AS SzakmaCsoport
,Osztaly.C_AGAZAT AS Agazat
,Osztaly.C_SZAKKEPESITES AS Szakkepesites
,Osztaly.C_RESZSZAKKEPESITES AS Reszszakkepesites
FROM T_INTEZMENYADATOK_OSSZES IntezmenyAdatok
INNER JOIN T_TANEV_OSSZES Tanev ON Tanev.ID = IntezmenyAdatok.C_TANEVID
AND Tanev.TOROLT = 'F'
INNER JOIN T_OSZTALYCSOPORT_OSSZES ocs ON ocs.ID = @osztalyId
AND ocs.C_TANEVID = IntezmenyAdatok.C_TANEVID
AND ocs.TOROLT = 'F'
INNER JOIN T_OSZTALY_OSSZES Osztaly ON Osztaly.C_ALTANEVID = IntezmenyAdatok.C_TANEVID
AND Osztaly.ID = ocs.ID
AND Osztaly.TOROLT = 'F'
INNER JOIN T_DICTIONARYITEMBASE_OSSZES KepzesTipus ON KepzesTipus.ID = ocs.C_KEPZESIFORMA
AND KepzesTipus.C_TANEVID = IntezmenyAdatok.C_TANEVID
AND KepzesTipus.TOROLT = 'F'
WHERE IntezmenyAdatok.TOROLT = 'F'
AND IntezmenyAdatok.C_TANEVID = @tanevId
-- tanulók
SELECT
Felhasznalo.C_NYOMTATASINEV AS TanuloNev
,Felhasznalo.C_OKTATASIAZONOSITO AS OktatasiAzonosito
,dbo.fnGetDokumentumDatumFormatum(Felhasznalo.C_SZULETESIDATUM) AS SzuletesiIdo
,Felhasznalo.C_SZULETESIHELY AS SzuletesiHely
,Felhasznalo.C_ANYJANEVE AS AnyjaNeve
,dbo.fnGetDokumentumDatumFormatum(TanugyiAdatok.C_NYILVANTARTASKEZDETE) AS JogviszonyKezdete
,dbo.fnGetDokumentumDatumFormatum(TanugyiAdatok.C_JOGVISZONYVARHATOBEFEJEZESE) AS JogviszonyVarhatoBefejezese
,dbo.fnGetDokumentumDatumFormatum(TanuloCsoport.C_KILEPESDATUM) AS KilepesDatum
,IIF(TanuloCsoport.C_KILEPESDATUM IS NOT NULL AND TanuloCsoport.C_KILEPESDATUM < GETDATE(), 'T', 'F') AS IsKilepett
,Felhasznalo.ID AS TanuloId
,ocs.ID AS OsztalyId
,ocs.C_NEV AS Osztaly
,KepzesTipus.C_NAME AS KepzesForma
FROM fnGetDokumentumOsztalyokCsoportokTanuloi(@tanevId, @osztalyId, 'T') s
INNER JOIN T_FELHASZNALO_OSSZES Felhasznalo ON Felhasznalo.Id = s.TanuloId
INNER JOIN T_TANULOCSOPORT_OSSZES TanuloCsoport ON TanuloCsoport.c_tanuloid = s.TanuloId
AND TanuloCsoport.ID = s.TanuloCsoportId
AND TanuloCsoport.TOROLT = 'F'
AND TanuloCsoport.C_TANEVID = @tanevId
AND TanuloCsoport.C_OSZTALYCSOPORTID = @osztalyId
AND TanuloCsoport.C_BELEPESDATUM < GETDATE()
INNER JOIN T_TANULOTANUGYIADATOK_OSSZES TanugyiAdatok ON TanugyiAdatok.C_TANULOCSOPORTID = TanuloCsoport.Id
AND TanugyiAdatok.TOROLT = 'F'
AND TanugyiAdatok.C_TANEVID = @tanevId
INNER JOIN T_OSZTALY_OSSZES Osztaly ON Osztaly.ID = TanuloCsoport.C_OSZTALYCSOPORTID
AND Osztaly.TOROLT = 'F'
AND Osztaly.C_ALTANEVID = TanuloCsoport.C_TANEVID
INNER JOIN T_OSZTALYCSOPORT_OSSZES ocs ON ocs.ID = TanuloCsoport.C_OSZTALYCSOPORTID
AND ocs.TOROLT = 'F'
AND ocs.C_TANEVID = TanuloCsoport.C_TANEVID
INNER JOIN T_DICTIONARYITEMBASE_OSSZES KepzesTipus ON KepzesTipus.ID = ocs.C_KEPZESIFORMA
AND KepzesTipus.C_TANEVID = TanuloCsoport.C_TANEVID
AND KepzesTipus.TOROLT = 'F'
ORDER BY Felhasznalo.C_NYOMTATASINEV
END
GO

View file

@ -0,0 +1,176 @@
DROP PROCEDURE IF EXISTS uspGetNemNaplozottOrarendiOrak
GO
CREATE PROCEDURE uspGetNemNaplozottOrarendiOrak
@IntezmenyId int
,@TanevId int
,@IdoszakKezdete datetime
,@IdoszakVege datetime
,@TanarId int = NULL
,@OsztalyCsoportId int = NULL
,@TantargyId int = NULL
,@CsakAHelyettesiteseim bit = 0
,@HelyettesitettOraimIs bit = 0
,@pFeladatKategoriaId int = NULL
,@pDatum datetime = NULL
,@pOraszam int = NULL
,@pIdopont datetime = NULL
,@pFeladatEllatasiHelyId int = NULL
AS BEGIN
SET NOCOUNT ON;
CREATE TABLE #NemNaplozottOrak (
Id int
,ORARENDIID int
,Bontott char (1)
,Hetirend int
,HetNapja int
,HetSorszam int
,ErvenyessegKezdete datetime
,ErvenyessegVege datetime
,OraKezdete datetime
,OraKezdeteDate date
,OraKezdeteTimeText varchar(5)
,OraVege datetime
,Oraszam int
,TargyNev nvarchar (300)
,TargyNevForMobile nvarchar (300)
,TargyNevForNyomtatvany nvarchar (300)
,TargykategoriaID int
,Megtartott char (1)
,CsengetesiRendOraID int
,CsengetesiRendID int
,MaxNapiOraszam int
,OsztalyNev nvarchar (255)
,MegjelenesOka nvarchar (300)
,TanarNev nvarchar (255)
,TanarOktAzon nvarchar (20)
,TeremNev nvarchar (255)
,OraTipus nvarchar (200)
,Hianyzas char (1)
,Keses char (1)
,Ures char (1)
,HelyettesitoTanarID int
,HelyettesitoTanarNev nvarchar (255)
,HelyettesitesId int
,TanarID int
,AdminAltalKiirt char (1)
,GroupId int
,Tema nvarchar (max)
,TantargyId int
,OsztCsopId int
,HelyettesitettPedagogusNev nvarchar (255)
,OraKezdeteDateST nvarchar (25)
,HetNapjaValos int
,Datum datetime
,HelyettesitoTanarOktAzon nvarchar (20)
)
EXEC uspGetNemNaplozottOrarendiOrak_Core
@IntezmenyId = @IntezmenyId
,@TanevId = @TanevId
,@IdoszakKezdete = @IdoszakKezdete
,@IdoszakVege = @IdoszakVege
,@TanarId = @TanarId
,@OsztalyCsoportId = @OsztalyCsoportId
,@TantargyId = @TantargyId
,@CsakAHelyettesiteseim = @CsakAHelyettesiteseim
,@HelyettesitettOraimIs = @HelyettesitettOraimIs
,@pFeladatKategoriaId = @pFeladatKategoriaId
,@pDatum = @pDatum
,@pOraszam = @pOraszam
,@pIdopont = @pIdopont
,@pFeladatEllatasiHelyId = @pFeladatEllatasiHelyId
SELECT
Id
,ORARENDIID
,Bontott
,Hetirend
,HetNapja
,HetSorszam
,ErvenyessegKezdete
,ErvenyessegVege
,OraKezdete
,OraKezdeteDate
,OraKezdeteTimeText
,OraVege
,Oraszam
,TargyNev
,TargyNevForMobile
,TargyNevForNyomtatvany
,TargykategoriaID
,Megtartott
,CsengetesiRendOraID
,CsengetesiRendID
,MaxNapiOraszam
,OsztalyNev
,MegjelenesOka
,TanarNev
,TanarOktAzon
,TeremNev
,OraTipus
,Hianyzas
,Keses
,Ures
,HelyettesitoTanarID
,HelyettesitoTanarNev
,HelyettesitesId
,TanarID
,AdminAltalKiirt
,GroupId
,Tema
,TantargyId
,OsztCsopId
,HelyettesitettPedagogusNev
,OraKezdeteDateST
,HetNapjaValos
,Datum
,HelyettesitoTanarOktAzon
FROM #NemNaplozottOrak
-- Iktatás adatok
SELECT
@OsztalyCsoportId AS OsztalyId
,ocs.C_EVFOLYAMTIPUSA AS Evfolyam
,ocs.C_FELADATELLATASIHELYID AS FeladatEllatasiHelyId
,ocs.C_KEPZESIFORMA AS KepzesiForma
,o.C_OSZTALYFONOKID AS OsztalyFonokId
,o.C_TANTERVID AS TantervId
,o.C_SZAKMACSOPORT AS SzakmaCsoport
,o.C_AGAZAT AS Agazat
,o.C_SZAKKEPESITES AS Szakkepesites
,o.C_RESZSZAKKEPESITES AS Reszszakkepesites
,ocs.C_KERESZTFELEVES AS OJCSJKeresztfeleves
,ocs.C_ISTECHNIKAI AS OJTechnikaiOsztaly
,o.C_NEMZETISEGI AS OJNemzetisegi
,o.C_KETTANNYELVU AS OJKettannyelvu
,o.C_NYELVIELOKESZITO AS OJNyelviElokeszito
,ocs.C_ISGYOGYPEDAGOGIAILOGOPEDIAI AS OJIsGyogypedagogiaiLogopediai
,o.C_SPORT AS OJSportOsztaly
,o.C_AJPROGRAM AS OJAranyJanosProgram
FROM T_OSZTALYCSOPORT_OSSZES ocs
INNER JOIN T_OSZTALY_OSSZES o ON o.ID = ocs.ID AND o.TOROLT = 'F'
AND o.C_ALTANEVID = ocs.C_TANEVID
AND o.C_ALINTEZMENYID = ocs.C_INTEZMENYID
WHERE ocs.ID = @OsztalyCsoportId
AND ocs.TOROLT = 'F'
AND ocs.C_TANEVID = @TanevId
AND ocs.C_INTEZMENYID = @IntezmenyId
-- Tanár iktatás adatok
SELECT DISTINCT
f.ID AS TanarId
,f.C_OKTATASIAZONOSITO AS TanarOktAzon
FROM T_ALKALMAZOTT_OSSZES a
INNER JOIN T_FELHASZNALO_OSSZES f ON f.ID = a.ID AND f.TOROLT = 'F'
AND a.C_ALTANEVID = f.C_TANEVID
AND a.C_ALINTEZMENYID = f.C_INTEZMENYID
LEFT JOIN #NemNaplozottOrak orak ON orak.TanarID = f.ID
WHERE a.TOROLT = 'F'
AND a.C_ALINTEZMENYID = @IntezmenyId
AND a.C_ALTANEVID = @TanevId
AND (@TanarId IS NULL OR f.ID = @TanarId)
END
GO

View file

@ -0,0 +1,367 @@
DROP PROCEDURE IF EXISTS uspGetNyomtatvanyokOrarendOsszes
GO
CREATE PROCEDURE uspGetNyomtatvanyokOrarendOsszes
@intezmenyId int
,@tanevID int
,@pIdoszakKezdete datetime
,@pIdoszakVege datetime
,@pTanarId int = NULL
,@pIsHelyettesitesNelkul bit = 0
,@pOsztalyCsoportId int = NULL
,@pTanuloId int = NULL
,@pTantargyId int = NULL
,@pTeremId int = NULL
,@pCsakOrarendiOrak bit = 0
,@pIsNapirend bit /* 0 csak orarendi ora, 1 csak napirend, NULL mindkettő */
,@pKapcsolodoCsoportokMegjelenitese bit = NULL
,@pOsztalyBontasokMegjelenitese bit = NULL
,@pFeladatKategoriaId int = NULL
AS BEGIN
SET NOCOUNT ON;
DECLARE
@intezmenyNev nvarchar(510)
,@hetirend int
CREATE TABLE #OrarendiOrak (
Id int
,ORARENDIID int
,Datum datetime
,Bontott char (1)
,Hetirend int
,HetNapja int
,HetSorszam int
,ErvenyessegKezdete datetime
,ErvenyessegVege datetime
,OraKezdete datetime
,OraVege datetime
,Oraszam int
,TargyNev nvarchar (300)
,TargyNevForMobile nvarchar (300)
,TargykategoriaID int
,Megtartott char (1)
,CsengetesiRendOraID int
,CsengetesiRendID int
,MaxNapiOraszam int
,OsztalyNev nvarchar (255)
,TanevRendOsztalyCsoportId int
,MegjelenesOka nvarchar (300)
,TanarNev nvarchar (255)
,TeremNev nvarchar (255)
,TeremId int
,OraTipus nvarchar (200)
,Hianyzas char (1)
,Keses char (1)
,Ures char (1)
,HelyettesitoTanarID int
,HelyettesitoTanarNev nvarchar (255)
,HelyettesitesId int
,TanarID int
,AdminAltalKiirt char (1)
,GroupId int
,Tema nvarchar (max)
,TantargyId int
,OsztCsopId int
,IsEgyediNap char(1)
,TeremTobbOratLehetTartani char(1)
,KozpontiOraGroupId uniqueidentifier NULL
,KozpontilagToroltOraGroupId uniqueidentifier NULL
,INDEX IX1 CLUSTERED(Datum, HetNapja, Oraszam, TanevRendOsztalyCsoportId, TantargyId, TanarID)
)
CREATE TABLE #Oraszamok (
Oraszam int
,PRIMARY KEY(Oraszam)
)
SELECT TOP 1
@intezmenyNev = i.C_NEV
FROM T_INTEZMENYADATOK_OSSZES i
WHERE i.C_INTEZMENYID = @intezmenyId
AND i.C_TANEVID = @tanevID
AND i.TOROLT = 'F'
INSERT INTO #OrarendiOrak (
Id
,ORARENDIID
,Datum
,Bontott
,Hetirend
,HetNapja
,HetSorszam
,ErvenyessegKezdete
,ErvenyessegVege
,OraKezdete
,OraVege
,Oraszam
,TargyNev
,TargyNevForMobile
,TargykategoriaID
,Megtartott
,CsengetesiRendOraID
,CsengetesiRendID
,MaxNapiOraszam
,OsztalyNev
,TanevRendOsztalyCsoportId
,MegjelenesOka
,TanarNev
,TeremNev
,TeremId
,OraTipus
,Hianyzas
,Keses
,Ures
,HelyettesitoTanarID
,HelyettesitoTanarNev
,HelyettesitesId
,TanarID
,AdminAltalKiirt
,GroupId
,Tema
,TantargyId
,OsztCsopId
,IsEgyediNap
,TeremTobbOratLehetTartani
,KozpontiOraGroupId
,KozpontilagToroltOraGroupId
)
EXEC sp_GetOrarend
@pIntezmenyId = @intezmenyId
,@pTanevId = @tanevID
,@pIdoszakKezdete = @pIdoszakKezdete
,@pIdoszakVege = @pIdoszakVege
,@pTanarId = @pTanarId
,@pIsHelyettesitesNelkul = @pIsHelyettesitesNelkul
,@pOsztalyCsoportId = @pOsztalyCsoportId
,@pTanuloId = @pTanuloId
,@pTantargyId = @pTantargyId
,@pTeremId = @pTeremId
,@pCsakOrarendiOrak = @pCsakOrarendiOrak
,@pIsNapirend = @pIsNapirend
,@pFeladatKategoriaId = @pFeladatKategoriaId
-- a lekért órarendben a minden héten órákat átállítjuk a hétsorszámnak megfelelő hetirendre
UPDATE orak
SET orak.Hetirend = ISNULL(hr.Hetirend, orak.Hetirend)
FROM #OrarendiOrak orak
LEFT JOIN (
SELECT DISTINCT
o.Hetirend
,o.HetSorszam
FROM #OrarendiOrak o
WHERE Hetirend <> 1554
) hr ON hr.HetSorszam = orak.HetSorszam
WHERE orak.Hetirend = 1554
-- kapcsolódó csoportok óráinak törlése
IF @pKapcsolodoCsoportokMegjelenitese IS NOT NULL AND @pKapcsolodoCsoportokMegjelenitese = 0
DELETE orak
FROM #OrarendiOrak orak
INNER JOIN T_CSOPORT_OSSZES cs ON cs.TOROLT = 'F'
AND cs.ID = orak.OsztCsopId
AND cs.C_OSZTALYBONTASID IS NULL
INNER JOIN T_CSOPORTTIPUS_OSSZES cst ON cst.C_ALTANEVID = cs.C_ALTANEVID AND cst.TOROLT = 'F'
AND cst.ID = cs.C_TIPUSA
AND cst.C_ISTANORAICELU = 'F'
WHERE OsztCsopId != @pOsztalyCsoportId
-- osztálybontott csoportok óráinak törlése
IF @pOsztalyBontasokMegjelenitese IS NOT NULL AND @pOsztalyBontasokMegjelenitese = 0
DELETE orak
FROM #OrarendiOrak orak
INNER JOIN T_CSOPORT_OSSZES cs ON cs.ID = orak.OsztCsopId
AND cs.C_OSZTALYBONTASID IS NOT NULL
WHERE orak.OsztCsopId != @pOsztalyCsoportId
-- egyedi napok esetén ne a megtartott napon, hanem az alap hét napján jelenjen meg
UPDATE orak SET orak.HetNapja=nn.C_ALAPHETNAPJA
FROM #OrarendiOrak orak
INNER JOIN T_NAPTARINAP_OSSZES nn ON nn.C_NAPDATUMA = orak.Datum AND nn.C_TANEVID = @tanevID AND nn.TOROLT = 'F'
WHERE orak.IsEgyediNap = 'T'
INSERT INTO #Oraszamok (Oraszam)
SELECT DISTINCT
ora.C_ORASZAM AS Oraszam
FROM T_ORARENDIORA_OSSZES ora
WHERE ora.C_INTEZMENYID = @intezmenyId
AND ora.C_TANEVID = @tanevID
AND ora.C_ORASZAM IS NOT NULL
SET @hetirend = (SELECT TOP 1 Hetirend FROM #OrarendiOrak)
SELECT DISTINCT
COALESCE(@pTanarId, @pTeremId, @pOsztalyCsoportId) AS Id
,STUFF(
(
SELECT DISTINCT
', ' + IIF(@pTanarId IS NOT NULL, bo.TanarNev, IIF(@pTeremId IS NOT NULL, bo.TeremNev, IIF(@pOsztalyCsoportId IS NOT NULL, bo.OsztalyNev,'')))
FROM #OrarendiOrak bo
WHERE bo.Hetirend = o.Hetirend
FOR XML PATH(''), TYPE
).value
('.', 'NVARCHAR(MAX)') ,1 , 2, ''
) AS Nev
,@intezmenyNev AS IntezmenyNev
,STUFF(
(
SELECT DISTINCT
', ' + dic.C_NAME
FROM #OrarendiOrak qw
LEFT JOIN T_DICTIONARYITEMBASE_OSSZES dic ON dic.C_TANEVID = @tanevID
AND dic.TOROLT = 'F'
AND dic.ID = qw.Hetirend
WHERE o.Hetirend = qw.Hetirend
FOR XML PATH(''), TYPE
).value
('(./text())[1]', 'VARCHAR(MAX)'), 1, 2, ''
) AS Hetirend
FROM #OrarendiOrak o
INNER JOIN T_DICTIONARYITEMBASE_OSSZES dic ON o.Hetirend = dic.ID
AND dic.C_TANEVID = @tanevID
AND dic.TOROLT = 'F'
SELECT
COALESCE(@pTanarId, @pTeremId, @pOsztalyCsoportId) AS Id
,IIF(@pIsNapirend = 0, CAST(t.Oraszam AS nvarchar(3)), ISNULL(t.OraKezdete + ' - ' + t.OraVege, '')) AS Ora
,t.Hetirend AS HetirendId
,[1408] AS Hetfo
,[1409] AS Kedd
,[1410] AS Szerda
,[1411] AS Csutortok
,[1412] AS Pentek
,[1413] AS Szombat
,[1414] AS Vasarnap
,t.HetirendNev AS HetirendNev
FROM (
SELECT
*
FROM (
SELECT
STUFF(
(
SELECT
CONVERT(nvarchar(max),
'--------------------' + nchar(13) + nchar(10)
+ bo.TargyNev + nchar(13) + nchar(10) + bo.OsztalyNev +
IIF(@pTeremId IS NOT NULL OR @pOsztalyCsoportId IS NOT NULL, nchar(13) + nchar(10) + bo.TanarNev, '') + nchar(13) + nchar(10) + bo.TeremNev + nchar(13) + nchar(10))
FROM #OrarendiOrak bo
WHERE
(@pIsNapirend = 0 AND bo.Oraszam = osz.Oraszam and o.HetNapja = bo.HetNapja)
OR
(ISNULL(@pIsNapirend, 1) <> 0 AND bo.OraKezdete = o.OraKezdete AND bo.OraVege = o.OraVege and o.HetNapja = bo.HetNapja)
FOR XML PATH(''), TYPE
).value
('.', 'NVARCHAR(MAX)'), 1, 22, ''
) AS TargyNev
,o.HetNapja
,osz.Oraszam
,IIF(ISNULL(@pIsNapirend, 1) <> 0, CONVERT(char(5), o.OraKezdete, 108), NULL) AS OraKezdete
,IIF(ISNULL(@pIsNapirend, 1) <> 0, CONVERT(char(5), o.OraVege, 108), NULL) AS OraVege
,dic.C_NAME AS HetirendNev
,@hetirend AS Hetirend
FROM #OrarendiOrak AS o
FULL JOIN #Oraszamok AS osz ON osz.Oraszam = o.Oraszam AND ISNULL(@pIsNapirend, 1) = 0
LEFT JOIN T_DICTIONARYITEMBASE_OSSZES AS dic ON dic.C_TANEVID = @tanevID
AND dic.TOROLT = 'F'
AND dic.ID = @hetirend
) ot PIVOT(MAX(ot.TargyNev) FOR ot.HetNapja IN(
[1408]
,[1409]
,[1410]
,[1411]
,[1412]
,[1413]
,[1414])
) AS pv
) AS t
WHERE @pIsNapirend = 0 OR (t.OraKezdete IS NOT NULL AND t.OraVege IS NOT NULL)
ORDER BY
HetirendNev
,CASE WHEN @pIsNapirend = 0 THEN t.Oraszam ELSE CAST(t.OraKezdete AS datetime) END
-- Iktatási adatok
IF @pOsztalyCsoportId IS NOT NULL
BEGIN
-- Osztály adatok
SELECT
@pOsztalyCsoportId AS OsztalyId
,ocs.C_EVFOLYAMTIPUSA AS Evfolyam
,ocs.C_FELADATELLATASIHELYID AS FeladatEllatasiHelyId
,ocs.C_KEPZESIFORMA AS KepzesiForma
,o.C_OSZTALYFONOKID AS OsztalyFonokId
,o.C_TANTERVID AS TantervId
,o.C_SZAKMACSOPORT AS SzakmaCsoport
,o.C_AGAZAT AS Agazat
,o.C_SZAKKEPESITES AS Szakkepesites
,o.C_RESZSZAKKEPESITES AS Reszszakkepesites
,ocs.C_KERESZTFELEVES AS OJCSJKeresztfeleves
,ocs.C_VEGZOSEVFOLYAM AS CSJVegzosEvfolyamu
,ocs.C_ISTECHNIKAI AS OJTechnikaiOsztaly
,o.C_NEMZETISEGI AS OJNemzetisegi
,o.C_KETTANNYELVU AS OJKettannyelvu
,o.C_NYELVIELOKESZITO AS OJNyelviElokeszito
,ocs.C_ISGYOGYPEDAGOGIAILOGOPEDIAI AS OJIsGyogypedagogiaiLogopediai
,o.C_SPORT AS OJSportOsztaly
,o.C_AJPROGRAM AS OJAranyJanosProgram
FROM T_OSZTALYCSOPORT_OSSZES ocs
INNER JOIN T_OSZTALY_OSSZES o ON o.ID = ocs.ID AND o.TOROLT = 'F'
AND o.C_ALTANEVID = ocs.C_TANEVID
AND o.C_ALINTEZMENYID = ocs.C_INTEZMENYID
WHERE ocs.ID = @pOsztalyCsoportId
AND ocs.TOROLT = 'F'
AND ocs.C_TANEVID = @tanevID
AND ocs.C_INTEZMENYID = @intezmenyId
-- Osztály csoportok
SELECT DISTINCT
ot.OsztCsopId AS CsoportId
FROM #OrarendiOrak ot
INNER JOIN T_CSOPORT_OSSZES cs ON cs.ID = ot.OsztCsopId
AND cs.TOROLT = 'F'
-- Alkalmazottak
SELECT DISTINCT
ot.TanarID AS TanarId
,f.C_OKTATASIAZONOSITO AS TanarOktAzon
FROM #OrarendiOrak ot
LEFT JOIN T_FELHASZNALO_OSSZES f ON f.ID = ot.TanarID
AND f.TOROLT = 'F'
-- Tanulók
SELECT DISTINCT
f.ID AS TanuloId
,f.C_NYOMTATASINEV AS TanuloNeve
,f.C_OKTATASIAZONOSITO AS TanuloOktAzon
FROM #OrarendiOrak ot
INNER JOIN T_TANULOCSOPORT_OSSZES tcs ON tcs.C_OSZTALYCSOPORTID = ot.OsztCsopId
AND tcs.C_TANEVID = @tanevID
AND tcs.TOROLT = 'F'
INNER JOIN T_FELHASZNALO_OSSZES f ON f.ID = tcs.C_TANULOID
AND f.TOROLT = 'F'
END
ELSE
IF @pTanarId IS NOT NULL
-- Alkalmazottak
SELECT DISTINCT
orak.TanarID AS TanarId
,f.C_OKTATASIAZONOSITO AS TanarOktAzon
,mua.C_FELADATELLATASIHELYID AS FeladatEllatasiHelyId
FROM #OrarendiOrak orak
LEFT JOIN T_FELHASZNALO_OSSZES f ON f.ID = orak.TanarID
AND f.TOROLT = 'F'
INNER JOIN T_MUNKAUGYIADATOK_OSSZES mua ON mua.C_ALKALMAZOTTID = orak.TanarID
AND mua.TOROLT = 'F'
ELSE
IF @pTeremId IS NOT NULL
SELECT
t.ID AS TeremId
,t.C_MUKODESIHELYID AS FeladatEllatasiHelyId
FROM T_TEREM_OSSZES t
WHERE t.ID = @pTeremId
AND t.TOROLT = 'F'
END
GO

View file

@ -0,0 +1,82 @@
DROP PROCEDURE IF EXISTS [dbo].[uspGetOrarendExcelExportData]
GO
CREATE PROCEDURE [dbo].[uspGetOrarendExcelExportData]
@pTanevId int
,@pErvenyessegKezdete date
,@pErvenyessegVege date
,@pIsOraErvenyessegiIdovel bit
,@pIsNapiredExport bit
,@pIsIdoszakonKivuliElemekMegjelenitese bit
AS
BEGIN
-- SET NOCOUNT ON added to prevent extra result sets from interfering with SELECT statements.
SET NOCOUNT ON;
DECLARE @sql nvarchar(max)
SET @sql = N'
SELECT '
IF @pIsOraErvenyessegiIdovel = 1 BEGIN
SET @sql += N'
oo.C_ORAERVENYESSEGKEZDETE AS ''Óra érvényességének kezdete'',
oo.C_ORAERVENYESSEGVEGE AS ''Óra érvényességének vége'', '
END
SET @sql += N'
hr.C_NAME As ''Hetirend'',
hn.C_NAME AS ''Nap'', '
IF @pIsNapiredExport = 0 BEGIN
SET @sql += N' oo.C_ORASZAM AS ''Óra (adott napon belül)'', '
END
ELSE BEGIN
SET @sql += N'
oo.C_ORAKEZDETE AS ''Foglalkozás kezdete'',
oo.C_ORAVEGE AS ''Foglalkozás vége'', '
END
SET @sql += N'
IIF(o.ID IS NOT NULL,ocs.C_NEV,'''') AS ''Osztály'',
IIF(cs.ID IS NOT NULL,ocs.C_NEV,'''') AS ''Csoport'',
tgy.C_NEV as ''Tantárgy'',
f.C_NYOMTATASINEV as ''Tanár'',
t.C_NEV AS ''Helyiség'' '
SET @sql += N'
FROM T_ORARENDIORA_OSSZES oo
INNER JOIN T_TEREM_OSSZES t ON t.ID = oo.C_TEREMID AND t.TOROLT = ''F''
INNER JOIN T_TANTARGY_OSSZES tgy ON tgy.ID = oo.C_TANTARGYID AND tgy.TOROLT = ''F''
INNER JOIN T_FELHASZNALO_OSSZES f ON f.ID = oo.C_TANARID AND f.TOROLT = ''F''
INNER JOIN T_DICTIONARYITEMBASE_OSSZES hr ON hr.ID = oo.C_HETIREND AND hr.TOROLT = ''F'' AND hr.C_TANEVID = @pTanevId
INNER JOIN T_DICTIONARYITEMBASE_OSSZES hn ON hn.ID = oo.C_HETNAPJA AND hn.TOROLT = ''F'' AND hn.C_TANEVID = @pTanevId
INNER JOIN T_OSZTALYCSOPORT_OSSZES ocs ON ocs.ID = oo.C_OSZTALYCSOPORTID AND ocs.TOROLT = ''F''
LEFT JOIN T_OSZTALY_OSSZES o ON ocs.ID = o.ID AND o.TOROLT = ''F''
LEFT JOIN T_CSOPORT_OSSZES cs ON ocs.ID = cs.ID AND cs.TOROLT = ''F'''
IF @pIsIdoszakonKivuliElemekMegjelenitese = 0 BEGIN
SET @sql += N'
WHERE oo.TOROLT = ''F''
AND oo.C_ORAERVENYESSEGKEZDETE >= @pErvenyessegKezdete
AND (oo.C_ORAERVENYESSEGVEGE <= @pErvenyessegVege OR oo.C_ORAERVENYESSEGVEGE IS NULL)
AND oo.C_TANEVID = @pTanevId '
END
ELSE BEGIN
SET @sql += N'
WHERE oo.TOROLT = ''F''
AND oo.C_TANEVID = @pTanevId
AND (oo.C_ORAERVENYESSEGVEGE > @pErvenyessegKezdete AND oo.C_ORAERVENYESSEGKEZDETE <= @pErvenyessegVege)'
END
IF @pIsNapiredExport = 0 BEGIN
SET @sql += N' AND oo.C_CSENGETESIRENDID IS NOT NULL '
END
ELSE BEGIN
SET @sql += N' AND oo.C_CSENGETESIRENDID IS NULL '
END
EXEC sp_executesql @sql, N'
@pTanevId int
,@pErvenyessegKezdete date
,@pErvenyessegVege date'
,@pTanevId = @pTanevId
,@pErvenyessegKezdete = @pErvenyessegKezdete
,@pErvenyessegVege = @pErvenyessegVege
END
GO

View file

@ -0,0 +1,112 @@
DROP PROCEDURE IF EXISTS dbo.sp_GetTanulokFelmentesekHatarozatok
DROP PROCEDURE IF EXISTS dbo.uspGetTanulokFelmentesekHatarozatok
GO
CREATE PROCEDURE dbo.[uspGetTanulokFelmentesekHatarozatok]
@OsztalyId INT,
@TanevId INT
AS
BEGIN
SET NOCOUNT ON;
/*Alap adatok*/
SELECT DISTINCT
@OsztalyId OsztalyId
,ocs.C_NEV OSZTALYCSOPORT_NEV
,ofo.C_NYOMTATASINEV OSZTFO_NEV
,i.C_IGAZGATONEVE INT_IGAZGATO_NEV
,i.C_NEV INT_NEV
,i.C_IRANYITOSZAM INT_IRSZAM
,i.C_VAROS INT_VAROS
,dbo.fnGetDokumentumIntezmenyCime(@TanevId) INT_CIM
,i.C_OMKOD INT_OMKOD
FROM T_OSZTALYCSOPORT_OSSZES ocs
INNER JOIN T_OSZTALY_OSSZES o ON ocs.ID = o.ID AND o.torolt='F'
LEFT JOIN T_FELHASZNALO_OSSZES ofo ON ofo.ID = o.C_OSZTALYFONOKID
INNER JOIN T_INTEZMENYADATOK_OSSZES i on i.C_INTEZMENYID=ocs.C_INTEZMENYID AND i.C_TANEVID = ocs.C_TANEVID AND i.Torolt = 'F'
WHERE ocs.ID = @OsztalyId
/*Mentességek*/
SELECT
tt.C_NEV TANTARGY
,tm.C_MENTESSEGOKA MENTESSEG_OKA
,IIF(C_ERTEKELESMENTESITES = 'T', 'Értékelés alóli felmentés,', '')
+ IIF(C_ORAMENTESITES = 'T', 'Tanóra látogatása alóli felmentés,', '')
+ IIF(C_SZOVEGESENERTEKELHETO = 'T', 'Szövegesen értékelhető,', '') TIPUSA
,dbo.fnGetDokumentumDatumFormatum(tm.C_KEZDETE) Kezdete
,dbo.fnGetDokumentumDatumFormatum(tm.C_VEGE) Vege
,ft.ID TANULO_ID
,ft.C_NYOMTATASINEV AS TANULO_NEV
,ft.C_NYOMTATASINEV + ' ' + CAST(ft.ID AS NVARCHAR) GROUPPARAMETER
,@OsztalyId AS OsztalyId
,ft.C_OKTATASIAZONOSITO AS TanuloOktAzon
,feljegyzo.ID AS FeljegyzoId
,feljegyzo.C_NYOMTATASINEV AS FeljegyzoNeve
,feljegyzo.C_OKTATASIAZONOSITO AS FeljegyzoOktAzon
,CASE WHEN tt.C_FOTARGYID IS NULL THEN ISNULL(TargyKategoriaDictionary.C_ORDER, 10000) ELSE ISNULL(FotargyKategoriaDictionary.C_ORDER, 10000) END as RENDEZ1
,COALESCE(FotargyTable.C_NEVNYOMTATVANYBAN, FotargyTable.C_NEV, tt.C_NEV) as RENDEZ2
,ISNULL(tt.C_FOTARGYID, tt.ID) as RENDEZ3
,tt.C_FOTARGYID as RENDEZ4
,ISNULL(tt.C_NEVNYOMTATVANYBAN, tt.C_NEV) as RENDEZ5
INTO #TanuloMentesseg
FROM fnGetDokumentumOsztalyokCsoportokTanuloi(@TanevId, @OsztalyId, 'T') Tanulok
INNER JOIN T_FELHASZNALO_OSSZES ft ON ft.ID = Tanulok.TanuloId AND ft.TOROLT = 'F'
LEFT JOIN T_TANULOMENTESSEG_OSSZES tm ON tm.C_TANULOID = ft.ID AND tm.TOROLT = 'F'
LEFT JOIN T_TANTARGY_OSSZES tt ON tt.ID = tm.C_TANTARGYID AND tt.TOROLT = 'F'
LEFT JOIN T_FELHASZNALO_OSSZES feljegyzo ON feljegyzo.ID = tm.CREATOR AND feljegyzo.TOROLT = 'F'
LEFT JOIN T_DICTIONARYITEMBASE_OSSZES TargyKategoriaDictionary ON TargyKategoriaDictionary.Id = tt.C_TARGYKATEGORIA
AND TargyKategoriaDictionary.TOROLT = 'F'
AND TargyKategoriaDictionary.C_TANEVID = @tanevId
LEFT JOIN T_TANTARGY_OSSZES FotargyTable ON tt.C_FOTARGYID = FotargyTable.ID
LEFT JOIN T_DICTIONARYITEMBASE_OSSZES FotargyKategoriaDictionary ON FotargyKategoriaDictionary.ID = FotargyTable.C_TARGYKATEGORIA
AND FotargyKategoriaDictionary.TOROLT = 'F'
AND FotargyKategoriaDictionary.C_TANEVID = FotargyTable.C_TANEVID
ORDER BY ft.C_NYOMTATASINEV
SELECT
TANTARGY
,MENTESSEG_OKA
,IIF(TIPUSA = '', '', LEFT(TIPUSA, LEN(TIPUSA) - 1)) TIPUSA
,Kezdete
,Vege
,TANULO_ID
,TANULO_NEV
,GROUPPARAMETER
,OsztalyId
,TanuloOktAzon
,FeljegyzoId
,FeljegyzoNeve
,FeljegyzoOktAzon
FROM #TanuloMentesseg
ORDER BY TANULO_ID, RENDEZ1, RENDEZ2, RENDEZ3, RENDEZ4, RENDEZ5, Kezdete
/* Osztály adatok */
SELECT
o.ID AS OsztalyId
,ocs.C_EVFOLYAMTIPUSA AS EvfolyamTipusa
,ocs.C_FELADATELLATASIHELYID AS FeladatEllatasiHelyId
,ocs.C_KEPZESIFORMA AS KepzesiForma
,o.C_OSZTALYFONOKID AS OsztalyfonokId
,o.C_TANTERVID AS TantervId
,o.C_SZAKMACSOPORT AS SzakmaCsoport
,o.C_AGAZAT AS Agazat
,o.C_SZAKKEPESITES AS Szakkepesites
,o.C_RESZSZAKKEPESITES AS Reszszakkepesites
,ocs.C_KERESZTFELEVES OJCSJKeresztfeleves
,ocs.C_VEGZOSEVFOLYAM CSJVegzosEvfolyamu
,ocs.C_ISTECHNIKAI OJTechnikaiOsztaly
,o.C_NEMZETISEGI OJNemzetisegi
,o.C_KETTANNYELVU OJKettannyelvu
,o.C_NYELVIELOKESZITO OJNyelviElokeszito
,ocs.C_ISGYOGYPEDAGOGIAILOGOPEDIAI OJIsGyogypedagogiaiLogopediai
,o.C_SPORT OJSportOsztaly
,o.C_AJPROGRAM OJAranyJanosProgram
FROM T_OSZTALY_OSSZES AS o
INNER JOIN T_OSZTALYCSOPORT_OSSZES ocs ON ocs.ID = o.ID AND ocs.TOROLT = 'F'
WHERE o.ID = @OsztalyId
DROP TABLE #TanuloMentesseg
END
GO

View file

@ -0,0 +1,183 @@
DROP PROCEDURE IF EXISTS dbo.sp_GetTanulokJegyeiReszletezes
DROP PROCEDURE IF EXISTS dbo.uspGetTanulokJegyeiReszletezes
GO
CREATE PROCEDURE [dbo].[uspGetTanulokJegyeiReszletezes]
@OsztalyId int
,@TanevId int
,@isNemet int = 0
AS
BEGIN
SET NOCOUNT ON;
SELECT DISTINCT
@osztalyId OsztalyId
,ocs.C_NEV OsztalyNev
,o.C_OSZTALYNAPLOLEIRASA OsztalyMegjegyzes
,o.C_OSZTALYFONOKID PartnerID
,ofo.C_NYOMTATASINEV Osztalyfonok
,i.C_IGAZGATONEVE IntezmenyVezeto
,i.C_NEV IntezmenyNeve
,i.C_IRANYITOSZAM IntezmenyIranyitoszam
,i.C_VAROS IntezmenyVaros
,dbo.fnGetDokumentumIntezmenyCime(@tanevId) IntezmenyCime
,i.C_OMKOD IntezmenyOMKod
FROM T_OSZTALYCSOPORT_OSSZES ocs
INNER JOIN T_OSZTALY_OSSZES o ON ocs.ID = o.ID AND o.torolt='F'
LEFT JOIN T_FELHASZNALO_OSSZES ofo ON ofo.ID = o.C_OSZTALYFONOKID
INNER JOIN T_INTEZMENYADATOK_OSSZES i on i.C_INTEZMENYID=ocs.C_INTEZMENYID AND i.C_TANEVID = ocs.C_TANEVID AND i.Torolt = 'F'
WHERE ocs.ID = @osztalyId
SELECT
dbo.fnGetDokumentumDatumFormatum(Datum) Datum
,CASE
WHEN (CAST(ErtekelesOsztalyzatValue AS NVARCHAR(MAX)) IS NOT NULL
OR ErtekelesSzovegFormazott IS NOT NULL
OR ErtekelesSzazalek IS NOT NULL)
THEN TantargyNevZarojellel
WHEN (CAST(MagatartasOsztalyzatNev AS NVARCHAR(MAX)) IS NOT NULL
OR MagatartasErtek IS NOT NULL
OR MagatartasSzovegFormazott IS NOT NULL)
THEN 'Magatartás'
WHEN (CAST(SzorgalomOsztalyzatNev AS NVARCHAR(MAX)) IS NOT NULL
OR SzorgalomErtek IS NOT NULL
OR SzorgalomSzovegFormazott IS NOT NULL)
THEN 'Szorgalom'
END AS Tantargy
,ErtekelesTipusDictionary.C_NAME ErtTip
,ErtekelesModjaDictionary.C_NAME ErtMod
,ErtekelesTable.ErtekelesTema Tema
,ErtekeloNeve.C_NYOMTATASINEV ErtekeloNev
,COALESCE(
CAST(ErtekelesTable.ErtekelesOsztalyzatValue AS NVARCHAR(MAX))
,ErtekelesTable.ErtekelesSzoveg
,ErtekelesTable.ErtekelesSzazalek
,ErtekelesTable.MagatartasOsztalyzatNev
,ErtekelesTable.MagatartasErtek
,ErtekelesTable.MagatartasSzoveg
,ErtekelesTable.SzorgalomOsztalyzatNev
,ErtekelesTable.SzorgalomErtek
,ErtekelesTable.SzorgalomSzoveg
) Osztalyzat
,TanuloNeve.C_NYOMTATASINEV TanuloNev
,TanuloNeve.C_NYOMTATASINEV + CAST(Tanulok.TanuloId AS NVARCHAR(MAX)) GroupParameter
,Tanulok.TanuloId AS TanuloId
,TanuloNeve.C_OKTATASIAZONOSITO AS TanuloOktAzon
,ErtekelesTable.ErtekeloId AS ErtekeloId
,ErtekeloNeve.C_OKTATASIAZONOSITO AS ErtekeloOktAzon
,@OsztalyId AS OsztalyId
,dbo.fnGetDokumentumDatumFormatum(ErtekelesTable.RogzitesDatum) AS RogzitesDatum
,ErtekelesTable.RENDEZ1 AS RENDEZ1
,ErtekelesTable.RENDEZ2 AS RENDEZ2
,ErtekelesTable.RENDEZ3 AS RENDEZ3
,ErtekelesTable.RENDEZ4 AS RENDEZ4
,ErtekelesTable.RENDEZ5 AS RENDEZ5
FROM fnGetDokumentumOsztalyokCsoportokTanuloi(@TanevId, @OsztalyId, 'F') AS Tanulok
LEFT JOIN fnGetDokumentumErtekelesekOsztalyonkent(@TanevId, @OsztalyId, DEFAULT, 0, DEFAULT, DEFAULT, DEFAULT) ErtekelesTable ON ErtekelesTable.TanuloId = Tanulok.TanuloId AND ErtekelesTable.IsMagatartasSzorgalom = 'F'
LEFT JOIN T_DICTIONARYITEMBASE_OSSZES ErtekelesTipusDictionary ON ErtekelesTipusDictionary.ID = ErtekelesTable.TipusId AND ErtekelesTipusDictionary.C_TANEVID = @TanevId
LEFT JOIN T_DICTIONARYITEMBASE_OSSZES ErtekelesModjaDictionary ON ErtekelesModjaDictionary.ID = ErtekelesTable.ErtekelesModjaId AND ErtekelesModjaDictionary.C_TANEVID = @TanevId
LEFT JOIN T_FELHASZNALO_OSSZES ErtekeloNeve ON ErtekeloNeve.Id = ErtekelesTable.ErtekeloId
INNER JOIN T_FELHASZNALO_OSSZES TanuloNeve ON TanuloNeve.Id = Tanulok.TanuloId
UNION
SELECT
dbo.fnGetDokumentumDatumFormatum(Datum) Datum
,'Magatartás' Tantargy
,ErtekelesTipusDictionary.C_NAME ErtTip
,ErtekelesModjaDictionary.C_NAME ErtMod
,ErtekelesTema Tema
,ErtekeloNeve.C_NYOMTATASINEV ErtekeloNev
,COALESCE(
ErtekelesTable.MagatartasOsztalyzatNev
,ErtekelesTable.MagatartasErtek
,ErtekelesTable.MagatartasSzoveg
) Osztalyzat
,TanuloNeve.C_NYOMTATASINEV TanuloNev
,TanuloNeve.C_NYOMTATASINEV + CAST(Tanulok.TanuloId AS NVARCHAR(MAX)) GroupParameter
,Tanulok.TanuloId AS TanuloId
,TanuloNeve.C_OKTATASIAZONOSITO AS TanuloOktAzon
,ErtekelesTable.ErtekeloId AS ErtekeloId
,ErtekeloNeve.C_OKTATASIAZONOSITO AS ErtekeloOktAzon
,@OsztalyId AS OsztalyId
,dbo.fnGetDokumentumDatumFormatum(ErtekelesTable.RogzitesDatum) AS RogzitesDatum
,0 AS RENDEZ1
,'' AS RENDEZ2
,0 AS RENDEZ3
,0 AS RENDEZ4
,'' AS RENDEZ5
FROM fnGetDokumentumOsztalyokCsoportokTanuloi(@TanevId, @OsztalyId, 'F') AS Tanulok
LEFT JOIN fnGetDokumentumErtekelesekOsztalyonkent(@TanevId, @OsztalyId, DEFAULT, 0, DEFAULT, DEFAULT, DEFAULT) ErtekelesTable ON ErtekelesTable.TanuloId = Tanulok.TanuloId AND ErtekelesTable.IsMagatartasSzorgalom = 'T'
LEFT JOIN T_DICTIONARYITEMBASE_OSSZES ErtekelesTipusDictionary ON ErtekelesTipusDictionary.ID = ErtekelesTable.TipusId AND ErtekelesTipusDictionary.C_TANEVID = @TanevId
LEFT JOIN T_DICTIONARYITEMBASE_OSSZES ErtekelesModjaDictionary ON ErtekelesModjaDictionary.ID = ErtekelesTable.ErtekelesModjaId AND ErtekelesModjaDictionary.C_TANEVID = @TanevId
LEFT JOIN T_FELHASZNALO_OSSZES ErtekeloNeve ON ErtekeloNeve.Id = ErtekelesTable.ErtekeloId
INNER JOIN T_FELHASZNALO_OSSZES TanuloNeve ON TanuloNeve.Id = Tanulok.TanuloId
WHERE
MagatartasOsztalyzatNev IS NOT NULL OR MagatartasErtek IS NOT NULL OR MagatartasSzoveg IS NOT NULL
UNION
SELECT
dbo.fnGetDokumentumDatumFormatum(Datum) Datum
,'Szorgalom' Tantargy
,ErtekelesTipusDictionary.C_NAME ErtTip
,ErtekelesModjaDictionary.C_NAME ErtMod
,ErtekelesTema Tema
,ErtekeloNeve.C_NYOMTATASINEV ErtekeloNev
,COALESCE(
ErtekelesTable.SzorgalomOsztalyzatNev
,ErtekelesTable.SzorgalomErtek
,ErtekelesTable.SzorgalomSzoveg
) Osztalyzat
,TanuloNeve.C_NYOMTATASINEV TanuloNev
,TanuloNeve.C_NYOMTATASINEV + CAST(Tanulok.TanuloId AS NVARCHAR(MAX)) GroupParameter
,Tanulok.TanuloId AS TanuloId
,TanuloNeve.C_OKTATASIAZONOSITO AS TanuloOktAzon
,ErtekelesTable.ErtekeloId AS ErtekeloId
,ErtekeloNeve.C_OKTATASIAZONOSITO AS ErtekeloOktAzon
,@OsztalyId AS OsztalyId
,dbo.fnGetDokumentumDatumFormatum(ErtekelesTable.RogzitesDatum) AS RogzitesDatum
,1 AS RENDEZ1
,'' AS RENDEZ2
,0 AS RENDEZ3
,0 AS RENDEZ4
,'' AS RENDEZ5
FROM fnGetDokumentumOsztalyokCsoportokTanuloi(@TanevId, @OsztalyId, 'F') AS Tanulok
LEFT JOIN fnGetDokumentumErtekelesekOsztalyonkent(@TanevId, @OsztalyId, DEFAULT, 0, DEFAULT, DEFAULT, DEFAULT) ErtekelesTable ON ErtekelesTable.TanuloId = Tanulok.TanuloId AND ErtekelesTable.IsMagatartasSzorgalom = 'T'
LEFT JOIN T_DICTIONARYITEMBASE_OSSZES ErtekelesTipusDictionary ON ErtekelesTipusDictionary.ID = ErtekelesTable.TipusId AND ErtekelesTipusDictionary.C_TANEVID = @TanevId
LEFT JOIN T_DICTIONARYITEMBASE_OSSZES ErtekelesModjaDictionary ON ErtekelesModjaDictionary.ID = ErtekelesTable.ErtekelesModjaId AND ErtekelesModjaDictionary.C_TANEVID = @TanevId
LEFT JOIN T_FELHASZNALO_OSSZES ErtekeloNeve ON ErtekeloNeve.Id = ErtekelesTable.ErtekeloId
INNER JOIN T_FELHASZNALO_OSSZES TanuloNeve ON TanuloNeve.Id = Tanulok.TanuloId
WHERE
SzorgalomOsztalyzatNev IS NOT NULL OR SzorgalomErtek IS NOT NULL OR SzorgalomSzoveg IS NOT NULL
ORDER BY TanuloNeve.C_NYOMTATASINEV, RENDEZ1, RENDEZ2, RENDEZ3, RENDEZ4, RENDEZ5, Datum
/* Osztály adatok */
SELECT
o.ID AS OsztalyId
,ocs.C_EVFOLYAMTIPUSA AS EvfolyamTipusa
,ocs.C_FELADATELLATASIHELYID AS FeladatEllatasiHelyId
,ocs.C_KEPZESIFORMA AS KepzesiForma
,o.C_OSZTALYFONOKID AS OsztalyfonokId
,o.C_TANTERVID AS TantervId
,o.C_SZAKMACSOPORT AS SzakmaCsoport
,o.C_AGAZAT AS Agazat
,o.C_SZAKKEPESITES AS Szakkepesites
,o.C_RESZSZAKKEPESITES AS Reszszakkepesites
,ocs.C_KERESZTFELEVES OJCSJKeresztfeleves
,ocs.C_VEGZOSEVFOLYAM CSJVegzosEvfolyamu
,ocs.C_ISTECHNIKAI OJTechnikaiOsztaly
,o.C_NEMZETISEGI OJNemzetisegi
,o.C_KETTANNYELVU OJKettannyelvu
,o.C_NYELVIELOKESZITO OJNyelviElokeszito
,ocs.C_ISGYOGYPEDAGOGIAILOGOPEDIAI OJIsGyogypedagogiaiLogopediai
,o.C_SPORT OJSportOsztaly
,o.C_AJPROGRAM OJAranyJanosProgram
FROM T_OSZTALY_OSSZES AS o
INNER JOIN T_OSZTALYCSOPORT_OSSZES ocs ON ocs.ID = o.ID AND ocs.TOROLT = 'F'
WHERE o.ID = @OsztalyId
END
GO

View file

@ -0,0 +1,158 @@
DROP PROCEDURE IF EXISTS dbo.sp_GetTanulokTantargyMulasztasokReszletezese
DROP PROCEDURE IF EXISTS dbo.uspGetTanulokTantargyMulasztasokReszletezese
GO
CREATE PROCEDURE [dbo].[uspGetTanulokTantargyMulasztasokReszletezese]
@pOsztalyId int
,@pTanevId int
,@pIskolaErdekuSzamit bit
AS BEGIN
SET NOCOUNT ON;
CREATE TABLE #MulasztasOsztalyonkent(
TantargyId int
,Tipusa int
,IgazolasTipusa int
,OsztalyCsoportId int
,TanuloId int
,TantargyNev nvarchar(1000)
,OsztalyCsoportNev nvarchar(510)
,Igazolt char(1)
,KesesPercben int
,Datum date
,OraszamWithOrakezdeteVege nvarchar(50)
,RENDEZ1 INT
,RENDEZ2 NVARCHAR(510)
,RENDEZ3 INT
,RENDEZ4 INT
,RENDEZ5 NVARCHAR(510)
)
INSERT INTO #MulasztasOsztalyonkent(
TantargyId
,Tipusa
,IgazolasTipusa
,OsztalyCsoportId
,TanuloID
,TantargyNev
,OsztalyCsoportNev
,Igazolt
,KesesPercben
,Datum
,OraszamWithOrakezdeteVege
,RENDEZ1
,RENDEZ2
,RENDEZ3
,RENDEZ4
,RENDEZ5
) SELECT
TantargyId
,Tipusa
,IgazolasTipusa
,OsztalyCsoportId
,TanuloID
,TantargyNev
,OsztalyCsoportNev
,Igazolt
,KesesPercben
,Datum
,OraszamWithOrakezdeteVege
,RENDEZ1
,RENDEZ2
,RENDEZ3
,RENDEZ4
,RENDEZ5
FROM fnGetDokumentumMulasztasokOsztalyonkentReszletes (@pTanevId, @pOsztalyId, @pIskolaErdekuSzamit, DEFAULT, DEFAULT, DEFAULT, DEFAULT, DEFAULT)
/*FEJLEC*/
SELECT
IntezmenyAdat.C_NEV as IntezmenyNeve
,IntezmenyAdat.C_OMKOD as IntezmenyOMKod
,IntezmenyAdat.C_IGAZGATONEVE IntezmenyVezeto
,dbo.fnGetDokumentumIntezmenyCime(@pTanevId) as IntezmenyCime
,IntezmenyAdat.C_VAROS as IntezmenyVaros
,(SELECT C_NEV FROM T_OSZTALYCSOPORT_OSSZES WHERE ID = @pOsztalyId) as OsztalyCsoportNev
,@pOsztalyId as OsztalyId
,ofo.C_NYOMTATASINEV as OsztalyfonokNev
FROM T_INTEZMENYADATOK_OSSZES IntezmenyAdat
INNER JOIN T_OSZTALY_OSSZES AS o ON o.ID = @pOsztalyId AND o.TOROLT='F'
LEFT JOIN T_FELHASZNALO_OSSZES AS ofo ON ofo.ID = o.C_OSZTALYFONOKID AND ofo.TOROLT='F'
WHERE INTEZMENYADAT.C_TANEVID = @pTanevId AND IntezmenyAdat.TOROLT='F'
/*TANULOK*/
SELECT
TanuloId
,Felhasznalo.C_NYOMTATASINEV as TanuloNev
,@pOsztalyId as OsztalyCsoportId
,Felhasznalo.C_OKTATASIAZONOSITO as TanuloOktAzon
FROM fnGetDokumentumOsztalyokCsoportokTanuloi(@pTanevId, @pOsztalyId, 'T') Tanulok
INNER JOIN T_FELHASZNALO_OSSZES Felhasznalo ON Felhasznalo.ID = Tanulok.TanuloId AND Felhasznalo.TOROLT='F'
ORDER BY Felhasznalo.C_NYOMTATASINEV
/*MULASZTOTT TANTARGY*/
SELECT DISTINCT
TanuloId
,OsztalyCsoportId
,TantargyId
,TantargyNev as TantargyNev
,COUNT(1) as COUNT
,RENDEZ1
,RENDEZ2
,RENDEZ3
,RENDEZ4
,RENDEZ5
FROM #MulasztasOsztalyonkent MulasztasokOsztalyonkent
INNER JOIN T_TANTARGY_OSSZES Tantargy ON Tantargy.ID = MulasztasokOsztalyonkent.TantargyId AND Tantargy.TOROLT='F'
GROUP BY TanuloId, OsztalyCsoportId, TantargyId, TantargyNev, RENDEZ1, RENDEZ2, RENDEZ3, RENDEZ4, RENDEZ5
ORDER BY TanuloId, RENDEZ1, RENDEZ2, RENDEZ3, RENDEZ4, RENDEZ5
SELECT
TanuloId
,OsztalyCsoportId
,OsztalyCsoportNev as OsztalyCsoportNev
,CASE
WHEN Igazolt = 'T' THEN 'Igen'
WHEN Igazolt = 'F' THEN 'Nem'
ELSE ''
END as Igazolt
,MulasztasTipus.C_NAME as Tipusa
,IgazolasTipus.C_NAME as IgazolasTipusa
,KesesPercben as Keses
,Datum as Datum
,OraszamWithOrakezdeteVege as Oraszam
,TantargyId
,Felhasznalo.C_NYOMTATASINEV as OsztalyfonokNev
FROM #MulasztasOsztalyonkent MulasztasokOsztalyonkent
INNER JOIN T_DICTIONARYITEMBASE_OSSZES MulasztasTipus ON MulasztasokOsztalyonkent.Tipusa = MulasztasTipus.ID AND MulasztasTipus.C_TANEVID = @pTanevId AND MulasztasTipus.TOROLT='F'
LEFT JOIN T_DICTIONARYITEMBASE_OSSZES IgazolasTipus ON MulasztasokOsztalyonkent.IgazolasTipusa = IgazolasTipus.ID AND IgazolasTipus.C_TANEVID = @pTanevId AND IgazolasTipus.TOROLT='F'
LEFT JOIN T_OSZTALY_OSSZES Osztaly ON MulasztasokOsztalyonkent.OsztalyCsoportId = Osztaly.ID AND Osztaly.TOROLT='F'
LEFT JOIN T_FELHASZNALO_OSSZES Felhasznalo ON Osztaly.C_OSZTALYFONOKID = Felhasznalo.ID AND Felhasznalo.TOROLT='F'
ORDER BY Datum, RENDEZ1, RENDEZ2, RENDEZ3, RENDEZ4, RENDEZ5
SELECT
o.ID as OsztalyId
,ocs.C_EVFOLYAMTIPUSA as EvfolyamTipusa
,ocs.C_FELADATELLATASIHELYID as FeladatEllatasiHelyId
,ocs.C_KEPZESIFORMA as KepzesiForma
,o.C_OSZTALYFONOKID as OsztalyfonokId
,o.C_TANTERVID as TantervId
,o.C_SZAKMACSOPORT as SzakmaCsoport
,o.C_AGAZAT as Agazat
,o.C_SZAKKEPESITES as Szakkepesites
,o.C_RESZSZAKKEPESITES as Reszszakkepesites
,ocs.C_KERESZTFELEVES as OJCSJKeresztfeleves
,ocs.C_VEGZOSEVFOLYAM as CSJVegzosEvfolyamu
,ocs.C_ISTECHNIKAI as OJTechnikaiOsztaly
,o.C_NEMZETISEGI as OJNemzetisegi
,o.C_KETTANNYELVU as OJKettannyelvu
,o.C_NYELVIELOKESZITO as OJNyelviElokeszito
,ocs.C_ISGYOGYPEDAGOGIAILOGOPEDIAI as OJIsGyogypedagogiaiLogopediai
,o.C_SPORT as OJSportOsztaly
,o.C_AJPROGRAM as OJAranyJanosProgram
FROM T_OSZTALY_OSSZES as o
INNER JOIN T_OSZTALYCSOPORT_OSSZES ocs ON ocs.ID = o.ID AND ocs.TOROLT = 'F'
WHERE o.ID = @pOsztalyId AND o.TOROLT='F'
END
GO

View file

@ -0,0 +1,247 @@
DROP PROCEDURE IF EXISTS dbo.sp_GetUzenofuzetErtekelolap
DROP PROCEDURE IF EXISTS dbo.uspGetUzenofuzetErtekelolap
GO
CREATE PROCEDURE [dbo].[uspGetUzenofuzetErtekelolap]
@osztalyId INT
,@tanevId INT
,@intezmenyId INT
AS
BEGIN
SET NOCOUNT ON;
CREATE TABLE #szovegesTemp (
TanuloId int
,TanuloCsoportId int
,Honap nvarchar(100)
,Tantargy nvarchar(510)
,Ertekeles nvarchar(MAX)
,Tipus nvarchar(500)
,RogzitesDatum datetime
,RendezHonap int
)
--Intézmény, tanév
SELECT
T_INTEZMENYADATOK_OSSZES.C_NEV IntezmenyNeve
,T_INTEZMENYADATOK_OSSZES.C_VAROS IntezmenyVaros
,dbo.fnGetDokumentumIntezmenyCime(@tanevId) IntezmenyCime
,T_INTEZMENYADATOK_OSSZES.C_TELEFONSZAM TELEFON
,T_INTEZMENYADATOK_OSSZES.C_EMAILCIM EMAILCIM
,T_INTEZMENYADATOK_OSSZES.C_OMKOD IntezmenyOMKod
,T_INTEZMENYADATOK_OSSZES.C_IGAZGATONEVE Intezmenyvezeto
,(SELECT C_OSZTALYFONOKID FROM T_OSZTALY_OSSZES WHERE T_OSZTALY_OSSZES.ID = @osztalyId AND T_OSZTALY_OSSZES.C_ALTANEVID = @tanevId AND T_OSZTALY_OSSZES.TOROLT = 'F') PartnerID
,T_TANEV_OSSZES.C_NEV TANEV
,@osztalyId AS OsztalyId
FROM T_INTEZMENYADATOK_OSSZES
INNER JOIN T_TANEV_OSSZES on T_TANEV_OSSZES.ID = T_INTEZMENYADATOK_OSSZES.C_TANEVID AND T_TANEV_OSSZES.C_INTEZMENYID = T_INTEZMENYADATOK_OSSZES.C_INTEZMENYID AND T_TANEV_OSSZES.TOROLT = 'F'
WHERE T_INTEZMENYADATOK_OSSZES.TOROLT = 'F'
AND T_TANEV_OSSZES.ID = @tanevId
--Osztály, évfolyam
SELECT
ocs.C_NEV
,ocs.C_EVFOLYAMTIPUSA
,f.C_NYOMTATASINEV Osztalyfonok
,ocs.ID AS OsztalyId
,f.ID AS OsztalyfonokId
,ocs.C_EVFOLYAMTIPUSA EvfolyamTipusa
,ocs.C_FELADATELLATASIHELYID FeladatEllatasiHelyId
,o.C_TANTERVID TantervId
,ocs.C_KEPZESIFORMA KepzesiForma
,o.C_AGAZAT Agazat
,o.C_SZAKMACSOPORT SzakmaCsoport
,o.C_SZAKKEPESITES Szakkepesites
,o.C_RESZSZAKKEPESITES Reszszakkepesites
,ocs.C_KERESZTFELEVES OJCSJKeresztfeleves
,ocs.C_VEGZOSEVFOLYAM CSJVegzosEvfolyamu
,ocs.C_ISTECHNIKAI OJTechnikaiOsztaly
,o.C_NEMZETISEGI OJNemzetisegi
,o.C_KETTANNYELVU OJKettannyelvu
,o.C_NYELVIELOKESZITO OJNyelviElokeszito
,ocs.C_ISGYOGYPEDAGOGIAILOGOPEDIAI OJIsGyogypedagogiaiLogopediai
,o.C_SPORT OJSportOsztaly
,o.C_AJPROGRAM OJAranyJanosProgram
FROM T_OSZTALYCSOPORT_OSSZES AS ocs
INNER JOIN T_OSZTALY_OSSZES AS o ON ocs.id = o.ID
LEFT JOIN T_FELHASZNALO_OSSZES AS f ON f.id = o.c_osztalyfonokid
WHERE ocs.TOROLT='F'
AND ocs.ID = @osztalyId
AND ocs.C_TANEVID = @tanevId
--Tanuló adatai
SELECT
TanuloId Id
,TanuloCsoportId TanuloCsoportId
,OsztalyTanuloi.BelepesDatum BelepesDatum
,OsztalyTanuloi.KilepesDatum KilepesDatum
INTO #studentsWithTanuloCsoport
FROM fnGetDokumentumOsztalyokCsoportokTanuloi(@tanevId, @osztalyId, 'T') OsztalyTanuloi
SELECT
T_FELHASZNALO_OSSZES.ID TanuloId
,TanuloCsoportId
,T_FELHASZNALO_OSSZES.C_NYOMTATASINEV TANULONEV
,T_FELHASZNALO_OSSZES.C_OKTATASIAZONOSITO OKTATASIAZONOSITO
,@osztalyId AS OsztalyId
FROM T_FELHASZNALO_OSSZES
INNER JOIN #studentsWithTanuloCsoport Tanulok ON Tanulok.Id = T_FELHASZNALO_OSSZES.Id
ORDER BY T_FELHASZNALO_OSSZES.C_NYOMTATASINEV
SELECT
Datum
,RogzitesDatum
,TipusId
,ErtekelesSzoveg
,ErtekelesSzovegFormazott
,ErtekelesSzovegRovidNev
,ErtekelesOsztalyzatId
,ErtekelesOsztalyzatValue
,ErtekelesOsztalyzatNev
,ErtekelesSzazalek
,MagatartasOsztalyzatId
,MagatartasOsztalyzatNev
,MagatartasSzoveg
,MagatartasSzovegRovidNev
,MagatartasErtekId
,MagatartasErtek
,SzorgalomOsztalyzatId
,SzorgalomOsztalyzatNev
,SzorgalomSzoveg
,SzorgalomSzovegRovidNev
,SzorgalomErtekId
,SzorgalomErtek
,TanuloId
,TanuloCsoportId
,OsztalyCsoportId
,TantargyId
,TantargyNevZarojellel
,TantargyNev
,TantargyNevNyomtatvanyban
,TargyKategoriaId
,FotargyE
,FotargyId
,Altantargy
,ErtekelesTema
,Jeloles
,JelolesAndErtekelesTema
,isMagatartasSzorgalom
,RENDEZ1
,RENDEZ2
,RENDEZ3
,RENDEZ4
,RENDEZ5
INTO #ErtekelesekTemp
FROM fnGetDokumentumErtekelesekOsztalyonkent (@tanevId, @osztalyId, DEFAULT, DEFAULT, DEFAULT, DEFAULT, DEFAULT)
CREATE TABLE #Tantargyak(
ID INT
,C_FOTARGYID INT
,C_NEV NVARCHAR(255) COLLATE DATABASE_DEFAULT
,C_NEVNYOMTATVANYBAN NVARCHAR(255) COLLATE DATABASE_DEFAULT
,C_TARGYKATEGORIA INT
,c_tanuloid int
,c_tanulocsoportid int
,RENDEZ1 int
,RENDEZ2 nvarchar(255) COLLATE DATABASE_DEFAULT
,RENDEZ3 int
,RENDEZ4 int
,RENDEZ5 nvarchar(255) COLLATE DATABASE_DEFAULT
,C_INTEZMENYID INT
,C_TANEVID INT
);
EXEC uspGetDokumentumErtekelesekIdoszakonkent
@tanevId = @tanevId
,@osztalyCsoportId = @osztalyId
,@ertekelesTipusa = NULL
,@csakTanorai = 1
,@csakKivalasztottOsztalyCsoport = 0
,@atsoroltTanuloErtekelesek = 0
,@fuggolegesTantargyak = 0
,@isMegjegyzesMegjelenjen = 0
,@intezmenyId = @intezmenyId
/*Szöveges minősítések*/
INSERT INTO #szovegesTemp
SELECT
a.tanuloId
,a.TanuloCsoportId
,a.Honap
,a.Tantargy
,a.Ertekeles
,a.Tipus
,a.RogzitesDatum
,a.RendezHonap
FROM (
SELECT
s.Id tanuloId
,s.TanuloCsoportId
,szoveges.Honap
,szoveges.Tantargy
,szoveges.Ertekeles
,szoveges.Tipus
,szoveges.RendezHonap
,szoveges.RogzitesDatum
FROM #studentsWithTanuloCsoport s
INNER JOIN (
SELECT
TanuloId tanuloId
,TanuloCsoportId
,'[' + CONVERT(nvarchar (max), DATEPART(MONTH, Datum)) + '. hónap]' AS Honap
,IIF(TantargyNev <> TantargyNevNyomtatvanyban AND TantargyNevNyomtatvanyban IS NOT NULL, TantargyNevNyomtatvanyban + ' (' + TantargyNev + ')', TantargyNev) AS Tantargy
,IIF(Jeloles IS NOT NULL AND TipusId = 1518, 'sz' + Jeloles + ' ', '') + ErtekelesSzovegFormazott + ISNULL(' *' + ErtekelesTema, '') Ertekeles
,ErtekelesTipusDictionary.C_NAME AS Tipus
,CASE
WHEN DATEPART(MONTH, Datum) = 1 THEN 5
WHEN DATEPART(MONTH, Datum) = 2 THEN 6
WHEN DATEPART(MONTH, Datum) = 3 THEN 7
WHEN DATEPART(MONTH, Datum) = 4 THEN 8
WHEN DATEPART(MONTH, Datum) = 5 THEN 9
WHEN DATEPART(MONTH, Datum) = 6 THEN 10
WHEN DATEPART(MONTH, Datum) = 7 THEN 11
WHEN DATEPART(MONTH, Datum) = 8 THEN 12
WHEN DATEPART(MONTH, Datum) = 9 THEN 1
WHEN DATEPART(MONTH, Datum) = 10 THEN 2
WHEN DATEPART(MONTH, Datum) = 11 THEN 3
WHEN DATEPART(MONTH, Datum) = 12 THEN 4
END AS RendezHonap
,RogzitesDatum
FROM #ErtekelesekTemp ErtekelesTemp
INNER JOIN T_DICTIONARYITEMBASE_OSSZES ErtekelesTipusDictionary ON ErtekelesTipusDictionary.ID = ErtekelesTemp.TipusId
AND ErtekelesTipusDictionary.C_TANEVID = @tanevId
WHERE ErtekelesSzoveg IS NOT NULL
) szoveges ON szoveges.TANULOID = s.Id
AND s.TanuloCsoportId = szoveges.TanuloCsoportId
) a
SELECT DISTINCT
kulso.TanuloId
,kulso.TanuloCsoportId
,kulso.Honap
,kulso.Tantargy
,STUFF(((
SELECT
'<br>|' + belso.Ertekeles
FROM #szovegesTemp belso
WHERE kulso.TanuloId = belso.TanuloId
AND kulso.TanuloCsoportId = belso.TanuloCsoportId
AND kulso.Honap = belso.Honap
AND kulso.Tantargy = belso.Tantargy
AND kulso.Tipus = belso.Tipus
ORDER BY
belso.RendezHonap ASC
,belso.Tantargy ASC
,belso.RogzitesDatum ASC
FOR XML PATH(''), TYPE).value('.', 'nvarchar(max)'))
,1
,5
,'') AS Ertekeles
,kulso.Tipus
FROM #szovegesTemp kulso
DROP TABLE #studentsWithTanuloCsoport
DROP TABLE #Tantargyak
END
GO

View file

@ -0,0 +1,258 @@
DROP PROCEDURE IF EXISTS uspInsertEgyediNap
GO
CREATE PROCEDURE uspInsertEgyediNap
@pIntezmenyId INT
,@pTanevId INT
,@pTanevRendjeId INT
AS BEGIN
SET NOCOUNT ON
DECLARE
@elteroNapDatuma DATETIME
,@ujDatum DATETIME
,@csengetesiRendId INT
,@isOsszesCsoportraVonatkozik CHAR(1)
,@creator INT
,@hetnapja INT
,@hetirend INT
SELECT
@elteroNapDatuma = C_ELTERONAPDATUMA
,@ujDatum = C_DATUM
,@csengetesiRendId = C_CSENGETESIRENDID
,@isOsszesCsoportraVonatkozik = C_OSSZESCSOPORTRAVONATKOZIK
,@creator = CREATOR
,@hetnapja = C_HETNAPJA
,@hetirend = C_HETIREND
FROM T_TANEVRENDJE_OSSZES
WHERE ID = @pTanevRendjeId
IF @isOsszesCsoportraVonatkozik = 'T' BEGIN
INSERT INTO T_ORARENDIORA (
C_DIFFERENCIALT
,C_DRAMA
,C_HETIREND
,C_HETNAPJA
,C_IKTTANORA
,C_IPRTANORA
,C_KOOPERATIV
,C_MERES
,C_MINDENNAPOSTESTNEVELES
,C_NEMSZAKRENDSZERUORA
,C_NEMZETISEGIORA
,C_ISFELNOTTOKTATASISZERZODES
,C_ORASZAM
,C_SORSZAMOZANDO
,C_TAMOPORA
,C_TULORA
,C_BONTOTT
,C_ORAERVENYESSEGKEZDETE
,C_ORAERVENYESSEGVEGE
,C_PARHUZAMOSORA
,C_TIOP12
,C_ORAKEZDETE
,C_ORAVEGE
,C_IMPORTALT
,C_CSENGETESIRENDID
,C_CSENGETESIRENDORAID
,C_ORARENDIORAGROUPID
,C_EFOP32317
,C_MULTIKULTURALISORA
,C_KOMPLEXORA
,C_KIPORA
,C_VEKOP73317
,C_KAPORA
,C_TEREMID
,C_FOGLALKOZASID
,C_TANTARGYID
,C_OSZTALYCSOPORTID
,C_TANARID
,C_ORATULAJDONOSID
,C_INTEZMENYID
,C_TANEVID
,TOROLT
,SERIAL
,LASTCHANGED
,CREATED
,MODIFIER
,CREATOR
,ELOZOTANEVIREKORDID
,NNID
,C_EGYEDINAP
) SELECT
oo.C_DIFFERENCIALT AS C_DIFFERENCIALT -- C_DIFFERENCIALT - char(1)
,oo.C_DRAMA AS C_DRAMA -- C_DRAMA - char(1)
,1554 AS C_HETIREND -- C_HETIREND - int
,oo.C_HETNAPJA AS C_HETNAPJA -- C_HETNAPJA - int
,oo.C_IKTTANORA AS C_IKTTANORA -- C_IKTTANORA - char(1)
,oo.C_IPRTANORA AS C_IPRTANORA -- C_IPRTANORA - char(1)
,oo.C_KOOPERATIV AS C_KOOPERATIV -- C_KOOPERATIV - char(1)
,oo.C_MERES AS C_MERES -- C_MERES - char(1)
,oo.C_MINDENNAPOSTESTNEVELES AS C_MINDENNAPOSTESTNEVELES -- C_MINDENNAPOSTESTNEVELES - char(1)
,oo.C_NEMSZAKRENDSZERUORA AS C_NEMSZAKRENDSZERUORA -- C_NEMSZAKRENDSZERUORA - char(1)
,oo.C_NEMZETISEGIORA AS C_NEMZETISEGIORA -- C_NEMZETISEGIORA - char(1)
,oo.C_ISFELNOTTOKTATASISZERZODES AS C_ISFELNOTTOKTATASISZERZODES -- C_ISFELNOTTOKTATASISZERZODES - char(1)
,oo.C_ORASZAM AS C_ORASZAM -- C_ORASZAM - int
,oo.C_SORSZAMOZANDO AS C_SORSZAMOZANDO -- C_SORSZAMOZANDO - char(1)
,oo.C_TAMOPORA AS C_TAMOPORA -- C_TAMOPORA - char(1)
,oo.C_TULORA AS C_TULORA -- C_TULORA - char(1)
,oo.C_BONTOTT AS C_BONTOTT -- C_BONTOTT - char(1)
,@ujDatum AS C_ORAERVENYESSEGKEZDETE -- C_ORAERVENYESSEGKEZDETE - datetime
,@ujDatum AS C_ORAERVENYESSEGVEGE -- C_ORAERVENYESSEGVEGE - datetime
,oo.C_PARHUZAMOSORA AS C_PARHUZAMOSORA -- C_PARHUZAMOSORA - char(1)
,oo.C_TIOP12 AS C_TIOP12 -- C_TIOP12 - char(1)
,ISNULL(csro.C_KEZDETE, oo.C_ORAKEZDETE) AS C_ORAKEZDETE -- C_ORAKEZDETE - datetime
,ISNULL(csro.C_VEGE, oo.C_ORAVEGE) AS C_ORAVEGE -- C_ORAVEGE - datetime
,'F' AS C_IMPORTALT -- C_IMPORTALT - char(1)
,ISNULL(csro.C_CSENGETESIRENDID, oo.C_CSENGETESIRENDID) AS C_CSENGETESIRENDID -- C_CSENGETESIRENDID - int
,ISNULL(csro.ID, oo.C_CSENGETESIRENDORAID) AS C_CSENGETESIRENDORAID -- C_CSENGETESIRENDORAID - int
,oo.C_ORARENDIORAGROUPID AS C_ORARENDIORAGROUPID -- C_ORARENDIORAGROUPID - int
,oo.C_EFOP32317 AS C_EFOP32317 -- C_EFOP32317 - char(1)
,oo.C_MULTIKULTURALISORA AS C_MULTIKULTURALISORA -- C_MULTIKULTURALISORA - char(1)
,oo.C_KOMPLEXORA AS C_KOMPLEXORA -- C_KOMPLEXORA - char(1)
,oo.C_KIPORA AS C_KIPORA -- C_KIPORA - char(1)
,oo.C_VEKOP73317 AS C_VEKOP73317 -- C_VEKOP73317 - char(1)
,oo.C_KAPORA AS C_KAPORA -- C_KAPORA - char(1)
,oo.C_TEREMID AS C_TEREMID -- C_TEREMID - int
,oo.C_FOGLALKOZASID AS C_FOGLALKOZASID -- C_FOGLALKOZASID - int
,oo.C_TANTARGYID AS C_TANTARGYID -- C_TANTARGYID - int
,oo.C_OSZTALYCSOPORTID AS C_OSZTALYCSOPORTID -- C_OSZTALYCSOPORTID - int
,oo.C_TANARID AS C_TANARID -- C_TANARID - int
,oo.C_ORATULAJDONOSID AS C_ORATULAJDONOSID -- C_ORATULAJDONOSID - int
,oo.C_INTEZMENYID AS C_INTEZMENYID -- C_INTEZMENYID - int
,oo.C_TANEVID AS C_TANEVID -- C_TANEVID - int
,'F' AS TOROLT -- TOROLT - char(1)
,0 AS SERIAL -- SERIAL - int
,GETDATE() AS LASTCHANGED -- LASTCHANGED - datetime
,GETDATE() AS CREATED -- CREATED - datetime
,@creator AS MODIFIER -- MODIFIER - int
,@creator AS CREATOR -- CREATOR - int
,NULL AS ELOZOTANEVIREKORDID -- ELOZOTANEVIREKORDID - int
,NULL AS NNID -- NNID - int
,'T' AS C_EGYEDINAP -- C_EGYEDINAP - char(1)
FROM T_ORARENDIORA_OSSZES oo
LEFT JOIN T_CSENGETESIRENDORA_OSSZES csro ON csro.C_ORASZAM = oo.C_ORASZAM AND csro.C_CSENGETESIRENDID = @csengetesiRendId AND csro.TOROLT = 'F'
WHERE ((C_ORAERVENYESSEGKEZDETE <= @elteroNapDatuma AND (C_ORAERVENYESSEGVEGE IS NULL OR C_ORAERVENYESSEGVEGE > @elteroNapDatuma)) OR (C_ORAERVENYESSEGKEZDETE = @elteroNapDatuma AND C_ORAERVENYESSEGVEGE = @elteroNapDatuma))
AND oo.C_TANEVID = @pTanevId
AND oo.C_INTEZMENYID = @pIntezmenyId
AND oo.TOROLT = 'F'
AND oo.C_EGYEDINAP = 'F'
AND oo.C_HETNAPJA = @hetnapja AND (oo.C_HETIREND = 1554 OR oo.C_HETIREND = @hetirend)
END
ELSE BEGIN
INSERT INTO T_ORARENDIORA (
C_DIFFERENCIALT
,C_DRAMA
,C_HETIREND
,C_HETNAPJA
,C_IKTTANORA
,C_IPRTANORA
,C_KOOPERATIV
,C_MERES
,C_MINDENNAPOSTESTNEVELES
,C_NEMSZAKRENDSZERUORA
,C_NEMZETISEGIORA
,C_ISFELNOTTOKTATASISZERZODES
,C_ORASZAM
,C_SORSZAMOZANDO
,C_TAMOPORA
,C_TULORA
,C_BONTOTT
,C_ORAERVENYESSEGKEZDETE
,C_ORAERVENYESSEGVEGE
,C_PARHUZAMOSORA
,C_TIOP12
,C_ORAKEZDETE
,C_ORAVEGE
,C_IMPORTALT
,C_CSENGETESIRENDID
,C_CSENGETESIRENDORAID
,C_ORARENDIORAGROUPID
,C_EFOP32317
,C_MULTIKULTURALISORA
,C_KOMPLEXORA
,C_KIPORA
,C_VEKOP73317
,C_KAPORA
,C_TEREMID
,C_FOGLALKOZASID
,C_TANTARGYID
,C_OSZTALYCSOPORTID
,C_TANARID
,C_ORATULAJDONOSID
,C_INTEZMENYID
,C_TANEVID
,TOROLT
,SERIAL
,LASTCHANGED
,CREATED
,MODIFIER
,CREATOR
,ELOZOTANEVIREKORDID
,NNID
,C_EGYEDINAP
) SELECT
oo.C_DIFFERENCIALT AS C_DIFFERENCIALT -- C_DIFFERENCIALT - char(1)
,oo.C_DRAMA AS C_DRAMA -- C_DRAMA - char(1)
,1554 AS C_HETIREND -- C_HETIREND - int
,oo.C_HETNAPJA AS C_HETNAPJA -- C_HETNAPJA - int
,oo.C_IKTTANORA AS C_IKTTANORA -- C_IKTTANORA - char(1)
,oo.C_IPRTANORA AS C_IPRTANORA -- C_IPRTANORA - char(1)
,oo.C_KOOPERATIV AS C_KOOPERATIV -- C_KOOPERATIV - char(1)
,oo.C_MERES AS C_MERES -- C_MERES - char(1)
,oo.C_MINDENNAPOSTESTNEVELES AS C_MINDENNAPOSTESTNEVELES -- C_MINDENNAPOSTESTNEVELES - char(1)
,oo.C_NEMSZAKRENDSZERUORA AS C_NEMSZAKRENDSZERUORA -- C_NEMSZAKRENDSZERUORA - char(1)
,oo.C_NEMZETISEGIORA AS C_NEMZETISEGIORA -- C_NEMZETISEGIORA - char(1)
,oo.C_ISFELNOTTOKTATASISZERZODES AS C_ISFELNOTTOKTATASISZERZODES -- C_ISFELNOTTOKTATASISZERZODES - char(1)
,oo.C_ORASZAM AS C_ORASZAM -- C_ORASZAM - int
,oo.C_SORSZAMOZANDO AS C_SORSZAMOZANDO -- C_SORSZAMOZANDO - char(1)
,oo.C_TAMOPORA AS C_TAMOPORA -- C_TAMOPORA - char(1)
,oo.C_TULORA AS C_TULORA -- C_TULORA - char(1)
,oo.C_BONTOTT AS C_BONTOTT -- C_BONTOTT - char(1)
,@ujDatum AS C_ORAERVENYESSEGKEZDETE -- C_ORAERVENYESSEGKEZDETE - datetime
,@ujDatum AS C_ORAERVENYESSEGVEGE -- C_ORAERVENYESSEGVEGE - datetime
,oo.C_PARHUZAMOSORA AS C_PARHUZAMOSORA -- C_PARHUZAMOSORA - char(1)
,oo.C_TIOP12 AS C_TIOP12 -- C_TIOP12 - char(1)
,ISNULL(csro.C_KEZDETE, oo.C_ORAKEZDETE) AS C_ORAKEZDETE -- C_ORAKEZDETE - datetime
,ISNULL(csro.C_VEGE, oo.C_ORAVEGE) AS C_ORAVEGE -- C_ORAVEGE - datetime
,'F' AS C_IMPORTALT -- C_IMPORTALT - char(1)
,ISNULL(csro.C_CSENGETESIRENDID, oo.C_CSENGETESIRENDID) AS C_CSENGETESIRENDID -- C_CSENGETESIRENDID - int
,ISNULL(csro.ID, oo.C_CSENGETESIRENDORAID) AS C_CSENGETESIRENDORAID -- C_CSENGETESIRENDORAID - int
,oo.C_ORARENDIORAGROUPID AS C_ORARENDIORAGROUPID -- C_ORARENDIORAGROUPID - int
,oo.C_EFOP32317 AS C_EFOP32317 -- C_EFOP32317 - char(1)
,oo.C_MULTIKULTURALISORA AS C_MULTIKULTURALISORA -- C_MULTIKULTURALISORA - char(1)
,oo.C_KOMPLEXORA AS C_KOMPLEXORA -- C_KOMPLEXORA - char(1)
,oo.C_KIPORA AS C_KIPORA -- C_KIPORA - char(1)
,oo.C_VEKOP73317 AS C_VEKOP73317 -- C_VEKOP73317 - char(1)
,oo.C_KAPORA AS C_KAPORA -- C_KAPORA - char(1)
,oo.C_TEREMID AS C_TEREMID -- C_TEREMID - int
,oo.C_FOGLALKOZASID AS C_FOGLALKOZASID -- C_FOGLALKOZASID - int
,oo.C_TANTARGYID AS C_TANTARGYID -- C_TANTARGYID - int
,oo.C_OSZTALYCSOPORTID AS C_OSZTALYCSOPORTID -- C_OSZTALYCSOPORTID - int
,oo.C_TANARID AS C_TANARID -- C_TANARID - int
,oo.C_ORATULAJDONOSID AS C_ORATULAJDONOSID -- C_ORATULAJDONOSID - int
,oo.C_INTEZMENYID AS C_INTEZMENYID -- C_INTEZMENYID - int
,oo.C_TANEVID AS C_TANEVID -- C_TANEVID - int
,'F' AS TOROLT -- TOROLT - char(1)
,0 AS SERIAL -- SERIAL - int
,GETDATE() AS LASTCHANGED -- LASTCHANGED - datetime
,GETDATE() AS CREATED -- CREATED - datetime
,@creator AS MODIFIER -- MODIFIER - int
,@creator AS CREATOR -- CREATOR - int
,NULL AS ELOZOTANEVIREKORDID -- ELOZOTANEVIREKORDID - int
,NULL AS NNID -- NNID - int
,'T' AS C_EGYEDINAP -- C_EGYEDINAP - char(1)
FROM T_ORARENDIORA_OSSZES oo
INNER JOIN T_OSZTALYCSOPORT_TANEVRENDJE ocstr ON oo.C_OSZTALYCSOPORTID = ocstr.C_OSZTALYCSOPORTID AND ocstr.C_TANEVRENDJEID = @pTanevRendjeId
LEFT JOIN T_CSENGETESIRENDORA_OSSZES csro ON csro.C_ORASZAM = oo.C_ORASZAM AND csro.C_CSENGETESIRENDID = @csengetesiRendId AND csro.TOROLT = 'F'
WHERE ((C_ORAERVENYESSEGKEZDETE <= @elteroNapDatuma AND (C_ORAERVENYESSEGVEGE IS NULL OR C_ORAERVENYESSEGVEGE > @elteroNapDatuma)) OR (C_ORAERVENYESSEGKEZDETE = @elteroNapDatuma AND C_ORAERVENYESSEGVEGE = @elteroNapDatuma))
AND oo.C_TANEVID = @pTanevId
AND oo.C_INTEZMENYID = @pIntezmenyId
AND oo.TOROLT = 'F'
AND oo.C_EGYEDINAP = 'F'
AND oo.C_HETNAPJA = @hetnapja AND (oo.C_HETIREND = 1554 OR oo.C_HETIREND = @hetirend)
END
END

View file

@ -0,0 +1,188 @@
DROP PROCEDURE IF EXISTS uspInsertEgyediNapOsztalycsoport
GO
CREATE PROCEDURE uspInsertEgyediNapOsztalycsoport
@pIntezmenyId int
,@pTanevId int
,@pTanevRendjeId INT
,@pOsztalycsoportId INT
,@pIsKapcsolodoCsoportokIs CHAR(1)
AS BEGIN
SET NOCOUNT ON
DECLARE
@elteroNapDatuma datetime
,@ujDatum datetime
,@csengetesiRendId int
,@creator INT
,@hetnapja INT
,@hetirend INT
SELECT
@elteroNapDatuma = C_ELTERONAPDATUMA
,@ujDatum = C_DATUM
,@csengetesiRendId = C_CSENGETESIRENDID
,@creator = CREATOR
,@hetnapja = C_HETNAPJA
,@hetirend = C_HETIREND
FROM T_TANEVRENDJE_OSSZES
WHERE ID = @pTanevRendjeId
DECLARE @sql NVARCHAR(MAX) = '';
SET @sql += N'
INSERT INTO T_ORARENDIORA (
C_DIFFERENCIALT
,C_DRAMA
,C_HETIREND
,C_HETNAPJA
,C_IKTTANORA
,C_IPRTANORA
,C_KOOPERATIV
,C_MERES
,C_MINDENNAPOSTESTNEVELES
,C_NEMSZAKRENDSZERUORA
,C_NEMZETISEGIORA
,C_ISFELNOTTOKTATASISZERZODES
,C_ORASZAM
,C_SORSZAMOZANDO
,C_TAMOPORA
,C_TULORA
,C_BONTOTT
,C_ORAERVENYESSEGKEZDETE
,C_ORAERVENYESSEGVEGE
,C_PARHUZAMOSORA
,C_TIOP12
,C_ORAKEZDETE
,C_ORAVEGE
,C_IMPORTALT
,C_CSENGETESIRENDID
,C_CSENGETESIRENDORAID
,C_ORARENDIORAGROUPID
,C_EFOP32317
,C_MULTIKULTURALISORA
,C_KOMPLEXORA
,C_KIPORA
,C_VEKOP73317
,C_KAPORA
,C_TEREMID
,C_FOGLALKOZASID
,C_TANTARGYID
,C_OSZTALYCSOPORTID
,C_TANARID
,C_ORATULAJDONOSID
,C_INTEZMENYID
,C_TANEVID
,TOROLT
,SERIAL
,LASTCHANGED
,CREATED
,MODIFIER
,CREATOR
,ELOZOTANEVIREKORDID
,NNID
,C_EGYEDINAP
) SELECT
oo.C_DIFFERENCIALT AS C_DIFFERENCIALT -- C_DIFFERENCIALT - char(1)
,oo.C_DRAMA AS C_DRAMA -- C_DRAMA - char(1)
,1554 AS C_HETIREND -- C_HETIREND - int
,oo.C_HETNAPJA AS C_HETNAPJA -- C_HETNAPJA - int
,oo.C_IKTTANORA AS C_IKTTANORA -- C_IKTTANORA - char(1)
,oo.C_IPRTANORA AS C_IPRTANORA -- C_IPRTANORA - char(1)
,oo.C_KOOPERATIV AS C_KOOPERATIV -- C_KOOPERATIV - char(1)
,oo.C_MERES AS C_MERES -- C_MERES - char(1)
,oo.C_MINDENNAPOSTESTNEVELES AS C_MINDENNAPOSTESTNEVELES -- C_MINDENNAPOSTESTNEVELES - char(1)
,oo.C_NEMSZAKRENDSZERUORA AS C_NEMSZAKRENDSZERUORA -- C_NEMSZAKRENDSZERUORA - char(1)
,oo.C_NEMZETISEGIORA AS C_NEMZETISEGIORA -- C_NEMZETISEGIORA - char(1)
,oo.C_ISFELNOTTOKTATASISZERZODES AS C_ISFELNOTTOKTATASISZERZODES -- C_ISFELNOTTOKTATASISZERZODES - char(1)
,oo.C_ORASZAM AS C_ORASZAM -- C_ORASZAM - int
,oo.C_SORSZAMOZANDO AS C_SORSZAMOZANDO -- C_SORSZAMOZANDO - char(1)
,oo.C_TAMOPORA AS C_TAMOPORA -- C_TAMOPORA - char(1)
,oo.C_TULORA AS C_TULORA -- C_TULORA - char(1)
,oo.C_BONTOTT AS C_BONTOTT -- C_BONTOTT - char(1)
,@ujDatum AS C_ORAERVENYESSEGKEZDETE -- C_ORAERVENYESSEGKEZDETE - datetime
,@ujDatum AS C_ORAERVENYESSEGVEGE -- C_ORAERVENYESSEGVEGE - datetime
,oo.C_PARHUZAMOSORA AS C_PARHUZAMOSORA -- C_PARHUZAMOSORA - char(1)
,oo.C_TIOP12 AS C_TIOP12 -- C_TIOP12 - char(1)
,ISNULL(csro.C_KEZDETE, oo.C_ORAKEZDETE) AS C_ORAKEZDETE -- C_ORAKEZDETE - datetime
,ISNULL(csro.C_VEGE, oo.C_ORAVEGE) AS C_ORAVEGE -- C_ORAVEGE - datetime
,''F'' AS C_IMPORTALT -- C_IMPORTALT - char(1)
,ISNULL(csro.C_CSENGETESIRENDID, oo.C_CSENGETESIRENDID) AS C_CSENGETESIRENDID -- C_CSENGETESIRENDID - int
,ISNULL(csro.ID, oo.C_CSENGETESIRENDORAID) AS C_CSENGETESIRENDORAID -- C_CSENGETESIRENDORAID - int
,oo.C_ORARENDIORAGROUPID AS C_ORARENDIORAGROUPID -- C_ORARENDIORAGROUPID - int
,oo.C_EFOP32317 AS C_EFOP32317 -- C_EFOP32317 - char(1)
,oo.C_MULTIKULTURALISORA AS C_MULTIKULTURALISORA -- C_MULTIKULTURALISORA - char(1)
,oo.C_KOMPLEXORA AS C_KOMPLEXORA -- C_KOMPLEXORA - char(1)
,oo.C_KIPORA AS C_KIPORA -- C_KIPORA - char(1)
,oo.C_VEKOP73317 AS C_VEKOP73317 -- C_VEKOP73317 - char(1)
,oo.C_KAPORA AS C_KAPORA -- C_KAPORA - char(1)
,oo.C_TEREMID AS C_TEREMID -- C_TEREMID - int
,oo.C_FOGLALKOZASID AS C_FOGLALKOZASID -- C_FOGLALKOZASID - int
,oo.C_TANTARGYID AS C_TANTARGYID -- C_TANTARGYID - int
,oo.C_OSZTALYCSOPORTID AS C_OSZTALYCSOPORTID -- C_OSZTALYCSOPORTID - int
,oo.C_TANARID AS C_TANARID -- C_TANARID - int
,oo.C_ORATULAJDONOSID AS C_ORATULAJDONOSID -- C_ORATULAJDONOSID - int
,oo.C_INTEZMENYID AS C_INTEZMENYID -- C_INTEZMENYID - int
,oo.C_TANEVID AS C_TANEVID -- C_TANEVID - int
,''F'' AS TOROLT -- TOROLT - char(1)
,0 AS SERIAL -- SERIAL - int
,GETDATE() AS LASTCHANGED -- LASTCHANGED - datetime
,GETDATE() AS CREATED -- CREATED - datetime
,@creator AS MODIFIER -- MODIFIER - int
,@creator AS CREATOR -- CREATOR - int
,NULL AS ELOZOTANEVIREKORDID -- ELOZOTANEVIREKORDID - int
,NULL AS NNID -- NNID - int
,''T'' AS C_EGYEDINAP -- C_EGYEDINAP - char(1)
FROM T_ORARENDIORA_OSSZES oo
INNER JOIN T_OSZTALYCSOPORT_TANEVRENDJE ocstr ON oo.C_OSZTALYCSOPORTID = ocstr.C_OSZTALYCSOPORTID AND ocstr.C_TANEVRENDJEID = @pTanevRendjeId
LEFT JOIN T_CSENGETESIRENDORA_OSSZES csro ON csro.C_ORASZAM = oo.C_ORASZAM AND csro.C_CSENGETESIRENDID = @csengetesiRendId AND csro.TOROLT = ''F''
WHERE ((C_ORAERVENYESSEGKEZDETE <= @elteroNapDatuma AND (C_ORAERVENYESSEGVEGE IS NULL OR C_ORAERVENYESSEGVEGE > @elteroNapDatuma)) OR (C_ORAERVENYESSEGKEZDETE = @elteroNapDatuma AND C_ORAERVENYESSEGVEGE = @elteroNapDatuma))
AND oo.C_TANEVID = @pTanevId
AND oo.C_INTEZMENYID = @pIntezmenyId
AND oo.TOROLT = ''F''
AND oo.C_HETNAPJA = @hetnapja AND (oo.C_HETIREND = 1554 OR oo.C_HETIREND = @hetirend)'
IF(@pIsKapcsolodoCsoportokIs = 'T')
BEGIN
SET @sql += N'
AND ocstr.C_OSZTALYCSOPORTID IN
(SELECT ID FROM T_OSZTALYCSOPORT_OSSZES WHERE ID = @pOsztalycsoportId AND TOROLT = ''F''
UNION
SELECT ID FROM T_CSOPORT_OSSZES WHERE C_OSZTALYBONTASID = @pOsztalycsoportId AND TOROLT = ''F'')
'
END
ELSE
BEGIN
SET @sql += N'
AND ocstr.C_OSZTALYCSOPORTID = @pOsztalycsoportId
'
END
EXEC sp_executesql @sql, N'
@pIntezmenyId INT
,@pTanevId INT
,@pTanevRendjeId INT
,@pOsztalycsoportId INT
,@pIsKapcsolodoCsoportokIs CHAR(1)
,@elteroNapDatuma DATETIME
,@ujDatum DATETIME
,@csengetesiRendId INT
,@creator INT
,@hetnapja INT
,@hetirend INT'
,@pIntezmenyId = @pIntezmenyId
,@pTanevId = @pTanevId
,@pTanevRendjeId = @pTanevRendjeId
,@pOsztalycsoportId = @pOsztalycsoportId
,@pIsKapcsolodoCsoportokIs = @pIsKapcsolodoCsoportokIs
,@elteroNapDatuma = @elteroNapDatuma
,@ujDatum = @ujDatum
,@csengetesiRendId = @csengetesiRendId
,@creator = @creator
,@hetnapja = @hetnapja
,@hetirend = @hetirend
END

View file

@ -0,0 +1,353 @@
DROP PROCEDURE IF EXISTS uspOrarendImport
GO
CREATE PROCEDURE uspOrarendImport
@pIntezmenyId int
,@pTanevId int
,@pUserId int
,@pImportJson nvarchar(max)
,@pIsTorles bit
,@pIsModositas bit
,@pIsNapirendImport bit
,@pOrarendiOraLezarasDateTime datetime = NULL
AS
BEGIN
SET NOCOUNT ON;
DECLARE
@tableNameList nvarchar(2000) = 'T_TEREM_OSSZES'
,@actualJson nvarchar(max) = ''
,@lastChangedDateTime datetime = GETDATE()
--Ha törlés van, akkor a kapcsolódások törlésével kell kezdenünk!
IF (@pIsTorles = 1) BEGIN
--Órarendi óra kapcsolatainak törlése
UPDATE tao SET
tao.C_ORARENDIORAID = NULL
,tao.SERIAL = tao.SERIAL + 1
,tao.LASTCHANGED = @lastChangedDateTime
,tao.MODIFIER = @pUserId
FROM T_TANITASIORA_OSSZES tao
WHERE tao.C_INTEZMENYID = @pIntezmenyId
AND tao.C_TANEVID = @pTanevId
AND tao.TOROLT = 'F'
AND EXISTS (
SELECT TOP 1 ID
FROM T_ORARENDIORA_OSSZES oo
WHERE oo.ID = tao.C_ORARENDIORAID
AND oo.C_INTEZMENYID = @pIntezmenyId
AND oo.C_TANEVID = @pTanevId
AND oo.TOROLT = 'F'
AND oo.C_IMPORTALT = 'T'
AND ((@pIsNapirendImport = 0 AND oo.C_CSENGETESIRENDID IS NOT NULL)
OR (@pIsNapirendImport = 1 AND oo.C_CSENGETESIRENDID IS NULL))
)
UPDATE hf SET
hf.TOROLT = 'T'
,hf.SERIAL = hf.SERIAL + 1
,hf.LASTCHANGED = @lastChangedDateTime
,hf.MODIFIER = @pUserId
FROM T_HAZIFELADATOK_OSSZES hf
WHERE hf.C_INTEZMENYID = @pIntezmenyId
AND hf.C_TANEVID = @pTanevId
AND hf.TOROLT = 'F'
AND EXISTS (
SELECT TOP 1 ID
FROM T_ORARENDIORA_OSSZES oo
WHERE oo.ID = hf.C_ORARENDIORAID
AND oo.C_INTEZMENYID = @pIntezmenyId
AND oo.C_TANEVID = @pTanevId
AND oo.TOROLT = 'F'
AND oo.C_IMPORTALT = 'T'
AND ((@pIsNapirendImport = 0 AND oo.C_CSENGETESIRENDID IS NOT NULL)
OR (@pIsNapirendImport = 1 AND oo.C_CSENGETESIRENDID IS NULL))
)
UPDATE oot SET
oot.C_ORARENDIORAID = NULL
,oot.SERIAL = oot.SERIAL + 1
,oot.LASTCHANGED = @lastChangedDateTime
,oot.MODIFIER = @pUserId
FROM T_ORARENDIORATULAJDONSAG oot
WHERE oot.C_INTEZMENYID = @pIntezmenyId
AND oot.C_TANEVID = @pTanevId
AND oot.TOROLT = 'F'
AND EXISTS (
SELECT TOP 1 ID
FROM T_ORARENDIORA_OSSZES oo
WHERE oo.ID = oot.C_ORARENDIORAID
AND oo.C_INTEZMENYID = @pIntezmenyId
AND oo.C_TANEVID = @pTanevId
AND oo.TOROLT = 'F'
AND oo.C_IMPORTALT = 'T'
AND ((@pIsNapirendImport = 0 AND oo.C_CSENGETESIRENDID IS NOT NULL)
OR (@pIsNapirendImport = 1 AND oo.C_CSENGETESIRENDID IS NULL))
)
DELETE hi
FROM T_HELYETTESITESIIDOSZAK_OSSZES hi
WHERE EXISTS (
SELECT TOP 1 ID
FROM T_ORARENDIORA_OSSZES oo
WHERE oo.ID = hi.C_HELYETTESITETTORARENDID
AND oo.C_INTEZMENYID = @pIntezmenyId
AND oo.C_TANEVID = @pTanevId
AND oo.TOROLT = 'F'
AND oo.C_IMPORTALT = 'T'
AND ((@pIsNapirendImport = 0 AND oo.C_CSENGETESIRENDID IS NOT NULL)
OR (@pIsNapirendImport = 1 AND oo.C_CSENGETESIRENDID IS NULL))
)
--Órarendi órák törlése
UPDATE oo SET
oo.TOROLT = 'T'
,oo.SERIAL = oo.SERIAL + 1
,oo.LASTCHANGED = @lastChangedDateTime
,oo.MODIFIER = @pUserId
FROM T_ORARENDIORA_OSSZES oo
WHERE oo.C_INTEZMENYID = @pIntezmenyId
AND oo.C_TANEVID = @pTanevId
AND oo.TOROLT = 'F'
AND oo.C_IMPORTALT = 'T'
AND oo.C_ORAERVENYESSEGVEGE <> oo.C_ORAERVENYESSEGKEZDETE
AND ((@pIsNapirendImport = 0 AND oo.C_CSENGETESIRENDID IS NOT NULL)
OR (@pIsNapirendImport = 1 AND oo.C_CSENGETESIRENDID IS NULL))
END
--Ha módosítás van, akkor a már létező órarendi órák módosításával kell kezdenünk!
IF (@pIsModositas = 1) BEGIN
--Korábbi órarendi órák lezárása
UPDATE oo SET
oo.C_ORAERVENYESSEGVEGE = @pOrarendiOraLezarasDateTime
,oo.SERIAL = oo.SERIAL + 1
,oo.LASTCHANGED = @lastChangedDateTime
,oo.MODIFIER = @pUserId
FROM T_ORARENDIORA_OSSZES oo
WHERE oo.C_INTEZMENYID = @pIntezmenyId
AND oo.C_TANEVID = @pTanevId
AND oo.TOROLT = 'F'
AND (oo.C_ORAERVENYESSEGVEGE IS NULL
OR oo.C_ORAERVENYESSEGVEGE > @pOrarendiOraLezarasDateTime)
AND oo.C_ORAERVENYESSEGVEGE <> oo.C_ORAERVENYESSEGKEZDETE
AND oo.C_ORAERVENYESSEGKEZDETE < @pOrarendiOraLezarasDateTime
AND ((@pIsNapirendImport = 0 AND oo.C_CSENGETESIRENDID IS NOT NULL)
OR (@pIsNapirendImport = 1 AND oo.C_CSENGETESIRENDID IS NULL))
--A korábban felvett, de későbbi időpontra importált órarendi órák törlése
UPDATE oo SET
oo.TOROLT = 'T'
,oo.SERIAL = oo.SERIAL + 1
,oo.LASTCHANGED = @lastChangedDateTime
,oo.MODIFIER = @pUserId
FROM T_ORARENDIORA_OSSZES oo
WHERE oo.C_INTEZMENYID = @pIntezmenyId
AND oo.C_TANEVID = @pTanevId
AND oo.TOROLT = 'F'
AND oo.C_IMPORTALT = 'T'
AND oo.C_ORAERVENYESSEGVEGE <> oo.C_ORAERVENYESSEGKEZDETE
AND oo.C_ORAERVENYESSEGKEZDETE >= @pOrarendiOraLezarasDateTime
AND ((@pIsNapirendImport = 0 AND oo.C_CSENGETESIRENDID IS NOT NULL)
OR (@pIsNapirendImport = 1 AND oo.C_CSENGETESIRENDID IS NULL))
END
EXECUTE uspTantargyfelosztasImport @pIntezmenyId, @pTanevId, @pUserId, @pImportJson, @pIsTorles
--NOTE: A törlés azért false, mert a T_TEREM_OSSZES view-ból nem törlünk importnál!
EXECUTE uspDynamicImportJsonSplit @pIntezmenyId = @pIntezmenyId, @pTanevId = @pTanevId, @pUserId = @pUserId, @pImportJson = @pImportJson, @pIsTorles = 0, @pIsSubTable = 0, @pTableNameList = @tableNameList
--NOTE: Órarendi óra temp tábla incializálása
CREATE TABLE #OrarendiOraTempTable (
ID int
,C_TANARID int
,C_TANTARGYID int
,C_OSZTALYCSOPORTID int
,C_TEREMID int
,C_FOGLALKOZASID int
,C_HETIREND int
,C_HETNAPJA int
,C_ORASZAM int
,C_ORAERVENYESSEGKEZDETE datetime
,C_ORAERVENYESSEGVEGE datetime
,C_EGYEDINAP char(1)
,C_ISKEZZELFELVETTEGYEDINAp char(1)
,C_CSENGETESIRENDID int
,C_CSENGETESIRENDORAID int
,C_ORAKEZDETE datetime
,C_ORAVEGE datetime
,C_BONTOTT char(1)
,C_ORATULAJDONOSID int
,C_IMPORTALT char(1)
,C_INTEZMENYID int
,C_TANEVID int
,TOROLT char(1)
,SERIAL int
,LASTCHANGED datetime
,CREATED datetime
,MODIFIER int
,CREATOR int
,ELOZOTANEVIREKORDID int
,NNID int
,Operation int
)
INSERT INTO #OrarendiOraTempTable
SELECT
oo.ID
,oo.C_TANARID
,tt.ID AS C_TANTARGYID
,ocs.ID AS C_OSZTALYCSOPORTID
,t.ID AS C_TEREMID
,fg.ID AS C_FOGLALKOZASID
,oo.C_HETIREND
,oo.C_HETNAPJA
,oo.C_ORASZAM
,oo.C_ORAERVENYESSEGKEZDETE
,oo.C_ORAERVENYESSEGVEGE
,oo.C_EGYEDINAP
,oo.C_ISKEZZELFELVETTEGYEDINAP
,oo.C_CSENGETESIRENDID
,oo.C_CSENGETESIRENDORAID
,oo.C_ORAKEZDETE
,oo.C_ORAVEGE
,oo.C_BONTOTT
,oo.C_ORATULAJDONOSID
,oo.C_IMPORTALT
,oo.C_INTEZMENYID
,oo.C_TANEVID
,oo.TOROLT
,oo.SERIAL
,oo.LASTCHANGED
,oo.CREATED
,oo.MODIFIER
,oo.CREATOR
,oo.ELOZOTANEVIREKORDID
,oo.NNID
,oo.Operation
FROM OPENJSON(@pImportJson, N'lax $.ImportJson.T_ORARENDIORA_OSSZES')
WITH (
ID int '$.ID'
,C_TANARID int '$.C_TANARID'
,C_HETIREND int '$.C_HETIREND'
,C_HETNAPJA int '$.C_HETNAPJA'
,C_ORASZAM int '$.C_ORASZAM'
,C_ORAERVENYESSEGKEZDETE datetime '$.C_ORAERVENYESSEGKEZDETE'
,C_ORAERVENYESSEGVEGE datetime '$.C_ORAERVENYESSEGVEGE'
,C_EGYEDINAP char(1) '$.C_EGYEDINAP'
,C_ISKEZZELFELVETTEGYEDINAP char(1) '$.C_ISKEZZELFELVETTEGYEDINAP'
,C_CSENGETESIRENDID int '$.C_CSENGETESIRENDID'
,C_CSENGETESIRENDORAID int '$.C_CSENGETESIRENDORAID'
,C_ORAKEZDETE datetime '$.C_ORAKEZDETE'
,C_ORAVEGE datetime '$.C_ORAVEGE'
,C_BONTOTT char(1) '$.C_BONTOTT'
,C_ORATULAJDONOSID int '$.C_ORATULAJDONOSID'
,C_IMPORTALT char(1) '$.C_IMPORTALT'
,C_INTEZMENYID int '$.C_INTEZMENYID'
,C_TANEVID int '$.C_TANEVID'
,TOROLT char(1) '$.TOROLT'
,SERIAL int '$.SERIAL'
,LASTCHANGED datetime '$.LASTCHANGED'
,CREATED datetime '$.CREATED'
,MODIFIER int '$.MODIFIER'
,CREATOR int '$.CREATOR'
,ELOZOTANEVIREKORDID int '$.ELOZOTANEVIREKORDID'
,NNID int '$.NNID'
,Operation int '$.Operation'
,TantargyNev nvarchar(255) '$.TantargyNev'
,OsztalyCsoportNev nvarchar(255) '$.OsztalyCsoportNev'
,TeremNev nvarchar(255) '$.TeremNev'
) oo
LEFT JOIN T_TANTARGY_OSSZES tt ON
--NOTE: A leküldött adat már teljesen jól formázott, de a db-ben lehetnek rossz adatok. Az összehasonlításhoz ezt csináljuk:
-- Kisbetűsítjük -> Lecseréljük a NO BREAK SPACE-eket, SPACE-ekre -> Lecseréljük az összes többszörös szóközt egyre -> Trimmelünk
LTRIM(RTRIM(REPLACE(REPLACE(REPLACE(REPLACE(LOWER(tt.C_NEV),CHAR(160),CHAR(32)),CHAR(32),'(¤¤)'),'¤)(¤',''),'(¤¤)',CHAR(32)))) = LOWER(oo.TantargyNev)
AND tt.C_INTEZMENYID = @pIntezmenyId
AND tt.C_TANEVID = @pTanevId
AND tt.TOROLT = 'F'
LEFT JOIN T_OSZTALYCSOPORT_OSSZES ocs ON
--NOTE: A leküldött adat már teljesen jól formázott, de a db-ben lehetnek rossz adatok. Az összehasonlításhoz ezt csináljuk:
-- Kisbetűsítjük -> Lecseréljük a NO BREAK SPACE-eket, SPACE-ekre -> Lecseréljük az összes többszörös szóközt egyre -> Trimmelünk
LTRIM(RTRIM(REPLACE(REPLACE(REPLACE(REPLACE(LOWER(ocs.C_NEV),CHAR(160),CHAR(32)),CHAR(32),'(¤¤)'),'¤)(¤',''),'(¤¤)',CHAR(32)))) = LOWER(oo.OsztalyCsoportNev)
AND ocs.C_INTEZMENYID = @pIntezmenyId
AND ocs.C_TANEVID = @pTanevId
AND ocs.TOROLT = 'F'
LEFT JOIN T_TEREM_OSSZES t ON
--NOTE: A leküldött adat már teljesen jól formázott, de a db-ben lehetnek rossz adatok. Az összehasonlításhoz ezt csináljuk:
-- Kisbetűsítjük -> Lecseréljük a NO BREAK SPACE-eket, SPACE-ekre -> Lecseréljük az összes többszörös szóközt egyre -> Trimmelünk
LTRIM(RTRIM(REPLACE(REPLACE(REPLACE(REPLACE(LOWER(t.C_NEV),CHAR(160),CHAR(32)),CHAR(32),'(¤¤)'),'¤)(¤',''),'(¤¤)',CHAR(32)))) = LOWER(oo.TeremNev)
AND t.C_INTEZMENYID = @pIntezmenyId
AND t.C_TANEVID = @pTanevId
AND t.TOROLT = 'F'
LEFT JOIN T_FOGLALKOZAS_OSSZES fg ON
fg.C_OSZTALYCSOPORTID = ocs.ID
AND fg.C_TANARID = oo.C_TANARID
AND fg.C_TANTARGYID = tt.ID
AND fg.C_INTEZMENYID = @pIntezmenyId
AND fg.C_TANEVID = @pTanevId
AND fg.TOROLT = 'F'
--Órarendi órák beszúrása
SET @actualJson = ' { "ImportJson":{ "T_ORARENDIORA_OSSZES":' + (
SELECT
oo.ID
,oo.C_TANARID
,oo.C_TANTARGYID
,oo.C_OSZTALYCSOPORTID
,oo.C_TEREMID
,oo.C_FOGLALKOZASID
,oo.C_HETIREND
,oo.C_HETNAPJA
,oo.C_ORASZAM
,oo.C_ORAERVENYESSEGKEZDETE
,oo.C_ORAERVENYESSEGVEGE
,oo.C_EGYEDINAP
,oo.C_ISKEZZELFELVETTEGYEDINAP
,oo.C_CSENGETESIRENDID
,oo.C_CSENGETESIRENDORAID
,oo.C_ORAKEZDETE
,oo.C_ORAVEGE
,oo.C_BONTOTT
,oo.C_ORATULAJDONOSID
,oo.C_IMPORTALT
,oo.C_INTEZMENYID
,oo.C_TANEVID
,oo.TOROLT
,oo.SERIAL
,oo.LASTCHANGED
,oo.CREATED
,oo.MODIFIER
,oo.CREATOR
,oo.ELOZOTANEVIREKORDID
,oo.NNID
,oo.Operation
FROM #OrarendiOraTempTable AS oo
FOR JSON PATH,INCLUDE_NULL_VALUES
)
SET @actualJson = @actualJson + ' } }'
--NOTE: A törlés azért false, mert a T_ORARENDIORA_OSSZES view-ból korábban elvégeztük a törlést, mivel egyéb feltélek is kellettek hozzá, ami nem szerepel a uspDynamicImport-ban.
EXECUTE uspDynamicImport @pIntezmenyId = @pIntezmenyId, @pTanevId = @pTanevId, @pUserId = @pUserId, @pImportJson = @actualJson, @pIsTorles = 0, @pIsSubTable = 0
DROP TABLE IF EXISTS #OrarendiOraTempTable
--NOTE: Update-elnünk kell a órarendi óráknak a groud id-ját!
UPDATE oo SET
oo.C_ORARENDIORAGROUPID = ID
FROM T_ORARENDIORA_OSSZES oo
WHERE oo.C_INTEZMENYID = @pIntezmenyId
AND oo.C_TANEVID = @pTanevId
AND oo.TOROLT = 'F'
AND oo.C_IMPORTALT = 'T'
AND ((@pIsNapirendImport = 0 AND oo.C_CSENGETESIRENDID IS NOT NULL)
OR (@pIsNapirendImport = 1 AND oo.C_CSENGETESIRENDID IS NULL))
END
GO

View file

@ -0,0 +1,444 @@
DROP PROCEDURE IF EXISTS uspTantargyfelosztasImport
GO
CREATE PROCEDURE uspTantargyfelosztasImport
@pIntezmenyId int
,@pTanevId int
,@pUserId int
,@pImportJson nvarchar(max)
,@pIsTorles bit
AS
BEGIN
SET NOCOUNT ON;
DECLARE
@tableNameList nvarchar(2000) = 'T_TANTARGY_OSSZES,T_OSZTALYCSOPORT_OSSZES'
,@actualJson nvarchar(max) = ''
,@lastChangedDateTime datetime = GETDATE()
--Ha törlés van, akkor a kapcsolódások törlésével kell kezdenünk!
IF (@pIsTorles = 1) BEGIN
--Foglalkozás kapcsolatainak törlése
UPDATE oo SET
oo.C_FOGLALKOZASID = NULL
,oo.SERIAL = oo.SERIAL + 1
,oo.LASTCHANGED = @lastChangedDateTime
,oo.MODIFIER = @pUserId
FROM T_ORARENDIORA_OSSZES oo
WHERE oo.C_INTEZMENYID = @pIntezmenyId
AND oo.C_TANEVID = @pTanevId
AND oo.TOROLT = 'F'
AND EXISTS (
SELECT TOP 1 ID
FROM T_FOGLALKOZAS_OSSZES fg
WHERE fg.ID = oo.C_FOGLALKOZASID
AND fg.C_INTEZMENYID = @pIntezmenyId
AND fg.C_TANEVID = @pTanevId
AND fg.TOROLT = 'F'
AND fg.C_IMPORTALT = 'T'
)
UPDATE tao SET
tao.C_FOGLALKOZASID = NULL
,tao.SERIAL = tao.SERIAL + 1
,tao.LASTCHANGED = @lastChangedDateTime
,tao.MODIFIER = @pUserId
FROM T_TANITASIORA_OSSZES tao
WHERE tao.C_INTEZMENYID = @pIntezmenyId
AND tao.C_TANEVID = @pTanevId
AND tao.TOROLT = 'F'
AND EXISTS (
SELECT TOP 1 ID
FROM T_FOGLALKOZAS_OSSZES fg
WHERE fg.ID = tao.C_FOGLALKOZASID
AND fg.C_INTEZMENYID = @pIntezmenyId
AND fg.C_TANEVID = @pTanevId
AND fg.TOROLT = 'F'
AND fg.C_IMPORTALT = 'T'
)
UPDATE tms SET
tms.C_TARGYMULASZTASSTATISZTIKAIID = NULL
,tms.SERIAL = tms.SERIAL + 1
,tms.LASTCHANGED = @lastChangedDateTime
,tms.MODIFIER = @pUserId
FROM T_TANULOTARGYMULASZTASSTATISZT_OSSZES tms
WHERE tms.C_INTEZMENYID = @pIntezmenyId
AND tms.C_TANEVID = @pTanevId
AND tms.TOROLT = 'F'
AND EXISTS (
SELECT TOP 1 ID
FROM T_FOGLALKOZAS_OSSZES fg
WHERE fg.ID = tms.C_TARGYMULASZTASSTATISZTIKAIID
AND fg.C_INTEZMENYID = @pIntezmenyId
AND fg.C_TANEVID = @pTanevId
AND fg.TOROLT = 'F'
AND fg.C_IMPORTALT = 'T'
)
DELETE tfg
FROM T_TEREM_FOGLALKOZAS tfg
WHERE EXISTS (
SELECT TOP 1 ID
FROM T_FOGLALKOZAS_OSSZES fg
WHERE fg.ID = tfg.C_FOGLALKOZASID
AND fg.C_INTEZMENYID = @pIntezmenyId
AND fg.C_TANEVID = @pTanevId
AND fg.TOROLT = 'F'
AND fg.C_IMPORTALT = 'T'
)
END
--NOTE: A törlés azért false, mert a T_TANTARGY_OSSZES és a T_OSZTALYCSOPORT_OSSZES view-ból nem törlünk importnál!
EXECUTE uspDynamicImportJsonSplit @pIntezmenyId = @pIntezmenyId, @pTanevId = @pTanevId, @pUserId = @pUserId, @pImportJson = @pImportJson, @pIsTorles = 0, @pIsSubTable = 0, @pTableNameList = @tableNameList
--NOTE: Osztály temp tábla incializálása
CREATE TABLE #OsztalyTempTable (
ID int
,C_KETTANNYELVU char(1)
,C_NEMZETISEGI char(1)
,C_NYELVIELOKESZITO char(1)
,C_SPORT char(1)
,C_ALINTEZMENYID int
,C_ALTANEVID int
,TOROLT char(1)
,SERIAL int
,LASTCHANGED datetime
,CREATED datetime
,MODIFIER int
,CREATOR int
,ELOZOTANEVIREKORDID int
,NNID int
,Operation int
)
INSERT INTO #OsztalyTempTable
SELECT
ocs.ID
,o.C_KETTANNYELVU
,o.C_NEMZETISEGI
,o.C_NYELVIELOKESZITO
,o.C_SPORT
,o.C_ALINTEZMENYID
,o.C_ALTANEVID
,o.TOROLT
,o.SERIAL
,o.LASTCHANGED
,o.CREATED
,o.MODIFIER
,o.CREATOR
,o.ELOZOTANEVIREKORDID
,o.NNID
,o.Operation
FROM OPENJSON(@pImportJson, N'lax $.ImportJson.T_OSZTALY_OSSZES')
WITH (
ID int '$.ID'
,C_KETTANNYELVU char(1) '$.C_KETTANNYELVU'
,C_NEMZETISEGI char(1) '$.C_NEMZETISEGI'
,C_NYELVIELOKESZITO char(1) '$.C_NYELVIELOKESZITO'
,C_SPORT char(1) '$.C_SPORT'
,C_ALINTEZMENYID int '$.C_INTEZMENYID'
,C_ALTANEVID int '$.C_TANEVID'
,TOROLT char(1) '$.TOROLT'
,SERIAL int '$.SERIAL'
,LASTCHANGED datetime '$.LASTCHANGED'
,CREATED datetime '$.CREATED'
,MODIFIER int '$.MODIFIER'
,CREATOR int '$.CREATOR'
,ELOZOTANEVIREKORDID int '$.ELOZOTANEVIREKORDID'
,NNID int '$.NNID'
,Operation int '$.Operation'
,OsztalyCsoportNev nvarchar(255) '$.OsztalyCsoportNev'
) o
LEFT JOIN T_OSZTALYCSOPORT_OSSZES ocs ON
--NOTE: A leküldött adat már teljesen jól formázott, de a db-ben lehetnek rossz adatok. Az összehasonlításhoz ezt csináljuk:
-- Kisbetűsítjük -> Lecseréljük a NO BREAK SPACE-eket, SPACE-ekre -> Lecseréljük az összes többszörös szóközt egyre -> Trimmelünk
LTRIM(RTRIM(REPLACE(REPLACE(REPLACE(REPLACE(LOWER(ocs.C_NEV),CHAR(160),CHAR(32)),CHAR(32),'(¤¤)'),'¤)(¤',''),'(¤¤)',CHAR(32)))) = LOWER(o.OsztalyCsoportNev)
AND ocs.C_INTEZMENYID = @pIntezmenyId
AND ocs.C_TANEVID = @pTanevId
AND ocs.TOROLT = 'F'
AND o.ID IS NULL
--NOTE: Csoport temp tábla incializálása
CREATE TABLE #CsoportTempTable (
ID int
,C_TIPUSA int
,C_OSZTALYBONTASID int
,C_ALINTEZMENYID int
,C_ALTANEVID int
,TOROLT char(1)
,SERIAL int
,LASTCHANGED datetime
,CREATED datetime
,MODIFIER int
,CREATOR int
,ELOZOTANEVIREKORDID int
,NNID int
,Operation int
)
INSERT INTO #CsoportTempTable
SELECT
ocs.ID
,cs.C_TIPUSA
,ob.ID
,cs.C_ALINTEZMENYID
,cs.C_ALTANEVID
,cs.TOROLT
,cs.SERIAL
,cs.LASTCHANGED
,cs.CREATED
,cs.MODIFIER
,cs.CREATOR
,cs.ELOZOTANEVIREKORDID
,cs.NNID
,cs.Operation
FROM OPENJSON(@pImportJson, N'lax $.ImportJson.T_CSOPORT_OSSZES')
WITH (
ID int '$.ID'
,C_TIPUSA int '$.C_TIPUSA'
,C_OSZTALYBONTASID int '$.C_OSZTALYBONTASID'
,C_ALINTEZMENYID int '$.C_INTEZMENYID'
,C_ALTANEVID int '$.C_TANEVID'
,TOROLT char(1) '$.TOROLT'
,SERIAL int '$.SERIAL'
,LASTCHANGED datetime '$.LASTCHANGED'
,CREATED datetime '$.CREATED'
,MODIFIER int '$.MODIFIER'
,CREATOR int '$.CREATOR'
,ELOZOTANEVIREKORDID int '$.ELOZOTANEVIREKORDID'
,NNID int '$.NNID'
,Operation int '$.Operation'
,OsztalyCsoportNev nvarchar(255) '$.OsztalyCsoportNev'
,OsztalybontasNev nvarchar(255) '$.OsztalybontasNev'
) cs
LEFT JOIN T_OSZTALYCSOPORT_OSSZES ocs ON
--NOTE: A leküldött adat már teljesen jól formázott, de a db-ben lehetnek rossz adatok. Az összehasonlításhoz ezt csináljuk:
-- Kisbetűsítjük -> Lecseréljük a NO BREAK SPACE-eket, SPACE-ekre -> Lecseréljük az összes többszörös szóközt egyre -> Trimmelünk
LTRIM(RTRIM(REPLACE(REPLACE(REPLACE(REPLACE(LOWER(ocs.C_NEV),CHAR(160),CHAR(32)),CHAR(32),'(¤¤)'),'¤)(¤',''),'(¤¤)',CHAR(32)))) = LOWER(cs.OsztalyCsoportNev)
AND ocs.C_INTEZMENYID = @pIntezmenyId
AND ocs.C_TANEVID = @pTanevId
AND ocs.TOROLT = 'F'
AND cs.ID IS NULL
LEFT JOIN T_OSZTALYCSOPORT_OSSZES ob ON
--NOTE: A leküldött adat már teljesen jól formázott, de a db-ben lehetnek rossz adatok. Az összehasonlításhoz ezt csináljuk:
-- Kisbetűsítjük -> Lecseréljük a NO BREAK SPACE-eket, SPACE-ekre -> Lecseréljük az összes többszörös szóközt egyre -> Trimmelünk
LTRIM(RTRIM(REPLACE(REPLACE(REPLACE(REPLACE(LOWER(ob.C_NEV),CHAR(160),CHAR(32)),CHAR(32),'(¤¤)'),'¤)(¤',''),'(¤¤)',CHAR(32)))) = LOWER(cs.OsztalybontasNev)
AND ob.C_INTEZMENYID = @pIntezmenyId
AND ob.C_TANEVID = @pTanevId
AND ob.TOROLT = 'F'
AND cs.ID IS NULL
--NOTE: Foglalkozas temp tábla incializálása
CREATE TABLE #FoglalkozasTempTable (
ID int
,C_TANARID int
,C_TANTARGYID int
,C_OSZTALYCSOPORTID int
,C_FOGLALKOZASTIPUSA int
,C_ORASZAM numeric(10,2)
,C_NEV nvarchar(255)
,C_ERTEKELESKELL char(1)
,C_MULASZTASKELL char(1)
,C_TANARFELVEHETI char(1)
,C_TULORASZAM numeric(10,2)
,C_ISOSSZEVONTORA char(1)
,C_ISNEMZETISEGI char(1)
,C_MEGBIZASIORASZAM numeric(10,2)
,C_IMPORTALT char(1)
,C_INTEZMENYID int
,C_TANEVID int
,TOROLT char(1)
,SERIAL int
,LASTCHANGED datetime
,CREATED datetime
,MODIFIER int
,CREATOR int
,ELOZOTANEVIREKORDID int
,NNID int
,Operation int
)
INSERT INTO #FoglalkozasTempTable
SELECT
fg.ID
,fg.C_TANARID
,tt.ID
,ocs.ID
,fg.C_FOGLALKOZASTIPUSA
,fg.C_ORASZAM
,fg.C_NEV
,fg.C_ERTEKELESKELL
,fg.C_MULASZTASKELL
,fg.C_TANARFELVEHETI
,fg.C_TULORASZAM
,fg.C_ISOSSZEVONTORA
,fg.C_ISNEMZETISEGI
,fg.C_MEGBIZASIORASZAM
,fg.C_IMPORTALT
,fg.C_INTEZMENYID
,fg.C_TANEVID
,fg.TOROLT
,fg.SERIAL
,fg.LASTCHANGED
,fg.CREATED
,fg.MODIFIER
,fg.CREATOR
,fg.ELOZOTANEVIREKORDID
,fg.NNID
,fg.Operation
FROM OPENJSON(@pImportJson, N'lax $.ImportJson.T_FOGLALKOZAS_OSSZES')
WITH (
ID int '$.ID'
,C_TANARID int '$.C_TANARID'
,C_FOGLALKOZASTIPUSA int '$.C_FOGLALKOZASTIPUSA'
,C_ORASZAM numeric(10,2) '$.C_ORASZAM'
,C_NEV nvarchar(255) '$.C_NEV'
,C_ERTEKELESKELL char(1) '$.C_ERTEKELESKELL'
,C_MULASZTASKELL char(1) '$.C_MULASZTASKELL'
,C_TANARFELVEHETI char(1) '$.C_TANARFELVEHETI'
,C_TULORASZAM numeric(10,2) '$.C_TULORASZAM'
,C_ISOSSZEVONTORA char(1) '$.C_ISOSSZEVONTORA'
,C_ISNEMZETISEGI char(1) '$.C_ISNEMZETISEGI'
,C_MEGBIZASIORASZAM numeric(10,2) '$.C_MEGBIZASIORASZAM'
,C_IMPORTALT char(1) '$.C_IMPORTALT'
,C_INTEZMENYID int '$.C_INTEZMENYID'
,C_TANEVID int '$.C_TANEVID'
,TOROLT char(1) '$.TOROLT'
,SERIAL int '$.SERIAL'
,LASTCHANGED datetime '$.LASTCHANGED'
,CREATED datetime '$.CREATED'
,MODIFIER int '$.MODIFIER'
,CREATOR int '$.CREATOR'
,ELOZOTANEVIREKORDID int '$.ELOZOTANEVIREKORDID'
,NNID int '$.NNID'
,Operation int '$.Operation'
,TantargyNev nvarchar(255) '$.TantargyNev'
,OsztalyCsoportNev nvarchar(255) '$.OsztalyCsoportNev'
) fg
LEFT JOIN T_TANTARGY_OSSZES tt ON
--NOTE: A leküldött adat már teljesen jól formázott, de a db-ben lehetnek rossz adatok. Az összehasonlításhoz ezt csináljuk:
-- Kisbetűsítjük -> Lecseréljük a NO BREAK SPACE-eket, SPACE-ekre -> Lecseréljük az összes többszörös szóközt egyre -> Trimmelünk
LTRIM(RTRIM(REPLACE(REPLACE(REPLACE(REPLACE(LOWER(tt.C_NEV),CHAR(160),CHAR(32)),CHAR(32),'(¤¤)'),'¤)(¤',''),'(¤¤)',CHAR(32)))) = LOWER(fg.TantargyNev)
AND tt.C_INTEZMENYID = @pIntezmenyId
AND tt.C_TANEVID = @pTanevId
AND tt.TOROLT = 'F'
LEFT JOIN T_OSZTALYCSOPORT_OSSZES ocs ON
--NOTE: A leküldött adat már teljesen jól formázott, de a db-ben lehetnek rossz adatok. Az összehasonlításhoz ezt csináljuk:
-- Kisbetűsítjük -> Lecseréljük a NO BREAK SPACE-eket, SPACE-ekre -> Lecseréljük az összes többszörös szóközt egyre -> Trimmelünk
LTRIM(RTRIM(REPLACE(REPLACE(REPLACE(REPLACE(LOWER(ocs.C_NEV),CHAR(160),CHAR(32)),CHAR(32),'(¤¤)'),'¤)(¤',''),'(¤¤)',CHAR(32)))) = LOWER(fg.OsztalyCsoportNev)
AND ocs.C_INTEZMENYID = @pIntezmenyId
AND ocs.C_TANEVID = @pTanevId
AND ocs.TOROLT = 'F'
--Osztályok beszúrása
SET @actualJson = ' { "ImportJson":{ "T_OSZTALY_OSSZES":' + (
SELECT
o.ID
,o.C_KETTANNYELVU
,o.C_NEMZETISEGI
,o.C_NYELVIELOKESZITO
,o.C_SPORT
,o.C_ALINTEZMENYID
,o.C_ALTANEVID
,o.TOROLT
,o.SERIAL
,o.LASTCHANGED
,o.CREATED
,o.MODIFIER
,o.CREATOR
,o.ELOZOTANEVIREKORDID
,o.NNID
,o.Operation
FROM #OsztalyTempTable AS o
FOR JSON PATH,INCLUDE_NULL_VALUES
)
SET @actualJson = @actualJson + ' } }'
--NOTE: A törlés azért false, mert a T_OSZTALY_OSSZES view-ból nem törlünk importnál!
EXECUTE uspDynamicImport @pIntezmenyId = @pIntezmenyId, @pTanevId = @pTanevId, @pUserId = @pUserId, @pImportJson = @actualJson, @pIsTorles = 0, @pIsSubTable = 1
--Csoportok beszúrása
SET @actualJson = ' { "ImportJson":{ "T_CSOPORT_OSSZES":' + (
SELECT
cs.ID
,cs.C_TIPUSA
,cs.C_OSZTALYBONTASID
,cs.C_ALINTEZMENYID
,cs.C_ALTANEVID
,cs.TOROLT
,cs.SERIAL
,cs.LASTCHANGED
,cs.CREATED
,cs.MODIFIER
,cs.CREATOR
,cs.ELOZOTANEVIREKORDID
,cs.NNID
,cs.Operation
FROM #CsoportTempTable AS cs
FOR JSON PATH,INCLUDE_NULL_VALUES
)
SET @actualJson = @actualJson + ' } }'
--NOTE: A törlés azért false, mert a T_CSOPORT_OSSZES view-ból nem törlünk importnál!
EXECUTE uspDynamicImport @pIntezmenyId = @pIntezmenyId, @pTanevId = @pTanevId, @pUserId = @pUserId, @pImportJson = @actualJson, @pIsTorles = 0, @pIsSubTable = 1
--Foglalkozások beszúrása
SET @actualJson = ' { "ImportJson":{ "T_FOGLALKOZAS_OSSZES":' + (
SELECT
fg.ID
,fg.C_TANARID
,fg.C_TANTARGYID
,fg.C_OSZTALYCSOPORTID
,fg.C_FOGLALKOZASTIPUSA
,fg.C_ORASZAM
,fg.C_NEV
,fg.C_ERTEKELESKELL
,fg.C_MULASZTASKELL
,fg.C_TANARFELVEHETI
,fg.C_TULORASZAM
,fg.C_ISOSSZEVONTORA
,fg.C_ISNEMZETISEGI
,fg.C_MEGBIZASIORASZAM
,fg.C_IMPORTALT
,fg.C_INTEZMENYID
,fg.C_TANEVID
,fg.TOROLT
,fg.SERIAL
,fg.LASTCHANGED
,fg.CREATED
,fg.MODIFIER
,fg.CREATOR
,fg.ELOZOTANEVIREKORDID
,fg.NNID
,fg.Operation
FROM #FoglalkozasTempTable AS fg
FOR JSON PATH,INCLUDE_NULL_VALUES
)
SET @actualJson = @actualJson + ' } }'
EXECUTE uspDynamicImport @pIntezmenyId = @pIntezmenyId, @pTanevId = @pTanevId, @pUserId = @pUserId, @pImportJson = @actualJson, @pIsTorles = @pIsTorles, @pIsSubTable = 0
END
GO