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

View File

@@ -0,0 +1,196 @@
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_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)
)
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 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_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
)
SELECT
tta.ID
,t.ID
,ISNULL(tta.C_BEIRASINAPLOSORSZAM,t.C_BEIRASINAPLOSORSZAM)
,ISNULL(tta.C_BEJARO,t.C_BEJARO)
,ISNULL(tta.C_DIAKSPORTKOROS,t.C_DIAKSPORTKOROS)
,ISNULL(tta.C_EGYEBORSZAGOSDONTO,t.C_EGYEBDONTO)
,ISNULL(tta.C_EGYUTTMUKODESES,t.C_EGYUTTMUKODESES)
,ISNULL(tta.C_ELOZOINTEZMENY,t.C_ELOZOINTEZMENY)
,ISNULL(tta.C_EVISMETLO,t.C_EVISMETLO)
,ISNULL(tta.C_ISKOLAIKERETEKKOZOTT,t.C_ISKOLAIKERETEKKOZOTT)
,CASE WHEN @isAmi = 1 THEN 'F' ELSE ISNULL(tta.C_JOGVISZONYATSZUNETELTETO,t.C_JOGVISZONYATSZUNETELTETO) END
,ISNULL(tta.C_JOGVISZONYVARHATOBEFEJEZESE,t.C_JOGVISZONYVARHATOBEFEJEZESE)
,CASE WHEN @isAmi = 1 THEN 'F' ELSE ISNULL(tta.C_MAGANTANULO,t.C_MAGANTANULO) END
,CASE WHEN @isAmi = 1 THEN NULL ELSE ISNULL(tta.C_MAGANTANULOSAGANAKOKAID,t.C_MAGANTANULOSAGANAKOKA) END
,CASE WHEN @isAmi = 1 THEN NULL ELSE ISNULL(tta.C_MAGANTANULOSAGKEZDETE,t.C_MAGANTANULOSAGKEZDETE) END
,tta.C_NYILVANTARTASKEZDETE
,ISNULL(tta.C_OSZTV,t.C_OSZTV)
,ISNULL(tta.C_POLGARISZERZODESES,t.C_POLGARISZERZODESES)
,ISNULL(tta.C_SZAKMAIGYAKORLATON,t.C_SZAKMAIGYAKORLATON)
,ISNULL(tta.C_SZETVAGAZAT,t.C_SZETVAGAZAT)
,ISNULL(tta.C_SZINTVIZSGA,t.C_SZINTVIZSGA)
,ISNULL(tta.C_SZKTV,t.C_SZKTV)
,ISNULL(tta.C_TANDIJATFIZETO,t.C_TANDIJATFIZETO)
,CASE WHEN @isAmi = 1 THEN 'F' ELSE ISNULL(tta.C_TANKOTELEZETT,t.C_TANKOTELEZETT) END
,ISNULL(tta.C_TANKOTELEZETTSEGVEGE,t.C_TANKOTELEZETTSEGVEGE)
,tta.C_TANULOEVFOLYAMTIPUSID
,ISNULL(tta.C_TANULOSZERZODESES,t.C_TANULOSZERZODESES)
,ISNULL(tta.C_TECHNIKUSIEVFOLYAM,t.C_TECHNIKUSIEVFOLYAM)
,ISNULL(tta.C_TERITESIDIJATFIZETO,t.C_TERITESIDIJATFIZETO)
,ISNULL(tta.C_VENDEG,t.C_VENDEG)
,ISNULL(tta.C_NAPLOSORSZAM,t.C_NAPLOSORSZAM)
,ISNULL(tta.C_TORZSLAPSZAM,t.C_TORZSLAPSZAM)
,ISNULL(tta.C_TANTERVID,t.C_TANTERVID)
,ISNULL(tta.C_FELVETELTANEVEID,t.C_FELVETELTANEVEID)
,tta.C_TANULOCSOPORTID
,tta.C_HOZOTTIGAZOLATLANHIANYZAS
,tta.C_HOZOTTIGAZOLATLANKESESPERCBE
,tta.C_HOZOTTIGAZOLTHIANYZAS
,tta.C_HOZOTTIGAZOLTKESESPERCBEN
,tta.C_ISESL16EVESUTANBELEPETT
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,187 @@
DROP PROCEDURE IF EXISTS sp_GetNaplozasMulasztasList
GO
CREATE PROCEDURE [dbo].[sp_GetNaplozasMulasztasList]
@date datetime
,@oraId int
,@targyId int
,@osztalyCsoportId int
,@pCsakMegtartott bit
,@pTanevElsoTanitasiNapja datetime
,@pTanevUtolsoTanitasiNapja datetime
,@pTanevid int
,@pIntezmenyId int
AS
BEGIN
SET NOCOUNT ON;
DECLARE @hetekSzama int = 36
CREATE TABLE #TanuloCsoport (
C_TANULOID int
,C_OSZTALYCSOPORTID int
,C_BELEPESDATUM datetime
,C_KILEPESDATUM datetime
,PRIMARY KEY CLUSTERED (C_TANULOID, C_BELEPESDATUM)
)
CREATE TABLE #TanuloMentessegOka (
C_TANULOID int
,MentessegOka nvarchar(max)
)
IF (SELECT C_VEGZOSEVFOLYAM FROM T_OSZTALYCSOPORT WHERE ID = @osztalyCsoportId) = 'T' BEGIN
SELECT @pTanevUtolsoTanitasiNapja = C_DATUM, @hetekSzama = 32
FROM T_TANEVRENDJE_OSSZES
WHERE TOROLT = 'F'
AND C_TANEVID = @pTanevid
AND C_NAPTIPUSA = 1402
END
INSERT INTO #TanuloCsoport (C_TANULOID, C_OSZTALYCSOPORTID, C_BELEPESDATUM, C_KILEPESDATUM)
SELECT DISTINCT tcs.C_TANULOID, tcs.C_OSZTALYCSOPORTID, tcs.C_BELEPESDATUM, ISNULL(tcs.C_KILEPESDATUM, @pTanevUtolsoTanitasiNapja) AS C_KILEPESDATUM
FROM T_TANULOCSOPORT tcs
WHERE tcs.torolt = 'F'
AND tcs.C_BELEPESDATUM <= @date AND (tcs.C_KILEPESDATUM IS NULL OR tcs.C_KILEPESDATUM >= @date)
AND tcs.c_osztalycsoportid = @osztalyCsoportId
AND (tcs.C_BELEPESDATUM < tcs.C_KILEPESDATUM OR tcs.C_KILEPESDATUM IS NULL)
INSERT INTO #TanuloMentessegOka (C_TANULOID, MentessegOka)
SELECT C_TANULOID
,MentessegOka = STUFF((
SELECT DISTINCT ' | ' + tm.C_MENTESSEGOKA
FROM T_TANULOMENTESSEG tm
WHERE tm.C_TANTARGYID = @targyId AND tm.C_TANULOID = #TanuloCsoport.C_TANULOID
FOR XML PATH(''), TYPE).value('.', 'varchar(max)'),1,3,''
)
FROM #TanuloCsoport
CREATE TABLE #Feljegyzes (
tanuloid int
,tipus int
,id int
,PRIMARY KEY CLUSTERED (tanuloid, tipus, id)
)
INSERT INTO #Feljegyzes
SELECT tte.C_TANULOID, te.C_TIPUS, te.ID
FROM T_TANULOESEMENY te
INNER JOIN T_TANULO_TANULOESEMENY tte on tte.C_TANULOESEMENYID = te.ID
WHERE te.C_TANITASIORAID = @oraId
AND te.TOROLT = 'F'
CREATE TABLE #Result (
TanuloId int
,TantargyId int
,Mulasztas int
,MegtartottOra int
,HatralevoOra int
,PRIMARY KEY CLUSTERED (TanuloId, TantargyId)
)
EXEC [uspGetOsztalycsoportTantargyiMulasztasai]
@pOsztalyId = @osztalyCsoportId
,@pTantargyId = @targyId
,@pTanevid = @pTanevid
,@pIntezmenyId = @pIntezmenyId
,@pCsakMegtartott = @pCsakMegtartott
SELECT
ID
,MulasztasId
,TanuloNev
,MulasztasTipus
,KesesIdo
,Oka
,MAX(ErtkelesMentesseg) AS ErtkelesMentesseg
,MAX(OraMentesseg) AS OraMentesseg
,MAX(SzovegesenErtekelheto) AS SzovegesenErtekelheto
,IsMagantanulo
,MagantanulosagKezdete
,JogviszonySzunetelteto
,GondviseloNev
,GondviseloTelSzam
,MAX(Igazolt) Igazolt
,ISNULL(tmpHianyCnt, 0) AS MulasztasHianyCnt
,ISNULL(tmpOsszCnt, 0) AS MulasztasOsszCnt
,ISNULL(tmpMegtartottOraCnt, 0) AS MulasztasMegtartottCnt
,ISNULL(tmpHatralevoOraCnt, 0) AS MulasztasMegtarthatoCnt
,IIF(tmpOsszCnt = 0,0, ISNULL(CAST((CAST(tmpHianyCnt AS float) / CAST(tmpOsszCnt AS float)) * 100 AS int), 0)) AS MulasztasSzazalek
,IIF(Hazifeladat IS NOT NULL,'T','F') AS HaziFeladatHiany
,Hazifeladat AS HaziFeladatHianyId
,IIF(Felszereles IS NOT NULL,'T','F') AS FelszerelesHiany
,Felszereles AS FelszerelesHianyId
,IIF(Felment IS NOT NULL,'T','F') AS Felmentes
,Felment AS FelmentesId
,IIF(Dicseret IS NOT NULL,'T','F') AS TanoraiDicseret
,Dicseret AS TanoraiDicseretId
,RogzitettIgazolas AS RogzitettIgazolas
FROM (
SELECT
fh.ID AS ID
,mul.ID MulasztasId
,fh.C_NYOMTATASINEV + ' (' + FORMAT(fh.C_SZULETESIDATUM, 'yyyy.MM.dd.') + ')' TanuloNev
,isnull(mul.C_TIPUS, 1498) MulasztasTipus
,mul.C_KESESPERCBEN KesesIdo
,tmo.MentessegOka AS Oka
,tm.C_ERTEKELESMENTESITES ErtkelesMentesseg
,tm.C_ORAMENTESITES OraMentesseg
,tm.C_SZOVEGESENERTEKELHETO SzovegesenErtekelheto
,tta.C_MAGANTANULO IsMagantanulo
,tta.C_MAGANTANULOSAGKEZDETE MagantanulosagKezdete
,tta.C_JOGVISZONYATSZUNETELTETO JogviszonySzunetelteto
,ISNULL(gondviselo.C_NEV,'-') as GondviseloNev
,ISNULL(telefon.C_TELEFONSZAM,'-') as GondviseloTelSzam
,mul.C_IGAZOLT as Igazolt
,ISNULL(r.MegtartottOra,0) + ISNULL(r.HatralevoOra,0) as tmpOsszCnt
,r.Mulasztas as tmpHianyCnt
,r.MegtartottOra as tmpMegtartottOraCnt
,r.HatralevoOra as tmpHatralevoOraCnt
,FeljegyzesHazifeladat.id as Hazifeladat
,FeljegyzesFelszereles.id as Felszereles
,FeljegyzesFelment.id as Felment
,FeljegyzesDicseret.id as Dicseret
,IIF(i.ID IS NOT NULL, 'T', 'F') as RogzitettIgazolas
FROM #TanuloCsoport tcs
INNER JOIN T_FELHASZNALO_OSSZES fh on fh.ID = tcs.C_TANULOID AND fh.C_TANEVID = @pTanevid
INNER JOIN fnGetOsztalyCsoportTanuloinakTanugyiAdatai(@osztalyCsoportId,@date) tta ON tta.TanuloId=fh.ID
INNER JOIN T_TANULO_OSSZES tanulo on tanulo.id = tcs.C_TANULOID AND tanulo.C_ALTANEVID = @pTanevid
OUTER APPLY (SELECT TOP 1 g.ID, g.C_NEV FROM T_GONDVISELO_OSSZES g WHERE tanulo.ID = g.C_TANULOID AND g.TOROLT = 'F' AND g.C_TANEVID = @pTanevid ORDER BY g.ID) gondviselo
OUTER APPLY (SELECT TOP 1 t.C_TELEFONSZAM FROM T_TELEFON_OSSZES t WHERE t.C_GONDVISELOID = gondviselo.ID AND t.TOROLT = 'F' ORDER BY t.C_ALAPERTELMEZETT DESC) telefon
LEFT JOIN T_TANULOMULASZTAS_OSSZES mul on mul.C_ORATANULOIID = fh.ID AND mul.C_TANITASIORAKID = @oraId AND mul.TOROLT = 'F' AND mul.C_TANEVID = @pTanevid
LEFT JOIN T_TANULOMENTESSEG_OSSZES tm on fh.ID = tm.C_TANULOID and tm.TOROLT = 'F' AND tm.C_TANTARGYID = @targyId AND (@date BETWEEN ISNULL(tm.C_KEZDETE, @date) and isnull(tm.C_VEGE, @date)) AND tm.C_TANEVID = @pTanevid
LEFT JOIN T_IGAZOLAS_OSSZES i ON fh.ID = i.C_TANULOID AND i.TOROLT = 'F' AND (@date BETWEEN ISNULL(i.C_KEZDETE, @date) AND isnull(i.C_VEGE, @date)) AND i.C_TANEVID = @pTanevid
LEFT JOIN #TanuloMentessegOka tmo ON tcs.C_TANULOID = tmo.C_TANULOID
LEFT JOIN #Result r ON r.TanuloId = fh.ID
LEFT JOIN #Feljegyzes FeljegyzesHazifeladat ON FeljegyzesHazifeladat.tanuloId = fh.ID AND FeljegyzesHazifeladat.tipus = 6325
LEFT JOIN #Feljegyzes FeljegyzesFelszereles ON FeljegyzesFelszereles.tanuloId = fh.ID AND FeljegyzesFelszereles.tipus = 6324
LEFT JOIN #Feljegyzes FeljegyzesFelment ON FeljegyzesFelment.tanuloId = fh.ID AND FeljegyzesFelment.tipus = 1542
LEFT JOIN #Feljegyzes FeljegyzesDicseret ON FeljegyzesDicseret.tanuloId = fh.ID AND FeljegyzesDicseret.tipus = 1536
) AS x
GROUP BY
ID,
MulasztasId,
TanuloNev,
MulasztasTipus,
IsMagantanulo,
MagantanulosagKezdete,
JogviszonySzunetelteto,
Oka,
KesesIdo,
GondviseloNev,
GondviseloTelSzam,
tmpOsszCnt,
tmpHianyCnt,
tmpMegtartottOraCnt,
tmpHatralevoOraCnt,
Hazifeladat,
Felszereles,
Felment,
Dicseret,
RogzitettIgazolas
ORDER BY x.TanuloNev
IF OBJECT_ID('tempdb..#Result') IS NOT NULL BEGIN
DROP TABLE #Result
END
END