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

View file

@ -0,0 +1,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

View file

@ -0,0 +1,68 @@
DROP FUNCTION IF EXISTS fnGetTanuloElutasitasOka
GO
CREATE FUNCTION fnGetTanuloElutasitasOka (
@pJogviszonyTipus int
,@pBesorolas char(1)
,@pEvfolyamTipus int
,@pIsMasodikSzakma char(1)
,@pEvIsmetlo char(1)
,@pMulSzam int
,@pMaxMulSzam int
,@pIsDualisKepzesben char(1)
,@pTechnikaiOsztaly char(1)
,@pIsVendegTanulo char(1)
,@pIsJogviszonyatSzunetelteto char(1)
,@pKeresztfeleves char(1)
,@pBeszamitasosTanulo char(1)
,@pOsztondijbolKizarva char(1)
,@pMulasztasMiattKizart char(1)
,@IsSzktJogosult char(1)
,@IsIngyenesKepzes char(1)
,@pAtlag float
,@pMinAtlag float
,@pIsAtlagFuggo bit
,@pLekerdezesDatuma datetime
,@pTanevSorszam int
)
RETURNS int
BEGIN
DECLARE @retval int = 0
IF @pJogviszonyTipus <> 7860
SET @retval += 1
IF @pBesorolas = 'F'
SET @retval += 2
IF @pIsMasodikSzakma = 'T'
SET @retval += 8
IF @pEvIsmetlo = 'T'
SET @retval += 16
IF @pMulSzam > @pMaxMulSzam
SET @retval += 32
IF @pIsDualisKepzesben = 'T'
SET @retval += 64
IF @pIsAtlagFuggo = 1
BEGIN
IF @pAtlag < @pMinAtlag
SET @retval += 128
END
IF @pTechnikaiOsztaly = 'T'
SET @retval += 256
IF @pIsVendegTanulo = 'T'
SET @retval += 512
IF @pIsJogviszonyatSzunetelteto = 'T'
SET @retval += 1024
IF @pKeresztfeleves = 'T'
SET @retval += 2048
IF @pOsztondijbolKizarva = 'T'
SET @retval += 4096
IF @pMulasztasMiattKizart = 'T'
SET @retval += 8192
IF @IsSzktJogosult = 'F'
AND @pEvfolyamTipus NOT IN (7904, 7889, 7868) -- dobbantó, mûhelyiskola, orientációs évfolyam szkt beállítás nélkül is kap
AND @pBeszamitasosTanulo <> 'T' -- beszámításos tanuló is kap
SET @retval += 16384
IF @IsIngyenesKepzes = 'F'
SET @retval += 32768
return @retval
END
GO

View file

@ -0,0 +1,26 @@
DROP FUNCTION IF EXISTS fnGetTanuloEpjElutasitasOka
GO
CREATE FUNCTION fnGetTanuloEpjElutasitasOka (
@pJogviszonyTipus int
,@pIsMasodikSzakma char(1)
,@pErdemjegy float
,@pMinErdemjegy float
,@pKifizetesDatuma datetime
,@pEpjId int
)
RETURNS int
BEGIN
DECLARE @retval int = 0
IF @pJogviszonyTipus <> 7860
SET @retval += 1
IF @pIsMasodikSzakma = 'T'
SET @retval += 2
IF @pErdemjegy < @pMinErdemjegy
SET @retval += 4
IF @pKifizetesDatuma IS NOT NULL
SET @retval += 8
IF @pEpjId IS NULL
SET @retval += 16
return @retval
END
GO

View file

@ -0,0 +1,46 @@
DROP FUNCTION IF EXISTS fnGetTanuloOsztaly
GO
CREATE FUNCTION fnGetTanuloOsztaly (
@pTanuloId int
,@pDatum date = NULL
,@pFeladatKategoriaId int = NULL
,@pKiiratkozottNeJelenjenMeg bit = 1
,@pOktatasiNevelesiFeladatId int = NULL
)
RETURNS @ResultTable TABLE (
ID int
,EvfolyamTipusId int
,OsztalyNev nvarchar (255)
,BelepesDatuma datetime
)
AS BEGIN
INSERT INTO @ResultTable (
ID
,EvfolyamTipusId
,OsztalyNev
,BelepesDatuma
)
SELECT
OsztalyCsoport.ID
,OsztalyCsoport.C_EVFOLYAMTIPUSA
,OsztalyCsoport.C_NEV
,TanuloCsoport.C_BELEPESDATUM
FROM T_TANULOCSOPORT_OSSZES TanuloCsoport
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 @pFeladatKategoriaId IS NULL)
INNER JOIN T_FELADATELLATASIHELY_OSSZES FeladatEllatasiHely ON FeladatEllatasiHely.ID = OsztalyCsoport.C_FELADATELLATASIHELYID
AND (FeladatEllatasiHely.C_OKTATASINEVELESIFELADATTIPUS = @pOktatasiNevelesiFeladatId OR @pOktatasiNevelesiFeladatId IS NULL)
WHERE TanuloCsoport.C_TANULOID = @pTanuloId
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()))) OR @pKiiratkozottNeJelenjenMeg = 0)
RETURN
END
GO

