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

File diff suppressed because it is too large Load diff

View file

@ -0,0 +1,127 @@
-- ==================================================================================================================================
-- CoreAPI DB változások
-- ==================================================================================================================================
IF COL_LENGTH('dbo.T_INTEZMENYADATOK', 'CORE_CIMID') IS NULL BEGIN
ALTER TABLE T_INTEZMENYADATOK
ADD CORE_CIMID INT NULL
END
GO
IF COL_LENGTH('dbo.T_MUKODESIHELY', 'CORE_CIMID') IS NULL BEGIN
ALTER TABLE T_MUKODESIHELY
ADD CORE_CIMID INT NULL
END
GO
IF COL_LENGTH('dbo.T_INTEZMENYADATOK', 'CORE_ELERHETOSEGID') IS NULL BEGIN
ALTER TABLE T_INTEZMENYADATOK
ADD CORE_ELERHETOSEGID INT NULL
END
GO
IF COL_LENGTH('dbo.T_MUKODESIHELY', 'CORE_ELERHETOSEGID') IS NULL BEGIN
ALTER TABLE T_MUKODESIHELY
ADD CORE_ELERHETOSEGID INT NULL
END
GO
DROP SEQUENCE IF EXISTS dbo.SeqCoreMunkaugyiAdatok
GO
CREATE SEQUENCE dbo.SeqCoreMunkaugyiAdatok
AS INT
START WITH 1
INCREMENT BY 1
GO
IF COL_LENGTH('dbo.T_MUNKAUGYIADATOK', 'CORE_ID') IS NULL BEGIN
ALTER TABLE T_MUNKAUGYIADATOK
ADD CORE_ID INT NOT NULL DEFAULT NEXT VALUE FOR dbo.SeqCoreMunkaugyiAdatok
END
GO
IF COL_LENGTH('dbo.T_TOVABBIMUNKAUGYIADATOK', 'CORE_ID') IS NULL BEGIN
ALTER TABLE T_TOVABBIMUNKAUGYIADATOK
ADD CORE_ID INT NOT NULL DEFAULT NEXT VALUE FOR dbo.SeqCoreMunkaugyiAdatok
END
GO
IF COL_LENGTH('dbo.T_KEPESITES_VEGZETTSEG', 'CORE_ID') IS NULL BEGIN
ALTER TABLE T_KEPESITES_VEGZETTSEG
ADD CORE_ID INT NOT NULL IDENTITY(1,1)
END
GO
IF COL_LENGTH('dbo.T_FELHASZNALO_SZEREPKOR', 'CORE_ID') IS NULL BEGIN
ALTER TABLE T_FELHASZNALO_SZEREPKOR
ADD CORE_ID INT NOT NULL IDENTITY(1,1)
END
GO
IF COL_LENGTH('dbo.T_DICTIONARYITEMBASE', 'CORE_KATEGORIAID') IS NULL BEGIN
ALTER TABLE T_DICTIONARYITEMBASE
ADD CORE_KATEGORIAID INT NOT NULL DEFAULT 0
END
GO
IF COL_LENGTH('dbo.T_CIM', 'CORE_PUBLIKUS') IS NULL BEGIN
ALTER TABLE T_CIM
ADD CORE_PUBLIKUS CHAR(1) NOT NULL DEFAULT 'F'
END
GO
-- Struktúrális változás miatt szükséges, hogy nullable legyen.
-- Tranzakcióban kezeljük, nem fog tőlünk hibás rekord keletkezni.
ALTER TABLE dbo.T_GONDVISELO
ALTER COLUMN C_TANULOID INT NULL
GO
ALTER TABLE dbo.T_GONDVISELO
ALTER COLUMN C_ROKONSAGFOKA INT NULL
GO
ALTER TABLE dbo.T_FELHASZNALOBELEPES
ALTER COLUMN C_FELHASZNALOID INT NULL
GO
ALTER TABLE dbo.T_FELHASZNALOBELEPESTORTENET
ALTER COLUMN C_FELHASZNALOID INT NULL
GO
-- ==================================================================================================================================
-- Előző Tanév Rekord ID Betétele, ha még nincs
-- ==================================================================================================================================
DECLARE @sql nvarchar(max) = '';
SELECT @sql += 'ALTER TABLE dbo.' + T.TABLE_NAME + ' ADD ELOZOTANEVIREKORDID INT;' + char(13) + char(10)
FROM INFORMATION_SCHEMA.TABLES T
WHERE NOT EXISTS (SELECT 1 FROM INFORMATION_SCHEMA.COLUMNS C WHERE C.TABLE_NAME = T.TABLE_NAME AND C.COLUMN_NAME = 'ELOZOTANEVIREKORDID')
AND T.TABLE_TYPE = 'BASE TABLE'
AND TABLE_SCHEMA = 'dbo';
EXEC sp_executesql @sql;
GO
DECLARE @sql nvarchar(max) = '';
SELECT @sql += 'ALTER TABLE dbo.' + T.TABLE_NAME + ' ADD ELOZOTANEVIREKORDID INT;' + char(13) + char(10)
FROM INFORMATION_SCHEMA.TABLES T
WHERE EXISTS (SELECT 1 FROM INFORMATION_SCHEMA.COLUMNS C WHERE C.TABLE_SCHEMA = T.TABLE_SCHEMA AND C.TABLE_NAME = T.TABLE_NAME AND C.COLUMN_NAME = 'C_INTEZMENYID')
AND NOT EXISTS (SELECT 1 FROM INFORMATION_SCHEMA.COLUMNS C WHERE C.TABLE_SCHEMA = T.TABLE_SCHEMA AND C.TABLE_NAME = T.TABLE_NAME AND C.COLUMN_NAME = 'ELOZOTANEVIREKORDID')
AND T.TABLE_TYPE = 'BASE TABLE'
AND TABLE_SCHEMA = 'dbo';
--PRINT @sql;
EXEC sp_executesql @sql;
GO
DECLARE @sql nvarchar(max) = '';
SELECT @sql += 'ALTER TABLE dbo.' + T.TABLE_NAME + ' ADD ELOZOTANEVIREKORDIDA INT;' + char(13) + char(10)
FROM INFORMATION_SCHEMA.TABLES T
WHERE EXISTS (SELECT 1 FROM INFORMATION_SCHEMA.COLUMNS C WHERE C.TABLE_SCHEMA = T.TABLE_SCHEMA AND C.TABLE_NAME = T.TABLE_NAME AND C.COLUMN_NAME = 'C_ALINTEZMENYID')
AND NOT EXISTS (SELECT 1 FROM INFORMATION_SCHEMA.COLUMNS C WHERE C.TABLE_SCHEMA = T.TABLE_SCHEMA AND C.TABLE_NAME = T.TABLE_NAME AND C.COLUMN_NAME = 'ELOZOTANEVIREKORDIDA')
AND T.TABLE_TYPE = 'BASE TABLE'
AND TABLE_SCHEMA = 'dbo';
--PRINT @sql;
EXEC sp_executesql @sql;
GO

View file

@ -0,0 +1,263 @@
-- ==================================================================================================================================
-- T_TANULOTANTARGYATLAG CLUSTERED INDEX
-- ==================================================================================================================================
ALTER TABLE T_TANULOTANTARGYATLAG
DROP CONSTRAINT IF EXISTS FK_TanuloTantargyAtlag_TanuloId_REF_Tanulo;
GO
ALTER TABLE T_TANULOTANTARGYATLAG
DROP CONSTRAINT IF EXISTS FK_TanuloTantargyAtlag_TantargyId_REF_Tantargy;
GO
ALTER TABLE T_TANULOTANTARGYATLAG
DROP CONSTRAINT IF EXISTS FK_TanuloTantargyAtlag_OktatasNevelesiFeladatId_IntezmenyId_TanevId_REF_OktatasiNevelesiFeladat;
GO
ALTER TABLE T_TANULOTANTARGYATLAG
DROP CONSTRAINT IF EXISTS PK_TanuloTantargyAtlag;
GO
IF NOT EXISTS (SELECT 1 FROM sys.indexes WHERE name = 'CU_TanuloTantargyAtlag_TanuloId_TantargyId_OktatasNevelesiFeladatId') BEGIN
CREATE UNIQUE CLUSTERED INDEX CU_TanuloTantargyAtlag_TanuloId_TantargyId_OktatasNevelesiFeladatId
ON T_TANULOTANTARGYATLAG (C_TANULOID, C_TANTARGYID, C_OKTATASNEVELESIFELADATID)
WITH (FILLFACTOR = 80)
END
GO
IF OBJECT_ID('PK_TanuloTantargyAtlag') IS NULL BEGIN
ALTER TABLE T_TANULOTANTARGYATLAG
ADD CONSTRAINT PK_TanuloTantargyAtlag PRIMARY KEY (ID);
END
GO
DROP INDEX IF EXISTS NCI_TanuloTantargyAtlag_TanuloId ON T_TANULOTANTARGYATLAG
GO
ALTER TABLE [DBO].T_TANULOTANTARGYATLAG
ADD CONSTRAINT FK_TanuloTantargyAtlag_TantargyId_REF_Tantargy
FOREIGN KEY (C_TANTARGYID)
REFERENCES [DBO].T_TANTARGY (ID)
GO
ALTER TABLE [DBO].T_TANULOTANTARGYATLAG
ADD CONSTRAINT FK_TanuloTantargyAtlag_TanuloId_REF_Tanulo
FOREIGN KEY (C_TANULOID)
REFERENCES [DBO].T_TANULO (ID)
GO
ALTER TABLE [DBO].T_TANULOTANTARGYATLAG
ADD CONSTRAINT FK_TanuloTantargyAtlag_OktatasNevelesiFeladatId_IntezmenyId_TanevId_REF_OktatasiNevelesiFeladat
FOREIGN KEY (C_OKTATASNEVELESIFELADATID, C_INTEZMENYID, C_TANEVID)
REFERENCES [dbo].T_OKTATASINEVELESIFELADAT (ID, C_ALINTEZMENYID, C_ALTANEVID)
GO
-- ==================================================================================================================================
-- T_NAPTARINAP CLUSTERED INDEX
-- ==================================================================================================================================
ALTER TABLE T_TANITASIORA DROP CONSTRAINT IF EXISTS FK_TanitasiOra_NaptariNapId_REF_NaptariNap;
GO
ALTER TABLE T_NAPTARINAP DROP CONSTRAINT IF EXISTS PK_Naptarinap;
GO
IF NOT EXISTS (SELECT 1 FROM sys.indexes WHERE name = 'CI_NaptariNap_NapDatuma_IntezmenyId_TanevId') BEGIN
CREATE CLUSTERED INDEX CI_NaptariNap_NapDatuma_IntezmenyId_TanevId
ON T_NAPTARINAP (C_NAPDATUMA, C_INTEZMENYID, C_TANEVID)
WITH (FILLFACTOR = 80)
END
GO
IF OBJECT_ID('PK_Naptarinap') IS NULL BEGIN
ALTER TABLE T_NAPTARINAP
ADD CONSTRAINT PK_Naptarinap PRIMARY KEY (ID);
END
GO
IF OBJECT_ID('FK_TanitasiOra_NaptariNapId_REF_NaptariNap', 'F') IS NULL BEGIN
ALTER TABLE [DBO].T_TANITASIORA
ADD CONSTRAINT FK_TanitasiOra_NaptariNapId_REF_NaptariNap
FOREIGN KEY (C_NAPTARINAPID)
REFERENCES [DBO].T_NAPTARINAP (ID)
END
GO
DROP INDEX IF EXISTS NCI_KKGyogypedVegzettseg_IntezmenyId ON T_KKGYOGYPEDVEGZETTSEG
-- ==================================================================================================================================
-- ORARENDIORA FK REMOVE
-- ==================================================================================================================================
ALTER TABLE T_ORARENDIORA DROP CONSTRAINT IF EXISTS FK_OrarendiOra_FoglalkozasId_REF_Foglalkozas
GO
-- ==================================================================================================================================
-- TANITASIORA FK REMOVE
-- ==================================================================================================================================
ALTER TABLE T_TANITASIORA DROP CONSTRAINT IF EXISTS FK_TanitasiOra_FoglalkozasId_REF_Foglalkozas
GO
-- ==================================================================================================================================
-- T_DICTIONARYITEMBASE & T_DICTIONARYTYPE CONSTRAINTS
-- ==================================================================================================================================
ALTER TABLE T_DICTIONARYITEMBASE
DROP CONSTRAINT FK_DictionaryItemBase_DictionaryTypeId_REF_DictionaryType
GO
ALTER TABLE T_DICTIONARYTYPE
DROP CONSTRAINT PK_DictionaryType
GO
ALTER TABLE T_DICTIONARYTYPE
ADD CONSTRAINT PK_DictionaryType PRIMARY KEY CLUSTERED (ID, C_INTEZMENYID, C_TANEVID)
GO
ALTER TABLE [dbo].[T_DICTIONARYITEMBASE] WITH NOCHECK
ADD CONSTRAINT [FK_DictionaryItemBase_DictionaryTypeId_IntezmenyId_TanevId_REF_DictionaryType] FOREIGN KEY ([C_DICTIONARYTYPEID], [C_INTEZMENYID], [C_TANEVID]) REFERENCES [dbo].[T_DICTIONARYTYPE] (ID, C_INTEZMENYID, C_TANEVID);
GO
ALTER TABLE [dbo].[T_OKTATASINEVELESIFELADAT]
ADD CONSTRAINT DF_OktatasiNevelesiFeladat_FeladatKategoriaId DEFAULT 7553 FOR [C_FELADATKATEGORIAID]
GO
-- ==================================================================================================================================
-- CHECK CONSTRAINTS
-- ==================================================================================================================================
ALTER TABLE [dbo].[T_FELHASZNALOBELEPES] DROP CONSTRAINT IF EXISTS [CK_C_GUID]
GO
ALTER TABLE [dbo].[T_FELHASZNALOBELEPES] DROP CONSTRAINT IF EXISTS [CK_SoNullValidation]
GO
ALTER TABLE [dbo].[T_FELHASZNALOBELEPES] DROP CONSTRAINT IF EXISTS [CK_FELHASZNALOBELEPES_PasswordValidation]
GO
IF OBJECT_ID('CK_FelhasznaloBelepes_SoNullValidation', 'C') IS NULL BEGIN
ALTER TABLE [dbo].[T_FELHASZNALOBELEPES]
WITH CHECK ADD CONSTRAINT CK_FelhasznaloBelepes_SoNullValidation
CHECK (NOT([C_JELSZO] IS NOT NULL AND [C_SO] IS NULL AND [C_NEPTUNNAPLOJELSZO] IS NULL))
END
GO
IF OBJECT_ID('CK_FelhasznaloBelepes_PasswordValidation', 'C') IS NULL BEGIN
ALTER TABLE [dbo].[T_FELHASZNALOBELEPES]
WITH CHECK ADD CONSTRAINT CK_FelhasznaloBelepes_PasswordValidation
CHECK (NOT(
C_JELSZO IS NOT NULL AND
LEN(C_JELSZO)!=28 AND
C_JELSZO NOT LIKE '%='
))
END
GO
IF OBJECT_ID('CK_Telefon_Alapertelemezett_Gondviselo', 'C') IS NULL BEGIN
ALTER TABLE T_TELEFON
ADD CONSTRAINT CK_Telefon_Alapertelemezett_Gondviselo
CHECK (TOROLT = 'T' OR C_GONDVISELOID IS NULL OR C_ALAPERTELMEZETT = 'T')
END
GO
IF OBJECT_ID('CK_Email_Alapertelemezett_Gondviselo', 'C') IS NULL BEGIN
ALTER TABLE T_EMAIL
ADD CONSTRAINT CK_Email_Alapertelemezett_Gondviselo
CHECK (TOROLT = 'T' OR C_GONDVISELOID IS NULL OR C_ALAPERTELMEZETT = 'T')
END
GO
IF OBJECT_ID('CK_Telefon_Alapertelemezett_IsPublic', 'C') IS NULL BEGIN
ALTER TABLE T_TELEFON
ADD CONSTRAINT CK_Telefon_Alapertelemezett_IsPublic
CHECK (TOROLT = 'T' OR C_ISPUBLIC = 'F' OR (C_ISPUBLIC = 'T' AND C_ALAPERTELMEZETT = 'F'))
END
GO
IF OBJECT_ID('CK_Email_Alapertelemezett_IsPublic', 'C') IS NULL BEGIN
ALTER TABLE T_EMAIL
ADD CONSTRAINT CK_Email_Alapertelemezett_IsPublic
CHECK (TOROLT = 'T' OR C_ISPUBLIC = 'F' OR (C_ISPUBLIC = 'T' AND C_ALAPERTELMEZETT = 'F'))
END
GO
IF OBJECT_ID('CK_ErtekelesTantargyi_Szoveg', 'C') IS NULL BEGIN
ALTER TABLE T_ERTEKELESTANTARGYI
ADD CONSTRAINT CK_ErtekelesTantargyi_Szoveg
CHECK (C_SZOVEG IS NOT NULL OR (C_SZOVEGFORMAZOTT IS NULL AND C_SZOVEGROVIDNEV IS NULL))
END
GO
IF OBJECT_ID('CK_ErtekelesTantargyi_OsztalyzatTipus', 'C') IS NULL BEGIN
ALTER TABLE T_ERTEKELESTANTARGYI
ADD CONSTRAINT CK_ErtekelesTantargyi_OsztalyzatTipus
CHECK (
(C_OSZTALYZATTIPUSID IS NOT NULL AND C_SZOVEG IS NULL AND C_SZAZALEK IS NULL)
OR (C_OSZTALYZATTIPUSID IS NULL AND C_SZOVEG IS NOT NULL AND C_SZAZALEK IS NULL)
OR (C_OSZTALYZATTIPUSID IS NULL AND C_SZOVEG IS NULL AND C_SZAZALEK IS NOT NULL)
)
END
GO
IF OBJECT_ID('CK_ErtekelesTantargyiNyelv_Szoveg', 'C') IS NULL BEGIN
ALTER TABLE T_ERTEKELESTANTARGYINYELV
ADD CONSTRAINT CK_ErtekelesTantargyiNyelv_Szoveg
CHECK (C_SZOVEG IS NOT NULL OR (C_SZOVEGFORMAZOTT IS NULL AND C_SZOVEGROVIDNEV IS NULL))
END
GO
IF OBJECT_ID('CK_ErtekelesMagSzor_MagatartasSzoveg', 'C') IS NULL BEGIN
ALTER TABLE T_ERTEKELESMAGSZOR
ADD CONSTRAINT CK_ErtekelesMagSzor_MagatartasSzoveg
CHECK (C_MAGATARTASSZOVEG IS NOT NULL OR (C_MAGATARTASSZOVEGFORMAZOTT IS NULL AND C_MAGATARTASSZOVEGROVIDNEV IS NULL))
END
GO
IF OBJECT_ID('CK_ErtekelesMagSzor_MagatartasOsztalyzatTipus', 'C') IS NULL BEGIN
ALTER TABLE T_ERTEKELESMAGSZOR
ADD CONSTRAINT CK_ErtekelesMagSzor_MagatartasOsztalyzatTipus
CHECK (
(C_MAGATARTASOSZTALYZATTIPUSID IS NOT NULL AND C_MAGATARTASSZOVEG IS NULL AND C_MAGATARTASERTEKELESTIPUSID IS NULL)
OR (C_MAGATARTASOSZTALYZATTIPUSID IS NULL AND C_MAGATARTASSZOVEG IS NOT NULL AND C_MAGATARTASERTEKELESTIPUSID IS NULL)
OR (C_MAGATARTASOSZTALYZATTIPUSID IS NULL AND C_MAGATARTASSZOVEG IS NULL AND C_MAGATARTASERTEKELESTIPUSID IS NOT NULL)
OR (C_MAGATARTASOSZTALYZATTIPUSID IS NULL AND C_MAGATARTASSZOVEG IS NULL AND C_MAGATARTASERTEKELESTIPUSID IS NULL
AND (C_SZORGALOMOSZTALYZATTIPUSID IS NOT NULL OR C_SZORGALOMSZOVEG IS NOT NULL OR C_SZORGALOMERTEKELESTIPUSID IS NOT NULL))
)
END
GO
IF OBJECT_ID('CK_ErtekelesMagSzorNyelv_MagatartasSzoveg', 'C') IS NULL BEGIN
ALTER TABLE T_ERTEKELESMAGSZORNYELV
ADD CONSTRAINT CK_ErtekelesMagSzorNyelv_MagatartasSzoveg
CHECK (C_MAGATARTASSZOVEG IS NOT NULL OR (C_MAGATARTASSZOVEGFORMAZOTT IS NULL AND C_MAGATARTASSZOVEGROVIDNEV IS NULL))
END
GO
IF OBJECT_ID('CK_ErtekelesMagSzor_SzorgalomSzoveg', 'C') IS NULL BEGIN
ALTER TABLE T_ERTEKELESMAGSZOR
ADD CONSTRAINT CK_ErtekelesMagSzor_SzorgalomSzoveg
CHECK (C_SZORGALOMSZOVEG IS NOT NULL OR (C_SZORGALOMSZOVEGFORMAZOTT IS NULL AND C_SZORGALOMSZOVEGROVIDNEV IS NULL))
END
GO
IF OBJECT_ID('CK_ErtekelesMagSzor_SzorgalomOsztalyzatTipus', 'C') IS NULL BEGIN
ALTER TABLE T_ERTEKELESMAGSZOR
ADD CONSTRAINT CK_ErtekelesMagSzor_SzorgalomOsztalyzatTipus
CHECK (
(C_SZORGALOMOSZTALYZATTIPUSID IS NOT NULL AND C_SZORGALOMSZOVEG IS NULL AND C_SZORGALOMERTEKELESTIPUSID IS NULL)
OR (C_SZORGALOMOSZTALYZATTIPUSID IS NULL AND C_SZORGALOMSZOVEG IS NOT NULL AND C_SZORGALOMERTEKELESTIPUSID IS NULL)
OR (C_SZORGALOMOSZTALYZATTIPUSID IS NULL AND C_SZORGALOMSZOVEG IS NULL AND C_SZORGALOMERTEKELESTIPUSID IS NOT NULL)
OR (C_SZORGALOMOSZTALYZATTIPUSID IS NULL AND C_SZORGALOMSZOVEG IS NULL AND C_SZORGALOMERTEKELESTIPUSID IS NULL
AND (C_MAGATARTASOSZTALYZATTIPUSID IS NOT NULL OR C_MAGATARTASSZOVEG IS NOT NULL OR C_MAGATARTASERTEKELESTIPUSID IS NOT NULL))
)
END
GO
IF OBJECT_ID('CK_ErtekelesMagSzorNyelv_SzorgalomSzoveg', 'C') IS NULL BEGIN
ALTER TABLE T_ERTEKELESMAGSZORNYELV
ADD CONSTRAINT CK_ErtekelesMagSzorNyelv_SzorgalomSzoveg
CHECK (C_SZORGALOMSZOVEG IS NOT NULL OR (C_SZORGALOMSZOVEGFORMAZOTT IS NULL AND C_SZORGALOMSZOVEGROVIDNEV IS NULL))
END
GO
IF OBJECT_ID('FK_Fenntarto_LegmagasabbSzintuFenntartoId_REF_LegmagasabbSzintuFennntartoId', 'F') IS NULL BEGIN
ALTER TABLE [DBO].T_FENNTARTO
ADD CONSTRAINT FK_Fenntarto_LegmagasabbSzintuFenntartoId_REF_LegmagasabbSzintuFenntartoId
FOREIGN KEY (C_LEGMAGASABBSZINTUFENNTARTOID)
REFERENCES [DBO].T_LEGMAGASABBSZINTUFENNTARTO (ID)
END
GO

View file

@ -0,0 +1,5 @@
-- ==================================================================================================================================
-- ID eltolás a DICTIONARYITEMBASE táblában, hogy legyen "hely" a késõbbi rendszerelemeknek is
-- ==================================================================================================================================
DBCC CHECKIDENT ('dbo.T_DICTIONARYITEMBASE', RESEED, 100000)
GO

File diff suppressed because it is too large Load diff

View file

@ -0,0 +1,230 @@
DROP PROCEDURE IF EXISTS dev.sp_Global_GenerateAsyncAuditTrigger
GO
CREATE PROCEDURE dev.sp_Global_GenerateAsyncAuditTrigger
@tableName nvarchar(50)
,@disabled bit = 0
AS
DECLARE
@newColumnList nvarchar(max)
,@oldColumnList nvarchar(max)
,@SQL nvarchar(max)
,@ColumnIntezmenyId nvarchar(1000) = '0'
,@ColumnTanevId nvarchar(1000) = '0'
,@JoinKeys nvarchar(4000);
SELECT @newColumnList = ISNULL(@newColumnList + ', ', '') + 'i.' + COLUMN_NAME + N' AS ''new.' + COLUMN_NAME + '''',
@oldColumnList = ISNULL(@oldColumnList + ', ', '') + 'd.' + COLUMN_NAME + N' AS ''old.' + COLUMN_NAME + ''''
FROM INFORMATION_SCHEMA.COLUMNS
WHERE TABLE_NAME = @tableName
AND TABLE_SCHEMA = 'dbo'
AND DATA_TYPE NOT IN ('varbinary', 'binary')
AND COLUMN_NAME NOT IN ('SERIAL', 'LASTCHANGED', 'CREATED', 'ID', 'C_INTEZMENYID', 'C_ALINTEZMENYID', 'C_TANEVID', 'C_ALTANEVID');
SELECT @ColumnIntezmenyId = CASE WHEN TABLE_NAME = 'T_INTEZMENY' THEN 'i.ID' ELSE 'i.' + COLUMN_NAME END
FROM INFORMATION_SCHEMA.COLUMNS
WHERE TABLE_NAME = @tableName AND TABLE_SCHEMA = 'dbo' AND COLUMN_NAME IN ('C_INTEZMENYID', 'C_ALINTEZMENYID');
SELECT @ColumnTanevId = CASE WHEN TABLE_NAME = 'T_TANEV' THEN 'i.ID' ELSE 'i.' + COLUMN_NAME END
FROM INFORMATION_SCHEMA.COLUMNS
WHERE TABLE_NAME = @tableName AND TABLE_SCHEMA = 'dbo' AND COLUMN_NAME IN ('C_TANEVID', 'C_ALTANEVID');
SELECT @JoinKeys = COALESCE(@JoinKeys + ' AND ', '') + 'i.' + c.name + ' = d.' + c.name
FROM sys.key_constraints kc
INNER JOIN sys.index_columns ic ON ic.index_id = kc.unique_index_id AND ic.object_id = kc.parent_object_id
INNER JOIN sys.columns c ON c.object_id = ic.object_id AND c.column_id = ic.column_id
WHERE kc.parent_object_id = object_id('dbo.' + @tableName)
and kc.type = 'PK'
ORDER BY ic.index_column_id ASC;
SET @SQL = '
CREATE OR ALTER TRIGGER [tr_AsyncAudit' + UPPER(SUBSTRING(@tableName, 3, 100)) + '] ON [' + @tableName + ']
WITH EXECUTE AS ''kreta_tech_user''
FOR INSERT, UPDATE, DELETE
AS
DECLARE @rowcount INT = @@ROWCOUNT;
DECLARE @json NVARCHAR(MAX);
DECLARE @key INT = 0;
DECLARE @limit INT = 1000;
DECLARE @action TINYINT = 0;
DECLARE @now NVARCHAR(20) = CONVERT(NVARCHAR(20), GETDATE(), 120);
DECLARE @handle UNIQUEIDENTIFIER;
DECLARE @userid INT;
SET NOCOUNT ON;
SET @action += CASE WHEN EXISTS(SELECT * FROM inserted) THEN 1 ELSE 0 END;
SET @action += CASE WHEN EXISTS(SELECT * FROM deleted) THEN 2 ELSE 0 END;
IF @rowcount = 0 SET @rowcount = (SELECT COUNT(*) FROM inserted);
IF @rowcount = 0 SET @rowcount = (SELECT COUNT(*) FROM deleted);
IF @rowcount = 0 RETURN;
SET @userid = TRY_CAST(SESSION_CONTEXT(N''USERID'') AS INT);
' + IIF(EXISTS(SELECT * FROM INFORMATION_SCHEMA.COLUMNS WHERE TABLE_NAME = @tableName AND COLUMN_NAME = 'MODIFIER'), 'IF ISNULL(@userid, 0) = 0 AND (UPDATE(MODIFIER) OR UPDATE(CREATOR)) SET @userid = (SELECT TOP 1 NULLIF(ISNULL(MODIFIER, CREATOR), 0) FROM inserted);', '') + '
IF @rowcount > @limit
BEGIN
SELECT TOP 0 * INTO #audit_trigger_inserted FROM inserted UNION ALL SELECT TOP 0 * FROM inserted;
SELECT TOP 0 * INTO #audit_trigger_deleted FROM deleted UNION ALL SELECT TOP 0 * FROM deleted;
ALTER TABLE #audit_trigger_inserted ADD TRIGGER_ADDED_KEY INT NOT NULL IDENTITY(1, 1);
ALTER TABLE #audit_trigger_deleted ADD TRIGGER_ADDED_KEY INT NOT NULL IDENTITY(1, 1);
INSERT INTO #audit_trigger_inserted SELECT * FROM inserted;
INSERT INTO #audit_trigger_deleted SELECT * FROM deleted;
ALTER TABLE #audit_trigger_inserted ADD PRIMARY KEY CLUSTERED(TRIGGER_ADDED_KEY);
ALTER TABLE #audit_trigger_deleted ADD PRIMARY KEY CLUSTERED(TRIGGER_ADDED_KEY);
-- ALTER TABLE #audit_trigger_inserted ADD UNIQUE NONCLUSTERED (TRIGGER_ADDED_KEY);
-- ALTER TABLE #audit_trigger_deleted ADD UNIQUE NONCLUSTERED (TRIGGER_ADDED_KEY);
END
BEGIN DIALOG CONVERSATION @handle
FROM SERVICE AuditService
TO SERVICE ''AuditService''
ON CONTRACT AuditContract
WITH ENCRYPTION = OFF, LIFETIME = 10000;
WHILE (1 = 1)
BEGIN
IF @action = 1 -- INSERT
IF @rowcount > @limit
BEGIN
SET @json = (
SELECT TOP (@limit)
i.ID AS ID,
' + @ColumnTanevId + ' AS TID,
' + @ColumnIntezmenyId + ' AS IID,
ISNULL(i.MODIFIER, i.CREATOR) AS [UID],
' + @newColumnList + '
FROM #audit_trigger_inserted i
WHERE i.TRIGGER_ADDED_KEY > @key
ORDER BY i.TRIGGER_ADDED_KEY ASC
FOR JSON PATH, INCLUDE_NULL_VALUES
)
SELECT TOP (@limit) @key = TRIGGER_ADDED_KEY FROM #audit_trigger_inserted WHERE TRIGGER_ADDED_KEY > @key ORDER BY TRIGGER_ADDED_KEY;
END
ELSE
SET @json = (
SELECT
i.ID AS ID,
' + @ColumnTanevId + ' AS TID,
' + @ColumnIntezmenyId + ' AS IID,
ISNULL(i.MODIFIER, i.CREATOR) AS [UID],
' + @newColumnList + '
FROM inserted i
FOR JSON PATH, INCLUDE_NULL_VALUES
)
IF @action = 2 -- DELETE
IF @rowcount > @limit
BEGIN
SET @json = (
SELECT TOP (@limit)
d.ID AS ID,
' + replace(@ColumnTanevId, 'i.', 'd.') + ' AS TID,
' + replace(@ColumnIntezmenyId, 'i.', 'd.') + ' AS IID,
ISNULL(d.MODIFIER, d.CREATOR) AS [UID],
' + @oldColumnList + '
FROM #audit_trigger_deleted d
WHERE d.TRIGGER_ADDED_KEY > @key
ORDER BY d.TRIGGER_ADDED_KEY ASC
FOR JSON PATH, INCLUDE_NULL_VALUES
)
SELECT TOP (@limit) @key = TRIGGER_ADDED_KEY FROM #audit_trigger_deleted WHERE TRIGGER_ADDED_KEY > @key ORDER BY TRIGGER_ADDED_KEY;
END
ELSE
SET @json = (
SELECT
d.ID AS ID,
' + replace(@ColumnTanevId, 'i.', 'd.') + ' AS TID,
' + replace(@ColumnIntezmenyId, 'i.', 'd.') + ' AS IID,
ISNULL(d.MODIFIER, d.CREATOR) AS [UID],
' + @oldColumnList + '
FROM deleted d
FOR JSON PATH, INCLUDE_NULL_VALUES
)
IF @action = 3 --UPDATE
IF @rowcount > @limit
BEGIN
SET @json = (
SELECT TOP (@limit)
i.ID AS ID,
' + @ColumnTanevId + ' AS TID,
' + @ColumnIntezmenyId + ' AS IID,
ISNULL(i.MODIFIER, i.CREATOR) AS [UID],
' + @oldColumnList + ',
' + @newColumnList + '
FROM #audit_trigger_inserted i
INNER JOIN #audit_trigger_deleted d ON i.TRIGGER_ADDED_KEY = d.TRIGGER_ADDED_KEY
WHERE i.TRIGGER_ADDED_KEY > @key
ORDER BY i.TRIGGER_ADDED_KEY ASC
FOR JSON PATH, INCLUDE_NULL_VALUES
)
SELECT TOP (@limit) @key = TRIGGER_ADDED_KEY FROM #audit_trigger_inserted WHERE TRIGGER_ADDED_KEY > @key ORDER BY TRIGGER_ADDED_KEY;
END
ELSE
SET @json = (
SELECT
i.ID AS ID,
' + @ColumnTanevId + ' AS TID,
' + @ColumnIntezmenyId + ' AS IID,
ISNULL(i.MODIFIER, i.CREATOR) AS [UID],
' + @oldColumnList + ',
' + @newColumnList + '
FROM inserted i
INNER JOIN deleted d ON ' + @JoinKeys + '
FOR JSON PATH, INCLUDE_NULL_VALUES
)
IF @json IS NULL BREAK;
SET @json = CONCAT(
''{'',
''"ENTITY":"' + @tableName + '",'',
''"REASON":"'', CHOOSE(@action, ''New'', ''Removed'', ''Modified''), ''",'',
''"DATETIME":"'', @now, ''",'',
''"ACTION":'', @action, '','',
''"HOST":"'', HOST_NAME(), ''",'',
''"LOGIN":"'', REPLACE(ORIGINAL_LOGIN(), ''\'', ''\\''), ''",'',
''"USERID":'', COALESCE(CAST(@userid AS VARCHAR(10)), ''null''), '','',
''"ROWCOUNT":'', @rowcount, '', '',
''"ROWS": '', @json,
''}'');
SEND ON CONVERSATION @handle MESSAGE TYPE AuditMessage (@json);
IF @rowcount <= @limit BREAK;
END
END CONVERSATION @handle;
'
-- SELECT @SQL
EXEC sys.sp_executesql @SQL;
IF @disabled = 1
BEGIN
SET @SQL = 'DISABLE TRIGGER [tr_AsyncAudit' + UPPER(SUBSTRING(@tableName, 3, 100)) + '] ON [' + @tableName + ']';
EXEC(@SQL);
END
GO

View file

@ -0,0 +1,65 @@
DROP PROCEDURE IF EXISTS dev.sp_Global_GenerateAsyncAuditTriggerAll
GO
CREATE PROCEDURE dev.sp_Global_GenerateAsyncAuditTriggerAll
@disabled bit = 0
AS
BEGIN
DECLARE tableCursor CURSOR LOCAL FOR
SELECT DISTINCT TABLE_NAME
FROM INFORMATION_SCHEMA.COLUMNS
WHERE COLUMN_NAME IN ('CREATOR', 'MODIFIER')
AND TABLE_NAME NOT IN (
'T_ENTITYHISTORY'
,'T_ENTITYATTRIBUTEHISTORY'
,'T_ENTITYATTRIBUTEHISTORY_ARCHIVE'
,'T_ENTITYBLOBVALUES'
,'T_ENTITYBLOBVALUES_ARCHIVE'
,'T_LOG'
,'T_GLOBALLOCK'
,'T_OLDALLATOGATOTTSAG'
,'T_FELHASZNALOBELEPESTORTENET'
,'T_EVFOLYAMTIPUS_OKTATASINEVELE'
,'T_TELEPULES'
,'T_TANTARGYNEVHEZKATEGORIA'
,'T_MOBILDBINFO'
,'T_LOGLEVELTYPE'
,'T_FENNTARTO'
,'T_LOGEVENTTYPE'
,'T_DASHBOARDUZENET'
,'T_DASHBOARDUZENETKATEGORIA'
,'T_AMITANTARGYSABLON'
,'T_AMITTFSABLON'
,'T_ADATTISZTITASINDIKATOR'
,'T_DASHBOARDUZENETINTEZMENY'
,'T_ORAREND'
,'T_TANULOTANTARGYATLAG'
,'T_CONFIGTIPUS'
,'T_INTEZMENYCONFIG'
,'T_SZIRSTATKONYVTARKATEGORIA'
,'T_ORARENDTELJES'
,'T_OSZTONDIJHISTORY'
)
AND TABLE_NAME IN (
SELECT t.name
FROM sys.tables t
INNER JOIN sys.schemas s ON s.schema_id = t.schema_id
WHERE s.name ='dbo'
)
DECLARE @tableName nvarchar(50)
OPEN tableCursor
FETCH NEXT FROM tableCursor INTO @tableName
WHILE @@FETCH_STATUS = 0 BEGIN
EXEC dev.sp_Global_GenerateAsyncAuditTrigger @tableName, @disabled
FETCH NEXT FROM tableCursor INTO @tableName
END
CLOSE tableCursor
DEALLOCATE tableCursor
END
GO

View file

@ -0,0 +1,351 @@
CREATE OR ALTER PROCEDURE auditlog.usp_AuditProcessing
AS
SET NOCOUNT ON;
DECLARE @messagetype sysname
,@handle uniqueidentifier
,@message_body nvarchar(max)
,@json_part nvarchar(2000)
,@entity varchar(100)
,@reason varchar(100)
,@datetime datetime
,@action tinyint = 0
,@userid int
,@login nvarchar(1000)
,@hostname nvarchar(1000)
,@rowcount int
,@limit int = 100;
-- table for inserted rows
CREATE TABLE #ins(
C_ENTITYID INT NOT NULL,
C_PROPERTYNAME VARCHAR(100) NOT NULL,
C_INTEZMENYID INT NOT NULL,
C_TANEVID INT NOT NULL,
C_VALUE NVARCHAR(MAX) NULL,
PRIMARY KEY CLUSTERED (C_ENTITYID, C_INTEZMENYID, C_TANEVID, C_PROPERTYNAME)
)
-- table for deleted rows
CREATE TABLE #del(
C_ENTITYID INT NOT NULL,
C_PROPERTYNAME VARCHAR(100) NOT NULL,
C_INTEZMENYID INT NOT NULL,
C_TANEVID INT NOT NULL,
C_VALUE NVARCHAR(MAX) NULL,
PRIMARY KEY CLUSTERED (C_ENTITYID, C_INTEZMENYID, C_TANEVID, C_PROPERTYNAME)
)
-- table for audit rows
CREATE TABLE #audit(
C_ENTITYID INT NOT NULL,
C_INTEZMENYID INT NOT NULL,
C_TANEVID INT NOT NULL,
C_FELHASZNALOID INT NULL,
C_PROPERTYNAME VARCHAR(1000) NULL,
C_ORIGINALVALUE NVARCHAR(MAX) NULL,
C_CURRENTVALUE NVARCHAR(MAX) NULL
);
-- table for ids inserted into ENTITYHISTORY
CREATE TABLE #entity(
ENTITYID INT NOT NULL,
INTEZMENYID INT NOT NULL,
TANEVID INT NOT NULL,
ENTITYHISTORYID INT NOT NULL,
PRIMARY KEY CLUSTERED (ENTITYID, INTEZMENYID, TANEVID)
);
WHILE (1 = 1)
BEGIN
BEGIN TRY
TRUNCATE TABLE #ins;
TRUNCATE TABLE #del;
TRUNCATE TABLE #audit;
TRUNCATE TABLE #entity;
BEGIN TRANSACTION;
-- take 1 message from queue
WAITFOR (
RECEIVE TOP(1)
@handle = conversation_handle,
@message_body = message_body,
@messagetype = message_type_name
FROM auditlog.AuditQueue
), TIMEOUT 1000;
-- if there are no more rows in the queue then exit
IF @@ROWCOUNT = 0 BREAK;
IF @messagetype <> 'AuditMessage'
GOTO CONTINUE_PROCESS;
-- take the beginning of the message and search for "ROWS" node
SET @json_part = LEFT(@message_body, 2000);
IF @json_part LIKE '%"ROWS"%'
BEGIN
SET @json_part = LEFT(@json_part, PATINDEX('%"ROWS"%', @json_part) - 1);
SET @json_part = @json_part + '"ROWS":null}';
END
ELSE
BEGIN
INSERT INTO auditlog.AuditServiceFailedItems([conversation_handle], [message_body], [error_message])
VALUES (@handle, @message_body, 'No "ROWS" in first 2000 chars');
GOTO CONTINUE_PROCESS;
END
-- lightweight parsing of the message for headers
SELECT
@entity = CASE WHEN j.[key] = 'ENTITY' THEN j.[value] ELSE @entity END,
@reason = CASE WHEN j.[key] = 'REASON' THEN j.[value] ELSE @reason END,
@datetime = CASE WHEN j.[key] = 'DATETIME' THEN CONVERT(datetime, j.[value], 121) ELSE @datetime END,
@action = CASE WHEN j.[key] = 'ACTION' THEN j.[value] ELSE @action END,
@hostname = CASE WHEN j.[key] = 'HOST' THEN j.[value] ELSE @hostname END,
@login = CASE WHEN j.[key] = 'LOGIN' THEN j.[value] ELSE @login END,
@userid = CASE WHEN j.[key] = 'USERID' THEN j.[value] ELSE @userid END,
@rowcount = CASE WHEN j.[key] = 'ROWCOUNT' THEN j.[value] ELSE @rowcount END
FROM OPENJSON(@json_part) j
WHERE j.[key] in ('ENTITY', 'REASON', 'DATETIME', 'ACTION', 'HOST', 'LOGIN', 'USERID', 'ROWCOUNT');
-- user parsing
IF NOT EXISTS(SELECT * FROM dbo.T_FELHASZNALO WHERE ID = @userid)
BEGIN
INSERT INTO auditlog.Users(USERNAME)
SELECT @login AS USERNAME
WHERE NOT EXISTS(SELECT * FROM auditlog.Users WHERE USERNAME = @login);
SET @userid = null;
END
IF @rowcount > @limit
INSERT INTO #ins(C_ENTITYID, C_INTEZMENYID, C_TANEVID, C_PROPERTYNAME, C_VALUE)
SELECT
JSON_VALUE(j.value, '$.ID') AS C_ENTITYID,
JSON_VALUE(j.value, '$.IID') AS C_INTEZMENYID,
JSON_VALUE(j.value, '$.TID') AS C_TANEVID,
i.[key] AS C_PROPERTYNAME,
i.[value] AS C_VALUE
FROM OPENJSON(@message_body, '$.ROWS') j
CROSS APPLY OPENJSON(j.value, '$.new') i
OPTION (MAXDOP 1);
IF @rowcount > @limit
INSERT INTO #del(C_ENTITYID, C_INTEZMENYID, C_TANEVID, C_PROPERTYNAME, C_VALUE)
SELECT
JSON_VALUE(j.value, '$.ID') AS C_ENTITYID,
JSON_VALUE(j.value, '$.IID') AS C_INTEZMENYID,
JSON_VALUE(j.value, '$.TID') AS C_TANEVID,
d.[key] AS C_PROPERTYNAME,
d.[value] AS C_VALUE
FROM OPENJSON(@message_body, '$.ROWS') j
CROSS APPLY OPENJSON(j.value, '$.old') d
OPTION (MAXDOP 1);
-- extract audit rows from message
IF @action = 1 -- INSERT
IF @rowcount > @limit
INSERT INTO #audit(C_ENTITYID, C_INTEZMENYID, C_TANEVID, C_PROPERTYNAME, C_ORIGINALVALUE, C_CURRENTVALUE)
SELECT
i.C_ENTITYID,
i.C_INTEZMENYID,
i.C_TANEVID,
i.C_PROPERTYNAME AS C_PROPERTYNAME,
NULL AS C_ORIGINALVALUE,
i.C_VALUE AS C_CURRENTVALUE
FROM #ins i
OPTION (MAXDOP 1);
ELSE
INSERT INTO #audit(C_ENTITYID, C_INTEZMENYID, C_TANEVID, C_PROPERTYNAME, C_ORIGINALVALUE, C_CURRENTVALUE)
SELECT
JSON_VALUE(j.value, '$.ID') AS C_ENTITYID,
JSON_VALUE(j.value, '$.IID') AS C_INTEZMENYID,
JSON_VALUE(j.value, '$.TID') AS C_TANEVID,
i.[key] AS C_PROPERTYNAME,
NULL AS C_ORIGINALVALUE,
i.[value] AS C_CURRENTVALUE
FROM OPENJSON(@message_body, '$.ROWS') j
OUTER APPLY OPENJSON(j.value, '$.new') i
OPTION (MAXDOP 1);
IF @action = 2 -- DELETE
IF @rowcount > @limit
INSERT INTO #audit(C_ENTITYID, C_INTEZMENYID, C_TANEVID, C_PROPERTYNAME, C_ORIGINALVALUE, C_CURRENTVALUE)
SELECT
d.C_ENTITYID,
d.C_INTEZMENYID,
d.C_TANEVID,
d.C_PROPERTYNAME AS C_PROPERTYNAME,
d.C_VALUE AS C_ORIGINALVALUE,
NULL AS C_CURRENTVALUE
FROM #del d
OPTION (MAXDOP 1);
ELSE
INSERT INTO #audit(C_ENTITYID, C_INTEZMENYID, C_TANEVID, C_PROPERTYNAME, C_ORIGINALVALUE, C_CURRENTVALUE)
SELECT
JSON_VALUE(j.value, '$.ID') AS C_ENTITYID,
JSON_VALUE(j.value, '$.IID') AS C_INTEZMENYID,
JSON_VALUE(j.value, '$.TID') AS C_TANEVID,
d.[key] AS C_PROPERTYNAME,
d.[value] AS C_ORIGINALVALUE,
NULL AS C_CURRENTVALUE
FROM OPENJSON(@message_body, '$.ROWS') j
OUTER APPLY OPENJSON(j.value, '$.old') d
OPTION (MAXDOP 1);
IF @action = 3 -- UPDATE
IF @rowcount > @limit
INSERT INTO #audit(C_ENTITYID, C_INTEZMENYID, C_TANEVID, C_PROPERTYNAME, C_ORIGINALVALUE, C_CURRENTVALUE)
SELECT
ISNULL(i.C_ENTITYID, d.C_ENTITYID) AS C_ENTITYID,
ISNULL(i.C_INTEZMENYID, d.C_INTEZMENYID) AS C_INTEZMENYID,
ISNULL(i.C_TANEVID, d.C_TANEVID) AS C_TANEVID,
ISNULL(i.C_PROPERTYNAME, d.C_PROPERTYNAME) AS C_PROPERTYNAME,
d.C_VALUE AS C_ORIGINALVALUE,
i.C_VALUE AS C_CURRENTVALUE
FROM #ins i
INNER MERGE JOIN #del d ON i.C_ENTITYID = d.C_ENTITYID
AND i.C_INTEZMENYID = d.C_INTEZMENYID
AND i.C_TANEVID = d.C_TANEVID
AND i.C_PROPERTYNAME = d.C_PROPERTYNAME
OPTION (MAXDOP 1);
ELSE
INSERT INTO #audit(C_ENTITYID, C_INTEZMENYID, C_TANEVID, C_PROPERTYNAME, C_ORIGINALVALUE, C_CURRENTVALUE)
SELECT
JSON_VALUE(j.value, '$.ID') AS C_ENTITYID,
JSON_VALUE(j.value, '$.IID') AS C_INTEZMENYID,
JSON_VALUE(j.value, '$.TID') AS C_TANEVID,
ISNULL(i.[key], d.[key]) AS C_PROPERTYNAME,
d.[value] AS C_ORIGINALVALUE,
i.[value] AS C_CURRENTVALUE
FROM OPENJSON(@message_body, '$.ROWS') j
OUTER APPLY OPENJSON(j.value, '$.new') i
OUTER APPLY OPENJSON(j.value, '$.old') d
WHERE i.[key] = d.[key]
OPTION (MAXDOP 1);
BEGIN TRANSACTION T1;
-- fill entityhistory and save generated ids
INSERT INTO dbo.T_ENTITYHISTORY(C_ENTITYNAME, C_ENTITYID, C_REASON, C_INTEZMENYID, C_TANEVID, C_FELHASZNALOID, C_ALTERATIONDATE, CREATED, HOSTNAME)
OUTPUT inserted.C_ENTITYID, inserted.C_INTEZMENYID, inserted.C_TANEVID, inserted.ID INTO #entity(ENTITYID, INTEZMENYID, TANEVID, ENTITYHISTORYID)
SELECT DISTINCT
@entity AS C_ENTITYNAME,
C_ENTITYID,
@reason AS C_REASON,
C_INTEZMENYID,
C_TANEVID,
COALESCE(@userid, (SELECT USERID FROM auditlog.Users WHERE USERNAME = @login)) AS C_FELHASZNALOID,
@datetime AS C_ALTERATIONDATE,
GETDATE() AS CREATED,
@hostname AS HOSTNAME
FROM #audit
OPTION (MAXDOP 1);
-- fill attributehistory for small values
INSERT INTO dbo.T_ENTITYATTRIBUTEHISTORY(C_ENTITYHISTORYID, C_PROPERTYNAME, C_ORIGINALVALUE, C_CURRENTVALUE)
SELECT
e.ENTITYHISTORYID AS C_ENTITYHISTORYID,
a.C_PROPERTYNAME,
a.C_ORIGINALVALUE,
a.C_CURRENTVALUE
FROM #audit a
INNER JOIN #entity e ON e.ENTITYID = a.C_ENTITYID and e.INTEZMENYID = a.C_INTEZMENYID and e.TANEVID = a.C_TANEVID
WHERE (
(@action IN (1, 2))
OR
(@action = 3 AND ISNULL(a.C_ORIGINALVALUE, '') <> ISNULL(a.C_CURRENTVALUE, ''))
OR
(@action = 3 AND a.C_ORIGINALVALUE IS NULL AND a.C_CURRENTVALUE IS NOT NULL)
OR
(@action = 3 AND a.C_ORIGINALVALUE IS NOT NULL AND a.C_CURRENTVALUE IS NULL)
)
AND (ISNULL(DATALENGTH(a.C_ORIGINALVALUE), 0) <= 2000 AND ISNULL(DATALENGTH(a.C_CURRENTVALUE), 0) <= 2000)
OPTION (MAXDOP 1);
-- fill attributehistory for big values
INSERT INTO dbo.T_ENTITYBLOBVALUES(C_ENTITYHISTORYID, C_PROPERTYNAME, C_ORIGINALVALUE, C_CURRENTVALUE)
SELECT
e.ENTITYHISTORYID AS C_ENTITYHISTORYID,
a.C_PROPERTYNAME,
a.C_ORIGINALVALUE,
a.C_CURRENTVALUE
FROM #audit a
INNER JOIN #entity e ON e.ENTITYID = a.C_ENTITYID and e.INTEZMENYID = a.C_INTEZMENYID and e.TANEVID = a.C_TANEVID
WHERE (
(@action IN (1, 2))
OR
(@action = 3 AND ISNULL(a.C_ORIGINALVALUE, '') <> ISNULL(a.C_CURRENTVALUE, ''))
OR
(@action = 3 AND a.C_ORIGINALVALUE IS NULL AND a.C_CURRENTVALUE IS NOT NULL)
OR
(@action = 3 AND a.C_ORIGINALVALUE IS NOT NULL AND a.C_CURRENTVALUE IS NULL)
)
AND (ISNULL(DATALENGTH(a.C_ORIGINALVALUE), 0) > 2000 OR ISNULL(DATALENGTH(a.C_CURRENTVALUE), 0) > 2000)
OPTION (MAXDOP 1);
COMMIT TRANSACTION T1; -- commit changes in ENTITYHISTORY
CONTINUE_PROCESS:
IF @@TRANCOUNT > 0 COMMIT TRANSACTION; -- commit changes in the Queue
END TRY
BEGIN CATCH
DECLARE @E NVARCHAR(MAX) = dbo.fn_get_error_info();
IF @@TRANCOUNT > 1 ROLLBACK TRANSACTION T1; -- rollback changes in ENTITYHISTORY
INSERT auditlog.ErrorLog(UserName, ErrorNumber, ErrorSeverity, ErrorState, ErrorProcedure, ErrorLine, ErrorMessage)
VALUES(SUSER_NAME(), JSON_VALUE(@E, '$.ERROR_NUMBER'), JSON_VALUE(@E, '$.ERROR_SEVERITY'), JSON_VALUE(@E, '$.ERROR_STATE'), JSON_VALUE(@E, '$.ERROR_PROCEDURE'), JSON_VALUE(@E, '$.ERROR_LINE'), JSON_VALUE(@E, '$.ERROR_MESSAGE'));
INSERT INTO auditlog.AuditServiceFailedItems([conversation_handle], [message_body], [error_message])
VALUES(@handle, @message_body, JSON_VALUE(@E, '$.ERROR_MESSAGE'));
IF @@TRANCOUNT > 0 COMMIT TRANSACTION; -- commit changes in the Queue
END CATCH
END -- end of while
IF @@TRANCOUNT > 0 COMMIT TRANSACTION; -- commit any changes
-- close orphaned conversations
DECLARE @conversations TABLE([conversation_handle] uniqueidentifier NOT NULL PRIMARY KEY CLUSTERED);
INSERT INTO @conversations([conversation_handle])
SELECT e.[conversation_handle]
FROM sys.conversation_endpoints e WITH (NOLOCK)
WHERE e.[state] IN ('ER', 'DI', 'DO', 'CD')
AND e.far_service = 'AuditService'
AND NOT EXISTS(SELECT * FROM auditlog.AuditQueue a WITH (NOLOCK) WHERE a.[conversation_handle] = e.[conversation_handle])
OPTION (HASH JOIN);
SET @handle = 0x0;
WHILE (1 = 1)
BEGIN
SELECT TOP 1 @handle = [conversation_handle]
FROM @conversations
WHERE [conversation_handle] > @handle
ORDER BY [conversation_handle];
IF @@ROWCOUNT = 0 BREAK;
BEGIN TRY
END CONVERSATION @handle WITH CLEANUP;
END TRY
BEGIN CATCH
END CATCH
END
GO

View file

@ -0,0 +1,229 @@
USE msdb
GO
CREATE OR ALTER PROCEDURE dbo.usp_CheckAudit
@recipient_address NVARCHAR(1000) = null
AS
SET NOCOUNT ON;
DECLARE @result nvarchar(max) = ''
,@sql nvarchar(max)
,@remote_sql nvarchar(max)
,@db_cursor cursor
,@db_name nvarchar(100)
,@table_exists bit;
CREATE TABLE #AsyncActivity (
ServerName nvarchar(100)
,DatabaseName nvarchar(100)
,Broker bit null
,LastPageVisit datetime null
,LastEntityHistory datetime null
,FirstQueueItem datetime null
,QueueLength int null
,QueueEnabled bit null
,ProcessActivated bit null
,LastHourErrors int null
,LastHourFailedItems int null
,OpenConversations int null
,DisabledTriggers int null
,ErrorMessage nvarchar(4000) null,
Errors as (
case when (ErrorMessage > '') then 1 else 0 end +
case when (Broker = 0) then 2 else 0 end +
case when (QueueLength > 1 AND ISNULL(LastEntityHistory, GETDATE()) < ISNULL(DATEADD(hour, -3, LastPageVisit), GETDATE())) then 4 else 0 end +
case when (QueueEnabled = 0) then 8 else 0 end +
case when (QueueLength > 100000) then 16 else 0 end +
case when (ProcessActivated = 0) then 32 else 0 end +
case when (LastHourErrors > 0) then 64 else 0 end +
case when (LastHourFailedItems > 0) then 128 else 0 end +
case when (DisabledTriggers > 0) then 256 else 0 end +
case when (OpenConversations > 1000) then 512 else 0 end
)
);
SET @sql = '
SELECT
--@@SERVERNAME AS ServerName,
DB_NAME() AS DatabaseName,
(SELECT TOP 1 is_broker_enabled FROM sys.databases WHERE database_id = db_id()) AS Broker,
(SELECT TOP 1 CREATED FROM dbo.T_OLDALLATOGATOTTSAG (NOLOCK) ORDER BY ID DESC) AS LastPageVisit,
(SELECT TOP 1 CREATED FROM dbo.T_ENTITYHISTORY (NOLOCK) ORDER BY ID DESC) AS LastEntityHistory,
(SELECT TOP 1 message_enqueue_time FROM auditlog.AuditQueue WITH (NOLOCK) ORDER BY message_enqueue_time) AS FirstQueueItem,
(SELECT COUNT(*) FROM auditlog.AuditQueue WITH (NOLOCK)) AS QueueLength,
(SELECT TOP 1 is_enqueue_enabled FROM sys.service_queues WHERE name = ''AuditQueue'') AS QueueEnabled,
(SELECT TOP 1 is_activation_enabled FROM sys.service_queues WHERE name = ''AuditQueue'') AS ProcessActivated,
(SELECT COUNT(*) FROM auditlog.ErrorLog (NOLOCK) WHERE ErrorTime > DATEADD(minute, -61, GETDATE())) AS LastHourErrors,
(SELECT COUNT(*) FROM auditlog.AuditServiceFailedItems (NOLOCK) WHERE EventDate > DATEADD(minute, -61, GETDATE())) AS LastHourFailedItems,
(SELECT COUNT(*) FROM sys.triggers WHERE parent_class = 1 AND name LIKE ''tr_AsyncAudit%'' and is_disabled = 1) AS DisabledTriggers,
(SELECT COUNT(*) FROM sys.conversation_endpoints (NOLOCK) WHERE far_service = ''AuditService'') AS OpenConversations
';
SET @db_cursor = CURSOR STATIC FOR
SELECT DISTINCT name
FROM sys.databases d
LEFT JOIN sys.dm_hadr_database_replica_states rs on rs.database_id = d.database_id
WHERE d.state = 0
AND d.is_read_only = 0
AND d.database_id > 4
AND d.name NOT LIKE '%GINOP%'
AND d.source_database_id IS NULL
AND (
NOT EXISTS(SELECT * FROM sys.dm_hadr_database_replica_states r WHERE r.database_id = d.database_id)
OR
(rs.is_local = 1 AND rs.is_primary_replica = 1)
);
SET LOCK_TIMEOUT 5000;
OPEN @db_cursor;
FETCH NEXT FROM @db_cursor INTO @db_name;
WHILE @@FETCH_STATUS = 0
BEGIN
SET @remote_sql = 'SELECT @table_exists = SIGN(COUNT(*)) FROM [' + @db_name + '].INFORMATION_SCHEMA.TABLES WHERE TABLE_NAME = ''T_ENTITYHISTORY'' and TABLE_SCHEMA = ''dbo''';
EXEC sp_executesql @remote_sql, N'@table_exists BIT OUTPUT', @table_exists = @table_exists OUTPUT;
IF @table_exists = 0 GOTO FETCH_NEXT;
SET @remote_sql = 'EXEC [' + @db_name + '].sys.sp_executesql @SQL';
BEGIN TRY
INSERT INTO #AsyncActivity(DatabaseName, Broker, LastPageVisit, LastEntityHistory, FirstQueueItem, QueueLength, QueueEnabled, ProcessActivated, LastHourErrors, LastHourFailedItems, DisabledTriggers, OpenConversations)
EXEC sp_executesql @remote_sql, N'@SQL NVARCHAR(max)', @SQL = @sql;
END TRY
BEGIN CATCH
INSERT INTO #AsyncActivity(ServerName, DatabaseName, ErrorMessage)
VALUES(@@SERVERNAME, @db_name, ERROR_MESSAGE());
END CATCH
FETCH_NEXT:
FETCH NEXT FROM @db_cursor INTO @db_name;
END
CLOSE @db_cursor
IF @recipient_address IS NULL
BEGIN
SELECT * FROM #AsyncActivity;
RETURN;
END
SELECT @result += '<tr>' +
'<td>' + DatabaseName + '</td>' +
CASE WHEN ErrorMessage IS NOT NULL THEN
'<td colspan=11' + IIF(Errors & 1 = 1, ' class="error"', '') + '>Error:' + ErrorMessage + '</td>'
ELSE
'<td' + IIF(Errors & 2 = 2, ' class="error"', '') + '>' + ISNULL(CAST(Broker AS VARCHAR(10)), '&nbsp;') + '</td>' +
'<td>' + ISNULL(CONVERT(VARCHAR(19), LastPageVisit, 120), '&nbsp;') + '</td>' +
'<td' + IIF(Errors & 4 = 4, ' class="error"', '') + '>' + ISNULL(CONVERT(VARCHAR(19), LastEntityHistory, 120), '&nbsp;') + '</td>' +
'<td>' + ISNULL(CONVERT(VARCHAR(19), FirstQueueItem, 120), '&nbsp;') + '</td>' +
'<td' + IIF(Errors & 16 = 16, ' class="error"', '') + '>' + ISNULL(CAST(QueueLength AS VARCHAR(10)), '&nbsp;') + '</td>' +
'<td' + IIF(Errors & 8 = 8, ' class="error"', '') + '>' + ISNULL(CAST(QueueEnabled AS VARCHAR(10)), '&nbsp;') + '</td>' +
'<td' + IIF(Errors & 32 = 32, ' class="error"', '') + '>' + ISNULL(CAST(ProcessActivated AS VARCHAR(10)), '&nbsp;') + '</td>' +
'<td' + IIF(Errors & 64 = 64, ' class="error"', '') + '>' + ISNULL(CAST(LastHourErrors AS VARCHAR(10)), '&nbsp;') + '</td>' +
'<td' + IIF(Errors & 128 = 128, ' class="error"', '') + '>' + ISNULL(CAST(LastHourFailedItems AS VARCHAR(10)), '&nbsp;') + '</td>' +
'<td' + IIF(Errors & 256 = 256, ' class="error"', '') + '>' + ISNULL(CAST(DisabledTriggers AS VARCHAR(10)), '&nbsp;') + '</td>' +
'<td' + IIF(Errors & 512 = 512, ' class="error"', '') + '>' + ISNULL(CAST(OpenConversations AS VARCHAR(10)), '&nbsp;') + '</td>'
END +
'</tr>'
FROM #AsyncActivity
WHERE Errors > 0;
IF @@ROWCOUNT = 0 RETURN;
SET @result = '
<style>
p {
font-size: 10pt;
font-family: Calibri;
}
th {
border:1px solid #EEEEEE;
padding: 4px;
font-weight: bold;
font-size: 10pt;
font-family: Calibri;
background-color: #EEEEEE;
}
td {
border:1px solid #EEEEEE;
padding:4px;
text-align: right;
font-size: 10pt;
font-family: Calibri;
nowrap;
}
td.error {
border:1px solid #EEEEEE;
padding:4px;
text-align: right;
font-size: 10pt;
font-family: Calibri;
color: #FFFFFF;
background-color: #FF0000;
font-weight: bold;
nowrap;
}
</style>
<p>Figyelem! Hiba az AUDIT rendszerben a <b>' + @@SERVERNAME + '</b> szerveren:</p>
<table style="border-collapse:collapse">
<thead>
<th>DatabaseName</th>
<th>Broker On</th>
<th>Last Visit</th>
<th>Last History</th>
<th>First Queue</th>
<th>Queue Items</th>
<th>Queue On</th>
<th>Process Active</th>
<th>Latest Errors</th>
<th>Latest Fails</th>
<th>Disabled Triggers</th>
<th>Open Conversations</th>
</thead>
' + @result + '
</table>
<p>További információk és teendők: <a href= "https://ekretapedia.ekreta.hu/main/_layouts/15/WopiFrame.aspx?sourcedoc={9934831a-3b80-4c13-abc1-9274cceed8bb}&action=edit&wd=target%28Checklistek.one%7C2b67a257-f2e8-4e0e-9977-42134b49d577%2FAudit%20kezel%C3%A9se%20%28Audit%202.0%5C%29%7Cc1f02bcc-4bd9-485b-8deb-d98f310d946e%2F%29&wdorigin=703">OneNote|Checklistek\Audit kezelése (Audit 2.0)</a></p>
'
IF EXISTS(SELECT * FROM #AsyncActivity WHERE Errors & 32 = 32)
SET @result += '
<p><b>Process Active:</b> Újraindítás a következő paranccsal:</p>
<pre style="background-color: #EEEEEE">
ALTER QUEUE auditlog.AuditQueue
WITH
STATUS = ON,
ACTIVATION (
STATUS = ON,
PROCEDURE_NAME = auditlog.usp_AuditProcessing,
MAX_QUEUE_READERS = 1,
EXECUTE AS ''kreta_tech_user''
),
POISON_MESSAGE_HANDLING (STATUS = ON);
</pre>'
IF EXISTS(SELECT * FROM #AsyncActivity WHERE Errors & 512 = 512)
SET @result += '
<p><b>Open Conversations:</b>Javítás:</p>
<pre style="background-color: #EEEEEE">
SELECT * FROM sys.dm_broker_activated_tasks WHERE database_id = DB_ID();
SELECT * FROM sys.sysprocesses WHERE spid = $spid;
KILL $spid;
</pre>'
EXEC msdb.dbo.sp_send_dbmail
--@profile_name = 'SQL Server Alert Mail Profile',
@recipients = @recipient_address
,@body = @result
,@subject = N'KRÉTA - Audit TRIGGER/QUEUE/PROCESS hiba'
,@importance = 'High'
,@body_format = 'HTML'

View file

@ -0,0 +1,35 @@
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
CREATE OR ALTER PROCEDURE auditlog.uspLogError
@ErrorLogID int = 0 OUTPUT -- contains the ErrorLogID of the row inserted
AS -- by uspLogError in the ErrorLog table
DECLARE
@error_number INT = ERROR_NUMBER(),
@error_severity INT = ERROR_SEVERITY(),
@error_state INT = ERROR_STATE(),
@error_procedure SYSNAME = ERROR_PROCEDURE(),
@error_line INT = ERROR_LINE(),
@error_message NVARCHAR(4000) = ERROR_MESSAGE();
SET NOCOUNT ON;
INSERT auditlog.ErrorLog (
UserName,
ErrorNumber,
ErrorSeverity,
ErrorState,
ErrorProcedure,
ErrorLine,
ErrorMessage
) VALUES (
CURRENT_USER,
@error_number,
@error_severity,
@error_state,
@error_procedure,
@error_line,
@error_message
);
SET @ErrorLogID = SCOPE_IDENTITY();
GO

View file

@ -0,0 +1,165 @@
IF NOT EXISTS (SELECT 1 FROM master.dbo.syslogins WHERE name = 'kreta_tech_user' AND dbname = 'master')
BEGIN
USE [master]
CREATE LOGIN [kreta_tech_user] WITH PASSWORD=N'Porcica1.', DEFAULT_DATABASE=[master], CHECK_EXPIRATION=OFF, CHECK_POLICY=OFF
GRANT CREATE ANY DATABASE TO [kreta_tech_user]
GRANT ALTER ANY LOGIN TO [kreta_tech_user]
END
GO
IF NOT EXISTS (SELECT 1 FROM master.dbo.syslogins WHERE name = 'kreta_db_user' AND dbname = 'master')
BEGIN
USE [master]
CREATE LOGIN [kreta_db_user] WITH PASSWORD=N'Porcica1.', DEFAULT_DATABASE=[master], CHECK_EXPIRATION=OFF, CHECK_POLICY=OFF
END
GO
IF NOT EXISTS (SELECT 1 FROM sys.database_principals WHERE name = 'kreta_tech_user')
BEGIN
CREATE USER [kreta_tech_user] FOR LOGIN [kreta_tech_user]
ALTER ROLE [db_owner] ADD MEMBER [kreta_tech_user]
GRANT BACKUP DATABASE TO [kreta_tech_user]
GRANT CREATE SCHEMA TO [kreta_tech_user]
GRANT EXECUTE TO [kreta_tech_user]
END
GO
IF NOT EXISTS (SELECT 1 FROM sys.database_principals WHERE name = 'kreta_db_user')
BEGIN
CREATE USER [kreta_db_user] FOR LOGIN [kreta_db_user]
ALTER ROLE [db_datareader] ADD MEMBER [kreta_db_user]
ALTER ROLE [db_datawriter] ADD MEMBER [kreta_db_user]
GRANT CREATE SCHEMA TO [kreta_db_user]
GRANT EXECUTE TO [kreta_db_user]
END
GO
IF EXISTS (SELECT 1 FROM sys.services WHERE name = 'AuditServiceTarget') BEGIN
DROP SERVICE AuditServiceTarget
END
GO
IF EXISTS (SELECT 1 FROM sys.services WHERE name = 'AuditServiceInit') BEGIN
DROP SERVICE AuditServiceInit
END
GO
IF EXISTS (SELECT 1 FROM sys.services WHERE name = 'AuditService') BEGIN
DROP SERVICE [AuditService]
END
GO
IF EXISTS (SELECT 1 FROM sys.service_queues WHERE name = 'AuditQueue') BEGIN
DROP QUEUE auditlog.AuditQueue
END
GO
IF EXISTS (SELECT 1 FROM sys.service_contracts WHERE name = 'AuditContract') BEGIN
DROP CONTRACT AuditContract
END
GO
IF EXISTS (SELECT 1 FROM sys.service_message_types WHERE name = 'AuditMessage') BEGIN
DROP MESSAGE TYPE AuditMessage
END
GO
DECLARE @sql nvarchar(max)
EXEC sp_changedbowner 'sa';
IF (SELECT is_broker_enabled FROM sys.databases WHERE database_id = DB_ID()) = 0 BEGIN
SET @sql = N'ALTER DATABASE ' + DB_NAME() + ' SET SINGLE_USER WITH ROLLBACK IMMEDIATE '
EXEC master.sys.sp_executesql @sql
-- Ha a Service Broker IDja nem egyedi
IF EXISTS (SELECT 1 FROM sys.databases x WHERE x.service_broker_guid = (SELECT service_broker_guid FROM sys.databases d WHERE d.database_id = DB_ID()) AND x.database_id <> DB_ID()) BEGIN
SET @sql = N'ALTER DATABASE ' + DB_NAME() + ' SET NEW_BROKER'
EXEC master.sys.sp_executesql @sql
END
ELSE BEGIN
SET @sql = N'ALTER DATABASE ' + DB_NAME() + ' SET ENABLE_BROKER'
EXEC master.sys.sp_executesql @sql
END
SET @sql = N'ALTER DATABASE ' + DB_NAME() + ' SET MULTI_USER'
EXEC master.sys.sp_executesql @sql
END;
GO
IF NOT EXISTS (SELECT 1 FROM sys.service_message_types WHERE name = 'AuditMessage') BEGIN
CREATE MESSAGE TYPE [AuditMessage]
VALIDATION = NONE;
END
GO
IF NOT EXISTS (SELECT 1 FROM sys.service_message_types WHERE name = 'EndOfStream') BEGIN
CREATE MESSAGE TYPE EndOfStream;
END
GO
IF NOT EXISTS (SELECT 1 FROM sys.service_contracts WHERE name = 'AuditContract') BEGIN
CREATE CONTRACT [AuditContract] (
[AuditMessage] SENT BY INITIATOR,
[EndOfStream] SENT BY INITIATOR
);
END
GO
IF OBJECT_ID('auditlog.usp_AuditProcessing') IS NULL BEGIN
EXEC('CREATE PROCEDURE auditlog.usp_AuditProcessing AS SELECT 1')
END
IF NOT EXISTS (SELECT 1 FROM sys.service_queues WHERE name = 'AuditQueue') BEGIN
CREATE QUEUE auditlog.AuditQueue WITH STATUS=ON, ACTIVATION (
STATUS = ON
,MAX_QUEUE_READERS = 1
,PROCEDURE_NAME = auditlog.usp_AuditProcessing
,EXECUTE AS 'kreta_tech_user'
);
END
GO
IF NOT EXISTS (SELECT 1 FROM sys.services WHERE name = 'AuditService') BEGIN
CREATE SERVICE [AuditService]
ON QUEUE auditlog.AuditQueue ([AuditContract]);
END
GO
IF OBJECT_ID('auditlog.ErrorLog') IS NOT NULL
DROP TABLE [auditlog].[ErrorLog];
GO
CREATE TABLE [auditlog].[ErrorLog](
[ErrorLogID] [int] IDENTITY(1,1) NOT NULL,
[ErrorTime] [datetime] NOT NULL,
[UserName] [sysname] NOT NULL,
[ErrorNumber] [int] NOT NULL,
[ErrorSeverity] [int] NULL,
[ErrorState] [int] NULL,
[ErrorProcedure] [nvarchar](126) NULL,
[ErrorLine] [int] NULL,
[ErrorMessage] [nvarchar](4000) NOT NULL,
CONSTRAINT [PK_ErrorLog_ErrorLogID] PRIMARY KEY CLUSTERED ([ErrorLogID] ASC)
)
GO
ALTER TABLE [auditlog].[ErrorLog]
ADD CONSTRAINT [DF_ErrorLog_ErrorTime]
DEFAULT (getdate()) FOR [ErrorTime]
GO
ALTER QUEUE auditLog.[AuditQueue]
WITH ACTIVATION
(
STATUS = ON,
PROCEDURE_NAME = auditLog.usp_AuditProcessing,
MAX_QUEUE_READERS = 1,
EXECUTE AS 'kreta_tech_user'
);
GO

File diff suppressed because it is too large Load diff

View file

@ -0,0 +1,62 @@
DECLARE
@tableName nvarchar(50)
,@columnName nvarchar(50)
,@description nvarchar(2000)
DECLARE tableCursor CURSOR LOCAL FOR
SELECT t.TABLE_NAME, c.COLUMN_NAME
FROM INFORMATION_SCHEMA.COLUMNS c
INNER JOIN INFORMATION_SCHEMA.TABLES t ON t.TABLE_SCHEMA = c.TABLE_SCHEMA AND t.TABLE_NAME = c.TABLE_NAME
WHERE c.TABLE_SCHEMA = 'dbo'
AND t.TABLE_TYPE = 'BASE TABLE'
AND t.TABLE_NAME LIKE 'T[_]%'
AND c.COLUMN_NAME IN (
N'ID'
,N'C_INTEZMENYID'
,N'C_TANEVID'
,N'C_ALINTEZMENYID'
,N'C_ALTANEVID'
,N'TOROLT'
,N'SERIAL'
,N'LASTCHANGED'
,N'CREATED'
,N'MODIFIER'
,N'CREATOR'
,N'ELOZOTANEVIREKORDID'
,N'ELOZOTANEVIREKORDIDA'
)
OPEN tableCursor
FETCH NEXT FROM tableCursor INTO @tableName, @columnName
WHILE @@FETCH_STATUS = 0 BEGIN
SET @description =
CASE @columnName
WHEN N'ID' THEN 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)'
WHEN N'C_INTEZMENYID' THEN N'Az intézmény ID-ja, amihez a rekord tartozik'
WHEN N'C_TANEVID' THEN N'A tanév ID-ja, amihez a rekord tartozik'
WHEN N'C_ALINTEZMENYID' THEN N'Az intézmény ID-ja, amihez a rekord tartozik (altábla esetén)'
WHEN N'C_ALTANEVID' THEN N'A tanév ID-ja, amihez a rekord tartozik (altábla esetén)'
WHEN N'TOROLT' THEN N'A rekord logikai töröltségét jelző flag'
WHEN N'SERIAL' THEN 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'
WHEN N'LASTCHANGED' THEN N' A rekord utolsó módosításának időpontja'
WHEN N'CREATED' THEN N'A rekord létrehozásának időpontja '
WHEN N'MODIFIER' THEN N'A rekordot utoljára módosító felhasználó ID-ja'
WHEN N'CREATOR' THEN N'A rekordot létrehozó felhasználó ID-ja'
WHEN N'ELOZOTANEVIREKORDID' THEN N'A rekord előző tanévben lévő ID-ja'
WHEN N'ELOZOTANEVIREKORDIDA' THEN N'A rekord előző tanévben lévő ID-ja (altábla esetén) '
ELSE N'A rekord régi, Neptun Naplóban lévő ID-ja. (migrációval került be)'
END;
EXEC sp_addextendedproperty
@name = N'MS_Description'
,@value = @description
,@level0type = N'Schema', @level0name = N'dbo'
,@level1type = N'Table', @level1name = @tableName
,@level2type = N'Column', @level2name = @columnName;
FETCH NEXT FROM tableCursor INTO @tableName, @columnName
END
CLOSE tableCursor
DEALLOCATE tableCursor
GO

View file

@ -0,0 +1,59 @@
-- ==========================================================================================================================================================================
-- Adattisztítás szabályok
-- ==========================================================================================================================================================================
SET IDENTITY_INSERT T_ADATTISZTITASINDIKATOR ON
INSERT INTO T_ADATTISZTITASINDIKATOR (ID, C_KOD, C_ADATKOR, C_MEZO, C_LEIRAS) VALUES
(1, 'A001', 'Alkalmazott', N'Neme', 'A mező tartalma üres.'),
(2, 'A002', 'Alkalmazott', N'Családi név', 'A mező tartalma üres vagy 2 karakternél rövidebb.'),
(3, 'A003', 'Alkalmazott', N'Utónév', 'A mező tartalma üres vagy 2 karakternél rövidebb.'),
(4, 'A004', 'Alkalmazott', N'Születési családi név', 'A mező tartalma üres vagy 2 karakternél rövidebb.'),
(5, 'A005', 'Alkalmazott', N'Születési utónév', 'A mező tartalma üres vagy 2 karakternél rövidebb.'),
(6, 'A006', 'Alkalmazott', N'Anyja születési családi neve', 'A mező tartalma üres vagy 2 karakternél rövidebb.'),
(7, 'A007', 'Alkalmazott', N'Anyja születési utóneve', 'A mező tartalma üres vagy 2 karakternél rövidebb.'),
(8, 'A008', 'Alkalmazott', N'Születési hely', 'A mező tartalma üres.'),
(9, 'A009', 'Alkalmazott', N'Születési idő', 'A mező tartalma üres vagy a születési dátum 1940 előtti vagy 2002 utáni.'),
(10, 'A010', 'Alkalmazott', N'Igazolvány száma', 'Az Igazolvány típusa meg van adva, de az igazolvány száma nincs kitöltve.'),
(11, 'A011', 'Alkalmazott', N'Adóazonosító jel', 'Az adóazonosító jel ki van töltve de nem felel meg a hivatalos generálási szabályoknak (CDV).'),
(12, 'A012', 'Alkalmazott', N'Cím típusa', 'A mező tartalma üres vagy Na.'),
(13, 'A013', 'Alkalmazott', N'Irányítószám', 'A mező tartalma üres.'),
(14, 'A014', 'Alkalmazott', N'Irányítószám', 'Az irányítószám nem szerepel a postai nyílvántartásban.'),
(15, 'A015', 'Alkalmazott', N'Irányítószám', 'Az irányítószám nem a megadott helységnévhez tartozik.'),
(16, 'A016', 'Alkalmazott', N'Helység név', 'A mező tartalma üres.'),
(17, 'A017', 'Alkalmazott', N'Helység név', 'A helységénv nem szerepel a postai nyílvántartásban.'),
(18, 'A018', 'Alkalmazott', N'Közterület név', 'A mező tartalma üres.'),
(19, 'A019', 'Alkalmazott', N'Közterület jellege', 'A mező tartalma üres vagy Na.'),
(20, 'A020', 'Alkalmazott', N'Házszám', 'A mező tartalma üres.'),
(21, 'A021', 'Alkalmazott', N'Telefonszám', 'A telefonszám hossza 10 számjegynél kevesebb („-„, „/”, stb. nélkül).'),
(22, 'A022', 'Alkalmazott', N'Email cím', 'A mezőben lévő érték nem tartalmatartalmaz "@ és/vagy „.” karaktert.'),
(23, 'A023', 'Alkalmazott', N'Email típus', 'Az Email cím nem üres, és az ellenőrzött mező tartalma Na vagy üres.'),
(24, 'A024', 'Alkalmazott', N'Diákolimpiai jogosultság', 'A mező tartalma üres.'),
(25, 'A025', 'Alkalmazott', N'Kezelheti a közösségi szolgálatokat', 'A mező tartalma üres.'),
(26, 'A026', 'Alkalmazott', N'Munkakör', 'A mező tartalma üres vagy Na.'),
(27, 'A027', 'Alkalmazott', N'Munkakör', 'A értéke nem a legördülő listában - a fenntartó által megjelölt - található értékkészletnek felel meg.'),
(28, 'A028', 'Alkalmazott', N'Foglalkoztatási jogviszony', 'A mező tartalma üres vagy Na.'),
(29, 'A029', 'Alkalmazott', N'Részmunkaidő százalék', 'A Foglalkoztatás típusa mező tartalma Részmunkaidős de a Részmunkaidő százalék értéke nem 1-99 % közötti.'),
(30, 'A030', 'Alkalmazott', N'Alkalmazás kezdete', 'A mező tartalma üres.'),
(31, 'A031', 'Alkalmazott', N'Alkalmazás kezdete', 'A Munkakör hittanoktató vagy az előtag tartalmazza a KA vagy BTA vagy KGK megnevezést és az Alkalmazás kezdete mező tartalma nem üres.'),
(32, 'A032', 'Alkalmazott', N'Alkalmazás vége', 'A mező tartalma üres.'),
(33, 'A033', 'Alkalmazott', N'Alkalmazás vége', 'A Munkakör hittanoktató vagy az előtag tartalmazza a KA vagy BTA vagy KGK megnevezést és az Alkalmazás vége mező tartalma nem üres.'),
(34, 'A034', 'Alkalmazott', N'Tartósan távollévő', 'A mező tartalma üres.'),
(35, 'A035', 'Alkalmazott', N'Betöltetlen álláshely', 'A jelölőnégyzet be van pipálva de az előtag nem tartalmazza BTA megnevezést. Vagy jelölőnégyzet nincs bepipálva de az előtag tartalmazza BTA megnevezést.'),
(36, 'A036', 'Alkalmazott', N'Betöltetlen álláshely', 'A mező tartalma üres.'),
(37, 'A037', 'Alkalmazott', N'Főállású', 'A mező tartalma üres.'),
(38, 'A038', 'Alkalmazott', N'Nyugdíjas (továbbfoglalkoztatott)', 'A mező tartalma üres.'),
(39, 'A039', 'Alkalmazott', N'Szakértői, vagy vizsgaelnöki tevékenységű', 'A mező tartalma üres.'),
(40, 'A040', 'Alkalmazott', N'Szakértői, vagy vizsgaelnöki tevékenységű', 'A mező tartalma TRUE és a Pedagógus fokozat Na.'),
(41, 'A041', 'Alkalmazott', N'Szakmai továbbképzés', 'A mező tartalma üres.'),
(42, 'A042', 'Alkalmazott', N'Szakmai továbbképzés', 'A jelölőnégyzet be van pipálva de a Pedagógus fokozat Na.'),
(43, 'A043', 'Alkalmazott', N'Szakvizsga', 'A mező tartalma üres.'),
(44, 'A044', 'Alkalmazott', N'Szakvizsga', 'A jelölőnégyzet be van pipálva de a Pedagógus fokozat Na.'),
(45, 'A045', 'Alkalmazott', N'Áttanító', 'A mező tartalma üres.'),
(46, 'A046', 'Alkalmazott', N'Áttanító', 'A jelölőnégyzet be van pipálva de a Pedagógus fokozat nem Na.'),
(47, 'A047', 'Alkalmazott', N'Áttanító más intézménynél', 'A mező tartalma üres.'),
(48, 'A048', 'Alkalmazott', N'Áttanító más intézménynél', 'A jelölőnégyzet be van pipálva de a Pedagógus fokozat nem Na.'),
(49, 'A049', 'Alkalmazott', N'SZTSZ számok', 'A mező tartalma üres.')
SET IDENTITY_INSERT T_ADATTISZTITASINDIKATOR OFF
GO

File diff suppressed because it is too large Load diff

View file

@ -0,0 +1,38 @@
SET IDENTITY_INSERT [T_CONFIGTIPUS] ON
---------------------------------------
INSERT INTO T_CONFIGTIPUS ([ID], [C_CONFIG], [C_MODUL], [TOROLT], [SERIAL], [LASTCHANGED], [CREATED], [MODIFIER], [CREATOR], [ELOZOTANEVIREKORDID])
VALUES
(1, 'IsEnabled', 'ESL', 'F', 0, GETDATE(), GETDATE(), 0, 0, NULL)
,(2, 'Url', 'ESL', 'F', 0, GETDATE(), GETDATE(), 0, 0, NULL)
,(3, 'IsEnabled', 'Fokusz', 'F', 0, GETDATE(), GETDATE(), 0, 0, NULL)
,(4, 'Url', 'Fokusz', 'F', 0, GETDATE(), GETDATE(), 0, 0, NULL)
,(5, 'IsEnabled', 'HRModul', 'F', 0, GETDATE(), GETDATE(), 0, 0, NULL)
,(6, 'IsEnabled', 'Eugyintezes', 'F', 0, GETDATE(), GETDATE(), 0, 0, NULL)
,(7, 'Url', 'Eugyintezes', 'F', 0, GETDATE(), GETDATE(), 0, 0, NULL)
,(8, 'IsEnabled', 'UzenetModul', 'F', 0, GETDATE(), GETDATE(), 0, 0, NULL)
,(9, 'Url', 'UzenetModul', 'F', 0, GETDATE(), GETDATE(), 0, 0, NULL)
,(10, 'IsEnabled', 'eJelentkezes', 'F', 0, GETDATE(), GETDATE(), 0, 0, NULL)
,(11, 'Url', 'eJelentkezes', 'F', 0, GETDATE(), GETDATE(), 0, 0, NULL)
,(12, 'IsEnabled', 'Beiratkozas', 'F', 0, GETDATE(), GETDATE(), 0, 0, NULL)
,(13, 'IsEnabled', 'Nyomtatvany_PedIgHelyettKiall', 'F', 0, GETDATE(), GETDATE(), 0, 0, NULL)
,(14, 'IsEnabled', 'KozmuAdatszolgaltatas', 'F', 0, GETDATE(), GETDATE(), 0, 0, NULL)
,(15, 'IsEnabled', 'Leltar', 'F', 0, GETDATE(), GETDATE(), 0, 0, NULL)
,(16, 'Url', 'Leltar', 'F', 0, GETDATE(), GETDATE(), 0, 0, NULL)
,(17, 'IsEnabled', 'Konyvtar', 'F', 0, GETDATE(), GETDATE(), 0, 0, NULL)
,(18, 'Url', 'Konyvtar', 'F', 0, GETDATE(), GETDATE(), 0, 0, NULL)
,(19, 'IsEnabled', 'Apaczai', 'F', 0, GETDATE(), GETDATE(), 0, 0, NULL)
,(20, 'IsEnabled', 'Palyavalasztas', 'F', 0, GETDATE(), GETDATE(), 0, 0, NULL)
,(21, 'Url', 'Palyavalasztas', 'F', 0, GETDATE(), GETDATE(), 0, 0, NULL)
,(22, 'IsEnabled', 'SzirStatAdatszolgBekuldese', 'F', 0, GETDATE(), GETDATE(), 0, 0, NULL)
,(23, 'IsEnabled', 'IsKlebelsberg', 'F', 0, GETDATE(), GETDATE(), 0, 0, NULL)
,(24, 'IsEnabled', 'EszkozKezeles', 'F', 0, GETDATE(), GETDATE(), 0, 0, NULL)
,(25, 'IsEnabled', 'FeltarGondviselo', 'F', 0, GETDATE(), GETDATE(), 0, 0, NULL)
,(26, 'IsEnabled', 'FeltarAlkalmazott', 'F', 0, GETDATE(), GETDATE(), 0, 0, NULL)
,(28, 'Url', 'FeltarASZF', 'F', 0, GETDATE(), GETDATE(), 0, 0, NULL)
,(29, 'IsEnabled', 'Okosmeres', 'F', 0, GETDATE(), GETDATE(), 0, 0, NULL)
,(30, 'Url', 'EszkozUgyintezes', 'F', 0, GETDATE(), GETDATE(), 0, 0, NULL)
,(31, 'Url', 'FeltarASZFGondviselo', 'F', 0, GETDATE(), GETDATE(), 0, 0, NULL)
,(32, 'IsEnabled', 'DualisKepzes', 'F', 0, GETDATE(), GETDATE(), 0, 0, NULL)
---------------------------------------
SET IDENTITY_INSERT [T_CONFIGTIPUS] OFF
GO

View file

@ -0,0 +1,27 @@
/* DashboardUzenetKategoria */
SET IDENTITY_INSERT [dbo].[T_DASHBOARDUZENETKATEGORIA] ON
INSERT [dbo].[T_DASHBOARDUZENETKATEGORIA] ([ID], [C_NEV]) VALUES (0, N'HIBA')
GO
INSERT [dbo].[T_DASHBOARDUZENETKATEGORIA] ([ID], [C_NEV]) VALUES (1, N'FIGYELMEZTETES')
GO
INSERT [dbo].[T_DASHBOARDUZENETKATEGORIA] ([ID], [C_NEV]) VALUES (2, N'SIKER')
GO
INSERT [dbo].[T_DASHBOARDUZENETKATEGORIA] ([ID], [C_NEV]) VALUES (3, N'INFORMACIO')
GO
INSERT [dbo].[T_DASHBOARDUZENETKATEGORIA] ([ID], [C_NEV]) VALUES (4, N'KIEMELT')
GO
INSERT [dbo].[T_DASHBOARDUZENETKATEGORIA] ([ID], [C_NEV]) VALUES (5, N'POPUPMEGERTETTEM')
GO
INSERT [dbo].[T_DASHBOARDUZENETKATEGORIA] ([ID], [C_NEV]) VALUES (6, N'POPUPTOBBSZORIMEGERTETTEM')
GO
INSERT [dbo].[T_DASHBOARDUZENETKATEGORIA] ([ID], [C_NEV]) VALUES (7, N'POPUPTOVABB')
GO
INSERT [dbo].[T_DASHBOARDUZENETKATEGORIA] ([ID], [C_NEV]) VALUES (8, N'POPUPKERDOIV')
GO
INSERT [dbo].[T_DASHBOARDUZENETKATEGORIA] ([ID], [C_NEV]) VALUES (9, N'POPUPNEXTCAPTIONCONFIRM')
GO
INSERT [dbo].[T_DASHBOARDUZENETKATEGORIA] ([ID], [C_NEV]) VALUES (10, N'POPUPCUSTOMCAPTIONCONFIRM')
GO
SET IDENTITY_INSERT [dbo].[T_DASHBOARDUZENETKATEGORIA] OFF
GO

View file

@ -0,0 +1,284 @@

-- ==========================================================================================================================================================================
-- LogEventType
-- ==========================================================================================================================================================================
SET IDENTITY_INSERT [dbo].[T_LOGEVENTTYPE] ON
GO
INSERT [dbo].[T_LOGEVENTTYPE] ([ID], [C_DISPLAYNAME], [C_DELETABLE]) VALUES (0, N'GENERAL', N'T')
GO
INSERT [dbo].[T_LOGEVENTTYPE] ([ID], [C_DISPLAYNAME], [C_DELETABLE]) VALUES (1000, N'SYSTEM_EXCEPTION', N'T')
GO
INSERT [dbo].[T_LOGEVENTTYPE] ([ID], [C_DISPLAYNAME], [C_DELETABLE]) VALUES (1001, N'CRITICAL_EXCEPTION', N'T')
GO
INSERT [dbo].[T_LOGEVENTTYPE] ([ID], [C_DISPLAYNAME], [C_DELETABLE]) VALUES (1002, N'DATAPROVIDER_EXCEPTION', N'T')
GO
INSERT [dbo].[T_LOGEVENTTYPE] ([ID], [C_DISPLAYNAME], [C_DELETABLE]) VALUES (1003, N'SCHEDULER_EXCEPTION', N'T')
GO
INSERT [dbo].[T_LOGEVENTTYPE] ([ID], [C_DISPLAYNAME], [C_DELETABLE]) VALUES (1004, N'PROGRAMMABILITY_EXCEPTION', N'T')
GO
INSERT [dbo].[T_LOGEVENTTYPE] ([ID], [C_DISPLAYNAME], [C_DELETABLE]) VALUES (2000, N'DB_TABLESPACE_WARNING', N'T')
GO
INSERT [dbo].[T_LOGEVENTTYPE] ([ID], [C_DISPLAYNAME], [C_DELETABLE]) VALUES (3000, N'LICENSE_SUCCESS', N'T')
GO
INSERT [dbo].[T_LOGEVENTTYPE] ([ID], [C_DISPLAYNAME], [C_DELETABLE]) VALUES (3001, N'LICENSE_ERROR', N'T')
GO
INSERT [dbo].[T_LOGEVENTTYPE] ([ID], [C_DISPLAYNAME], [C_DELETABLE]) VALUES (3002, N'LICENSE_WARNING', N'T')
GO
INSERT [dbo].[T_LOGEVENTTYPE] ([ID], [C_DISPLAYNAME], [C_DELETABLE]) VALUES (4000, N'UPDATE_INFO', N'T')
GO
INSERT [dbo].[T_LOGEVENTTYPE] ([ID], [C_DISPLAYNAME], [C_DELETABLE]) VALUES (4001, N'UPDATE_ERROR', N'T')
GO
INSERT [dbo].[T_LOGEVENTTYPE] ([ID], [C_DISPLAYNAME], [C_DELETABLE]) VALUES (5000, N'WEB_ERROR_REPORT', N'T')
GO
INSERT [dbo].[T_LOGEVENTTYPE] ([ID], [C_DISPLAYNAME], [C_DELETABLE]) VALUES (10001, N'FRAMEWORK_GENERAL', N'T')
GO
INSERT [dbo].[T_LOGEVENTTYPE] ([ID], [C_DISPLAYNAME], [C_DELETABLE]) VALUES (10002, N'FRAMEWORK_CONFIG_INVALIDCONFIG', N'T')
GO
INSERT [dbo].[T_LOGEVENTTYPE] ([ID], [C_DISPLAYNAME], [C_DELETABLE]) VALUES (10003, N'FRAMEWORK_DB_GENERAL', N'T')
GO
INSERT [dbo].[T_LOGEVENTTYPE] ([ID], [C_DISPLAYNAME], [C_DELETABLE]) VALUES (10004, N'FRAMEWORK_DB_SERVERNOTFOUND', N'T')
GO
INSERT [dbo].[T_LOGEVENTTYPE] ([ID], [C_DISPLAYNAME], [C_DELETABLE]) VALUES (10005, N'FRAMEWORK_SESSION_GENERAL', N'T')
GO
INSERT [dbo].[T_LOGEVENTTYPE] ([ID], [C_DISPLAYNAME], [C_DELETABLE]) VALUES (10006, N'FRAMEWORK_SESSION_CANNOTCREATE', N'T')
GO
INSERT [dbo].[T_LOGEVENTTYPE] ([ID], [C_DISPLAYNAME], [C_DELETABLE]) VALUES (10007, N'FRAMEWORK_SESSION_INVALID', N'T')
GO
INSERT [dbo].[T_LOGEVENTTYPE] ([ID], [C_DISPLAYNAME], [C_DELETABLE]) VALUES (10008, N'FRAMEWORK_SESSION_CANNOTSTART', N'T')
GO
INSERT [dbo].[T_LOGEVENTTYPE] ([ID], [C_DISPLAYNAME], [C_DELETABLE]) VALUES (10009, N'FRAMEWORK_SESSION_CANNOTSTOP', N'T')
GO
INSERT [dbo].[T_LOGEVENTTYPE] ([ID], [C_DISPLAYNAME], [C_DELETABLE]) VALUES (10010, N'FRAMEWORK_USERCONTEXT_CANNOTCREATE', N'T')
GO
INSERT [dbo].[T_LOGEVENTTYPE] ([ID], [C_DISPLAYNAME], [C_DELETABLE]) VALUES (10011, N'FRAMEWORK_USERCONTEXT_INVALID', N'T')
GO
INSERT [dbo].[T_LOGEVENTTYPE] ([ID], [C_DISPLAYNAME], [C_DELETABLE]) VALUES (10012, N'FRAMEWORK_SERVERSTART', N'T')
GO
INSERT [dbo].[T_LOGEVENTTYPE] ([ID], [C_DISPLAYNAME], [C_DELETABLE]) VALUES (10013, N'FRAMEWORK_SERVERSTOP', N'T')
GO
INSERT [dbo].[T_LOGEVENTTYPE] ([ID], [C_DISPLAYNAME], [C_DELETABLE]) VALUES (10014, N'FRAMEWORK_CONFIGLOADED', N'T')
GO
INSERT [dbo].[T_LOGEVENTTYPE] ([ID], [C_DISPLAYNAME], [C_DELETABLE]) VALUES (10015, N'FRAMEWORK_SESSIONCREATED', N'F')
GO
INSERT [dbo].[T_LOGEVENTTYPE] ([ID], [C_DISPLAYNAME], [C_DELETABLE]) VALUES (10016, N'FRAMEWORK_SESSIONDELETED', N'T')
GO
INSERT [dbo].[T_LOGEVENTTYPE] ([ID], [C_DISPLAYNAME], [C_DELETABLE]) VALUES (10017, N'FRAMEWORK_SESSIONEXPIRED', N'T')
GO
INSERT [dbo].[T_LOGEVENTTYPE] ([ID], [C_DISPLAYNAME], [C_DELETABLE]) VALUES (10018, N'FRAMEWORK_EXCEPTION', N'T')
GO
INSERT [dbo].[T_LOGEVENTTYPE] ([ID], [C_DISPLAYNAME], [C_DELETABLE]) VALUES (10019, N'FRAMEWORK_ENTITYHISTORYFAILED', N'T')
GO
INSERT [dbo].[T_LOGEVENTTYPE] ([ID], [C_DISPLAYNAME], [C_DELETABLE]) VALUES (10020, N'FRAMEWORK_BEGINTRANSACTION', N'T')
GO
INSERT [dbo].[T_LOGEVENTTYPE] ([ID], [C_DISPLAYNAME], [C_DELETABLE]) VALUES (10021, N'FRAMEWORK_COMMITTRANSACTION', N'T')
GO
INSERT [dbo].[T_LOGEVENTTYPE] ([ID], [C_DISPLAYNAME], [C_DELETABLE]) VALUES (10022, N'FRAMEWORK_ROLLBACKTRANSACTION', N'T')
GO
INSERT [dbo].[T_LOGEVENTTYPE] ([ID], [C_DISPLAYNAME], [C_DELETABLE]) VALUES (10023, N'FRAMEWORK_SERVERLOAD', N'T')
GO
INSERT [dbo].[T_LOGEVENTTYPE] ([ID], [C_DISPLAYNAME], [C_DELETABLE]) VALUES (10024, N'FRAMEWORK_SESSIONCLEANUP', N'T')
GO
INSERT [dbo].[T_LOGEVENTTYPE] ([ID], [C_DISPLAYNAME], [C_DELETABLE]) VALUES (10025, N'FRAMEWORK_LOGFAILED', N'T')
GO
INSERT [dbo].[T_LOGEVENTTYPE] ([ID], [C_DISPLAYNAME], [C_DELETABLE]) VALUES (10026, N'FRAMEWORK_DATAINTEGRITYVIOLATION', N'T')
GO
INSERT [dbo].[T_LOGEVENTTYPE] ([ID], [C_DISPLAYNAME], [C_DELETABLE]) VALUES (10027, N'FRAMEWORK_NOTINTRANSACTION', N'T')
GO
INSERT [dbo].[T_LOGEVENTTYPE] ([ID], [C_DISPLAYNAME], [C_DELETABLE]) VALUES (10028, N'FRAMEWORK_SESSIONLIMITREACHED', N'T')
GO
INSERT [dbo].[T_LOGEVENTTYPE] ([ID], [C_DISPLAYNAME], [C_DELETABLE]) VALUES (10029, N'FRAMEWORK_DB_FOREIGNKEYVIOLATION', N'T')
GO
INSERT [dbo].[T_LOGEVENTTYPE] ([ID], [C_DISPLAYNAME], [C_DELETABLE]) VALUES (10030, N'FRAMEWORK_DB_UNIQUEKEYVIOLATION', N'T')
GO
INSERT [dbo].[T_LOGEVENTTYPE] ([ID], [C_DISPLAYNAME], [C_DELETABLE]) VALUES (10031, N'FRAMEWORK_SERVER_STOPPING', N'T')
GO
INSERT [dbo].[T_LOGEVENTTYPE] ([ID], [C_DISPLAYNAME], [C_DELETABLE]) VALUES (10032, N'FRAMEWORK_LICENSE_ERROR', N'T')
GO
INSERT [dbo].[T_LOGEVENTTYPE] ([ID], [C_DISPLAYNAME], [C_DELETABLE]) VALUES (10033, N'FRAMEWORK_USER_LOGIN', N'F')
GO
INSERT [dbo].[T_LOGEVENTTYPE] ([ID], [C_DISPLAYNAME], [C_DELETABLE]) VALUES (10034, N'FRAMEWORK_USER_SETROLE', N'F')
GO
INSERT [dbo].[T_LOGEVENTTYPE] ([ID], [C_DISPLAYNAME], [C_DELETABLE]) VALUES (10035, N'FRAMEWORK_DB_DEADLOCK', N'F')
GO
INSERT [dbo].[T_LOGEVENTTYPE] ([ID], [C_DISPLAYNAME], [C_DELETABLE]) VALUES (14001, N'MOBILESERVICEERROR', N'T')
GO
INSERT [dbo].[T_LOGEVENTTYPE] ([ID], [C_DISPLAYNAME], [C_DELETABLE]) VALUES (20001, N'ACTION_GENERAL', N'T')
GO
INSERT [dbo].[T_LOGEVENTTYPE] ([ID], [C_DISPLAYNAME], [C_DELETABLE]) VALUES (20002, N'ACTION_INVALIDREQUEST', N'T')
GO
INSERT [dbo].[T_LOGEVENTTYPE] ([ID], [C_DISPLAYNAME], [C_DELETABLE]) VALUES (20003, N'ACTION_INCOMPLETED', N'T')
GO
INSERT [dbo].[T_LOGEVENTTYPE] ([ID], [C_DISPLAYNAME], [C_DELETABLE]) VALUES (20004, N'ACTION_NOTFOUND', N'T')
GO
INSERT [dbo].[T_LOGEVENTTYPE] ([ID], [C_DISPLAYNAME], [C_DELETABLE]) VALUES (20005, N'ACTION_EXECUTE', N'T')
GO
INSERT [dbo].[T_LOGEVENTTYPE] ([ID], [C_DISPLAYNAME], [C_DELETABLE]) VALUES (20006, N'ACTION_INVALID_FIELD_LENGTH', N'T')
GO
INSERT [dbo].[T_LOGEVENTTYPE] ([ID], [C_DISPLAYNAME], [C_DELETABLE]) VALUES (21000, N'WindowsServiceExecute', N'T')
GO
INSERT [dbo].[T_LOGEVENTTYPE] ([ID], [C_DISPLAYNAME], [C_DELETABLE]) VALUES (21001, N'WindowsServiceError', N'T')
GO
INSERT [dbo].[T_LOGEVENTTYPE] ([ID], [C_DISPLAYNAME], [C_DELETABLE]) VALUES (30001, N'ENTITY_GENERAL', N'T')
GO
INSERT [dbo].[T_LOGEVENTTYPE] ([ID], [C_DISPLAYNAME], [C_DELETABLE]) VALUES (30002, N'ENTITY_NOTFOUND', N'T')
GO
INSERT [dbo].[T_LOGEVENTTYPE] ([ID], [C_DISPLAYNAME], [C_DELETABLE]) VALUES (30003, N'ENTITY_INVALIDDATA', N'T')
GO
INSERT [dbo].[T_LOGEVENTTYPE] ([ID], [C_DISPLAYNAME], [C_DELETABLE]) VALUES (30004, N'ENTITY_INVALIDSTATE', N'T')
GO
INSERT [dbo].[T_LOGEVENTTYPE] ([ID], [C_DISPLAYNAME], [C_DELETABLE]) VALUES (30005, N'ENTITY_LOAD', N'T')
GO
INSERT [dbo].[T_LOGEVENTTYPE] ([ID], [C_DISPLAYNAME], [C_DELETABLE]) VALUES (30006, N'ENTITY_INSERT', N'F')
GO
INSERT [dbo].[T_LOGEVENTTYPE] ([ID], [C_DISPLAYNAME], [C_DELETABLE]) VALUES (30007, N'ENTITY_UPDATE', N'F')
GO
INSERT [dbo].[T_LOGEVENTTYPE] ([ID], [C_DISPLAYNAME], [C_DELETABLE]) VALUES (30008, N'ENTITY_DELETE', N'F')
GO
INSERT [dbo].[T_LOGEVENTTYPE] ([ID], [C_DISPLAYNAME], [C_DELETABLE]) VALUES (30009, N'ENTITY_MODIFY', N'F')
GO
INSERT [dbo].[T_LOGEVENTTYPE] ([ID], [C_DISPLAYNAME], [C_DELETABLE]) VALUES (30010, N'ENTITY_EXPIREDVERSION', N'T')
GO
INSERT [dbo].[T_LOGEVENTTYPE] ([ID], [C_DISPLAYNAME], [C_DELETABLE]) VALUES (30011, N'ENTITY_READONLYATTRIBUTE', N'T')
GO
INSERT [dbo].[T_LOGEVENTTYPE] ([ID], [C_DISPLAYNAME], [C_DELETABLE]) VALUES (30012, N'ENTITY_DELETEFAILED', N'T')
GO
INSERT [dbo].[T_LOGEVENTTYPE] ([ID], [C_DISPLAYNAME], [C_DELETABLE]) VALUES (30013, N'ENTITY_READONLY', N'T')
GO
INSERT [dbo].[T_LOGEVENTTYPE] ([ID], [C_DISPLAYNAME], [C_DELETABLE]) VALUES (40001, N'SECURITY_GENERAL', N'T')
GO
INSERT [dbo].[T_LOGEVENTTYPE] ([ID], [C_DISPLAYNAME], [C_DELETABLE]) VALUES (40002, N'SECURITY_WRITE', N'T')
GO
INSERT [dbo].[T_LOGEVENTTYPE] ([ID], [C_DISPLAYNAME], [C_DELETABLE]) VALUES (40003, N'SECURITY_INVALIDOPERATION', N'T')
GO
INSERT [dbo].[T_LOGEVENTTYPE] ([ID], [C_DISPLAYNAME], [C_DELETABLE]) VALUES (40004, N'SECURITY_LOGINFAILED', N'F')
GO
INSERT [dbo].[T_LOGEVENTTYPE] ([ID], [C_DISPLAYNAME], [C_DELETABLE]) VALUES (40005, N'SECURITY_INVALIDROLE', N'T')
GO
INSERT [dbo].[T_LOGEVENTTYPE] ([ID], [C_DISPLAYNAME], [C_DELETABLE]) VALUES (40006, N'SECURITY_COLUMNVIOLATION', N'T')
GO
INSERT [dbo].[T_LOGEVENTTYPE] ([ID], [C_DISPLAYNAME], [C_DELETABLE]) VALUES (40007, N'SECURITY_LOGINREQUIREMENTFAILED', N'F')
GO
INSERT [dbo].[T_LOGEVENTTYPE] ([ID], [C_DISPLAYNAME], [C_DELETABLE]) VALUES (40008, N'SECURITY_INVALIDSUBEMPLOYEEID', N'T')
GO
INSERT [dbo].[T_LOGEVENTTYPE] ([ID], [C_DISPLAYNAME], [C_DELETABLE]) VALUES (40009, N'SECURITY_INVALIDPRIORITY', N'T')
GO
INSERT [dbo].[T_LOGEVENTTYPE] ([ID], [C_DISPLAYNAME], [C_DELETABLE]) VALUES (40010, N'SECURITY_ACTIVEDIRECTORY', N'F')
GO
INSERT [dbo].[T_LOGEVENTTYPE] ([ID], [C_DISPLAYNAME], [C_DELETABLE]) VALUES (40011, N'SECURITY_ACTIVEDIRECTORY_LOGINFAILED', N'F')
GO
INSERT [dbo].[T_LOGEVENTTYPE] ([ID], [C_DISPLAYNAME], [C_DELETABLE]) VALUES (50001, N'SQL_GENERAL', N'T')
GO
INSERT [dbo].[T_LOGEVENTTYPE] ([ID], [C_DISPLAYNAME], [C_DELETABLE]) VALUES (50002, N'SQL_EXECUTED', N'T')
GO
INSERT [dbo].[T_LOGEVENTTYPE] ([ID], [C_DISPLAYNAME], [C_DELETABLE]) VALUES (60000, N'NEPTUN_GENERAL', N'T')
GO
INSERT [dbo].[T_LOGEVENTTYPE] ([ID], [C_DISPLAYNAME], [C_DELETABLE]) VALUES (65000, N'POSZEIDON_GENERAL', N'T')
GO
INSERT [dbo].[T_LOGEVENTTYPE] ([ID], [C_DISPLAYNAME], [C_DELETABLE]) VALUES (65001, N'TANUSITOK_NOTHITELESITVEBYUSER', N'T')
GO
INSERT [dbo].[T_LOGEVENTTYPE] ([ID], [C_DISPLAYNAME], [C_DELETABLE]) VALUES (65002, N'TANUSITOK_ERVENYTELENTANUSITASVISSZAVONASA', N'T')
GO
INSERT [dbo].[T_LOGEVENTTYPE] ([ID], [C_DISPLAYNAME], [C_DELETABLE]) VALUES (65003, N'IKTATOKONYV_UTOLSOFOSZAMMODOSITASIKISERLET', N'T')
GO
INSERT [dbo].[T_LOGEVENTTYPE] ([ID], [C_DISPLAYNAME], [C_DELETABLE]) VALUES (65004, N'FAJLSZERVER_REQUESTEDFILESERVERINACTIVE', N'T')
GO
INSERT [dbo].[T_LOGEVENTTYPE] ([ID], [C_DISPLAYNAME], [C_DELETABLE]) VALUES (65005, N'ELEKTRONIKUSPELDANY_TAROLOMODOSITAS', N'T')
GO
INSERT [dbo].[T_LOGEVENTTYPE] ([ID], [C_DISPLAYNAME], [C_DELETABLE]) VALUES (65006, N'SZTORNOZASIZARADEK_SZTORNOCONDITIONCHECKFAILED', N'T')
GO
INSERT [dbo].[T_LOGEVENTTYPE] ([ID], [C_DISPLAYNAME], [C_DELETABLE]) VALUES (65007, N'UGYIRATBANPELDANY_INVALIDOPERATION', N'T')
GO
INSERT [dbo].[T_LOGEVENTTYPE] ([ID], [C_DISPLAYNAME], [C_DELETABLE]) VALUES (65008, N'SZETSZERELES_CONDITIONCHECKFAILED', N'T')
GO
INSERT [dbo].[T_LOGEVENTTYPE] ([ID], [C_DISPLAYNAME], [C_DELETABLE]) VALUES (65009, N'LEZARAS_CONDITIONCHECKFAILED', N'T')
GO
INSERT [dbo].[T_LOGEVENTTYPE] ([ID], [C_DISPLAYNAME], [C_DELETABLE]) VALUES (65010, N'NEPTUN_CONNECTOR_EVENT', N'T')
GO
INSERT [dbo].[T_LOGEVENTTYPE] ([ID], [C_DISPLAYNAME], [C_DELETABLE]) VALUES (65011, N'NEPTUN_CONNECTOR_ERROR', N'T')
GO
INSERT [dbo].[T_LOGEVENTTYPE] ([ID], [C_DISPLAYNAME], [C_DELETABLE]) VALUES (65012, N'MOREQ2_IMPORT', N'T')
GO
INSERT [dbo].[T_LOGEVENTTYPE] ([ID], [C_DISPLAYNAME], [C_DELETABLE]) VALUES (65013, N'MOREQ2', N'T')
GO
INSERT [dbo].[T_LOGEVENTTYPE] ([ID], [C_DISPLAYNAME], [C_DELETABLE]) VALUES (65014, N'ENTITYHISTORYMODE', N'T')
GO
INSERT [dbo].[T_LOGEVENTTYPE] ([ID], [C_DISPLAYNAME], [C_DELETABLE]) VALUES (65015, N'SCANNER_ERROR ', N'T')
GO
INSERT [dbo].[T_LOGEVENTTYPE] ([ID], [C_DISPLAYNAME], [C_DELETABLE]) VALUES (70000, N'FDL_GENERAL', N'T')
GO
INSERT [dbo].[T_LOGEVENTTYPE] ([ID], [C_DISPLAYNAME], [C_DELETABLE]) VALUES (70001, N'FDL_BAD_FILTER', N'T')
GO
INSERT [dbo].[T_LOGEVENTTYPE] ([ID], [C_DISPLAYNAME], [C_DELETABLE]) VALUES (80000, N'CUSTOM_HANDLABLE', N'T')
GO
INSERT [dbo].[T_LOGEVENTTYPE] ([ID], [C_DISPLAYNAME], [C_DELETABLE]) VALUES (80001, N'DEVELOPER_DEFINIED', N'T')
GO
INSERT [dbo].[T_LOGEVENTTYPE] ([ID], [C_DISPLAYNAME], [C_DELETABLE]) VALUES (81000, N'SMS_GENERAL', N'T')
GO
INSERT [dbo].[T_LOGEVENTTYPE] ([ID], [C_DISPLAYNAME], [C_DELETABLE]) VALUES (82000, N'EMAIL_GENERAL', N'T')
GO
INSERT [dbo].[T_LOGEVENTTYPE] ([ID], [C_DISPLAYNAME], [C_DELETABLE]) VALUES (83000, N'USER_COLLAPSE', N'F')
GO
INSERT [dbo].[T_LOGEVENTTYPE] ([ID], [C_DISPLAYNAME], [C_DELETABLE]) VALUES (83001, N'USER_COLLPASE_ERROR', N'F')
GO
INSERT [dbo].[T_LOGEVENTTYPE] ([ID], [C_DISPLAYNAME], [C_DELETABLE]) VALUES (84000, N'FAJLSZERVER_GENERAL', N'T')
GO
INSERT [dbo].[T_LOGEVENTTYPE] ([ID], [C_DISPLAYNAME], [C_DELETABLE]) VALUES (85000, N'MESSAGEMANAGER_GENERAL', N'F')
GO
INSERT [dbo].[T_LOGEVENTTYPE] ([ID], [C_DISPLAYNAME], [C_DELETABLE]) VALUES (90001, N'NEPTUN_RELEASE', N'T')
GO
INSERT [dbo].[T_LOGEVENTTYPE] ([ID], [C_DISPLAYNAME], [C_DELETABLE]) VALUES (90002, N'NEPTUN_COMPARE', N'T')
GO
INSERT [dbo].[T_LOGEVENTTYPE] ([ID], [C_DISPLAYNAME], [C_DELETABLE]) VALUES (90003, N'NEPTUN_SCRIPTS', N'T')
GO
INSERT [dbo].[T_LOGEVENTTYPE] ([ID], [C_DISPLAYNAME], [C_DELETABLE]) VALUES (90004, N'NEPTUN_DBCHECK', N'T')
GO
INSERT [dbo].[T_LOGEVENTTYPE] ([ID], [C_DISPLAYNAME], [C_DELETABLE]) VALUES (90005, N'NEPTUN_REPORTS', N'T')
GO
INSERT [dbo].[T_LOGEVENTTYPE] ([ID], [C_DISPLAYNAME], [C_DELETABLE]) VALUES (90006, N'NEPTUN_PATCH', N'T')
GO
INSERT [dbo].[T_LOGEVENTTYPE] ([ID], [C_DISPLAYNAME], [C_DELETABLE]) VALUES (90011, N'NEPTUN_RELEASE_ORA', N'F')
GO
INSERT [dbo].[T_LOGEVENTTYPE] ([ID], [C_DISPLAYNAME], [C_DELETABLE]) VALUES (90012, N'NEPTUN_RELEASE_SQL', N'F')
GO
INSERT [dbo].[T_LOGEVENTTYPE] ([ID], [C_DISPLAYNAME], [C_DELETABLE]) VALUES (90013, N'NEPTUN_RELEASE_DB2', N'F')
GO
INSERT [dbo].[T_LOGEVENTTYPE] ([ID], [C_DISPLAYNAME], [C_DELETABLE]) VALUES (90014, N'NEPTUN_LOGDW_ERROR', N'T')
GO
INSERT [dbo].[T_LOGEVENTTYPE] ([ID], [C_DISPLAYNAME], [C_DELETABLE]) VALUES (100000, N'LMS_ERROR', N'T')
GO
INSERT [dbo].[T_LOGEVENTTYPE] ([ID], [C_DISPLAYNAME], [C_DELETABLE]) VALUES (110000, N'OM_CODE_CHANGED', N'F')
GO
INSERT [dbo].[T_LOGEVENTTYPE] ([ID], [C_DISPLAYNAME], [C_DELETABLE]) VALUES (120000, N'CLIENT_GENERAL', N'F')
GO
INSERT [dbo].[T_LOGEVENTTYPE] ([ID], [C_DISPLAYNAME], [C_DELETABLE]) VALUES (130000, N'JOB_SCHEDULE', N'T')
GO
INSERT [dbo].[T_LOGEVENTTYPE] ([ID], [C_DISPLAYNAME], [C_DELETABLE]) VALUES (130001, N'JOB_EXECUTE', N'T')
GO
INSERT [dbo].[T_LOGEVENTTYPE] ([ID], [C_DISPLAYNAME], [C_DELETABLE]) VALUES (140000, N'MOBILESERVICEEXECUTE', N'T')
GO
INSERT [dbo].[T_LOGEVENTTYPE] ([ID], [C_DISPLAYNAME], [C_DELETABLE]) VALUES (150000, N'DIAKIGENY_KONTENER', N'T')
GO
INSERT [dbo].[T_LOGEVENTTYPE] ([ID], [C_DISPLAYNAME], [C_DELETABLE]) VALUES (160000, N'Tanulo_KIR_Import', N'F')
GO
INSERT [dbo].[T_LOGEVENTTYPE] ([ID], [C_DISPLAYNAME], [C_DELETABLE]) VALUES (160001, N'Tanar_KIR_Import', N'F')
GO
SET IDENTITY_INSERT [dbo].[T_LOGEVENTTYPE] OFF
SET IDENTITY_INSERT [dbo].[T_LOGLEVELTYPE] ON
INSERT [dbo].[T_LOGLEVELTYPE] ([ID], [C_DISPLAYNAME]) VALUES (0, N'UNKNOWN')
GO
INSERT [dbo].[T_LOGLEVELTYPE] ([ID], [C_DISPLAYNAME]) VALUES (1, N'DEBUG')
GO
INSERT [dbo].[T_LOGLEVELTYPE] ([ID], [C_DISPLAYNAME]) VALUES (2, N'INFO')
GO
INSERT [dbo].[T_LOGLEVELTYPE] ([ID], [C_DISPLAYNAME]) VALUES (3, N'WARNING')
GO
INSERT [dbo].[T_LOGLEVELTYPE] ([ID], [C_DISPLAYNAME]) VALUES (4, N'ERROR')
GO
INSERT [dbo].[T_LOGLEVELTYPE] ([ID], [C_DISPLAYNAME]) VALUES (5, N'FATAL')
GO
SET IDENTITY_INSERT [dbo].[T_LOGLEVELTYPE] OFF
GO

View file

@ -0,0 +1,23 @@
SET IDENTITY_INSERT T_SZIRSTATKONYVTARKATEGORIA ON
INSERT INTO [dbo].T_SZIRSTATKONYVTARKATEGORIA (ID, C_FOKATEGORIAID, C_NEV) VALUES
(1000, NULL, 'Könyvtári egységek')
,(1100, 1000, 'könyv, kötet')
,(1110, 1100, 'tankönyv, kötet')
,(1111, 1110, 'tartós tankönyv, kötet')
,(1120, 1100, 'idegennyelvű könyv, kötet')
,(1121, 1120, 'nemzetiségi könyv, kötet')
,(1200, 1000, 'elektronikus dokumentum, db')
,(1210, 1200, 'hanganyag (hanglemez, kazetta, CD), db')
,(1220, 1200, 'mozgókép (videokazetta, videodiszk), db')
,(1230, 1200, 'számítógépes multimédia anyag, db ')
,(2000, NULL, 'Periodika-féleség, db')
,(3000, NULL, 'Könyvtári egységek értéke, ezer Ft ')
,(4000, NULL, 'Helyben használati eset')
,(5000, NULL, 'Könyvtári olvasók (tanulók) száma, fő')
,(6000, NULL, 'Kölcsönzések száma')
,(6100, 6000, 'tanuló számára kölcsönzött tartós tankönyv, kötet')
,(8000, NULL, 'Selejtezett tartós tankönyv, kötet')
SET IDENTITY_INSERT T_SZIRSTATKONYVTARKATEGORIA OFF
GO

File diff suppressed because it is too large Load diff

File diff suppressed because it is too large Load diff

File diff suppressed because it is too large Load diff

View file

@ -0,0 +1,19 @@
IF SCHEMA_ID('dev') IS NULL BEGIN
EXEC sp_executesql N'CREATE SCHEMA dev'
END
GO
IF SCHEMA_ID('auditlog') IS NULL BEGIN
EXEC sp_executesql N'CREATE SCHEMA auditlog'
END
GO
IF SCHEMA_ID('core') IS NULL BEGIN
EXEC sp_executesql N'CREATE SCHEMA core'
END
GO
IF SCHEMA_ID('tmp') IS NULL BEGIN
EXEC sp_executesql N'CREATE SCHEMA tmp'
END
GO

View file

@ -0,0 +1,186 @@
-- ==================================================================================================================================
-- T_ENTITYATTRIBUTEHISTORY & T_ENTITYHISTORY & EGYÉB táblák létrehozása
-- ==================================================================================================================================
CREATE TABLE [dbo].[T_ENTITYHISTORY] (
[ID] INT IDENTITY(1, 1) NOT NULL
,[C_ALTERATIONDATE] DATETIME NULL
,[C_ENTITYID] INT NULL
,[C_ENTITYNAME] NVARCHAR(50) NULL
,[C_REASON] NVARCHAR(1000) NULL
,[C_FELHASZNALOID] INT NULL
,[C_INTEZMENYID] INT NULL
,[C_TANEVID] INT NULL
,[CREATED] DATETIME NOT NULL DEFAULT GETDATE()
,[HOSTNAME] VARCHAR(1000) NULL
,CONSTRAINT PK_EntityHistory PRIMARY KEY (ID) WITH (DATA_COMPRESSION = PAGE)
)
GO
CREATE TABLE [dbo].[T_ENTITYATTRIBUTEHISTORY] (
[C_ENTITYHISTORYID] INT NOT NULL,
[C_PROPERTYNAME] VARCHAR(1000) NOT NULL,
[C_ORIGINALVALUE] NVARCHAR(4000) NULL,
[C_CURRENTVALUE] NVARCHAR(4000) NULL,
CONSTRAINT FK_EntityAttributeHistory_EntityHistoryId_REF_EntityHistory FOREIGN KEY (C_ENTITYHISTORYID) REFERENCES [dbo].[T_ENTITYHISTORY](ID)
)
GO
CREATE CLUSTERED COLUMNSTORE INDEX CCI_ENTITYATTRIBUTEHISTORY ON dbo.T_ENTITYATTRIBUTEHISTORY WITH (DATA_COMPRESSION = COLUMNSTORE_ARCHIVE);
GO
CREATE TABLE [dbo].[T_ENTITYBLOBVALUES](
C_ENTITYHISTORYID INT NOT NULL,
C_PROPERTYNAME VARCHAR(1000) NOT NULL,
C_ORIGINALVALUE NVARCHAR(MAX) NULL,
C_CURRENTVALUE NVARCHAR(MAX) NULL,
CONSTRAINT PK_EntityBLOBValues PRIMARY KEY CLUSTERED (C_ENTITYHISTORYID, C_PROPERTYNAME),
CONSTRAINT FK_EntityBLOBValues FOREIGN KEY (C_ENTITYHISTORYID) REFERENCES dbo.T_ENTITYHISTORY(ID)
)
GO
CREATE TABLE T_ORAREND (
C_ORARENDIORAID int NOT NULL
,C_DATUM datetime NOT NULL
,C_TANEVID int NOT NULL
,C_INTEZMENYID int NOT NULL
,CONSTRAINT PK_Orarend PRIMARY KEY (C_ORARENDIORAID, C_DATUM)
);
GO
CREATE INDEX NCI_Orarend_TanevId ON T_ORAREND ( C_TANEVID)
CREATE INDEX NCI_Orarend_IntezmenyId ON T_ORAREND ( C_INTEZMENYID)
CREATE INDEX NCI_Orarend_Datum_TanevId_IntezmenyId ON T_ORAREND (C_DATUM, C_TANEVID, C_INTEZMENYID)
GO
ALTER TABLE [DBO].T_ORAREND
ADD CONSTRAINT FK_Orarend_OrarendiOraId_REF_OrarendiOraId
FOREIGN KEY (C_ORARENDIORAID)
REFERENCES [DBO].T_ORARENDIORA (ID)
ALTER TABLE [DBO].T_ORAREND
ADD CONSTRAINT FK_Orarend_TanevId_REF_Tanev
FOREIGN KEY (C_TANEVID)
REFERENCES [DBO].T_TANEV (ID)
ALTER TABLE [DBO].T_ORAREND
ADD CONSTRAINT FK_Orarend_IntezmenyId_REF_Intezmeny
FOREIGN KEY (C_INTEZMENYID)
REFERENCES [DBO].T_INTEZMENY (ID)
GO
CREATE TABLE [dbo].[T_ORARENDTELJES](
[C_INTEZMENYID] [int] NOT NULL,
[C_TANEVID] [int] NOT NULL,
[C_DATUM] [datetime] NOT NULL,
[C_ORARENDIORAID] [int] NOT NULL,
[C_ORARENDIORAGROUPID] [int] NULL,
[C_OSZTALYCSOPORTID] [int] NULL,
[C_FELADATKATEGORIAID] [int] NULL,
[C_TANTARGYID] [int] NULL,
[C_ISOSZTALYORARENDBENEMLATSZIK] [char](1) NULL,
[C_TANARID] [int] NULL,
[C_TEREMID] [int] NULL,
[C_ORASZAM] [int] NULL,
[C_CSENGETESIRENDID] [int] NULL,
[C_BONTOTT] [char](1) NULL,
[C_HETIREND] [int] NULL,
[C_HETNAPJA] [int] NULL,
[C_HETSORSZAMA] [int] NULL,
[C_NAPDATUMA] [datetime] NULL,
[C_ORAERVENYESSEGKEZDETE] [datetime] NULL,
[C_ORAERVENYESSEGVEGE] [datetime] NULL,
[C_ORAKEZDETE] [datetime] NULL,
[C_ORAVEGE] [datetime] NULL,
[C_EGYEDINAP] [char](1) NULL,
[C_KOZPONTIORAGROUPID] [uniqueidentifier] NULL,
[C_KOZPONTILAGTOROLTORAGROUPID] [uniqueidentifier] NULL,
[C_HELYETTESTANAROKID] [int] NULL,
[C_HELYETTESITESID] [int] NULL,
[C_MAXORASZAM] [tinyint] NULL
CONSTRAINT PK_OrarendTeljes PRIMARY KEY CLUSTERED (
[C_INTEZMENYID] ASC,
[C_TANEVID] ASC,
[C_DATUM] ASC,
[C_ORARENDIORAID] ASC
)
)
GO
CREATE TABLE [dev].[EnvironmentInfo] (
[Key] nvarchar(255) NOT NULL PRIMARY KEY
,[Value] nvarchar(1000) NULL
,[Description] nvarchar(1000) NULL
)
GO
CREATE TABLE [dbo].[VersionInfo](
Version bigint NOT NULL PRIMARY KEY
,AppliedOn datetime NULL
,Description nvarchar(1024) NULL
)
GO
CREATE TABLE [dev].[VersionInfoSPFN](
[Id] [int] IDENTITY(1,1) NOT NULL PRIMARY KEY,
[Name] [nvarchar](255) NULL,
[IsProcedure] [bit] NULL,
[IsSchemaUpdated] [bit] NULL,
[RegisteredAt] [datetime] NULL
)
GO
CREATE TABLE [core].[AdatszotarElemek](
[Id] [int] IDENTITY(1,1) NOT NULL,
[Nev] [nvarchar](128) NOT NULL,
[PluszOszlopok] [nvarchar](1000) NULL,
[TableName] [nvarchar](128) NULL,
[TableSchemaName] [nvarchar](128) NULL,
CONSTRAINT [PK_AdatszotarElemek] PRIMARY KEY CLUSTERED (ID)
)
GO
CREATE TABLE [auditlog].[Users](
[USERID] [int] IDENTITY(-1000, -1) NOT NULL,
[USERNAME] [nvarchar](1000) NOT NULL,
[CREATED] [datetime] NOT NULL DEFAULT (getdate()),
CONSTRAINT [PK_auditlog_Users] PRIMARY KEY CLUSTERED (
[USERID] DESC
),
CONSTRAINT [UK_auditlog_Users] UNIQUE NONCLUSTERED (
[USERNAME] ASC
)
)
GO
CREATE TABLE dbo.T_OSZTONDIJHISTORY(
ID INT NOT NULL,
C_ENTITYID int NOT NULL,
C_TABLEID tinyint NOT NULL,
C_ALTERATIONDATE datetime NOT NULL,
C_REASONID tinyint NOT NULL, -- 1:(New) INSERT, 2:(Removed) DELETE, 3:(Modified) UPDATE
C_FELHASZNALOID int NULL,
C_TANULOID int NOT NULL,
C_TANEVID int NOT NULL,
C_PROPERTYNAME varchar (100) COLLATE Hungarian_CI_AI NOT NULL,
C_ORIGINALVALUE nvarchar (2000) COLLATE Hungarian_CI_AI NULL,
C_CURRENTVALUE nvarchar (2000) COLLATE Hungarian_CI_AI NULL,
CONSTRAINT PK_OsztondijHistory PRIMARY KEY CLUSTERED (C_TANEVID, C_TANULOID, ID, C_PROPERTYNAME)
WITH (DATA_COMPRESSION = PAGE, FILLFACTOR = 100)
)
GO
CREATE TABLE [dbo].[T_LEGMAGASABBSZINTUFENNTARTO] (
[ID] INT IDENTITY (1, 1) NOT NULL,
[C_AZONOSITO] INT NOT NULL,
[C_GUID] UNIQUEIDENTIFIER NOT NULL,
[C_NEV] NVARCHAR (1000) 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,
CONSTRAINT [PK_LegmagasabbSzintuFenntarto] PRIMARY KEY CLUSTERED ([ID] ASC),
CONSTRAINT [UK_LegmagasabbSzintuFenntarto_Guid] UNIQUE NONCLUSTERED ([C_GUID] ASC),
CONSTRAINT [UK_LegmagasabbSzintuFenntarto_Azonosito] UNIQUE NONCLUSTERED ([C_AZONOSITO] ASC)
)

File diff suppressed because it is too large Load diff

View file

@ -0,0 +1,36 @@
/*EXEC [dbo].[sp_Global_IntezmenyLetrehozas]
@fenntartoAzonosito = '800',
@intezmenyCime = N'Kiss Ferenc körút 76.',
@intezmenyAzonosito = 'BEDO',
@intezmenyIranyitoSzam = N'6783',
@intezmenyNeve = N'Bedő Albert Erdészeti Szakképző Iskola és Kollégium',
@intezmenyOMKod = N'029799',
@intezmenyVaros = N'Ásotthalom',
@intezmenyIgazgato = N'Andrésiné dr. Ambrus Ildikó',
@intezmenyTagkod = N'001',
@intezmenyEmail = N'igazgato.bedo@gmail.com',
@tanevNeve = N'2016/2017',
@kovetkezoTanevNeve = N'2017/2018',
@adminJelszo = 'a',
@kellABHet = 1,
@teljesKreta = 1,
@dbJelszo = 'Porcica1.'
EXEC [dbo].[sp_Global_IntezmenyLetrehozas]
@fenntartoAzonosito = '800',
@intezmenyCime = N'Dugonics utca 10-12',
@intezmenyAzonosito = 'NYIRSZC',
@intezmenyIranyitoSzam = N'4400',
@intezmenyNeve = N'Nyíregyházi Szakképzési Centrum',
@intezmenyOMKod = N'203045',
@intezmenyVaros = N'Nyíregyháza',
@intezmenyIgazgato = N'Gurbánné Papp Mária',
@intezmenyTagkod = N'001',
@intezmenyEmail = N'nyirszc@gmail.com',
@tanevNeve = N'2016/2017',
@kovetkezoTanevNeve = N'2017/2018',
@adminJelszo = 'a',
@kellABHet = 1,
@teljesKreta = 0,
@dbJelszo = 'Porcica1.'
*/

View file

@ -0,0 +1,168 @@
DROP TRIGGER IF EXISTS [dbo].[tru_TanuloTanugyiAdatok_ElearningFelhasznalo]
GO
CREATE TRIGGER [dbo].[tru_TanuloTanugyiAdatok_ElearningFelhasznalo]
ON [dbo].[T_TANULOTANUGYIADATOK]
WITH EXECUTE AS 'Kreta_tech_user'
AFTER UPDATE
AS
BEGIN
SET NOCOUNT ON;
IF UPDATE (C_TANULOEVFOLYAMTIPUSID) BEGIN
--elearningfelhasznalo beszúrása
INSERT INTO T_ELEARNINGFELHASZNALO (
C_ELEARNINGELERHETOSEGID
,C_FELHASZNALOID
,C_INTEZMENYID
,C_TANEVID
,TOROLT
,SERIAL
) SELECT
ee.ID AS C_ELEARNINGELERHETOSEGID
,tcs.C_TANULOID AS C_FELHASZNALOID
,ee.C_INTEZMENYID AS C_INTEZMENYID
,ee.C_TANEVID AS C_TANEVID
,'F' AS TOROLT
,0 AS SERIAL
FROM Inserted tta
INNER JOIN T_ELEARNINGELERHETOSEG ee ON tta.C_TANEVID = ee.C_TANEVID AND ee.TOROLT = 'F'
INNER JOIN dev.ElearningKurzusEvfolyamMapping mp ON mp.Azonosito = ee.C_ELEARNINGAZONOSITO AND tta.C_TANULOEVFOLYAMTIPUSID = mp.evfolyamId
INNER JOIN T_TANULOCSOPORT tcs ON tcs.ID = tta.C_TANULOCSOPORTID AND tcs.TOROLT = 'F'
INNER JOIN T_TANEV tv ON tv.ID = ee.C_TANEVID
AND tv.TOROLT='F'
AND tv.C_AKTIV = 'T'
INNER JOIN T_OSZTALYCSOPORT ocs ON ocs.ID = tcs.C_OSZTALYCSOPORTID AND ocs.TOROLT = 'F'
WHERE ee.TOROLT='F'
AND ocs.C_FELADATKATEGORIAID = 7553
AND NOT EXISTS (
SELECT 1
FROM T_ELEARNINGFELHASZNALO efh
WHERE efh.C_TANEVID = ee.C_TANEVID AND efh.C_ELEARNINGELERHETOSEGID = ee.ID AND efh.C_FELHASZNALOID = tcs.C_TANULOID AND efh.C_GONDVISELOID IS NULL AND efh.TOROLT='F'
)
END
END
GO
--------------------------------------------------------------------------------------------
DROP TRIGGER IF EXISTS [dbo].[tru_TanuloCsoport_ElearningFelhasznalo]
GO
CREATE TRIGGER [dbo].[tru_TanuloCsoport_ElearningFelhasznalo]
ON [dbo].[T_TANULOCSOPORT]
WITH EXECUTE AS 'Kreta_tech_user'
AFTER INSERT
AS
BEGIN
SET NOCOUNT ON;
IF UPDATE (C_OSZTALYCSOPORTID) BEGIN
--elearningfelhasznalo beszúrása
INSERT INTO T_ELEARNINGFELHASZNALO (
C_ELEARNINGELERHETOSEGID
,C_FELHASZNALOID
,C_INTEZMENYID
,C_TANEVID
,TOROLT
,SERIAL
) SELECT
ee.ID AS C_ELEARNINGELERHETOSEGID
,tcs.C_TANULOID AS C_FELHASZNALOID
,tcs.C_INTEZMENYID AS C_INTEZMENYID
,tcs.C_TANEVID AS C_TANEVID
,'F' AS TOROLT
,0 AS SERIAL
FROM inserted tcs
INNER JOIN T_ELEARNINGELERHETOSEG ee ON ee.C_TANEVID = tcs.C_TANEVID
INNER JOIN T_OSZTALYCSOPORT ocs ON tcs.C_OSZTALYCSOPORTID = ocs.ID AND ocs.C_TANEVID = ee.C_TANEVID AND ocs.TOROLT='F'
INNER JOIN dev.ElearningKurzusEvfolyamMapping mp ON mp.Azonosito = ee.C_ELEARNINGAZONOSITO AND ocs.C_EVFOLYAMTIPUSA = mp.evfolyamId
INNER JOIN T_TANEV tv ON tv.ID = ee.C_TANEVID AND tv.TOROLT = 'F' AND tv.C_AKTIV = 'T'
WHERE ee.TOROLT='F'
AND ocs.C_FELADATKATEGORIAID = 7553
AND NOT EXISTS (
SELECT 1
FROM T_ELEARNINGFELHASZNALO efh
WHERE efh.C_TANEVID = tcs.C_TANEVID AND efh.TOROLT='F' AND efh.C_ELEARNINGELERHETOSEGID = ee.ID AND efh.C_FELHASZNALOID = tcs.C_TANULOID
)
END
END
GO
--------------------------------------------------------------------------------------------
DROP TRIGGER IF EXISTS [dbo].[tru_OsztalyCsoport_ElearningFelhasznalo]
GO
CREATE TRIGGER [dbo].[tru_OsztalyCsoport_ElearningFelhasznalo]
ON [dbo].[T_OSZTALYCSOPORT]
WITH EXECUTE AS 'Kreta_tech_user'
AFTER UPDATE
AS
BEGIN
SET NOCOUNT ON;
IF UPDATE (C_EVFOLYAMTIPUSA) BEGIN
--elearningfelhasznalo beszúrása, tanuló
INSERT INTO T_ELEARNINGFELHASZNALO (
C_ELEARNINGELERHETOSEGID
,C_FELHASZNALOID
,C_INTEZMENYID
,C_TANEVID
,TOROLT
,SERIAL
) SELECT DISTINCT
ee.ID AS C_ELEARNINGELERHETOSEGID
,tcs.C_TANULOID AS C_FELHASZNALOID
,ocs.C_INTEZMENYID AS C_INTEZMENYID
,ocs.C_TANEVID AS C_TANEVID
,'F' AS TOROLT
,0 AS SERIAL
FROM Inserted ocs
INNER JOIN T_OSZTALY o ON o.ID = ocs.ID AND o.TOROLT = 'F'
INNER JOIN T_ELEARNINGELERHETOSEG ee ON ocs.C_TANEVID = ee.C_TANEVID
INNER JOIN dev.ElearningKurzusEvfolyamMapping mp ON mp.Azonosito = ee.C_ELEARNINGAZONOSITO AND ocs.C_EVFOLYAMTIPUSA = mp.evfolyamId
INNER JOIN T_TANULOCSOPORT tcs ON tcs.TOROLT = 'F' AND tcs.C_TANEVID = ee.C_TANEVID
AND tcs.C_OSZTALYCSOPORTID = ocs.ID
INNER JOIN T_TANEV tv ON tv.ID = ee.C_TANEVID AND tv.TOROLT = 'F' AND tv.C_AKTIV = 'T'
WHERE ocs.TOROLT = 'F'
AND ocs.C_FELADATKATEGORIAID = 7553
AND NOT EXISTS (
SELECT 1
FROM T_ELEARNINGFELHASZNALO efh
WHERE efh.C_TANEVID = ocs.C_TANEVID AND TOROLT='F' AND efh.C_ELEARNINGELERHETOSEGID = ee.ID AND efh.C_FELHASZNALOID = tcs.C_TANULOID
)
--elearningfelhasznalo beszúrása, tanuló, összevont osztály
INSERT INTO T_ELEARNINGFELHASZNALO (
C_ELEARNINGELERHETOSEGID
,C_FELHASZNALOID
,C_INTEZMENYID
,C_TANEVID
,TOROLT
,SERIAL
)
SELECT DISTINCT
ee.ID AS C_ELEARNINGELERHETOSEGID
,tcs.C_TANULOID AS C_FELHASZNALOID
,ocs.C_INTEZMENYID AS C_INTEZMENYID
,ocs.C_TANEVID AS C_TANEVID
,'F' AS TOROLT
,0 AS SERIAL
FROM Inserted ocs
INNER JOIN T_OSZTALY o ON o.ID = ocs.ID AND o.TOROLT = 'F'
INNER JOIN T_ELEARNINGELERHETOSEG ee ON ocs.C_TANEVID = ee.C_TANEVID AND ee.TOROLT = 'F'
INNER JOIN T_TANULOCSOPORT tcs ON tcs.TOROLT = 'F' AND tcs.C_TANEVID = ee.C_TANEVID
INNER JOIN T_TANULOTANUGYIADATOK tta ON tta.C_TANULOCSOPORTID = tcs.ID AND tta.TOROLT = 'F'
AND tcs.C_OSZTALYCSOPORTID = ocs.ID
INNER JOIN dev.ElearningKurzusEvfolyamMapping mp ON mp.Azonosito = ee.C_ELEARNINGAZONOSITO
AND tta.C_TANULOEVFOLYAMTIPUSID = mp.evfolyamId
INNER JOIN T_TANEV tv ON tv.ID = ee.C_TANEVID AND tv.TOROLT = 'F' AND tv.C_AKTIV = 'T'
WHERE ocs.C_EVFOLYAMTIPUSA = 7366
AND ocs.C_FELADATKATEGORIAID = 7553
AND ocs.TOROLT = 'F'
AND NOT EXISTS (
SELECT 1
FROM T_ELEARNINGFELHASZNALO efh
WHERE efh.C_TANEVID = ocs.C_TANEVID AND TOROLT='F' AND efh.C_ELEARNINGELERHETOSEGID = ee.ID AND efh.C_FELHASZNALOID = tcs.C_TANULOID
)
END
END
GO

View file

@ -0,0 +1,317 @@
-- random szám generálása
DROP VIEW IF EXISTS dev.vGetRand;
GO
CREATE VIEW dev.vGetRand AS
SELECT RAND(CHECKSUM(NEWID())) AS RandomNumber
GO
DROP VIEW IF EXISTS V_ORARENDIORA
GO
CREATE VIEW V_ORARENDIORA AS
SELECT
oo.ID
,oo.C_ORARENDIORAGROUPID
,oo.TOROLT
,oo.C_TANTARGYID
,tgy.C_NEV AS C_TANTARGYNEV
,oo.C_OSZTALYCSOPORTID
,ocs.C_NEV AS C_OSZTALYCSOPORTNEV
,oo.C_TANARID
,pg.C_NYOMTATASINEV AS C_TANARNEV
,oo.C_ORAERVENYESSEGKEZDETE
,oo.C_ORAERVENYESSEGVEGE
,oo.C_ORASZAM
,oo.C_ORAKEZDETE
,oo.C_ORAVEGE
,oo.C_CSENGETESIRENDID
,oo.C_CSENGETESIRENDORAID
,oo.C_HETIREND
,hrt.C_NAME AS C_HETIRENDNEV
,oo.C_HETNAPJA
,hnt.C_NAME AS C_HETNAPJANEV
,oo.C_TEREMID
,tr.C_NEV AS C_TEREMNEV
,oo.C_TANEVID
,oo.C_INTEZMENYID
,oo.LASTCHANGED
,oo.CREATED
,oo.MODIFIER
,oo.CREATOR
FROM T_ORARENDIORA oo WITH(NOLOCK)
LEFT JOIN T_OSZTALYCSOPORT ocs WITH(NOLOCK) ON ocs.ID = oo.C_OSZTALYCSOPORTID
LEFT JOIN T_TANTARGY tgy WITH(NOLOCK) ON tgy.ID = oo.C_TANTARGYID
LEFT JOIN T_FELHASZNALO pg WITH(NOLOCK) ON pg.ID = oo.C_TANARID
LEFT JOIN T_DICTIONARYITEMBASE hrt WITH(NOLOCK) ON hrt.ID = oo.C_HETIREND AND hrt.C_TANEVID = oo.C_TANEVID
LEFT JOIN T_DICTIONARYITEMBASE hnt WITH(NOLOCK) ON hnt.ID = oo.C_HETNAPJA AND hnt.C_TANEVID = oo.C_TANEVID
LEFT JOIN T_TEREM tr WITH(NOLOCK) ON tr.ID = oo.C_TEREMID
GO
DROP VIEW IF EXISTS V_TANITASIORA
GO
CREATE VIEW V_TANITASIORA AS
SELECT
tn.ID
,tn.C_ORARENDIORAGROUPID
,tn.C_DATUM
,tn.TOROLT
,tn.C_TANTARGYID
,tgy.C_NEV AS C_TANTARGYNEV
,tn.C_OSZTALYCSOPORTID
,ocs.C_NEV AS C_OSZTALYCSOPORTNEV
,tn.C_TANARID
,pg.C_NYOMTATASINEV AS C_TANARNEV
,tn.C_HELYETTESITOTANARID
,pgh.C_NYOMTATASINEV AS C_HELYETTESITOTANARNEV
,tn.C_ORASZAM
,tn.C_TEMA
,tn.C_ORAKEZDETE
,tn.C_ORAVEGE
,tn.C_CSENGETESIRENDID
,tn.C_CSENGETESIRENDORAID
,tn.C_HETNAPJA
,hnt.C_NAME AS C_HETNAPJANEV
,tn.C_TEREMID
,tr.C_NEV AS C_TEREMNEV
,tn.C_TANEVID
,tn.C_INTEZMENYID
,tn.LASTCHANGED
,tn.CREATED
,tn.MODIFIER
,tn.CREATOR
FROM T_TANITASIORA tn WITH(NOLOCK)
LEFT JOIN T_OSZTALYCSOPORT ocs WITH(NOLOCK) ON ocs.ID = tn.C_OSZTALYCSOPORTID
LEFT JOIN T_TANTARGY tgy WITH(NOLOCK) ON tgy.ID = tn.C_TANTARGYID
LEFT JOIN T_FELHASZNALO pg WITH(NOLOCK) ON pg.ID = tn.C_TANARID
LEFT JOIN T_FELHASZNALO pgh WITH(NOLOCK) ON pgh.ID = tn.C_HELYETTESITOTANARID
LEFT JOIN T_DICTIONARYITEMBASE hnt WITH(NOLOCK) ON hnt.ID = tn.C_HETNAPJA AND hnt.C_TANEVID = tn.C_TANEVID
LEFT JOIN T_TEREM tr WITH(NOLOCK) ON tr.ID = tn.C_TEREMID
GO
DROP VIEW IF EXISTS V_TANULOCSOPORT
GO
CREATE VIEW V_TANULOCSOPORT AS
SELECT
tcs.ID
,tcs.TOROLT
,tcs.C_TANULOID
,dk.C_NYOMTATASINEV AS C_TANULONEV
,tcs.C_OSZTALYCSOPORTID
,ocs.C_NEV AS C_OSZTALYCSOPORTNEV
,IIF(tta.ID IS NULL, 'CSOP', 'OSZT') AS C_OSZTALYCSOPORTTIPUS
,ocs.C_FELADATKATEGORIAID
,fk.C_NAME AS C_FELADATKATEGORIANEV
,tcs.C_BELEPESDATUM
,tcs.C_KILEPESDATUM
,tcs.C_BEJEGYZESIDOPONTJA
,tcs.C_KILEPESROGZITESDATUM
,tcs.C_INTEZMENYID
,tcs.C_TANEVID
,tcs.LASTCHANGED
,tcs.CREATED
,tcs.MODIFIER
,tcs.CREATOR
FROM T_TANULOCSOPORT tcs WITH(NOLOCK)
LEFT JOIN T_OSZTALYCSOPORT ocs WITH(NOLOCK) ON ocs.ID = tcs.C_OSZTALYCSOPORTID
LEFT JOIN T_FELHASZNALO dk WITH(NOLOCK) ON dk.ID = tcs.C_TANULOID
LEFT JOIN T_TANULOTANUGYIADATOK tta WITH(NOLOCK) ON tta.C_TANULOCSOPORTID = tcs.ID
LEFT JOIN T_DICTIONARYITEMBASE fk WITH(NOLOCK) ON fk.ID = ocs.C_FELADATKATEGORIAID AND fk.C_TANEVID = ocs.C_TANEVID
GO
DROP VIEW IF EXISTS V_ENTITYHISTORYBLOB
GO
CREATE VIEW V_ENTITYHISTORYBLOB AS
SELECT
e.ID
,e.C_ENTITYID
,e.C_ENTITYNAME
,e.C_ALTERATIONDATE
,e.C_REASON
,e.C_FELHASZNALOID
,e.C_INTEZMENYID
,e.C_TANEVID
,ev.C_ORIGINALVALUE
,ev.C_CURRENTVALUE
,ev.C_PROPERTYNAME
,COALESCE(f.C_NYOMTATASINEV, u.USERNAME) AS C_FELHASZNALONEV
,e.HOSTNAME AS C_HOSTNAME
FROM T_ENTITYHISTORY e WITH(NOLOCK)
INNER JOIN T_ENTITYBLOBVALUES ev WITH(NOLOCK) ON ev.C_ENTITYHISTORYID = e.ID
LEFT JOIN T_FELHASZNALO f WITH(NOLOCK) ON f.ID = e.C_FELHASZNALOID
LEFT JOIN auditlog.Users u WITH(NOLOCK) ON u.USERID = e.C_FELHASZNALOID
GO
DROP VIEW IF EXISTS V_ENTITYHISTORY
GO
CREATE VIEW V_ENTITYHISTORY AS
-- T_ENTITYBLOBVALUES
SELECT
e.ID
,e.C_ENTITYID
,e.C_ENTITYNAME
,e.C_ALTERATIONDATE
,e.C_REASON
,e.C_FELHASZNALOID
,e.C_INTEZMENYID
,e.C_TANEVID
,ev.C_ORIGINALVALUE
,ev.C_CURRENTVALUE
,ev.C_PROPERTYNAME
,COALESCE(f.C_NYOMTATASINEV, u.USERNAME) AS C_FELHASZNALONEV
,e.HOSTNAME AS C_HOSTNAME
FROM T_ENTITYHISTORY e WITH(NOLOCK)
INNER JOIN T_ENTITYBLOBVALUES ev WITH(NOLOCK) ON ev.C_ENTITYHISTORYID = e.ID
LEFT JOIN T_FELHASZNALO f WITH(NOLOCK) ON f.ID = e.C_FELHASZNALOID
LEFT JOIN auditlog.Users u WITH(NOLOCK) ON u.USERID = e.C_FELHASZNALOID
UNION ALL
-- T_ENTITYATTRIBUTEHISTORY
SELECT
e.ID
,e.C_ENTITYID
,e.C_ENTITYNAME
,e.C_ALTERATIONDATE
,e.C_REASON
,e.C_FELHASZNALOID
,e.C_INTEZMENYID
,e.C_TANEVID
,ea.C_ORIGINALVALUE
,ea.C_CURRENTVALUE
,ea.C_PROPERTYNAME
,COALESCE(f.C_NYOMTATASINEV, u.USERNAME) AS C_FELHASZNALONEV
,e.HOSTNAME AS C_HOSTNAME
FROM dbo.T_ENTITYHISTORY e WITH(NOLOCK)
LEFT JOIN dbo.T_ENTITYATTRIBUTEHISTORY ea WITH(NOLOCK) ON ea.C_ENTITYHISTORYID = e.ID
LEFT JOIN dbo.T_FELHASZNALO f WITH(NOLOCK) ON f.ID = e.C_FELHASZNALOID
LEFT JOIN auditlog.Users u WITH(NOLOCK) ON u.USERID = e.C_FELHASZNALOID
WHERE EXISTS(SELECT * FROM dbo.T_ENTITYATTRIBUTEHISTORY h WITH(NOLOCK) WHERE h.C_ENTITYHISTORYID = e.ID) -- performancia miatt
GO
DROP VIEW IF EXISTS V_INTEZMENYADATOK
GO
CREATE VIEW V_INTEZMENYADATOK AS
SELECT
i.ID AS C_INTEZMENYID
,tv.ID AS C_TANEVID
,i.C_AZONOSITO
,i.C_ISARCHIV
,tv.C_NEV AS C_TANEVNEV
,CASE
WHEN tv.C_AKTIV = 'T' THEN 'Akt'
WHEN tv.C_KOVETKEZO = 'T' THEN 'Köv'
WHEN tvAkt.C_SORSZAM < tv.C_SORSZAM THEN 'Új'
ELSE 'Régi' END AS C_TANEVTIPUS
,tv.C_AKTIVALVA
,i.C_FENNTARTOAZONOSITO
,ia.C_NEV
,ia.C_IGAZGATONEVE
,ia.C_OMKOD
,i.C_GUID
,tv.C_SORSZAM
,tv.C_ISKIVALASZTHATO
,ia.C_KRETAESL
,ia.C_KRETAEUGYINTEZES
,ia.C_ISCSAKLEPKEZELO
,ia.C_ISBAISTATUSZAKTIV
,ia.C_ISSZIRINTEZMENY
,ia.C_ISSZAKKEPZO
,ia.C_ISDKTAKTIV
,ia.C_ISSZAKKEPZOJUTTATAS
,ia.C_ISAKTIVPROJEKTJELENTKEZES
FROM T_INTEZMENY i WITH(NOLOCK)
LEFT JOIN T_TANEV tvAkt ON tvAkt.C_INTEZMENYID = i.ID AND tvAkt.C_AKTIV = 'T'
LEFT JOIN T_TANEV tv WITH(NOLOCK) ON i.ID = tv.C_INTEZMENYID
LEFT JOIN T_INTEZMENYADATOK ia WITH(NOLOCK) ON ia.C_TANEVID = tv.ID
WHERE tv.TOROLT = 'F'
GO
DROP VIEW IF EXISTS V_TANEVRENDJE
GO
CREATE VIEW V_TANEVRENDJE AS
SELECT
tr.ID
,tr.TOROLT
,tr.C_DATUM
,tr.C_HETIREND
,hr.C_NAME AS C_HETIRENDNEV
,tr.C_HETNAPJA
,hn.C_NAME AS C_HETNAPJANEV
,tr.C_NAPTIPUSA
,nt.C_NAME AS C_NAPTIPUSANEV
,tr.C_ORARENDINAP
,tr.C_OSSZESCSOPORTRAVONATKOZIK
,tr.C_EGYEDINAP
,tr.C_MEGJEGYZES
,tr.C_INTEZMENYID
,tr.C_TANEVID
,tr.LASTCHANGED
,tr.CREATED
,tr.MODIFIER
,tr.CREATOR
FROM T_TANEVRENDJE tr WITH(NOLOCK)
LEFT JOIN T_DICTIONARYITEMBASE hr WITH(NOLOCK) ON hr.ID = tr.C_HETIREND AND hr.C_TANEVID = tr.C_TANEVID
LEFT JOIN T_DICTIONARYITEMBASE hn WITH(NOLOCK) ON hn.ID = tr.C_HETNAPJA AND hn.C_TANEVID = tr.C_TANEVID
LEFT JOIN T_DICTIONARYITEMBASE nt WITH(NOLOCK) ON nt.ID = tr.C_NAPTIPUSA AND nt.C_TANEVID = tr.C_TANEVID
GO
DROP VIEW IF EXISTS V_INTEZMENYCONFIG
GO
CREATE VIEW V_INTEZMENYCONFIG AS
SELECT
i.ID AS C_INTEZMENYID
,i.C_AZONOSITO
,c.ID AS C_CONFIGID
,c.C_MODUL
,c.C_CONFIG
,ic.C_ERTEK
FROM T_INTEZMENY i
LEFT JOIN T_INTEZMENYCONFIG ic ON ic.C_INTEZMENYID = i.ID AND ic.TOROLT = 'F'
LEFT JOIN T_CONFIGTIPUS c ON c.ID = ic.C_CONFIGTIPUSID AND c.TOROLT = 'F'
GO
DROP VIEW IF EXISTS dbo.V_TANULOMULASZTAS
GO
CREATE VIEW dbo.V_TANULOMULASZTAS AS
SELECT
mu.ID
,mu.TOROLT
,mu.C_IGAZOLT
,tn.C_DATUM
,tgy.C_NEV AS C_TANTARGYNEV
,ocs.C_NEV AS C_OSZTALYCSOPORTNEV
,mu.C_KESESPERCBEN
,mu.C_TIPUS
,d1.C_NAME as C_TIPUSNEV
,mu.C_IGAZOLASTIPUSA
,d2.C_NAME as C_IGAZOLASTIPUSNEV
,mu.C_ISERTESITESELKULDVE
,mu.C_INTEZMENYID
,mu.C_TANEVID
,mu.C_ORATANULOIID
,fh.C_NYOMTATASINEV AS C_ORATANULONEV
,mu.C_TANITASIORAKID
,mu.SERIAL
,mu.LASTCHANGED
,mu.CREATED
,mu.MODIFIER
,mu.CREATOR
,mu.ELOZOTANEVIREKORDID
FROM T_TANULOMULASZTAS mu WITH (NOLOCK)
LEFT JOIN T_DICTIONARYITEMBASE d1 WITH (NOLOCK) on d1.ID = mu.C_TIPUS and d1.C_TANEVID = mu.C_TANEVID and d1.C_TYPE = 'MulasztasTipus' and d1.TOROLT = 'F'
LEFT JOIN T_DICTIONARYITEMBASE d2 WITH (NOLOCK) on d2.ID = mu.C_IGAZOLASTIPUSA and d2.C_TANEVID = mu.C_TANEVID and d2.C_TYPE = 'IgazolasTipus' and d2.TOROLT = 'F'
LEFT JOIN T_FELHASZNALO fh WITH (NOLOCK) on fh.ID = mu.C_ORATANULOIID
LEFT JOIN T_TANITASIORA tn WITH (NOLOCK) ON tn.ID = mu.C_TANITASIORAKID
LEFT JOIN T_TANTARGY tgy WITH (NOLOCK) ON tgy.ID = tn.C_TANTARGYID
LEFT JOIN T_OSZTALYCSOPORT ocs WITH (NOLOCK) ON ocs.ID = tn.C_OSZTALYCSOPORTID
GO

View file

@ -0,0 +1,4 @@
EXEC dev.uspCreateSchemaViews
@pTables = NULL
,@pSchemas = 'dbo'
,@pDebugMode = 0

View file

@ -0,0 +1,9 @@
fnGetDokumentumOsztalyokCsoportokTanuloi.sql
fnGetTanoraiCeluCsoportTipusok.sql
fnGetDokumentumOsztalyVagyTanoraiCsoport.sql
fnGetDokumentumTanulokOsztalybanToltottNapjai.sql
fnGetKapcsolodoOsztalycsoportok.sql
fnGetDokumentumKapcsolodoOsztalycsoportok.sql
fnGetDokumentumOrakezdetToOraszam.sql
fnGetDokumentumTanulokEvesOraszamaiOsztalyonkent.sql
fnGetDokumentumErtekelesekOsztalyonkent.sql

View file

@ -0,0 +1,22 @@
IF OBJECT_ID('[fnConvertStringIntListToTable]') IS NOT NULL BEGIN
DROP FUNCTION [fnConvertStringIntListToTable]
END
GO
CREATE FUNCTION [fnConvertStringIntListToTable] (
@pString NVARCHAR(4000),
@pDelimiter NCHAR(1)
) RETURNS TABLE AS RETURN (
WITH Split(stpos, endpos) AS (
SELECT 0 AS stpos, CHARINDEX(@pDelimiter,@pString) AS endpos
UNION ALL
SELECT endpos + 1, CHARINDEX(@pDelimiter,@pString,endpos+1)
FROM Split
WHERE endpos > 0
)
SELECT
ROW_NUMBER() OVER (ORDER BY (SELECT 1)) AS Rn
,CAST(SUBSTRING(@pString, stpos, COALESCE(NULLIF(endpos, 0), LEN(@pString) + 1) - stpos) AS int) AS Data
FROM Split
);
GO

View file

@ -0,0 +1,14 @@
IF OBJECT_ID('[fnConvertXmlIntListToTable]') IS NOT NULL BEGIN
DROP FUNCTION [fnConvertXmlIntListToTable]
END
GO
CREATE FUNCTION [fnConvertXmlIntListToTable](
@pXml xml
,@pRootName varchar(100)
,@pNodeName varchar(100)
) RETURNS TABLE AS RETURN (
SELECT ROW_NUMBER() OVER (ORDER BY (SELECT 1)) Rn, t.value('.','int') AS Data
FROM @pXml.nodes('/*[local-name()=sql:variable("@pRootName")]/*[local-name()=sql:variable("@pNodeName")]') AS x(t)
);
GO

View file

@ -0,0 +1,204 @@
DROP FUNCTION IF EXISTS dbo.fnGetBankszamlaVezetoBank;
GO
CREATE FUNCTION fnGetBankszamlaVezetoBank (@bankszamlaszam NVARCHAR(25))
RETURNS NVARCHAR(MAX)
BEGIN
DECLARE @Nev NVARCHAR(MAX)
SELECT @Nev =
CASE SUBSTRING(@bankszamlaszam, 1, 3)
WHEN '807' THEN 'Általános Közlekedési Hitelszövetkezet'
WHEN '187' THEN 'Banco Primus Fióktelep, Magyarország'
WHEN '175' THEN 'Bank of China (CEE) Zrt.'
WHEN '197' THEN 'Bank of China (CEE) Zrt.'
WHEN '179' THEN 'Bank Plus Bank Zrt.'
WHEN '131' THEN 'BNP Paribas Hungária Bank Zrt.'
WHEN '178' THEN 'BNP Paribas Magyarországi Fióktelepe'
WHEN '183' THEN 'BNP Paribas Magyarországi Fióktelepe'
WHEN '186' THEN 'BNP Paribas Securities Services'
WHEN '194' THEN 'BORGUN hf.'
WHEN '136' THEN 'CaLyon Bank Magyarország Zrt.'
WHEN '185' THEN 'CaLyon S.A. Magyarország Bankfióktelep'
WHEN '107' THEN 'CIB Bank Zrt. (CIB Közép-Európai Nemzetközi Bank Zrt.)'
WHEN '111' THEN 'CIB Bank Zrt. (Inter-Európa Bank Zrt.)'
WHEN '108' THEN 'Citibank (Citibank Europe)'
WHEN '196' THEN 'CLS Bank International'
WHEN '180' THEN 'Cofidis Magyarországi Fióktelep'
WHEN '142' THEN 'Commerzbank Zrt.'
WHEN '172' THEN 'Credigen Bank Zrt.'
WHEN '163' THEN 'Deutsche Bank AG Zrt.'
WHEN '177' THEN 'Dresdner Bank AG Magyarországi Fióktelepe'
WHEN '586' THEN 'DUNA Takarék Bank Zrt.'
WHEN '199' THEN 'eCOMM Merchant Solutions Ltd.'
WHEN '125' THEN 'Erste Bank Zrt.'
WHEN '119' THEN 'Erste Bank Zrt.'
WHEN '116' THEN 'Erste Bank Zrt.'
WHEN '193' THEN 'Euronet 360 Finance Limited'
WHEN '148' THEN 'Eximbank Zrt.'
WHEN '883' THEN 'Fundamenta Lakáskassza Lakástakarékpénztár Zrt.'
WHEN '882' THEN 'Fundamenta Lakáskassza Lakástakarékpénztár Zrt.'
WHEN '880' THEN 'Fundamenta Lakáskassza Lakástakarékpénztár Zrt.'
WHEN '121' THEN 'Gránit Bank Zrt.'
WHEN '147' THEN 'IC Bank Zrt.'
WHEN '118' THEN 'iCard AD'
WHEN '137' THEN 'ING Bank Magyarország Zrt.'
WHEN '135' THEN 'KDB Bank Európa Zrt.'
WHEN '888' THEN 'K&H Jelzálogbank Zrt.'
WHEN '102' THEN 'K&H Bank Zrt. (Kereskedelmi és Hitelbank Zrt.)'
WHEN '104' THEN 'K&H Bank Zrt. (Kereskedelmi és Hitelbank Zrt.)'
WHEN '144' THEN 'KELER Zrt. (Központi Elszámolóház és Értéktár Zrt.)'
WHEN '296' THEN 'Libra Internet Bank S.A.'
WHEN '162' THEN 'MagNet Bank Zrt.'
WHEN '146' THEN 'Magyar Fejlesztési Bank Zrt.'
WHEN '100' THEN 'Magyar Államkincstár'
WHEN '167' THEN 'Magyar Cetelem Bank Zrt.'
WHEN '190' THEN 'Magyar Nemzeti Bank'
WHEN '115' THEN 'Magyar Takarékszövetkezeti Bank Zrt.'
WHEN '500' THEN 'Magyar Takarékszövetkezeti Bank Zrt.'
WHEN '128' THEN 'Merkantil Bank Zrt.'
WHEN '101' THEN 'MKB Bank Nyrt. (Budapest Bank Zrt.)'
WHEN '103' THEN 'MKB Bank Nyrt. (Magyar Külkereskedelmi Bank)'
WHEN '114' THEN 'NHB Növekedési Hitel Bank Zrt.'
WHEN '184' THEN 'Oberbank AG Magyarországi Fióktelepe'
WHEN '222' THEN 'Országos Fizetési Szolgáltató Zrt.'
WHEN '117' THEN 'OTP Bank Nyrt.'
WHEN '170' THEN 'OTP Bank Nyrt.'
WHEN '884' THEN 'OTP Jelzálogbank Zrt.'
WHEN '881' THEN 'OTP Lakástakarékpénztár Zrt.'
WHEN '200' THEN 'OTP Pénztárszolgáltató Zrt.'
WHEN '151' THEN 'Paystrax UAB'
WHEN '612' THEN 'Polgári Bank Zrt.'
WHEN '160' THEN 'Porsche Bank Hungária Zrt.'
WHEN '903' THEN 'Postai Elszámoló Központ'
WHEN '120' THEN 'Raiffeisen Bank Zrt.'
WHEN '506' THEN 'Siklós és Vidéke Takarékszövetkezet, Siklós'
WHEN '527' THEN 'Soltvadkert és Vidéke Takarékszövetkezet, Soltvadkert'
WHEN '176' THEN 'Sopron Bank Zrt.'
WHEN '808' THEN 'Széchenyi István Hitelszövetkezet'
WHEN '168' THEN 'Takarék Jelzálogbank Nyrt.'
WHEN '501' THEN 'Takarékbank Zrt.'
WHEN '504' THEN 'Takarékbank Zrt.'
WHEN '507' THEN 'Takarékbank Zrt.'
WHEN '508' THEN 'Takarékbank Zrt.'
WHEN '510' THEN 'Takarékbank Zrt.'
WHEN '511' THEN 'Takarékbank Zrt.'
WHEN '512' THEN 'Takarékbank Zrt.'
WHEN '514' THEN 'Takarékbank Zrt.'
WHEN '515' THEN 'Takarékbank Zrt.'
WHEN '517' THEN 'Takarékbank Zrt.'
WHEN '519' THEN 'Takarékbank Zrt.'
WHEN '520' THEN 'Takarékbank Zrt.'
WHEN '523' THEN 'Takarékbank Zrt.'
WHEN '525' THEN 'Takarékbank Zrt.'
WHEN '526' THEN 'Takarékbank Zrt.'
WHEN '528' THEN 'Takarékbank Zrt.'
WHEN '531' THEN 'Takarékbank Zrt.'
WHEN '532' THEN 'Takarékbank Zrt.'
WHEN '533' THEN 'Takarékbank Zrt.'
WHEN '535' THEN 'Takarékbank Zrt.'
WHEN '536' THEN 'Takarékbank Zrt.'
WHEN '537' THEN 'Takarékbank Zrt.'
WHEN '540' THEN 'Takarékbank Zrt.'
WHEN '542' THEN 'Takarékbank Zrt.'
WHEN '543' THEN 'Takarékbank Zrt.'
WHEN '545' THEN 'Takarékbank Zrt.'
WHEN '546' THEN 'Takarékbank Zrt.'
WHEN '551' THEN 'Takarékbank Zrt.'
WHEN '554' THEN 'Takarékbank Zrt.'
WHEN '556' THEN 'Takarékbank Zrt.'
WHEN '558' THEN 'Takarékbank Zrt.'
WHEN '568' THEN 'Takarékbank Zrt.'
WHEN '569' THEN 'Takarékbank Zrt.'
WHEN '571' THEN 'Takarékbank Zrt.'
WHEN '574' THEN 'Takarékbank Zrt.'
WHEN '576' THEN 'Takarékbank Zrt.'
WHEN '577' THEN 'Takarékbank Zrt.'
WHEN '578' THEN 'Takarékbank Zrt.'
WHEN '581' THEN 'Takarékbank Zrt.'
WHEN '589' THEN 'Takarékbank Zrt.'
WHEN '590' THEN 'Takarékbank Zrt.'
WHEN '591' THEN 'Takarékbank Zrt.'
WHEN '592' THEN 'Takarékbank Zrt.'
WHEN '593' THEN 'Takarékbank Zrt.'
WHEN '595' THEN 'Takarékbank Zrt.'
WHEN '596' THEN 'Takarékbank Zrt.'
WHEN '598' THEN 'Takarékbank Zrt.'
WHEN '599' THEN 'Takarékbank Zrt.'
WHEN '606' THEN 'Takarékbank Zrt.'
WHEN '614' THEN 'Takarékbank Zrt.'
WHEN '616' THEN 'Takarékbank Zrt.'
WHEN '620' THEN 'Takarékbank Zrt.'
WHEN '621' THEN 'Takarékbank Zrt.'
WHEN '623' THEN 'Takarékbank Zrt.'
WHEN '626' THEN 'Takarékbank Zrt.'
WHEN '627' THEN 'Takarékbank Zrt.'
WHEN '628' THEN 'Takarékbank Zrt.'
WHEN '629' THEN 'Takarékbank Zrt.'
WHEN '632' THEN 'Takarékbank Zrt.'
WHEN '633' THEN 'Takarékbank Zrt.'
WHEN '636' THEN 'Takarékbank Zrt.'
WHEN '638' THEN 'Takarékbank Zrt.'
WHEN '640' THEN 'Takarékbank Zrt.'
WHEN '647' THEN 'Takarékbank Zrt.'
WHEN '648' THEN 'Takarékbank Zrt.'
WHEN '651' THEN 'Takarékbank Zrt.'
WHEN '660' THEN 'Takarékbank Zrt.'
WHEN '669' THEN 'Takarékbank Zrt.'
WHEN '670' THEN 'Takarékbank Zrt.'
WHEN '676' THEN 'Takarékbank Zrt.'
WHEN '678' THEN 'Takarékbank Zrt.'
WHEN '679' THEN 'Takarékbank Zrt.'
WHEN '680' THEN 'Takarékbank Zrt.'
WHEN '682' THEN 'Takarékbank Zrt.'
WHEN '685' THEN 'Takarékbank Zrt.'
WHEN '687' THEN 'Takarékbank Zrt.'
WHEN '688' THEN 'Takarékbank Zrt.'
WHEN '693' THEN 'Takarékbank Zrt.'
WHEN '694' THEN 'Takarékbank Zrt.'
WHEN '695' THEN 'Takarékbank Zrt.'
WHEN '698' THEN 'Takarékbank Zrt.'
WHEN '701' THEN 'Takarékbank Zrt.'
WHEN '703' THEN 'Takarékbank Zrt.'
WHEN '704' THEN 'Takarékbank Zrt.'
WHEN '705' THEN 'Takarékbank Zrt.'
WHEN '706' THEN 'Takarékbank Zrt.'
WHEN '709' THEN 'Takarékbank Zrt.'
WHEN '718' THEN 'Takarékbank Zrt.'
WHEN '719' THEN 'Takarékbank Zrt.'
WHEN '721' THEN 'Takarékbank Zrt.'
WHEN '726' THEN 'Takarékbank Zrt.'
WHEN '727' THEN 'Takarékbank Zrt.'
WHEN '728' THEN 'Takarékbank Zrt.'
WHEN '729' THEN 'Takarékbank Zrt.'
WHEN '732' THEN 'Takarékbank Zrt.'
WHEN '736' THEN 'Takarékbank Zrt.'
WHEN '739' THEN 'Takarékbank Zrt.'
WHEN '740' THEN 'Takarékbank Zrt.'
WHEN '745' THEN 'Takarékbank Zrt.'
WHEN '750' THEN 'Takarékbank Zrt.'
WHEN '755' THEN 'Takarékbank Zrt.'
WHEN '757' THEN 'Takarékbank Zrt.'
WHEN '806' THEN 'Takarékbank Zrt.'
WHEN '181' THEN 'Takarékbank Zrt. (Allianz Bank Zrt.)'
WHEN '644' THEN 'Takarékbank Zrt. (Alsónémedi és Vidéke Takarékszövetkezet)'
WHEN '182' THEN 'Takarékbank Zrt. (FHB Kereskedelmi Bank Zrt.)'
WHEN '619' THEN 'Takarékbank Zrt. (Füzesabony és Vidéke Takarékszövetkezet)'
WHEN '603' THEN 'Takarékbank Zrt. (Hajdúdorog és Vidéke Takarékszövetkezet)'
WHEN '503' THEN 'Takarékbank Zrt. (Mecsek-Vidéke Takarékszövetkezet)'
WHEN '652' THEN 'Takarékbank Zrt. (Nagykáta és Vidéke Takarékszövetkezet)'
WHEN '655' THEN 'Takarékbank Zrt. (Örkényi Takarékszövetkezet)'
WHEN '657' THEN 'Takarékbank Zrt. (Pilisvörösvár és Vidéke Takarékszövetkezet)'
WHEN '539' THEN 'Takarékbank Zrt. (Szarvas és Vidéke Takarékszövetkezet)'
WHEN '572' THEN 'Takarékbank Zrt. (Szegvár és Vidéke Takarékszövetkezet)'
WHEN '803' THEN 'Takarékbank Zrt. (Tiszántúli Első Hitelszövetkezet)'
WHEN '659' THEN 'Takarékbank Zrt. (Turai Takarékszövetkezet)'
WHEN '700' THEN 'Tiszaföldvár és Vidéke Takarékszövetkezet, Tiszaföldvár'
WHEN '126' THEN 'TransferWise Europe SA'
WHEN '109' THEN 'UniCredit Bank Hungary Zrt.'
WHEN '171' THEN 'UniCredit Jelzálogbank Zrt.'
WHEN '192' THEN 'WIRECARD Bank AG'
END
RETURN @Nev
END
GO

View file

@ -0,0 +1,20 @@
IF OBJECT_ID('dbo.fnGetDokumentumDatumFormatum') IS NOT NULL BEGIN
DROP FUNCTION dbo.fnGetDokumentumDatumFormatum
END
GO
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
CREATE FUNCTION dbo.fnGetDokumentumDatumFormatum (@datum DATE)
RETURNS NVARCHAR(MAX)
BEGIN
DECLARE @value NVARCHAR(MAX)
SELECT @value =
FORMAT(@datum, 'yyyy.MM.dd.')
RETURN @value
END;

View file

@ -0,0 +1,150 @@
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
DROP FUNCTION IF EXISTS fnGetDokumentumErtekelesekMuveszetiOktatasbanOsztalyonkent
GO
CREATE FUNCTION fnGetDokumentumErtekelesekMuveszetiOktatasbanOsztalyonkent (
@tanevId int
,@osztalyCsoportId int
,@ertekelesTipusa int = NULL
,@csakTanorai bit = 1
,@csakKivlasztottOsztalyCsoport bit = 0
,@atsoroltTanuloErtekelesek int = 0
,@osztalyzatTipusTypeID int = 44
,@magatartasErtekelesTipusTypeID int = 50
,@szorgalomErtekelesTipusTypeID int = 51
)
RETURNS @retTanuloErtekeles TABLE
(
ErtekelesId INT NOT NULL,
Datum DATE,
TipusId INT,
ErtekelesSzoveg NVARCHAR(MAX),
ErtekelesSzovegFormazott NVARCHAR(MAX),
ErtekelesSzovegRovidNev NVARCHAR(3),
ErtekelesOsztalyzatId INT,
ErtekelesOsztalyzatValue INT,
ErtekelesOsztalyzatNev NVARCHAR(MAX),
ErtekelesSzazalek NVARCHAR(MAX),
MagatartasOsztalyzatId INT,
MagatartasOsztalyzatValue INT,
MagatartasOsztalyzatNev NVARCHAR(MAX),
MagatartasSzoveg NVARCHAR(MAX),
MagatartasSzovegFormazott NVARCHAR(MAX),
MagatartasSzovegRovidNev NVARCHAR(3),
MagatartasErtekId INT,
MagatartasErtek NVARCHAR(MAX),
MagatartasErtekOsztalyzatkent INT,
SzorgalomOsztalyzatId INT,
SzorgalomOsztalyzatValue INT,
SzorgalomOsztalyzatNev NVARCHAR(MAX),
SzorgalomSzoveg NVARCHAR(MAX),
SzorgalomSzovegFormazott NVARCHAR(MAX),
SzorgalomSzovegRovidNev NVARCHAR(3),
SzorgalomErtekId INT,
SzorgalomErtek NVARCHAR(MAX),
SzorgalomErtekOsztalyzatkent INT,
TanuloId INT,
OsztalyCsoportId INT,
TantargyId INT,
TantargyNevZarojellel NVARCHAR(MAX),
TantargyNevNyomtatvanyban NVARCHAR(MAX),
TantargyNev NVARCHAR(MAX),
TantargyAngolNev NVARCHAR(MAX),
TantargyNemetNev NVARCHAR(MAX),
TargyKategoriaId INT,
FotargyE CHAR(1),
Altantargy CHAR(1),
FotargyId INT,
ErtekelesTema NVARCHAR(MAX),
ErtekeloId INT,
ErtekelesModjaId INT,
IsMagatartasSzorgalom CHAR(1),
Jeloles NVARCHAR(MAX),
JelolesAndErtekelesTema NVARCHAR(MAX),
RENDEZ0 int,
RENDEZ1 INT,
RENDEZ2 NVARCHAR(MAX),
RENDEZ3 INT,
RENDEZ4 INT,
RENDEZ5 NVARCHAR(MAX)
)
AS
BEGIN
INSERT INTO @retTanuloErtekeles
SELECT
ErtekelesId,
Datum,
TipusId,
ErtekelesSzoveg,
ErtekelesSzovegFormazott,
ErtekelesSzovegRovidNev,
ErtekelesOsztalyzatId,
ErtekelesOsztalyzatValue,
ErtekelesOsztalyzatNev,
ErtekelesSzazalek,
MagatartasOsztalyzatId,
MagatartasOsztalyzatValue,
MagatartasOsztalyzatNev,
MagatartasSzoveg,
MagatartasSzovegFormazott,
MagatartasSzovegRovidNev,
MagatartasErtekId,
MagatartasErtek,
MagatartasErtekOsztalyzatkent,
SzorgalomOsztalyzatId,
SzorgalomOsztalyzatValue,
SzorgalomOsztalyzatNev,
SzorgalomSzoveg,
SzorgalomSzovegFormazott,
SzorgalomSzovegRovidNev,
SzorgalomErtekId,
SzorgalomErtek,
SzorgalomErtekOsztalyzatkent,
TanuloId,
OsztalyCsoportId,
TantargyId,
TantargyNevZarojellel,
TantargyNevNyomtatvanyban,
TantargyNev,
TantargyAngolNev,
TantargyNemetNev,
TargyKategoriaId,
FotargyE,
Altantargy,
FotargyId,
ErtekelesTema,
ErtekeloId,
ErtekelesModjaId,
IsMagatartasSzorgalom,
Jeloles,
JelolesAndErtekelesTema,
RENDEZ0,
RENDEZ1,
RENDEZ2,
RENDEZ3,
RENDEZ4,
RENDEZ5
FROM fnGetDokumentumErtekelesekOsztalyonkent(@tanevId, @osztalyCsoportId, @ertekelesTipusa, 0, @csakKivlasztottOsztalyCsoport, @atsoroltTanuloErtekelesek, DEFAULT, @osztalyzatTipusTypeID, @magatartasErtekelesTipusTypeID, @szorgalomErtekelesTipusTypeID) ErtekelesekTable
INNER JOIN T_CSOPORT_OSSZES CsoportTable ON ErtekelesekTable.OsztalyCsoportId = CsoportTable.Id
WHERE
C_TIPUSA IN
(
1067 --Alapf. müv. okt. zeneművészeti csoport - egyéni főtanszak
,1068 --Alapf. müv. okt. zeneművészeti csoport - csoportos főtanszak
,1069 --Alapf. müv. okt. képző- és iparművészeti csoport
,1070 --Alapf. müv. okt. táncművészeti csoport
,1071 --Alapf. müv. okt. szín- és bábművészeti csoport
,6756 --Alapf. műv. okt. zeneművészeti csoport - csoportos kötelezően választható
,6757 --Alapf. műv. okt. zeneművészeti csoport - egyéni kötelezően választható
,6758 --Alapf. műv. okt. zeneművészeti csoport - csoportos kötelező
,6759 --Alapf. műv. okt. zeneművészeti csoport - egyéni kötelező
,6760 --Alapf. műv. okt. zeneművészeti csoport - csoportos választható
,6761 --Alapf. műv. okt. zeneművészeti csoport - egyéni választható
)
RETURN
END
GO

View file

@ -0,0 +1,238 @@
DROP FUNCTION IF EXISTS fnGetDokumentumErtekelesekOsztalyonkent
GO
CREATE FUNCTION fnGetDokumentumErtekelesekOsztalyonkent (
@tanevId int
,@osztalyCsoportId int
,@ertekelesTipusa int = NULL
,@csakTanorai bit = 1
,@csakKivlasztottOsztalyCsoport bit = 0
,@atsoroltTanuloErtekelesek int = 0
,@includeOsztalyfonokiKategoria bit = 0
,@osztalyzatTipusTypeID int = 44
,@magatartasErtekelesTipusTypeID int = 50
,@szorgalomErtekelesTipusTypeID int = 51
)
RETURNS @retTanuloErtekeles TABLE
(
ErtekelesId INT NOT NULL
,Datum DATE
,TipusId INT
,ErtekelesSzoveg NVARCHAR(MAX)
,ErtekelesSzovegFormazott NVARCHAR(MAX)
,ErtekelesSzovegRovidNev NVARCHAR(3)
,ErtekelesOsztalyzatId INT
,ErtekelesOsztalyzatValue INT
,ErtekelesOsztalyzatNev NVARCHAR(500)
,ErtekelesSzazalek NVARCHAR(4)
,MagatartasOsztalyzatId INT
,MagatartasOsztalyzatValue INT
,MagatartasOsztalyzatNev NVARCHAR(500)
,MagatartasSzoveg NVARCHAR(MAX)
,MagatartasSzovegFormazott NVARCHAR(MAX)
,MagatartasSzovegRovidNev NVARCHAR(6)
,MagatartasErtekId INT
,MagatartasErtek NVARCHAR(500)
,MagatartasErtekOsztalyzatkent INT
,SzorgalomOsztalyzatId INT
,SzorgalomOsztalyzatValue INT
,SzorgalomOsztalyzatNev NVARCHAR(500)
,SzorgalomSzoveg NVARCHAR(MAX)
,SzorgalomSzovegFormazott NVARCHAR(MAX)
,SzorgalomSzovegRovidNev NVARCHAR(6)
,SzorgalomErtekId INT
,SzorgalomErtek NVARCHAR(500)
,SzorgalomErtekOsztalyzatkent INT
,TanuloId INT
,TanuloCsoportId INT
,OsztalyCsoportId INT
,TantargyId INT
,TantargyNevZarojellel NVARCHAR(1023)
,TantargyNevNyomtatvanyban NVARCHAR(510)
,TantargyNev NVARCHAR(510)
,TantargyAngolNev NVARCHAR(510)
,TantargyNemetNev NVARCHAR(510)
,TargyKategoriaId INT
,FotargyE CHAR(1)
,Altantargy CHAR(1)
,FotargyId INT
,ErtekelesTema NVARCHAR(2100)
,ErtekeloId INT
,ErtekelesModjaId INT
,IsMagatartasSzorgalom CHAR(1)
,Jeloles NVARCHAR(MAX)
,JelolesAndErtekelesTema NVARCHAR(MAX)
,RogzitesDatum DATETIME
,RENDEZ0 int
,RENDEZ1 INT
,RENDEZ2 NVARCHAR(510)
,RENDEZ3 INT
,RENDEZ4 INT
,RENDEZ5 NVARCHAR(510)
,IsTanulmanyiatlagbanemszamit CHAR(1)
)
AS
BEGIN
DECLARE @kategoriaId int = (SELECT C_FELADATKATEGORIAID FROM T_OSZTALYCSOPORT_OSSZES WHERE ID = @osztalyCsoportId)
DECLARE @kapcsolodoOcsID TABLE(ID INT)
INSERT INTO @kapcsolodoOcsID (ID)
SELECT ID FROM fnGetDokumentumKapcsolodoOsztalycsoportok(@osztalyCsoportId, @tanevId, 0, DEFAULT)
DECLARE @DefaultFeladatKategoriaId int = 7553
INSERT INTO @retTanuloErtekeles
SELECT
tanuloErtekeles.ID as ErtekelesId
,tanuloErtekeles.C_DATUM as Datum
,tanuloErtekeles.C_TIPUSID as TipusId
,tanuloErtekeles.C_ERTEKELESSZOVEG as ErtekelesSzoveg
,tanuloErtekeles.C_ERTEKELESSZOVEGFORMAZOTT as ErtekelesSzovegFormazott
,tanuloErtekeles.C_ERTEKELESSZOVEGROVIDNEV as ErtekelesSzovegRovidNev
,tanuloErtekeles.C_ERTEKELESOSZTALYZATID as ErtekelesOsztalyzatId
,ertekelesOsztalyzat.C_VALUE as ErtekelesOsztalyzatValue
,ertekelesOsztalyzat.C_NAME as ErtekelesOsztalyzatNev
,CONVERT(NVARCHAR(3), tanuloErtekeles.C_ERTEKELESSZAZALEK)+'%' as ErtekelesSzazalek
,tanuloErtekeles.C_MAGATARTASOSZTALYZATID as MagatartasOsztalyzatId
,magatartasOsztalyzat.C_VALUE as MagatartasOsztalyzatValue
,magatartasOsztalyzat.C_NAME as MagatartasOsztalyzatNev
,tanuloErtekeles.C_MAGATARTASSZOVEG as MagatartasSzoveg
,tanuloErtekeles.C_MAGATARTASSZOVEGFORMAZOTT as MagatartasSzovegFormazott
,tanuloErtekeles.C_MAGATARTASSZOVEGROVIDNEV as MagatartasSzovegRovidNev
,tanuloErtekeles.C_MAGATARTASERTEKID as MagatartasErtekId
,magatartasErtek.C_NAME as MagatartasErtek
,magatartasErtek.C_VALUE + 1 as MagatartasErtekOsztalyzatken
,tanuloErtekeles.C_SZORGALOMOSZTALYZATID as SzorgalomOsztalyzatId
,szorgalomOsztalyzat.C_VALUE as SzorgalomOsztalyzatValue
,szorgalomOsztalyzat.C_NAME as SzorgalomOsztalyzatNev
,tanuloErtekeles.C_SZORGALOMSZOVEG as SzorgalomSzoveg
,tanuloErtekeles.C_SZORGALOMSZOVEGFORMAZOTT as SzorgalomSzovegFormazott
,tanuloErtekeles.C_SZORGALOMSZOVEGROVIDNEV as SzorgalomSzovegRovidNev
,tanuloErtekeles.C_SZORGALOMERTEKID as SzorgalomErtekId
,szorgalomErtek.C_NAME as SzorgalomErtek
,szorgalomErtek.C_VALUE + 1 as SzorgalomErtekOsztalyzatkent
,tanuloErtekeles.C_TANULOID as TanuloId
,TanuloCsoport.ID AS TanuloCsoportId
,tanuloErtekeles.C_OSZTALYCSOPORTID as OsztalyCsoportId
,tanuloErtekeles.C_TANTARGYID as TantargyId
,IIF(tantargy.C_NEV <> tantargy.C_NEVNYOMTATVANYBAN AND tantargy.C_NEVNYOMTATVANYBAN IS NOT NULL, tantargy.C_NEVNYOMTATVANYBAN +' (' + tantargy.C_NEV + ')', tantargy.C_NEV) as TantargyNevZarojellel
,tantargy.C_NEVNYOMTATVANYBAN as TantargyNevNyomtatvanyban
,tantargy.C_NEV as TantargyNev
,tantargy.C_ANGOLNEV as TantargyAngolNev
,tantargy.C_NEMETNEV as TantargyNemetNev
,tantargy.C_TARGYKATEGORIA as TargyKategoriaId
,tantargy.C_FOTARGYE as FotargyE
,tantargy.C_ALTANTARGYKENTNYOMTATVANYBAN as Altantargy
,tantargy.C_FOTARGYID as FotargyId
,tanuloErtekeles.C_ERTEKELESTEMA as ErtekelesTema
,tanuloErtekeles.C_ERTEKELOID as ErtekeloId
,tanuloErtekeles.C_ERTEKELESMODID as ErtekelesModjaId
,tanuloErtekeles.C_ISMAGATARTASSZORGALOM as IsMagatartasSzorgalom
,CASE
WHEN tanuloErtekeles.C_TIPUSID = 1518 THEN
CASE
WHEN tanuloErtekeles.C_ISMAGATARTASSZORGALOM = 'T' THEN
CASE
WHEN tanuloErtekeles.C_MAGATARTASSZOVEG IS NOT NULL THEN
'<sup>' + CAST(ROW_NUMBER() OVER(PARTITION BY tanuloErtekeles.C_TANULOID, tanuloErtekeles.C_TIPUSID, IIF(tanuloErtekeles.C_MAGATARTASSZOVEG IS NOT NULL, 1, 0) ORDER BY tanuloErtekeles.C_ROGZITESDATUM) AS NVARCHAR(10))+'</sup>'
WHEN tanuloErtekeles.C_SZORGALOMSZOVEG IS NOT NULL THEN
'<sup>' + CAST(ROW_NUMBER() OVER(PARTITION BY tanuloErtekeles.C_TANULOID, tanuloErtekeles.C_TIPUSID, IIF(tanuloErtekeles.C_SZORGALOMSZOVEG IS NOT NULL, 1, 0) ORDER BY tanuloErtekeles.C_ROGZITESDATUM) AS NVARCHAR(10))+'</sup>'
END
WHEN tanuloErtekeles.C_ISMAGATARTASSZORGALOM = 'F' THEN
'<sup>' + CAST(ROW_NUMBER() OVER(PARTITION BY tanuloErtekeles.C_TANULOID, tanuloErtekeles.C_TIPUSID, IIF(tanuloErtekeles.C_ERTEKELESSZOVEG IS NOT NULL, 1, 0) ORDER BY tanuloErtekeles.C_ROGZITESDATUM) AS NVARCHAR(10))+'</sup>'
END
WHEN tanuloErtekeles.C_ERTEKELESTEMA IS NOT NULL AND tanuloErtekeles.C_TIPUSID IN (1519, 1520) THEN
'<i>(' + CAST(CHAR(ROW_NUMBER() OVER(PARTITION BY tanuloErtekeles.C_TANULOID, tanuloErtekeles.C_TIPUSID, IIF(tanuloErtekeles.C_ERTEKELESTEMA IS NOT NULL, 1, 0) ORDER BY tanuloErtekeles.C_DATUM) + 96) AS NVARCHAR(10))+')</i>'
WHEN tanuloErtekeles.C_ERTEKELESTEMA IS NOT NULL AND tanuloErtekeles.C_TIPUSID IN (1522, 1523, 1524, 1525) THEN
'<i>(' + CAST(CHAR(ROW_NUMBER() OVER(PARTITION BY tanuloErtekeles.C_TANULOID, tanuloErtekeles.C_TIPUSID, IIF(tanuloErtekeles.C_ERTEKELESTEMA IS NOT NULL, 1, 0) ORDER BY tanuloErtekeles.C_DATUM) + 96) AS NVARCHAR(10))+')</i>'
END as Jeloles
,CASE
WHEN tanuloErtekeles.C_ERTEKELESTEMA IS NOT NULL AND tanuloErtekeles.C_TIPUSID IN (1519, 1520) THEN
'<i>(' + CAST(CHAR(ROW_NUMBER() OVER(PARTITION BY tanuloErtekeles.C_TANULOID, tanuloErtekeles.C_TIPUSID, IIF(tanuloErtekeles.C_ERTEKELESTEMA IS NOT NULL, 1, 0) ORDER BY tanuloErtekeles.C_DATUM) + 96) AS NVARCHAR(10)) + ')</i>: ' + tanuloErtekeles.C_ERTEKELESTEMA
WHEN tanuloErtekeles.C_ERTEKELESTEMA IS NOT NULL AND tanuloErtekeles.C_TIPUSID IN (1522, 1523, 1524, 1525) THEN
'<i>(' + CAST(CHAR(ROW_NUMBER() OVER(PARTITION BY tanuloErtekeles.C_TANULOID, tanuloErtekeles.C_TIPUSID, IIF(tanuloErtekeles.C_ERTEKELESTEMA IS NOT NULL, 1, 0) ORDER BY tanuloErtekeles.C_DATUM) + 96) AS NVARCHAR(10)) + ')</i>: ' + tanuloErtekeles.C_ERTEKELESTEMA
END as JelolesAndErtekelesTema
,tanuloErtekeles.C_ROGZITESDATUM as RogzitesDatum
,tantargy.C_SORSZAM as RENDEZ0
,CASE WHEN tantargy.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, tantargy.C_NEV) as RENDEZ2
,ISNULL(tantargy.C_FOTARGYID, tantargy.ID) as RENDEZ3
,tantargy.C_FOTARGYID as RENDEZ4
,ISNULL(tantargy.C_NEVNYOMTATVANYBAN, tantargy.C_NEV) as RENDEZ5
,tantargy.C_ISTANULMANYIATLAGBANEMSZAMIT as IsTanulmanyiatlagbanemszamit
FROM T_TANULOERTEKELES_OSSZES tanuloErtekeles
INNER JOIN T_TANULOCSOPORT_OSSZES TanuloCsoport ON TanuloCsoport.C_TANULOID = tanuloErtekeles.C_TANULOID
AND TanuloCsoport.C_OSZTALYCSOPORTID = @osztalyCsoportId
AND TanuloCsoport.C_BELEPESDATUM <= tanuloErtekeles.C_DATUM
AND (TanuloCsoport.C_KILEPESDATUM >= tanuloErtekeles.C_DATUM OR TanuloCsoport.C_KILEPESDATUM IS NULL)
AND TanuloCsoport.TOROLT = 'F'
INNER JOIN T_TANULOCSOPORT_OSSZES ErtekeleshezTartozoOsztalyCsoport ON ErtekeleshezTartozoOsztalyCsoport.C_TANULOID = tanuloErtekeles.C_TANULOID
AND ErtekeleshezTartozoOsztalyCsoport.C_OSZTALYCSOPORTID = tanuloErtekeles.C_OSZTALYCSOPORTID
AND ErtekeleshezTartozoOsztalyCsoport.C_BELEPESDATUM <= tanuloErtekeles.C_DATUM
AND (ErtekeleshezTartozoOsztalyCsoport.C_KILEPESDATUM >= tanuloErtekeles.C_DATUM OR ErtekeleshezTartozoOsztalyCsoport.C_KILEPESDATUM IS NULL)
AND ErtekeleshezTartozoOsztalyCsoport.TOROLT = 'F'
AND ErtekeleshezTartozoOsztalyCsoport.C_TANEVID = @tanevId
LEFT JOIN T_TANTARGY_OSSZES tantargy ON tantargy.Id = tanuloErtekeles.C_TANTARGYID AND tantargy.TOROLT = 'F'
LEFT JOIN T_DICTIONARYITEMBASE_OSSZES ertekelesOsztalyzat ON ertekelesOsztalyzat.ID = tanuloErtekeles.C_ERTEKELESOSZTALYZATID
AND ertekelesOsztalyzat.C_TANEVID = @tanevId
AND ertekelesOsztalyzat.C_DICTIONARYTYPEID = @osztalyzatTipusTypeID
LEFT JOIN T_DICTIONARYITEMBASE_OSSZES magatartasOsztalyzat ON magatartasOsztalyzat.ID = tanuloErtekeles.C_MAGATARTASOSZTALYZATID
AND magatartasOsztalyzat.C_TANEVID = @tanevId
AND magatartasOsztalyzat.C_DICTIONARYTYPEID = @osztalyzatTipusTypeID
LEFT JOIN T_DICTIONARYITEMBASE_OSSZES szorgalomOsztalyzat ON szorgalomOsztalyzat.ID = tanuloErtekeles.C_SZORGALOMOSZTALYZATID
AND szorgalomOsztalyzat.C_TANEVID = @tanevId
AND szorgalomOsztalyzat.C_DICTIONARYTYPEID = @osztalyzatTipusTypeID
LEFT JOIN T_DICTIONARYITEMBASE_OSSZES magatartasErtek ON magatartasErtek.ID = tanuloErtekeles.C_MAGATARTASERTEKID
AND magatartasErtek.C_TANEVID = @tanevId
AND magatartasErtek.C_DICTIONARYTYPEID = @magatartasErtekelesTipusTypeID
LEFT JOIN T_DICTIONARYITEMBASE_OSSZES szorgalomErtek ON szorgalomErtek.ID = tanuloErtekeles.C_SZORGALOMERTEKID
AND szorgalomErtek.C_TANEVID = @tanevId
AND szorgalomErtek.C_DICTIONARYTYPEID = @szorgalomErtekelesTipusTypeID
LEFT JOIN T_DICTIONARYITEMBASE_OSSZES TargyKategoriaDictionary ON TargyKategoriaDictionary.Id = tantargy.C_TARGYKATEGORIA
AND TargyKategoriaDictionary.TOROLT = 'F'
AND TargyKategoriaDictionary.C_TANEVID = @tanevId
LEFT JOIN T_TANTARGY_OSSZES FotargyTable ON tantargy.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
INNER JOIN T_OSZTALYCSOPORT_OSSZES osztalyCsoport ON osztalyCsoport.ID = tanuloErtekeles.C_OSZTALYCSOPORTID
AND osztalyCsoport.TOROLT = 'F' and osztalyCsoport.C_FELADATKATEGORIAID = @kategoriaId
LEFT JOIN (
SELECT
tanorai.ID as tanoraiId
,cs.ID as CsoportId
FROM T_CSOPORT_OSSZES cs
INNER JOIN fnGetTanoraiCeluCsoportTipusok(@tanevId) tanorai ON tanorai.ID = cs.C_TIPUSA
) tanorai ON tanorai.CsoportId = OsztalyCsoport.ID
LEFT JOIN T_OSZTALY_OSSZES osztaly ON osztaly.ID = tanuloErtekeles.C_OSZTALYCSOPORTID
WHERE tanuloErtekeles.C_TANEVID = @tanevId
AND tanuloErtekeles.TOROLT = 'F'
AND (@atsoroltTanuloErtekelesek = 1 OR (tanuloErtekeles.C_OSZTALYCSOPORTID IN(SELECT ID FROM @kapcsolodoOcsID)))
AND (@ertekelesTipusa IS NULL OR C_TIPUSID = @ertekelesTipusa)
AND (@csakKivlasztottOsztalyCsoport = 0 OR tanuloErtekeles.C_OSZTALYCSOPORTID = @osztalyCsoportId)
AND (@csakTanorai = 0 OR osztaly.ID IS NOT NULL OR tanorai.tanoraiId IS NOT NULL)
AND ((ISNULL(tantargy.C_TARGYKATEGORIA,0) <> 1248) OR @includeOsztalyfonokiKategoria = 1)
IF @atsoroltTanuloErtekelesek > 0
BEGIN
DECLARE @osztalyTantargyak TABLE (TantargyId INT)
INSERT INTO @osztalyTantargyak (TantargyId)
SELECT DISTINCT
TantargyId
FROM @retTanuloErtekeles
WHERE OsztalyCsoportId IN (SELECT ID FROM @kapcsolodoOcsID)
UNION
SELECT DISTINCT
C_TANTARGYID
FROM T_FOGLALKOZAS_OSSZES
INNER JOIN @kapcsolodoOcsID AS OSZTALYCSOPORT ON OSZTALYCSOPORT.ID = T_FOGLALKOZAS_OSSZES.C_OSZTALYCSOPORTID
WHERE T_FOGLALKOZAS_OSSZES.TOROLT = 'F'
DELETE FROM @retTanuloErtekeles
WHERE TantargyId NOT IN (SELECT TantargyId FROM @osztalyTantargyak)
END
RETURN
END
GO

View file

@ -0,0 +1,28 @@
DROP FUNCTION IF EXISTS dbo.fnGetDokumentumGondviselok;
GO
CREATE FUNCTION fnGetDokumentumGondviselok (@osztalyCsoportId INT, @tanevId INT, @isCsokkentettGondviselo NVARCHAR(1), @isTorvenyesGondviselo NVARCHAR(1) = NULL)
RETURNS @Result TABLE (
GondviseloId INT NOT NULL
,GondviseloNev NVARCHAR(MAX) NOT NULL
,TanuloId INT NOT NULL
,RokonsagifokId INT
) AS
BEGIN
INSERT INTO @Result (GondviseloId, GondviseloNev, TanuloId, RokonsagifokId)
SELECT DISTINCT
Gondviselo.ID GondviseloId
,Gondviselo.C_NEV GondviseloNev
,Gondviselo.C_TANULOID TanuloId
,Gondviselo.C_ROKONSAGFOKA RokonsagifokId
FROM T_GONDVISELO_OSSZES Gondviselo
INNER JOIN fnGetDokumentumOsztalyokCsoportokTanuloi(@tanevId, @osztalyCsoportId, 'T') OsztalyTanuloi ON OsztalyTanuloi.TanuloId = Gondviselo.C_TANULOID
WHERE
Gondviselo.TOROLT = 'F'
AND (@isTorvenyesGondviselo IS NULL OR Gondviselo.C_ISTORVENYESKEPVISELO = @isTorvenyesGondviselo)
AND (Gondviselo.C_ISCSOKKENTETTGONDVISELO IS NULL OR Gondviselo.C_ISCSOKKENTETTGONDVISELO = @isCsokkentettGondviselo)
AND Gondviselo.C_TANEVID = @tanevId
RETURN
END
GO

View file

@ -0,0 +1,29 @@
DROP FUNCTION IF EXISTS fnGetDokumentumIdegenNyelv
GO
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
CREATE FUNCTION fnGetDokumentumIdegenNyelv (@nyomtatvanyNyelvEnum INT, @Id INT, @tanevId INT)
RETURNS NVARCHAR(MAX)
BEGIN
DECLARE @value NVARCHAR(MAX)
DECLARE @intezmenyId INT
SELECT @intezmenyId = (SELECT C_INTEZMENYID FROM T_TANEV_OSSZES WHERE ID = @tanevId AND TOROLT= 'F')
SELECT @value = (SELECT
CASE @nyomtatvanyNyelvEnum
WHEN 0 THEN
C_NAME
WHEN 1 THEN
C_NAME_2
WHEN 2 THEN
C_NAME_1
END
FROM T_DICTIONARYITEMBASE_OSSZES WHERE ID = @Id AND C_TANEVID = @tanevId AND C_INTEZMENYID = @intezmenyId AND TOROLT = 'F')
RETURN @value
END;

View file

@ -0,0 +1,25 @@
IF OBJECT_ID('dbo.fnGetDokumentumIntezmenyCime') IS NOT NULL BEGIN
DROP FUNCTION dbo.fnGetDokumentumIntezmenyCime
END
GO
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
CREATE FUNCTION dbo.fnGetDokumentumIntezmenyCime (@tanevId INT)
RETURNS NVARCHAR(MAX)
BEGIN
DECLARE @value NVARCHAR(MAX)
SELECT
@value = C_IRANYITOSZAM + ' ' + C_VAROS + ISNULL( ', ' + C_KOZTERULETNEV + ' ', '') + ISNULL(C_KOZTERULETJELLEGENEV + ' ','') + ISNULL(C_HAZSZAM, '') + ISNULL(', ' + C_EMELET + '. emelet', '') + ISNULL(', ' + C_AJTO + '. ajtó', '')
FROM T_INTEZMENYADATOK_OSSZES
WHERE
C_TANEVID = @tanevId
AND TOROLT = 'F'
RETURN @value
END;

View file

@ -0,0 +1,23 @@
IF OBJECT_ID('fnGetDokumentumIntezmenyPedagogusok') IS NOT NULL BEGIN
DROP FUNCTION fnGetDokumentumIntezmenyPedagogusok
END
GO
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
CREATE FUNCTION fnGetDokumentumIntezmenyPedagogusok (@pIntezmenyId INT, @pTanevId INT)
RETURNS TABLE
RETURN (
SELECT
f.ID AS ID,
f.C_NYOMTATASINEV Nev
FROM T_ALKALMAZOTT_OSSZES a
INNER JOIN T_FELHASZNALO_OSSZES f on f.ID = a.ID
WHERE
f.TOROLT = 'F'
AND f.C_TANEVID = @pTanevId
AND f.C_INTEZMENYID = @pIntezmenyId
)

View file

@ -0,0 +1,166 @@
DROP FUNCTION IF EXISTS dbo.fnGetDokumentumKapcsolodoOsztalyCsoportokByDateRange
GO
CREATE FUNCTION dbo.fnGetDokumentumKapcsolodoOsztalyCsoportokByDateRange (
@pOsztalyCsoportId int
,@pStartDate datetime
,@pEndDate datetime
,@pIntezmenyId int
,@pTanevId int
)
RETURNS @Result TABLE (
Id int primary key NOT NULL
,Kezdete datetime NOT NULL
,Vege datetime NOT NULL
) AS
BEGIN
DECLARE
@tanevStart datetime
,@tanevEnd datetime
,@osztalyId int
DECLARE @kategoriaId int = (SELECT C_FELADATKATEGORIAID FROM T_OSZTALYCSOPORT_OSSZES WHERE ID = @pOsztalyCsoportId)
IF EXISTS (SELECT 1 FROM T_OSZTALY_OSSZES WHERE ID = @pOsztalyCsoportId) BEGIN
INSERT INTO @Result (Id, Kezdete, Vege) /* maga az osztály */
SELECT
o.Id
,@pStartDate
,@pEndDate
FROM T_OSZTALY_OSSZES o
WHERE o.ID = @pOsztalyCsoportId
AND o.C_ALTANEVID = @pTanevID
AND o.C_ALINTEZMENYID = @pIntezmenyId
AND o.TOROLT = 'F'
UNION ALL
SELECT /* Az osztály bontott csoportjai */
cs.ID
,@pStartDate
,@pEndDate
FROM T_CSOPORT_OSSZES cs
WHERE C_OSZTALYBONTASID = @pOsztalyCsoportId
AND cs.TOROLT = 'F'
AND cs.C_ALTANEVID = @pTanevID
AND cs.C_ALINTEZMENYID = @pIntezmenyId
INSERT INTO @Result (Id, Kezdete, Vege) /* Az osztály tanulóinak más csoportjai */
SELECT
tcs.C_OSZTALYCSOPORTID AS Id
,CASE
WHEN MIN(tcs.C_BELEPESDATUM) > MIN(oszt.C_BELEPESDATUM) AND MIN(tcs.C_BELEPESDATUM) > @pStartDate THEN MIN(tcs.C_BELEPESDATUM)
WHEN MIN(oszt.C_BELEPESDATUM) > MIN(tcs.C_BELEPESDATUM) AND MIN(oszt.C_BELEPESDATUM) > @pStartDate THEN MIN(oszt.C_BELEPESDATUM)
ELSE @pStartDate
END AS Kezdete -- A három közül a legnagyobb
,CASE
WHEN MAX(ISNULL(tcs.C_KILEPESDATUM, @pEndDate)) < MAX(ISNULL(oszt.C_KILEPESDATUM, @pEndDate)) AND MAX(ISNULL(tcs.C_KILEPESDATUM, @pEndDate)) < @pEndDate THEN MAX(ISNULL(tcs.C_KILEPESDATUM, @pEndDate))
WHEN MAX(ISNULL(oszt.C_KILEPESDATUM, @pEndDate)) < MAX(ISNULL(tcs.C_KILEPESDATUM, @pEndDate)) AND MAX(ISNULL(oszt.C_KILEPESDATUM, @pEndDate)) < @pEndDate THEN MAX(ISNULL(oszt.C_KILEPESDATUM, @pEndDate))
ELSE @pEndDate -- A három közül a legkisebb
END AS Vege
FROM T_TANULOCSOPORT_OSSZES tcs
INNER JOIN T_TANULOCSOPORT_OSSZES oszt
ON oszt.C_TANULOID = tcs.C_TANULOID
AND oszt.C_OSZTALYCSOPORTID = @pOsztalyCsoportId
AND oszt.C_BELEPESDATUM <= @pEndDate
AND (oszt.C_KILEPESDATUM > @pStartDate OR oszt.C_KILEPESDATUM IS NULL)
-- Csak azok a tanulócsoportok kellenek, amiknek tagja az adott osztályban tartózkodáskor
AND oszt.C_BELEPESDATUM <= ISNULL(tcs.C_KILEPESDATUM, @pEndDate) AND ISNULL(oszt.C_KILEPESDATUM, @pEndDate) > tcs.C_BELEPESDATUM
INNER JOIN T_CSOPORT_OSSZES cs ON cs.ID = tcs.C_OSZTALYCSOPORTID AND cs.C_OSZTALYBONTASID IS NULL
INNER JOIN T_OSZTALYCSOPORT_OSSZES ocs ON ocs.ID = cs.ID AND ocs.TOROLT = 'F' AND ocs.C_FELADATKATEGORIAID = @kategoriaId
WHERE tcs.TOROLT = 'F'
AND oszt.TOROLT = 'F'
AND tcs.C_TANEVID = @pTanevId
AND tcs.C_INTEZMENYID = @pIntezmenyId
AND tcs.C_BELEPESDATUM <= @pEndDate
AND (tcs.C_KILEPESDATUM > @pStartDate OR tcs.C_KILEPESDATUM IS NULL)
AND NOT EXISTS (SELECT 1 FROM @Result r WHERE r.ID = tcs.C_OSZTALYCSOPORTID)
GROUP BY tcs.C_OSZTALYCSOPORTID
END
IF EXISTS (SELECT 1 FROM T_CSOPORT_OSSZES WHERE ID = @pOsztalyCsoportId AND C_OSZTALYBONTASID IS NOT NULL AND TOROLT = 'F') BEGIN
SELECT @osztalyId = C_OSZTALYBONTASID FROM T_CSOPORT_OSSZES WHERE ID = @pOsztalyCsoportId
INSERT INTO @Result (Id, Kezdete, Vege) /* Az osztály, amelyiknek a bontása */
SELECT
@osztalyId
,@pStartDate
,@pEndDate
UNION ALL
SELECT /* Maga a csoport */
@pOsztalyCsoportId
,@pStartDate
,@pEndDate
INSERT INTO @Result (Id, Kezdete, Vege) /* Az csoport tanulóinak más csoportjai */
SELECT
tcs.C_OSZTALYCSOPORTID AS Id
,CASE
WHEN MIN(tcs.C_BELEPESDATUM) > MIN(csop.C_BELEPESDATUM) AND MIN(tcs.C_BELEPESDATUM) > @pStartDate THEN MIN(tcs.C_BELEPESDATUM)
WHEN MIN(csop.C_BELEPESDATUM) > MIN(tcs.C_BELEPESDATUM) AND MIN(csop.C_BELEPESDATUM) > @pStartDate THEN MIN(csop.C_BELEPESDATUM)
ELSE @pStartDate
END AS Kezdete -- A három közül a legnagyobb
,CASE
WHEN MAX(ISNULL(tcs.C_KILEPESDATUM, @pEndDate)) < MAX(ISNULL(csop.C_KILEPESDATUM, @pEndDate)) AND MAX(ISNULL(tcs.C_KILEPESDATUM, @pEndDate)) < @pEndDate THEN MAX(ISNULL(tcs.C_KILEPESDATUM, @pEndDate))
WHEN MAX(ISNULL(csop.C_KILEPESDATUM, @pEndDate)) < MAX(ISNULL(tcs.C_KILEPESDATUM, @pEndDate)) AND MAX(ISNULL(csop.C_KILEPESDATUM, @pEndDate)) < @pEndDate THEN MAX(ISNULL(csop.C_KILEPESDATUM, @pEndDate))
ELSE @pEndDate
END AS Vege -- A három közül a legkisebb
FROM T_TANULOCSOPORT_OSSZES tcs
INNER JOIN T_TANULOCSOPORT_OSSZES csop
ON tcs.C_TANULOID = csop.C_TANULOID
AND csop.C_OSZTALYCSOPORTID = @pOsztalyCsoportId
AND csop.C_BELEPESDATUM <= @pEndDate
AND (csop.C_KILEPESDATUM > @pStartDate OR csop.C_KILEPESDATUM IS NULL)
AND csop.TOROLT = 'F'
INNER JOIN T_CSOPORT_OSSZES cs
ON cs.ID = tcs.C_OSZTALYCSOPORTID
AND (cs.C_OSZTALYBONTASID IS NULL OR cs.C_OSZTALYBONTASID = @osztalyId)
INNER JOIN T_OSZTALYCSOPORT_OSSZES ocs ON ocs.ID = cs.ID AND ocs.TOROLT='F' AND ocs.C_FELADATKATEGORIAID = @kategoriaId
WHERE tcs.C_OSZTALYCSOPORTID <> @pOsztalyCsoportId
AND tcs.C_TANEVID = @pTanevId
AND tcs.C_INTEZMENYID = @pIntezmenyId
AND tcs.C_BELEPESDATUM <= @pEndDate
AND (tcs.C_KILEPESDATUM > @pStartDate OR tcs.C_KILEPESDATUM IS NULL)
AND tcs.TOROLT = 'F' AND csop.TOROLT = 'F'
GROUP BY tcs.C_OSZTALYCSOPORTID
END
IF EXISTS (SELECT 1 FROM T_CSOPORT_OSSZES WHERE ID = @pOsztalyCsoportId AND C_OSZTALYBONTASID IS NULL AND TOROLT = 'F') BEGIN
INSERT INTO @Result (Id, Kezdete, Vege) /* Az csoport tanulóinak más csoportjai */
SELECT
tcs.C_OSZTALYCSOPORTID AS Id
,CASE
WHEN MIN(tcs.C_BELEPESDATUM) > MIN(csop.C_BELEPESDATUM) AND MIN(tcs.C_BELEPESDATUM) > @pStartDate THEN MIN(tcs.C_BELEPESDATUM)
WHEN MIN(csop.C_BELEPESDATUM) > MIN(tcs.C_BELEPESDATUM) AND MIN(csop.C_BELEPESDATUM) > @pStartDate THEN MIN(csop.C_BELEPESDATUM)
ELSE @pStartDate
END AS Kezdete -- A három közül a legnagyobb
,CASE
WHEN MAX(ISNULL(tcs.C_KILEPESDATUM, @pEndDate)) < MAX(ISNULL(csop.C_KILEPESDATUM, @pEndDate)) AND MAX(ISNULL(tcs.C_KILEPESDATUM, @pEndDate)) < @pEndDate THEN MAX(ISNULL(tcs.C_KILEPESDATUM, @pEndDate))
WHEN MAX(ISNULL(csop.C_KILEPESDATUM, @pEndDate)) < MAX(ISNULL(tcs.C_KILEPESDATUM, @pEndDate)) AND MAX(ISNULL(csop.C_KILEPESDATUM, @pEndDate)) < @pEndDate THEN MAX(ISNULL(csop.C_KILEPESDATUM, @pEndDate))
ELSE @pEndDate
END AS Vege -- A három közül a legkisebb
FROM T_TANULOCSOPORT_OSSZES tcs
INNER JOIN T_TANULOCSOPORT_OSSZES csop
ON tcs.C_TANULOID = csop.C_TANULOID
AND csop.C_OSZTALYCSOPORTID = @pOsztalyCsoportId
AND csop.C_BELEPESDATUM <= @pEndDate
AND (csop.C_KILEPESDATUM > @pStartDate OR csop.C_KILEPESDATUM IS NULL)
AND csop.TOROLT = 'F'
AND csop.C_BELEPESDATUM <= ISNULL(tcs.C_KILEPESDATUM, @pEndDate) AND ISNULL(csop.C_KILEPESDATUM, @pEndDate) > tcs.C_BELEPESDATUM
INNER JOIN T_OSZTALYCSOPORT_OSSZES ocs ON ocs.ID = tcs.C_OSZTALYCSOPORTID AND ocs.TOROLT='F' AND ocs.C_FELADATKATEGORIAID = @kategoriaId
WHERE tcs.C_TANEVID = @pTanevId
AND tcs.C_INTEZMENYID = @pIntezmenyId
AND tcs.C_BELEPESDATUM <= @pEndDate
AND (tcs.C_KILEPESDATUM > @pStartDate OR tcs.C_KILEPESDATUM IS NULL)
AND tcs.TOROLT = 'F' AND csop.TOROLT = 'F'
GROUP BY tcs.C_OSZTALYCSOPORTID
END
RETURN
END
GO

View file

@ -0,0 +1,61 @@
DROP FUNCTION IF EXISTS fnGetDokumentumKapcsolodoOsztalycsoportok
GO
CREATE FUNCTION fnGetDokumentumKapcsolodoOsztalycsoportok (@osztalyCsoportId int, @ptanevId int, @csakTanoraiCelu INT= 1, @kapcsolodoCsoportokSzureseOsztalyBesorolasra INT = 0)
RETURNS @ocs TABLE (ID int)
AS BEGIN
DECLARE @kategoriaId int = (SELECT C_FELADATKATEGORIAID FROM T_OSZTALYCSOPORT_OSSZES WHERE ID = @osztalyCsoportId)
INSERT INTO @ocs
SELECT @osztalyCsoportId AS ID
UNION
SELECT cs.ID
FROM T_CSOPORT_OSSZES cs
INNER JOIN T_CSOPORTTIPUS_OSSZES cst ON cs.C_TIPUSA = cst.ID AND cs.C_ALTANEVID = cst.C_ALTANEVID
WHERE C_OSZTALYBONTASID = @osztalyCsoportId
AND (@csakTanoraiCelu = 0 OR C_ISTANORAICELU = 'T')
UNION
SELECT tcs.C_OSZTALYCSOPORTID
FROM T_TANULOCSOPORT_OSSZES tcs
INNER JOIN T_CSOPORT_OSSZES cs ON cs.ID = tcs.C_OSZTALYCSOPORTID AND (cs.C_OSZTALYBONTASID IS NULL OR cs.C_OSZTALYBONTASID = @osztalyCsoportId)
INNER JOIN T_CSOPORTTIPUS_OSSZES cst ON cs.C_TIPUSA = cst.ID AND cs.C_ALTANEVID = cst.C_ALTANEVID
INNER JOIN (
SELECT DISTINCT x.C_TANULOID, x.C_BELEPESDATUM, x.C_KILEPESDATUM
FROM T_TANULOCSOPORT_OSSZES x
INNER JOIN T_OSZTALYCSOPORT_OSSZES ON T_OSZTALYCSOPORT_OSSZES.ID = x.C_OSZTALYCSOPORTID
INNER JOIN T_TANEV_OSSZES ON T_TANEV_OSSZES.ID = T_OSZTALYCSOPORT_OSSZES.C_TANEVID
WHERE x.C_OSZTALYCSOPORTID = @osztalyCsoportId AND x.TOROLT = 'F' AND (x.C_KILEPESDATUM > T_TANEV_OSSZES.C_KEZDONAP OR x.C_KILEPESDATUM IS NULL)
) OSZTALY_TANULO ON OSZTALY_TANULO.C_TANULOID = tcs.C_TANULOID
AND (tcs.C_KILEPESDATUM IS NULL OR tcs.C_KILEPESDATUM > OSZTALY_TANULO.C_BELEPESDATUM)
AND (OSZTALY_TANULO.C_KILEPESDATUM IS NULL OR tcs.C_BELEPESDATUM <= OSZTALY_TANULO.C_KILEPESDATUM)
INNER JOIN T_OSZTALYCSOPORT_OSSZES ocs ON ocs.ID = tcs.C_OSZTALYCSOPORTID AND ocs.C_FELADATKATEGORIAID = @kategoriaId
WHERE tcs.C_OSZTALYCSOPORTID <> @osztalyCsoportId AND tcs.TOROLT = 'F'
AND (@csakTanoraiCelu = 0 OR C_ISTANORAICELU = 'T')
AND (@kapcsolodoCsoportokSzureseOsztalyBesorolasra = 0 OR (OSZTALY_TANULO.C_KILEPESDATUM IS NULL OR OSZTALY_TANULO.C_KILEPESDATUM >= tcs.C_KILEPESDATUM))
UNION
SELECT C_OSZTALYBONTASID AS ID
FROM T_CSOPORT_OSSZES cs
INNER JOIN T_CSOPORTTIPUS_OSSZES cst ON cs.C_TIPUSA = cst.ID AND cs.C_ALTANEVID = cst.C_ALTANEVID
WHERE cs.ID = @osztalyCsoportId
AND C_OSZTALYBONTASID IS NOT NULL
AND (@csakTanoraiCelu = 0 OR C_ISTANORAICELU = 'T')
UNION
SELECT cs.ID
FROM T_CSOPORT_OSSZES cs
INNER JOIN T_CSOPORTTIPUS_OSSZES cst ON cs.C_TIPUSA = cst.ID AND cs.C_ALTANEVID = cst.C_ALTANEVID
WHERE C_OSZTALYBONTASID IN (SELECT C_OSZTALYBONTASID FROM T_CSOPORT_OSSZES WHERE ID = @osztalyCsoportId)
AND (@csakTanoraiCelu = 0 OR C_ISTANORAICELU = 'T')
RETURN
END
GO

View file

@ -0,0 +1,57 @@
DROP FUNCTION IF EXISTS fnGetDokumentumKozossegiSzolgalatOsztalyonkent
GO
CREATE FUNCTION fnGetDokumentumKozossegiSzolgalatOsztalyonkent (@tanevId int, @osztalyId int, @idegenNyelvId int)
RETURNS TABLE
RETURN (
SELECT
tk.ID AS KozossegiSzolgalatId
,tk.C_TANEVID AS KozossegiSzolgalatTanevId
,currentTanulo.TanuloNev AS TanuloNev
,currentTanulo.TanuloId AS TanuloId
,currentTanulo.TanuloCsoportId AS TanuloCsoportId
,currentTanulo.OktatasiAzonosito AS TanuloOktAzon
,FORMAT(C_INTERVALLUMKEZDETE, 'yyyy. MM. dd') + ' -' + char(13) + char(10) + FORMAT(C_INTERVALLUMVEGE, 'yyyy. MM. dd') AS Datum
,tk.C_MEGJEGYZES AS Megjegyzes
,tkny.C_MEGJEGYZES AS MegjegyzesIdegenNyelven
,tk.C_ORASZAM AS Oraszam
,tk.C_TELJESITESIHELYE AS TeljesitesHelye
,feljegyzo.C_NYOMTATASINEV AS FeljegyzoNeve
,tipus.C_NAME AS Tipus
,tk.C_INTERVALLUMKEZDETE AS IntervallumKezdete
,tk.C_INTERVALLUMVEGE AS IntervallumVege
,tipusNy.C_NAME AS TipusIdegenNyelven
,tkny.C_TELJESITESIHELYE AS TeljesitesHelyeIdegenNyelven
,feljegyzo.C_ELOTAG AS FeljegyzoNevElotag
,feljegyzo.C_VEZETEKNEV AS FeljegyzoNevVezeteknev
,feljegyzo.C_UTONEV AS FeljegyzoNevUtonev
FROM T_FELHASZNALO_OSSZES tanulo
INNER JOIN (
SELECT
f.C_OKTATASIAZONOSITO as OktatasiAzonosito
,f.ID as TanuloId
,f.C_NYOMTATASINEV as TanuloNev
,tanulocsoport.ID as TanuloCsoportId
,CASE WHEN (SELECT C_AKTIV FROM T_TANEV_OSSZES WHERE ID = tanulocsoport.C_TANEVID AND TOROLT = 'F') = 'T'
THEN 1
ELSE (SELECT C_SORSZAM FROM T_TANEV_OSSZES WHERE ID = tanulocsoport.C_TANEVID AND TOROLT = 'F')
END as IsAktivTanevOrTanevSorszama
FROM T_FELHASZNALO_OSSZES f
CROSS APPLY (
SELECT TOP 1
ID
,C_TANEVID
FROM T_TANULOCSOPORT_OSSZES subTanuloCsoport
WHERE subTanuloCsoport.TOROLT = 'F' AND subTanuloCsoport.C_OSZTALYCSOPORTID = @osztalyId AND subTanuloCsoport.C_TANULOID = f.ID
ORDER BY ISNULL(subTanuloCsoport.C_KILEPESDATUM, '22000101') DESC
) tanulocsoport
WHERE f.TOROLT = 'F'
) currentTanulo ON tanulo.C_OKTATASIAZONOSITO = currentTanulo.OktatasiAzonosito
INNER JOIN T_TANULOKOZOSSEGISZOLGALAT_OSSZES tk ON tk.C_TANULOID = Tanulo.ID AND tk.TOROLT = 'F'
AND (currentTanulo.IsAktivTanevOrTanevSorszama = 1 OR tk.C_TANEVID IN (SELECT ID FROM T_TANEV_OSSZES WHERE C_SORSZAM <= IsAktivTanevOrTanevSorszama AND C_INTEZMENYID = tk.C_INTEZMENYID AND TOROLT = 'F'))
LEFT JOIN T_TANULOKOZOSSEGISZOLGALATNYEL_OSSZES tkny ON tkny.C_TANULOKOZOSSEGISZOLGALATID = tk.ID AND tkny.C_NYELVID = @idegenNyelvId AND tkny.TOROLT = 'F' AND tkny.C_TANEVID = @tanevId
LEFT JOIN T_FELHASZNALO_OSSZES feljegyzo ON feljegyzo.ID = tk.C_FELJEGYZOID AND feljegyzo.TOROLT = 'F'
LEFT JOIN T_DICTIONARYITEMBASE_OSSZES tipus ON tipus.Id = tk.C_KOZOSSEGISZOLGALATTIPUSA AND tipus.C_TANEVID = tk.C_TANEVID
LEFT JOIN T_DICTIONARYITEMBASENYELV_OSSZES tipusNy ON tipusNy.ID = tk.C_KOZOSSEGISZOLGALATTIPUSA AND tipusNy.C_NYELVID = @idegenNyelvId AND tipusNy.C_TANEVID = @tanevId AND tipusNy.TOROLT = 'F'
WHERE tanulo.TOROLT = 'F'
)

View file

@ -0,0 +1,46 @@
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
IF OBJECT_ID('fnGetDokumentumMegtartottOrak') IS NOT NULL
BEGIN
DROP FUNCTION fnGetDokumentumMegtartottOrak
END
GO
CREATE FUNCTION fnGetDokumentumMegtartottOrak (@pOsztalyCsoportId INT, @pTanevId INT)
RETURNS TABLE
RETURN (
SELECT
tao.Id TanitasioraId
,tao.C_DATUM Datum
,tao.C_ORASZAM Oraszam
,pedagogus.ID PedagogusId
,IIF(C_MEGTARTOTT = 'T', pedagogus.C_NYOMTATASINEV, '-') PedagogusNev
,IIF(C_MEGTARTOTT = 'T', REPLACE(REPLACE(REPLACE(C_TEMA, CHAR(0x0007),''), CHAR(0x000B), ''), CHAR(0x0002), ''), 'Elmaradt')
+ IIF(C_HELYETTESITESTIPUSA = 1496, ' (Óraösszevonás: ' + helyettesito.C_NYOMTATASINEV +')', '')
+ IIF(C_HELYETTESITESTIPUSA IN (1494, 1495), '(Helyettesitve: ' + helyettesito.C_NYOMTATASINEV +') ', '' ) Tema
,tao.C_HETNAPJA HetNapja
,nh.C_HETSORSZAMA HetSorszama
,C_MEGTARTOTT Megtartott
,tao.C_TANTARGYID TantargyId
,IIF(tantargy.C_NEV <> C_NEVNYOMTATVANYBAN AND C_NEVNYOMTATVANYBAN IS NOT NULL, C_NEVNYOMTATVANYBAN + ' (' + tantargy.C_NEV + ')', tantargy.C_NEV) Tantargynev
,tao.C_OSZTALYCSOPORTID OsztalyCsoportId
,C_NAPSORSZAMA NapSorszama
,IIF(tantargy.C_NEV <> C_NEVNYOMTATVANYBAN AND C_NEVNYOMTATVANYBAN IS NOT NULL,
IIF(LEN(C_NEVNYOMTATVANYBAN) + LEN(tantargy.C_NEV) < 90,
C_NEVNYOMTATVANYBAN + ' (' + tantargy.C_NEV + ')',
C_NEVNYOMTATVANYBAN), tantargy.C_NEV) + '-' + CHAR(13) + CHAR(10)
+ IIF(C_MEGTARTOTT = 'T', REPLACE(REPLACE(ISNULL(pedagogus.C_NYOMTATASINEV, ''), '[', ''), ']', ''), 'Elmaradt') TantargyPedagogussal
FROM T_TANITASIORA_OSSZES tao
LEFT JOIN T_FELHASZNALO_OSSZES pedagogus ON pedagogus.Id = tao.C_TANARID
LEFT JOIN T_FELHASZNALO_OSSZES helyettesito ON helyettesito.Id = tao.C_HELYETTESITOTANARID
INNER JOIN T_TANTARGY_OSSZES tantargy ON tantargy.Id = tao.C_TANTARGYID
INNER JOIN T_NAPTARIHET_OSSZES nh ON tao.C_DATUM BETWEEN nh.C_HETKEZDONAPJA AND nh.C_HETUTOLSONAPJA AND nh.C_TANEVID = @pTanevId AND nh.TOROLT='F'
WHERE
tao.C_OSZTALYCSOPORTID IN (SELECT ID FROM fnGetDokumentumKapcsolodoOsztalycsoportok(@pOsztalyCsoportId, @pTanevId, DEFAULT, DEFAULT))
AND tao.TOROLT = 'F'
)
GO

View file

@ -0,0 +1,135 @@
DROP FUNCTION IF EXISTS fnGetDokumentumMulasztasokOsztalyonkentReszletes
GO
CREATE FUNCTION fnGetDokumentumMulasztasokOsztalyonkentReszletes (
@tanevId int
,@osztalyCsoportId int
,@iskolaErdekuSzamit bit
,@csakKivlasztottOsztalyCsoport bit = 0
,@atsoroltTanuloMulasztas bit = 1
,@idoszakEleje date = NULL
,@idoszakVege date = NULL
,@csakTanoraiCelu int = 1
)
RETURNS @result TABLE (
TanuloId int
,TanuloCsoportId int
,OsztalyCsoportId int
,OsztalyCsoportNev nvarchar (255)
,Tipusa int
,Igazolt char (1)
,IgazolasTipusa int
,KesesPercben int null
,Datum datetime
,Oraszam nvarchar (255)
,OraszamWithOrakezdeteVege nvarchar (255)
,TantargyId int
,TantargyNev nvarchar (255)
,HetSorszama int
,Gyakorlati char(1)
,Tanorai char(1)
,RENDEZ0 int
,RENDEZ1 int
,RENDEZ2 nvarchar(255)
,RENDEZ3 int
,RENDEZ4 int
,RENDEZ5 nvarchar(255)
)
AS BEGIN
DECLARE @kategoriaId int = (SELECT C_FELADATKATEGORIAID FROM T_OSZTALYCSOPORT_OSSZES WHERE ID = @osztalyCsoportId)
DECLARE @defaultCsengetesiRendId int
DECLARE @tanoraiCsoportok TABLE(
OsztalyCsoportId int
)
SELECT @defaultCsengetesiRendId = ID
FROM T_CSENGETESIREND_OSSZES csr
WHERE csr.TOROLT='F'
AND csr.C_AKTIV = 'T'
AND csr.C_TANEVID = @tanevId
IF @kategoriaId <> 7555 -- NEM AMI-s osztályoknál
BEGIN
INSERT INTO @tanoraiCsoportok(OsztalyCsoportId)
SELECT
ID
FROM fnGetDokumentumOsztalyVagyTanoraiCsoport(@tanevId)
END
ELSE
BEGIN
-- AMI törzslapoknál ezekhez az osztálycsoportokhoz szedjük össze a mulasztásokat
INSERT INTO @tanoraiCsoportok(OsztalyCsoportId)
SELECT ID
FROM fnGetDokumentumKapcsolodoOsztalycsoportok(@osztalyCsoportId, @tanevId, 0, DEFAULT)
END
INSERT INTO @result
SELECT
tm.C_ORATANULOIID AS TanuloId
,tcs2.ID AS TanuloCsoportId
,tao.C_OSZTALYCSOPORTID AS OsztalyCsoportId
,ocs.C_NEV AS OsztalyCsoportNev
,tm.C_TIPUS AS Tipusa
,tm.C_IGAZOLT AS Igazolt
,tm.C_IGAZOLASTIPUSA AS IgazolasTipusa
,tm.C_KESESPERCBEN AS KesesPercben
,tao.C_DATUM AS Datum
,IIF(tao.C_CSENGETESIRENDORAID IS NULL,
(SELECT
ISNULL(MAX(csro.C_ORASZAM), 0)
FROM T_CSENGETESIRENDORA_OSSZES csro
WHERE csro.TOROLT = 'F'
AND csro.C_CSENGETESIRENDID = @defaultCsengetesiRendId
AND CONVERT(nvarchar(5), C_KEZDETE, 108) <= CONVERT(nvarchar(5), C_ORAKEZDETE, 108)
),tao.C_ORASZAM) as Oraszam
,IIF(tao.C_CSENGETESIRENDORAID IS NULL, CONCAT(CONVERT(nvarchar(5), tao.C_ORAKEZDETE, 108), '-',
CONVERT(nvarchar(5), tao.C_ORAVEGE, 108)), CAST(tao.C_ORASZAM AS nvarchar(5))) AS OraszamWithOrakezdeteVege
,tao.C_TANTARGYID AS TantargyId
,ISNULL(tgy.C_NEVNYOMTATVANYBAN, tgy.C_NEV) AS TantargyNev
,tao.C_HETSORSZAMA AS HetSorszama
,tgy.C_GYAKORLATI AS Gyakorlati
,IIF(tanorai.OsztalyCsoportId IS NULL, 'F', 'T') AS Tanorai
,tgy.C_SORSZAM AS RENDEZ0
,IIF(tgy.C_FOTARGYID IS NULL,ISNULL(dibtgykat.C_ORDER, 10000),ISNULL(dibftgykat.C_ORDER, 10000)) AS RENDEZ1
,COALESCE(ftgy.C_NEVNYOMTATVANYBAN, ftgy.C_NEV, tgy.C_NEV) AS RENDEZ2
,ISNULL(tgy.C_FOTARGYID, tgy.ID) AS RENDEZ3
,tgy.C_FOTARGYID AS RENDEZ4
,ISNULL(tgy.C_NEVNYOMTATVANYBAN, tgy.C_NEV) AS RENDEZ5
FROM T_TANULOMULASZTAS_OSSZES tm
INNER JOIN T_TANITASIORA_OSSZES tao ON tao.ID = tm.C_TANITASIORAKID
AND tao.TOROLT='F'
INNER JOIN T_TANULOCSOPORT_OSSZES tcs ON tcs.C_TANULOID = tm.C_ORATANULOIID
AND tcs.TOROLT = 'F'
AND tao.C_DATUM >= tcs.C_BELEPESDATUM
AND tao.C_DATUM <= ISNULL(tcs.C_KILEPESDATUM, GETDATE())
AND tcs.C_OSZTALYCSOPORTID= tao.C_OSZTALYCSOPORTID
INNER JOIN T_TANULOCSOPORT_OSSZES tcs2 ON tcs2.C_TANULOID = tm.C_ORATANULOIID
AND tcs2.TOROLT = 'F'
AND tao.C_DATUM >= tcs2.C_BELEPESDATUM
AND tao.C_DATUM < ISNULL(tcs2.C_KILEPESDATUM, GETDATE())
AND tcs2.C_OSZTALYCSOPORTID= @osztalyCsoportId
INNER JOIN T_OSZTALYCSOPORT_OSSZES ocs ON ocs.ID = tao.C_OSZTALYCSOPORTID
AND ocs.C_FELADATKATEGORIAID = @kategoriaId
INNER JOIN T_TANTARGY_OSSZES tgy ON tgy.ID = tao.C_TANTARGYID
LEFT JOIN T_DICTIONARYITEMBASE_OSSZES dibtgykat ON dibtgykat.Id = tgy.C_TARGYKATEGORIA
AND dibtgykat.TOROLT = 'F'
AND dibtgykat.C_TANEVID = @tanevId
LEFT JOIN T_TANTARGY_OSSZES ftgy ON tgy.C_FOTARGYID = ftgy.ID
LEFT JOIN T_DICTIONARYITEMBASE_OSSZES dibftgykat ON dibftgykat.ID = ftgy.C_TARGYKATEGORIA
AND dibftgykat.TOROLT = 'F'
AND dibftgykat.C_TANEVID = ftgy.C_TANEVID
LEFT JOIN @tanoraiCsoportok tanorai ON tanorai.OsztalyCsoportId = ocs.ID
WHERE tm.C_TIPUS BETWEEN 1499 AND 1500
AND tm.TOROLT = 'F'
AND (@csakTanoraiCelu = 0 OR tanorai.OsztalyCsoportId IS NOT NULL)
AND (@iskolaErdekuSzamit = 1 OR (tm.C_IGAZOLASTIPUSA IS NULL OR tm.C_IGAZOLASTIPUSA <> 1533))
AND (@atsoroltTanuloMulasztas = 1 OR (tao.C_OSZTALYCSOPORTID IN (SELECT ID FROM fnGetDokumentumKapcsolodoOsztalycsoportok(@osztalyCsoportId, @tanevId, @csakTanoraiCelu, DEFAULT))))
AND (@csakKivlasztottOsztalyCsoport = 0 OR tao.C_OSZTALYCSOPORTID = @osztalyCsoportId)
AND (@idoszakEleje IS NULL OR tao.C_DATUM >= @idoszakEleje)
AND (@idoszakVege IS NULL OR tao.C_DATUM <= @idoszakVege)
RETURN
END
GO

View file

@ -0,0 +1,27 @@
IF OBJECT_ID('dbo.fnGetDokumentumOrakezdetToOraszam') IS NOT NULL BEGIN
DROP FUNCTION dbo.fnGetDokumentumOrakezdetToOraszam
END
GO
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
CREATE FUNCTION dbo.fnGetDokumentumOrakezdetToOraszam (@oraKezdete VARCHAR(5), @tanevId INT)
RETURNS INT
BEGIN
DECLARE @value INT
SELECT
@value = ISNULL(MAX(C_ORASZAM), 0)
FROM T_CSENGETESIRENDORA_OSSZES CsengetesiRendOra
INNER JOIN T_CSENGETESIREND_OSSZES CsengetesiRend ON CsengetesiRend.Id = CsengetesiRendOra.C_CSENGETESIRENDID
WHERE
CsengetesiRendOra.C_TANEVID = @tanevId
AND CsengetesiRendOra.TOROLT = 'F'
AND CsengetesiRend.TOROLT = 'F'
AND CsengetesiRend.C_AKTIV = 'T'
AND CONVERT(VARCHAR(5), C_KEZDETE, 108) <= @oraKezdete
RETURN @value
END

View file

@ -0,0 +1,28 @@
IF OBJECT_ID('fnGetDokumentumOsszefuggoSzakmaiGyakorlat') IS NOT NULL BEGIN
DROP FUNCTION fnGetDokumentumOsszefuggoSzakmaiGyakorlat
END
GO
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
CREATE FUNCTION fnGetDokumentumOsszefuggoSzakmaiGyakorlat(@tanevId INT, @osztalyId INT)
RETURNS TABLE
RETURN (
SELECT
Tanulok.TanuloId TanuloId
,Tanulok.TanuloCsoportId TanuloCsoportId
,C_TELJESITETT isTeljesitett
,ISNULL(Ertekeles.C_ERTEKELESSZOVEG, Osztalyzat.C_VALUE) Ertekeles
,'[' + C_MEGJEGYZES + ']' Megjegyzes
,dbo.fnGetDokumentumDatumFormatum(OsszefuggoSzakGyak.C_TELJESITESDATUM) Datum
FROM fnGetDokumentumOsztalyokCsoportokTanuloi (@tanevid, @osztalyid, 'T') Tanulok
INNER JOIN T_OSSZEFUGGOSZAKGYAK_OSSZES OsszefuggoSzakGyak ON OsszefuggoSzakGyak.C_TANULOID = Tanulok.TanuloId AND OsszefuggoSzakGyak.TOROLT = 'F' AND OsszefuggoSzakGyak.C_TANEVID = @tanevid
LEFT JOIN T_TANULOERTEKELES_OSSZES Ertekeles ON Ertekeles.C_OSSZEFUGGOSZAKGYAKID = OsszefuggoSzakGyak.ID AND Ertekeles.TOROLT = 'F' AND Ertekeles.C_TANEVID = @tanevid
LEFT JOIN T_DICTIONARYITEMBASE_OSSZES Osztalyzat ON Osztalyzat.ID = Ertekeles.C_ERTEKELESOSZTALYZATID AND Osztalyzat.C_TANEVID = @tanevid
WHERE
Tanulok.BelepesDatum <= OsszefuggoSzakGyak.C_TELJESITESDATUM
AND (Tanulok.KilepesDatum >= OsszefuggoSzakGyak.C_TELJESITESDATUM OR Tanulok.KilepesDatum IS NULL)
)

View file

@ -0,0 +1,35 @@
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
IF OBJECT_ID('fnGetDokumentumOsztalyMegtartottOrakSzama') IS NOT NULL
BEGIN
DROP FUNCTION fnGetDokumentumOsztalyMegtartottOrakSzama
END
GO
CREATE FUNCTION fnGetDokumentumOsztalyMegtartottOrakSzama (@tanevId INT, @osztalyId INT)
RETURNS TABLE
RETURN (
SELECT
naptariNap.C_NAPDATUMA AS Datum
,Oraszam.Orakszama AS OrakSzama
FROM T_NAPTARINAP_OSSZES naptariNap
LEFT JOIN (
SELECT
COUNT(DISTINCT C_ORAKEZDETE) AS Orakszama
,C_DATUM AS Datum
FROM T_TANITASIORA_OSSZES
WHERE
C_OSZTALYCSOPORTID IN (SELECT ID FROM fnGetDokumentumKapcsolodoOsztalycsoportok(@osztalyId, @tanevId, DEFAULT, DEFAULT))
AND TOROLT = 'F'
AND C_MEGTARTOTT = 'T'
GROUP BY C_DATUM
) AS Oraszam ON Oraszam.Datum = naptariNap.C_NAPDATUMA
WHERE
C_TANEVID = @tanevId
AND naptariNap.TOROLT = 'F'
)
GO

View file

@ -0,0 +1,21 @@
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
IF OBJECT_ID('fnGetDokumentumOsztalyTanuloinakMegtarthatoOrakTantargyankent') IS NOT NULL
BEGIN
DROP FUNCTION fnGetDokumentumOsztalyTanuloinakMegtarthatoOrakTantargyankent
END
GO
CREATE FUNCTION fnGetDokumentumOsztalyTanuloinakMegtarthatoOrakTantargyankent (@tanevId INT, @osztalyCsoportId INT, @atsoroltTanuloOrak BIT = 1, @tanitasiHetekSzamaVegzos INT, @tanitasiHetekSzamaNemVegzos INT, @isAltantargyBeszamitasa BIT)
RETURNS TABLE
RETURN (
SELECT Megtarthato.Oraszam AS Orakszama, Megtarthato.TanuloId, Megtarthato.TantargyId,
ISNULL(TANTARGY.C_NEVNYOMTATVANYBAN, TANTARGY.C_NEV) AS TantargyNev, C_FOTARGYE AS Fotargye, C_ALTANTARGYKENTNYOMTATVANYBAN AS Altargye, C_GYAKORLATI AS Gyakorlati
FROM fnGetDokumentumTanulokEvesOraszamaiOsztalyonkent (@tanevId, @osztalyCsoportId, @tanitasiHetekSzamaVegzos, @tanitasiHetekSzamaNemVegzos, @isAltantargyBeszamitasa) AS Megtarthato
INNER JOIN T_TANTARGY_OSSZES AS TANTARGY ON TANTARGY.ID = Megtarthato.TantargyId
)
GO

View file

@ -0,0 +1,53 @@
DROP FUNCTION IF EXISTS fnGetDokumentumOsztalyTanuloinakMegtartottOrakTantargyankent
GO
CREATE FUNCTION fnGetDokumentumOsztalyTanuloinakMegtartottOrakTantargyankent (
@tanevId int
,@osztalyCsoportId int
)
RETURNS @result TABLE (
Orakszama int
,TanuloId int
,TantargyId int
,TantargyNev nvarchar(255)
,Fotargye char(1)
,Altargye char(1)
,Gyakorlati char(1)
)
AS BEGIN
DECLARE @kategoriaId int = (SELECT C_FELADATKATEGORIAID FROM T_OSZTALYCSOPORT_OSSZES WHERE ID = @osztalyCsoportId)
INSERT INTO @result
SELECT
COUNT(1) AS Orakszama
,tcs.C_TANULOID AS TanuloId
,tgy.ID AS TantargyId
,ISNULL(tgy.C_NEVNYOMTATVANYBAN, tgy.C_NEV) AS TantargyNev
,C_FOTARGYE AS Fotargye
,C_ALTANTARGYKENTNYOMTATVANYBAN AS Altargye
,C_GYAKORLATI AS Gyakorlati
FROM T_TANULOCSOPORT_OSSZES tcs
INNER JOIN T_TANULOCSOPORT_OSSZES AS tcsAll ON tcsAll.C_TANULOID = tcs.C_TANULOID AND tcsAll.TOROLT='F'
INNER JOIN T_TANITASIORA_OSSZES AS tao ON tao.C_OSZTALYCSOPORTID = tcsAll.C_OSZTALYCSOPORTID AND tao.TOROLT='F'
AND tao.C_DATUM >= tcsAll.C_BELEPESDATUM AND (tcsAll.C_KILEPESDATUM IS NULL OR tcsAll.C_KILEPESDATUM >=tao.C_DATUM)
AND tao.C_DATUM >= tcs.C_BELEPESDATUM AND (tcs.C_KILEPESDATUM IS NULL OR tcs.C_KILEPESDATUM >= tao.C_DATUM)
AND tao.C_OSZTALYCSOPORTID IN (SELECT Id FROM fnGetDokumentumOsztalyVagyTanoraiCsoport(@tanevId))
AND tao.C_MEGTARTOTT = 'T'
AND tao.C_TANEVID = @TanevId
INNER JOIN T_OSZTALYCSOPORT_OSSZES AS ocs ON ocs.ID = tao.C_OSZTALYCSOPORTID AND ocs.TOROLT='F'
AND ocs.C_FELADATKATEGORIAID = @kategoriaId AND ocs.C_TANEVID = @TanevId
INNER JOIN T_TANTARGY_OSSZES AS tgy ON tgy.ID = tao.C_TANTARGYID AND tgy.TOROLT='F'
AND tgy.C_TANEVID = @TanevId
WHERE tcs.C_OSZTALYCSOPORTID = @osztalyCsoportId AND tcs.TOROLT='F'
GROUP BY
tcs.C_TANULOID
,tgy.ID
,C_GYAKORLATI
,tgy.C_NEVNYOMTATVANYBAN
,tgy.C_NEV
,tgy.C_FOTARGYE
,tgy.C_ALTANTARGYKENTNYOMTATVANYBAN
RETURN
END
GO

View file

@ -0,0 +1,24 @@
IF OBJECT_ID('fnGetDokumentumOsztalyVagyTanoraiCsoport') IS NOT NULL BEGIN
DROP FUNCTION fnGetDokumentumOsztalyVagyTanoraiCsoport
END
GO
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
CREATE FUNCTION fnGetDokumentumOsztalyVagyTanoraiCsoport (@tanevId int)
RETURNS TABLE
RETURN (
SELECT
T_OSZTALYCSOPORT_OSSZES.ID
FROM T_OSZTALYCSOPORT_OSSZES
WHERE
( EXISTS (SELECT TOP 1 ID FROM T_OSZTALY_OSSZES WHERE T_OSZTALY_OSSZES.ID = T_OSZTALYCSOPORT_OSSZES.ID )
OR
EXISTS (SELECT TOP 1 ID FROM T_CSOPORT_OSSZES WHERE C_TIPUSA IN (SELECT ID FROM fnGetTanoraiCeluCsoportTipusok(@tanevId)) AND T_CSOPORT_OSSZES.ID = T_OSZTALYCSOPORT_OSSZES.ID)
)
AND T_OSZTALYCSOPORT_OSSZES.C_TANEVID = @tanevId
AND TOROLT = 'F'
)

View file

@ -0,0 +1,47 @@
IF OBJECT_ID('fnGetDokumentumOsztalyokCsoportokTanuloi') IS NOT NULL BEGIN
DROP FUNCTION fnGetDokumentumOsztalyokCsoportokTanuloi
END
GO
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
CREATE FUNCTION fnGetDokumentumOsztalyokCsoportokTanuloi (@tanevId INT, @osztalyId INT, @isKilepettTanulokMegjelenjenek NVARCHAR(1))
RETURNS TABLE
RETURN (
SELECT DISTINCT
C_TANULOID AS TanuloId
,tanuloCsoport.ID AS TanuloCsoportId
,tanuloCsoport.C_BELEPESDATUM AS BelepesDatum
,tanuloCsoport.C_KILEPESDATUM AS KilepesDatum
--OKJ
,IIF(tanugyiAdatok.C_AGAZATID IS NULL,osztalyAdatok.C_AGAZAT, tanugyiAdatok.C_AGAZATID) AgazatId
,IIF(tanugyiAdatok.C_SZAKKEPESITESID IS NULL,osztalyAdatok.C_SZAKKEPESITES, tanugyiAdatok.C_SZAKKEPESITESID) SzakkepesitesId
,IIF(tanugyiAdatok.C_RESZSZAKKEPESITESID IS NULL,osztalyAdatok.C_RESZSZAKKEPESITES, tanugyiAdatok.C_RESZSZAKKEPESITESID) ReszSzakkepeitesId
,IIF(tanugyiAdatok.C_SZAKMACSOPORTID IS NULL,osztalyAdatok.C_SZAKMACSOPORT, tanugyiAdatok.C_SZAKMACSOPORTID) SzakmaCsoportId
--SZKT
,IIF(tanugyiAdatok.C_AGAZATUJSZKTTIPUSID IS NULL,osztalyAdatok.C_AGAZATUJSZKTTIPUSID, tanugyiAdatok.C_AGAZATUJSZKTTIPUSID) AgazatTipusId
,IIF(tanugyiAdatok.C_SZAKMATIPUSID IS NULL,osztalyAdatok.C_SZAKMATIPUSID, tanugyiAdatok.C_SZAKMATIPUSID) SzakmaTipusId
,IIF(tanugyiAdatok.C_SZAKMAIRANYTIPUSID IS NULL,osztalyAdatok.C_SZAKMAIRANYTIPUSID, tanugyiAdatok.C_SZAKMAIRANYTIPUSID) SzakiranyTipusId
--NKT
,IIF(tanugyiAdatok.C_SZAKIRANYNKTTIPUSID IS NULL,osztalyAdatok.C_SZAKIRANYNKTTIPUSID, tanugyiAdatok.C_SZAKIRANYNKTTIPUSID) NktSzakiranyTipusId
,IIF(tanugyiAdatok.C_SZAKKEPESITESNKTTIPUSID IS NULL,osztalyAdatok.C_SZAKKEPESITESNKTTIPUSID, tanugyiAdatok.C_SZAKKEPESITESNKTTIPUSID) NktSzakkepesitesTipusId
,IIF(tanugyiAdatok.C_TANULMANYITERULETNKTTIPUSID IS NULL,osztalyAdatok.C_TANULMANYITERULETNKTTIPUSID, tanugyiAdatok.C_TANULMANYITERULETNKTTIPUSID) NktTanulmanyiTeruletId
--Részszakma
,tanugyiAdatok.C_AGAZATRESZSZAKMATIPUSID AgazatReszszakmaTipusId
,tanugyiAdatok.C_RESZSZAKMATIPUSID ReszszakmaTipusId
,tanugyiAdatok.C_SZAKMARESZSZAKMATIPUSID SzakmaReszszakmaId
,tanugyiAdatok.C_NAPLOSORSZAM AS NaploSorszam
,tanugyiAdatok.C_TORZSLAPSZAM AS Torzslapszam
,tanugyiAdatok.C_BEIRASINAPLOSORSZAM AS BeirasiNaploSorszam
FROM T_TANULOCSOPORT_OSSZES tanuloCsoport
LEFT JOIN T_TANULOTANUGYIADATOK_OSSZES tanugyiAdatok ON tanugyiAdatok.C_TANULOCSOPORTID = tanuloCsoport.ID AND tanugyiAdatok.TOROLT = 'F'
LEFT JOIN T_OSZTALY_OSSZES osztalyAdatok ON osztalyAdatok.ID = tanuloCsoport.C_OSZTALYCSOPORTID AND osztalyAdatok.TOROLT = 'F'
WHERE
tanuloCsoport.C_OSZTALYCSOPORTID = @osztalyId
AND tanuloCsoport.C_TANEVID = @tanevId
AND tanuloCsoport.TOROLT = 'F'
)

View file

@ -0,0 +1,69 @@
DROP FUNCTION IF EXISTS dbo.fnGetDokumentumPedagogusOraszam
GO
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
CREATE FUNCTION dbo.fnGetDokumentumPedagogusOraszam (@PedagogusId INT, @isKlebersberg BIT)
RETURNS NVARCHAR(MAX)
BEGIN
DECLARE @value NVARCHAR(MAX)
IF (@isKlebersberg = 0)
BEGIN
SET @value = (SELECT TOP 1 CAST(C_KOTELEZOORASZAM AS NVARCHAR(MAX)) FROM T_MUNKAUGYIADATOK_OSSZES WHERE C_ALKALMAZOTTID = @PedagogusId AND TOROLT = 'F')
END
ELSE
BEGIN
DECLARE @isKollegium INT =(
SELECT TOP 1
munk.C_ALKALMAZOTTID
FROM T_MUNKAUGYIADATOK_OSSZES munk
INNER JOIN T_FELADATELLATASIHELY_OSSZES fhely ON fhely.Id = munk.C_FELADATELLATASIHELYID
WHERE fhely.C_OKTATASINEVELESIFELADATTIPUS = 1165
AND munk.TOROLT = 'F'
AND fhely.TOROLT = 'F'
AND munk.C_ALKALMAZOTTID = @PedagogusId)
DECLARE @isEgyMi INT=(
SELECT TOP 1
munk.C_ALKALMAZOTTID
FROM T_MUNKAUGYIADATOK_OSSZES munk
INNER JOIN T_FELADATELLATASIHELY_OSSZES fhely ON fhely.Id = munk.C_FELADATELLATASIHELYID
WHERE fhely.C_OKTATASINEVELESIFELADATTIPUS IN (1177 /* óvoda gyógy.*/, 1178 /*ált. isk. gyógyp.*/, 6711 /*utazó gyógyp.*/, 1173 /*konduktív ped. ell*/, 6570 /*fejlesztő nev-okt*/)
AND munk.C_MUNKAKORTIPUSA IN (597 /*gyógypedagógus*/, 598 /*konduktor*/, 555 /*logopédus*/, 6421 /*pszichopedagógus*/)
AND munk.C_ALKALMAZOTTID = @PedagogusId
AND munk.TOROLT = 'F'
AND fhely.TOROLT = 'F')
SELECT DISTINCT @value =
IIF(C_VEZETOIORASZAMOK != 6571, CAST(C_KOTELEZOORASZAM AS NVARCHAR(MAX)) + ' (vezető)', --van vezetői óraszáma, ha nincs
--ha teljes munkaidős
CASE
WHEN C_FOGLALKOZTATASTIPUS = 6465 AND C_MUNKAKORTIPUSA NOT IN (557,559,560,561,562,563,564,565,566,567,568,583,584,585,589,594,633,3026,6382,6388,6421,6438,7356, --ha teljes munkaidős és nem NOKS
569,6345,6346,572,582,581,6404,571,586,588,587,6347,570,590) -- és nem egyéb
THEN IIF(@isKollegium IS NOT NULL, '30', --ha kollégiumi feh-n alkalmazott, ha nem
IIF(C_SZAKERTOMESTERPEDAGOGUS = 'T', '18', --ha szakértőmesterpedagógus, ha nem
IIF(@isEgyMi IS NOT NULL, '20', --ha gyógypedagógus, ha nem
IIF(C_BESOROLASIFOKOZAT = 3044, '20', --ha gyakornok, ha nem akkor
'22-26'))))
WHEN C_FOGLALKOZTATASTIPUS = 6466 --Részmunkaidős
THEN CAST(C_RESZMUNKAIDOSZAZALEK AS NVARCHAR(MAX)) + '%'
WHEN C_FOGLALKOZTATASTIPUS = 6467 --Óraadó
THEN CAST(C_KOTELEZOORASZAM AS NVARCHAR(MAX))
ELSE --betöltetlen álláshely
'-'
END
)
FROM T_MUNKAUGYIADATOK_OSSZES munk
WHERE munk.TOROLT = 'F'
AND munk.C_ALKALMAZOTTID = @PedagogusId
END
RETURN @value
END;

View file

@ -0,0 +1,21 @@
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
IF OBJECT_ID('fnGetDokumentumRendszerbeallitasLogikaiErtek') IS NOT NULL
BEGIN
DROP FUNCTION fnGetDokumentumRendszerbeallitasLogikaiErtek
END
GO
CREATE FUNCTION fnGetDokumentumRendszerbeallitasLogikaiErtek (
@tanevId INT,
@beallitasTipusId INT
) RETURNS TABLE
RETURN (
SELECT TOP (1) IIF(C_ERTEK LIKE '%value%:%true%', 1, 0) AS LogikaiErtek
FROM T_RENDSZERBEALLITAS_OSSZES
WHERE C_BEALLITASTIPUS = @beallitasTipusId AND C_TANEVID = @tanevId AND TOROLT = 'F'
)
GO

View file

@ -0,0 +1,26 @@
IF OBJECT_ID('dbo.fnGetDokumentumTanuloAktualisCsoportvezeto') IS NOT NULL BEGIN
DROP FUNCTION dbo.fnGetDokumentumTanuloAktualisCsoportvezeto
END
GO
CREATE FUNCTION dbo.fnGetDokumentumTanuloAktualisCsoportvezeto (@tanuloId INT, @osztalyCsoportId INT)
RETURNS NVARCHAR(MAX)
BEGIN
DECLARE @value NVARCHAR(MAX)
SELECT TOP 1
@value = f.C_NYOMTATASINEV
FROM T_TANULOCSOPORT_OSSZES tcs
INNER JOIN T_CSOPORT_OSSZES cs ON tcs.C_OSZTALYCSOPORTID = cs.ID
INNER JOIN T_FELHASZNALO_OSSZES f ON cs.C_CSOPORTVEZETOID = f.ID
WHERE
tcs.C_TANULOID = @tanuloId
AND tcs.C_OSZTALYCSOPORTID = @osztalyCsoportId
AND tcs.TOROLT = 'F'
ORDER BY C_KILEPESDATUM
RETURN @value
END;
GO

View file

@ -0,0 +1,18 @@
DROP FUNCTION IF EXISTS fnGetDokumentumTanuloAktualisOsztaly
GO
CREATE FUNCTION dbo.fnGetDokumentumTanuloAktualisOsztaly (@tanuloId INT)
RETURNS NVARCHAR(MAX)
BEGIN
DECLARE @value NVARCHAR(MAX)
SELECT TOP 1
@value = ocs.C_NEV
FROM T_TANULOCSOPORT_OSSZES tcs
INNER JOIN T_OSZTALY_OSSZES o ON tcs.C_OSZTALYCSOPORTID = o.ID
INNER JOIN T_OSZTALYCSOPORT_OSSZES ocs ON ocs.ID = o.ID
WHERE C_TANULOID = @tanuloId AND tcs.TOROLT = 'F'
ORDER BY C_KILEPESDATUM
RETURN @value
END;
GO

View file

@ -0,0 +1,25 @@
IF OBJECT_ID('dbo.fnGetDokumentumTanuloAktualisOsztalyId') IS NOT NULL BEGIN
DROP FUNCTION dbo.fnGetDokumentumTanuloAktualisOsztalyId
END
GO
CREATE FUNCTION dbo.fnGetDokumentumTanuloAktualisOsztalyId (@tanuloId INT)
RETURNS INT
BEGIN
DECLARE @value INT
SELECT TOP 1
@value = ocs.ID
FROM T_TANULOCSOPORT_OSSZES tcs
INNER JOIN T_OSZTALY_OSSZES o ON tcs.C_OSZTALYCSOPORTID = o.ID
INNER JOIN T_OSZTALYCSOPORT_OSSZES ocs ON ocs.ID = o.ID
WHERE
C_TANULOID = @tanuloId
AND tcs.TOROLT = 'F'
ORDER BY C_KILEPESDATUM
RETURN @value
END;
GO

View file

@ -0,0 +1,25 @@
IF OBJECT_ID('dbo.fnGetDokumentumTanuloAktualisOsztalyfonok') IS NOT NULL BEGIN
DROP FUNCTION dbo.fnGetDokumentumTanuloAktualisOsztalyfonok
END
GO
CREATE FUNCTION dbo.fnGetDokumentumTanuloAktualisOsztalyfonok (@tanuloId INT)
RETURNS NVARCHAR(MAX)
BEGIN
DECLARE @value NVARCHAR(MAX)
SELECT TOP 1
@value = f.C_NYOMTATASINEV
FROM T_TANULOCSOPORT_OSSZES tcs
INNER JOIN T_OSZTALY_OSSZES o ON tcs.C_OSZTALYCSOPORTID = o.ID
INNER JOIN T_FELHASZNALO_OSSZES f ON o.C_OSZTALYFONOKID = f.ID
WHERE
C_TANULOID = @tanuloId
AND tcs.TOROLT = 'F'
ORDER BY C_KILEPESDATUM
RETURN @value
END;
GO

View file

@ -0,0 +1,48 @@
IF OBJECT_ID('fnGetDokumentumTanuloMentessegei') IS NOT NULL BEGIN
DROP FUNCTION fnGetDokumentumTanuloMentessegei
END
GO
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
CREATE FUNCTION fnGetDokumentumTanuloMentessegei (@tanevId INT, @osztalyId INT, @nyomtatvanyNyelvEnum INT = 0)
RETURNS TABLE
RETURN (
SELECT
OsztalyTanuloi.TanuloId TanuloId
,OsztalyTanuloi.TanuloCsoportId TanuloCsoportId
,mentesseg.mentessegOka MentessegOka
,mentesseg.tantargyNev + ' ' + ISNULL(IIF(mentesseg = '', '', '(' + LEFT(mentesseg, LEN(mentesseg)- 1) + ')'),' ') TantargyNev
,mentesseg.tantargyNev TantargyNevMentessegNelkul
,C_KEZDETE Kezdete
FROM fnGetDokumentumOsztalyokCsoportokTanuloi(@tanevId, @osztalyId, 'T') OsztalyTanuloi
INNER JOIN (SELECT DISTINCT
mentesseg.C_TANULOID tanuloId
,s.TanuloCsoportId
,CASE
WHEN @nyomtatvanyNyelvEnum = 0 THEN
IIF(t.C_NEV <> C_NEVNYOMTATVANYBAN AND C_NEVNYOMTATVANYBAN IS NOT NULL, C_NEVNYOMTATVANYBAN + ' (' + t.C_NEV + ')', t.C_NEV)
WHEN @nyomtatvanyNyelvEnum = 1 THEN
ISNULL(C_NEMETNEV, IIF(t.C_NEV <> C_NEVNYOMTATVANYBAN AND C_NEVNYOMTATVANYBAN IS NOT NULL, C_NEVNYOMTATVANYBAN + ' (' + t.C_NEV + ')', t.C_NEV) )
WHEN @nyomtatvanyNyelvEnum = 2 THEN
ISNULL(C_ANGOLNEV, IIF(t.C_NEV <> C_NEVNYOMTATVANYBAN AND C_NEVNYOMTATVANYBAN IS NOT NULL, C_NEVNYOMTATVANYBAN + ' (' + t.C_NEV + ')', t.C_NEV) )
END tantargyNev
,CASE
WHEN C_KEZDETE IS NULL AND C_VEGE IS NULL THEN mentesseg.C_MENTESSEGOKA
WHEN C_KEZDETE IS NOT NULL AND C_VEGE IS NOT NULL THEN mentesseg.C_MENTESSEGOKA + ' ' + '(a felmentés érvényessége: ' + FORMAT(C_KEZDETE, 'yyyy.MM.dd.') + ' - ' + FORMAT(C_VEGE, 'yyyy.MM.dd.') + ')'
WHEN C_KEZDETE IS NULL AND C_VEGE IS NOT NULL THEN mentesseg.C_MENTESSEGOKA + ' ' + '(a felmentés érvényessége: ' + ' - ' + FORMAT(C_VEGE, 'yyyy.MM.dd.') + ')'
WHEN C_KEZDETE IS NOT NULL AND C_VEGE IS NULL THEN mentesseg.C_MENTESSEGOKA + ' ' + '(a felmentés érvényessége: ' + FORMAT(C_KEZDETE, 'yyyy.MM.dd.') + ' - ' + ')'
END AS mentessegOka
,IIF(mentesseg.C_ERTEKELESMENTESITES = 'T', 'Értékelésmentesség, ', '') + IIF(mentesseg.C_ORAMENTESITES = 'T', 'Óramentesség, ', '') as mentesseg
,mentesseg.C_KEZDETE
FROM T_TANULOMENTESSEG_OSSZES mentesseg
INNER JOIN T_TANTARGY_OSSZES t on t.ID = mentesseg.C_TANTARGYID
INNER JOIN fnGetDokumentumOsztalyokCsoportokTanuloi(@tanevId, @osztalyId, 'T') s ON s.TanuloId = mentesseg.C_TANULOID
WHERE
mentesseg.TOROLT='F'
) mentesseg ON OsztalyTanuloi.TanuloId = mentesseg.TANULOID AND OsztalyTanuloi.TanuloCsoportId = mentesseg.TanuloCsoportId
)

View file

@ -0,0 +1,72 @@
DROP FUNCTION IF EXISTS fnGetDokumentumTanuloOrGondviseloCim
GO
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
CREATE FUNCTION fnGetDokumentumTanuloOrGondviseloCim (@TanuloOrGondviselo BIT, @pTanevId INT, @pOsztalyId INT, @isAlapertelmezettTanuloCim BIT = NULL, @isAlapertelmezettGondviseloCim BIT = NULL)
RETURNS @result TABLE
(
TanuloId INT,
Cim NVARCHAR(MAX),
CimTipusa INT,
GondviseloId INT,
IsAlapertelmezett CHAR
)
AS
BEGIN
DECLARE @Magyarorszagmegnevezes NVARCHAR(20) = (SELECT dib_MO.C_NAME FROM T_DICTIONARYITEMBASE_OSSZES dib_MO WHERE dib_MO.ID = 765 AND dib_MO.C_TANEVID = @pTanevId AND dib_MO.TOROLT = 'F')
IF @TanuloOrGondviselo = 0
BEGIN
INSERT INTO @result(TanuloId, Cim, CimTipusa, GondviseloId, IsAlapertelmezett)
SELECT
Tanulo.C_TANULOID AS TanuloId
,ISNULL(dib_orszag.C_NAME,@Magyarorszagmegnevezes) + ', '
+ cim.C_IRANYITOSZAM + ' ' + cim.C_VAROS + ', ' + cim.C_KOZTERULET + ' ' + cim.C_KOZTERULETJELLEGENEV + ' ' + cim.C_HAZSZAM + IIF(RIGHT(C_HAZSZAM, 1) = '.', '', '.') + ' ' + ISNULL(cim.C_EMELET + '/', '') + ISNULL(cim.C_AJTO, '') AS Cim
,cim.C_CIMTIPUSA AS CimTipusa
,cim.C_GONDVISELOID AS GondviseloId
,cim.C_ALAPERTELMEZETT
FROM T_TANULOCSOPORT_OSSZES Tanulo
INNER JOIN T_CIM_OSSZES cim on cim.C_FELHASZNALOID = Tanulo.C_TANULOID AND cim.C_GONDVISELOID IS NULL AND cim.TOROLT = 'F'
INNER JOIN T_DICTIONARYITEMBASE_OSSZES cimTipusa on cimTipusa.ID = cim.C_CIMTIPUSA AND cimTipusa.C_TANEVID = @pTanevId
LEFT JOIN T_DICTIONARYITEMBASE_OSSZES dib_orszag on dib_orszag.ID = cim.C_ORSZAG AND dib_orszag.C_TANEVID = @pTanevId AND dib_orszag.TOROLT = 'F'
WHERE Tanulo.C_TANEVID = @pTanevId
AND Tanulo.C_OSZTALYCSOPORTID = @pOsztalyId
AND Tanulo.TOROLT = 'F'
AND (@isAlapertelmezettTanuloCim IS NULL OR (@isAlapertelmezettTanuloCim = 0 AND cim.C_ALAPERTELMEZETT = 'F') OR (@isAlapertelmezettTanuloCim = 1 AND cim.C_ALAPERTELMEZETT = 'T'))
ORDER BY cimTipusa.C_NAME ASC, cim.C_ALAPERTELMEZETT DESC
END
ELSE IF @TanuloOrGondviselo = 1
BEGIN
INSERT INTO @result(TanuloId, Cim, CimTipusa, GondviseloId, IsAlapertelmezett)
SELECT
Tanulo.C_TANULOID AS TanuloId
,ISNULL(dib_orszag.C_NAME,@Magyarorszagmegnevezes) + ', '
+ cim.C_IRANYITOSZAM + ' ' + cim.C_VAROS + ', ' + cim.C_KOZTERULET + ' ' + cim.C_KOZTERULETJELLEGENEV + ' ' + cim.C_HAZSZAM + IIF(RIGHT(C_HAZSZAM, 1) = '.', '', '.') + ' ' + ISNULL(cim.C_EMELET + '/', '') + ISNULL(cim.C_AJTO, '') AS Cim
,cim.C_CIMTIPUSA AS CimTipusa
,cim.C_GONDVISELOID AS GondviseloId
,cim.C_ALAPERTELMEZETT
FROM T_TANULOCSOPORT_OSSZES Tanulo
INNER JOIN T_GONDVISELO_OSSZES Gondviselo ON Gondviselo.C_TANULOID = Tanulo.C_TANULOID
INNER JOIN T_CIM_OSSZES cim ON cim.C_GONDVISELOID = Gondviselo.ID AND cim.TOROLT = 'F'
INNER JOIN T_DICTIONARYITEMBASE_OSSZES cimTipusa on cimTipusa.ID = cim.C_CIMTIPUSA AND cimTipusa.C_TANEVID = @pTanevId
LEFT JOIN T_DICTIONARYITEMBASE_OSSZES dib_orszag on dib_orszag.ID = cim.C_ORSZAG AND dib_orszag.C_TANEVID = @pTanevId AND dib_orszag.TOROLT = 'F'
WHERE Tanulo.C_TANEVID = @pTanevId
AND Tanulo.C_OSZTALYCSOPORTID = @pOsztalyId
AND Tanulo.TOROLT = 'F'
AND (@isAlapertelmezettGondviseloCim IS NULL OR (@isAlapertelmezettGondviseloCim = 0 AND cim.C_ALAPERTELMEZETT = 'F') OR (@isAlapertelmezettGondviseloCim = 1 AND cim.C_ALAPERTELMEZETT = 'T'))
ORDER BY cimTipusa.C_NAME ASC, cim.C_ALAPERTELMEZETT DESC
END
RETURN
END

View file

@ -0,0 +1,79 @@
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
IF OBJECT_ID('fnGetDokumentumTanuloiAlapadatok') IS NOT NULL
BEGIN
DROP FUNCTION fnGetDokumentumTanuloiAlapadatok
END
GO
CREATE FUNCTION fnGetDokumentumTanuloiAlapadatok (@pOsztalyCsoportId INT, @pTanevId INT, @isKilepettTanulokMegjelenjenek NVARCHAR(1))
RETURNS TABLE
RETURN (
SELECT DISTINCT
tanuloID
,torzslapSzam
,oktAzon
,tajSzam
,anyjaNeve
,szulHely
,dbo.fnGetDokumentumDatumFormatum(szulIdo) AS szulIdo
,IIF(socAdat = '', '', LEFT(socAdat, len(socAdat)- 1)) AS socAdat
,kepzes
,tanuloNeve
,allampolgarsaga
,diakIgazolvanySzam
,dbo.fnGetDokumentumDatumFormatum(kilepesDatum) AS kilepesDatum
,beirasiNaploSorszam
FROM (
SELECT
t.ID AS tanuloID
,f.C_NYILVANTARTASISZAM AS torzslapSzam
,f.C_OKTATASIAZONOSITO AS oktAzon
,f.C_TAJSZAM AS tajSzam
,f.C_ANYJANEVE AS anyjaNeve
,f.C_SZULETESIHELY AS szulHely
,f.C_SZULETESIDATUM AS szulIdo
,IIF(t.C_MAGANTANULO = 'T', 'Magántanuló (eü. ok), ', '') +
IIF(t.C_JOGVISZONYATSZUNETELTETO = 'T', 'Jogviszony szüneteltetve, ', '') +
IIF(t.C_SZAKMAIGYAKORLATON = 'T', 'Szakmai gyakorlat, ', '') +
IIF(t.C_SZOCIALISTAMOGATAS = 'T', 'Szociális támogatás, ', '') +
IIF(t.C_SAJATOSNEVELESU = 'T', 'Sajátos nevelési igényű, ', '') +
IIF(t.C_BEJARO = 'T', 'Bejáró, ', '') AS socAdat
,tt.C_NEV AS kepzes
,f.C_NYOMTATASINEV AS tanuloNeve
,d.C_NAME AS allampolgarsaga
,t.C_DIAKIGAZOLVANYSZAM AS diakIgazolvanySzam
,MAX(cs.C_KILEPESDATUM) AS kilepesDatum
,t.C_BEIRASINAPLOSORSZAM AS beirasiNaploSorszam
FROM T_TANULO_OSSZES t
INNER JOIN dbo.fnGetDokumentumOsztalyokCsoportokTanuloi(@pTanevId, @pOsztalyCsoportId, @isKilepettTanulokMegjelenjenek) osztalyokCsoportok ON osztalyokCsoportok.TanuloId = t.ID
INNER JOIN T_FELHASZNALO_OSSZES f ON f.ID = t.ID
INNER JOIN T_TANULOCSOPORT_OSSZES cs ON osztalyokCsoportok.TanuloId = cs.C_TANULOID AND cs.C_OSZTALYCSOPORTID = @pOsztalyCsoportId AND cs.TOROLT = 'F'
LEFT JOIN T_TANULOTANUGYIADATOK_OSSZES tta ON tta.C_TANULOCSOPORTID = cs.ID AND tta.TOROLT = 'F'
LEFT JOIN T_TANTERV_OSSZES tt ON tt.ID = tta.C_TANTERVID
INNER JOIN T_DICTIONARYITEMBASE_OSSZES d on d.id=f.C_ALLAMPOLGARSAGA AND d.C_TANEVID = f.C_TANEVID AND d.C_INTEZMENYID = f.C_INTEZMENYID
GROUP BY
osztalyokCsoportok.TanuloId
,t.ID, f.C_NYILVANTARTASISZAM
,f.C_OKTATASIAZONOSITO
,f.C_TAJSZAM
,f.C_ANYJANEVE
,f.C_SZULETESIHELY
,f.C_SZULETESIDATUM
,t.C_MAGANTANULO
,t.C_JOGVISZONYATSZUNETELTETO
,t.C_SZAKMAIGYAKORLATON
,C_SAJATOSNEVELESU
,t.C_BEJARO
,t.C_SZOCIALISTAMOGATAS
,tt.C_NEV
,f.C_NYOMTATASINEV
,d.C_NAME
,t.C_DIAKIGAZOLVANYSZAM
,t.C_BEIRASINAPLOSORSZAM
) tbl
)
GO

View file

@ -0,0 +1,116 @@
DROP FUNCTION IF EXISTS fnGetDokumentumTanulokAdatai
GO
CREATE FUNCTION fnGetDokumentumTanulokAdatai (
@tanevId int
,@osztalyCsoportId int
)
RETURNS @tanuloAdatok TABLE (
TanuloId int
,TanuloCsoportId int
,Sorszam int
,TorzslapSzam varchar(1000)
,OktAzon nvarchar(40)
,TajSzam nvarchar(18)
,AnyjaNeve nvarchar(128)
,SzulHely nvarchar(100)
,SzulIdo nvarchar(20)--formázás miatt
,SocAdat nvarchar(200)
,Kepzes nvarchar(510)
,TanuloNeve nvarchar(510)
,NevElotagNelkul nvarchar(510)
,Allampolgarsaga nvarchar(500)
,DiakIgazolvanySzam nvarchar(510)
,KilepesDatum nvarchar(20) --formázás miatt
,BeirasiNaploSorszam nvarchar(100)
,AktualisOsztaly nvarchar(200)
,AktualisOsztalyId int
,AdottOsztaly nvarchar(200)
,AdottOsztalyId int
,BelepesDatum nvarchar(20) --formázás miatt
)
AS BEGIN
DECLARE @kategoriaId int = (SELECT C_FELADATKATEGORIAID FROM T_OSZTALYCSOPORT_OSSZES WHERE ID = @osztalyCsoportId)
INSERT INTO @tanuloAdatok
SELECT DISTINCT
tmp.TanuloId
,tmp.TanuloCsoportId
,tmp.Sorszam
,tmp.TorzslapSzam
,tmp.OktAzon
,tmp.TajSzam
,tmp.AnyjaNeve
,tmp.SzulHely
,dbo.fnGetDokumentumDatumFormatum(tmp.szulIdo) AS SzulIdo
,tmp.SocAdat
,tmp.Kepzes
,tmp.TanuloNeve
,tmp.NevElotagNelkul
,tmp.Allampolgarsaga
,tmp.DiakIgazolvanySzam
,dbo.fnGetDokumentumDatumFormatum(tmp.KilepesDatum) AS KilepesDatum
,tmp.BeirasiNaploSorszam
,tmp.AktualisOsztaly
,tmp.AktualisOsztalyId
,tmp.AdottOsztaly
,tmp.AdottOsztalyId
,dbo.fnGetDokumentumDatumFormatum(tmp.BelepesDatum) AS BelepesDatum
FROM (
SELECT
OsztalyCsoportTanuloi.TanuloId AS TanuloId
,OsztalyCsoportTanuloi.TanuloCsoportId AS TanuloCsoportId
,tta.C_NAPLOSORSZAM AS Sorszam
,tta.C_TORZSLAPSZAM AS TorzslapSzam
,Felhasznalo.C_OKTATASIAZONOSITO AS OktAzon
,Felhasznalo.C_TAJSZAM AS TajSzam
,Felhasznalo.C_ANYJANEVE AS AnyjaNeve
,Felhasznalo.C_SZULETESIHELY AS SzulHely
,Felhasznalo.C_SZULETESIDATUM AS SzulIdo
,STUFF(IIF(tta.C_MAGANTANULO = 'T', N', Magántanuló / Egyéni munkarend ('
+ ISNULL(MagantanulosagOka.C_NAME, N'-') + N')', N'')
+ IIF(tta.C_JOGVISZONYATSZUNETELTETO = 'T', N', Jogviszony szüneteltetve', N'')
+ IIF(tta.C_SZAKMAIGYAKORLATON = 'T', N', Szakmai gyakorlat', N'')
+ IIF(Tanulo.C_SZOCIALISTAMOGATAS = 'T', N', Szociális támogatás', N'')
+ IIF(tta.C_BEJARO = 'T', N', Bejáró', N''), 1, 2, '') AS SocAdat
,Tanterv.C_NEV AS Kepzes
,Felhasznalo.C_NYOMTATASINEV AS TanuloNeve
,IIF(C_NEVSORREND = 'T',
C_UTONEV + ' ' + C_VEZETEKNEV,
C_VEZETEKNEV + ' ' + C_UTONEV) AS NevElotagNelkul
,AllampolgarsagDic.C_NAME AS Allampolgarsaga
,Tanulo.C_DIAKIGAZOLVANYSZAM AS DiakIgazolvanySzam
,OsztalyCsoportTanuloi.KilepesDatum AS KilepesDatum
,tta.C_BEIRASINAPLOSORSZAM AS BeirasiNaploSorszam
,dbo.fnGetDokumentumTanuloAktualisOsztaly(OsztalyCsoportTanuloi.TanuloId) AS AktualisOsztaly
,dbo.fnGetDokumentumTanuloAktualisOsztalyId(OsztalyCsoportTanuloi.TanuloId) AS AktualisOsztalyId
,TanuloOsztaly.OsztalyNev AS AdottOsztaly
,TanuloOsztaly.ID AS AdottOsztalyId
,OsztalyCsoportTanuloi.BelepesDatum AS BelepesDatum
FROM T_TANULO_OSSZES Tanulo
INNER JOIN fnGetDokumentumOsztalyokCsoportokTanuloi(@tanevId, @osztalyCsoportId, 'T') OsztalyCsoportTanuloi ON OsztalyCsoportTanuloi.TanuloId = Tanulo.ID
INNER JOIN T_FELHASZNALO_OSSZES Felhasznalo ON Felhasznalo.ID = Tanulo.ID
AND Felhasznalo.TOROLT = 'F'
INNER JOIN T_DICTIONARYITEMBASE_OSSZES AllampolgarsagDic ON AllampolgarsagDic.ID = Felhasznalo.C_ALLAMPOLGARSAGA
AND AllampolgarsagDic.C_TANEVID = Felhasznalo.C_TANEVID
AND AllampolgarsagDic.TOROLT = 'F'
OUTER APPLY (
SELECT TOP 1
ID
,OsztalyNev
FROM dbo.fnGetTanuloOsztaly(OsztalyCsoportTanuloi.TanuloId, OsztalyCsoportTanuloi.KilepesDatum, @kategoriaId, 1, DEFAULT)
) TanuloOsztaly
LEFT JOIN T_TANULOTANUGYIADATOK_OSSZES tta ON OsztalyCsoportTanuloi.TanuloCsoportId = tta.C_TANULOCSOPORTID
LEFT JOIN T_TANTERV_OSSZES AS Tanterv ON Tanterv.ID = tta.C_TANTERVID
AND Tanterv.TOROLT = 'F'
LEFT JOIN T_DICTIONARYITEMBASE_OSSZES MagantanulosagOka ON MagantanulosagOka.ID = tta.C_MAGANTANULOSAGANAKOKAID
AND MagantanulosagOka.C_TANEVID = Felhasznalo.C_TANEVID
AND MagantanulosagOka.TOROLT = 'F'
WHERE Tanulo.TOROLT = 'F'
) tmp
RETURN
END
GO

View file

@ -0,0 +1,184 @@
IF OBJECT_ID('fnGetDokumentumTanulokEvesOraszamaiOsztalyonkent') IS NOT NULL BEGIN
DROP FUNCTION fnGetDokumentumTanulokEvesOraszamaiOsztalyonkent
END
GO
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
CREATE FUNCTION fnGetDokumentumTanulokEvesOraszamaiOsztalyonkent (@tanevId INT, @osztalyId INT, @tanitasiHetekSzamaVegzos INT, @tanitasiHetekSzamaNemVegzos INT, @isFotantargyAltantargyEgyben BIT)
RETURNS @result TABLE
(
TanuloId int,
TantargyId int,
Oraszam float
)
AS
BEGIN
DECLARE @feladatKategoriaId int = (SELECT C_FELADATKATEGORIAID FROM T_OSZTALYCSOPORT_OSSZES WHERE ID = @osztalyId)
DECLARE @isVegzos NVARCHAR(1) = (SELECT C_VEGZOSEVFOLYAM FROM T_OSZTALYCSOPORT_OSSZES WHERE ID = @osztalyId)
DECLARE @isKeresztfeleves NVARCHAR(1) = (SELECT C_KERESZTFELEVES FROM T_OSZTALYCSOPORT_OSSZES WHERE ID = @osztalyId)
DECLARE @utolsoNapForMindenVegzos DATE = (SELECT MIN(C_DATUM) FROM T_TANEVRENDJE_OSSZES WHERE C_OSSZESCSOPORTRAVONATKOZIK = 'T' AND C_NAPTIPUSA IN (1402, 7603) AND C_TANEVID = @tanevId AND TOROLT = 'F')
DECLARE @utolsoNapForMindenNemVegzos DATE = (SELECT C_DATUM FROM T_TANEVRENDJE_OSSZES WHERE C_OSSZESCSOPORTRAVONATKOZIK = 'T' AND C_NAPTIPUSA = 1395 AND C_TANEVID = @tanevId AND TOROLT = 'F')
DECLARE @utolsoNapForOsztalyVegzos DATE = (
SELECT MIN(C_DATUM) FROM T_TANEVRENDJE_OSSZES tr
INNER JOIN T_OSZTALYCSOPORT_TANEVRENDJE ocstr ON tr.ID = ocstr.C_TANEVRENDJEID
WHERE C_NAPTIPUSA IN (1402, 7603) AND C_OSZTALYCSOPORTID = @osztalyId AND tr.TOROLT = 'F')
DECLARE @utolsoNapForOsztalyNemVegzos DATE = (
SELECT C_DATUM FROM T_TANEVRENDJE_OSSZES tr
INNER JOIN T_OSZTALYCSOPORT_TANEVRENDJE ocstr ON tr.ID = ocstr.C_TANEVRENDJEID
WHERE C_NAPTIPUSA = 1395 AND C_OSZTALYCSOPORTID = @osztalyId AND tr.TOROLT = 'F')
DECLARE @utolsoNapForMindenKeresztfelevesVegzos DATE = (SELECT C_DATUM FROM T_TANEVRENDJE_OSSZES WHERE C_OSSZESCSOPORTRAVONATKOZIK = 'T' AND C_NAPTIPUSA = 7602 AND C_TANEVID = @tanevId AND TOROLT = 'F')
DECLARE @utolsoNapForMindenKeresztfelevesNemVegzos DATE = (SELECT C_DATUM FROM T_TANEVRENDJE_OSSZES WHERE C_OSSZESCSOPORTRAVONATKOZIK = 'T' AND C_NAPTIPUSA = 1400 AND C_TANEVID = @tanevId AND TOROLT = 'F')
DECLARE @utolsoNapForOsztalyKeresztfelevesVegzos DATE = (
SELECT C_DATUM FROM T_TANEVRENDJE_OSSZES tr
INNER JOIN T_OSZTALYCSOPORT_TANEVRENDJE ocstr ON tr.ID = ocstr.C_TANEVRENDJEID
WHERE C_NAPTIPUSA = 7602 AND C_OSZTALYCSOPORTID = @osztalyId AND tr.TOROLT = 'F')
DECLARE @utolsoNapForOsztalyKeresztfelevesNemVegzos DATE = (
SELECT C_DATUM FROM T_TANEVRENDJE_OSSZES tr
INNER JOIN T_OSZTALYCSOPORT_TANEVRENDJE ocstr ON tr.ID = ocstr.C_TANEVRENDJEID
WHERE C_NAPTIPUSA = 1400 AND C_OSZTALYCSOPORTID = @osztalyId AND tr.TOROLT = 'F')
DECLARE @utolsoNap DATE
IF (@isKeresztfeleves = 'T')
BEGIN
IF (@isVegzos = 'T')
BEGIN
SET @utolsoNap = (SELECT COALESCE(@utolsoNapForOsztalyKeresztfelevesVegzos, @utolsoNapForMindenKeresztfelevesVegzos, @utolsoNapForOsztalyVegzos, @utolsoNapForMindenVegzos))
END
ELSE
BEGIN
SET @utolsoNap = (SELECT COALESCE(@utolsoNapForOsztalyKeresztfelevesNemVegzos, @utolsoNapForMindenKeresztfelevesNemVegzos, @utolsoNapForOsztalyNemVegzos, @utolsoNapForMindenNemVegzos))
END
END
ELSE
BEGIN
IF (@isVegzos = 'T')
BEGIN
SET @utolsoNap = (SELECT COALESCE(@utolsoNapForOsztalyVegzos, @utolsoNapForMindenVegzos, @utolsoNapForMindenNemVegzos))
END
ELSE
BEGIN
SET @utolsoNap = (SELECT COALESCE(@utolsoNapForOsztalyNemVegzos, @utolsoNapForMindenNemVegzos))
END
END
DECLARE @temp table (
TanuloId int
,FotargyId int
,TantargyId int
,Oraszam float
,isFotargy nvarchar(1)
,isAltantargykentNyomtatvanyban nvarchar(1)
)
INSERT INTO @temp
SELECT
C_TANULOID
,t.C_FOTARGYID
,t.ID
,fog.C_ORASZAM
,t.C_FOTARGYE
,t.C_ALTANTARGYKENTNYOMTATVANYBAN
FROM T_TANULOCSOPORT_OSSZES tcs
INNER JOIN T_FOGLALKOZAS_OSSZES fog ON fog.C_OSZTALYCSOPORTID = tcs.C_OSZTALYCSOPORTID AND fog.TOROLT = 'F' AND fog.C_TANEVID = @tanevId
INNER JOIN T_TANTARGY_OSSZES t on t.ID = fog.C_TANTARGYID AND t.C_TANEVID = @tanevId
INNER JOIN T_OSZTALYCSOPORT_OSSZES AS ocs ON ocs.ID = tcs.C_OSZTALYCSOPORTID AND ocs.C_FELADATKATEGORIAID = @feladatKategoriaId AND ocs.C_TANEVID = @tanevID AND ocs.TOROLT = 'F'
WHERE
tcs.C_TANULOID IN (SELECT TanuloId FROM fnGetDokumentumOsztalyokCsoportokTanuloi(@tanevId, @osztalyId, 'T'))
AND tcs.C_OSZTALYCSOPORTID IN (SELECT ID FROM fnGetDokumentumKapcsolodoOsztalycsoportok(@osztalyId, @tanevId, DEFAULT, DEFAULT))
AND tcs.TOROLT = 'F'
AND tcs.C_TANEVID = @tanevId
AND ISNULL(tcs.C_KILEPESDATUM, @utolsoNap) >= @utolsoNap
DECLARE @default table (
TanuloId int
,TantargyId int
,Orasszam float
)
INSERT INTO @default
SELECT
TanuloId
,TantargyId
,Oraszam * IIF(@isVegzos = 'T', @tanitasiHetekSzamaVegzos, @tanitasiHetekSzamaNemVegzos)
FROM @temp
WHERE
isFotargy = 'T'
UNION ALL
SELECT
TanuloId
,TantargyId
,Oraszam * IIF(@isVegzos = 'T', @tanitasiHetekSzamaVegzos, @tanitasiHetekSzamaNemVegzos)
FROM @temp
WHERE
isAltantargykentNyomtatvanyban = 'T'
UNION ALL
SELECT
TanuloId
,TantargyId
,Oraszam * IIF(@isVegzos = 'T', @tanitasiHetekSzamaVegzos, @tanitasiHetekSzamaNemVegzos)
FROM @temp
WHERE
isFotargy = 'F' AND isAltantargykentNyomtatvanyban = 'F'
UNION ALL
SELECT
TanuloId
,FotargyId
,0
FROM @temp t1
WHERE
(isFotargy = 'F' OR isFotargy IS NULL) AND (isAltantargykentNyomtatvanyban = 'F' OR isAltantargykentNyomtatvanyban IS NULL)
AND NOT EXISTS (SELECT TOP 1 t2.FotargyId FROM @temp t2 WHERE t2.FotargyId = t1. TantargyId)
DECLARE @altargy table (
TanuloId int
,FotargyId int
,Oraszam float
)
IF @isFotantargyAltantargyEgyben = 1
BEGIN
INSERT INTO @altargy
SELECT
TanuloId
,FotargyId
,SUM(Oraszam) * IIF(@isVegzos = 'T', @tanitasiHetekSzamaVegzos, @tanitasiHetekSzamaNemVegzos)
FROM @temp t
WHERE
(isFotargy = 'F' OR isFotargy IS NULL) AND (isAltantargykentNyomtatvanyban = 'F' OR isAltantargykentNyomtatvanyban IS NULL)
GROUP BY TanuloId, FotargyId
END
IF @isFotantargyAltantargyEgyben = 0
BEGIN
INSERT INTO @result
SELECT
defaultTable.TanuloId
,defaultTable.TantargyId
,SUM(defaultTable.Orasszam)
FROM @default defaultTable
GROUP BY defaultTable.TanuloId, defaultTable.TantargyId
END
ELSE
BEGIN
INSERT INTO @result
SELECT
defaultTable.TanuloId
,defaultTable.TantargyId
,SUM(defaultTable.Orasszam) + ISNULL(altargy.Oraszam, 0)
FROM @default defaultTable
LEFT JOIN @altargy altargy ON altargy.TanuloId = defaultTable.TanuloId AND altargy.FotargyId = defaultTable.TantargyId
GROUP BY defaultTable.TanuloId ,defaultTable.TantargyId, altargy.Oraszam
END
RETURN
END
GO

View file

@ -0,0 +1,30 @@
DROP FUNCTION IF EXISTS fnGetDokumentumTanulokFeljegyzesei
GO
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
CREATE FUNCTION fnGetDokumentumTanulokFeljegyzesei (@tanevId int, @osztalyId int, @idegenNyelvId int)
RETURNS TABLE
RETURN (
SELECT
tte.C_TANULOID AS TanuloId
,te.ID AS EsemenyId
,te.C_TARTALOM AS Tartalom
,te.C_TIPUS AS Tipusa
,feljegyezo.C_NYOMTATASINEV AS FeljegyzoNeve
,feljegyezo.ID AS FeljegyzoId
,te.C_ESEMENYDATUMA AS Datum
,te.C_MEGJEGYZES AS Megjegyzes
,teny.C_TARTALOM AS BejegyzesIdegenNyelven
,te.C_ROGZITESKORIOSZTALYID AS RogziteskoriOsztalyId
FROM T_TANULO_TANULOESEMENY tte
INNER JOIN T_TANULOESEMENY_OSSZES te ON te.ID = tte.C_TANULOESEMENYID
LEFT JOIN T_TANULOESEMENYNYELV_OSSZES teny ON teny.C_TANULOESEMENYID = te.ID AND teny.C_NYELVID = @idegenNyelvId AND teny.TOROLT = 'F'
INNER JOIN T_FELHASZNALO_OSSZES feljegyezo ON feljegyezo.ID = te.C_FELJEGYZOID
WHERE
C_TANULOID IN (SELECT TanuloId FROM fnGetDokumentumOsztalyokCsoportokTanuloi(@tanevId, @osztalyId, 'T'))
AND te.TOROLT = 'F'
AND ((te.C_TIPUS NOT IN (1542, 6324, 6325)) AND (te.C_TIPUS <> 1536 OR te.C_TANITASIORAID IS NULL))
)

View file

@ -0,0 +1,63 @@
DROP FUNCTION IF EXISTS fnGetDokumentumTanulokFeljegyzeseiHavibontasban
GO
CREATE FUNCTION fnGetDokumentumTanulokFeljegyzeseiHavibontasban (
@tanevId int
,@osztalyId int
,@FelevVege date
,@BelepesDatum datetime
,@KilepesDatum datetime)
RETURNS @result TABLE (
TanuloId int
,Tipus nvarchar (250)
,Szeptember int
,Oktober int
,November int
,December int
,Januar int
,Februar int
,Marcius int
,Aprilis int
,Majus int
,Junius int
,Felev int
,Ossz int
)
AS BEGIN
DECLARE @kategoriaId int = (SELECT C_FELADATKATEGORIAID FROM T_OSZTALYCSOPORT_OSSZES WHERE ID = @osztalyId)
INSERT INTO @result
SELECT
tte.C_TANULOID AS TanuloId
,d.C_NAME AS Tipus
,SUM(CASE WHEN DATEPART(MONTH, te.C_ESEMENYDATUMA) = 9 THEN 1 ELSE 0 END) AS Szeptember
,SUM(CASE WHEN DATEPART(MONTH, te.C_ESEMENYDATUMA) = 10 THEN 1 ELSE 0 END) AS Oktober
,SUM(CASE WHEN DATEPART(MONTH, te.C_ESEMENYDATUMA) = 11 THEN 1 ELSE 0 END) AS November
,SUM(CASE WHEN DATEPART(MONTH, te.C_ESEMENYDATUMA) = 12 THEN 1 ELSE 0 END) AS December
,SUM(CASE WHEN DATEPART(MONTH, te.C_ESEMENYDATUMA) = 1 THEN 1 ELSE 0 END) AS Januar
,SUM(CASE WHEN DATEPART(MONTH, te.C_ESEMENYDATUMA) = 2 THEN 1 ELSE 0 END) AS Februar
,SUM(CASE WHEN DATEPART(MONTH, te.C_ESEMENYDATUMA) = 3 THEN 1 ELSE 0 END) AS Marcius
,SUM(CASE WHEN DATEPART(MONTH, te.C_ESEMENYDATUMA) = 4 THEN 1 ELSE 0 END) AS Aprilis
,SUM(CASE WHEN DATEPART(MONTH, te.C_ESEMENYDATUMA) = 5 THEN 1 ELSE 0 END) AS Majus
,SUM(CASE WHEN DATEPART(MONTH, te.C_ESEMENYDATUMA) = 6 THEN 1 ELSE 0 END) AS Junius
,SUM(CASE WHEN te.C_ESEMENYDATUMA <= @FelevVege THEN 1 ELSE 0 END) AS Felev
,SUM(1) AS Ossz
FROM T_TANULO_TANULOESEMENY tte
INNER JOIN T_TANULOESEMENY_OSSZES te ON te.ID = tte.C_TANULOESEMENYID AND te.TOROLT = 'F'
INNER JOIN T_DICTIONARYITEMBASE_OSSZES d ON d.ID = te.C_TIPUS AND d.TOROLT = 'F' AND d.C_TANEVID = @tanevId
LEFT JOIN T_TANITASIORA_OSSZES tOra ON tOra.ID = te.C_TANITASIORAID AND tOra.Torolt = 'F'
LEFT JOIN T_OSZTALYCSOPORT_OSSZES ocs ON ocs.ID = tOra.C_OSZTALYCSOPORTID AND ocs.C_FELADATKATEGORIAID = @kategoriaId AND ocs.Torolt = 'F'
WHERE
tte.C_TANULOID IN (SELECT TanuloId FROM fnGetDokumentumOsztalyokCsoportokTanuloi(@tanevId, @osztalyId, 'T'))
AND te.TOROLT = 'F'
AND ((te.C_TANITASIORAID IS NOT NULL AND tOra.ID IS NOT NULL AND ocs.ID IS NOT NULL) OR te.C_TANITASIORAID IS NULL)
AND @BelepesDatum <= te.C_ESEMENYDATUMA
AND (@KilepesDatum IS NULL OR @KilepesDatum >= te.C_ESEMENYDATUMA)
AND te.C_TIPUS != 5482
GROUP BY tte.C_TANULOID, d.C_NAME
RETURN
END
GO

View file

@ -0,0 +1,99 @@
DROP FUNCTION IF EXISTS fnGetDokumentumTanulokGyorsFeljegyzeseiHavibontasban
GO
CREATE FUNCTION fnGetDokumentumTanulokGyorsFeljegyzeseiHavibontasban (
@tanevId int
,@osztalyId int
,@tipusID int
,@CsakOravalRendelkezo bit
,@FelevVege date
,@BelepesDatum datetime
,@KilepesDatum datetime)
RETURNS @result TABLE (
TanuloId int
,Tantargy nvarchar (255)
,Szeptember int
,Oktober int
,November int
,December int
,Januar int
,Februar int
,Marcius int
,Aprilis int
,Majus int
,Junius int
,Felev int
,Ossz int
)
AS BEGIN
DECLARE @kategoriaId int = (SELECT C_FELADATKATEGORIAID FROM T_OSZTALYCSOPORT_OSSZES WHERE ID = @osztalyId)
INSERT INTO @result
SELECT
tte.C_TANULOID AS TanuloId
,t.C_NEVNYOMTATVANYBAN AS Tantargy
,SUM(CASE WHEN DATEPART(MONTH, te.C_ESEMENYDATUMA) = 9 THEN 1 ELSE 0 END) AS Szeptember
,SUM(CASE WHEN DATEPART(MONTH, te.C_ESEMENYDATUMA) = 10 THEN 1 ELSE 0 END) AS Oktober
,SUM(CASE WHEN DATEPART(MONTH, te.C_ESEMENYDATUMA) = 11 THEN 1 ELSE 0 END) AS November
,SUM(CASE WHEN DATEPART(MONTH, te.C_ESEMENYDATUMA) = 12 THEN 1 ELSE 0 END) AS December
,SUM(CASE WHEN DATEPART(MONTH, te.C_ESEMENYDATUMA) = 1 THEN 1 ELSE 0 END) AS Januar
,SUM(CASE WHEN DATEPART(MONTH, te.C_ESEMENYDATUMA) = 2 THEN 1 ELSE 0 END) AS Februar
,SUM(CASE WHEN DATEPART(MONTH, te.C_ESEMENYDATUMA) = 3 THEN 1 ELSE 0 END) AS Marcius
,SUM(CASE WHEN DATEPART(MONTH, te.C_ESEMENYDATUMA) = 4 THEN 1 ELSE 0 END) AS Aprilis
,SUM(CASE WHEN DATEPART(MONTH, te.C_ESEMENYDATUMA) = 5 THEN 1 ELSE 0 END) AS Majus
,SUM(CASE WHEN DATEPART(MONTH, te.C_ESEMENYDATUMA) = 6 THEN 1 ELSE 0 END) AS Junius
,SUM(CASE WHEN te.C_ESEMENYDATUMA <= @FelevVege THEN 1 ELSE 0 END) AS Felev
,SUM(1) AS Ossz
FROM T_TANULO_TANULOESEMENY tte
INNER JOIN T_TANULOESEMENY_OSSZES te ON te.ID = tte.C_TANULOESEMENYID AND te.TOROLT = 'F'
INNER JOIN T_TANTARGY_OSSZES t ON t.ID = te.C_TANTARGYID AND t.TOROLT = 'F'
LEFT JOIN T_TANITASIORA_OSSZES tOra ON tOra.ID = te.C_TANITASIORAID AND tOra.Torolt = 'F'
LEFT JOIN T_OSZTALYCSOPORT_OSSZES ocs ON ocs.ID = tOra.C_OSZTALYCSOPORTID AND ocs.C_FELADATKATEGORIAID = @kategoriaId AND ocs.Torolt = 'F'
WHERE
tte.C_TANULOID IN (SELECT TanuloId FROM fnGetDokumentumOsztalyokCsoportokTanuloi(@tanevId, @osztalyId, 'T'))
AND te.TOROLT = 'F'
AND te.C_TIPUS = @tipusID
AND ((@CsakOravalRendelkezo = 1 AND (te.C_TANITASIORAID IS NOT NULL AND tOra.ID IS NOT NULL AND ocs.ID IS NOT NULL))
OR (@CsakOravalRendelkezo = 0 AND (te.C_TANITASIORAID IS NOT NULL AND tOra.ID IS NOT NULL AND ocs.ID IS NOT NULL) OR te.C_TANITASIORAID IS NULL)
)
AND @BelepesDatum <= te.C_ESEMENYDATUMA
AND (@KilepesDatum IS NULL OR @KilepesDatum >= te.C_ESEMENYDATUMA)
GROUP BY tte.C_TANULOID, t.C_NEVNYOMTATVANYBAN
UNION ALL
SELECT
tte.C_TANULOID AS TanuloId
,N'Összesen' AS Tantargy
,SUM(CASE WHEN DATEPART(MONTH, te.C_ESEMENYDATUMA) = 9 THEN 1 ELSE 0 END) AS Szeptember
,SUM(CASE WHEN DATEPART(MONTH, te.C_ESEMENYDATUMA) = 10 THEN 1 ELSE 0 END) AS Oktober
,SUM(CASE WHEN DATEPART(MONTH, te.C_ESEMENYDATUMA) = 11 THEN 1 ELSE 0 END) AS November
,SUM(CASE WHEN DATEPART(MONTH, te.C_ESEMENYDATUMA) = 12 THEN 1 ELSE 0 END) AS December
,SUM(CASE WHEN DATEPART(MONTH, te.C_ESEMENYDATUMA) = 1 THEN 1 ELSE 0 END) AS Januar
,SUM(CASE WHEN DATEPART(MONTH, te.C_ESEMENYDATUMA) = 2 THEN 1 ELSE 0 END) AS Februar
,SUM(CASE WHEN DATEPART(MONTH, te.C_ESEMENYDATUMA) = 3 THEN 1 ELSE 0 END) AS Marcius
,SUM(CASE WHEN DATEPART(MONTH, te.C_ESEMENYDATUMA) = 4 THEN 1 ELSE 0 END) AS Aprilis
,SUM(CASE WHEN DATEPART(MONTH, te.C_ESEMENYDATUMA) = 5 THEN 1 ELSE 0 END) AS Majus
,SUM(CASE WHEN DATEPART(MONTH, te.C_ESEMENYDATUMA) = 6 THEN 1 ELSE 0 END) AS Junius
,SUM(CASE WHEN te.C_ESEMENYDATUMA <= @FelevVege THEN 1 ELSE 0 END) AS Felev
,SUM(1) AS Ossz
FROM T_TANULO_TANULOESEMENY tte
INNER JOIN T_TANULOESEMENY_OSSZES te ON te.ID = tte.C_TANULOESEMENYID AND te.TOROLT = 'F'
INNER JOIN T_TANTARGY_OSSZES t ON t.ID = te.C_TANTARGYID AND t.TOROLT = 'F'
LEFT JOIN T_TANITASIORA_OSSZES tOra ON tOra.ID = te.C_TANITASIORAID AND tOra.Torolt = 'F'
LEFT JOIN T_OSZTALYCSOPORT_OSSZES ocs ON ocs.ID = tOra.C_OSZTALYCSOPORTID AND ocs.C_FELADATKATEGORIAID = @kategoriaId AND ocs.Torolt = 'F'
WHERE
tte.C_TANULOID IN (SELECT TanuloId FROM fnGetDokumentumOsztalyokCsoportokTanuloi(@tanevId, @osztalyId, 'T'))
AND te.TOROLT = 'F'
AND te.C_TIPUS = @tipusID
AND ((@CsakOravalRendelkezo = 1 AND (te.C_TANITASIORAID IS NOT NULL AND tOra.ID IS NOT NULL AND ocs.ID IS NOT NULL))
OR (@CsakOravalRendelkezo = 0 AND (te.C_TANITASIORAID IS NOT NULL AND tOra.ID IS NOT NULL AND ocs.ID IS NOT NULL) OR te.C_TANITASIORAID IS NULL)
)
AND @BelepesDatum <= te.C_ESEMENYDATUMA
AND (@KilepesDatum IS NULL OR @KilepesDatum >= te.C_ESEMENYDATUMA)
GROUP BY tte.C_TANULOID
RETURN
END
GO

View file

@ -0,0 +1,27 @@
IF OBJECT_ID('fnGetDokumentumTanulokOsztalybanToltottNapjai') IS NOT NULL BEGIN
DROP FUNCTION fnGetDokumentumTanulokOsztalybanToltottNapjai
END
GO
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
CREATE FUNCTION fnGetDokumentumTanulokOsztalybanToltottNapjai (@tanevId INT, @osztalyId INT)
RETURNS TABLE
RETURN (
SELECT
C_TANULOID TanuloId
, naptar.C_NAPDATUMA NapDatuma
FROM T_TANULOCSOPORT_OSSZES tcs
INNER JOIN T_NAPTARINAP_OSSZES naptar
ON
tcs.C_BELEPESDATUM <= naptar.C_NAPDATUMA
AND ISNULL(tcs.C_KILEPESDATUM, (SELECT C_DATUM FROM T_TANEVRENDJE_OSSZES WHERE C_NAPTIPUSA = 1395 AND C_TANEVID = @tanevId AND TOROLT = 'F')) >= naptar.C_NAPDATUMA
AND naptar.C_TANEVID = @tanevId
AND naptar.TOROLT = 'F'
WHERE
C_OSZTALYCSOPORTID = @osztalyId
AND tcs.TOROLT = 'F'
)

View file

@ -0,0 +1,37 @@
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
IF OBJECT_ID('fnGetDokumentumTanulokTanultTantargyai') IS NOT NULL
BEGIN
DROP FUNCTION fnGetDokumentumTanulokTanultTantargyai
END
GO
CREATE FUNCTION fnGetDokumentumTanulokTanultTantargyai (@tanevId INT, @osztalyCsoportId INT)
RETURNS @retTanuloTantargyai TABLE
(
TanuloId INT,
TanuloCsoportId INT,
TantargyNev NVARCHAR(MAX)
)
AS
BEGIN
DECLARE @UtolsoNapTanevRendje DATE = (SELECT TOP 1 C_DATUM FROM T_TANEVRENDJE_OSSZES WHERE C_NAPTIPUSA = 1395 AND C_TANEVID = @tanevId AND TOROLT = 'F')
INSERT INTO @retTanuloTantargyai
SELECT DISTINCT
OsztalyTanuloi.TanuloId TanuloId
,OsztalyTanuloi.TanuloCsoportId TanuloCsoportId
,Tantargy.C_NEV TantargyNev
FROM fnGetDokumentumOsztalyokCsoportokTanuloi(@tanevId, @osztalyCsoportId, 'T') OsztalyTanuloi
INNER JOIN T_TANULOCSOPORT_OSSZES TanuloCsoport ON OsztalyTanuloi.TanuloId = TanuloCsoport.C_TANULOID AND TanuloCsoport.TOROLT = 'F'
INNER JOIN T_FOGLALKOZAS_OSSZES Foglalkozas on TanuloCsoport.C_OSZTALYCSOPORTID = Foglalkozas.C_OSZTALYCSOPORTID AND Foglalkozas.TOROLT = 'F'
INNER JOIN T_TANTARGY_OSSZES Tantargy ON Tantargy.ID = Foglalkozas.C_TANTARGYID AND Tantargy.TOROLT = 'F'
WHERE
(TanuloCsoport.C_KILEPESDATUM IS NULL OR TanuloCsoport.C_KILEPESDATUM BETWEEN OsztalyTanuloi.BelepesDatum AND ISNULL(OsztalyTanuloi.KilepesDatum, @UtolsoNapTanevRendje))
RETURN
END
GO

View file

@ -0,0 +1,128 @@
DROP FUNCTION IF EXISTS fnGetElsoUtolsoTanitasiNapFelevVege
GO
CREATE FUNCTION fnGetElsoUtolsoTanitasiNapFelevVege(@tanevId INT, @osztalyCsoportId INT)
RETURNS @result TABLE
(
ElsoTanitasiNap datetime
,UtolsoTanitasiNap datetime
,FelevVege datetime
)
AS
BEGIN
DECLARE @isVegzos char(1) = (SELECT C_VEGZOSEVFOLYAM FROM T_OSZTALYCSOPORT_OSSZES WHERE ID = @osztalyCsoportId)
DECLARE @isKeresztfeleves char(1) = (SELECT C_KERESZTFELEVES FROM T_OSZTALYCSOPORT_OSSZES WHERE ID = @osztalyCsoportId)
DECLARE @utolsoNapForMindenVegzos datetime = (
SELECT TOP 1 C_DATUM
FROM (
SELECT C_DATUM
FROM T_TANEVRENDJE_OSSZES
WHERE C_OSSZESCSOPORTRAVONATKOZIK = 'T'
AND C_NAPTIPUSA IN (1402, 7600, 7601, 7603)
AND C_TANEVID = @tanevId
AND TOROLT = 'F') o ORDER BY C_DATUM)
DECLARE @utolsoNapForMindenNemVegzos datetime = (SELECT C_DATUM FROM T_TANEVRENDJE_OSSZES WHERE C_OSSZESCSOPORTRAVONATKOZIK = 'T' AND C_NAPTIPUSA = 1395 AND C_TANEVID = @tanevId AND TOROLT = 'F')
DECLARE @utolsoNapForOsztalyVegzos datetime = (
SELECT TOP 1 C_DATUM
FROM (
SELECT C_DATUM FROM T_TANEVRENDJE_OSSZES tr
INNER JOIN T_OSZTALYCSOPORT_TANEVRENDJE ocstr ON tr.ID = ocstr.C_TANEVRENDJEID
WHERE C_NAPTIPUSA IN (1402, 7600, 7601, 7603)
AND C_OSZTALYCSOPORTID = @osztalyCsoportId
AND tr.C_TANEVID = @tanevId
AND tr.TOROLT = 'F') o ORDER BY C_DATUM)
DECLARE @utolsoNapForOsztalyNemVegzos datetime = (
SELECT C_DATUM FROM T_TANEVRENDJE_OSSZES tr
INNER JOIN T_OSZTALYCSOPORT_TANEVRENDJE ocstr ON tr.ID = ocstr.C_TANEVRENDJEID
WHERE C_NAPTIPUSA = 1395 AND C_OSZTALYCSOPORTID = @osztalyCsoportId AND tr.TOROLT = 'F')
DECLARE @utolsoNapForMindenKeresztfelevesVegzos datetime = (SELECT C_DATUM FROM T_TANEVRENDJE_OSSZES WHERE C_OSSZESCSOPORTRAVONATKOZIK = 'T' AND C_NAPTIPUSA = 7602 AND C_TANEVID = @tanevId AND TOROLT = 'F')
DECLARE @utolsoNapForMindenKeresztfelevesNemVegzos datetime = (SELECT C_DATUM FROM T_TANEVRENDJE_OSSZES WHERE C_OSSZESCSOPORTRAVONATKOZIK = 'T' AND C_NAPTIPUSA = 1400 AND C_TANEVID = @tanevId AND TOROLT = 'F')
DECLARE @utolsoNapForOsztalyKeresztfelevesVegzos datetime = (
SELECT C_DATUM FROM T_TANEVRENDJE_OSSZES tr
INNER JOIN T_OSZTALYCSOPORT_TANEVRENDJE ocstr ON tr.ID = ocstr.C_TANEVRENDJEID
WHERE C_NAPTIPUSA = 7602 AND C_OSZTALYCSOPORTID = @osztalyCsoportId AND tr.TOROLT = 'F')
DECLARE @utolsoNapForOsztalyKeresztfelevesNemVegzos datetime = (
SELECT C_DATUM FROM T_TANEVRENDJE_OSSZES tr
INNER JOIN T_OSZTALYCSOPORT_TANEVRENDJE ocstr ON tr.ID = ocstr.C_TANEVRENDJEID
WHERE C_NAPTIPUSA = 1400 AND C_OSZTALYCSOPORTID = @osztalyCsoportId AND tr.TOROLT = 'F')
DECLARE @utolsoTanitasiNapTanev datetime = (SELECT TOP 1 C_UTOLSOTANITASINAP FROM T_TANEV_OSSZES WHERE ID = @tanevId AND TOROLT = 'F')
DECLARE @utolsoNap datetime
IF (@isKeresztfeleves = 'T')
BEGIN
IF (@isVegzos = 'T')
BEGIN
SET @utolsoNap = (SELECT COALESCE(@utolsoNapForOsztalyKeresztfelevesVegzos, @utolsoNapForMindenKeresztfelevesVegzos, @utolsoNapForOsztalyVegzos, @utolsoNapForMindenVegzos, @utolsoTanitasiNapTanev))
END
ELSE
BEGIN
SET @utolsoNap = (SELECT COALESCE(@utolsoNapForOsztalyKeresztfelevesNemVegzos, @utolsoNapForMindenKeresztfelevesNemVegzos, @utolsoNapForOsztalyNemVegzos, @utolsoNapForMindenNemVegzos, @utolsoTanitasiNapTanev))
END
END
ELSE
BEGIN
IF (@isVegzos = 'T')
BEGIN
SET @utolsoNap = (SELECT COALESCE(@utolsoNapForOsztalyVegzos, @utolsoNapForMindenVegzos, @utolsoTanitasiNapTanev))
END
ELSE
BEGIN
SET @utolsoNap = (SELECT COALESCE(@utolsoNapForOsztalyNemVegzos, @utolsoNapForMindenNemVegzos, @utolsoTanitasiNapTanev))
END
END
DECLARE @elsoNapForMinden datetime = (SELECT C_DATUM FROM T_TANEVRENDJE_OSSZES WHERE C_OSSZESCSOPORTRAVONATKOZIK = 'T' AND C_NAPTIPUSA = 1394 AND C_TANEVID = @tanevId AND TOROLT = 'F')
DECLARE @elsoNapForOsztaly datetime = (
SELECT C_DATUM FROM T_TANEVRENDJE_OSSZES tr
INNER JOIN T_OSZTALYCSOPORT_TANEVRENDJE ocstr ON tr.ID = ocstr.C_TANEVRENDJEID
WHERE C_NAPTIPUSA = 1394 AND C_OSZTALYCSOPORTID = @osztalyCsoportId AND tr.TOROLT = 'F')
DECLARE @elsoNapForMindenKeresztfeleves datetime = (SELECT C_DATUM FROM T_TANEVRENDJE_OSSZES WHERE C_OSSZESCSOPORTRAVONATKOZIK = 'T' AND C_NAPTIPUSA = 7604 AND C_TANEVID = @tanevId AND TOROLT = 'F')
DECLARE @elsoNapForOsztalyKeresztfeleves datetime = (
SELECT C_DATUM FROM T_TANEVRENDJE_OSSZES tr
INNER JOIN T_OSZTALYCSOPORT_TANEVRENDJE ocstr ON tr.ID = ocstr.C_TANEVRENDJEID
WHERE C_NAPTIPUSA = 7604 AND C_OSZTALYCSOPORTID = @osztalyCsoportId AND tr.TOROLT = 'F')
DECLARE @elsoTanitasiNapTanev datetime = (SELECT TOP 1 C_ELSOTANITASINAP FROM T_TANEV_OSSZES WHERE ID = @tanevId AND TOROLT = 'F')
DECLARE @elsoNap datetime
IF (@isKeresztfeleves = 'T')
BEGIN
SET @elsoNap = (SELECT COALESCE(@elsoNapForOsztalyKeresztfeleves, @elsoNapForMindenKeresztfeleves, @elsoNapForOsztaly, @elsoNapForMinden, @elsoTanitasiNapTanev))
END
ELSE
BEGIN
SET @elsoNap = (SELECT COALESCE(@elsoNapForOsztaly, @elsoNapForMinden, @elsoTanitasiNapTanev))
END
DECLARE @felevVegeForMinden datetime = (SELECT C_DATUM FROM T_TANEVRENDJE_OSSZES WHERE C_OSSZESCSOPORTRAVONATKOZIK = 'T' AND C_NAPTIPUSA = 1400 AND C_TANEVID = @tanevId AND TOROLT = 'F')
DECLARE @felevVegeForOsztaly datetime = (
SELECT C_DATUM FROM T_TANEVRENDJE_OSSZES tr
INNER JOIN T_OSZTALYCSOPORT_TANEVRENDJE ocstr ON tr.ID = ocstr.C_TANEVRENDJEID
WHERE C_NAPTIPUSA = 1400 AND C_OSZTALYCSOPORTID = @osztalyCsoportId AND tr.TOROLT = 'F')
DECLARE @felevVegeForMindenKeresztfeleves datetime = (SELECT C_DATUM FROM T_TANEVRENDJE_OSSZES WHERE C_OSSZESCSOPORTRAVONATKOZIK = 'T' AND C_NAPTIPUSA = 7605 AND C_TANEVID = @tanevId AND TOROLT = 'F')
DECLARE @felevVegeForOsztalyKeresztfeleves datetime = (
SELECT C_DATUM FROM T_TANEVRENDJE_OSSZES tr
INNER JOIN T_OSZTALYCSOPORT_TANEVRENDJE ocstr ON tr.ID = ocstr.C_TANEVRENDJEID
WHERE C_NAPTIPUSA = 7605 AND C_OSZTALYCSOPORTID = @osztalyCsoportId AND tr.TOROLT = 'F')
DECLARE @felevVege datetime
IF (@isKeresztfeleves = 'T')
BEGIN
SET @felevVege = (SELECT COALESCE(@felevVegeForOsztalyKeresztfeleves, @felevVegeForMindenKeresztfeleves, @felevVegeForOsztaly, @felevVegeForMinden))
END
ELSE
BEGIN
SET @felevVege = (SELECT COALESCE(@felevVegeForOsztaly, @felevVegeForMinden))
END
INSERT INTO @result
SELECT @elsoNap, @utolsoNap, @felevVege
RETURN
END
GO

View file

@ -0,0 +1,16 @@
DROP FUNCTION IF EXISTS dbo.fnGetEnvironmentName
GO
CREATE FUNCTION dbo.fnGetEnvironmentName(
@key nvarchar(200) = NULL)
RETURNS nvarchar(50)
BEGIN
DECLARE @value nvarchar(50)
SELECT @value = [Value]
FROM dev.EnvironmentInfo e
WHERE [Key] = ISNULL(@key,'Kornyezet')
RETURN @value
END;
GO

View file

@ -0,0 +1,118 @@
-- Az óra éves sorszáma tantárgy, osztálycsoport és tanár alapján
-- TELEK ÁKOS
-- 2017.03.03.
IF OBJECT_ID('dbo.fnGetEvesOraszam') IS NOT NULL BEGIN
DROP FUNCTION dbo.fnGetEvesOraszam
END
GO
CREATE FUNCTION dbo.fnGetEvesOraszam (
@tantargyId int
,@osztalycsoportId int
,@tanarId int
,@datum datetime
,@intezmenyId int
,@tanevId int
)
RETURNS int
AS
BEGIN
DECLARE
@tanarSzamit bit
,@osztalybontasEgybe bit
,@osztalybontasCsoport bit
,@cnt int
SET @tanarSzamit = dbo.fnGetRendszerbeallitasEnumBool(3075, @intezmenyId, @tanevId)
SET @osztalybontasEgybe = dbo.fnGetRendszerbeallitasEnumBool(3078, @intezmenyId, @tanevId)
SET @osztalybontasCsoport = 0
IF EXISTS (SELECT 1 FROM T_CSOPORT WHERE (ID = @osztalyCsoportId AND C_OSZTALYBONTASID IS NOT NULL) OR C_OSZTALYBONTASID = @osztalyCsoportId) BEGIN
SET @osztalybontasCsoport = 1
END
IF @osztalybontasEgybe = 0 OR @osztalybontasCsoport = 0 BEGIN
IF @tanarSzamit = 1 BEGIN
SELECT @cnt = COUNT(1)
FROM T_TANITASIORA_OSSZES t
WHERE t.C_MEGTARTOTT = 'T'
AND t.C_SORSZAMOZANDO = 'T'
AND t.C_TANTARGYID = @tantargyId
AND t.C_OSZTALYCSOPORTID = @osztalyCsoportId
AND t.C_TANARID = @tanarId
AND t.C_ORAKEZDETE <= @datum
AND t.TOROLT ='F'
END
ELSE BEGIN
SELECT @cnt = COUNT(1)
FROM T_TANITASIORA_OSSZES t
WHERE t.C_MEGTARTOTT = 'T'
AND t.C_SORSZAMOZANDO = 'T'
AND t.C_TANTARGYID = @tantargyId
AND t.C_OSZTALYCSOPORTID = @osztalyCsoportId
AND t.C_ORAKEZDETE <= @datum
AND t.TOROLT ='F'
END
END
ELSE BEGIN
IF @tanarSzamit = 1 BEGIN
SELECT @cnt = COUNT(1)
FROM T_TANITASIORA_OSSZES t
WHERE t.C_TANTARGYID = @tantargyId
AND t.C_OSZTALYCSOPORTID IN (
SELECT cs.ID
FROM T_CSOPORT cs
WHERE cs.C_OSZTALYBONTASID = (SELECT scs.C_OSZTALYBONTASID FROM T_CSOPORT scs WHERE scs.ID = @osztalyCsoportId)
AND cs.TOROLT = 'F'
UNION
SELECT cs.C_OSZTALYBONTASID
FROM T_CSOPORT cs
WHERE cs.ID = @osztalyCsoportId
AND cs.TOROLT = 'F'
UNION
SELECT cs.ID
FROM T_CSOPORT cs
WHERE cs.C_OSZTALYBONTASID = @osztalyCsoportId
AND cs.TOROLT = 'F'
UNION
SELECT @osztalyCsoportId
)
AND t.C_TANARID = @tanarId
AND t.C_ORAKEZDETE <= @datum
AND t.C_SORSZAMOZANDO = 'T'
AND t.C_MEGTARTOTT = 'T'
AND t.TOROLT ='F'
END
ELSE BEGIN
SELECT @cnt = COUNT(1)
FROM T_TANITASIORA_OSSZES t
WHERE t.C_TANTARGYID = @tantargyId
AND t.C_OSZTALYCSOPORTID IN (
SELECT cs.ID
FROM T_CSOPORT cs
WHERE cs.C_OSZTALYBONTASID = (SELECT scs.C_OSZTALYBONTASID FROM T_CSOPORT scs WHERE scs.ID = @osztalyCsoportId)
AND cs.TOROLT = 'F'
UNION
SELECT cs.C_OSZTALYBONTASID
FROM T_CSOPORT cs
WHERE cs.ID = @osztalyCsoportId
AND cs.TOROLT = 'F'
UNION
SELECT cs.ID
FROM T_CSOPORT cs
WHERE cs.C_OSZTALYBONTASID = @osztalyCsoportId
AND cs.TOROLT = 'F'
UNION
SELECT @osztalyCsoportId
)
AND t.C_ORAKEZDETE <= @datum
AND t.C_SORSZAMOZANDO = 'T'
AND t.C_MEGTARTOTT = 'T'
AND t.TOROLT = 'F'
END
END
RETURN @cnt
END
GO

View file

@ -0,0 +1,30 @@
-- Visszaadja a T_TANITASIORA.ID-hoz tartozó éves sorszámot
-- TELEK ÁKOS
-- 2017.03.03.
-- Új hívás, összerendelés implementálás
-- Zalán Máriusz
-- 2020.02.03
-- A letárolt éves óraszám visszaadása
-- Farkas Máté
-- 2022.02.01
DROP FUNCTION IF EXISTS fnGetEvesOraszamByTanitasiOraId
GO
CREATE FUNCTION dbo.fnGetEvesOraszamByTanitasiOraId (
@tanitasiOraId int
)
RETURNS int
AS
BEGIN
RETURN (
SELECT C_ORAEVESSORSZAMA
FROM T_TANITASIORA_OSSZES tn
WHERE ID = @tanitasiOraId
AND tn.C_MEGTARTOTT = 'T'
AND tn.TOROLT = 'F'
)
END
GO

View file

@ -0,0 +1,124 @@
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
DROP FUNCTION IF EXISTS [dbo].[fnGetEvesOraszamLista]
GO
CREATE FUNCTION [dbo].[fnGetEvesOraszamLista] (
@tantargyId int
,@osztalycsoportId int
,@tanarId int
,@datum datetime
,@intezmenyId int
,@tanevId int
)
RETURNS @return TABLE(Id int not null, EvesSorszam int)
AS
BEGIN
DECLARE @TanarSzamit bit = 0;
DECLARE @OsztalybontasEgybe bit = 0;
DECLARE @VanOsszerendeles bit = 0;
DECLARE @OsztalyTantargy TABLE(OsztalyCsoportId INT NOT NULL, TantargyId INT NOT NULL, TanarSzamit bit, PRIMARY KEY (OsztalyCsoportId, TantargyId));
DECLARE @KapcsolodoCsoportok TABLE(OsztalyCsoportId INT NOT NULL PRIMARY KEY);
-- Ellenőrizzük, hogy az átadott osztalycsoportId + @tantargyId páros előfordul-e sorszámozás összerendelésben
-- ha igen, akkor a hozzá tartozó sorszámozás halmaz alatt lévő összes összerendelésből az összes Osztálycsoport + Tantárgy
-- kombinációt + a tanári lebontást összegyűjtjük és betöltjük a tábla változóba (legfeljebb 1-3 sor)
INSERT INTO @OsztalyTantargy(OsztalyCsoportId, TantargyId, TanarSzamit)
SELECT oh.C_OSZTALYCSOPORTID, oh.C_TANTARGYID, IIF(h.C_KOZOSORASORSZAMOZASELTEROTAN = 'T', 1, 0)
FROM T_ORASORSZAMOZASHALMAZ_OSSZES h
INNER JOIN T_ORASORSZAMOZASHALMAZOSSZEREN_OSSZES oh ON h.ID = oh.C_ORASORSZAMOZASHALMAZID AND oh.TOROLT = 'F'
WHERE h.C_INTEZMENYID = @IntezmenyId
AND h.C_TANEVID = @TanevId
AND h.TOROLT = 'F'
AND EXISTS(
SELECT * FROM T_ORASORSZAMOZASHALMAZOSSZEREN_OSSZES o1
WHERE o1.C_INTEZMENYID = @intezmenyId
AND o1.C_TANEVID = @tanevId
AND o1.TOROLT = 'F'
AND o1.C_ORASORSZAMOZASHALMAZID = h.ID
AND o1.C_TANTARGYID = @tantargyId
AND o1.C_OSZTALYCSOPORTID = @osztalycsoportId
);
-- Elmentjük, hogy találtunk-e bármilyen összerendelést
IF @@ROWCOUNT > 0 SET @VanOsszerendeles = 1;
-- Ha nem találtunk összerendelést, akkor betöltjük az intézmény szintű beállításokat
IF @VanOsszerendeles = 0
BEGIN
SET @TanarSzamit = dbo.fnGetRendszerbeallitasEnumBool(3075, @IntezmenyId, @TanevId);
SET @OsztalybontasEgybe = dbo.fnGetRendszerbeallitasEnumBool(3078, @IntezmenyId, @TanevId);
END
-- Ha találtunk összerendelést, akkor az összes kombinációhoz lekérdezzük a tanóra listát
-- a tanári lebontás figyelembe vételével, ez lesz a függvény kimenete
IF @VanOsszerendeles = 1
INSERT INTO @return(Id, EvesSorszam)
SELECT
t.ID AS Id
,t.C_ORAEVESSORSZAMA AS EvesSorszam
FROM @OsztalyTantargy ot
INNER JOIN T_TANITASIORA_OSSZES t ON t.C_OSZTALYCSOPORTID = ot.OsztalyCsoportId AND t.C_TANTARGYID = ot.TantargyId
WHERE t.C_INTEZMENYID = @intezmenyId
AND t.C_TANEVID = @tanevId
AND t.C_TANARID = CASE WHEN ot.TanarSzamit = 1 THEN @tanarId ELSE t.C_TANARID END
AND t.TOROLT = 'F'
AND t.C_MEGTARTOTT = 'T'
AND t.C_SORSZAMOZANDO = 'T'
AND t.C_ORAKEZDETE <= @datum
ELSE -- Ha nem találtunk összerendeléseket
IF @OsztalybontasEgybe = 1 -- ha az intézményi szintű beállításokban az osztályok bontott csoportjait egybe kell sorszámozni
BEGIN
-- Megkeressük a megadott @osztalycsoportId-hoz tartozó esetleges bontott csoportokat és egy listába töltjük
INSERT INTO @KapcsolodoCsoportok(OsztalyCsoportId)
SELECT cs.ID
FROM T_CSOPORT_OSSZES cs
WHERE cs.C_ALINTEZMENYID = @IntezmenyId
AND cs.C_ALTANEVID = @TanevId
AND cs.TOROLT = 'F'
AND (cs.C_OSZTALYBONTASID = @osztalycsoportId OR cs.ID = @osztalycsoportId)
UNION -- az @osztalycsoportId-t mindenképp felvesszük a listára
SELECT @osztalycsoportId AS ID;
-- Lekérdezzük a kimenetre a csoport listához és a tantárgyhoz tartozó tanítási órákat, a tanári lebontás figyelembe vételével
INSERT INTO @return(Id, EvesSorszam)
SELECT
t.ID AS Id
,t.C_ORAEVESSORSZAMA AS EvesSorszam
FROM T_TANITASIORA_OSSZES t
WHERE t.C_INTEZMENYID = @intezmenyId
AND t.C_TANEVID = @tanevId
AND EXISTS(SELECT * FROM @KapcsolodoCsoportok kcs WHERE kcs.OsztalyCsoportId = t.C_OSZTALYCSOPORTID)
AND t.C_TANTARGYID = @tantargyId
AND t.C_TANARID = CASE WHEN @TanarSzamit = 1 THEN @tanarId ELSE t.C_TANARID END
AND t.TOROLT = 'F'
AND t.C_MEGTARTOTT = 'T'
AND t.C_SORSZAMOZANDO = 'T'
AND t.C_ORAKEZDETE <= @datum
END
ELSE -- Ha a bontott csoportok sorszámozása külön történik, akkor a megadott paraméterek alapján a kiementre küldjük a sorokat
INSERT INTO @return(Id, EvesSorszam)
SELECT
t.ID AS Id
,t.C_ORAEVESSORSZAMA AS EvesSorszam
FROM T_TANITASIORA_OSSZES t
WHERE t.C_INTEZMENYID = @intezmenyId
AND t.C_TANEVID = @tanevId
AND t.C_OSZTALYCSOPORTID = @osztalycsoportId
AND t.C_TANTARGYID = @tantargyId
AND t.C_TANARID = CASE WHEN @TanarSzamit = 1 THEN @tanarId ELSE t.C_TANARID END
AND t.TOROLT = 'F'
AND t.C_MEGTARTOTT = 'T'
AND t.C_SORSZAMOZANDO = 'T'
AND t.C_ORAKEZDETE <= @datum
RETURN;
END
GO

View file

@ -0,0 +1,29 @@
-- Visszaadja a T_TANITASIORA.ID-hoz tartozó éves sorszámot
-- TELEK ÁKOS
-- 2017.03.03.
-- Új hívás, összerendelés implementálás
-- Zalán Máriusz
-- 2020.02.03
-- A letárolt éves óraszám visszaadása
-- Farkas Máté
-- 2022.02.01
DROP FUNCTION IF EXISTS fnGetEvesOraszamListaByTanitasiOraId
GO
CREATE FUNCTION dbo.fnGetEvesOraszamListaByTanitasiOraId (
@tanitasiOraId int
)
RETURNS TABLE
AS
RETURN (
SELECT ID as Id, C_ORAEVESSORSZAMA as EvesSorszam
FROM T_TANITASIORA_OSSZES tn
WHERE ID = @tanitasiOraId
AND tn.C_MEGTARTOTT = 'T'
AND tn.TOROLT = 'F'
)
GO

View file

@ -0,0 +1,23 @@
DROP FUNCTION IF EXISTS dbo.fnGetFelhaszaloCim;
GO
CREATE FUNCTION [dbo].[fnGetFelhaszaloCim] (@pFelhasznaloId int)
RETURNS TABLE
RETURN (
SELECT TOP 1
c.ID, C_IRANYITOSZAM, C_VAROS, C_KOZTERULET, C_KOZTERULETJELLEGENEV, C_HAZSZAM, C_EMELET, C_AJTO, c.C_ORSZAG, ot.C_ISOKOD, dic.C_NAME
FROM T_CIM_OSSZES c
JOIN T_ORSZAGTIPUS_OSSZES ot on ot.ID = c.C_ORSZAG and c.C_TANEVID = ot.C_ALTANEVID
JOIN T_DICTIONARYITEMBASE_OSSZES dic on dic.ID = c.C_ORSZAG and dic.C_TANEVID = ot.C_ALTANEVID
WHERE
c.C_FELHASZNALOID = @pFelhasznaloId AND c.TOROLT = 'F' AND c.C_GONDVISELOID IS NULL
ORDER BY
CASE C_CIMTIPUSA
WHEN 907 THEN 1
WHEN 909 THEN 2
WHEN 908 THEN 3
WHEN 910 THEN 4
WHEN 8667 THEN 5
END
);
GO

View file

@ -0,0 +1,220 @@
DROP FUNCTION IF EXISTS fnGetFollowUpColumnMapping
GO
CREATE FUNCTION fnGetFollowUpColumnMapping (@ExludeColumns nvarchar(max) = NULL,@entityName nvarchar(128))
RETURNS @ColumnMapping TABLE (
insertColName nvarchar(max) COLLATE DATABASE_DEFAULT
,selectColName nvarchar(max)
,updateColName nvarchar(max)
) AS
BEGIN
SET @ExludeColumns = ISNULL(@ExludeColumns+',','')+'ID,CORE_ID'
DECLARE @excludedColumns TABLE(colName nvarchar(128) COLLATE DATABASE_DEFAULT)
INSERT INTO @excludedColumns
SELECT
value
FROM string_split(@ExludeColumns,',')
INSERT INTO @ColumnMapping (insertColName, selectColName) VALUES
('TOROLT','''F''')
,('SERIAL','0')
,('CREATOR','s.MODIFIER')
,('CREATED','s.LASTCHANGED')
,('ELOZOTANEVIREKORDID','s.ID')
INSERT INTO @ColumnMapping (insertColName,selectColName)
SELECT
c.name,'s.'+c.name
FROM sys.columns c
INNER JOIN sys.tables t ON t.object_id = c.object_id AND t.name = @entityName
WHERE c.NAME NOT IN (SELECT colName from @excludedColumns)
AND NOT EXISTS (SELECT 1 FROM @ColumnMapping WHERE insertColName = c.name)
DELETE FROM @ColumnMapping
WHERE NOT EXISTS (
SELECT
1
FROM sys.columns c
INNER JOIN sys.tables t ON t.object_id = c.object_id AND t.name = @entityName
WHERE c.NAME = insertColName)
DELETE @ColumnMapping WHERE insertColName IN (select colName FROM @excludedColumns)
UPDATE @ColumnMapping SET selectColName = '@kovetkezoTanevId' WHERE insertColName IN('C_TANEVID','C_ALTANEVID')
UPDATE @ColumnMapping SET selectColName = '@intezmenyId' WHERE insertColName IN('C_INTEZMENYID','C_ALINTEZMENYID')
IF @entityName = 'T_TANULO' BEGIN
UPDATE @ColumnMapping SET selectColName = '''F''' WHERE insertColName IN ('C_EVISMETLO', 'C_ISBESZAMITASOS', 'C_ISOSZTONDIJBOLKIZARVA', 'C_ISMULASZTASMIATTKIZART')
UPDATE @ColumnMapping SET selectColName = '''T''' WHERE insertColName IN ('C_ISATLAGSZAKKEPZESI', 'C_ISBESZAMITASOSFIXSZAZALEK')
END
ELSE IF @entityName IN('T_CIM','T_EMAIL','T_TELEFON') BEGIN
UPDATE @ColumnMapping SET selectColName = '@kovFelhasznaloId' WHERE insertColName = 'C_FELHASZNALOID'
END
ELSE IF @entityName IN('T_MUNKAUGYIADATOK','T_TOVABBIMUNKAUGYIADATOK') BEGIN
UPDATE @ColumnMapping SET selectColName = '@ujAlkalmazottId' WHERE insertColName = 'C_ALKALMAZOTTID'
UPDATE @ColumnMapping SET selectColName = 'f.ID' WHERE insertColName = 'C_FELADATELLATASIHELYID'
END
ELSE IF @entityName = 'T_ALKALMAZOTT' BEGIN
UPDATE @ColumnMapping SET selectColName = 's.ID' WHERE insertColName = 'ELOZOTANEVIREKORDIDA'
UPDATE @ColumnMapping SET selectColName = 'IIF((select ic.C_ERTEK from T_INTEZMENYCONFIG ic where ic.C_CONFIGTIPUSID = 23 and ic.TOROLT = ''F'' and ic.C_INTEZMENYID = @intezmenyId) = ''true'',s.C_KKKEPESITESID,NULL)' WHERE insertColName IN('C_KKKEPESITESID')
END
ELSE IF @entityName IN('T_KKTANITOVEZGETTSEG','T_KKGYOGYPEDVEGZETTSEG','T_KKTANARVEGZETTSEG','T_KKAMIVEGZETTSEG') BEGIN
UPDATE @ColumnMapping SET selectColName = '@kovAlkalmazottId' WHERE insertColName = 'C_ALKALMAZOTTID'
END
ELSE IF @entityName IN('T_KKELEKTROAKUZENE','T_KKKLASSZIKUSZENE','T_KKJAZZZENE','T_KKNEPZENE','T_KKTERULET') BEGIN
UPDATE @ColumnMapping SET selectColName = 'av.ID' WHERE insertColName = 'C_KKAMIVEGZETTSEGID'
END
ELSE IF @entityName = 'T_KKTANTARGYKATEGORIA' BEGIN
UPDATE @ColumnMapping SET selectColName = 'av.ID' WHERE insertColName = 'C_KKTANARVEGZETTSEGID'
END
ELSE IF @entityName IN ('T_PEDAGOGUSELETPALYAMODELL','T_VEGZETTSEG') BEGIN
UPDATE @ColumnMapping SET selectColName = 'fh.ID' WHERE insertColName = 'C_TANARID'
END
ELSE IF @entityName = 'T_KEPESITES_VEGZETTSEG' BEGIN
UPDATE @ColumnMapping SET selectColName = 'k.ID' WHERE insertColName = 'C_KEPESITESID'
UPDATE @ColumnMapping SET selectColName = 'vKov.ID' WHERE insertColName = 'C_VEGZETTSEGID'
END
ELSE IF @entityName = 'T_TANULOMENTESSEG' BEGIN
UPDATE @ColumnMapping SET selectColName = 'tgy.ID' WHERE insertColName = 'C_TANTARGYID'
UPDATE @ColumnMapping SET selectColName = 'tKov.ID' WHERE insertColName = 'C_TANULOID'
END
ELSE IF @entityName = 'T_TANULOSNI' BEGIN
UPDATE @ColumnMapping SET selectColName = 'tKov.ID' WHERE insertColName = 'C_TANULOID'
END
ELSE IF @entityName = 'T_GONDVISELO' BEGIN
UPDATE @ColumnMapping SET selectColName = 'fhNew.ID' WHERE insertColName = 'C_TANULOID'
END
ELSE IF @entityName = 'T_ORATERVTARGY' BEGIN
UPDATE @ColumnMapping SET selectColName = 'tgy.ID' WHERE insertColName = 'C_TANTARGYID'
UPDATE @ColumnMapping SET selectColName = 'otKov.ID' WHERE insertColName = 'C_ORATERVID'
END
ELSE IF @entityName = 'T_ORATERV' BEGIN
UPDATE @ColumnMapping SET selectColName = 'e.ID' WHERE insertColName = 'C_EVFOLYAM'
UPDATE @ColumnMapping SET selectColName = 'tr.ID' WHERE insertColName = 'C_TANTERVID'
END
ELSE IF @entityName = 'T_CSENGETESIREND' BEGIN
UPDATE @ColumnMapping SET selectColName = 'mh.ID' WHERE insertColName = 'C_MUKODESIHELYID'
END
ELSE IF @entityName = 'T_CSENGETESIRENDORA' BEGIN
UPDATE @ColumnMapping SET selectColName = 'csr.ID' WHERE insertColName = 'C_CSENGETESIRENDID'
END
ELSE IF @entityName = 'T_TEREM' BEGIN
UPDATE @ColumnMapping SET selectColName = 'mh.ID' WHERE insertColName = 'C_MUKODESIHELYID'
UPDATE @ColumnMapping SET selectColName = '@felelosId' WHERE insertColName = 'C_TEREMFELELOSID'
END
ELSE IF @entityName = 'T_FELADATELLATASIHELY' BEGIN
UPDATE @ColumnMapping SET selectColName = 'mh.ID' WHERE insertColName = 'C_MUKODESIHELYID'
UPDATE @ColumnMapping SET selectColName = 'okt.ID' WHERE insertColName = 'C_OKTATASINEVELESIFELADATTIPUS'
END
ELSE IF @entityName = 'T_TANTARGY' BEGIN
UPDATE @ColumnMapping SET selectColName = 'tkt.ID' WHERE insertColName = 'C_TARGYKATEGORIA'
UPDATE @ColumnMapping SET selectColName = 'tszt.ID' WHERE insertColName = 'C_TANSZAKTIPUSID'
UPDATE @ColumnMapping SET selectColName = 'ftgy.ID' WHERE insertColName = 'C_FOTARGYID'
END
ELSE IF @entityName = 'T_MUKODESIHELY' BEGIN
UPDATE @ColumnMapping SET selectColName = 'ia.ID' WHERE insertColName = 'C_INTEZMENYADATOKID'
END
ELSE IF @entityName = 'T_ESZKOZ' BEGIN
UPDATE @ColumnMapping SET selectColName = 'te.ID' WHERE insertColName = 'C_TEREMID'
UPDATE @ColumnMapping SET selectColName = 'fh.ID' WHERE insertColName = 'C_FELELOSID'
UPDATE @ColumnMapping SET selectColName = '@aktTipusId' WHERE insertColName = 'C_TIPUS'
END
ELSE IF @entityName = 'T_TANTARGYNYELV' BEGIN
UPDATE @ColumnMapping SET selectColName = 'tgy.ID' WHERE insertColName = 'C_TANTARGYID'
UPDATE @ColumnMapping SET selectColName = 'dib.ID' WHERE insertColName = 'C_NYELVID'
END
ELSE IF @entityName = 'T_TBJOGVISZONY' BEGIN
UPDATE @ColumnMapping SET selectColName = '@KovFelhasznaloId' WHERE insertColName = 'C_TANULOID'
END
UPDATE @ColumnMapping SET
updateColName = 's.'+insertColName
WHERE insertColName NOT IN (
'CREATED'
,'CREATOR'
,'ELOZOTANEVIREKORDID'
,'ELOZOTANEVIREKORDIDA'
,'C_INTEZMENYID'
,'C_TANEVID'
,'C_ALINTEZMENYID'
,'C_ALTANEVID'
,'C_ALKALMAZOTTID'
,'TOROLT'
,'C_KKAMIVEGZETTSEGID'
)
IF @entityName = 'T_TANULO' BEGIN
UPDATE @ColumnMapping SET updateColName = '''F''' WHERE insertColName IN ('C_EVISMETLO', 'C_ISBESZAMITASOS', 'C_ISOSZTONDIJBOLKIZARVA', 'C_ISMULASZTASMIATTKIZART')
UPDATE @ColumnMapping SET updateColName = '''T''' WHERE insertColName IN ('C_ISATLAGSZAKKEPZESI', 'C_ISBESZAMITASOSFIXSZAZALEK')
END
ELSE IF @entityName = 'T_KKTANTARGYKATEGORIA' BEGIN
UPDATE @ColumnMapping SET updateColName = NULL WHERE insertColName = 'C_KKTANARVEGZETTSEGID'
END
ELSE IF @entityName IN('T_MUNKAUGYIADATOK','T_TOVABBIMUNKAUGYIADATOK') BEGIN
UPDATE @ColumnMapping SET updateColName = 'f.ID' WHERE insertColName = 'C_FELADATELLATASIHELYID'
END
ELSE IF @entityName IN ('T_VEGZETTSEG','T_PEDAGOGUSELETPALYAMODELL') BEGIN
UPDATE @ColumnMapping SET updateColName = NULL WHERE insertColName = 'C_TANARID'
END
ELSE IF @entityName = 'T_TANULOMENTESSEG' BEGIN
UPDATE @ColumnMapping SET updateColName = 'tgy.ID' WHERE insertColName = 'C_TANTARGYID'
UPDATE @ColumnMapping SET updateColName = NULL WHERE insertColName = 'C_TANULOID'
END
ELSE IF @entityName = 'T_TANULOSNI' BEGIN
UPDATE @ColumnMapping SET updateColName = NULL WHERE insertColName = 'C_TANULOID'
END
ELSE IF @entityName = 'T_GONDVISELO' BEGIN
UPDATE @ColumnMapping SET updateColName = NULL WHERE insertColName IN ('C_TANULOID','C_EGYEDIAZONOSITO')
END
ELSE IF @entityName IN('T_CIM','T_TELEFON','T_EMAIL') BEGIN
UPDATE @ColumnMapping SET updateColName = NULL WHERE insertColName IN ('C_FELHASZNALOID','C_GONDVISELOID')
END
ELSE IF @entityName = 'T_ORATERVTARGY' BEGIN
UPDATE @ColumnMapping SET updateColName = NULL WHERE insertColName = 'C_ORATERVID'
UPDATE @ColumnMapping SET updateColname = 'tgy.ID' WHERE insertColName = 'C_TANTARGYID'
END
ELSE IF @entityName = 'T_ORATERV' BEGIN
UPDATE @ColumnMapping SET updateColName = 'e.ID' WHERE insertColName = 'C_EVFOLYAM'
UPDATE @ColumnMapping SET updateColName = NULL WHERE insertColName = 'C_TANTERVID'
END
ELSE IF @entityName = 'T_CSENGETESIREND' BEGIN
UPDATE @ColumnMapping SET updateColName = NULL WHERE insertColName = 'C_MUKODESIHELYID'
END
ELSE IF @entityName = 'T_CSENGETESIRENDORA' BEGIN
UPDATE @ColumnMapping SET updateColName = NULL WHERE insertColName = 'C_CSENGETESIRENDID'
END
ELSE IF @entityName = 'T_TEREM' BEGIN
UPDATE @ColumnMapping SET updateColName = 'mh.ID' WHERE insertColName = 'C_MUKODESIHELYID'
UPDATE @ColumnMapping SET updateColName = '@felelosId' WHERE insertColName = 'C_TEREMFELELOSID'
END
ELSE IF @entityName = 'T_FELADATELLATASIHELY' BEGIN
UPDATE @ColumnMapping SET updateColName = NULL WHERE insertColName = 'C_MUKODESIHELYID'
UPDATE @ColumnMapping SET updateColName = 'okt.ID' WHERE insertColName = 'C_OKTATASINEVELESIFELADATTIPUS'
END
ELSE IF @entityName = 'T_TANTARGY' BEGIN
UPDATE @ColumnMapping SET updateColName = 'tkt.ID' WHERE insertColName = 'C_TARGYKATEGORIA'
UPDATE @ColumnMapping SET updateColName = 'tszt.ID' WHERE insertColName = 'C_TANSZAKTIPUSID'
UPDATE @ColumnMapping SET updateColName = 'ftgy.ID' WHERE insertColName = 'C_FOTARGYID'
END
ELSE IF @entityName = 'T_MUKODESIHELY' BEGIN
UPDATE @ColumnMapping SET updateColName = NULL WHERE insertColName = 'C_INTEZMENYADATOKID'
END
ELSE IF @entityName = 'T_ESZKOZ' BEGIN
UPDATE @ColumnMapping SET updateColName = 'te.ID' WHERE insertColName = 'C_TEREMID'
UPDATE @ColumnMapping SET updateColName = 'fh.ID' WHERE insertColName = 'C_FELELOSID'
UPDATE @ColumnMapping SET updateColName = '@aktTipusId' WHERE insertColName = 'C_TIPUS'
END
ELSE IF @entityName = 'T_TANTARGYNYELV' BEGIN
UPDATE @ColumnMapping SET updateColName = NULL WHERE insertColName IN ('C_TANTARGYID','C_NYELVID')
END
ELSE IF @entityName = 'T_RENDSZERBEALLITAS' BEGIN
UPDATE @ColumnMapping SET updateColName = NULL WHERE insertColName IN ('C_ALAPERTEK','C_BEALLITASTIPUS','C_ERTEKTIPUS')
END
UPDATE @ColumnMapping SET
updateColName = 't.SERIAL + 1'
WHERE insertColName = 'SERIAL'
RETURN
END
GO

View file

@ -0,0 +1,20 @@
DROP FUNCTION IF EXISTS dbo.fnGetHetNapja
GO
CREATE FUNCTION dbo.fnGetHetNapja (
@date datetime
,@hetNapjaTipusTypeId int = 40
)
RETURNS int
BEGIN
DECLARE @value INT
SELECT @value = MIN(ID)
FROM T_DICTIONARYITEMBASE d
WHERE d.C_DICTIONARYTYPEID = @hetNapjaTipusTypeId
AND d.C_VALUE = DATEPART(dw, @date)
RETURN @value
END
GO

View file

@ -0,0 +1,58 @@
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
DROP FUNCTION IF EXISTS fnGetIktatottDokumentumok
GO
CREATE FUNCTION [dbo].[fnGetIktatottDokumentumok](
@pTanevId INT
)
RETURNS TABLE
AS
RETURN
SELECT
iktd.ID
,iktd.C_DOKUMENTUMKATEGORIA Kategoria
,iktd.C_DOKUMENTUMTIPUS DokumentumTipus
,iktd.C_DOKUMENTUMNEVE DokumentumNeve
,iktd.C_FELADATELLATASIHELYID FeladatellatasihelyId
,CASE
-- Ahol mûködési hely van megadva feladatellátási helynek
WHEN iktd.C_DOKUMENTUMTIPUS IN (7430) THEN
IIF (iktd.C_FELADATELLATASIHELYID IS NULL, '', CONCAT(igaziMukodHely.C_NEV, ' - ', DIBM.C_NAME))
-- feladatellátási hely van megadva
ELSE
IIF (iktd.C_FELADATELLATASIHELYID is NULL, '', CONCAT(mukodHely.C_NEV, ' - ', DIB.C_NAME))
END AS FeladatellatasihelyNeve
,iktd.C_IKTATOSZAM Iktatoszam
,CASE iktd.C_DOKUMENTUMSTATUSZ
WHEN 7387 THEN iktd.C_GENERALASDATUMA
WHEN 7388 THEN iktd.C_IKTATASDATUMA
ELSE iktd.C_ELEKTRONIKUSPELDANYFELTOLTES
END IktatasDatuma
,felhasznalo.C_NYOMTATASINEV IktatoSzemelye
,iktd.C_DOKUMENTUMSTATUSZ Statusz
,tanev.C_NEV TanevNev
,iktd.C_ELEKTRONIKUSPELDANYID ElektronikusPeldanyId
,iktd.C_FOSZAMOSIKTATOTTDOKUMENTUMID FoszamosDokumentumId
,iktd.C_ISFOSZAMOS IsFoszamos
,iktd.TOROLT Torolt
FROM T_IKTATOTTDOKUMENTUM_OSSZES iktd
LEFT JOIN T_TANEV_OSSZES tanev ON tanev.ID = iktd.C_TANEVID and tanev.TOROLT = 'F'
LEFT JOIN T_FELHASZNALO_OSSZES felhasznalo ON felhasznalo.ID = iktd.C_IKTATOSZEMELYID and felhasznalo.TOROLT = 'F'
LEFT JOIN T_FELADATELLATASIHELY_OSSZES feh ON feh.ID = iktd.C_FELADATELLATASIHELYID and feh.TOROLT = 'F'
LEFT JOIN T_MUKODESIHELY_OSSZES mukodHely ON feh.C_MUKODESIHELYID = mukodHely.ID and mukodHely.TOROLT = 'F'
LEFT JOIN T_DICTIONARYITEMBASE_OSSZES DIB ON feh.C_OKTATASINEVELESIFELADATTIPUS = DIB.ID
AND feh.C_INTEZMENYID = DIB.C_INTEZMENYID
AND feh.C_TANEVID = DIB.C_TANEVID
AND DIB.TOROLT = 'F'
LEFT JOIN T_MUKODESIHELY_OSSZES igaziMukodHely ON iktd.C_FELADATELLATASIHELYID = igaziMukodHely.ID and igaziMukodHely.TOROLT = 'F'
LEFT JOIN T_FELADATELLATASIHELY_OSSZES igaziFeh ON igaziFeh.C_MUKODESIHELYID = igaziMukodHely.ID and igaziFeh.TOROLT = 'F'
LEFT JOIN T_DICTIONARYITEMBASE_OSSZES DIBM ON igaziFeh.C_OKTATASINEVELESIFELADATTIPUS = DIBM.ID
AND igaziFeh.C_INTEZMENYID = DIBM.C_INTEZMENYID
AND igaziFeh.C_TANEVID = DIBM.C_TANEVID
AND DIBM.TOROLT = 'F'
WHERE iktd.C_TANEVID = @pTanevId
GO

View file

@ -0,0 +1,174 @@
DROP FUNCTION IF EXISTS dbo.fnGetKapcsolodoOsztalyCsoportokByDateRange
GO
CREATE FUNCTION dbo.fnGetKapcsolodoOsztalyCsoportokByDateRange (
@pOsztalyCsoportId int
,@pStartDate datetime
,@pEndDate datetime
,@pIntezmenyId int
,@pTanevId int
)
RETURNS @Result TABLE (
Id int primary key NOT NULL
,Kezdete datetime NOT NULL
,Vege datetime NOT NULL
) AS
BEGIN
DECLARE
@tanevStart datetime
,@tanevEnd datetime
,@osztalyId int
DECLARE @kategoriaId int = (SELECT C_FELADATKATEGORIAID FROM T_OSZTALYCSOPORT_OSSZES WHERE ID = @pOsztalyCsoportId)
IF EXISTS (SELECT 1 FROM T_OSZTALY_OSSZES WHERE ID = @pOsztalyCsoportId) BEGIN
INSERT INTO @Result (Id, Kezdete, Vege) /* maga az osztály */
SELECT
o.Id
,@pStartDate
,@pEndDate
FROM T_OSZTALY_OSSZES o
WHERE o.ID = @pOsztalyCsoportId
AND o.C_ALTANEVID = @pTanevID
AND o.C_ALINTEZMENYID = @pIntezmenyId
AND o.TOROLT = 'F'
UNION ALL
SELECT /* Az osztály bontott csoportjai */
cs.ID
,@pStartDate
,@pEndDate
FROM T_CSOPORT_OSSZES cs
WHERE C_OSZTALYBONTASID = @pOsztalyCsoportId
AND cs.TOROLT = 'F'
AND cs.C_ALTANEVID = @pTanevID
AND cs.C_ALINTEZMENYID = @pIntezmenyId
INSERT INTO @Result (Id, Kezdete, Vege) /* Az osztály tanulóinak más csoportjai */
SELECT
tcs.C_OSZTALYCSOPORTID AS Id
,CASE
WHEN MIN(tcs.C_BELEPESDATUM) > MIN(oszt.C_BELEPESDATUM) AND MIN(tcs.C_BELEPESDATUM) > @pStartDate THEN MIN(tcs.C_BELEPESDATUM)
WHEN MIN(oszt.C_BELEPESDATUM) > MIN(tcs.C_BELEPESDATUM) AND MIN(oszt.C_BELEPESDATUM) > @pStartDate THEN MIN(oszt.C_BELEPESDATUM)
ELSE @pStartDate
END AS Kezdete -- A három közül a legnagyobb
,CASE
WHEN MAX(ISNULL(tcs.C_KILEPESDATUM, @pEndDate)) < MAX(ISNULL(oszt.C_KILEPESDATUM, @pEndDate)) AND MAX(ISNULL(tcs.C_KILEPESDATUM, @pEndDate)) < @pEndDate THEN MIN(ISNULL(tcs.C_KILEPESDATUM, @pEndDate))
WHEN MAX(ISNULL(oszt.C_KILEPESDATUM, @pEndDate)) < MAX(ISNULL(tcs.C_KILEPESDATUM, @pEndDate)) AND MAX(ISNULL(oszt.C_KILEPESDATUM, @pEndDate)) < @pEndDate THEN MIN(ISNULL(oszt.C_KILEPESDATUM, @pEndDate))
ELSE @pEndDate -- A három közül a legkisebb
END AS Vege
FROM T_TANULOCSOPORT_OSSZES tcs
INNER JOIN T_TANULOCSOPORT_OSSZES oszt
ON oszt.C_TANULOID = tcs.C_TANULOID
AND oszt.C_OSZTALYCSOPORTID = @pOsztalyCsoportId
AND oszt.C_BELEPESDATUM <= @pEndDate
AND (oszt.C_KILEPESDATUM > @pStartDate OR oszt.C_KILEPESDATUM IS NULL)
INNER JOIN T_CSOPORT_OSSZES cs ON cs.ID = tcs.C_OSZTALYCSOPORTID AND cs.C_OSZTALYBONTASID IS NULL
INNER JOIN T_OSZTALYCSOPORT_OSSZES ocs ON ocs.ID = cs.ID AND ocs.TOROLT = 'F' AND ocs.C_FELADATKATEGORIAID = @kategoriaId
WHERE tcs.TOROLT = 'F'
AND oszt.TOROLT = 'F'
AND tcs.C_TANEVID = @pTanevId
AND tcs.C_INTEZMENYID = @pIntezmenyId
AND tcs.C_BELEPESDATUM <= @pEndDate
AND (tcs.C_KILEPESDATUM > @pStartDate OR tcs.C_KILEPESDATUM IS NULL)
AND NOT EXISTS (SELECT 1 FROM @Result r WHERE r.ID = tcs.C_OSZTALYCSOPORTID)
GROUP BY tcs.C_OSZTALYCSOPORTID
END
IF EXISTS (SELECT 1 FROM T_CSOPORT_OSSZES WHERE ID = @pOsztalyCsoportId AND C_OSZTALYBONTASID IS NOT NULL AND TOROLT = 'F') BEGIN
SELECT @osztalyId = C_OSZTALYBONTASID FROM T_CSOPORT_OSSZES WHERE ID = @pOsztalyCsoportId
INSERT INTO @Result (Id, Kezdete, Vege) /* Az osztály, amelyiknek a bontása */
SELECT
@osztalyId
,@pStartDate
,@pEndDate
UNION ALL
SELECT /* Maga a csoport */
@pOsztalyCsoportId
,@pStartDate
,@pEndDate
INSERT INTO @Result (Id, Kezdete, Vege) /* Az csoport tanulóinak más csoportjai */
SELECT
tcs.C_OSZTALYCSOPORTID AS Id
,CASE
WHEN MIN(tcs.C_BELEPESDATUM) > MIN(csop.C_BELEPESDATUM) AND MIN(tcs.C_BELEPESDATUM) > @pStartDate THEN MIN(tcs.C_BELEPESDATUM)
WHEN MIN(csop.C_BELEPESDATUM) > MIN(tcs.C_BELEPESDATUM) AND MIN(csop.C_BELEPESDATUM) > @pStartDate THEN MIN(csop.C_BELEPESDATUM)
ELSE @pStartDate
END AS Kezdete -- A három közül a legnagyobb
,CASE
WHEN MAX(ISNULL(tcs.C_KILEPESDATUM, @pEndDate)) < MAX(ISNULL(csop.C_KILEPESDATUM, @pEndDate)) AND MAX(ISNULL(tcs.C_KILEPESDATUM, @pEndDate)) < @pEndDate THEN MIN(ISNULL(tcs.C_KILEPESDATUM, @pEndDate))
WHEN MAX(ISNULL(csop.C_KILEPESDATUM, @pEndDate)) < MAX(ISNULL(tcs.C_KILEPESDATUM, @pEndDate)) AND MAX(ISNULL(csop.C_KILEPESDATUM, @pEndDate)) < @pEndDate THEN MIN(ISNULL(csop.C_KILEPESDATUM, @pEndDate))
ELSE @pEndDate
END AS Vege -- A három közül a legkisebb
FROM T_TANULOCSOPORT_OSSZES tcs
INNER JOIN T_TANULOCSOPORT_OSSZES csop
ON tcs.C_TANULOID = csop.C_TANULOID
AND csop.C_OSZTALYCSOPORTID = @pOsztalyCsoportId
AND csop.C_BELEPESDATUM <= @pEndDate
AND (csop.C_KILEPESDATUM > @pStartDate OR csop.C_KILEPESDATUM IS NULL)
AND csop.TOROLT = 'F'
INNER JOIN T_CSOPORT_OSSZES cs
ON cs.ID = tcs.C_OSZTALYCSOPORTID
AND (cs.C_OSZTALYBONTASID IS NULL OR cs.C_OSZTALYBONTASID = @osztalyId)
INNER JOIN T_OSZTALYCSOPORT_OSSZES ocs ON ocs.ID = cs.ID AND ocs.TOROLT='F' AND ocs.C_FELADATKATEGORIAID = @kategoriaId
WHERE tcs.C_OSZTALYCSOPORTID <> @pOsztalyCsoportId
AND tcs.C_TANEVID = @pTanevId
AND tcs.C_INTEZMENYID = @pIntezmenyId
AND tcs.C_BELEPESDATUM <= @pEndDate
AND (tcs.C_KILEPESDATUM > @pStartDate OR tcs.C_KILEPESDATUM IS NULL)
AND tcs.TOROLT = 'F' AND csop.TOROLT = 'F'
GROUP BY tcs.C_OSZTALYCSOPORTID
END
IF EXISTS (SELECT 1 FROM T_CSOPORT_OSSZES WHERE ID = @pOsztalyCsoportId AND C_OSZTALYBONTASID IS NULL AND TOROLT = 'F') BEGIN
INSERT INTO @Result (Id, Kezdete, Vege) /* Az csoport tanulóinak más csoportjai */
SELECT
tcs.C_OSZTALYCSOPORTID AS Id
,CASE
WHEN MIN(tcs.C_BELEPESDATUM) > MIN(csop.C_BELEPESDATUM) AND MIN(tcs.C_BELEPESDATUM) > @pStartDate THEN MIN(tcs.C_BELEPESDATUM)
WHEN MIN(csop.C_BELEPESDATUM) > MIN(tcs.C_BELEPESDATUM) AND MIN(csop.C_BELEPESDATUM) > @pStartDate THEN MIN(csop.C_BELEPESDATUM)
ELSE @pStartDate
END AS Kezdete -- A három közül a legnagyobb
,CASE
WHEN MAX(ISNULL(tcs.C_KILEPESDATUM, @pEndDate)) < MAX(ISNULL(csop.C_KILEPESDATUM, @pEndDate)) AND MAX(ISNULL(tcs.C_KILEPESDATUM, @pEndDate)) < @pEndDate THEN MIN(ISNULL(tcs.C_KILEPESDATUM, @pEndDate))
WHEN MAX(ISNULL(csop.C_KILEPESDATUM, @pEndDate)) < MAX(ISNULL(tcs.C_KILEPESDATUM, @pEndDate)) AND MAX(ISNULL(csop.C_KILEPESDATUM, @pEndDate)) < @pEndDate THEN MIN(ISNULL(csop.C_KILEPESDATUM, @pEndDate))
ELSE @pEndDate
END AS Vege -- A három közül a legkisebb
FROM T_TANULOCSOPORT_OSSZES tcs
INNER JOIN T_TANULOCSOPORT_OSSZES csop
ON tcs.C_TANULOID = csop.C_TANULOID
AND csop.C_OSZTALYCSOPORTID = @pOsztalyCsoportId
AND csop.C_BELEPESDATUM <= @pEndDate
AND (csop.C_KILEPESDATUM > @pStartDate OR csop.C_KILEPESDATUM IS NULL)
AND csop.TOROLT = 'F'
AND csop.C_BELEPESDATUM <= ISNULL(tcs.C_KILEPESDATUM, @pEndDate) AND ISNULL(csop.C_KILEPESDATUM, @pEndDate) > tcs.C_BELEPESDATUM
INNER JOIN T_OSZTALYCSOPORT_OSSZES ocs ON ocs.ID = tcs.C_OSZTALYCSOPORTID AND ocs.TOROLT='F' AND ocs.C_FELADATKATEGORIAID = @kategoriaId
WHERE tcs.C_TANEVID = @pTanevId
AND tcs.C_INTEZMENYID = @pIntezmenyId
AND tcs.C_BELEPESDATUM <= @pEndDate
AND (tcs.C_KILEPESDATUM > @pStartDate OR tcs.C_KILEPESDATUM IS NULL)
AND tcs.TOROLT = 'F' AND csop.TOROLT = 'F'
GROUP BY tcs.C_OSZTALYCSOPORTID
IF NOT EXISTS (SELECT 1 FROM @Result WHERE ID = @pOsztalyCsoportId) BEGIN
INSERT INTO @Result (Id, Kezdete, Vege)
SELECT
@pOsztalyCsoportId AS Id
,t.C_KEZDONAP as Kezdete
,t.C_UTOLSONAP as Vege
FROM T_TANEV t
WHERE t.ID = @pTanevId
END
END
RETURN
END
GO

View file

@ -0,0 +1,64 @@
/*
Minden olyan esetben amikor egy osztályhoz tartozó csoportokat kell meghatározni,
akkor az alábbi módon kell ezeket megadni:
a. Egy osztályhoz tartozik minden olyan csoport, amelynek tagja az osztály bármelyik tanulója.
Tehát ha egy osztályból akár egyetlen tanuló is tagja egy csoportnak, akkor az az osztályhoz is kapcsolódik.
b. Továbbá egy osztályhoz mindig kapcsolódnak az osztálybontásosnak jelölt csoportjaik is,
függetlenül attól, hogy abban van-e tanuló!
*/
DROP FUNCTION IF EXISTS fnGetKapcsolodoOsztalycsoportok
GO
CREATE FUNCTION fnGetKapcsolodoOsztalycsoportok (
@osztalyCsoportId int
)
RETURNS @ocs TABLE (ID int)
AS BEGIN
DECLARE @kategoriaId int = (SELECT C_FELADATKATEGORIAID FROM T_OSZTALYCSOPORT_OSSZES WHERE ID = @osztalyCsoportId)
INSERT INTO @ocs
SELECT @osztalyCsoportId AS ID /* Önmaga */
UNION
SELECT ID /* Osztály esetén, a bontott csoportok */
FROM T_CSOPORT_OSSZES
WHERE C_OSZTALYBONTASID = @osztalyCsoportId AND TOROLT = 'F'
UNION
SELECT C_OSZTALYBONTASID AS ID /* Csoport esetén, a ha bontott, akkor az osztálya */
FROM T_CSOPORT_OSSZES
WHERE ID = @osztalyCsoportId
AND C_OSZTALYBONTASID IS NOT NULL AND TOROLT = 'F'
UNION
SELECT ID /* Csoport esetén, a ha bontott, akkor az osztályának a többi csoportbontása */
FROM T_CSOPORT_OSSZES
WHERE C_OSZTALYBONTASID IN (
SELECT C_OSZTALYBONTASID FROM T_CSOPORT_OSSZES
WHERE ID = @osztalyCsoportId AND TOROLT = 'F'
) AND TOROLT ='F'
UNION
SELECT tcs2.C_OSZTALYCSOPORTID /* Azok az osztálycsoportok, ahová járnak tanulók a @osztalyCsoportId-ból */
FROM T_TANULOCSOPORT_OSSZES tcs
INNER JOIN T_TANULOCSOPORT_OSSZES tcs2 ON tcs2.C_TANULOID = tcs.C_TANULOID
INNER JOIN T_OSZTALYCSOPORT_OSSZES ocs ON ocs.ID = tcs2.C_OSZTALYCSOPORTID
--NOTE: A T_CSOPORT_OSSZES INNER JOIN-ra azért van szükség, mert az AMI-nál visszaadná a többi osztályt is, amibe még jár, de azok nem kapcsolódóak.
INNER JOIN T_CSOPORT_OSSZES cs ON cs.ID = ocs.ID AND cs.C_OSZTALYBONTASID IS NULL
INNER JOIN T_TANEV_OSSZES tanev ON tanev.ID = tcs.C_TANEVID AND tanev.TOROLT = 'F'
WHERE tcs.C_OSZTALYCSOPORTID = @osztalyCsoportId
AND tcs.C_BELEPESDATUM <= GETDATE() AND (tcs.C_KILEPESDATUM > GETDATE() OR tcs.C_KILEPESDATUM IS NULL OR tcs.C_KILEPESDATUM >= tanev.C_UTOLSOTANITASINAP)
AND tcs2.C_BELEPESDATUM <= GETDATE() AND (tcs2.C_KILEPESDATUM > GETDATE() OR tcs2.C_KILEPESDATUM IS NULL OR tcs2.C_KILEPESDATUM >= tanev.C_UTOLSOTANITASINAP)
AND tcs.TOROLT = 'F'
AND tcs2.TOROLT = 'F'
AND ocs.C_FELADATKATEGORIAID = @kategoriaId
RETURN
END
GO

View file

@ -0,0 +1,64 @@
/*
Minden olyan esetben amikor egy osztályhoz tartozó csoportokat kell meghatározni,
akkor az alábbi módon kell ezeket megadni:
a. Egy osztályhoz tartozik minden olyan csoport, amelynek tagja az osztály bármelyik tanulója.
Tehát ha egy osztályból akár egyetlen tanuló is tagja egy csoportnak, akkor az az osztályhoz is kapcsolódik.
b. Továbbá egy osztályhoz mindig kapcsolódnak az osztálybontásosnak jelölt csoportjaik is,
függetlenül attól, hogy abban van-e tanuló!
*/
DROP FUNCTION IF EXISTS fnGetKapcsolodoOsztalycsoportokByDate
GO
CREATE FUNCTION fnGetKapcsolodoOsztalycsoportokByDate (
@osztalyCsoportId int
,@start datetime
,@end datetime
)
RETURNS @ocs TABLE (ID int)
AS BEGIN
DECLARE @kategoriaId int = (SELECT C_FELADATKATEGORIAID FROM T_OSZTALYCSOPORT_OSSZES WHERE ID = @osztalyCsoportId)
INSERT INTO @ocs
SELECT @osztalyCsoportId AS ID /* Önmaga */
UNION
SELECT ID /* Osztály esetén, a bontott csoportok */
FROM T_CSOPORT_OSSZES
WHERE C_OSZTALYBONTASID = @osztalyCsoportId AND TOROLT = 'F'
UNION
SELECT C_OSZTALYBONTASID AS ID /* Csoport esetén, a ha bontott, akkor az osztálya */
FROM T_CSOPORT_OSSZES
WHERE ID = @osztalyCsoportId
AND C_OSZTALYBONTASID IS NOT NULL AND TOROLT = 'F'
UNION
SELECT ID /* Csoport esetén, a ha bontott, akkor az osztályának a többi csoportbontása */
FROM T_CSOPORT_OSSZES
WHERE C_OSZTALYBONTASID IN (
SELECT C_OSZTALYBONTASID FROM T_CSOPORT_OSSZES
WHERE ID = @osztalyCsoportId AND TOROLT = 'F'
) AND TOROLT ='F'
UNION
SELECT tcs2.C_OSZTALYCSOPORTID /* Azok az osztálycsoportok, ahová járnak tanulók a @osztalyCsoportId-ból */
FROM T_TANULOCSOPORT_OSSZES tcs
INNER JOIN T_TANULOCSOPORT_OSSZES tcs2 ON tcs2.C_TANULOID = tcs.C_TANULOID
INNER JOIN T_OSZTALYCSOPORT_OSSZES ocs ON ocs.ID = tcs2.C_OSZTALYCSOPORTID and ocs.TOROLT='F'
WHERE tcs.C_OSZTALYCSOPORTID = @osztalyCsoportId
AND tcs.C_BELEPESDATUM <= @end AND (tcs.C_KILEPESDATUM > @start OR tcs.C_KILEPESDATUM IS NULL)
AND tcs2.C_BELEPESDATUM <= @end AND (tcs2.C_KILEPESDATUM > @start OR tcs2.C_KILEPESDATUM IS NULL)
AND tcs.TOROLT = 'F'
AND tcs2.TOROLT = 'F'
AND ocs.C_FELADATKATEGORIAID = @kategoriaId
RETURN
END
GO

View file

@ -0,0 +1,40 @@
DROP FUNCTION IF EXISTS [dbo].[fnGetKapcsolodoTantargyak]
GO
CREATE FUNCTION [dbo].[fnGetKapcsolodoTantargyak] (
@pIntezmenyId INT
,@pTanevId INT
,@pTantargyId INT
)
RETURNS @return TABLE (
ID INT
,C_FOTARGYID INT
,C_NEV NVARCHAR(255)
,C_TARGYKATEGORIA INT
,C_INTEZMENYID INT
,C_TANEVID INT
,C_ISTANULMANYIATLAGBANEMSZAMIT CHAR(1)
)
BEGIN
IF @pTantargyId IS NULL
BEGIN
INSERT INTO @return
SELECT ID, C_FOTARGYID, C_NEV, C_TARGYKATEGORIA, C_INTEZMENYID, C_TANEVID, C_ISTANULMANYIATLAGBANEMSZAMIT FROM T_TANTARGY_OSSZES WHERE C_INTEZMENYID = @pIntezmenyId AND C_TANEVID = @pTanevId AND TOROLT = 'F'
END
ELSE
BEGIN
INSERT INTO @return
SELECT ID, C_FOTARGYID, C_NEV, C_TARGYKATEGORIA, C_INTEZMENYID, C_TANEVID, C_ISTANULMANYIATLAGBANEMSZAMIT FROM T_TANTARGY_OSSZES WHERE ID = @pTantargyId AND C_INTEZMENYID = @pIntezmenyId AND C_TANEVID = @pTanevId AND TOROLT = 'F'
UNION
SELECT ID, C_FOTARGYID, C_NEV, C_TARGYKATEGORIA, C_INTEZMENYID, C_TANEVID, C_ISTANULMANYIATLAGBANEMSZAMIT FROM T_TANTARGY_OSSZES WHERE C_FOTARGYID = @pTantargyId AND C_INTEZMENYID = @pIntezmenyId AND C_TANEVID = @pTanevId AND TOROLT = 'F'
UNION
SELECT ID, C_FOTARGYID, C_NEV, C_TARGYKATEGORIA, C_INTEZMENYID, C_TANEVID, C_ISTANULMANYIATLAGBANEMSZAMIT FROM T_TANTARGY_OSSZES WHERE C_FOTARGYID = (SELECT C_FOTARGYID FROM T_TANTARGY_OSSZES WHERE ID = @pTantargyId AND C_INTEZMENYID = @pIntezmenyId AND C_TANEVID = @pTanevId AND TOROLT = 'F') AND C_INTEZMENYID = @pIntezmenyId AND C_TANEVID = @pTanevId AND TOROLT = 'F'
UNION
SELECT ID, C_FOTARGYID, C_NEV, C_TARGYKATEGORIA, C_INTEZMENYID, C_TANEVID, C_ISTANULMANYIATLAGBANEMSZAMIT FROM T_TANTARGY_OSSZES WHERE ID = (SELECT C_FOTARGYID FROM T_TANTARGY_OSSZES WHERE ID = @pTantargyId AND C_INTEZMENYID = @pIntezmenyId AND C_TANEVID = @pTanevId AND TOROLT = 'F') AND C_INTEZMENYID = @pIntezmenyId AND C_TANEVID = @pTanevId AND TOROLT = 'F'
ORDER BY C_FOTARGYID ASC, C_NEV ASC
END
RETURN
END
GO

View file

@ -0,0 +1,26 @@
DROP FUNCTION IF EXISTS fnGetLathatoSzervezetek
GO
CREATE FUNCTION fnGetLathatoSzervezetek (
@pIntezmenyId INT
,@pTanevId INT
,@pSzervezetId INT = NULL
,@pAdatokHalmaza INT = 0 -- 0: megadott szervezet és alszervezetei, 1: megadott szervezet (SzervezetId = NULL esetén az ősszes székhely), 2: megadott szervezet alszervezetei
)
RETURNS TABLE
RETURN (
SELECT
ID
FROM T_SZERVEZET_OSSZES sz
WHERE sz.TOROLT = 'F'
AND sz.C_TANEVID = @pTanevId
AND sz.C_INTEZMENYID = @pIntezmenyId
AND ((@pAdatokHalmaza = 1 AND @pSzervezetId IS NOT NULL AND ID = @pSzervezetId)
OR (@pAdatokHalmaza = 1 AND @pSzervezetId IS NULL AND C_PARENTSZERVEZETID IS NULL)
OR (@pAdatokHalmaza = 2 AND @pSzervezetId IS NOT NULL AND C_PARENTSZERVEZETID = @pSzervezetId)
OR (@pAdatokHalmaza = 0 AND @pSzervezetId IS NOT NULL AND (C_PARENTSZERVEZETID = @pSzervezetId OR ID = @pSzervezetId))
OR (@pAdatokHalmaza = 0 AND @pSzervezetId IS NULL))
);
GO

View file

@ -0,0 +1,224 @@
DROP FUNCTION IF EXISTS fnGetLemorzsolodottTanulokByFelhely
GO
CREATE FUNCTION [dbo].[fnGetLemorzsolodottTanulokByFelhely] (
@feladatEllatasiHelyId int
,@tanevId int
,@isFelevi int
,@osztalyzatTipusTypeID int = 44
)
RETURNS @FHHozTartozoTanulok TABLE(
TanuloId int
,Evfolyam int
,Neme int
,TanuloNev nvarchar(510)
,OktatasiAzonosito nvarchar(11)
,OsztalyNev nvarchar(510)
,OsztalyId int
,KozepesMiatt bit
,RontottMiatt bit
)
AS
BEGIN
DECLARE @Tanulok TABLE(
TanuloId int
,EvFolyam int
,Neme int
,NyomtatasiNev nvarchar(510)
,OktatasiAzonosito nvarchar(11)
,OsztalyNev nvarchar(510)
,OsztalyId int
)
DECLARE @Osztalyzatok TABLE(
Id int
,Ertek float
)
DECLARE @TanuloAtlagok TABLE(
TanuloId int
,AktualisAtlag float
,KorabbiAtlag float
)
DECLARE @KozepesAlattiTanulok TABLE(
TanuloId int
)
DECLARE @RontottTanulok TABLE(
TanuloId int
)
DECLARE @EslTantargyak TABLE(
TantargyId int
,TanevId int
)
-- Mi a "Közepes" értéke az adott feladatellátási helyen
DECLARE @FelHelyTipusKozepes float = 3.0
DECLARE @ErtekelesTipus int = IIF(@isFelevi = 0,1520,1519)
DECLARE @ExErtekelesTipus int = IIF(@ErtekelesTipus = 1520,1519,1520)
SELECT
@FelHelyTipusKozepes = onf.C_ESLKOZEPESATLAG
FROM T_FELADATELLATASIHELY fh
INNER JOIN T_OKTATASINEVELESIFELADAT onf ON onf.ID = fh.C_OKTATASINEVELESIFELADATTIPUS AND onf.C_ALTANEVID = fh.C_TANEVID AND onf.TOROLT = 'F'
WHERE fh.ID = @feladatEllatasiHelyId AND fh.TOROLT='F'
-- Az elõzõ tanév ID-ja
DECLARE @ElozoTanevId int = 0
IF @IsFelevi = 0
BEGIN
SET @ElozoTanevId = @tanevId
END
ELSE
BEGIN
SELECT @ElozoTanevId = ISNULL(elozotanev.ID,0)
FROM T_TANEV akttanev
INNER JOIN T_TANEV_OSSZES elozotanev ON elozotanev.TOROLT = 'F' AND elozotanev.C_SORSZAM = akttanev.C_SORSZAM-2
AND elozotanev.C_INTEZMENYID = akttanev.C_INTEZMENYID
WHERE akttanev.ID = @tanevId
END
DECLARE @BesorolasiDatum DATE = (SELECT TOP 1 C_DATUM from T_TANEVRENDJE tr WHERE C_NAPTIPUSA = IIF(@isFelevi = 0,1395,1400) AND C_TANEVID = @tanevid AND TOROLT='F')
INSERT INTO @Osztalyzatok
SELECT
ID
,CONVERT(float,C_VALUE)
FROM T_DICTIONARYITEMBASE
WHERE C_DICTIONARYTYPEID = @osztalyzatTipusTypeID AND C_TANEVID = @tanevId AND TOROLT='F'
INSERT INTO @EslTantargyak (
TantargyId
,TanevId
)
SELECT
tgy.ID
,@tanevId
FROM T_TANTARGY tgy
WHERE (tgy.C_ALTANTARGYKENTNYOMTATVANYBAN='T' OR tgy.C_FOTARGYE='T')
AND tgy.C_TANEVID = @tanevId AND tgy.TOROLT='F'
AND tgy.C_ESLTANTARGYKATEGORIAID IS NOT NULL
UNION
SELECT
tgy.ID
,@ElozoTanevId
FROM T_TANTARGY_OSSZES tgy
WHERE (tgy.C_ALTANTARGYKENTNYOMTATVANYBAN='T' OR tgy.C_FOTARGYE='T')
AND tgy.C_TANEVID = @ElozoTanevId AND tgy.TOROLT='F'
AND tgy.C_ESLTANTARGYKATEGORIAID IS NOT NULL
-- Egy adott FH-hoz tartozó tanulók kilistázása (évfolyamonként, nemenként) összevont osztályokkal együtt
INSERT INTO @Tanulok /*TODO:Tobb Osztaly*//*OM-1582*/
SELECT DISTINCT
tcs.C_TANULOID
,ISNULL(tta.C_TANULOEVFOLYAMTIPUSID,1307)
,f.C_NEME
,f.C_NYOMTATASINEV
,f.C_OKTATASIAZONOSITO
,ocs.C_NEV
,ocs.ID
FROM T_OSZTALYCSOPORT ocs
INNER JOIN T_OSZTALY o ON o.ID = ocs.ID AND o.TOROLT='F'
INNER JOIN T_TANULOCSOPORT tcs ON tcs.C_OSZTALYCSOPORTID = o.ID AND tcs.TOROLT = 'F'
AND @BesorolasiDatum >= tcs.C_BELEPESDATUM AND (@BesorolasiDatum < tcs.C_KILEPESDATUM OR tcs.C_KILEPESDATUM IS NULL)
INNER JOIN T_TANULOTANUGYIADATOK tta ON tta.C_TANULOCSOPORTID = tcs.ID AND tta.TOROLT = 'F' /*Ha a tanuló összevont évfolyamú osztályba jár, de van megadva neki egyénileg évfolyam a tanügyi adataiban,*/
INNER JOIN T_FELHASZNALO f ON f.ID = tcs.C_TANULOID AND f.TOROLT='F' /*akkor azt kell megjeleníteni*/
INNER JOIN T_EVFOLYAMTIPUS evtip ON evtip.ID = ocs.C_EVFOLYAMTIPUSA AND evtip.TOROLT = 'F' AND evtip.C_ALTANEVID = ocs.C_TANEVID
WHERE ocs.C_FELADATELLATASIHELYID = @feladatEllatasiHelyId
AND ocs.C_TANEVID = @tanevId AND ocs.C_KEPZESIFORMA = 1096 --Nappali rendszerű iskolai oktatás
AND ocs.TOROLT = 'F'
AND evtip.C_ISOSSZEVONT = 'T'
UNION
SELECT DISTINCT
tcs.C_TANULOID
,ocs.C_EVFOLYAMTIPUSA
,f.C_NEME
,f.C_NYOMTATASINEV
,f.C_OKTATASIAZONOSITO
,ocs.C_NEV
,ocs.ID
FROM T_OSZTALYCSOPORT ocs
INNER JOIN T_TANULOCSOPORT tcs ON tcs.C_OSZTALYCSOPORTID = ocs.ID AND tcs.TOROLT = 'F'
AND @BesorolasiDatum >= tcs.C_BELEPESDATUM AND (@BesorolasiDatum < tcs.C_KILEPESDATUM OR tcs.C_KILEPESDATUM IS NULL)
INNER JOIN T_OSZTALY o ON o.id = tcs.C_OSZTALYCSOPORTID AND o.TOROLT='F'
INNER JOIN T_FELHASZNALO f ON f.id = tcs.C_TANULOID AND f.TOROLT='F'
INNER JOIN T_EVFOLYAMTIPUS evtip ON evtip.ID = ocs.C_EVFOLYAMTIPUSA AND evtip.TOROLT = 'F' AND evtip.C_ALTANEVID = ocs.C_TANEVID
WHERE ocs.C_FELADATELLATASIHELYID = @feladatEllatasiHelyId
AND ocs.C_TANEVID = @tanevId AND ocs.C_KEPZESIFORMA = 1096
AND ocs.TOROLT = 'F'
AND evtip.C_ISOSSZEVONT = 'F'
DELETE FROM @Tanulok WHERE Evfolyam BETWEEN 1303 AND 1306 --1-4 évfolyamok nem kellenek
-- Visszatérési tábla számítása
INSERT INTO @KozepesAlattiTanulok (TanuloId)
SELECT DISTINCT
fht.TanuloId
FROM T_TANULOERTEKELES te
INNER JOIN @EslTantargyak tgy ON tgy.TanevId = te.C_TANEVID AND tgy.TantargyId = te.C_TANTARGYID
INNER JOIN @Osztalyzatok o ON o.ID = te.C_ERTEKELESOSZTALYZATID
INNER JOIN @Tanulok fht ON fht.TanuloId = te.C_TANULOID
LEFT JOIN T_CSOPORT cs ON cs.ID=te.C_OSZTALYCSOPORTID AND cs.TOROLT='F'
WHERE te.C_TIPUSID = @ErtekelesTipus AND ISNULL(cs.C_TIPUSA,0) NOT IN (SELECT ID FROM T_CSOPORTTIPUS WHERE C_ISMUVESZETI = 'T' AND C_ALTANEVID = @tanevId) --alapf. műv okt csoportok osztályzatai nem kellenek
AND te.TOROLT='F' AND te.C_TANEVID = @tanevId
GROUP BY fht.TanuloId
HAVING ROUND(AVG(o.Ertek),2) < @FelHelyTipusKozepes
INSERT INTO @TanuloAtlagok (
TanuloId
,AktualisAtlag
,KorabbiAtlag
)
SELECT
fht.TanuloId
,(
SELECT
ROUND(AVG(o.Ertek),2)
FROM T_TANULOERTEKELES te
INNER JOIN @Osztalyzatok o ON o.ID = te.C_ERTEKELESOSZTALYZATID
INNER JOIN @EslTantargyak tgy ON tgy.Tantargyid = te.C_TANTARGYID AND tgy.TanevId = te.C_TANEVID
WHERE te.C_TANULOID = tanulo.ID AND te.C_TIPUSID = @ErtekelesTipus AND te.TOROLT='F' AND te.C_TANEVID = tanulo.C_TANEVID
AND NOT EXISTS(SELECT 1 FROM T_CSOPORT WHERE ID = te.C_OSZTALYCSOPORTID AND C_TIPUSA IN (SELECT ID FROM T_CSOPORTTIPUS WHERE C_ISMUVESZETI = 'T' AND C_ALTANEVID = @tanevId))
) AktualisAtlag
,(
SELECT
ROUND(AVG(o.Ertek),2)
FROM T_TANULOERTEKELES_OSSZES te
INNER JOIN @Osztalyzatok o ON o.ID = te.C_ERTEKELESOSZTALYZATID
INNER JOIN @EslTantargyak tgy ON tgy.Tantargyid = te.C_TANTARGYID AND tgy.TanevId = te.C_TANEVID
WHERE te.C_TANULOID = extanulo.ID AND te.C_TIPUSID = @ExErtekelesTipus AND te.TOROLT = 'F' AND te.C_TANEVID = extanulo.C_TANEVID
AND NOT EXISTS(SELECT 1 FROM T_CSOPORT_OSSZES WHERE ID = te.C_OSZTALYCSOPORTID AND C_TIPUSA IN (SELECT ID FROM T_CSOPORTTIPUS WHERE C_ISMUVESZETI = 'T' AND C_ALTANEVID = @tanevId) AND TOROLT='F')
) KorabbiAtlag
FROM @Tanulok fht
INNER JOIN T_FELHASZNALO_OSSZES tanulo ON tanulo.ID = fht.TanuloId
INNER JOIN T_TANULO_OSSZES t ON t.ID = tanulo.ID
INNER JOIN T_FELHASZNALO_OSSZES extanulo ON tanulo.C_OKTATASIAZONOSITO = extanulo.C_OKTATASIAZONOSITO
AND extanulo.C_TANEVID = @ElozoTanevId AND extanulo.TOROLT = 'F'
INNER JOIN T_TANULO_OSSZES exT ON exT.ID = extanulo.ID
INSERT INTO @RontottTanulok (TanuloId)
SELECT DISTINCT
fht.TanuloId
FROM @Tanulok fht
INNER JOIN @TanuloAtlagok ta ON ta.TanuloId = fht.TanuloId
WHERE (ta.AktualisAtlag+1.1) <= ta.KorabbiAtlag
INSERT INTO @FhHozTartozoTanulok
SELECT
fht.TanuloId
,fht.Evfolyam
,fht.Neme
,fht.NyomtatasiNev
,fht.OktatasiAzonosito
,fht.Osztalynev
,fht.OsztalyId
,IIF(kozepes.TanuloId IS NULL, 0, 1)
,IIF(rontott.TanuloId IS NULL, 0, 1)
FROM @Tanulok fht
LEFT JOIN @KozepesAlattiTanulok kozepes ON kozepes.TanuloId = fht.TanuloId
LEFT JOIN @RontottTanulok rontott ON rontott.TanuloId = fht.TanuloId
WHERE (kozepes.TanuloId IS NOT NULL OR rontott.TanuloId IS NOT NULL)
RETURN
END
GO

View file

@ -0,0 +1,36 @@
DROP FUNCTION IF EXISTS fnGetNapirendUtkozesByOsztalycsoport
GO
CREATE FUNCTION fnGetNapirendUtkozesByOsztalycsoport (
@startTime datetime
,@endTime datetime
,@osztalyCsoportId int
,@intezmenyId int
,@tanevId int
) RETURNS INT
BEGIN
IF EXISTS (
SELECT 1
FROM T_NAPTARINAP_OSSZES n
LEFT JOIN T_TANEVRENDJE_OSSZES tr ON tr.C_DATUM = n.C_NAPDATUMA
INNER JOIN T_ORARENDIORA_OSSZES o ON ISNULL(tr.C_HETIREND, n.C_HETIREND) = o.C_HETIREND
AND ISNULL(tr.C_HETNAPJA, n.C_HETNAPJA) = o.C_HETNAPJA
AND n.C_INTEZMENYID = o.C_INTEZMENYID
AND n.C_TANEVID = o.C_TANEVID
WHERE CAST(CAST(@startTime AS DATE) AS DATETIME) + CAST(CAST(o.C_ORAKEZDETE AS TIME) AS DATETIME) <= @endTime
AND CAST(CAST(@endTime AS DATE) AS DATETIME) + CAST(CAST(o.C_ORAVEGE AS TIME) AS DATETIME) >= @startTime
AND o.C_OSZTALYCSOPORTID IN (SELECT ID FROM dbo.fnGetKapcsolodoOsztalycsoportok(@osztalyCsoportId))
AND n.C_TANEVID = @tanevId AND n.C_INTEZMENYID = @intezmenyId
AND n.C_NAPDATUMA BETWEEN CAST(@startTime AS DATE) AND CAST(@endTime AS DATE)
UNION ALL
SELECT 1 FROM T_TANITASIORA_OSSZES o
WHERE o.C_ORAKEZDETE <= @endTime
AND o.C_ORAVEGE >= @startTime
AND o.C_OSZTALYCSOPORTID IN (SELECT ID FROM dbo.fnGetKapcsolodoOsztalycsoportok(@osztalyCsoportId))
)
BEGIN
RETURN 1
END
RETURN 0
END
GO

View file

@ -0,0 +1,41 @@
IF OBJECT_ID('fnGetNapirendUtkozesByTanar') IS NOT NULL BEGIN
DROP FUNCTION fnGetNapirendUtkozesByTanar
END
GO
CREATE FUNCTION fnGetNapirendUtkozesByTanar (
@startTime datetime,
@endTime datetime,
@tanarId int,
@intezmenyId int,
@tanevId int
) RETURNS INT
BEGIN
IF EXISTS (
SELECT 1
FROM T_NAPTARINAP_OSSZES n
LEFT JOIN T_TANEVRENDJE_OSSZES tr ON tr.C_DATUM = n.C_NAPDATUMA
INNER JOIN T_ORARENDIORA_OSSZES o ON ISNULL(tr.C_HETIREND, n.C_HETIREND) = o.C_HETIREND
AND ISNULL(tr.C_HETNAPJA, n.C_HETNAPJA) = o.C_HETNAPJA
AND n.C_INTEZMENYID = o.C_INTEZMENYID
AND n.C_TANEVID = o.C_TANEVID
WHERE CAST(CAST(@startTime AS DATE) AS DATETIME) + CAST(CAST(o.C_ORAKEZDETE AS TIME) AS DATETIME) <= @endTime
AND CAST(CAST(@endTime AS DATE) AS DATETIME) + CAST(CAST(o.C_ORAVEGE AS TIME) AS DATETIME) >= @startTime
AND o.C_TANARID = @tanarId
AND n.C_TANEVID = @tanevId AND n.C_INTEZMENYID = @intezmenyId
AND n.C_NAPDATUMA BETWEEN CAST(@startTime AS DATE) AND CAST(@endTime AS DATE)
UNION ALL
SELECT 1 FROM T_TANITASIORA_OSSZES o
WHERE o.C_ORAKEZDETE <= @endTime
AND o.C_ORAVEGE >= @startTime
AND ISNULL(o.C_HELYETTESITOTANARID, o.C_ORATULAJDONOSID) = @tanarId
AND o.C_TANEVID = @tanevId
AND o.C_INTEZMENYID = @intezmenyId
)
BEGIN
RETURN 1
END
RETURN 0
END
GO

View file

@ -0,0 +1,32 @@
DROP FUNCTION IF EXISTS fnGetOrahossz
GO
CREATE FUNCTION fnGetOrahossz (@csengetesiRendOraId int, @oraKezdete datetime, @oraVege datetime, @feladatKategoriaId int, @csoportId int, @oktatasiNevelesiFeladatTipus int, @csoportTipusOraperc int)
RETURNS FLOAT
AS BEGIN
DECLARE @result float;
SET @result =
IIF(@csengetesiRendOraId IS NOT NULL
,1
,CONVERT(FLOAT,
(
DATEDIFF(minute, @oraKezdete, @oraVege)
+ IIF(@feladatKategoriaId = 7556 AND DATEPART(hour, @oraVege) = 23 AND DATEPART(minute, @oraVege) = 59
,1
,0)
)
)
/
IIF(@csoportId IS NULL
,IIF(@feladatKategoriaId = 7556 OR (@oktatasiNevelesiFeladatTipus IN (1157, 1166, 1177, 6570, 7762))
,60
,45)
,@csoportTipusOraperc)
)
RETURN @result;
END
GO

View file

@ -0,0 +1,34 @@
DROP FUNCTION IF EXISTS fnGetOsztalyCsoportTanuloOsztalyList
GO
CREATE FUNCTION fnGetOsztalyCsoportTanuloOsztalyList (
@pTanevId int
,@pOsztalyCsoportId int
,@pFeladatKategoriaId int
,@pDatum date = NULL
,@pIsFromSzervezet bit = 0
)
RETURNS TABLE
AS RETURN
--NOTE: Azért kell a DISTINCT, ha ugyanoda ki-/besorolgatják a tanulót!
SELECT DISTINCT
TanuloCsoport.C_TANULOID
,OsztalyCsoport.ID
,OsztalyCsoport.C_EVFOLYAMTIPUSA
FROM T_TANULOCSOPORT_OSSZES TanuloCsoport
INNER JOIN T_TANULOCSOPORT_OSSZES SourceTanuloCsoport ON SourceTanuloCsoport.TOROLT = 'F'
AND SourceTanuloCsoport.C_OSZTALYCSOPORTID = @pOsztalyCsoportId
AND SourceTanuloCsoport.C_TANULOID = TanuloCsoport.C_TANULOID
INNER JOIN T_OSZTALY_OSSZES Osztaly ON Osztaly.ID = TanuloCsoport.C_OSZTALYCSOPORTID AND Osztaly.C_ALTANEVID = TanuloCsoport.C_TANEVID
AND Osztaly.TOROLT = 'F'
INNER JOIN T_OSZTALYCSOPORT_OSSZES OsztalyCsoport ON OsztalyCsoport.ID = Osztaly.ID AND OsztalyCsoport.C_TANEVID = TanuloCsoport.C_TANEVID
AND OsztalyCsoport.TOROLT = 'F'
AND (OsztalyCsoport.C_FELADATKATEGORIAID = @pFeladatKategoriaId OR @pIsFromSzervezet = 1)
WHERE TanuloCsoport.C_TANEVID = @pTanevId
AND TanuloCsoport.TOROLT = 'F'
AND TanuloCsoport.C_BELEPESDATUM <= ISNULL(@pDatum, CONVERT(date, GETDATE()))
AND (TanuloCsoport.C_KILEPESDATUM IS NULL OR TanuloCsoport.C_KILEPESDATUM > ISNULL(@pDatum, CONVERT(date, GETDATE())))
GO

View file

@ -0,0 +1,366 @@
DROP FUNCTION IF EXISTS dbo.fnGetOsztalyCsoportTanuloinakTanugyiAdatai
GO
/*
1) Osztály, tudjuk (AMI-nál nem kell pár mező)
2) Csoport, bontott, tudjuk
3) Csoport, nem bontott, fh-n 1 osztály van ,tudjuk
4) Csoport, nem bontott, fh-n több osztály, nem tudjuk
5) Ha nincs Osztálya a kategórián, akkor a tanulóét
*/
CREATE FUNCTION dbo.fnGetOsztalyCsoportTanuloinakTanugyiAdatai(
@pOsztalyCsoportId int
,@pDatum date = NULL)
RETURNS @tanugyiAdatok TABLE(
ID int
,TanuloId int
,C_BEIRASINAPLOSORSZAM nvarchar(100)
,C_BEJARO char(1)
,C_DIAKSPORTKOROS char(1)
,C_EGYEBORSZAGOSDONTO char(1)
,C_EGYUTTMUKODESES char(1)
,C_ELOZOINTEZMENY nvarchar(510)
,C_EVISMETLO char(1)
,C_ISKOLAIKERETEKKOZOTT char(1)
,C_JOGVISZONYATSZUNETELTETO char(1)
,C_JOGVISZONYVARHATOBEFEJEZESE datetime
,C_MAGANTANULO char(1)
,C_MAGANTANULOSAGANAKOKAID int
,C_MAGANTANULOSAGKEZDETE datetime
,C_MAGANTANULOSAGVEGE datetime
,C_NYILVANTARTASKEZDETE datetime
,C_OSZTV char(1)
,C_POLGARISZERZODESES char(1)
,C_SZAKMAIGYAKORLATON char(1)
,C_SZETVAGAZAT char(1)
,C_SZINTVIZSGA numeric
,C_SZKTV char(1)
,C_TANDIJATFIZETO char(1)
,C_TANKOTELEZETT char(1)
,C_TANKOTELEZETTSEGVEGE datetime
,C_TANULOEVFOLYAMTIPUSID int
,C_TANULOSZERZODESES char(1)
,C_TECHNIKUSIEVFOLYAM char(1)
,C_TERITESIDIJATFIZETO char(1)
,C_VENDEG char(1)
,C_NAPLOSORSZAM int
,C_TORZSLAPSZAM nvarchar(1000)
,C_TANTERVID int
,C_FELVETELTANEVEID int
,C_TANULOCSOPORTID int
,C_HOZOTTIGAZOLATLANHIANYZAS int
,C_HOZOTTIGAZOLATLANKESESPERCBE int
,C_HOZOTTIGAZOLTHIANYZAS int
,C_HOZOTTIGAZOLTKESESPERCBEN int
,C_ISESL16EVESUTANBELEPETT char(1)
,C_AGAZATID int
,C_SZAKMACSOPORTID int
,C_RESZSZAKKEPESITESID int
,C_SZAKKEPESITESID int
,C_AGAZATUJSZKTTIPUSID int
,C_SZAKMATIPUSID int
,C_SZAKMAIRANYTIPUSID int
,C_TANULMANYITERULETNKTTIPUSID int
,C_SZAKKEPESITESNKTTIPUSID int
,C_SZAKIRANYNKTTIPUSID int
,C_TANTERVIJELLEGID int
,C_AGAZATIALAPVIZSGAEREDMENYE numeric(10, 2)
,C_AGAZATIALAPVIZSGAEREDMENYESZ int
,C_ISSZAKKEPZESIMUNKASZERZODESS char(1)
,C_DUALISKEPZOHELYNEVE nvarchar(255)
,C_DUALISKEPZOHELYADOSZAMA char(20)
)
AS
BEGIN
IF @pDatum IS NULL
SET @pDatum = GETDATE()
DECLARE @TanugyiAdat TABLE (ID int,TanuloId int, Darab int)
DECLARE @kategoriaId int = (SELECT C_FELADATKATEGORIAID FROM T_OSZTALYCSOPORT_OSSZES WHERE ID = @pOsztalyCsoportId)
DECLARE @bontasId int = (SELECT C_OSZTALYBONTASID FROM T_CSOPORT_OSSZES WHERE ID = @pOsztalyCsoportId)
DECLARE @isAmi bit = (SELECT IIF(@kategoriaId = 7555,1,0))
DECLARE @isOsztaly bit = 0
IF EXISTS(SELECT 1 FROM T_OSZTALY_OSSZES WHERE ID = @pOsztalyCsoportId)
SET @isOsztaly=1
IF @isOsztaly = 1 BEGIN
INSERT INTO @TanugyiAdat (ID,TanuloId,Darab)
SELECT tta.ID,tcs.C_TANULOID,1
FROM T_TANULOTANUGYIADATOK_OSSZES tta
INNER JOIN T_TANULOCSOPORT_OSSZES tcs ON tcs.ID=tta.C_TANULOCSOPORTID AND tcs.C_OSZTALYCSOPORTID=@posztalyCsoportId
AND tcs.C_BELEPESDATUM <= @pDatum AND (tcs.C_KILEPESDATUM IS NULL OR tcs.C_KILEPESDATUM>@pDatum) AND tcs.TOROLT='F'
WHERE tta.TOROLT='F'
END
ELSE IF @bontasId IS NOT NULL BEGIN
INSERT INTO @TanugyiAdat (ID,TanuloId,Darab)
SELECT tta.ID,tcs.C_TANULOID,1
FROM T_TANULOTANUGYIADATOK_OSSZES tta
INNER JOIN T_TANULOCSOPORT_OSSZES tcs ON tcs.ID=tta.C_TANULOCSOPORTID AND tcs.C_OSZTALYCSOPORTID=@bontasId
AND tcs.C_BELEPESDATUM <= @pDatum AND (tcs.C_KILEPESDATUM IS NULL OR tcs.C_KILEPESDATUM>@pDatum) AND tcs.TOROLT='F'
END
ELSE BEGIN
INSERT INTO @TanugyiAdat (ID,TanuloId,Darab)
SELECT tta.ID, tcso.C_TANULOID, ROW_NUMBER() OVER(PARTITION BY tcso.C_TANULOID ORDER BY tta.ID)
FROM T_TANULOTANUGYIADATOK_OSSZES tta
INNER JOIN T_TANULOCSOPORT_OSSZES tcs ON tcs.ID=tta.C_TANULOCSOPORTID
AND tcs.C_BELEPESDATUM <= @pDatum AND (tcs.C_KILEPESDATUM IS NULL OR tcs.C_KILEPESDATUM>@pDatum) AND tcs.TOROLT='F'
INNER JOIN T_OSZTALY_OSSZES o ON o.ID=tcs.C_OSZTALYCSOPORTID AND o.TOROLT='F'
INNER JOIN T_OSZTALYCSOPORT_OSSZES ocs ON ocs.ID=o.ID AND ocs.TOROLT='F' AND (@kategoriaId IS NULL OR ocs.C_FELADATKATEGORIAID=@kategoriaId)
INNER JOIN T_TANULOCSOPORT_OSSZES tcso ON tcso.C_TANULOID=tcs.C_TANULOID
AND tcso.C_BELEPESDATUM <= @pDatum AND (tcso.C_KILEPESDATUM IS NULL OR tcso.C_KILEPESDATUM>@pDatum) AND tcso.TOROLT='F' AND tcso.C_OSZTALYCSOPORTID=@pOsztalyCsoportId
END
UPDATE ta SET Darab = x.DARAB FROM(
SELECT MAX(DARAB) DARAB ,TanuloId
FROM @TanugyiAdat
GROUP BY TanuloId) x
INNER JOIN @TanugyiAdat ta ON ta.TanuloId=x.TanuloId
INSERT INTO @tanugyiAdatok (
ID
,TanuloId
,C_BEIRASINAPLOSORSZAM
,C_BEJARO
,C_DIAKSPORTKOROS
,C_EGYEBORSZAGOSDONTO
,C_EGYUTTMUKODESES
,C_ELOZOINTEZMENY
,C_EVISMETLO
,C_ISKOLAIKERETEKKOZOTT
,C_JOGVISZONYATSZUNETELTETO
,C_JOGVISZONYVARHATOBEFEJEZESE
,C_MAGANTANULO
,C_MAGANTANULOSAGANAKOKAID
,C_MAGANTANULOSAGKEZDETE
,C_MAGANTANULOSAGVEGE
,C_NYILVANTARTASKEZDETE
,C_OSZTV
,C_POLGARISZERZODESES
,C_SZAKMAIGYAKORLATON
,C_SZETVAGAZAT
,C_SZINTVIZSGA
,C_SZKTV
,C_TANDIJATFIZETO
,C_TANKOTELEZETT
,C_TANKOTELEZETTSEGVEGE
,C_TANULOEVFOLYAMTIPUSID
,C_TANULOSZERZODESES
,C_TECHNIKUSIEVFOLYAM
,C_TERITESIDIJATFIZETO
,C_VENDEG
,C_NAPLOSORSZAM
,C_TORZSLAPSZAM
,C_TANTERVID
,C_FELVETELTANEVEID
,C_TANULOCSOPORTID
,C_HOZOTTIGAZOLATLANHIANYZAS
,C_HOZOTTIGAZOLATLANKESESPERCBE
,C_HOZOTTIGAZOLTHIANYZAS
,C_HOZOTTIGAZOLTKESESPERCBEN
,C_ISESL16EVESUTANBELEPETT
,C_AGAZATID
,C_SZAKMACSOPORTID
,C_RESZSZAKKEPESITESID
,C_SZAKKEPESITESID
,C_AGAZATUJSZKTTIPUSID
,C_SZAKMATIPUSID
,C_SZAKMAIRANYTIPUSID
,C_TANULMANYITERULETNKTTIPUSID
,C_SZAKKEPESITESNKTTIPUSID
,C_SZAKIRANYNKTTIPUSID
,C_TANTERVIJELLEGID
,C_AGAZATIALAPVIZSGAEREDMENYE
,C_AGAZATIALAPVIZSGAEREDMENYESZ
,C_ISSZAKKEPZESIMUNKASZERZODESS
,C_DUALISKEPZOHELYNEVE
,C_DUALISKEPZOHELYADOSZAMA
) SELECT DISTINCT
0 --ID
,TanuloId --TanuloId
,NULL --C_BEIRASINAPLOSORSZAM
,'F' --C_BEJARO
,'F' --C_DIAKSPORTKOROS
,'F' --C_EGYEBORSZAGOSDONTO
,'F' --C_EGYUTTMUKODESES
,NULL --C_ELOZOINTEZMENY
,'F' --C_EVISMETLO
,'F' --C_ISKOLAIKERETEKKOZOTT
,'F' --C_JOGVISZONYATSZUNETELTETO
,NULL --C_JOGVISZONYVARHATOBEFEJEZESE
,'F' --C_MAGANTANULO
,NULL --C_MAGANTANULOSAGANAKOKAID
,NULL --C_MAGANTANULOSAGKEZDETE
,NULL --C_MAGANTANULOSAGVEGE
,'19000101' --C_NYILVANTARTASKEZDETE
,'F' --C_OSZTV
,'F' --C_POLGARISZERZODESES
,'F' --C_SZAKMAIGYAKORLATON
,'F' --C_SZETVAGAZAT
,NULL --C_SZINTVIZSGA
,'F' --C_SZKTV
,'F' --C_TANDIJATFIZETO
,'F' --C_TANKOTELEZETT
,NULL --C_TANKOTELEZETTSEGVEGE
,NULL --C_TANULOEVFOLYAMTIPUSID
,'F' --C_TANULOSZERZODESES
,'F' --C_TECHNIKUSIEVFOLYAM
,'F' --C_TERITESIDIJATFIZETO
,'F' --C_VENDEG
,NULL --C_NAPLOSORSZAM
,NULL --C_TORZSLAPSZAM
,0 --C_TANTERVID
,0 --C_FELVETELTANEVEID
,0 --C_TANULOCSOPORTID
,0 --C_HOZOTTIGAZOLATLANHIANYZAS
,0 --C_HOZOTTIGAZOLATLANKESESPERCBE
,0 --C_HOZOTTIGAZOLTHIANYZAS
,0 --C_HOZOTTIGAZOLTKESESPERCBEN
,'F' --C_ISESL16EVESUTANBELEPETT
,0 --C_AGAZATID
,0 --C_SZAKMACSOPORTID
,0 --C_RESZSZAKKEPESITESID
,0 --C_SZAKKEPESITESID
,0 --C_AGAZATUJSZKTTIPUSID
,0 --C_SZAKMATIPUSID
,0 --C_SZAKMAIRANYTIPUSID
,0 --C_TANULMANYITERULETNKTTIPUSID
,0 --C_SZAKKEPESITESNKTTIPUSID
,0 --C_SZAKIRANYNKTTIPUSID
,0 --C_TANTERVIJELLEGID
,NULL --C_AGAZATIALAPVIZSGAEREDMENYE
,NULL --C_AGAZATIALAPVIZSGAEREDMENYESZ
,'F' --C_ISSZAKKEPZESIMUNKASZERZODESS
,NULL --C_DUALISKEPZOHELYNEVE
,NULL --C_DUALISKEPZOHELYADOSZAMA
FROM @TanugyiAdat
WHERE Darab>1
INSERT INTO @tanugyiAdatok (
ID
,TanuloId
,C_BEIRASINAPLOSORSZAM
,C_BEJARO
,C_DIAKSPORTKOROS
,C_EGYEBORSZAGOSDONTO
,C_EGYUTTMUKODESES
,C_ELOZOINTEZMENY
,C_EVISMETLO
,C_ISKOLAIKERETEKKOZOTT
,C_JOGVISZONYATSZUNETELTETO
,C_JOGVISZONYVARHATOBEFEJEZESE
,C_MAGANTANULO
,C_MAGANTANULOSAGANAKOKAID
,C_MAGANTANULOSAGKEZDETE
,C_MAGANTANULOSAGVEGE
,C_NYILVANTARTASKEZDETE
,C_OSZTV
,C_POLGARISZERZODESES
,C_SZAKMAIGYAKORLATON
,C_SZETVAGAZAT
,C_SZINTVIZSGA
,C_SZKTV
,C_TANDIJATFIZETO
,C_TANKOTELEZETT
,C_TANKOTELEZETTSEGVEGE
,C_TANULOEVFOLYAMTIPUSID
,C_TANULOSZERZODESES
,C_TECHNIKUSIEVFOLYAM
,C_TERITESIDIJATFIZETO
,C_VENDEG
,C_NAPLOSORSZAM
,C_TORZSLAPSZAM
,C_TANTERVID
,C_FELVETELTANEVEID
,C_TANULOCSOPORTID
,C_HOZOTTIGAZOLATLANHIANYZAS
,C_HOZOTTIGAZOLATLANKESESPERCBE
,C_HOZOTTIGAZOLTHIANYZAS
,C_HOZOTTIGAZOLTKESESPERCBEN
,C_ISESL16EVESUTANBELEPETT
,C_AGAZATID
,C_SZAKMACSOPORTID
,C_RESZSZAKKEPESITESID
,C_SZAKKEPESITESID
,C_AGAZATUJSZKTTIPUSID
,C_SZAKMATIPUSID
,C_SZAKMAIRANYTIPUSID
,C_TANULMANYITERULETNKTTIPUSID
,C_SZAKKEPESITESNKTTIPUSID
,C_SZAKIRANYNKTTIPUSID
,C_TANTERVIJELLEGID
,C_AGAZATIALAPVIZSGAEREDMENYE
,C_AGAZATIALAPVIZSGAEREDMENYESZ
,C_ISSZAKKEPZESIMUNKASZERZODESS
,C_DUALISKEPZOHELYNEVE
,C_DUALISKEPZOHELYADOSZAMA
)
SELECT
tta.ID
,t.ID
,IIF(tta.ID IS NOT NULL,tta.C_BEIRASINAPLOSORSZAM, t.C_BEIRASINAPLOSORSZAM)
,IIF(tta.ID IS NOT NULL,tta.C_BEJARO, t.C_BEJARO)
,IIF(tta.ID IS NOT NULL,tta.C_DIAKSPORTKOROS, t.C_DIAKSPORTKOROS)
,IIF(tta.ID IS NOT NULL,tta.C_EGYEBORSZAGOSDONTO, t.C_EGYEBDONTO)
,IIF(tta.ID IS NOT NULL,tta.C_EGYUTTMUKODESES, t.C_EGYUTTMUKODESES)
,IIF(tta.ID IS NOT NULL,tta.C_ELOZOINTEZMENY, t.C_ELOZOINTEZMENY)
,IIF(tta.ID IS NOT NULL,tta.C_EVISMETLO, t.C_EVISMETLO)
,IIF(tta.ID IS NOT NULL,tta.C_ISKOLAIKERETEKKOZOTT, t.C_ISKOLAIKERETEKKOZOTT)
,IIF(tta.ID IS NOT NULL,tta.C_JOGVISZONYATSZUNETELTETO, t.C_JOGVISZONYATSZUNETELTETO)
,IIF(tta.ID IS NOT NULL,tta.C_JOGVISZONYVARHATOBEFEJEZESE, t.C_JOGVISZONYVARHATOBEFEJEZESE)
,CASE WHEN @isAmi = 1 THEN 'F' ELSE IIF(tta.ID IS NOT NULL,tta.C_MAGANTANULO, t.C_MAGANTANULO) END
,CASE WHEN @isAmi = 1 THEN NULL ELSE IIF(tta.ID IS NOT NULL,tta.C_MAGANTANULOSAGANAKOKAID, t.C_MAGANTANULOSAGANAKOKA) END
,CASE WHEN @isAmi = 1 THEN NULL ELSE IIF(tta.ID IS NOT NULL,tta.C_MAGANTANULOSAGKEZDETE, t.C_MAGANTANULOSAGKEZDETE) END
,CASE WHEN @isAmi = 1 THEN NULL ELSE IIF(tta.ID IS NOT NULL,tta.C_MAGANTANULOSAGVEGE, t.C_MAGANTANULOSAGVEGE) END
,tta.C_NYILVANTARTASKEZDETE
,IIF(tta.ID IS NOT NULL,tta.C_OSZTV, t.C_OSZTV)
,IIF(tta.ID IS NOT NULL,tta.C_POLGARISZERZODESES, t.C_POLGARISZERZODESES)
,IIF(tta.ID IS NOT NULL,tta.C_SZAKMAIGYAKORLATON, t.C_SZAKMAIGYAKORLATON)
,IIF(tta.ID IS NOT NULL,tta.C_SZETVAGAZAT, t.C_SZETVAGAZAT)
,IIF(tta.ID IS NOT NULL,tta.C_SZINTVIZSGA, t.C_SZINTVIZSGA)
,IIF(tta.ID IS NOT NULL,tta.C_SZKTV, t.C_SZKTV)
,IIF(tta.ID IS NOT NULL,tta.C_TANDIJATFIZETO, t.C_TANDIJATFIZETO)
,CASE WHEN @isAmi = 1 THEN 'F' ELSE IIF(tta.ID IS NOT NULL,tta.C_TANKOTELEZETT, t.C_TANKOTELEZETT) END
,IIF(tta.ID IS NOT NULL,tta.C_TANKOTELEZETTSEGVEGE, t.C_TANKOTELEZETTSEGVEGE)
,tta.C_TANULOEVFOLYAMTIPUSID
,IIF(tta.ID IS NOT NULL,tta.C_TANULOSZERZODESES, t.C_TANULOSZERZODESES)
,IIF(tta.ID IS NOT NULL,tta.C_TECHNIKUSIEVFOLYAM, t.C_TECHNIKUSIEVFOLYAM)
,IIF(tta.ID IS NOT NULL,tta.C_TERITESIDIJATFIZETO, t.C_TERITESIDIJATFIZETO)
,IIF(tta.ID IS NOT NULL,tta.C_VENDEG, t.C_VENDEG)
,IIF(tta.ID IS NOT NULL,tta.C_NAPLOSORSZAM, t.C_NAPLOSORSZAM)
,IIF(tta.ID IS NOT NULL,tta.C_TORZSLAPSZAM, t.C_TORZSLAPSZAM)
,tta.C_TANTERVID
,IIF(tta.ID IS NOT NULL,tta.C_FELVETELTANEVEID, t.C_FELVETELTANEVEID)
,tta.C_TANULOCSOPORTID
,tta.C_HOZOTTIGAZOLATLANHIANYZAS
,tta.C_HOZOTTIGAZOLATLANKESESPERCBE
,tta.C_HOZOTTIGAZOLTHIANYZAS
,tta.C_HOZOTTIGAZOLTKESESPERCBEN
,tta.C_ISESL16EVESUTANBELEPETT
,tta.C_AGAZATID
,tta.C_SZAKMACSOPORTID
,tta.C_RESZSZAKKEPESITESID
,tta.C_SZAKKEPESITESID
,tta.C_AGAZATUJSZKTTIPUSID
,tta.C_SZAKMATIPUSID
,tta.C_SZAKMAIRANYTIPUSID
,tta.C_TANULMANYITERULETNKTTIPUSID
,tta.C_SZAKKEPESITESNKTTIPUSID
,tta.C_SZAKIRANYNKTTIPUSID
,tta.C_TANTERVIJELLEGID
,IIF(tta.ID IS NOT NULL, tta.C_AGAZATIALAPVIZSGAEREDMENYE, t.C_AGAZATIALAPVIZSGAEREDMENYE)
,IIF(tta.ID IS NOT NULL, tta.C_AGAZATIALAPVIZSGAEREDMENYESZ, t.C_AGAZATIALAPVIZSGAEREDMENYESZ)
,IIF(tta.ID IS NOT NULL, tta.C_ISSZAKKEPZESIMUNKASZERZODESS, t.C_ISSZAKKEPZESIMUNKASZERZODESS)
,IIF(tta.ID IS NOT NULL, tta.C_DUALISKEPZOHELYNEVE, t.C_DUALISKEPZOHELYNEVE)
,IIF(tta.ID IS NOT NULL, tta.C_DUALISKEPZOHELYADOSZAMA, t.C_DUALISKEPZOHELYADOSZAMA)
FROM T_TANULOCSOPORT_OSSZES tcs
LEFT JOIN @TanugyiAdat ta ON ta.TanuloId=tcs.C_TANULOID
LEFT JOIN T_TANULOTANUGYIADATOK_OSSZES tta ON tta.ID=ta.ID AND tta.TOROLT='F'
LEFT JOIN T_TANULO_OSSZES t ON t.ID=tcs.C_TANULOID AND t.TOROLT='F'
WHERE tcs.C_OSZTALYCSOPORTID = @pOsztalyCsoportId AND tcs.TOROLT='F' AND tcs.C_BELEPESDATUM<=@pDatum AND (tcs.C_KILEPESDATUM IS NULL OR tcs.C_KILEPESDATUM>@pDatum)
AND ISNULL(ta.Darab,0)<2
RETURN
END
GO

View file

@ -0,0 +1,37 @@
DROP FUNCTION IF EXISTS fnGetOsztalyCsoportokUtolsoTanitasiNap
GO
CREATE FUNCTION fnGetOsztalyCsoportokUtolsoTanitasiNap (@pTanevId int ,@pOsztalyCsoportId int = NULL
)
returns @ResultTable TABLE (OsztalycsoportId int, UtolsoTanitasiNap Datetime, VegzosEvfolyam CHAR(1))
AS BEGIN
DECLARE @VegzosUtolsoTanitasiNap datetime;
SELECT @VegzosUtolsoTanitasiNap = MIN(C_DATUM)
FROM T_TANEVRENDJE_OSSZES
WHERE TOROLT = 'F'
AND C_TANEVID = @pTanevId
AND C_NAPTIPUSA IN (1402, 7600, 7601, 7602, 7603, 1395)
AND C_OSSZESCSOPORTRAVONATKOZIK = 'T'
INSERT INTO @ResultTable (OsztalycsoportId, UtolsoTanitasiNap, VegzosEvfolyam)
SELECT
ocs.ID AS OsztalycsoportId
,IIF(C_VEGZOSEVFOLYAM = 'T', IIF(x.C_OSZTALYCSOPORTID IS NOT NULL, NewVegeDatum, @VegzosUtolsoTanitasiNap), t.C_UTOLSONAP) AS UtolsoTanitasiNap
,C_VEGZOSEVFOLYAM AS VegzosEvfolyam
FROM T_OSZTALYCSOPORT_OSSZES ocs
INNER JOIN T_TANEV_OSSZES t ON t.ID = @pTanevId AND t.ID = ocs.C_TANEVID AND t.TOROLT = 'F'
LEFT JOIN (
SELECT MIN(tr.C_DATUM) AS NewVegeDatum, ocstr.C_OSZTALYCSOPORTID
FROM T_TANEVRENDJE_OSSZES tr
INNER JOIN T_OSZTALYCSOPORT_TANEVRENDJE ocstr ON ocstr.C_TANEVRENDJEID = tr.ID
WHERE tr.C_OSSZESCSOPORTRAVONATKOZIK = 'F'
AND tr.TOROLT = 'F'
AND tr.C_NAPTIPUSA IN (1402, 7600, 7601, 7602, 7603)
AND tr.C_TANEVID = @pTanevId
GROUP BY ocstr.C_OSZTALYCSOPORTID
) x ON x.C_OSZTALYCSOPORTID = ocs.Id
WHERE (@pOsztalyCsoportId IS NULL OR @pOsztalyCsoportId = ocs.ID) AND ocs.TOROLT = 'F'
RETURN
END
GO

View file

@ -0,0 +1,27 @@
IF OBJECT_ID('dbo.fnGetOsztalyVegzosTanitasiNap') IS NOT NULL BEGIN
DROP FUNCTION dbo.fnGetOsztalyVegzosTanitasiNap
END
GO
CREATE FUNCTION dbo.fnGetOsztalyVegzosTanitasiNap (@osztalyId INT, @intezmenyId INT, @tanevId INT)
RETURNS datetime
BEGIN
DECLARE @Global DATETIME = (SELECT MIN(C_DATUM) FROM T_TANEVRENDJE_OSSZES WHERE C_INTEZMENYID = @intezmenyId AND C_TANEVID = @tanevId
AND C_OSSZESCSOPORTRAVONATKOZIK = 'T' AND C_NAPTIPUSA IN (1402, 7600, 7601, 7602, 7603, 1395) AND TOROLT = 'F')
DECLARE @isVegzos CHAR(1) = (SELECT C_VEGZOSEVFOLYAM FROM T_OSZTALYCSOPORT_OSSZES WHERE ID = @osztalyId AND TOROLT = 'F' AND C_TANEVID = @tanevId)
DECLARE @result DATETIME
IF(@isVegzos = 'T')
BEGIN
SET @result =
(SELECT TOP(1) C_DATUM FROM (
SELECT C_DATUM FROM T_TANEVRENDJE_OSSZES tr
INNER JOIN T_OSZTALYCSOPORT_TANEVRENDJE otr ON tr.ID = otr.C_TANEVRENDJEID AND otr.C_OSZTALYCSOPORTID = @osztalyId
WHERE
C_NAPTIPUSA IN (1402, 7600, 7601, 7602, 7603) AND C_INTEZMENYID = @intezmenyId AND C_TANEVID = @tanevId AND tr.TOROLT = 'F'
) x ORDER BY C_DATUM)
END
RETURN ISNULL(@result, @Global)
END
GO

View file

@ -0,0 +1,26 @@
DROP FUNCTION IF EXISTS fnGetOsztalyfonokOsztalyanakTanuloi
GO
CREATE FUNCTION fnGetOsztalyfonokOsztalyanakTanuloi(
@pTanarId int
,@pSzuperOsztalyfonok int
,@pFeladatKategoriaId int
,@pDatum date)
RETURNS TABLE
AS RETURN
SELECT
f.ID
,f.C_NYOMTATASINEV AS Nev
FROM T_OSZTALY_OSSZES o
INNER JOIN T_TANULOCSOPORT_OSSZES tcs ON tcs.C_OSZTALYCSOPORTID = o.ID
INNER JOIN T_OSZTALYCSOPORT_OSSZES ocs ON ocs.ID = o.ID
AND ocs.C_FELADATKATEGORIAID = @pFeladatKategoriaId
INNER JOIN T_FELHASZNALO_OSSZES f ON f.ID = tcs.C_TANULOID
WHERE (o.C_OSZTALYFONOKID = @pTanarId OR @pSzuperOsztalyfonok = 1)
AND tcs.C_BELEPESDATUM <= @pDatum
AND (tcs.C_KILEPESDATUM IS NULL OR tcs.C_KILEPESDATUM > @pDatum)
AND o.TOROLT = 'F'
AND tcs.TOROLT = 'F'
AND f.TOROLT = 'F'
AND ocs.TOROLT = 'F'
GO

View file

@ -0,0 +1,32 @@
DROP FUNCTION IF EXISTS dbo.fnGetOsztondijSzazalek
GO
CREATE FUNCTION dbo.fnGetOsztondijSzazalek (
@pBeszamitasosTanulo char(1)
,@pIsBeszamitasosFixSzazalek char(1)
,@pAtlag float
,@pCode nvarchar(10)
,@pFelevnelValtos char(1)
,@pIsSikeresAgazatiVizsga char(1)
,@pIsAtlagSzakkepzesi char(1)
)
RETURNS int
BEGIN
RETURN CASE
WHEN @pBeszamitasosTanulo = 'T' AND @pIsBeszamitasosFixSzazalek = 'T' THEN 16
WHEN @pBeszamitasosTanulo = 'T' THEN dbo.fnGetOsztondijSzazalekFromAtlag(@pAtlag)
WHEN @pCode = '003' THEN dbo.fnGetOsztondijSzazalekFromAtlag(@pAtlag)
WHEN @pFelevnelValtos = 'T' THEN
CASE
WHEN @pIsSikeresAgazatiVizsga = 'F' AND @pCode = '001' THEN 8
WHEN @pIsSikeresAgazatiVizsga = 'F' AND @pCode = '002' THEN 16
WHEN @pIsSikeresAgazatiVizsga = 'T' AND @pIsAtlagSzakkepzesi = 'F' THEN 16
WHEN @pIsSikeresAgazatiVizsga = 'T' AND @pIsAtlagSzakkepzesi = 'T' THEN dbo.fnGetOsztondijSzazalekFromAtlag(@pAtlag)
ELSE -1
END
WHEN @pCode IN ('001','004','005') THEN 8
WHEN @pCode = '002' THEN 16
ELSE 0
END
END
GO

View file

@ -0,0 +1,17 @@
DROP FUNCTION IF EXISTS dbo.fnGetOsztondijSzazalekFromAtlag
GO
CREATE FUNCTION dbo.fnGetOsztondijSzazalekFromAtlag (
@pAtlag float
)
RETURNS int
BEGIN
RETURN CASE
WHEN @pAtlag >= 2.0 AND @pAtlag < 3.0 THEN 8
WHEN @pAtlag >= 3.0 AND @pAtlag < 4.0 THEN 25
WHEN @pAtlag >= 4.0 AND @pAtlag <= 4.49 THEN 42
WHEN @pAtlag > 4.49 THEN 59
ELSE 0
END
END
GO

View file

@ -0,0 +1,27 @@
DROP FUNCTION IF EXISTS fnGetRendszerbeallitasDateValue;
GO
CREATE FUNCTION fnGetRendszerbeallitasDateValue (@beallitasTipus int, @intezmenyId int, @tanevId int)
RETURNS DateTime
BEGIN
return (SELECT top (1)
IIF(ISDATE(JSON_VALUE(C_ERTEK,'$.Date')) = 1
,JSON_VALUE(C_ERTEK,'$.Date')
,(SELECT C_DATUM FROM T_TANEVRENDJE_OSSZES
WHERE C_NAPTIPUSA = CASE
WHEN C_BEALLITASTIPUS = 5438 THEN 1400 -- félév vége
WHEN C_BEALLITASTIPUS = 5439 THEN 1395 -- év vége
WHEN C_BEALLITASTIPUS = 5440 THEN 1402 -- év vége végzős
WHEN C_BEALLITASTIPUS = 7362 THEN 1403 -- I. né. vége
WHEN C_BEALLITASTIPUS = 7363 THEN 1400 -- II. né. vége
WHEN C_BEALLITASTIPUS = 7364 THEN 1404 -- III. né. vége
WHEN C_BEALLITASTIPUS = 7365 THEN 1395 -- IV. né. vége
END)) AS Datum
FROM T_RENDSZERBEALLITAS_OSSZES
WHERE C_BEALLITASTIPUS = @beallitasTipus
AND C_INTEZMENYID = @intezmenyId
AND C_TANEVID = @tanevId
AND TOROLT = 'F')
END;
GO

View file

@ -0,0 +1,30 @@
DROP FUNCTION IF EXISTS fnGetRendszerbeallitasEnumBool;
GO
CREATE FUNCTION fnGetRendszerbeallitasEnumBool (@beallitasTipus int, @intezmenyId int, @tanevId int)
RETURNS int
BEGIN
DECLARE @value INT
SELECT @value =
CASE
WHEN C_ERTEKTIPUS = 1698
THEN(
SELECT Value FROM
OPENJSON( JSON_QUERY(C_ERTEK,'$.Options'))
WITH (
Selected nvarchar(10) '$.Selected',
Value int '$.Value'
)
WHERE Selected = 'true')
WHEN C_ERTEKTIPUS = 1699
THEN IIF(JSON_VALUE(C_ERTEK, '$.Value') = 'true', 1, 0)
ELSE NULL
END
FROM T_RENDSZERBEALLITAS_OSSZES
WHERE C_BEALLITASTIPUS = @beallitasTipus
AND C_INTEZMENYID = @intezmenyId
AND C_TANEVID = @tanevId
AND TOROLT = 'F'
RETURN @value
END;
GO

View file

@ -0,0 +1,18 @@
DROP FUNCTION IF EXISTS fnGetRendszerbeallitasSelectedValue;
GO
CREATE FUNCTION fnGetRendszerbeallitasSelectedValue (@beallitasTipus int, @intezmenyId int, @tanevId int)
RETURNS int
BEGIN
DECLARE @json nvarchar(max)
SELECT @json = JSON_QUERY(C_ERTEK)
FROM T_RENDSZERBEALLITAS_OSSZES
WHERE C_BEALLITASTIPUS = @beallitasTipus
AND C_INTEZMENYID = @intezmenyId
AND C_TANEVID = @tanevId
AND TOROLT = 'F'
RETURN (select TOP(1) [Value] FROM OPENJSON( @json, '$.Options' ) WITH ([Value] int '$.Value', [Selected] NVARCHAR(25) '$.Selected') where Selected = 'true')
END;
GO

View file

@ -0,0 +1,39 @@
DROP FUNCTION IF EXISTS fnGetTanarAltalErtekelhetoCsoportokTantargyak
GO
CREATE FUNCTION fnGetTanarAltalErtekelhetoCsoportokTantargyak(
@pTanarId int
,@pTanevId int
,@pSzuperOsztalyfonok int
,@pDatum date
)
RETURNS TABLE
AS RETURN
SELECT
ocs.ID AS OsztalyCsoportId
,ocs.C_NEV AS Nev
,f.C_TANTARGYID AS TantargyId
FROM T_OSZTALYCSOPORT_OSSZES ocs
LEFT JOIN T_FOGLALKOZAS_OSSZES f ON ocs.ID = f.C_OSZTALYCSOPORTID
AND f.TOROLT = 'F'
WHERE ocs.TOROLT = 'F'
AND ocs.C_TANEVID = @pTanevId
AND EXISTS( SELECT 1
FROM T_TANULOCSOPORT_OSSZES tcs
WHERE tcs.C_OSZTALYCSOPORTID=ocs.ID
AND tcs.TOROLT='F'
AND @pDatum >= tcs.C_BELEPESDATUM
AND (tcs.C_KILEPESDATUM IS NULL OR tcs.C_KILEPESDATUM > @pDatum)
AND tcs.C_TANULOID IN (SELECT ID FROM fnGetOsztalyfonokOsztalyanakTanuloi(@pTanarId, @pSzuperOsztalyfonok, ocs.C_FELADATKATEGORIAID, @pDatum)))
UNION
SELECT
ocs.ID AS OsztalyCsoportId
,ocs.C_NEV AS Nev
,f.C_TANTARGYID AS TantargyId
FROM T_FOGLALKOZAS_OSSZES f
INNER JOIN T_OSZTALYCSOPORT_OSSZES ocs ON ocs.ID = f.C_OSZTALYCSOPORTID
AND ocs.TOROLT = 'F'
WHERE f.TOROLT = 'F'
AND (f.C_TANARID = @pTanarId OR @pSzuperOsztalyfonok = 1)
AND ocs.C_TANEVID = @pTanevId
GO

View file

@ -0,0 +1,23 @@
IF OBJECT_ID('fnGetTanoraiCeluCsoportTipusok') IS NOT NULL BEGIN
DROP FUNCTION [fnGetTanoraiCeluCsoportTipusok]
END
GO
CREATE FUNCTION [fnGetTanoraiCeluCsoportTipusok] (
@tanevId INT
) RETURNS TABLE
RETURN (
SELECT
csoportTipus.ID
FROM
T_CSOPORTTIPUS_OSSZES csoportTipus
INNER JOIN
T_DICTIONARYITEMBASE_OSSZES dictionaryItemBase ON csoportTipus.ID = dictionaryItemBase.ID
AND csoportTipus.C_ALTANEVID = dictionaryItemBase.C_TANEVID
WHERE
csoportTipus.C_ISTANORAICELU = 'T'
AND dictionaryItemBase.C_VISIBLE = 'T'
AND dictionaryItemBase.TOROLT = 'F'
AND dictionaryItemBase.C_TANEVID = @tanevId
)
GO

View file

@ -0,0 +1,22 @@
DROP FUNCTION IF EXISTS fnGetTanuloAktualisOsztaly
GO
CREATE FUNCTION fnGetTanuloAktualisOsztaly (@tanuloId int)
RETURNS nvarchar (255)
BEGIN
DECLARE @value nvarchar (255)
SELECT TOP (1)
@value = ocs.C_NEV
FROM T_TANULOCSOPORT_OSSZES tcs
INNER JOIN T_OSZTALY_OSSZES o ON tcs.C_OSZTALYCSOPORTID = o.ID AND o.TOROLT = 'F'
INNER JOIN T_OSZTALYCSOPORT_OSSZES ocs ON ocs.ID = o.ID AND ocs.TOROLT = 'F'
WHERE C_TANULOID = @tanuloId
AND tcs.TOROLT = 'F'
AND C_KILEPESDATUM IS NULL
ORDER BY C_KILEPESDATUM
RETURN @value
END
GO

Some files were not shown because too many files have changed in this diff Show more