init
This commit is contained in:
commit
e124a47765
19374 changed files with 9806149 additions and 0 deletions
|
@ -0,0 +1,127 @@
|
|||
GO
|
||||
|
||||
SET ANSI_NULLS ON
|
||||
GO
|
||||
SET QUOTED_IDENTIFIER ON
|
||||
GO
|
||||
|
||||
IF OBJECT_ID('sp_GetDokumentumErtekelesek') IS NOT NULL BEGIN
|
||||
DROP PROCEDURE [sp_GetDokumentumErtekelesek]
|
||||
END
|
||||
GO
|
||||
|
||||
CREATE PROCEDURE sp_GetDokumentumErtekelesek
|
||||
@osztalyId int,
|
||||
@tanevId int,
|
||||
@ertekelesTipus int,
|
||||
@isBizonyitvany int = 0
|
||||
|
||||
AS
|
||||
BEGIN
|
||||
SET NOCOUNT ON;
|
||||
|
||||
--Osztályhoz tartozó tanulók
|
||||
DECLARE @Tanulok TABLE (TanuloId INT PRIMARY KEY)
|
||||
INSERT INTO @Tanulok
|
||||
SELECT TanuloId FROM fnGetDokumentumOsztalyokCsoportokTanuloi(@tanevId, @osztalyId, 'T')
|
||||
|
||||
--Tanulóhoz kapcsolódó óraszámok
|
||||
DECLARE @Oraszamok TABLE (TanuloId int, Tantargy INT, Oraszam INT)
|
||||
|
||||
INSERT INTO @Oraszamok
|
||||
SELECT * FROM fnGetDokumentumTanulokEvesOraszamaiOsztalynkonet(@tanevId, @osztalyId)
|
||||
|
||||
--Értékelések
|
||||
SELECT
|
||||
ERTEKELES.C_TANULOID TANULOID
|
||||
, 'MAGATARTAS' TARGY
|
||||
, ISNULL(ERT.C_NAME, ISNULL(ERTEKELES.C_ERTEKELESSZOVEG, JEGY.C_NAME)) Ertekeles
|
||||
, NULL Jegyzet
|
||||
, ISNULL(ERT.C_NAME, ISNULL(ERTEKELES.C_ERTEKELESSZOVEG, JEGY.C_NAME)) ErtekelesJegyzettel
|
||||
, ISNULL(ERT.C_NAME, ISNULL(ERTEKELES.C_ERTEKELESSZOVEG, JEGY.C_NAME)) SzovegesErtekeles
|
||||
, NULL Oraszam
|
||||
, 1 RENDEZ
|
||||
FROM T_TANULOERTEKELES_OSSZES ERTEKELES
|
||||
INNER JOIN @Tanulok TANCSOPORT ON TANCSOPORT.TanuloId = ERTEKELES.C_TANULOID
|
||||
INNER JOIN T_OSZTALYFONOKIERTEKELES_OSSZES OSZTALYZAT ON OSZTALYZAT.ID = ERTEKELES.ID
|
||||
LEFT JOIN T_DICTIONARYITEMBASE_OSSZES ERT ON ERT.ID=OSZTALYZAT.C_MAGATARTAS AND ERT.C_TANEVID = @tanevId
|
||||
LEFT JOIN T_DICTIONARYITEMBASE_OSSZES JEGY ON JEGY.ID=ERTEKELES.C_OSZTALYZAT AND JEGY.C_TANEVID = @tanevId
|
||||
WHERE
|
||||
ERTEKELES.C_ERTEKELESTIPUSA = @ertekelesTipus
|
||||
AND ERTEKELES.C_TANEVID = @tanevId
|
||||
AND ERTEKELES.TOROLT='F'
|
||||
AND OSZTALYZAT.TOROLT = 'F'
|
||||
AND C_ERTEKELESSZOVEG IS NULL
|
||||
|
||||
UNION
|
||||
|
||||
SELECT
|
||||
ERTEKELES.C_TANULOID TANULOID
|
||||
, 'SZORGALOM' TARGY
|
||||
, ISNULL(ERT.C_NAME, ISNULL(ERTEKELES.C_ERTEKELESSZOVEG, JEGY.C_NAME)) Ertekeles
|
||||
, NULL Jegyzet
|
||||
, ISNULL(ERT.C_NAME, ISNULL(ERTEKELES.C_ERTEKELESSZOVEG, JEGY.C_NAME)) ErtekelesJegyzettel
|
||||
, ISNULL(ERT.C_NAME, ISNULL(ERTEKELES.C_ERTEKELESSZOVEG, JEGY.C_NAME)) SzovegesErtekeles
|
||||
, NULL Oraszam
|
||||
, 2 RENDEZ
|
||||
FROM T_TANULOERTEKELES_OSSZES ERTEKELES
|
||||
INNER JOIN @Tanulok TANCSOPORT ON TANCSOPORT.TanuloId = ERTEKELES.C_TANULOID
|
||||
INNER JOIN T_OSZTALYFONOKIERTEKELES_OSSZES OSZTALYZAT ON OSZTALYZAT.ID = ERTEKELES.ID
|
||||
LEFT JOIN T_DICTIONARYITEMBASE_OSSZES ERT ON ERT.ID=OSZTALYZAT.C_SZORGALOM AND ERT.C_TANEVID = @tanevId
|
||||
LEFT JOIN T_DICTIONARYITEMBASE_OSSZES JEGY ON JEGY.ID=ERTEKELES.C_OSZTALYZAT AND JEGY.C_TANEVID = @tanevId
|
||||
WHERE
|
||||
ERTEKELES.C_ERTEKELESTIPUSA = @ertekelesTipus
|
||||
AND ERTEKELES.C_TANEVID = @TanevId
|
||||
AND ERTEKELES.TOROLT='F'
|
||||
AND OSZTALYZAT.TOROLT = 'F'
|
||||
AND C_ERTEKELESSZOVEG IS NULL
|
||||
|
||||
UNION
|
||||
|
||||
SELECT
|
||||
ERTEKELES.C_TANULOID TANULOID
|
||||
, 'Magatartás / Szorgalom' TARGY
|
||||
, ERTEKELES.C_ERTEKELESSZOVEG Ertekeles
|
||||
, NULL Jegyzet
|
||||
, ERTEKELES.C_ERTEKELESSZOVEG ErtekelesJegyzettel
|
||||
, ERTEKELES.C_ERTEKELESSZOVEG SzovegesErtekeles
|
||||
, NULL Oraszam
|
||||
, 3 RENDEZ
|
||||
FROM T_TANULOERTEKELES_OSSZES ERTEKELES
|
||||
INNER JOIN @Tanulok TANCSOPORT ON TANCSOPORT.TanuloId = ERTEKELES.C_TANULOID
|
||||
INNER JOIN T_OSZTALYFONOKIERTEKELES_OSSZES OSZTALYZAT ON OSZTALYZAT.ID = ERTEKELES.ID
|
||||
WHERE
|
||||
ERTEKELES.C_ERTEKELESTIPUSA = @ertekelesTipus
|
||||
AND ERTEKELES.C_TANEVID = @TanevId
|
||||
AND ERTEKELES.TOROLT='F'
|
||||
AND OSZTALYZAT.TOROLT = 'F'
|
||||
AND C_ERTEKELESSZOVEG IS NOT NULL
|
||||
|
||||
UNION
|
||||
|
||||
SELECT
|
||||
ERTEKELES.C_TANULOID TANULOID
|
||||
, ISNULL(TARGY.C_NEVNYOMTATVANYBAN, TARGY.TARGYNEV) TARGY
|
||||
, ISNULL(ERT.C_NAME, ISNULL(ERTEKELES.C_ERTEKELESSZOVEG, CONVERT(NVARCHAR(MAX),ertekelesMegjegyzes.C_SZAZALEK)+' % ')) Ertekeles
|
||||
, ertekelesMegjegyzes.C_TEMA Jegyzet
|
||||
, ISNULL(ERT.C_NAME, ISNULL(ERTEKELES.C_ERTEKELESSZOVEG, CONVERT(NVARCHAR(MAX),ertekelesMegjegyzes.C_SZAZALEK)+' % ')) + IIF(ertekelesMegjegyzes.C_TEMA IS NULL, '', +' * '+ertekelesMegjegyzes.C_TEMA) ErtekelesJegyzettel
|
||||
, ISNULL(ERTEKELES.C_ERTEKELESSZOVEG, ERT.C_NAME) SzovegesErtekeles
|
||||
, Oraszam Oraszam
|
||||
, TARGY.KAT RENDEZ
|
||||
FROM T_TANULOERTEKELES_OSSZES ERTEKELES
|
||||
INNER JOIN @Tanulok TANCSOPORT ON TANCSOPORT.TanuloId = ERTEKELES.C_TANULOID
|
||||
INNER JOIN ( SELECT ID,C_NEV TARGYNEV,C_TARGYKATEGORIA KAT, C_ALTANTARGYKENTNYOMTATVANYBAN, C_FOTARGYE, C_NEVNYOMTATVANYBAN FROM T_TANTARGY_OSSZES where TOROLT = 'F') TARGY
|
||||
ON TARGY.ID = ERTEKELES.C_TANTARGYID
|
||||
LEFT JOIN T_DICTIONARYITEMBASE_OSSZES ERT ON ERT.ID=ERTEKELES.C_OSZTALYZAT AND ERT.C_TANEVID = @tanevId
|
||||
LEFT JOIN T_OSZTALYZATERTEKELES_OSSZES ertekelesMegjegyzes on ertekelesMegjegyzes.ID=ertekeles.Id
|
||||
LEFT JOIN @Oraszamok oraszam ON oraszam.Tantargy = ERTEKELES.C_TANTARGYID AND oraszam.TanuloId = ERTEKELES.C_TANULOID
|
||||
WHERE
|
||||
ERTEKELES.C_ERTEKELESTIPUSA = @ertekelesTipus
|
||||
AND ERTEKELES.C_TANEVID = @tanevId
|
||||
AND ERTEKELES.TOROLT='F'
|
||||
AND (TARGY.C_FOTARGYE = 'T' OR TARGY.C_ALTANTARGYKENTNYOMTATVANYBAN='T')
|
||||
ORDER BY TANULOID, RENDEZ
|
||||
|
||||
END
|
||||
|
||||
GO
|
|
@ -0,0 +1,252 @@
|
|||
SET ANSI_NULLS ON
|
||||
GO
|
||||
|
||||
SET QUOTED_IDENTIFIER ON
|
||||
GO
|
||||
|
||||
IF OBJECT_ID('dbo.sp_GetOrarendOsztalyonkent') IS NOT NULL BEGIN
|
||||
DROP PROCEDURE dbo.sp_GetOrarendOsztalyonkent
|
||||
END
|
||||
GO
|
||||
|
||||
CREATE PROCEDURE [dbo].[sp_GetOrarendOsztalyonkent]
|
||||
@intezmenyId int,
|
||||
@tanevId int,
|
||||
@osztalyId int
|
||||
AS
|
||||
BEGIN
|
||||
SET NOCOUNT ON;
|
||||
|
||||
DECLARE
|
||||
@TanuloId INT=null,
|
||||
@CsakOrarendiOrak INT=1,
|
||||
@TanarId INT=null
|
||||
|
||||
DECLARE @osztalyNev NVARCHAR(MAX)=(SELECT ocs.C_NEV FROM T_OSZTALYCSOPORT_OSSZES OCS WHERE ocs.ID=@osztalyId)
|
||||
|
||||
DECLARE @AktivtanevId INT = (SELECT ID FROM T_TANEV_OSSZES TANEV WHERE C_AKTIV='T' AND C_INTEZMENYID=@IntezmenyId)
|
||||
|
||||
DECLARE @UtolsoNap DATE = (SELECT TOP 1 C_NAPDATUMA FROM T_NAPTARINAP_OSSZES WHERE C_NAPTIPUSA=1395 AND C_INTEZMENYID=@intezmenyId AND C_TANEVID=@tanevid AND TOROLT='F')
|
||||
|
||||
DECLARE @HetEleje DATE
|
||||
DECLARE @HetVege DATE
|
||||
|
||||
IF (@tanevId = @AktivtanevId AND GETDATE() <= @UtolsoNap)
|
||||
BEGIN
|
||||
SET @HetEleje =(SELECT TOP 1 nh.C_HETKEZDONAPJA FROM T_NAPTARIHET_OSSZES nh WHERE CONVERT(DATE, GETDATE())>=CONVERT(DATE, NH.C_HETKEZDONAPJA) AND CONVERT(DATE, GETDATE())<=CONVERT(DATE, nh.C_HETUTOLSONAPJA) and nh.TOROLT='F' and nh.C_TANEVID=@tanevid and nh.C_INTEZMENYID=@intezmenyId)
|
||||
SET @HetVege =(SELECT TOP 1 nh.C_HETUTOLSONAPJA FROM T_NAPTARIHET_OSSZES nh WHERE CONVERT(DATE, GETDATE())>=CONVERT(DATE, nh.C_HETKEZDONAPJA) AND CONVERT(DATE, GETDATE())<=CONVERT(DATE, nh.C_HETUTOLSONAPJA) and nh.TOROLT='F' and nh.C_TANEVID=@tanevid and nh.C_INTEZMENYID=@intezmenyId)
|
||||
END
|
||||
ELSE
|
||||
BEGIN
|
||||
|
||||
SET @HetEleje =(SELECT TOP 1 nh.C_HETKEZDONAPJA FROM T_NAPTARIHET_OSSZES nh WHERE @UtolsoNap>=CONVERT(DATE, nh.C_HETKEZDONAPJA) AND @UtolsoNap<=CONVERT(DATE, nh.C_HETUTOLSONAPJA) AND nh.TOROLT='F' AND nh.C_TANEVID=@tanevId AND NH.C_INTEZMENYID=@intezmenyId)
|
||||
SET @HetVege =(SELECT TOP 1 nh.C_HETUTOLSONAPJA FROM T_NAPTARIHET_OSSZES nh WHERE @UtolsoNap>=CONVERT(DATE, nh.C_HETKEZDONAPJA) AND @UtolsoNap<=CONVERT(DATE, nh.C_HETUTOLSONAPJA) AND nh.TOROLT='F' AND nh.C_TANEVID=@tanevId AND NH.C_INTEZMENYID=@intezmenyId)
|
||||
END
|
||||
|
||||
|
||||
DECLARE
|
||||
@KezdoHet INT = DATEPART( ISO_WEEK, @HetEleje),
|
||||
@ZaroHet INT = DATEPART( ISO_WEEK, @HetVege);
|
||||
|
||||
CREATE TABLE #Vegleges (Hetirend INT, Hetnapja INT, Oraszam INT, TargyNev NVARCHAR(MAX), TanarNev NVARCHAR(MAX), TeremNev NVARCHAR(MAX), OsztalyNev NVARCHAR(MAX))
|
||||
|
||||
SELECT
|
||||
Datum,
|
||||
ISNULL(TanevHetirend, NapHetirend) Hetirend,
|
||||
ISNULL(TanevHetNapja, NapHetNapja) HetNapja,
|
||||
CsengetesiRendId
|
||||
INTO #TEMPORARENDINAPOK
|
||||
FROM (
|
||||
SELECT
|
||||
NAPTARINAP.Datum Datum,
|
||||
napHetirend.C_HETIREND NapHetirend,
|
||||
napHetirend.C_HETNAPJA NapHetNapja,
|
||||
tanevRendHetirend.C_HETIREND TanevHetirend,
|
||||
tanevRendHetirend.C_HETNAPJA TanevHetNapja,
|
||||
tanevRendHetirend.C_CSENGETESIRENDID CsengetesiRendId
|
||||
FROM /*ÁTÍRANDÓÓÓ*/(
|
||||
/*Minden naptári nap, ami az időintervallumba beleesik.*/
|
||||
(SELECT C_NAPDATUMA Datum FROM T_NAPTARINAP_OSSZES NAPTARINAP WHERE (TOROLT = 'F' AND C_NAPDATUMA BETWEEN @HetEleje AND @HetVege AND C_INTEZMENYID = @IntezmenyId AND C_TANEVID=@TanevId))
|
||||
EXCEPT /*Kivéve, ha van aznap kiemelt típusú tanévrendje esemény, vagy olyan esemény, aminél C_ORARENDINAP = 'F'.*/
|
||||
(SELECT C_DATUM Datum FROM T_TANEVRENDJE_OSSZES TANEVRENDJE WHERE (TOROLT = 'F' AND (C_NAPTIPUSA IN (1386,1387,1389,1391,1392,1396,1397,1398,1399,1401) OR C_ORARENDINAP = 'F') AND C_INTEZMENYID = @IntezmenyId AND C_TANEVID=@TanevId))
|
||||
UNION /*Azokat a dátumokat vegyük hozzá, amely napokon van C_ORARENDINAP = 'T' és C_ORARENDINAP = 'F' esemény is felvéve.*/
|
||||
SELECT Datum
|
||||
FROM (
|
||||
SELECT
|
||||
C_DATUM Datum,
|
||||
COUNT (C_DATUM) DatumCounter
|
||||
FROM (
|
||||
SELECT C_DATUM, C_ORARENDINAP
|
||||
FROM T_TANEVRENDJE_OSSZES TANEVRENDJE
|
||||
WHERE (TOROLT = 'F') AND C_INTEZMENYID = @IntezmenyId AND C_TANEVID=@TanevId) TANEVRENDJE1
|
||||
GROUP BY C_ORARENDINAP, C_DATUM
|
||||
) TANEVRENDJE2
|
||||
GROUP BY Datum
|
||||
HAVING COUNT(Datum) = 2
|
||||
|
||||
) NAPTARINAP
|
||||
LEFT JOIN (SELECT C_NAPDATUMA, C_HETIREND, IIF(C_HETNAPJA = 1407, dbo.fnGetHetNapja(C_NAPDATUMA), C_HETNAPJA) AS C_HETNAPJA from T_NAPTARINAP_OSSZES WHERE TOROLT = 'F') napHetirend on napHetirend.C_NAPDATUMA = NAPTARINAP.Datum
|
||||
LEFT JOIN (SELECT C_DATUM, C_HETIREND,C_CSENGETESIRENDID, IIF(C_HETNAPJA = 1407, dbo.fnGetHetNapja(C_DATUM), C_HETNAPJA) AS C_HETNAPJA from T_TANEVRENDJE_OSSZES WHERE TOROLT = 'F') tanevRendHetirend on tanevRendHetirend.C_DATUM = NAPTARINAP.Datum
|
||||
) NapokHetirenddel
|
||||
|
||||
-- Vegzosok utolso tanitasi napja
|
||||
DECLARE @VegzosUtolsoTanitasiNap_spGetOrarend DATETIME;
|
||||
SELECT @VegzosUtolsoTanitasiNap_spGetOrarend = C_DATUM
|
||||
FROM T_TANEVRENDJE_OSSZES
|
||||
WHERE TOROLT = 'F'
|
||||
AND C_TANEVID = (SELECT ID FROM T_TANEV_OSSZES WHERE TOROLT = 'F' AND C_AKTIV = 'T' AND C_INTEZMENYID = @IntezmenyId)
|
||||
AND C_NAPTIPUSA = 1402 AND C_INTEZMENYID = @IntezmenyId AND C_TANEVID=@TanevId
|
||||
|
||||
|
||||
DECLARE @tempCsoportok TABLE (CsoportID int PRIMARY KEY, Oka nvarchar(20))
|
||||
-- Kapcsolódó csoportok
|
||||
IF @osztalyId IS NOT NULL BEGIN
|
||||
INSERT INTO @tempCsoportok (CsoportID, Oka)
|
||||
SELECT ID as CsoportID, OKA AS Oka
|
||||
FROM fnGetKapcsolodoOsztalycsoportokByDate(@osztalyId,@HetEleje,@HetVege)
|
||||
END
|
||||
ELSE BEGIN
|
||||
INSERT INTO @tempCsoportok (CsoportID, Oka)
|
||||
SELECT ID as CsoportID, '' AS Oka
|
||||
FROM T_OSZTALYCSOPORT WHERE C_TANEVID = @TanevId
|
||||
END
|
||||
|
||||
-- Órarendi órák
|
||||
insert into #vegleges
|
||||
Select Hetirend, HetNapja, Oraszam, TargyNev, TanarNev, TeremNev, OsztalyNev
|
||||
FROM (
|
||||
SELECT
|
||||
T_ORARENDIORA_OSSZES.ID Id,
|
||||
T_ORARENDIORA_OSSZES.ID ORARENDIID,
|
||||
T_ORARENDIORA_OSSZES.C_BONTOTT Bontott,
|
||||
T_ORARENDIORA_OSSZES.C_HETIREND Hetirend,
|
||||
T_ORARENDIORA_OSSZES.C_HETNAPJA HetNapja,
|
||||
T_ORARENDIORA_OSSZES.C_ORAERVENYESSEGKEZDETE ErvenyessegKezdete,
|
||||
T_ORARENDIORA_OSSZES.C_ORAERVENYESSEGVEGE ErvenyessegVege,
|
||||
T_ORARENDIORA_OSSZES.C_ORAKEZDETE OraKezdete,
|
||||
T_ORARENDIORA_OSSZES.C_ORAVEGE OraVege,
|
||||
T_CSENGETESIRENDORA_OSSZES.C_ORASZAM Oraszam,
|
||||
ISNULL(TARGY.C_ROVIDNEV, targy.C_NEV) TargyNev,
|
||||
'F' Megtartott,
|
||||
T_CSENGETESIRENDORA_OSSZES.ID CsengetesiRendOraID,
|
||||
OSZTALY.C_NEV AS OsztalyNev,
|
||||
tcs.OKA AS MegjelenesOka,
|
||||
TANAR.C_NYOMTATASINEV TanarNev,
|
||||
TEREM.C_NEV TeremNev,
|
||||
'OrarendiOra' OraTipus,
|
||||
'F' Hianyzas,
|
||||
'F' Keses,
|
||||
TANAR.ID TanarID
|
||||
FROM T_ORARENDIORA_OSSZES
|
||||
INNER JOIN @tempCsoportok tcs ON tcs.CsoportID = T_ORARENDIORA_OSSZES.C_OSZTALYCSOPORTID
|
||||
INNER JOIN T_CSENGETESIRENDORA_OSSZES on (T_CSENGETESIRENDORA_OSSZES.ID=T_ORARENDIORA_OSSZES.C_CSENGETESIRENDORAID AND T_CSENGETESIRENDORA_OSSZES.C_INTEZMENYID = @IntezmenyId AND T_CSENGETESIRENDORA_OSSZES.C_TANEVID=@TanevId)
|
||||
INNER JOIN (select Id,C_TANEVID,C_INTEZMENYID from T_CSENGETESIREND_OSSZES where C_AKTIV = 'T') AktivCsengetesiRend on ( AktivCsengetesiRend.C_TANEVID = @TanevId and AktivCsengetesiRend.C_INTEZMENYID = @IntezmenyId)
|
||||
LEFT JOIN T_TANTARGY_OSSZES TARGY ON TARGY.ID = T_ORARENDIORA_OSSZES.C_TANTARGYID
|
||||
LEFT JOIN T_FELHASZNALO_OSSZES TANAR ON TANAR.ID = T_ORARENDIORA_OSSZES.C_TANARID
|
||||
LEFT JOIN T_OSZTALYCSOPORT_OSSZES OSZTALY ON T_ORARENDIORA_OSSZES.C_OSZTALYCSOPORTID = OSZTALY.ID
|
||||
LEFT JOIN T_TEREM_OSSZES TEREM on (TEREM.id = T_ORARENDIORA_OSSZES.C_TEREMID AND TEREM.C_INTEZMENYID = @IntezmenyId AND TEREM.C_TANEVID=@TanevId)
|
||||
WHERE T_ORARENDIORA_OSSZES.TOROLT='F'
|
||||
AND (T_ORARENDIORA_OSSZES.C_TANORANKIVULIFOGLALKOZAS = 'F' OR T_ORARENDIORA_OSSZES.C_TANORANKIVULIFOGLALKOZAS IS NULL)
|
||||
AND T_ORARENDIORA_OSSZES.C_INTEZMENYID = @IntezmenyId
|
||||
AND T_ORARENDIORA_OSSZES.C_TANEVID = @TanevId
|
||||
AND T_ORARENDIORA_OSSZES.C_ORAERVENYESSEGVEGE >= @HetEleje
|
||||
|
||||
AND ( @TanuloId IS NULL
|
||||
OR EXISTS (
|
||||
SELECT 1
|
||||
FROM T_TANULOCSOPORT_OSSZES TANCSOP
|
||||
WHERE TANCSOP.C_OSZTALYCSOPORTID = T_ORARENDIORA_OSSZES.C_OSZTALYCSOPORTID
|
||||
AND TANCSOP.TOROLT = 'F' AND TANCSOP.C_INTEZMENYID = @IntezmenyId AND TANCSOP.C_TANEVID=@TanevId
|
||||
AND TANCSOP.C_BELEPESDATUM < GETDATE()
|
||||
AND (TANCSOP.C_KILEPESDATUM IS NULL OR TANCSOP.C_KILEPESDATUM >= GETDATE()) -- TÖRÖLT
|
||||
AND TANCSOP.C_TANULOID = @TanuloId )
|
||||
)
|
||||
) OrarendiOrak
|
||||
LEFT JOIN T_HELYETTESITESIIDOSZAK_OSSZES on (OrarendiOrak.ID = T_HELYETTESITESIIDOSZAK_OSSZES.C_HELYETTESITETTORARENDID
|
||||
And T_HELYETTESITESIIDOSZAK_OSSZES.C_HETSORSZAMA >= @KezdoHet
|
||||
And (T_HELYETTESITESIIDOSZAK_OSSZES.C_HETSORSZAMA <= @ZaroHet) And T_HELYETTESITESIIDOSZAK_OSSZES.TOROLT = 'F'
|
||||
) WHERE (@TanarId IS NULL OR OrarendiOrak.TanarID = @TanarId Or T_HELYETTESITESIIDOSZAK_OSSZES.C_HELYETTESTANAROKID = @TanarId)
|
||||
|
||||
|
||||
--!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
|
||||
DECLARE @TenylegesOra TABLE (Hetirend INT, Nap INT, OraSzam INT, Foglalkozas NVARCHAR(MAX))
|
||||
|
||||
DECLARE @Orarend TABLE (osztalyId INT, Ora INT, Hetirend INT, Nap INT, Foglalkozas NVARCHAR(MAX))
|
||||
|
||||
DECLARE @Hetirendek TABLE (Id INT)
|
||||
DECLARE @HetirendCount INT = (SELECT COUNT(DISTINCT oo.C_HETIREND) FROM T_ORARENDIORA_OSSZES oo WHERE oo.TOROLT='F' AND oo.C_TANEVID=@tanevId AND oo.C_INTEZMENYID=@intezmenyid)
|
||||
|
||||
IF (@HetirendCount=1)
|
||||
BEGIN
|
||||
INSERT INTO @Hetirendek
|
||||
SELECT DISTINCT oo.c_hetirend FROM T_ORARENDIORA_OSSZES oo WHERE oo.TOROLT='F' AND oo.C_TANEVID=@tanevId AND oo.C_INTEZMENYID=@intezmenyid
|
||||
END
|
||||
ELSE
|
||||
BEGIN
|
||||
INSERT INTO @Hetirendek
|
||||
SELECT DISTINCT oo.C_HETIREND from T_ORARENDIORA_OSSZES oo WHERE oo.TOROLT='F' AND oo.C_TANEVID=@tanevId AND oo.C_INTEZMENYID=@intezmenyid AND oo.C_HETIREND<>1554
|
||||
END
|
||||
|
||||
DECLARE @OsszesOra TABLE (Hetirend INT, Nap INT, Oraszam INT)
|
||||
INSERT INTO @OsszesOra
|
||||
SELECT DISTINCT oo.Id, Nap.Nap , OraSzam.OraSzam FROM @Hetirendek oo
|
||||
CROSS JOIN (VALUES (0),(1),(2),(3),(4),(5),(6),(7),(8),(9),(10)) OraSzam (OraSzam)
|
||||
CROSS JOIN (VALUES (1408),(1409),(1410),(1411),(1412), (1413)) Nap (Nap)
|
||||
|
||||
|
||||
/*KURZOR*/
|
||||
DECLARE kur CURSOR FOR
|
||||
SELECT Id FROM @Hetirendek
|
||||
|
||||
DECLARE @HetirendId int
|
||||
|
||||
OPEN kur
|
||||
FETCH NEXT FROM kur INTO @HetirendId
|
||||
|
||||
WHILE @@FETCH_STATUS = 0
|
||||
BEGIN
|
||||
/*tényleges órák*/
|
||||
INSERT INTO @TenylegesOra
|
||||
SELECT DISTINCT
|
||||
@HetirendId
|
||||
, veg.Hetnapja
|
||||
, veg.Oraszam
|
||||
,STUFF((SELECT distinct ', ' + CAST(bveg.TargyNev+' ('+bveg.TanarNev+', '+bveg.TeremNev+')' AS VARCHAR(max))
|
||||
FROM #Vegleges bveg
|
||||
WHERE bveg.Hetnapja=veg.Hetnapja
|
||||
AND bveg.Oraszam=veg.Oraszam
|
||||
AND (bveg.Hetirend=@HetirendId OR bveg.Hetirend=1554)
|
||||
FOR XML PATH(''), TYPE)
|
||||
.value('.','NVARCHAR(MAX)'),1,2,' ') Foglalkozasok
|
||||
FROM #Vegleges veg
|
||||
FETCH NEXT FROM kur INTO @HetirendId
|
||||
END
|
||||
CLOSE kur
|
||||
DEALLOCATE kur
|
||||
|
||||
/*Végleges órarend*/
|
||||
INSERT INTO @Orarend
|
||||
SELECT @osztalyId
|
||||
, OsszesOra.Oraszam
|
||||
, OsszesOra.Hetirend
|
||||
, OsszesOra.Nap
|
||||
, TenylegesOra.Foglalkozas
|
||||
FROM @OsszesOra OsszesOra
|
||||
left join @TenylegesOra TenylegesOra ON OsszesOra.Hetirend=TenylegesOra.Hetirend and OsszesOra.Nap=TenylegesOra.Nap and OsszesOra.Oraszam=TenylegesOra.Oraszam
|
||||
ORDER BY OsszesOra.Hetirend, OsszesOra.Nap, OsszesOra.Oraszam
|
||||
|
||||
SELECT
|
||||
pv.*
|
||||
, dic.C_NAME Hetirend_dname
|
||||
, @osztalyNev
|
||||
FROM @Orarend
|
||||
PIVOT (MAX(Foglalkozas) FOR Nap in([1408],[1409],[1410],[1411],[1412],[1413]))pv
|
||||
INNER JOIN (SELECT DISTINCT ID, C_NAME FROM T_DICTIONARYITEMBASE_OSSZES) dic ON dic.id=Hetirend
|
||||
ORDER BY Hetirend, Ora
|
||||
|
||||
DROP TABLE #Vegleges
|
||||
DROP TABLE #TEMPORARENDINAPOK
|
||||
|
||||
END
|
||||
|
||||
GO
|
File diff suppressed because it is too large
Load diff
|
@ -0,0 +1,201 @@
|
|||
SET ANSI_NULLS ON
|
||||
GO
|
||||
SET QUOTED_IDENTIFIER ON
|
||||
GO
|
||||
|
||||
IF OBJECT_ID('sp_GetPedagogusOrarend') IS NOT NULL
|
||||
BEGIN
|
||||
DROP PROCEDURE sp_GetPedagogusOrarend
|
||||
END
|
||||
GO
|
||||
-- =============================================
|
||||
-- Author: Dőrr Tamás
|
||||
-- Create date: 2015.12.16.
|
||||
-- Description: sp_GetPedagogusOrarend
|
||||
-- =============================================
|
||||
CREATE PROCEDURE sp_GetPedagogusOrarend
|
||||
@pPedagogusId INT,
|
||||
@pTanevId INT,
|
||||
@pIntezmenyId INT,
|
||||
@pReszletes BIT = 0
|
||||
|
||||
AS
|
||||
BEGIN
|
||||
SET NOCOUNT ON;
|
||||
|
||||
/*Intézmény és tanár név*/
|
||||
DECLARE @aktivTanevId INT = (SELECT ID FROM T_TANEV_OSSZES WHERE C_AKTIV='T' AND C_INTEZMENYID=@pIntezmenyId)
|
||||
|
||||
DECLARE @hetEleje DATE
|
||||
DECLARE @hetVege DATE
|
||||
|
||||
DECLARE @utolsoNap DATE = (
|
||||
SELECT TOP 1 C_NAPDATUMA FROM T_NAPTARINAP_OSSZES
|
||||
WHERE
|
||||
C_NAPTIPUSA = 1395
|
||||
AND C_INTEZMENYID = @pIntezmenyId
|
||||
AND C_TANEVID = @pTanevId
|
||||
AND TOROLT = 'F'
|
||||
)
|
||||
|
||||
IF (@pTanevId = @aktivTanevId AND GETDATE() <= @UtolsoNap)
|
||||
BEGIN
|
||||
SET @hetEleje = (
|
||||
SELECT TOP 1 nh.C_HETKEZDONAPJA FROM T_NAPTARIHET_OSSZES nh
|
||||
WHERE
|
||||
CONVERT(DATE, GETDATE()) >= CONVERT(DATE, NH.C_HETKEZDONAPJA)
|
||||
AND CONVERT(DATE, GETDATE()) <= CONVERT(DATE, nh.C_HETUTOLSONAPJA)
|
||||
AND nh.TOROLT = 'F'
|
||||
AND nh.C_TANEVID = @pTanevId
|
||||
AND nh.C_INTEZMENYID = @pIntezmenyId
|
||||
)
|
||||
|
||||
SET @hetVege = (
|
||||
SELECT TOP 1 nh.C_HETUTOLSONAPJA FROM T_NAPTARIHET_OSSZES nh
|
||||
WHERE
|
||||
CONVERT(DATE, GETDATE()) >= CONVERT(DATE, nh.C_HETKEZDONAPJA)
|
||||
AND CONVERT(DATE, GETDATE()) <= CONVERT(DATE, nh.C_HETUTOLSONAPJA)
|
||||
AND nh.TOROLT = 'F'
|
||||
AND nh.C_TANEVID = @pTanevId
|
||||
AND nh.C_INTEZMENYID = @pIntezmenyId
|
||||
)
|
||||
END
|
||||
|
||||
ELSE
|
||||
|
||||
BEGIN
|
||||
|
||||
SET @hetEleje = (
|
||||
SELECT TOP 1 nh.C_HETKEZDONAPJA FROM T_NAPTARIHET_OSSZES nh
|
||||
WHERE
|
||||
@utolsoNap >= CONVERT(DATE, nh.C_HETKEZDONAPJA)
|
||||
AND @utolsoNap <= CONVERT(DATE, nh.C_HETUTOLSONAPJA)
|
||||
AND nh.TOROLT = 'F'
|
||||
AND nh.C_TANEVID = @pTanevId
|
||||
AND NH.C_INTEZMENYID = @pIntezmenyId
|
||||
)
|
||||
|
||||
SET @hetVege = (
|
||||
SELECT TOP 1 nh.C_HETUTOLSONAPJA FROM T_NAPTARIHET_OSSZES nh
|
||||
WHERE
|
||||
@utolsoNap >= CONVERT(DATE, nh.C_HETKEZDONAPJA)
|
||||
AND @utolsoNap <= CONVERT(DATE, nh.C_HETUTOLSONAPJA)
|
||||
AND nh.TOROLT = 'F'
|
||||
AND nh.C_TANEVID = @pTanevId
|
||||
AND NH.C_INTEZMENYID = @pIntezmenyId
|
||||
)
|
||||
END
|
||||
|
||||
IF @preszletes = 1
|
||||
BEGIN
|
||||
SELECT TOP(1)
|
||||
f.C_NYOMTATASINEV as TANAR_NEV
|
||||
,i.C_NEV as INTEZMENY_NEV
|
||||
,i.C_OMKOD as INTEZMENY_OMKOD
|
||||
FROM T_ALKALMAZOTT_OSSZES a
|
||||
INNER JOIN T_FELHASZNALO_OSSZES f ON f.ID = a.ID AND f.TOROLT = 'F'
|
||||
INNER JOIN T_FOGLALKOZASOK_TANAROK ON T_FOGLALKOZASOK_TANAROK.C_TANAROKID = a.ID
|
||||
INNER JOIN T_FOGLALKOZAS_OSSZES fo ON fo.ID = T_FOGLALKOZASOK_TANAROK.C_FOGLALKOZASOKID AND fo.TOROLT = 'F'
|
||||
INNER JOIN T_OSZTALYCSOPORT_OSSZES ocs ON ocs.ID = fo.C_OSZTALYCSOPORTID AND ocs.TOROLT = 'F'
|
||||
INNER JOIN T_INTEZMENYADATOK_OSSZES i ON i.C_INTEZMENYID = a.C_ALINTEZMENYID AND i.C_TANEVID = a.C_ALTANEVID AND i.TOROLT = 'F'
|
||||
WHERE
|
||||
a.ID = @pPedagogusId
|
||||
AND a.C_ALTANEVID = @pTanevId
|
||||
AND i.C_INTEZMENYID = @pIntezmenyId
|
||||
AND a.TOROLT = 'F'
|
||||
END
|
||||
|
||||
DECLARE @tmpTable TABLE (
|
||||
TanarId INT
|
||||
,Ora INT
|
||||
,Hetirend INT
|
||||
,TanarNev NVARCHAR(255)
|
||||
,[1408] NVARCHAR(255)
|
||||
,[1409] NVARCHAR(255)
|
||||
,[1410] NVARCHAR(255)
|
||||
,[1411] NVARCHAR(255)
|
||||
,[1412] NVARCHAR(255)
|
||||
,[1413] NVARCHAR(255)
|
||||
)
|
||||
|
||||
DECLARE @ID INT = 0
|
||||
WHILE (1 = 1)
|
||||
BEGIN
|
||||
SELECT TOP 1 @ID = ID FROM T_HETIRENDTIPUS_OSSZES WHERE TOROLT ='F' AND ID != 1554 AND ID > @ID AND C_ALTANEVID = @pTanevId ORDER BY ID
|
||||
IF @@ROWCOUNT = 0 BREAK;
|
||||
DECLARE @Napok TABLE (NapId INT)
|
||||
INSERT INTO @Napok SELECT ID FROM T_DICTIONARYITEMBASE_OSSZES WHERE ID in (1408,1409,1410,1411,1412,1413) AND C_TANEVID = @pTanevId
|
||||
|
||||
DECLARE @Orak TABLE (OraId INT)
|
||||
INSERT INTO @Orak SELECT C_ORASZAM FROM T_CSENGETESIRENDORA WHERE TOROLT = 'F' AND C_TANEVID = @pTanevId AND C_ORASZAM<=10
|
||||
|
||||
DECLARE @TenylegesOrak TABLE (OraId INT, NapId INT, Leiras NVARCHAR(MAX), HetirendID INT)
|
||||
INSERT INTO @TenylegesOrak
|
||||
SELECT
|
||||
csro.C_ORASZAM as ORASZAM
|
||||
,oo.C_HETNAPJA as HETNAP,
|
||||
STUFF((select ', ' + bocs.C_NEV + ' - ' + btt.C_NEV + ' - ' + bt.C_NEV
|
||||
FROM T_ALKALMAZOTT_OSSZES ba
|
||||
INNER JOIN T_ORARENDIORA_OSSZES boo on boo.C_TANARID = ba.ID
|
||||
AND boo.TOROLT='F'
|
||||
AND ((boo.C_ORAERVENYESSEGKEZDETE<=@hetEleje)
|
||||
AND (boo.c_oraervenyessegvege>=@hetVege)
|
||||
OR (boo.C_ORAERVENYESSEGKEZDETE>=@hetEleje)
|
||||
AND (boo.C_ORAERVENYESSEGKEZDETE<=@hetEleje))
|
||||
AND oo.TOROLT='F'
|
||||
INNER JOIN T_FELHASZNALO_OSSZES bf on bf.ID = a.ID
|
||||
INNER JOIN T_TANTARGY_OSSZES btt on btt.ID = boo.C_TANTARGYID
|
||||
INNER JOIN T_OSZTALYCSOPORT_OSSZES bocs on bocs.ID =boo.C_OSZTALYCSOPORTID
|
||||
INNER JOIN T_TEREM_OSSZES bt on bt.ID = boo.C_TEREMID
|
||||
LEFT JOIN T_CSENGETESIRENDORA_OSSZES bcsro on bcsro.ID = boo.C_CSENGETESIRENDORAID
|
||||
WHERE
|
||||
a.ID = ba.ID
|
||||
and a.C_ALTANEVID = ba.C_ALTANEVID
|
||||
and boo.C_HETIREND in (@ID,1554)
|
||||
and bcsro.C_ORASZAM=csro.C_ORASZAM
|
||||
and boo.C_HETNAPJA=oo.C_HETNAPJA FOR XML PATH(''), TYPE).value('.','NVARCHAR(MAX)'),1,2,' ') MATRIX_DATA
|
||||
,@ID AS HetiRendID
|
||||
FROM T_ALKALMAZOTT_OSSZES a
|
||||
INNER JOIN T_ORARENDIORA_OSSZES oo ON oo.C_TANARID = a.ID
|
||||
AND ((oo.C_ORAERVENYESSEGKEZDETE<=@hetEleje)
|
||||
AND (oo.C_ORAERVENYESSEGVEGE>=@hetVege)
|
||||
OR (oo.C_ORAERVENYESSEGKEZDETE>=@hetEleje)
|
||||
AND (oo.C_ORAERVENYESSEGKEZDETE<=@hetVege))
|
||||
AND oo.TOROLT='F'
|
||||
INNER JOIN T_FELHASZNALO_OSSZES f ON f.ID = a.ID
|
||||
INNER JOIN T_TANTARGY_OSSZES tt ON tt.ID = oo.C_TANTARGYID
|
||||
INNER JOIN T_OSZTALYCSOPORT_OSSZES ocs ON ocs.ID = oo.C_OSZTALYCSOPORTID
|
||||
INNER JOIN T_TEREM_OSSZES t ON t.ID = oo.C_TEREMID
|
||||
LEFT JOIN T_CSENGETESIRENDORA_OSSZES csro ON csro.ID = oo.C_CSENGETESIRENDORAID
|
||||
WHERE
|
||||
a.ID = @pPedagogusId
|
||||
AND a.C_ALTANEVID = @pTanevId
|
||||
AND oo.C_HETIREND IN (@ID,1554)
|
||||
|
||||
INSERT INTO @tmpTable
|
||||
SELECT * FROM
|
||||
(
|
||||
SELECT
|
||||
@pPedagogusId as TanarId,
|
||||
O.OraId as Ora
|
||||
,N.NapId as Nap
|
||||
,T.Leiras as Leiras
|
||||
,@ID as HetiRend
|
||||
,(SELECT TOP 1 f.C_NYOMTATASINEV from T_FELHASZNALO_OSSZES f WHERE f.ID = @pPedagogusId AND f.C_TANEVID = @pTanevId AND f.TOROLT = 'F') as TanarNev
|
||||
FROM @Napok N
|
||||
CROSS JOIN @Orak O
|
||||
LEFT JOIN @TenylegesOrak T on T.NapId = N.NapId AND T.OraId = O.OraId AND T.HetiRendID in (@ID,1554)
|
||||
) o1
|
||||
PIVOT
|
||||
(
|
||||
MAX (Leiras)
|
||||
FOR [Nap]
|
||||
IN ([1408], [1409], [1410], [1411], [1412], [1413])
|
||||
) p1
|
||||
END
|
||||
|
||||
SELECT * FROM @tmpTable
|
||||
|
||||
END
|
||||
|
||||
GO
|
|
@ -0,0 +1,122 @@
|
|||
SET ANSI_NULLS ON
|
||||
GO
|
||||
SET QUOTED_IDENTIFIER ON
|
||||
GO
|
||||
|
||||
IF OBJECT_ID('[dbo].[sp_GetTeremOrarend]') IS NOT NULL
|
||||
BEGIN
|
||||
DROP PROCEDURE [dbo].[sp_GetTeremOrarend]
|
||||
END
|
||||
GO
|
||||
|
||||
CREATE PROCEDURE [dbo].[sp_GetTeremOrarend]
|
||||
@TeremId int,
|
||||
@TanevId int
|
||||
AS
|
||||
BEGIN
|
||||
-- SET NOCOUNT ON added to prevent extra result sets from
|
||||
-- interfering with SELECT statements.
|
||||
-- Insert statements for procedure here
|
||||
-- <20>rarend
|
||||
|
||||
IF OBJECT_ID('tempdb..#tempszorzat') IS NOT NULL drop table #tempszorzat
|
||||
IF OBJECT_ID('tempdb..#orarend') IS NOT NULL drop table #orarend
|
||||
|
||||
SELECT
|
||||
T_INTEZMENYADATOK_OSSZES.C_NEV IntezmenyNeve
|
||||
,T_INTEZMENYADATOK_OSSZES.C_OMKOD IntezmenyOMKod
|
||||
FROM T_INTEZMENYADATOK_OSSZES
|
||||
WHERE
|
||||
T_INTEZMENYADATOK_OSSZES.TOROLT = 'F'
|
||||
AND T_INTEZMENYADATOK_OSSZES.C_TANEVID = @TanevId
|
||||
|
||||
DECLARE @intezmenyid int = (SELECT C_INTEZMENYID FROM T_TEREM_OSSZES WHERE id = @TeremId)
|
||||
DECLARE @AktivtanevId INT = (SELECT ID FROM T_TANEV_OSSZES TANEV WHERE C_AKTIV='T' AND C_INTEZMENYID=@IntezmenyId)
|
||||
|
||||
DECLARE @UtolsoNap DATE = (SELECT TOP 1 C_NAPDATUMA FROM T_NAPTARINAP_OSSZES WHERE C_NAPTIPUSA=1395 AND C_INTEZMENYID=@intezmenyId AND C_TANEVID=@tanevid AND TOROLT='F')
|
||||
|
||||
DECLARE @HetEleje DATE
|
||||
DECLARE @HetVege DATE
|
||||
|
||||
IF (@tanevId = @AktivtanevId AND GETDATE() <= @UtolsoNap)
|
||||
BEGIN
|
||||
SET @HetEleje =(SELECT TOP 1 nh.C_HETKEZDONAPJA FROM T_NAPTARIHET_OSSZES nh WHERE CONVERT(DATE, GETDATE())>=CONVERT(DATE, NH.C_HETKEZDONAPJA) AND CONVERT(DATE, GETDATE())<=CONVERT(DATE, nh.C_HETUTOLSONAPJA) and nh.TOROLT='F' and nh.C_TANEVID=@tanevid and nh.C_INTEZMENYID=@intezmenyId)
|
||||
SET @HetVege =(SELECT TOP 1 nh.C_HETUTOLSONAPJA FROM T_NAPTARIHET_OSSZES nh WHERE CONVERT(DATE, GETDATE())>=CONVERT(DATE, nh.C_HETKEZDONAPJA) AND CONVERT(DATE, GETDATE())<=CONVERT(DATE, nh.C_HETUTOLSONAPJA) and nh.TOROLT='F' and nh.C_TANEVID=@tanevid and nh.C_INTEZMENYID=@intezmenyId)
|
||||
END
|
||||
ELSE
|
||||
BEGIN
|
||||
|
||||
SET @HetEleje =(SELECT TOP 1 nh.C_HETKEZDONAPJA FROM T_NAPTARIHET_OSSZES nh WHERE @UtolsoNap>=CONVERT(DATE, nh.C_HETKEZDONAPJA) AND @UtolsoNap<=CONVERT(DATE, nh.C_HETUTOLSONAPJA) AND nh.TOROLT='F' AND nh.C_TANEVID=@tanevId AND NH.C_INTEZMENYID=@intezmenyId)
|
||||
SET @HetVege =(SELECT TOP 1 nh.C_HETUTOLSONAPJA FROM T_NAPTARIHET_OSSZES nh WHERE @UtolsoNap>=CONVERT(DATE, nh.C_HETKEZDONAPJA) AND @UtolsoNap<=CONVERT(DATE, nh.C_HETUTOLSONAPJA) AND nh.TOROLT='F' AND nh.C_TANEVID=@tanevId AND NH.C_INTEZMENYID=@intezmenyId)
|
||||
END
|
||||
|
||||
DECLARE @tmpTable TABLE (oraszam INT,hetirend INT, [1408] NVARCHAR(MAX), [1409] NVARCHAR(MAX), [1410] NVARCHAR(MAX), [1411] NVARCHAR(MAX), [1412] NVARCHAR(MAX), [1413] NVARCHAR(MAX))
|
||||
SELECT * INTO #tempszorzat FROM (SELECT ID AS Hetnapja FROM T_DICTIONARYITEMBASE_OSSZES WHERE id BETWEEN 1408 AND 1413 AND torolt = 'F' AND C_TANEVID = @TanevId) napok,(SELECT C_oraszam AS Oraszam FROM T_ORARENDIORA_OSSZES WHERE TOROLT = 'F' AND C_TANEVID = @TanevId AND C_INTEZMENYID=@intezmenyid) as oraszam
|
||||
|
||||
|
||||
DECLARE @ID INT = 0
|
||||
WHILE (1 = 1)
|
||||
BEGIN
|
||||
IF OBJECT_ID('tempdb..#orarend') IS NOT NULL drop table #orarend
|
||||
SELECT TOP 1 @ID = ID FROM T_HETIRENDTIPUS_OSSZES WHERE TOROLT ='F' and ID != 1554 and ID > @ID and C_ALTANEVID = @TanevId ORDER BY ID
|
||||
IF @@ROWCOUNT = 0 BREAK;
|
||||
|
||||
|
||||
SELECT #tempszorzat.Hetnapja,#tempszorzat.Oraszam,
|
||||
(case
|
||||
WHEN orak.HetiRend is null
|
||||
THEN @ID
|
||||
ELSE orak.HetiRend
|
||||
END) as Hetirend
|
||||
,orak.ADAT Into #orarend from #tempszorzat
|
||||
left join (
|
||||
SELECT ora.C_HETIREND HetiRend,
|
||||
ora.C_HETNAPJA HetNapja,
|
||||
ora.C_ORASZAM Oraszam,
|
||||
STUFF((select ', '+t.c_nev+'- '+f.c_nev
|
||||
from T_ORARENDIORA_OSSZES bo
|
||||
inner join T_FOGLALKOZAS_OSSZES f on f.id=bo.C_FOGLALKOZASID
|
||||
inner join T_TEREM_OSSZES t on t.id=bo.c_teremid
|
||||
where
|
||||
bo.C_HETNAPJA=ora.C_HETNAPJA and
|
||||
bo.C_ORASZAM=ora.C_ORASZAM and
|
||||
bo.C_HETIREND=ora.C_HETIREND AND
|
||||
((bo.C_ORAERVENYESSEGKEZDETE<=@HetEleje) and (bo.C_ORAERVENYESSEGVEGE>=@HetVege)or
|
||||
(bo.C_ORAERVENYESSEGKEZDETE>=@HetEleje) and (bo.C_ORAERVENYESSEGKEZDETE<=@HetVege))
|
||||
AND bo.C_TEREMID=@teremId
|
||||
AND bo.torolt='F'
|
||||
FOR XML PATH(''), TYPE).value('.','NVARCHAR(MAX)'),1,2,' ') Adat
|
||||
FROM T_ORARENDIORA_OSSZES ora
|
||||
JOIN T_FOGLALKOZAS_OSSZES ON T_FOGLALKOZAS_OSSZES.ID = ora.C_FOGLALKOZASID
|
||||
JOIN T_TANTARGY_OSSZES targy ON targy.ID = T_FOGLALKOZAS_OSSZES.C_TANTARGYID
|
||||
JOIN T_FOGLALKOZASOK_TANAROK ON T_FOGLALKOZAS_OSSZES.ID = T_FOGLALKOZASOK_TANAROK.C_FOGLALKOZASOKID
|
||||
JOIN T_FELHASZNALO_OSSZES tanar ON T_FOGLALKOZASOK_TANAROK.C_TANAROKID = tanar.ID
|
||||
JOIN T_OSZTALYCSOPORT_OSSZES OSZTCSOP ON OSZTCSOP.ID = T_FOGLALKOZAS_OSSZES.C_OSZTALYCSOPORTID
|
||||
WHERE ora.TOROLT = 'F'
|
||||
AND ora.C_TEREMID = @TeremId
|
||||
AND ora.C_TANEVID = @TanevId
|
||||
GROUP BY ora.C_HETIREND, ora.C_HETNAPJA, ora.C_ORASZAM,OSZTCSOP.C_NEV, targy.C_NEV, tanar.C_NYOMTATASINEV,T_FOGLALKOZAS_OSSZES.ID) orak on #tempszorzat.Oraszam = orak.Oraszam and (#tempszorzat.HetNapja = orak.HetNapja or orak.HetNapja = 1554)
|
||||
|
||||
INSERT INTO @tmpTable
|
||||
SELECT * FROM
|
||||
(
|
||||
SELECT oraszam,hetnapja,adat, @ID AS Hetirend
|
||||
FROM #orarend WHERE Hetirend = @ID OR Hetirend = 1554
|
||||
|
||||
) o1
|
||||
PIVOT
|
||||
(
|
||||
MAX (adat)
|
||||
FOR hetnapja
|
||||
IN ([1408], [1409], [1410], [1411], [1412], [1413])
|
||||
) p1
|
||||
|
||||
END
|
||||
|
||||
SELECT * FROM @tmpTable
|
||||
IF OBJECT_ID('tempdb..#tempszorzat') IS NOT NULL DROP TABLE #tempszorzat
|
||||
IF OBJECT_ID('tempdb..#orarend') IS NOT NULL DROP TABLE #orarend
|
||||
|
||||
END
|
||||
|
||||
GO
|
|
@ -0,0 +1,200 @@
|
|||
IF OBJECT_ID('sp_GetTeremrend') IS NOT NULL
|
||||
BEGIN
|
||||
DROP PROCEDURE sp_GetTeremrend
|
||||
END
|
||||
GO
|
||||
CREATE PROCEDURE [sp_GetTeremrend]
|
||||
@TanevId int,
|
||||
@IntezmenyId int
|
||||
|
||||
AS
|
||||
BEGIN
|
||||
SET NOCOUNT ON;
|
||||
|
||||
DECLARE @OrarendiOra TABLE (Hetirend int, OraSzam int, Hetnapja int, Terem nvarchar(max), Foglalkozas nvarchar(max)) --Összes órarendi óra
|
||||
DECLARE @Hetirendek TABLE (Hetirend int) --Összes hetirend
|
||||
DECLARE @Ures TABLE (Hetirend int, OraSzam int, Hetnapja int, Terem nvarchar(max)) --Összes hetirendhez órasávok generálva
|
||||
DECLARE @Teljes TABLE (Hetirend int, OraSzam int, Hetnapja int, Terem nvarchar(max), Foglalkozas nvarchar(max)) --@Ures tábla, a létező órákkal kiegészítve
|
||||
|
||||
DECLARE @AktivtanevId INT = (SELECT ID FROM T_TANEV_OSSZES TANEV WHERE C_AKTIV='T' AND C_INTEZMENYID=@IntezmenyId)
|
||||
|
||||
DECLARE @UtolsoNap DATE = (SELECT TOP 1 C_NAPDATUMA FROM T_NAPTARINAP_OSSZES WHERE C_NAPTIPUSA=1395 AND C_INTEZMENYID=@intezmenyId AND C_TANEVID=@tanevid AND TOROLT='F')
|
||||
|
||||
DECLARE @HetEleje DATE
|
||||
DECLARE @HetVege DATE
|
||||
|
||||
IF (@tanevId = @AktivtanevId AND GETDATE() <= @UtolsoNap)
|
||||
BEGIN
|
||||
SET @HetEleje =(SELECT TOP 1 nh.C_HETKEZDONAPJA FROM T_NAPTARIHET_OSSZES nh WHERE CONVERT(DATE, GETDATE())>=CONVERT(DATE, NH.C_HETKEZDONAPJA) AND CONVERT(DATE, GETDATE())<=CONVERT(DATE, nh.C_HETUTOLSONAPJA) and nh.TOROLT='F' and nh.C_TANEVID=@tanevid and nh.C_INTEZMENYID=@intezmenyId)
|
||||
SET @HetVege =(SELECT TOP 1 nh.C_HETUTOLSONAPJA FROM T_NAPTARIHET_OSSZES nh WHERE CONVERT(DATE, GETDATE())>=CONVERT(DATE, nh.C_HETKEZDONAPJA) AND CONVERT(DATE, GETDATE())<=CONVERT(DATE, nh.C_HETUTOLSONAPJA) and nh.TOROLT='F' and nh.C_TANEVID=@tanevid and nh.C_INTEZMENYID=@intezmenyId)
|
||||
END
|
||||
ELSE
|
||||
BEGIN
|
||||
|
||||
SET @HetEleje =(SELECT TOP 1 nh.C_HETKEZDONAPJA FROM T_NAPTARIHET_OSSZES nh WHERE @UtolsoNap>=CONVERT(DATE, nh.C_HETKEZDONAPJA) AND @UtolsoNap<=CONVERT(DATE, nh.C_HETUTOLSONAPJA) AND nh.TOROLT='F' AND nh.C_TANEVID=@tanevId AND NH.C_INTEZMENYID=@intezmenyId)
|
||||
SET @HetVege =(SELECT TOP 1 nh.C_HETUTOLSONAPJA FROM T_NAPTARIHET_OSSZES nh WHERE @UtolsoNap>=CONVERT(DATE, nh.C_HETKEZDONAPJA) AND @UtolsoNap<=CONVERT(DATE, nh.C_HETUTOLSONAPJA) AND nh.TOROLT='F' AND nh.C_TANEVID=@tanevId AND NH.C_INTEZMENYID=@intezmenyId)
|
||||
END
|
||||
|
||||
-- @Hetirendek tábálába inzertálás
|
||||
INSERT INTO @Hetirendek
|
||||
SELECT DISTINCT C_HETIREND
|
||||
FROM T_ORARENDIORA_OSSZES WHERE TOROLT='F' AND C_TANEVID=@TANEVID AND C_INTEZMENYID=@IntezmenyId
|
||||
|
||||
-- @OrarendiOra tábálába inzertálás
|
||||
INSERT INTO @OrarendiOra
|
||||
SELECT C_HETIREND,
|
||||
OrarendiOra.C_ORASZAM,
|
||||
C_HETNAPJA,
|
||||
Terem.C_NEV,
|
||||
--Összefűzi a foglalkozásokat, ha teremre egyszerre több foglalkozás van felvéve egy órára
|
||||
STUFF(
|
||||
(SELECT DISTINCT ', ' + ISNULL(CAST(Foglalkozas.C_NEV AS VARCHAR(MAX)),'')
|
||||
FROM T_ORARENDIORA_OSSZES OrarendiOraFoglalkozas
|
||||
INNER JOIN T_FOGLALKOZAS_OSSZES Foglalkozas ON Foglalkozas.ID = OrarendiOraFoglalkozas.C_FOGLALKOZASID
|
||||
where OrarendiOraFoglalkozas.C_TEREMID = OrarendiOra.C_TEREMID AND
|
||||
(OrarendiOraFoglalkozas.C_HETIREND = OrarendiOra.C_HETIREND OR OrarendiOraFoglalkozas.C_HETIREND = 1554) AND
|
||||
OrarendiOraFoglalkozas.C_HETNAPJA = OrarendiOra.C_HETNAPJA AND
|
||||
OrarendiOraFoglalkozas.C_ORASZAM = OrarendiOra.c_oraszam AND
|
||||
((OrarendiOraFoglalkozas.C_ORAERVENYESSEGKEZDETE<=@HetEleje) and (OrarendiOraFoglalkozas.c_oraervenyessegvege>=@HetVege)or
|
||||
(OrarendiOraFoglalkozas.C_ORAERVENYESSEGKEZDETE>=@HetEleje) and (OrarendiOraFoglalkozas.C_ORAERVENYESSEGKEZDETE<=@HetVege)) AND
|
||||
Foglalkozas.TOROLT = 'F' AND
|
||||
Foglalkozas.C_INTEZMENYID = @IntezmenyId AND
|
||||
Foglalkozas.C_TANEVID = @TanevId AND
|
||||
OrarendiOraFoglalkozas.Torolt ='F' AND
|
||||
OrarendiOraFoglalkozas.C_TANEVID =@TanevId
|
||||
|
||||
FOR XML PATH('')),1,1,''
|
||||
) AS Foglalkozas
|
||||
FROM T_ORARENDIORA_OSSZES OrarendiOra
|
||||
INNER JOIN T_TEREM_OSSZES Terem ON Terem.ID = OrarendiOra.C_TEREMID
|
||||
WHERE OrarendiOra.C_INTEZMENYID = @IntezmenyId AND
|
||||
OrarendiOra.C_TANEVID = @TanevId AND
|
||||
OrarendiOra.TOROLT = 'F' AND
|
||||
OrarendiOra.C_TEREMID IS NOT NULL
|
||||
|
||||
|
||||
|
||||
-- @Ures tábálába inzertálás
|
||||
INSERT INTO @Ures
|
||||
SELECT HetiRend,
|
||||
OraSzam,
|
||||
Hetnapja,
|
||||
Terem
|
||||
FROM @Hetirendek
|
||||
CROSS JOIN (SELECT DISTINCT OraSzam FROM @OrarendiOra) OraSzam (OraSzam)
|
||||
CROSS JOIN (SELECT DISTINCT Terem FROM @OrarendiOra) Terem (Terem)
|
||||
CROSS JOIN (SELECT DISTINCT Hetnapja FROM @OrarendiOra) Hetnapja (Hetnapja)
|
||||
|
||||
|
||||
-- @Teljes tábálába inzertálás
|
||||
INSERT INTO @Teljes
|
||||
SELECT Ures.*,
|
||||
OrarendiOra.Foglalkozas
|
||||
FROM @Ures Ures
|
||||
LEFT JOIN @OrarendiOra OrarendiOra ON OrarendiOra.Hetirend = Ures.Hetirend AND
|
||||
OrarendiOra.Hetnapja = Ures.Hetnapja AND
|
||||
OrarendiOra.OraSzam = Ures.OraSzam AND
|
||||
OrarendiOra.Terem = Ures.Terem
|
||||
|
||||
-- Az Excel nyomtatvány munkalap- és táblázat nevei
|
||||
SELECT Hetnapja
|
||||
FROM (SELECT DISTINCT C_NAME Hetnapja,
|
||||
C_VALUE Sorrend
|
||||
FROM @OrarendiOra
|
||||
INNER JOIN T_DICTIONARYITEMBASE_OSSZES DictionaryItemBase on DictionaryItemBase.ID = Hetnapja
|
||||
) Hetnapja
|
||||
ORDER BY Sorrend
|
||||
|
||||
SELECT Hetirend
|
||||
FROM (SELECT DISTINCT C_NAME Hetirend,
|
||||
C_VALUE Sorrend
|
||||
FROM @Hetirendek
|
||||
INNER JOIN T_DICTIONARYITEMBASE_OSSZES DictionaryItemBase on DictionaryItemBase.ID = Hetirend
|
||||
--WHERE DictionaryItemBase.ID <> 1554--Minden hét
|
||||
) Hetirend
|
||||
ORDER BY Hetirend
|
||||
|
||||
-- @Teljes tábla feltöltése, fő lekérdezés
|
||||
DECLARE KurzorHetirend CURSOR FOR
|
||||
SELECT Hetirend
|
||||
FROM @Hetirendek
|
||||
--WHERE Hetirend <> 1554
|
||||
ORDER BY Hetirend
|
||||
|
||||
DECLARE @Hetirend INT
|
||||
|
||||
DECLARE KurzorHetnapja CURSOR FOR
|
||||
SELECT DISTINCT Hetnapja
|
||||
FROM @Ures
|
||||
ORDER BY Hetnapja
|
||||
|
||||
DECLARE @Hetnapja INT
|
||||
|
||||
OPEN KurzorHetirend
|
||||
FETCH NEXT FROM KurzorHetirend INTO @Hetirend
|
||||
|
||||
WHILE @@FETCH_STATUS = 0
|
||||
BEGIN
|
||||
|
||||
OPEN KurzorHetnapja
|
||||
FETCH NEXT FROM KurzorHetnapja INTO @Hetnapja
|
||||
|
||||
-- A "Minden hét" óráinak inzertálása minden hetirendbe
|
||||
INSERT INTO @Teljes
|
||||
SELECT @Hetirend,
|
||||
OraSzam,
|
||||
Hetnapja,
|
||||
Terem,
|
||||
Foglalkozas
|
||||
FROM @OrarendiOra
|
||||
WHERE Hetirend = 1554
|
||||
|
||||
WHILE @@FETCH_STATUS = 0
|
||||
BEGIN
|
||||
|
||||
CREATE table #VeglegesteremOrarend(Terem nvarchar(max), [0] nvarchar(max), [1] nvarchar(max), [2] nvarchar(max), [3] nvarchar(max), [4] nvarchar(max), [5] nvarchar(max),
|
||||
[6] nvarchar(max), [7] nvarchar(max), [8] nvarchar(max), [9] nvarchar(max), [10] nvarchar(max))
|
||||
|
||||
INSERT INTO #VeglegesTeremOrarend
|
||||
SELECT Vegleges.Terem,
|
||||
Vegleges.[0],
|
||||
Vegleges.[1],
|
||||
Vegleges.[2],
|
||||
Vegleges.[3],
|
||||
Vegleges.[4],
|
||||
Vegleges.[5],
|
||||
Vegleges.[6],
|
||||
Vegleges.[7],
|
||||
Vegleges.[8],
|
||||
Vegleges.[9],
|
||||
Vegleges.[10]
|
||||
FROM @Teljes
|
||||
|
||||
PIVOT
|
||||
(
|
||||
MAX(Foglalkozas) FOR OraSzam IN ([0],[1],[2],[3],[4],[5],[6],[7],[8],[9],[10])
|
||||
) Vegleges
|
||||
|
||||
WHERE Vegleges.Hetirend = @Hetirend AND
|
||||
Vegleges.Hetnapja = @Hetnapja
|
||||
|
||||
SELECT *
|
||||
FROM #VeglegesTeremOrarend
|
||||
|
||||
DROP TABLE #VeglegesTeremOrarend
|
||||
FETCH NEXT FROM KurzorHetnapja INTO @Hetnapja
|
||||
|
||||
END
|
||||
|
||||
FETCH NEXT FROM KurzorHetirend INTO @Hetirend
|
||||
CLOSE KurzorHetnapja
|
||||
|
||||
END
|
||||
|
||||
CLOSE KurzorHetirend
|
||||
DEALLOCATE KurzorHetnapja
|
||||
DEALLOCATE KurzorHetirend
|
||||
|
||||
END
|
||||
|
||||
GO
|
Loading…
Add table
Add a link
Reference in a new issue