View file

@ -0,0 +1,32 @@
DROP FUNCTION IF EXISTS fnGetTanuloOsztalyString
GO
CREATE FUNCTION fnGetTanuloOsztalyString (
@pTanuloId int
,@pDatum date = NULL
,@pFeladatKategoriaId int = NULL
,@pKiiratkozottNeJelenjenMeg bit = 1
,@pKovTanev bit = 0
,@pFilterOsztalyId int = NULL)
RETURNS @retTable TABLE (Osztalynev nvarchar(4000))
AS BEGIN
INSERT INTO @retTable
SELECT STUFF((
SELECT ', '+OsztalyCsoport.C_NEV
FROM T_TANULOCSOPORT_OSSZES TanuloCsoport
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 @pFeladatKategoriaId IS NULL)
INNER JOIN T_TANEV_OSSZES Tanev ON Tanev.ID = TanuloCsoport.C_TANEVID AND Tanev.TOROLT = 'F'
WHERE TanuloCsoport.C_TANULOID = @pTanuloId
AND TanuloCsoport.TOROLT = 'F'
AND (TanuloCsoport.C_BELEPESDATUM <= ISNULL(@pDatum,GETDATE()) OR @pKovTanev = 1)
AND (((TanuloCsoport.C_KILEPESDATUM > ISNULL(@pDatum,GETDATE()) OR TanuloCsoport.C_KILEPESDATUM IS NULL OR TanuloCsoport.C_KILEPESDATUM >= Tanev.C_UTOLSOTANITASINAP)
OR @pKiiratkozottNeJelenjenMeg = 0)
OR @pKovTanev = 1)
AND (@pFilterOsztalyId IS NULL OR @pFilterOsztalyId = TanuloCsoport.C_OSZTALYCSOPORTID)
FOR XML PATH('')),1,1,'')
RETURN
END
GO

View file

@ -0,0 +1,153 @@
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
DROP FUNCTION IF EXISTS [dbo].[fnGetTanuloTanugyiAdatai]
GO
CREATE FUNCTION [dbo].[fnGetTanuloTanugyiAdatai](
@tanevId int
,@isDuplikalt bit = 0
,@tanuloId int = 0
)
RETURNS TABLE
AS
RETURN
(
SELECT * FROM (
SELECT
tanuloId
,IIF(Count(TanugyiAdatok.tanuloId)>1, '1' , '0') AS IsDuplikalt
,TanugyiAdatok.C_BEIRASINAPLOSORSZAM
,TanugyiAdatok.C_BEJARO
,TanugyiAdatok.C_DIAKSPORTKOROS
,TanugyiAdatok.C_EGYEBORSZAGOSDONTO
,TanugyiAdatok.C_EGYUTTMUKODESES
,TanugyiAdatok.C_ELOZOINTEZMENY
,TanugyiAdatok.C_EVISMETLO
,TanugyiAdatok.C_FELVETELTANEVEID
,TanugyiAdatok.C_HOZOTTIGAZOLATLANHIANYZAS
,TanugyiAdatok.C_HOZOTTIGAZOLATLANKESESPERCBE
,TanugyiAdatok.C_HOZOTTIGAZOLTHIANYZAS
,TanugyiAdatok.C_HOZOTTIGAZOLTKESESPERCBEN
,TanugyiAdatok.C_ISESL16EVESUTANBELEPETT
,TanugyiAdatok.C_ISKOLAIKERETEKKOZOTT
,TanugyiAdatok.C_JOGVISZONYATSZUNETELTETO
,TanugyiAdatok.C_JOGVISZONYVARHATOBEFEJEZESE
,TanugyiAdatok.C_MAGANTANULO
,TanugyiAdatok.C_MAGANTANULOSAGANAKOKAID
,TanugyiAdatok.C_MAGANTANULOSAGKEZDETE
,TanugyiAdatok.C_NAPLOSORSZAM
,TanugyiAdatok.C_NYILVANTARTASKEZDETE
,TanugyiAdatok.C_OSZTV
,TanugyiAdatok.C_POLGARISZERZODESES
,TanugyiAdatok.C_SZAKMAIGYAKORLATON
,TanugyiAdatok.C_SZETVAGAZAT
,TanugyiAdatok.C_SZINTVIZSGA
,TanugyiAdatok.C_SZKTV
,TanugyiAdatok.C_TANDIJATFIZETO
,TanugyiAdatok.C_TANKOTELEZETT
,TanugyiAdatok.C_TANKOTELEZETTSEGVEGE
,TanugyiAdatok.C_TANTERVID
,TanugyiAdatok.C_TANULOEVFOLYAMTIPUSID
,TanugyiAdatok.C_TANULOSZERZODESES
,TanugyiAdatok.C_TECHNIKUSIEVFOLYAM
,TanugyiAdatok.C_TERITESIDIJATFIZETO
,TanugyiAdatok.C_TORZSLAPSZAM
,TanugyiAdatok.C_VENDEG
FROM (
SELECT
tanulo.ID tanuloId
,IIF(tanugyiAdatok.ID IS NULL, tanulo.C_BEIRASINAPLOSORSZAM, tanugyiAdatok.C_BEIRASINAPLOSORSZAM) AS C_BEIRASINAPLOSORSZAM
,IIF(tanugyiAdatok.ID IS NULL, tanulo.C_BEJARO, tanugyiAdatok.C_BEJARO) AS C_BEJARO
,IIF(tanugyiAdatok.ID IS NULL, tanulo.C_DIAKSPORTKOROS, tanugyiAdatok.C_DIAKSPORTKOROS) AS C_DIAKSPORTKOROS
,tanugyiAdatok.C_EGYEBORSZAGOSDONTO AS C_EGYEBORSZAGOSDONTO
,IIF(tanugyiAdatok.ID IS NULL, tanulo.C_EGYUTTMUKODESES, tanugyiAdatok.C_EGYUTTMUKODESES) AS C_EGYUTTMUKODESES
,IIF(tanugyiAdatok.ID IS NULL, tanulo.C_ELOZOINTEZMENY, tanugyiAdatok.C_ELOZOINTEZMENY) AS C_ELOZOINTEZMENY
,IIF(tanugyiAdatok.ID IS NULL, tanulo.C_EVISMETLO, tanugyiAdatok.C_EVISMETLO) AS C_EVISMETLO
,IIF(tanugyiAdatok.ID IS NULL, tanulo.C_FELVETELTANEVEID, tanugyiAdatok.C_FELVETELTANEVEID) AS C_FELVETELTANEVEID
,tanugyiAdatok.C_HOZOTTIGAZOLATLANHIANYZAS AS C_HOZOTTIGAZOLATLANHIANYZAS
,tanugyiAdatok.C_HOZOTTIGAZOLATLANKESESPERCBE AS C_HOZOTTIGAZOLATLANKESESPERCBE
,tanugyiAdatok.C_HOZOTTIGAZOLTHIANYZAS AS C_HOZOTTIGAZOLTHIANYZAS
,tanugyiAdatok.C_HOZOTTIGAZOLTKESESPERCBEN AS C_HOZOTTIGAZOLTKESESPERCBEN
,tanugyiAdatok.C_ISESL16EVESUTANBELEPETT AS C_ISESL16EVESUTANBELEPETT
,IIF(tanugyiAdatok.ID IS NULL, tanulo.C_ISKOLAIKERETEKKOZOTT, tanugyiAdatok.C_ISKOLAIKERETEKKOZOTT) AS C_ISKOLAIKERETEKKOZOTT
,IIF(tanugyiAdatok.ID IS NULL, tanulo.C_JOGVISZONYATSZUNETELTETO, tanugyiAdatok.C_JOGVISZONYATSZUNETELTETO) AS C_JOGVISZONYATSZUNETELTETO
,IIF(tanugyiAdatok.ID IS NULL, tanulo.C_JOGVISZONYVARHATOBEFEJEZESE, tanugyiAdatok.C_JOGVISZONYVARHATOBEFEJEZESE) AS C_JOGVISZONYVARHATOBEFEJEZESE
,IIF(tanugyiAdatok.ID IS NULL, tanulo.C_MAGANTANULO, tanugyiAdatok.C_MAGANTANULO) AS C_MAGANTANULO
,IIF(tanugyiAdatok.ID IS NULL, tanulo.C_MAGANTANULOSAGANAKOKA, tanugyiAdatok.C_MAGANTANULOSAGANAKOKAID) AS C_MAGANTANULOSAGANAKOKAID
,IIF(tanugyiAdatok.ID IS NULL, tanulo.C_MAGANTANULOSAGKEZDETE, tanugyiAdatok.C_MAGANTANULOSAGKEZDETE) AS C_MAGANTANULOSAGKEZDETE
,IIF(tanugyiAdatok.ID IS NULL, tanulo.C_NAPLOSORSZAM, tanugyiAdatok.C_NAPLOSORSZAM) AS C_NAPLOSORSZAM
,IIF(tanugyiAdatok.ID IS NULL, felhasznalo.C_NYILVANTARTASKEZDETE, tanugyiAdatok.C_NYILVANTARTASKEZDETE) AS C_NYILVANTARTASKEZDETE
,IIF(tanugyiAdatok.ID IS NULL, tanulo.C_OSZTV, tanugyiAdatok.C_OSZTV) AS C_OSZTV
,IIF(tanugyiAdatok.ID IS NULL, tanulo.C_POLGARISZERZODESES, tanugyiAdatok.C_POLGARISZERZODESES) AS C_POLGARISZERZODESES
,IIF(tanugyiAdatok.ID IS NULL, tanulo.C_SZAKMAIGYAKORLATON, tanugyiAdatok.C_SZAKMAIGYAKORLATON) AS C_SZAKMAIGYAKORLATON
,IIF(tanugyiAdatok.ID IS NULL, tanulo.C_SZETVAGAZAT, tanugyiAdatok.C_SZETVAGAZAT) AS C_SZETVAGAZAT
,IIF(tanugyiAdatok.ID IS NULL, tanulo.C_SZINTVIZSGA, tanugyiAdatok.C_SZINTVIZSGA) AS C_SZINTVIZSGA
,IIF(tanugyiAdatok.ID IS NULL, tanulo.C_SZKTV, tanugyiAdatok.C_SZKTV) AS C_SZKTV
,IIF(tanugyiAdatok.ID IS NULL, tanulo.C_TANDIJATFIZETO, tanugyiAdatok.C_TANDIJATFIZETO) AS C_TANDIJATFIZETO
,IIF(tanugyiAdatok.ID IS NULL, tanulo.C_TANKOTELEZETT, tanugyiAdatok.C_TANKOTELEZETT) AS C_TANKOTELEZETT
,IIF(tanugyiAdatok.ID IS NULL, tanulo.C_TANKOTELEZETTSEGVEGE, tanugyiAdatok.C_TANKOTELEZETTSEGVEGE) AS C_TANKOTELEZETTSEGVEGE
,tanugyiAdatok.C_TANTERVID AS C_TANTERVID
,IIF(tanugyiAdatok.ID IS NULL, tanulo.C_TANULOEVFOLYAMTIPUS, tanugyiAdatok.C_TANULOEVFOLYAMTIPUSID) AS C_TANULOEVFOLYAMTIPUSID
,IIF(tanugyiAdatok.ID IS NULL, tanulo.C_TANULOSZERZODESES, tanugyiAdatok.C_TANULOSZERZODESES) AS C_TANULOSZERZODESES
,IIF(tanugyiAdatok.ID IS NULL, tanulo.C_TECHNIKUSIEVFOLYAM, tanugyiAdatok.C_TECHNIKUSIEVFOLYAM) AS C_TECHNIKUSIEVFOLYAM
,IIF(tanugyiAdatok.ID IS NULL, tanulo.C_TERITESIDIJATFIZETO, tanugyiAdatok.C_TERITESIDIJATFIZETO) AS C_TERITESIDIJATFIZETO
,IIF(tanugyiAdatok.ID IS NULL, tanulo.C_TORZSLAPSZAM, tanugyiAdatok.C_TORZSLAPSZAM) AS C_TORZSLAPSZAM
,IIF(tanugyiAdatok.ID IS NULL, tanulo.C_VENDEG, tanugyiAdatok.C_VENDEG) AS C_VENDEG
FROM T_TANULO_OSSZES tanulo
INNER JOIN T_TANEV_OSSZES tanev ON tanev.ID = tanulo.C_ALTANEVID AND tanev.Id = @tanevId AND Tanev.TOROLT = 'F'
LEFT JOIN T_TANULOCSOPORT_OSSZES tanuloCsoport ON tanuloCsoport.C_TANULOID = tanulo.ID
AND tanuloCsoport.C_BELEPESDATUM <= GETDATE()
AND ( C_KILEPESDATUM >= GETDATE() OR C_KILEPESDATUM IS NULL)
AND tanulocsoport.C_BELEPESDATUM >= tanev.C_KEZDONAP
AND tanulocsoport.C_BELEPESDATUM <= tanev.C_UTOLSONAP
AND tanuloCsoport.C_KILEPESDATUM <= tanev.C_UTOLSONAP
AND tanuloCsoport.C_KILEPESDATUM >= tanev.C_KEZDONAP
AND tanuloCsoport.TOROLT = 'F'
LEFT JOIN T_OSZTALY_OSSZES osztaly ON osztaly.ID = tanuloCsoport.C_OSZTALYCSOPORTID
LEFT JOIN T_TANULOTANUGYIADATOK_OSSZES tanugyiAdatok ON tanugyiadatok.C_TANULOCSOPORTID = tanuloCsoport.ID
INNER JOIN T_FELHASZNALO_OSSZES felhasznalo ON felhasznalo.ID = tanulo.ID
WHERE (tanulo.ID = @tanuloId OR @tanuloId = 0)
) TanugyiAdatok
GROUP BY tanuloId
,C_BEIRASINAPLOSORSZAM
,C_BEJARO
,C_DIAKSPORTKOROS
,C_EGYEBORSZAGOSDONTO
,C_EGYUTTMUKODESES
,C_ELOZOINTEZMENY
,C_EVISMETLO
,C_FELVETELTANEVEID
,C_HOZOTTIGAZOLATLANHIANYZAS
,C_HOZOTTIGAZOLATLANKESESPERCBE
,C_HOZOTTIGAZOLTHIANYZAS
,C_HOZOTTIGAZOLTKESESPERCBEN
,C_ISESL16EVESUTANBELEPETT
,C_ISKOLAIKERETEKKOZOTT
,C_JOGVISZONYATSZUNETELTETO
,C_JOGVISZONYVARHATOBEFEJEZESE
,C_MAGANTANULO
,C_MAGANTANULOSAGANAKOKAID
,C_MAGANTANULOSAGKEZDETE
,C_NAPLOSORSZAM
,C_NYILVANTARTASKEZDETE
,C_OSZTV
,C_POLGARISZERZODESES
,C_SZAKMAIGYAKORLATON
,C_SZETVAGAZAT
,C_SZINTVIZSGA
,C_SZKTV
,C_TANDIJATFIZETO
,C_TANKOTELEZETT
,C_TANKOTELEZETTSEGVEGE
,C_TANTERVID
,C_TANULOEVFOLYAMTIPUSID
,C_TANULOSZERZODESES
,C_TECHNIKUSIEVFOLYAM
,C_TERITESIDIJATFIZETO
,C_TORZSLAPSZAM
,C_VENDEG
) TanugyiAdatok WHERE IsDuplikalt <= @isDuplikalt
)
GO

View file

@ -0,0 +1,40 @@
DROP FUNCTION IF EXISTS fnGetUtkozesByOsztalycsoport
GO
CREATE FUNCTION [fnGetUtkozesByOsztalycsoport] (
@startTime datetime,
@endTime datetime,
@osztalyCsoportId int,
@intezmenyId int,
@tanevId int
) RETURNS TABLE
RETURN (
SELECT o.ID AS OrarendiOraId, NULL AS TanitasioraId, NULL AS OsztalyCsoportId, NULL as NemKotottMunkaido
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 OR o.C_HETIREND = 1554)
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 >= CAST(@startTime AS DATE) AND n.C_NAPDATUMA <= CAST(@endTime AS DATE)
AND n.TOROLT = 'F' AND (tr.TOROLT = 'F' OR tr.TOROLT IS NULL) AND o.TOROLT = 'F' and o.C_PARHUZAMOSORA = 'F'
AND o.C_ORAERVENYESSEGKEZDETE <= CAST(@endTime AS DATE) AND o.C_ORAERVENYESSEGVEGE > CAST(@startTime AS DATE)
UNION
SELECT o.ID AS OrarendiOraId, tn.ID AS TanitasioraId, tn.C_OSZTALYCSOPORTID AS OsztalyCsoportID, NULL as NemKotottMunkaido
FROM T_TANITASIORA_OSSZES tn
LEFT JOIN T_ORARENDIORA o ON tn.C_ORARENDIORAGROUPID = o.C_ORARENDIORAGROUPID AND tn.C_DATUM BETWEEN o.C_ORAERVENYESSEGKEZDETE AND o.C_ORAERVENYESSEGVEGE
WHERE tn.C_ORAKEZDETE < @endTime
AND tn.C_ORAVEGE > @startTime
AND tn.C_OSZTALYCSOPORTID IN (SELECT ID FROM dbo.fnGetKapcsolodoOsztalycsoportok(@osztalyCsoportId))
AND tn.C_TANEVID = @tanevId
AND tn.C_INTEZMENYID = @intezmenyId
AND tn.TOROLT = 'F' and tn.C_PARHUZAMOSORA = 'F'
);
GO

View file

@ -0,0 +1,69 @@
IF OBJECT_ID('fnGetUtkozesByTanar') IS NOT NULL BEGIN
DROP FUNCTION fnGetUtkozesByTanar
END
GO
CREATE FUNCTION [fnGetUtkozesByTanar] (
@startTime datetime,
@endTime datetime,
@tanarId int,
@intezmenyId int,
@tanevId int
) RETURNS TABLE
RETURN (
SELECT
o.ID AS OrarendiOraId
,NULL AS TanitasiOraId
,NULL as NemKotottMunkaido
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 OR o.C_HETIREND = 1554)
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 >= CAST(@startTime AS DATE) AND n.C_NAPDATUMA <= CAST(@endTime AS DATE)
AND n.TOROLT = 'F' AND (tr.TOROLT = 'F' OR tr.TOROLT IS NULL) AND o.TOROLT = 'F' and o.C_PARHUZAMOSORA = 'F'
AND o.C_ORAERVENYESSEGKEZDETE <= CAST(@endTime AS DATE) AND o.C_ORAERVENYESSEGVEGE > CAST(@startTime AS DATE)
UNION
SELECT
o.ID AS OrarendiOraId
,tn.ID AS TanitasioraId
,NULL as NemKotottMunkaido
FROM T_TANITASIORA_OSSZES tn
LEFT JOIN T_ORARENDIORA o ON tn.C_ORARENDIORAGROUPID = o.C_ORARENDIORAGROUPID AND tn.C_DATUM BETWEEN o.C_ORAERVENYESSEGKEZDETE AND o.C_ORAERVENYESSEGVEGE
WHERE
tn.C_ORAKEZDETE < @endTime
AND tn.C_ORAVEGE > @startTime
AND ISNULL(tn.C_HELYETTESITOTANARID, tn.C_ORATULAJDONOSID) = @tanarId
AND tn.C_TANEVID = @tanevId
AND tn.C_INTEZMENYID = @intezmenyId
AND tn.TOROLT = 'F' and tn.C_PARHUZAMOSORA = 'F'
UNION
SELECT
*
FROM
(
SELECT
NULL AS OrarendiOraId
,NULL AS TanitasiOraId
,IIF(COUNT(*) > 0, COUNT(*), NULL) AS NemKotottMunkaido
FROM T_NEMKOTOTTMUNKAIDO nkm
WHERE
nkm.C_TANEVID = @tanevId
AND nkm.C_INTEZMENYID = @intezmenyId
AND nkm.TOROLT = 'F'
AND nkm.C_TANARID = @tanarId
AND nkm.C_KEZDETE <= @endTime
AND nkm.C_VEGE >= @startTime
) AS nkmselect
WHERE
nkmselect.NemKotottMunkaido IS NOT NULL
);
GO

View file

@ -0,0 +1,58 @@
DROP FUNCTION IF EXISTS dbo.fnOsztondijHistoryOszlopok
GO
CREATE FUNCTION dbo.fnOsztondijHistoryOszlopok()
RETURNS TABLE
AS
RETURN (
SELECT TablaId, TablaNev, OszlopNev, OszlopTipus, Alias
FROM (
VALUES
-- TablaId TablaNev OszlopNev OszlopTipus Alias
(1, 'T_OSZTALYCSOPORT', 'C_EVFOLYAMTIPUSA', 'EvfolyamTipus', N'Az osztály évfolyama' ),
(1, 'T_OSZTALYCSOPORT', 'C_ISTECHNIKAI', 'Boolean', N'Az osztály technikai' ),
(1, 'T_OSZTALYCSOPORT', 'C_KERESZTFELEVES', 'Boolean', N'Az osztály keresztféléves' ),
(1, 'T_OSZTALYCSOPORT', 'C_FELADATKATEGORIAID', 'OktNevelesiKategoria', N'Az osztály modulja' ),
(1, 'T_OSZTALYCSOPORT', 'C_VEGZOSEVFOLYAM', 'Boolean', N'Az osztály végzős' ),
(1, 'T_OSZTALYCSOPORT', 'TOROLT', 'Boolean', N'Az osztály törölt' ),
(2, 'T_TANULO', 'C_EVISMETLO', 'Boolean', N'A tanuló évismétlő' ),
(2, 'T_TANULO', 'C_ISBESZAMITASOS', 'Boolean', N'A tanuló beszámításos' ),
(2, 'T_TANULO', 'C_ISMASODIKTOBBSZAKMA', 'Boolean', N'A tanuló nem első szakmás' ),
(2, 'T_TANULO', 'C_ISOSZTONDIJBOLKIZARVA', 'Boolean', N'A tanuló az ösztöndíjból kizárt' ),
(2, 'T_TANULO', 'C_ISSZAKKEPZESIMUNKASZERZODESS', 'Boolean', N'A tanuló munkaszerződéses' ),
(2, 'T_TANULO', 'C_JOGVISZONYATSZUNETELTETO', 'Boolean', N'A tanuló jogviszonya szünetel' ),
(2, 'T_TANULO', 'C_JOGVISZONYTIPUSID', 'JogviszonyTipus', N'A tanuló jogviszonya' ),
(2, 'T_TANULO', 'C_KEZIATLAG', 'NULL', N'A tanuló beállított átlaga' ),
(2, 'T_TANULO', 'C_SZAMITOTTATLAG', 'NULL', N'A tanuló számított átlaga' ),
(2, 'T_TANULO', 'C_TANULOSZERZODESES', 'NULL', N'A tanuló tanulószerződéses' ),
(2, 'T_TANULO', 'C_VENDEG', 'Boolean', N'A tanuló vendégtanuló' ),
(2, 'T_TANULO', 'C_ISBESZAMITASOSFIXSZAZALEK', 'Boolean', N'A tanulónak nincs releváns átlaga' ),
(2, 'T_TANULO', 'C_ISMULASZTASMIATTKIZART', 'Boolean', N'A tanuló a hiányzásai miatt kizárt' ),
(2, 'T_TANULO', 'C_ISSIKERESAGAZATIVIZSGA', 'Boolean', N'A tanuló sikeres ágazati vizsgát tett' ),
(2, 'T_TANULO', 'C_ISATLAGSZAKKEPZESI', 'Boolean', N'Átlag szakképzési' ),
(2, 'T_TANULO', 'C_ISINGYENESKEPZES', 'Boolean', N'A tanuló ingyenes képzésben vesz részt'),
(2, 'T_TANULO', 'TOROLT', 'Boolean', N'A tanuló törölt' ),
(3, 'T_TANULOCSOPORT', 'C_BELEPESDATUM', 'DateTime', N'A tanuló besorolásának dátuma' ),
(3, 'T_TANULOCSOPORT', 'C_KILEPESDATUM', 'DateTime', N'A tanuló kisorolásának dátuma' ),
(3, 'T_TANULOCSOPORT', 'C_JOGVISZONYTIPUSID', 'JogviszonyTipus', N'A tanuló jogviszonya' ),
(3, 'T_TANULOCSOPORT', 'TOROLT', 'Boolean', N'A tanuló besorolása törölt' ),
(4, 'T_TANULOMULASZTAS', 'C_IGAZOLT', 'Boolean', N'A tanuló mulasztása igazolt' ),
(4, 'T_TANULOMULASZTAS', 'C_TIPUS', 'MulasztasTipus', N'A tanuló mulasztásának típusa' ),
(4, 'T_TANULOMULASZTAS', 'C_TANITASIORAKID', 'NULL', N'A tanuló mulasztásának tanórája' ),
(4, 'T_TANULOMULASZTAS', 'C_ORATANULOIID', 'NULL', N'A tanuló mulasztásának tanulója' ),
(4, 'T_TANULOMULASZTAS', 'TOROLT', 'Boolean', N'A tanuló mulasztása törölt' ),
(5, 'T_TANULOTANUGYIADATOK', 'C_EVISMETLO', 'Boolean', N'A tanuló évismétlő' ),
(5, 'T_TANULOTANUGYIADATOK', 'C_ISBESZAMITASOS', 'Boolean', N'A tanuló beszámításos' ),
(5, 'T_TANULOTANUGYIADATOK', 'C_ISMASODIKTOBBSZAKMA', 'Boolean', N'A tanuló nem első szakmás' ),
(5, 'T_TANULOTANUGYIADATOK', 'C_ISSZAKKEPZESIMUNKASZERZODESS', 'Boolean', N'A tanuló munkaszerződéses' ),
(5, 'T_TANULOTANUGYIADATOK', 'C_JOGVISZONYATSZUNETELTETO', 'Boolean', N'A tanuló jogviszonya szünetel' ),
(5, 'T_TANULOTANUGYIADATOK', 'C_TANULOEVFOLYAMTIPUSID', 'Boolean', N'A tanuló egyéni évfolyama' ),
(5, 'T_TANULOTANUGYIADATOK', 'C_TANULOSZERZODESES', 'Boolean', N'A tanuló tanulószerződéses' ),
(5, 'T_TANULOTANUGYIADATOK', 'C_VENDEG', 'Boolean', N'A tanuló vendégtanuló' ),
(5, 'T_TANULOTANUGYIADATOK', 'TOROLT', 'Boolean', N'A tanuló vagy besorolása törölt' ),
(5, 'T_TANULOTANUGYIADATOK', 'C_ISBESZAMITASOSFIXSZAZALEK', 'Boolean', N'A tanulónak nincs releváns átlaga' ),
(5, 'T_TANULOTANUGYIADATOK', 'C_AGAZATUJSZKTTIPUSID', 'AgazatUjSzktTipus', N'A tanuló képzésének ágazata' ),
(5, 'T_TANULOTANUGYIADATOK', 'C_SZAKMATIPUSID', 'SzakmaTipus', N'A tanuló képzésének szakmatípusa' )
) as t(TablaId, TablaNev, OszlopNev, OszlopTipus, Alias)
)
GO

View file

@ -0,0 +1,52 @@
DROP FUNCTION IF EXISTS dbo.fnRemoveXmlEvilCharacters
GO
CREATE FUNCTION dbo.fnRemoveXmlEvilCharacters (@text NVARCHAR(MAX))
RETURNS NVARCHAR(MAX) AS
BEGIN
DECLARE @return_value NVARCHAR(MAX)
SET @return_value =
REPLACE(REPLACE(REPLACE(REPLACE(REPLACE(REPLACE(REPLACE(REPLACE(REPLACE(REPLACE(
REPLACE(REPLACE(REPLACE(REPLACE(REPLACE(REPLACE(REPLACE(REPLACE(REPLACE(REPLACE(
REPLACE(REPLACE(REPLACE(REPLACE(REPLACE(REPLACE(REPLACE(REPLACE(REPLACE(REPLACE(
REPLACE(REPLACE(REPLACE(
@text
,CHAR(0x0), '')
,CHAR(0x1), '')
,CHAR(0x2), '')
,CHAR(0x3), '')
,CHAR(0x4), '')
,CHAR(0x5), '')
,CHAR(0x6), '')
,CHAR(0x7), '')
,CHAR(0x8), '')
,CHAR(0x9), '')
,CHAR(0xa), '')
,CHAR(0xb), '')
,CHAR(0xc), '')
,CHAR(0xd), '')
,CHAR(0xe), '')
,CHAR(0xf), '')
,CHAR(0x10), '')
,CHAR(0x11), '')
,CHAR(0x12), '')
,CHAR(0x13), '')
,CHAR(0x14), '')
,CHAR(0x15), '')
,CHAR(0x16), '')
,CHAR(0x17), '')
,CHAR(0x18), '')
,CHAR(0x19), '')
,CHAR(0x1a), '')
,CHAR(0x1b), '')
,CHAR(0x1c), '')
,CHAR(0x1d), '')
,CHAR(0x1e), '')
,CHAR(0x1f), '')
,CHAR(0x7f), '')
RETURN @return_value
END