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,53 @@
IF OBJECT_ID('fnGetDokumentumTanulokFeljegyzesei') IS NOT NULL BEGIN
DROP FUNCTION fnGetDokumentumTanulokFeljegyzesei
END
GO
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
CREATE FUNCTION fnGetDokumentumTanulokFeljegyzesei (@tanevId INT, @osztalyId INT)
RETURNS TABLE
RETURN (
SELECT
tanulok.TanuloId TanuloId
,te.ID EsemenyId
,te.C_TARTALOM Tartalom
,te.C_TIPUS Tipusa
,feljegyezo.C_NYOMTATASINEV FeljegyzoNeve
,te.C_ROGZITESDATUMA Datum
,te.C_MEGJEGYZES Megjegyzes
FROM T_TANULOESEMENY_OSSZES te
INNER JOIN T_TANITASIORA_OSSZES tao on tao.Id = te.C_TANITASIORAID
CROSS APPLY (SELECT TanuloId FROM fnGetDokumentumOsztalyokCsoportokTanuloi(@tanevId, tao.C_OSZTALYCSOPORTID, 'T')) tanulok
INNER JOIN fnGetDokumentumTanulokOsztalybanToltottNapjai(@tanevId, @osztalyId) tanuloDatum
ON
tanuloDatum.TanuloId = tanulok.TanuloId
AND tanuloDatum.NapDatuma = tao.C_DATUM
INNER JOIN T_FELHASZNALO_OSSZES feljegyezo ON feljegyezo.ID = te.C_FELJEGYZOID
WHERE
C_MINDENKINEK = 'T'
AND te.TOROLT = 'F'
AND tao.C_OSZTALYCSOPORTID IN (SELECT ID FROM fnGetKapcsolodoOsztalycsoportok(@osztalyId))
AND ((te.C_TIPUS NOT IN (1542, 6324, 6325)) OR (te.C_TIPUS = 1536 AND te.C_TANITASIORAID IS NULL))
UNION
SELECT
C_TANULOID TanuloId
,te.ID EsemenyId
,te.C_TARTALOM Tartalom
,te.C_TIPUS Tipusa
,feljegyezo.C_NYOMTATASINEV FeljegyzoNeve
,te.C_ROGZITESDATUMA Datum
,te.C_MEGJEGYZES Megjegyzes
FROM T_TANULO_TANULOESEMENY tte
INNER JOIN T_TANULOESEMENY_OSSZES te on te.ID = tte.C_TANULOESEMENYID
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)) OR (te.C_TIPUS = 1536 AND te.C_TANITASIORAID IS NULL))
)

View file

@ -0,0 +1,258 @@
IF OBJECT_ID('[dbo].[sp_GetCsoportNaplo]') IS NOT NULL BEGIN
DROP PROCEDURE [dbo].[sp_GetCsoportNaplo]
END
GO
CREATE PROCEDURE [dbo].[sp_GetCsoportNaplo]
@tanevId INT,
@intezmenyid INT,
@csoportId INT,
@iskolaErdekuSzamit BIT
AS
BEGIN
SET NOCOUNT ON;
--Tanulók adatai, elérhetőségei
DECLARE @tanulok TABLE (
Id int
,Nev nvarchar(max)
,Osztaly nvarchar(max)
,Sorszam nvarchar(max)
,Torzslapszam nvarchar(max)
,Allampolgarsaga nvarchar(max)
,DiakIg nvarchar(max)
,SzulHely nvarchar(max)
,SzulIdo nvarchar(max)
,Anyja nvarchar(max)
,Taj nvarchar(20)
,OktAzon nvarchar(20)
,Kilepes nvarchar(max)
,Kepzes nvarchar(max)
,TanuloCimTipus nvarchar(max)
,TanuloCim nvarchar(max)
,TanuloTelefon nvarchar(max)
,TanuloEmail nvarchar(max)
,szoc nvarchar(max)
)
INSERT INTO @tanulok
SELECT DISTINCT
t.id Id
,iif(tcs.C_KILEPESDATUM is not null, f.C_NYOMTATASINEV + ' (kilépett)',f.c_nyomtatasinev) as Nev
,Osztaly.Osztaly as Osztaly
,t.c_naplosorszam as Sorszam
,t.c_beirasinaplosorszam as Torzslapszam
,Allampolgarsaga.C_NAME as Allampolgarsag
,t.c_diakigazolvanyszam as DiakIg
,f.c_szuletesihely as SzulHely
,FORMAT(f.c_szuletesidatum, 'yyyy. MMMM dd.', 'hu-hu') as SzulIdo
,f.c_anyjaneve as Anyja
,f.c_tajszam as Taj
,f.c_oktatasiazonosito as OktAzon
,FORMAT(tcs.c_kilepesdatum, 'yyyy. MMMM dd.', 'hu-hu') as Kilepes
,tt.c_nev as Kepzes
,cim.Tipus
,cim.cim
,tel.c_telefonszam
,email.c_emailcim as TanuloEmail
,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, ', '') AS szoc
FROM T_TANULOCSOPORT_OSSZES tcs
INNER JOIN T_FELHASZNALO_OSSZES f ON f.id=tcs.c_tanuloid AND f.torolt='F'
INNER JOIN T_DICTIONARYITEMBASE_OSSZES Allampolgarsaga ON Allampolgarsaga.Id = f.c_allampolgarsaga AND Allampolgarsaga.C_TANEVID = f.C_TANEVID
LEFT JOIN (
SELECT tcs.c_tanuloid TanuloId, ocs.c_nev as Osztaly, tcs.c_kilepesdatum Kilepes
FROM T_TANULOCSOPORT_OSSZES tcs
INNER JOIN T_OSZTALY_OSSZES o ON o.id=tcs.c_osztalycsoportid
INNER JOIN T_OSZTALYCSOPORT_OSSZES ocs ON o.id=ocs.id
) osztaly ON tcs.c_tanuloid=osztaly.TanuloId
INNER JOIN T_TANTERV_OSSZES tt ON tt.c_intezmenyid=tcs.c_intezmenyid AND tt.c_intezmenyid=@intezmenyid AND tt.c_tanevid=@tanevid
INNER JOIN T_TANULO_OSSZES t ON t.id=f.id
INNER JOIN (
SELECT f.id Tanulo, dt.c_name Tipus, c.c_iranyitoszam+', '+c.c_varos+' '+c.c_kozterulet+' '+dj.c_name+' '+c.c_hazszam as Cim
FROM t_cim_osszes c
INNER JOIN (select distinct d.id, d.c_name from T_DICTIONARYITEMBASE_OSSZES d )dt ON dt.id=c.c_cimtipusa
INNER JOIN T_FELHASZNALO_OSSZES f ON f.id=c.c_felhasznaloid
INNER JOIN (select distinct d.id, d.c_name from T_DICTIONARYITEMBASE_OSSZES d)dj ON dj.id=c.c_kozteruletjellege
WHERE c.c_cimtipusa = 907
AND c.c_gondviseloid is null
AND c.torolt='F'
AND c.c_tanevid=@tanevId
) cim ON cim.Tanulo=tcs.c_tanuloid
LEFT JOIN T_TELEFON_OSSZES tel ON tel.c_felhasznaloid = f.id AND tel.c_gondviseloid IS NULL AND tel.torolt = 'F' AND tel.c_alapertelmezett = 'T'
LEFT JOIN T_EMAIL_OSSZES email ON email.c_felhasznaloid = tcs.c_tanuloid AND email.c_gondviseloid IS NULL AND email.torolt = 'F' AND email.c_alapertelmezett = 'T'
WHERE tcs.c_osztalycsoportid = @csoportId AND tcs.c_tanevid = @tanevid
--Kezdőoldal
SELECT
ia.c_nev as IntezmenyNev
,ia.c_cime as IntezmenyCim
,ia.c_omkod as OMKOD
,ia.c_igazgatoneve as IntezmenyVezeto
,ocs.c_nev Csoport
,isnull(f.c_nyomtatasinev,'-') as CsoportVezeto
,isnull(cs.c_csoportnaploleiras,'-') as CsoportNaploLeiras
,FORMAT(cs.c_csoportnaplomegnyitasa, 'yyyy. MMMM dd.', 'hu-hu') as Megnyitas
,isnull(FORMAT(cs.c_csoportnaplozarasa, 'yyyy. MMMM dd.', 'hu-hu'),'-') as Lezaras
,ocs.c_nev RovidNev
FROM T_INTEZMENY_OSSZES i
INNER JOIN T_INTEZMENYADATOK_OSSZES ia ON ia.c_intezmenyid = i.id
INNER JOIN T_OSZTALYCSOPORT_OSSZES ocs ON ocs.c_intezmenyid = i.id AND ocs.c_tanevid = @tanevid
INNER JOIN T_CSOPORT_OSSZES cs ON cs.id = ocs.id
LEFT JOIN T_FELHASZNALO_OSSZES f ON f.id=cs.c_csoportvezetoid
WHERE i.id = @intezmenyid AND ia.c_tanevid = @tanevid AND ocs.id = @csoportId
--Csoportot vezette
SELECT isnull(f.c_nyomtatasinev,'-') as CsoportVezeto
FROM T_CSOPORT_OSSZES cs
LEFT JOIN T_FELHASZNALO_OSSZES f ON f.id = cs.c_csoportvezetoid
WHERE cs.id = @csoportId
--Tanulók
SELECT DISTINCT Nev, Osztaly, OktAzon FROM @tanulok
--Naplóhetek
DECLARE @elsonap as date
DECLARE @utolsonap as date
select @elsonap=c_elsotanitasinap, @utolsonap=c_utolsotanitasinap from t_tanev_osszes where id=@tanevId
SELECT
n.c_hetsorszama as Het
,FORMAT(convert(date,min(c_napdatuma)), 'yyyy. MMMM dd.', 'hu-hu')as HetEleje
,FORMAT(convert(date,max(c_napdatuma)), 'yyyy. MMMM dd.', 'hu-hu') as HetVege
FROM T_NAPTARINAP_OSSZES n
WHERE n.c_napdatuma >= @elsonap
AND n.c_napdatuma <= @utolsonap
AND n.c_orarendinap = 'T'
AND n.c_tanevid = @tanevid
AND n.c_intezmenyid = @intezmenyid
GROUP BY n.c_hetsorszama
--Tanuló adatok
SELECT * FROM @tanulok
--Napló
SELECT DISTINCT
nn.c_hetsorszama as Het
,d.Nap as Nap
,FORMAT(nn.c_napdatuma, 'yyyy. MMMM dd.', 'hu-hu') as Datum
FROM T_NAPTARINAP_OSSZES nn
LEFT JOIN T_TANITASIORA_OSSZES tao ON tao.c_datum = nn.c_napdatuma AND tao.c_osztalycsoportid = @csoportid AND tao.torolt = 'F'
LEFT JOIN (select distinct d.id as ID, d.c_name Nap from T_DICTIONARYITEMBASE_OSSZES d) d ON d.id = nn.c_hetnapja
LEFT JOIN T_FOGLALKOZAS_OSSZES fog ON fog.id=tao.c_foglalkozasid AND fog.c_tanevid = @tanevid
LEFT JOIN T_FOGLALKOZASOK_TANAROK ft ON ft.c_foglalkozasokid=fog.id
LEFT JOIN T_FELHASZNALO_OSSZES f ON f.id=ft.c_tanarokid AND f.torolt='F'
WHERE nn.c_orarendinap='T' AND nn.c_napdatuma >= @elsonap AND nn.c_napdatuma <= @utolsonap
ORDER BY nn.c_hetsorszama, FORMAT(nn.c_napdatuma, 'yyyy. MMMM dd.', 'hu-hu')
--Napló adatok
DECLARE @Orak TABLE (
datum date
,Sorszam int
,Hetsorszam int
)
INSERT INTO @Orak
SELECT DISTINCT
n.c_napdatuma datum
,sz.Oraszam
,n.c_hetsorszama
FROM T_NAPTARINAP_OSSZES n
CROSS JOIN (VALUES (1),(2),(3),(4),(5),(6),(7),(8),(9),(10)) sz (Oraszam)
WHERE n.c_napdatuma >= @elsonap
AND n.c_napdatuma <= @utolsonap
AND n.c_orarendinap = 'T'
AND TOROLT = 'F'
AND n.C_TANEVID = @tanevId
DECLARE @oraSorszam TABLE (Id int, EvesSorszam int)
INSERT INTO @oraSorszam (Id, EvesSorszam)
SELECT DISTINCT
s.Id
,s.EvesSorszam
FROM (
SELECT DISTINCT tn.C_TANTARGYID, tn.C_OSZTALYCSOPORTID, ot.C_TANAROKID, tn.C_INTEZMENYID--, fh.C_NYOMTATASINEV
FROM T_TANITASIORA_OSSZES tn
INNER JOIN T_ORAK_TANAROK ot ON tn.ID = ot.C_ORAKID
INNER JOIN T_FELHASZNALO fh ON fh.ID = ot.C_TANAROKID
WHERE tn.C_OSZTALYCSOPORTID = @csoportid
) x
CROSS APPLY dbo.fnGetEvesOraszamLista (
x.C_TANTARGYID
,x.C_OSZTALYCSOPORTID
,x.C_TANAROKID
,GETDATE()
,x.C_INTEZMENYID
,@tanevID
) s
SELECT DISTINCT
o.Hetsorszam as Het
,o.Sorszam as Oraszam
,FORMAT(o.Datum, 'yyyy. MMMM dd.', 'hu-hu') as Datum
,FORMAT(tao.c_orakezdete, 'hh:mm')as OraKezd
,fh.C_NYOMTATASINEV as Tanar
,os.EvesSorszam as Sorszam
,tao.c_tema as Tema
FROM @Orak o
LEFT JOIN T_TANITASIORA_OSSZES tao ON tao.c_datum = o.Datum
AND tao.torolt = 'F'
AND tao.c_oraszam = o.Sorszam
AND tao.c_tanevid = @tanevid
AND tao.c_osztalycsoportid = @csoportid
LEFT JOIN @oraSorszam os ON os.Id = tao.ID
LEFT JOIN T_ORAK_TANAROK ot ON tao.ID = ot.C_ORAKID
LEFT JOIN T_FELHASZNALO fh ON fh.ID = ot.C_TANAROKID
ORDER BY Oraszam
--Napló mulasztás
SELECT C_HETSORSZAMA Het, C_NYOMTATASINEV Tanulo,
MAX([1]) AS [Hetfo]
,MAX([2]) AS [Kedd]
,MAX([3]) AS [Szerda]
,MAX([4]) AS [Csutortok]
,MAX([5]) AS [Pentek]
,MAX([6]) AS [Szombat]
FROM (
SELECT C_HETSORSZAMA, C_NYOMTATASINEV, [0], [1], [2], [3], [4], [5], [6]
FROM (
SELECT DISTINCT n.C_NAPTARINAPID, DATEPART(dw,n.C_DATUM) AS NAP, t.C_NYOMTATASINEV, n.C_HETSORSZAMA,
'[' + STUFF((
SELECT ', ' + CAST(o.C_ORASZAM AS VARCHAR(3)) + IIF(tm.C_TIPUS = 1500, '', '(k)')
FROM T_TANULOMULASZTAS_OSSZES tm
INNER JOIN T_TANITASIORA_OSSZES o ON o.ID = tm.C_TANITASIORAKID
INNER JOIN T_OSZTALYCSOPORT_OSSZES ocs ON ocs.id=@csoportid
WHERE n.C_NAPTARINAPID = o.C_NAPTARINAPID
AND m.C_ORATANULOIID = tm.C_ORATANULOIID
AND o.C_TANEVID = @tanevID
AND tm.C_TANEVID = @tanevID
AND TM.TOROLT='F'
AND (@iskolaErdekuSzamit = 1 OR C_IGAZOLASTIPUSA <> 1533)
ORDER BY o.C_NAPTARINAPID, o.C_ORASZAM
FOR XML PATH(''), TYPE).value('.', 'varchar(max)'),1,2,'') + '] ' + CAST(SUM(IIF(m.C_IGAZOLT = 'T', 1, 0)) AS varchar(2)) + '/' + CAST(SUM(IIF(m.C_IGAZOLT = 'T' OR m.C_TIPUS = 1499, 0, 1)) AS varchar(2)) AS hianyzas
FROM T_TANITASIORA_OSSZES n
INNER JOIN T_TANULOMULASZTAS_OSSZES m ON m.C_TANITASIORAKID = n.ID AND m.TOROLT='F'
INNER JOIN T_FELHASZNALO_OSSZES t ON t.ID = m.C_ORATANULOIID
WHERE
n.C_TANEVID = @tanevID
AND m.C_TANEVID = @tanevID
AND n.c_osztalycsoportid=@csoportId
AND n.torolt='F'
AND (@iskolaErdekuSzamit = 1 OR C_IGAZOLASTIPUSA <> 1533)
GROUP BY n.C_NAPTARINAPID, C_ORATANULOIID, C_NYOMTATASINEV, n.C_HETSORSZAMA, n.C_DATUM) AS SUB
PIVOT
(
MAX(HIANYZAS)
FOR NAP IN ([0], [1], [2], [3], [4], [5], [6])
) AS PivotTable
) AS x
GROUP BY C_HETSORSZAMA, C_NYOMTATASINEV
ORDER BY C_HETSORSZAMA
END
GO

View file

@ -0,0 +1,72 @@
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
IF OBJECT_ID('[dbo].[sp_GetFeljegyzesBeirasokReszletek]') IS NOT NULL
BEGIN
DROP PROCEDURE [dbo].[sp_GetFeljegyzesBeirasokReszletek]
END
GO
-- =============================================
-- Description: <Előszedjük a tanuló feljegyzéseit a beirások oldalhoz részletesen>
-- =============================================
CREATE PROCEDURE [dbo].[sp_GetFeljegyzesBeirasokReszletek]
@pIntezmenyId INT
,@pTanevId INT
,@pTanuloId INT
,@pToroltElemek CHAR = 'F'
,@pTanarId INT
,@pEsemenyTipusElektronikusUzenetId INT
,@pEsemenyTipusFaliujsagBejegyzesId INT
AS
BEGIN
-- SET NOCOUNT ON added to prevent extra result sets from
-- interfering with SELECT statements.
SET NOCOUNT ON;
SELECT
TanuloEsemeny.ID ID
,TanuloEsemeny.C_ROGZITESDATUMA RogzitesDatuma
,TanuloEsemeny.C_TIPUS Tipus
,TanuloEsemeny.C_TARGY Targy
,TanuloEsemeny.C_TARTALOM Tartalom
,TanuloEsemeny.TOROLT Torolt
,Tanulo.ID TanuloId
,Tanulo.C_NYOMTATASINEV TanuloNev
,Tanar.C_NYOMTATASINEV FeljegyzoNeve
,CASE
WHEN TanuloEsemeny.C_FELJEGYZOID = @pTanarId
THEN 'T'
ELSE 'F'
END Modosithato
FROM
T_TANULOESEMENY_OSSZES TanuloEsemeny
LEFT JOIN
T_TANULO_TANULOESEMENY TanuloTanuloEsemeny ON
TanuloTanuloEsemeny.C_TANULOESEMENYID = TanuloEsemeny.ID
LEFT JOIN
T_FELHASZNALO_OSSZES Tanulo ON
Tanulo.ID = TanuloTanuloEsemeny.C_TANULOID
LEFT JOIN
T_FELHASZNALO_OSSZES Tanar ON
Tanar.ID = TanuloEsemeny.C_FELJEGYZOID
AND Tanar.C_INTEZMENYID = @pIntezmenyId
AND Tanar.C_TANEVID = @pTanevId
WHERE
Tanulo.ID = @pTanuloId
AND TanuloEsemeny.C_INTEZMENYID = @pIntezmenyId
AND TanuloEsemeny.C_TANEVID = @pTanevId
AND TanuloEsemeny.C_TIPUS <> @pEsemenyTipusElektronikusUzenetId
AND TanuloEsemeny.C_TIPUS <> @pEsemenyTipusFaliujsagBejegyzesId
--Ha a törölt flag True, a törölt elemeket is visszaadjuk
AND TanuloEsemeny.TOROLT = IIF(@pToroltElemek = 'T',TanuloEsemeny.TOROLT, 'F')
END
GO

View file

@ -0,0 +1,70 @@
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
IF OBJECT_ID('[dbo].[sp_GetFeljegyzesElektronikusUzenetekNaploNezetReszletek]') IS NOT NULL
BEGIN
DROP PROCEDURE [dbo].[sp_GetFeljegyzesElektronikusUzenetekNaploNezetReszletek]
END
GO
-- =============================================
-- Description: <Előszedjük a tanuló feljegyzéseit az elektronikus üzenetek oldal napló nézet tab-jához részletesen>
-- =============================================
CREATE PROCEDURE [dbo].[sp_GetFeljegyzesElektronikusUzenetekNaploNezetReszletek]
@pIntezmenyId INT
,@pTanevId INT
,@pTanuloId INT
,@pToroltElemek CHAR = 'F'
,@pTanarId INT
,@pEsemenyTipusElektronikusUzenetId INT
AS
BEGIN
-- SET NOCOUNT ON added to prevent extra result sets from
-- interfering with SELECT statements.
SET NOCOUNT ON;
SELECT
TanuloEsemeny.ID ID
,TanuloEsemeny.C_ROGZITESDATUMA RogzitesDatuma
,TanuloEsemeny.C_TIPUS Tipus
,TanuloEsemeny.C_TARGY Targy
,TanuloEsemeny.C_TARTALOM Tartalom
,TanuloEsemeny.TOROLT Torolt
,Tanulo.ID TanuloId
,Tanulo.C_NYOMTATASINEV TanuloNev
,Tanar.C_NYOMTATASINEV FeljegyzoNeve
,CASE
WHEN TanuloEsemeny.C_FELJEGYZOID = @pTanarId
THEN 'T'
ELSE 'F'
END Modosithato
FROM
T_TANULOESEMENY_OSSZES TanuloEsemeny
LEFT JOIN
T_TANULO_TANULOESEMENY TanuloTanuloEsemeny ON
TanuloTanuloEsemeny.C_TANULOESEMENYID = TanuloEsemeny.ID
LEFT JOIN
T_FELHASZNALO_OSSZES Tanulo ON
Tanulo.ID = TanuloTanuloEsemeny.C_TANULOID
LEFT JOIN
T_FELHASZNALO_OSSZES Tanar ON
Tanar.ID = TanuloEsemeny.C_FELJEGYZOID
AND Tanar.C_INTEZMENYID = @pIntezmenyId
AND Tanar.C_TANEVID = @pTanevId
WHERE
Tanulo.ID = @pTanuloId
AND TanuloEsemeny.C_INTEZMENYID = @pIntezmenyId
AND TanuloEsemeny.C_TANEVID = @pTanevId
AND TanuloEsemeny.C_TIPUS = @pEsemenyTipusElektronikusUzenetId
--Ha a törölt flag True, a törölt elemeket is visszaadjuk
AND TanuloEsemeny.TOROLT = IIF(@pToroltElemek = 'T',TanuloEsemeny.TOROLT, 'F')
END
GO

View file

@ -0,0 +1,129 @@
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
IF OBJECT_ID('[dbo].[sp_GetFogadooraInfo]') IS NOT NULL
BEGIN
DROP PROCEDURE [dbo].[sp_GetFogadooraInfo]
END
GO
CREATE PROCEDURE [dbo].[sp_GetFogadooraInfo]
@alkalmazottId int,
@tanevId int
AS
BEGIN
SET NOCOUNT ON;
/*
Fejlec: Ebben szerepeljen az intézmény neve, működési hely neve,
és a feladatellátási hely oktatási-nevelési feladata, keltezés helye, napja.
*/
SELECT i.C_NEV as intezmeny, m.C_NEV as mukodesihely, d.C_NAME as oktatasiNevelesiFeladatTipus,
ISNULL(i.C_VAROS + ', ', '') + FORMAT(GETDATE(), 'yyyy. MMMM dd.', 'hu-hu') AS kelt
FROM T_INTEZMENYADATOK_OSSZES i
INNER JOIN T_MUKODESIHELY_OSSZES m ON i.C_INTEZMENYID = m.C_INTEZMENYID AND m.TOROLT = 'F'
INNER JOIN T_FELADATELLATASIHELY_OSSZES f ON m.ID = f.C_MUKODESIHELYID AND f.TOROLT = 'F'
INNER JOIN T_DICTIONARYITEMBASE_OSSZES d ON d.id = f.C_OKTATASINEVELESIFELADATTIPUS
WHERE i.C_INTEZMENYID = (SELECT C_INTEZMENYID FROM T_FELHASZNALO WHERE ID=@alkalmazottId)
/*
Csoport: A tanár neve, ID-ja, és az általa tanított osztályok,
csoportok neve, ID-ja, illetve a nekik tanított tantárgyak neve, ID-ja.
*/
SELECT distinct ocs.Id as osztalycsoportId,ocs.C_NEV AS csoport
FROM T_FOGLALKOZAS_OSSZES f
INNER JOIN T_FOGLALKOZASOK_TANAROK ft ON f.ID = ft.C_FOGLALKOZASOKID
INNER JOIN T_TANTARGY_OSSZES t ON t.ID = f.C_TANTARGYID
INNER JOIN T_FELHASZNALO_OSSZES fh ON fh.id = ft.C_TANAROKID
INNER JOIN T_OSZTALYCSOPORT_OSSZES ocs ON ocs.ID = f.C_OSZTALYCSOPORTID
LEFT JOIN T_CSOPORTOK_OSZTALYOK_OSSZES cso ON cso.C_CSOPORTOKID = ocs.ID
LEFT JOIN T_OSZTALYCSOPORT_OSSZES csocs ON csocs.ID = cso.C_OSZTALYOKID
INNER JOIN T_TANULOCSOPORT_OSSZES tcs ON tcs.C_OSZTALYCSOPORTID = ocs.ID
INNER JOIN T_FELHASZNALO_OSSZES tn ON tn.ID = tcs.C_TANULOID
WHERE ft.C_TANAROKID = @alkalmazottId
AND (tcs.C_KILEPESDATUM IS NULL OR tcs.C_KILEPESDATUM > GETDATE())
AND F.C_TANEVID=@TANEVID
AND F.TOROLT='F'
order by csoport
SELECT distinct tn.ID as tanuloID,
tn.c_nyomtatasinev as TanuloNeve
FROM T_FOGLALKOZAS_OSSZES f
INNER JOIN T_FOGLALKOZASOK_TANAROK ft ON f.ID = ft.C_FOGLALKOZASOKID
INNER JOIN T_TANTARGY_OSSZES t ON t.ID = f.C_TANTARGYID
INNER JOIN T_FELHASZNALO_OSSZES fh ON fh.id = ft.C_TANAROKID
INNER JOIN T_OSZTALYCSOPORT_OSSZES ocs ON ocs.ID = f.C_OSZTALYCSOPORTID
LEFT JOIN T_CSOPORTOK_OSZTALYOK_OSSZES cso ON cso.C_CSOPORTOKID = ocs.ID
LEFT JOIN T_OSZTALYCSOPORT_OSSZES csocs ON csocs.ID = cso.C_OSZTALYOKID
INNER JOIN T_TANULOCSOPORT_OSSZES tcs ON tcs.C_OSZTALYCSOPORTID = ocs.ID
INNER JOIN T_FELHASZNALO_OSSZES tn ON tn.ID = tcs.C_TANULOID
WHERE ft.C_TANAROKID = @alkalmazottId
AND (tcs.C_KILEPESDATUM IS NULL OR tcs.C_KILEPESDATUM > GETDATE())
AND F.C_TANEVID=@TANEVID
AND F.TOROLT='F'
order by TanuloNeve
SELECT fh.C_NYOMTATASINEV as tanarNev, t.C_NEV as tantargyNev, ISNULL(csocs.C_NEV, ocs.C_NEV) AS osztaly, ocs.Id as osztalycsoportId,ocs.C_NEV AS csoport,
tn.ID as tanuloID, tn.C_NYOMTATASINEV as tanuloNev
FROM T_FOGLALKOZAS_OSSZES f
INNER JOIN T_FOGLALKOZASOK_TANAROK ft ON f.ID = ft.C_FOGLALKOZASOKID
INNER JOIN T_TANTARGY_OSSZES t ON t.ID = f.C_TANTARGYID
INNER JOIN T_FELHASZNALO_OSSZES fh ON fh.id = ft.C_TANAROKID
INNER JOIN T_OSZTALYCSOPORT_OSSZES ocs ON ocs.ID = f.C_OSZTALYCSOPORTID
LEFT JOIN T_CSOPORTOK_OSZTALYOK_OSSZES cso ON cso.C_CSOPORTOKID = ocs.ID
LEFT JOIN T_OSZTALYCSOPORT_OSSZES csocs ON csocs.ID = cso.C_OSZTALYOKID
INNER JOIN T_TANULOCSOPORT_OSSZES tcs ON tcs.C_OSZTALYCSOPORTID = ocs.ID
INNER JOIN T_FELHASZNALO_OSSZES tn ON tn.ID = tcs.C_TANULOID
WHERE ft.C_TANAROKID = @alkalmazottId
AND F.C_TANEVID=@TANEVID
AND F.TOROLT='F'
AND (tcs.C_KILEPESDATUM IS NULL OR tcs.C_KILEPESDATUM > GETDATE())
SELECT e.ID, tn.ID as tanuloID, tn.C_NYOMTATASINEV as tanuloNev, FORMAT(e.C_ERTEKELESDATUM, 'd', 'hu-hu') as ertekelesDatuma,
dt.C_NAME as ertekelesTipusa, dm.C_NAME as ertekelesModja, e.C_ERTEKELESSZOVEG as feljegyzes,
fh.C_NYOMTATASINEV as tanarNev, do.C_NAME as osztalyzat, ocs.ID as csoportID, ocs.C_NEV as csoportNev,
t.id as tantargyID, t.C_NEV as tantargyNev
--SELECT count(1)
FROM T_TANULOERTEKELES_OSSZES e
INNER JOIN T_OSZTALYZATERTEKELES_OSSZES oe ON e.ID = oe.ID
INNER JOIN T_OSZTALYCSOPORT_OSSZES ocs ON ocs.ID = e.C_OSZTALYCSOPORTID
INNER JOIN T_FOGLALKOZAS_OSSZES f ON f.C_OSZTALYCSOPORTID = ocs.ID
INNER JOIN T_FOGLALKOZASOK_TANAROK ft ON f.ID = ft.C_FOGLALKOZASOKID
INNER JOIN T_TANTARGY_OSSZES t ON t.ID = f.C_TANTARGYID and e.C_TANTARGYID = t.ID
INNER JOIN T_FELHASZNALO_OSSZES fh ON fh.id = ft.C_TANAROKID
INNER JOIN T_TANULOCSOPORT_OSSZES tcs ON tcs.C_OSZTALYCSOPORTID = ocs.ID AND tcs.C_TANULOID = e.C_TANULOID
INNER JOIN T_FELHASZNALO_OSSZES tn ON tn.ID = tcs.C_TANULOID
INNER JOIN T_DICTIONARYITEMBASE_OSSZES dt ON dt.ID = e.C_ERTEKELESTIPUSA
INNER JOIN T_DICTIONARYITEMBASE_OSSZES dm ON (dm.ID = oe.C_ERTEKELESMODJA AND DM.C_INTEZMENYID = OE.C_ALINTEZMENYID AND DM.C_TANEVID = OE.C_ALTANEVID)
INNER JOIN T_DICTIONARYITEMBASE_OSSZES do ON (do.ID = e.C_OSZTALYZAT AND Do.C_INTEZMENYID = E.C_INTEZMENYID AND Do.C_TANEVID = E.C_TANEVID)
WHERE ft.C_TANAROKID = @alkalmazottId
AND (tcs.C_KILEPESDATUM IS NULL OR tcs.C_KILEPESDATUM > GETDATE())
AND E.C_TANEVID=@TANEVID AND E.TOROLT='F'
UNION ALL
SELECT e.ID, tn.ID as tanuloID, tn.C_NYOMTATASINEV as tanuloNev, FORMAT(e.C_ERTEKELESDATUM, 'd', 'hu-hu') as ertekelesDatuma,
dt.C_NAME as ertekelesTipusa, null as ertekelesModja, e.C_ERTEKELESSZOVEG as feljegyzes,
fh.C_NYOMTATASINEV as tanarNev, dm.C_NAME + ', ' + ds.C_NAME as osztalyzat, ocs.ID as csoportID, ocs.C_NEV as csoportNev,
t.id as tantargyID, t.C_NEV as tantargyNev
FROM T_TANULOERTEKELES_OSSZES e
INNER JOIN T_OSZTALYFONOKIERTEKELES_OSSZES oe ON e.ID = oe.ID
INNER JOIN T_OSZTALYCSOPORT_OSSZES ocs ON ocs.ID = e.C_OSZTALYCSOPORTID
INNER JOIN T_FOGLALKOZAS_OSSZES f ON f.C_OSZTALYCSOPORTID = ocs.ID
INNER JOIN T_FOGLALKOZASOK_TANAROK ft ON f.ID = ft.C_FOGLALKOZASOKID
INNER JOIN T_TANTARGY_OSSZES t ON t.ID = f.C_TANTARGYID and e.C_TANTARGYID = t.ID
INNER JOIN T_FELHASZNALO_OSSZES fh ON fh.id = ft.C_TANAROKID
INNER JOIN T_TANULOCSOPORT_OSSZES tcs ON tcs.C_OSZTALYCSOPORTID = ocs.ID AND tcs.C_TANULOID = e.C_TANULOID
INNER JOIN T_FELHASZNALO_OSSZES tn ON tn.ID = tcs.C_TANULOID
INNER JOIN T_DICTIONARYITEMBASE_OSSZES dt ON dt.ID = e.C_ERTEKELESTIPUSA
INNER JOIN T_DICTIONARYITEMBASE_OSSZES dm ON dm.ID = oe.C_MAGATARTAS
INNER JOIN T_DICTIONARYITEMBASE_OSSZES ds ON ds.ID = oe.C_SZORGALOM
WHERE ft.C_TANAROKID = @alkalmazottId
AND (tcs.C_KILEPESDATUM IS NULL OR tcs.C_KILEPESDATUM > GETDATE())
AND E.C_TANEVID=@TANEVID AND E.TOROLT='F'
END
GO

View file

@ -0,0 +1,115 @@
-- =============================================
-- Author: <Hoffmann Zsolt>
-- Create date: <2016. 07. 26.>
-- Description: <Haladási napló>
-- =============================================
IF OBJECT_ID('sp_GetHaladasiNaploAdatok') IS NOT NULL BEGIN
DROP PROCEDURE sp_GetHaladasiNaploAdatok
END
GO
CREATE PROCEDURE [dbo].[sp_GetHaladasiNaploAdatok]
@tanevID int,
@osztalyID int
AS
BEGIN
DECLARE @foglalkozasID INT = 0
DECLARE @foglalkozasNev VARCHAR(255)
SET NOCOUNT ON;
SELECT DISTINCT
f.id
,ocs.C_NEV + ' - ' + tt.C_NEV AS Nev
,f.C_TANTARGYID
,f.C_OSZTALYCSOPORTID
,f.C_INTEZMENYID
,ft.C_TANAROKID AS C_TANARID
INTO #Foglalkozasok
FROM T_FOGLALKOZAS_OSSZES f
INNER JOIN T_FOGLALKOZASOK_TANAROK ft ON f.ID = ft.C_FOGLALKOZASOKID
INNER JOIN T_OSZTALYCSOPORT_OSSZES OCS on OCS.ID = f.C_OSZTALYCSOPORTID and OCS.TOROLT = 'F'
LEFT JOIN T_CSOPORTOK_OSZTALYOK cso on cso.C_CSOPORTOKID = ocs.ID
INNER JOIN T_TANTARGY_OSSZES tt on tt.ID = f.C_TANTARGYID and tt.TOROLT = 'F'
WHERE f.TOROLT = 'F'
AND f.C_TANEVID = @tanevID
AND (ocs.ID = @osztalyID OR cso.C_OSZTALYOKID = @osztalyID)
SELECT
fog.ID
, Nev+' - '+felh.C_NYOMTATASINEV Nev
FROM #Foglalkozasok fog
INNER JOIN T_FELHASZNALO_OSSZES felh on fog.C_TANARID=felh.ID
DECLARE @sorszamTable TABLE (
tanitasiOraId int-- PRIMARY KEY
,evesOraszam int
,foglalkozasId int
)
INSERT INTO @sorszamTable (tanitasiOraId, evesOraszam, foglalkozasId)
SELECT s.Id, s.EvesSorszam, f.ID FROM #Foglalkozasok f
CROSS APPLY dbo.fnGetEvesOraszamLista(
f.C_TANTARGYID
,f.C_OSZTALYCSOPORTID
,f.C_TANARID
,GETDATE()
,f.C_INTEZMENYID
,@tanevID
) s
DECLARE foglalkozasCursor CURSOR FOR
SELECT ID FROM #Foglalkozasok
OPEN foglalkozasCursor
FETCH NEXT FROM foglalkozasCursor into @foglalkozasId
WHILE @@FETCH_STATUS = 0 BEGIN
SELECT DISTINCT
CASE
WHEN tn.C_MEGTARTOTT = 'T' THEN s.evesOraszam -- tn.C_ORAEVESSORSZAM
ELSE '-'
END AS OraSorszam
,fh.C_NYOMTATASINEV TanarNev
,tn.C_TEMA Tema
,CASE
WHEN tn.C_HELYETTESITOTANARID IS NULL THEN ''
ELSE 'H'
END AS Helyettesites
,FORMAT(tn.C_DATUM, 'yyyy.MM.dd.') Datum
,tn.C_ORASZAM OraSzam
,tn.C_MEGJEGYZES Megjegyzes
,tn.C_HAZIFELADAT HaziFeladat
,tn.C_TULORA TulOra
,tn.C_TAMOPORA TamopOra
,tn.C_NEMSZAKRENDSZERUORA NemszakrendszeruOra
,tn.C_IKTTANORA IktOra
,tn.C_NEMZETISEGIORA NemzetisegiOra
,tn.C_MINDENNAPOSTESTNEVELES TestnevelesOra
,tn.C_IPRTANORA IprOra
,tn.C_DIFFERENCIALT DifferencialtOra
,tn.C_KOOPERATIV KooperativOra
,tn.C_MERES MeresOra
,tn.C_DRAMA DramaOra
,tn.C_PARHUZAMOSORA ParhuzamosOra
,tn.C_TIOP12 TiopOra
FROM T_TANITASIORA_OSSZES tn
INNER JOIN T_ORAK_TANAROK ot ON ot.C_ORAKID = tn.ID
INNER JOIN T_FELHASZNALO fh ON fh.ID = ot.C_TANAROKID
LEFT JOIN @sorszamTable s ON s.tanitasiOraId = tn.ID
WHERE tn.TOROLT = 'F'
AND tn.C_TANEVID = @tanevID
AND tn.C_FOGLALKOZASID = @foglalkozasID
ORDER BY FORMAT(tn.C_DATUM, 'yyyy.MM.dd.')
FETCH NEXT FROM foglalkozasCursor
INTO @foglalkozasId
END
CLOSE foglalkozasCursor
DEALLOCATE foglalkozasCursor
DROP TABLE #Foglalkozasok
END
GO

View file

@ -0,0 +1,402 @@
IF OBJECT_ID('[DBO].[sp_GetNapkozisNaplo]') IS NOT NULL BEGIN
DROP PROCEDURE [DBO].[sp_GetNapkozisNaplo]
END
GO
CREATE PROCEDURE [DBO].[sp_GetNapkozisNaplo]
@tanevId INT
,@intezmenyId INT
,@csoportId INT
,@iskolaErdekuSzamit BIT
AS
BEGIN
SET NOCOUNT ON;
--Tanulók adatai, elérhetőségei
DECLARE @tanulok table (
Id int, Nev nvarchar(max), TanuloRovid nvarchar(40), Osztaly nvarchar(max), RovidNev nvarchar(30), Sorszam nvarchar(max), Torzslapszam nvarchar(max), Allampolgarsaga nvarchar(max), DiakIg nvarchar(max),
SzulHely nvarchar(max), SzulIdo nvarchar(max), Anyja nvarchar(max), Taj nvarchar(max), OktAzon nvarchar(max), Kilepes nvarchar(max), Kepzes nvarchar(max),
TanuloCimTipus nvarchar(max), TanuloCim nvarchar(max), TanuloTelefon nvarchar(max), TanuloEmail nvarchar(max), szoc nvarchar(max)
)
INSERT INTO @tanulok
SELECT DISTINCT
t.id Id
,iif(tcs.c_kilepesdatum is not null,f.c_nyomtatasinev+' (kilépett)', f.c_nyomtatasinev) as Nev
,iif(len(f.c_nyomtatasinev)>40, SUBSTRING (f.c_nyomtatasinev, 1 , 40), f.c_nyomtatasinev)
,Osztaly.Osztaly as Osztaly
,iif(len(Osztaly.Osztaly)>17, SUBSTRING (Osztaly.Osztaly, 1 , 16)+'...', Osztaly.Osztaly) RovidNev
,t.c_naplosorszam as Sorszam
,t.c_beirasinaplosorszam as Torzslapszam
,Allampolgarsaga.Allampolgarsaga as Allampolgarsag
,t.c_diakigazolvanyszam as DiakIg
,f.c_szuletesihely as SzulHely
,FORMAT(f.c_szuletesidatum, 'yyyy. MMMM dd.', 'hu-hu') as SzulIdo
,f.c_anyjaneve as Anyja
,f.c_tajszam as Taj
,f.c_oktatasiazonosito as OktAzon
,FORMAT(tcs.c_kilepesdatum, 'yyyy. MMMM dd.', 'hu-hu') as Kilepes
,tt.c_nev as Kepzes
,cim.Tipus
,cim.cim
,tel.c_telefonszam
,email.c_emailcim as TanuloEmail
,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, ', '') AS szoc
FROM T_TANULOCSOPORT_OSSZES tcs
INNER JOIN T_FELHASZNALO_OSSZES f ON f.id=tcs.c_tanuloid AND f.torolt='F'
INNER JOIN (SELECT distinct d.id Id, d.c_name Allampolgarsaga FROM T_DICTIONARYITEMBASE_OSSZES d) Allampolgarsaga ON Allampolgarsaga.Id=f.c_allampolgarsaga
LEFT JOIN (
SELECT tcs.c_tanuloid TanuloId, ocs.c_nev as Osztaly, tcs.c_kilepesdatum Kilepes
FROM T_TANULOCSOPORT_OSSZES tcs
INNER JOIN T_OSZTALY_OSSZES o ON o.id=tcs.c_osztalycsoportid
INNER JOIN T_OSZTALYCSOPORT_OSSZES ocs ON o.id=ocs.id
WHERE tcs.torolt='F'
) osztaly ON tcs.c_tanuloid=osztaly.TanuloId
INNER JOIN T_TANTERV_OSSZES tt ON tt.c_intezmenyid=tcs.c_intezmenyid AND tt.c_intezmenyid=@intezmenyid AND tt.c_tanevid=@tanevid
INNER JOIN T_TANULO_OSSZES t ON t.id=f.id
INNER JOIN (
SELECT f.id Tanulo, dt.c_name Tipus, c.c_iranyitoszam+', '+c.c_varos+' '+c.c_kozterulet+' '+dj.c_name+' '+c.c_hazszam as Cim
FROM t_cim c
INNER JOIN (SELECT distinct d.id, d.c_name FROM t_dictionaryitembase_osszes d )dt ON dt.id=c.c_cimtipusa
INNER JOIN t_felhasznalo_osszes f ON f.id=c.c_felhasznaloid
INNER JOIN (SELECT distinct d.id, d.c_name FROM t_dictionaryitembase_osszes d)dj ON dj.id=c.c_kozteruletjellege
WHERE c.c_cimtipusa=907 AND c.c_gondviseloid is null AND c.torolt='F' AND c.c_intezmenyid=@intezmenyid)cim ON cim.Tanulo=tcs.c_tanuloid
LEFT JOIN T_TELEFON_OSSZES tel ON tel.c_felhasznaloid=f.id AND tel.c_gondviseloid is null AND tel.torolt='F' AND tel.c_alapertelmezett='T'
LEFT JOIN T_EMAIL_OSSZES email ON email.c_felhasznaloid=tcs.c_tanuloid AND email.c_gondviseloid is null AND email.torolt='F' AND email.c_alapertelmezett='T'
WHERE tcs.c_osztalycsoportid=@csoportId AND tcs.c_tanevid=@tanevid AND tcs.torolt='F'
--Kezdőoldal
SELECT ia.c_nev as IntezmenyNev, ia.c_cime as IntezmenyCim, ia.c_omkod as OMKOD, ia.c_igazgatoneve as IntezmenyVezeto, ocs.c_nev NapkozisCsoport, iif(len(ocs.c_nev)>17, SUBSTRING (ocs.c_nev, 1 , 17)+'...', ocs.c_nev) RovidNev,
isnull(f.c_nyomtatasinev,'-') as CsoportVezeto, isnull(cs.c_csoportnaploleiras,'-') as CsoportNaploLeiras, FORMAT(cs.c_csoportnaplomegnyitasa, 'yyyy. MMMM dd.', 'hu-hu') as Megnyitas,
isnull(FORMAT(cs.c_csoportnaplozarasa, 'yyyy. MMMM dd.', 'hu-hu'),'-') as Lezaras
FROM T_INTEZMENY_OSSZES i
INNER JOIN T_INTEZMENYADATOK_OSSZES ia ON ia.c_intezmenyid = i.id
INNER JOIN T_OSZTALYCSOPORT_OSSZES ocs ON ocs.c_intezmenyid=i.id AND ocs.c_tanevid = @tanevid AND ocs.id = @csoportId
INNER JOIN T_CSOPORT_OSSZES cs ON cs.id = ocs.id
LEFT JOIN T_FELHASZNALO_OSSZES f ON f.id = cs.c_csoportvezetoid
WHERE i.id = @intezmenyid
AND ia.c_tanevid = @tanevid
--Csoportot vezette
SELECT isnull(f.c_nyomtatasinev,'-') as CsoportVezeto FROM T_CSOPORT_OSSZES cs
LEFT JOIN T_FELHASZNALO_OSSZES f ON f.id=cs.c_csoportvezetoid
WHERE cs.id=@csoportId AND cs.c_altanevid=@tanevid AND cs.c_alintezmenyid=@intezmenyid
--Tanulók
SELECT distinct Nev, RovidNev as Osztaly, OktAzon
FROM @tanulok
ORDER BY Nev
--Naplóhetek
DECLARE @elsonap as date
DECLARE @utolsonap as date
IF (
SELECT c_osztalycsoportid FROM T_OSZTALYCSOPORT_TANEVRENDJE_OSSZES otr
INNER JOIN t_tanevrendje_osszes tr ON tr.id=otr.c_tanevrendjeid AND tr.c_naptipusa=1394
WHERE c_osztalycsoportid=@csoportid
) IS NULL begin
SET @elsonap= (SELECT top 1 c_datum FROM t_tanevrendje_osszes tr WHERE c_naptipusa=1394 AND c_tanevid=@tanevId AND c_intezmenyid=@intezmenyId AND torolt='F' AND c_osszescsoportravonatkozik='T')
END
ELSE BEGIN
SET @elsonap = (
SELECT top 1 tr.C_DATUM
FROM T_OSZTALYCSOPORT_TANEVRENDJE_OSSZES otr
INNER JOIN t_tanevrendje_osszes tr ON tr.id=otr.c_tanevrendjeid AND tr.c_naptipusa=1394
WHERE c_osztalycsoportid=@csoportid)
END
IF (
SELECT c_osztalycsoportid
FROM T_OSZTALYCSOPORT_TANEVRENDJE_OSSZES otr
INNER JOIN t_tanevrendje_osszes tr ON tr.id=otr.c_tanevrendjeid AND tr.c_naptipusa=1395
WHERE c_osztalycsoportid=@csoportId
) IS NULL
BEGIN
SET @utolsonap = (SELECT top 1 c_datum FROM t_tanevrendje_osszes tr WHERE c_naptipusa=1395 AND c_tanevid=@tanevId AND c_intezmenyid=@intezmenyId AND torolt='F' AND c_osszescsoportravonatkozik='T')
END
ELSE BEGIN
SET @utolsonap = (
SELECT top 1 tr.C_DATUM
FROM T_OSZTALYCSOPORT_TANEVRENDJE_OSSZES otr
INNER JOIN t_tanevrendje_osszes tr ON tr.id=otr.c_tanevrendjeid AND tr.c_naptipusa=1395
WHERE c_osztalycsoportid=@csoportId)
END
SELECT
n.c_hetsorszama as Het
,FORMAT(convert(date,min(c_napdatuma)), 'yyyy. MMMM dd.', 'hu-hu')as HetEleje
,FORMAT(convert(date,max(c_napdatuma)), 'yyyy. MMMM dd.', 'hu-hu') as HetVege
FROM t_naptarinap n
WHERE n.c_napdatuma >= @elsonap
AND n.c_napdatuma <= @utolsonap
AND n.c_orarendinap = 'T'
AND n.c_tanevid = @tanevid
AND n.c_intezmenyid = @intezmenyid
GROUP BY n.c_hetsorszama
--Tanuló adatok
SELECT * FROM @tanulok ORDER BY Nev
--Mulasztások
CREATE TABLE #mulasztas (Nap int, Tanulo int, Osztaly int, MulasztasTipus int, IgazoltE nvarchar(1), IgazolasTipus int)
INSERT INTO #mulasztas
SELECT
CAST(Month(tao.c_datum) as int) as Nap
,tm.c_oratanuloiid as Tanulo
,tao.c_osztalycsoportid as Osztaly
,tm.c_tipus MulasztasTipus
,tm.c_igazolt IgazoltE
,tm.c_igazolastipusa IgazolasTipus
FROM T_TANULOMULASZTAS_OSSZES tm
INNER JOIN T_TANITASIORA_OSSZES tao ON tao.id=tm.c_tanitasiorakid
AND tao.torolt='F'
AND tao.c_tanevid = @tanevid
AND tao.c_intezmenyid = @intezmenyid
AND tao.c_osztalycsoportid = @csoportId
AND (@iskolaErdekuSzamit = 1 OR C_IGAZOLASTIPUSA <> 1533)
WHERE tm.torolt = 'F'
AND tm.c_tanevid = @tanevid
DECLARE @mul table(TanuloId int, Tipus nvarchar(50), TipusRendez int, [9] int, [10] int, [11] int, [12] int, [1] int, [2] int, [3] int, [4] int, [5] int, [6] int, [7] int)
--Mulasztások
INSERT INTO @mul
SELECT f.id, 'mulasztások', (1),
isnull(m.[9],0) as '9', isnull(m.[10],0) as '10', isnull(m.[11],0) as '11', isnull(m.[12],0) as '12', isnull(m.[1],0) as '1', isnull(m.[2],0) as '2', isnull(m.[3],0) as '3', isnull(m.[4],0) as '4', isnull(m.[5],0) as '5', isnull(m.[6],0) as '6', isnull(m.[7],0) as '7'
FROM @tanulok t
LEFT JOIN (SELECT * FROM #mulasztas m pivot (count(Osztaly) for Nap in ([1],[2],[3],[4],[5],[6],[7],[8],[9],[10],[11],[12]))pv WHERE MulasztasTipus=1500)m ON m.Tanulo=t.id
INNER JOIN t_felhasznalo f ON f.id=t.Id
ORDER BY f.id
--Ebből igazolt
INSERT INTO @mul
SELECT f.id, '*igazolt', (2),
isnull(m.[9],0), isnull(m.[10],0), isnull(m.[11],0), isnull(m.[12],0), isnull(m.[1],0), isnull(m.[2],0), isnull(m.[3],0), isnull(m.[4],0), isnull(m.[5],0), isnull(m.[6],0), isnull(m.[7],0)
FROM @tanulok t
LEFT JOIN (SELECT * FROM #mulasztas m pivot (count(Osztaly) for Nap in ([1],[2],[3],[4],[5],[6],[7],[8],[9],[10],[11],[12]))pv WHERE IgazoltE='T' AND MulasztasTipus=1500 )m ON m.Tanulo=t.id
INNER JOIN t_felhasznalo f ON f.id=t.Id
ORDER BY f.id
--Egyéb
INSERT INTO @mul
SELECT f.id, '-egyéb', (3),
/*Igazolt*/isnull(m.[9],0), isnull(m.[10],0), isnull(m.[11],0), isnull(m.[12],0), isnull(m.[1],0), isnull(m.[2],0), isnull(m.[3],0), isnull(m.[4],0), isnull(m.[5],0), isnull(m.[6],0), isnull(m.[7],0)
FROM @tanulok t
LEFT JOIN (SELECT * FROM #mulasztas m pivot (count(Osztaly) for Nap in ([1],[2],[3],[4],[5],[6],[7],[8],[9],[10],[11],[12]))pv WHERE IgazolasTipus=1529 AND MulasztasTipus=1500)m ON m.Tanulo=t.id
INNER JOIN t_felhasznalo f ON f.id=t.Id
ORDER BY f.id
--Orvosi igazolás
INSERT INTO @mul
SELECT f.id, '-orvosi ig.', (4),
/*Igazolt*/isnull(m.[9],0), isnull(m.[10],0), isnull(m.[11],0), isnull(m.[12],0), isnull(m.[1],0), isnull(m.[2],0), isnull(m.[3],0), isnull(m.[4],0), isnull(m.[5],0), isnull(m.[6],0), isnull(m.[7],0)
FROM @tanulok t
LEFT JOIN (SELECT * FROM #mulasztas m pivot (count(Osztaly) for Nap in ([1],[2],[3],[4],[5],[6],[7],[8],[9],[10],[11],[12]))pv WHERE IgazolasTipus=1530 AND MulasztasTipus=1500)m ON m.Tanulo=t.id
INNER JOIN t_felhasznalo f ON f.id=t.Id
ORDER BY f.id
--Szülői
INSERT INTO @mul
SELECT f.id, '-szülői ig.', (5),
/*Igazolt*/isnull(m.[9],0), isnull(m.[10],0), isnull(m.[11],0), isnull(m.[12],0), isnull(m.[1],0), isnull(m.[2],0), isnull(m.[3],0), isnull(m.[4],0), isnull(m.[5],0), isnull(m.[6],0), isnull(m.[7],0)
FROM @tanulok t
LEFT JOIN (SELECT * FROM #mulasztas m pivot (count(Osztaly) for Nap in ([1],[2],[3],[4],[5],[6],[7],[8],[9],[10],[11],[12]))pv WHERE IgazolasTipus=1531 AND MulasztasTipus=1500)m ON m.Tanulo=t.id
INNER JOIN t_felhasznalo f ON f.id=t.Id
ORDER BY f.id
--hivatalos távollét
INSERT INTO @mul
SELECT f.id, '-hivatalos t.', (6),
/*Igazolt*/isnull(m.[9],0), isnull(m.[10],0), isnull(m.[11],0), isnull(m.[12],0), isnull(m.[1],0), isnull(m.[2],0), isnull(m.[3],0), isnull(m.[4],0), isnull(m.[5],0), isnull(m.[6],0), isnull(m.[7],0)
FROM @tanulok t
LEFT JOIN (SELECT * FROM #mulasztas m pivot (count(Osztaly) for Nap in ([1],[2],[3],[4],[5],[6],[7],[8],[9],[10],[11],[12]))pv WHERE IgazolasTipus=1532 AND MulasztasTipus=1500)m ON m.Tanulo=t.id
INNER JOIN t_felhasznalo f ON f.id=t.Id
ORDER BY f.id
--iskolaérdekű távollét
IF (@iskolaErdekuSzamit = 1)
BEGIN
INSERT INTO @mul
SELECT f.id, '-iskolaérdekű t.', (7),
/*Igazolt*/isnull(m.[9],0), isnull(m.[10],0), isnull(m.[11],0), isnull(m.[12],0), isnull(m.[1],0), isnull(m.[2],0), isnull(m.[3],0), isnull(m.[4],0), isnull(m.[5],0), isnull(m.[6],0), isnull(m.[7],0)
FROM @tanulok t
LEFT JOIN (SELECT * FROM #mulasztas m pivot (count(Osztaly) for Nap in ([1],[2],[3],[4],[5],[6],[7],[8],[9],[10],[11],[12]))pv WHERE IgazolasTipus=1533 AND MulasztasTipus=1500)m ON m.Tanulo=t.id
INNER JOIN t_felhasznalo f ON f.id=t.Id
ORDER BY f.id
END
--Ebből igazolatlan
INSERT INTO @mul
SELECT f.id, '*igazolatlan', (8),
/*Igazolt*/isnull(m.[9],0), isnull(m.[10],0), isnull(m.[11],0), isnull(m.[12],0), isnull(m.[1],0), isnull(m.[2],0), isnull(m.[3],0), isnull(m.[4],0), isnull(m.[5],0), isnull(m.[6],0), isnull(m.[7],0)
FROM @tanulok t
LEFT JOIN (SELECT * FROM #mulasztas m pivot (count(Osztaly) for Nap in ([1],[2],[3],[4],[5],[6],[7],[8],[9],[10],[11],[12]))pv WHERE IgazoltE='F' AND MulasztasTipus=1500)m ON m.Tanulo=t.id
INNER JOIN t_felhasznalo f ON f.id=t.Id
ORDER BY f.id
--késés
INSERT INTO @mul
SELECT f.id, 'késés', (9),
/*Igazolt*/isnull(m.[9],0), isnull(m.[10],0), isnull(m.[11],0), isnull(m.[12],0), isnull(m.[1],0), isnull(m.[2],0), isnull(m.[3],0), isnull(m.[4],0), isnull(m.[5],0), isnull(m.[6],0), isnull(m.[7],0)
FROM @tanulok t
LEFT JOIN (SELECT * FROM #mulasztas m pivot (count(Osztaly) for Nap in ([1],[2],[3],[4],[5],[6],[7],[8],[9],[10],[11],[12]))pv WHERE MulasztasTipus=1499)m ON m.Tanulo=t.id
INNER JOIN t_felhasznalo f ON f.id=t.Id
ORDER BY f.id
--késés igazolt
INSERT INTO @mul
SELECT f.id, '*igazolt', (10),
/*Igazolt*/isnull(m.[9],0), isnull(m.[10],0), isnull(m.[11],0), isnull(m.[12],0), isnull(m.[1],0), isnull(m.[2],0), isnull(m.[3],0), isnull(m.[4],0), isnull(m.[5],0), isnull(m.[6],0), isnull(m.[7],0)
FROM @tanulok t
LEFT JOIN (SELECT * FROM #mulasztas m pivot (count(Osztaly) for Nap in ([1],[2],[3],[4],[5],[6],[7],[8],[9],[10],[11],[12]))pv WHERE MulasztasTipus=1499 AND IgazoltE='T')m ON m.Tanulo=t.id
INNER JOIN t_felhasznalo f ON f.id=t.Id
ORDER BY f.id
--késés igazolatlan
INSERT INTO @mul
SELECT f.id, '*igazolatlan', (11),
/*Igazolt*/isnull(m.[9],0), isnull(m.[10],0), isnull(m.[11],0), isnull(m.[12],0), isnull(m.[1],0), isnull(m.[2],0), isnull(m.[3],0), isnull(m.[4],0), isnull(m.[5],0), isnull(m.[6],0), isnull(m.[7],0)
FROM @tanulok t
LEFT JOIN (SELECT * FROM #mulasztas m pivot (count(Osztaly) for Nap in ([1],[2],[3],[4],[5],[6],[7],[8],[9],[10],[11],[12]))pv WHERE MulasztasTipus=1499 AND IgazoltE='F')m ON m.Tanulo=t.id
INNER JOIN t_felhasznalo f ON f.id=t.Id
ORDER BY f.id
SELECT distinct *, m.[1]+m.[2]+m.[3]+m.[4]+m.[5]+m.[6]+m.[7]+m.[9]+m.[10]+m.[11]+m.[12] as Ossz FROM @mul m
--Napló
SELECT distinct nn.c_hetsorszama as Het, d.Nap as Nap, FORMAT(nn.c_napdatuma, 'yyyy. MMMM dd.', 'hu-hu') as Datum FROM T_NAPTARINAP_OSSZES nn
LEFT JOIN T_TANITASIORA_OSSZES tao ON tao.c_datum=nn.c_napdatuma AND tao.c_osztalycsoportid=@csoportid AND tao.torolt='F'
LEFT JOIN (SELECT distinct d.id as ID, d.c_name Nap FROM T_DICTIONARYITEMBASE_OSSZES d) d ON d.id=nn.c_hetnapja
LEFT JOIN T_FOGLALKOZAS_OSSZES fog ON fog.id=tao.c_foglalkozasid AND fog.c_tanevid=@tanevid
LEFT JOIN T_FOGLALKOZASOK_TANAROK ft ON ft.c_foglalkozasokid=fog.id
LEFT JOIN T_FELHASZNALO_OSSZES f ON f.id=ft.c_tanarokid AND f.torolt='F'
WHERE nn.c_orarendinap='T' AND nn.c_napdatuma>=@elsonap AND nn.c_napdatuma<=@utolsonap
ORDER BY nn.c_hetsorszama,FORMAT(nn.c_napdatuma, 'yyyy. MMMM dd.', 'hu-hu')
--Napló adatok
DECLARE @Orak TABLE (datum date, Sorszam int, Hetsorszam int)
INSERT INTO @Orak
SELECT DISTINCT convert(date, n.c_napdatuma) datum, sz.Oraszam, n.c_hetsorszama
FROM T_NAPTARINAP_OSSZES n
CROSS JOIN (VALUES (1),(2),(3),(4),(5),(6),(7),(8),(9),(10)) sz (Oraszam)
WHERE n.c_napdatuma>=@elsonap AND n.c_napdatuma<=@utolsonap AND n.c_orarendinap='T' AND n.c_intezmenyId=@intezmenyId
DECLARE @oraSorszam TABLE (Id int, EvesSorszam int)
INSERT INTO @oraSorszam (Id, EvesSorszam)
SELECT DISTINCT
s.Id
,s.EvesSorszam
FROM (
SELECT DISTINCT tn.C_TANTARGYID, tn.C_OSZTALYCSOPORTID, ot.C_TANAROKID, tn.C_INTEZMENYID--, fh.C_NYOMTATASINEV
FROM T_TANITASIORA_OSSZES tn
INNER JOIN T_ORAK_TANAROK ot ON tn.ID = ot.C_ORAKID
INNER JOIN T_FELHASZNALO fh ON fh.ID = ot.C_TANAROKID
WHERE tn.C_OSZTALYCSOPORTID = @csoportid
) x
CROSS APPLY dbo.fnGetEvesOraszamLista (
x.C_TANTARGYID
,x.C_OSZTALYCSOPORTID
,x.C_TANAROKID
,GETDATE()
,x.C_INTEZMENYID
,@tanevID
) s
SELECT DISTINCT
o.Hetsorszam as Het
,o.Sorszam as Oraszam
,FORMAT(o.Datum, 'yyyy. MMMM dd.', 'hu-hu') as Datum
,CONVERT(nvarchar(max), DATEPART(hour,tao.c_orakezdete)) + ':' + CONVERT(nvarchar(max)
,DATEPART(minute,tao.c_orakezdete)) as OraKezd
,f.c_nyomtatasinev as Tanar
,s.EvesSorszam as Sorszam
,tao.c_tema as Tema
FROM @Orak o
LEFT JOIN T_TANITASIORA_OSSZES tao ON tao.c_datum = o.Datum
AND tao.c_osztalycsoportid = @csoportid
AND tao.torolt = 'F'
AND tao.c_oraszam = o.Sorszam
AND tao.c_tanevid = @tanevid
LEFT JOIN @oraSorszam s ON s.Id = tao.ID
LEFT JOIN T_NAPTARINAP_OSSZES nn ON nn.c_napdatuma = o.Datum AND nn.c_tanevid = @tanevid
LEFT JOIN (SELECT distinct d.id as ID, d.c_name Nap FROM t_dictionaryitembase_osszes d) d ON d.id=nn.c_hetnapja
LEFT JOIN T_FOGLALKOZAS_OSSZES fog ON fog.id = tao.c_foglalkozasid AND fog.torolt = 'F'
LEFT JOIN T_FOGLALKOZASOK_TANAROK ft ON ft.c_foglalkozasokid = fog.id
LEFT JOIN T_FELHASZNALO_OSSZES f ON f.id = ft.c_tanarokid AND f.torolt = 'F'
ORDER BY Oraszam
--Napló mulasztás
SELECT C_HETSORSZAMA Het, C_NYOMTATASINEV Tanulo,
MAX([1]) AS [Hetfo], MAX([2]) AS [Kedd], MAX([3]) AS [Szerda],
MAX([4]) AS [Csutortok], MAX([5]) AS [Pentek], MAX([6]) AS [Szombat]
FROM (
SELECT C_HETSORSZAMA, C_NYOMTATASINEV, [0], [1], [2], [3], [4], [5], [6]
FROM (
SELECT DISTINCT n.C_NAPTARINAPID, DATEPART(dw,n.C_DATUM) AS NAP, t.C_NYOMTATASINEV, n.C_HETSORSZAMA,
'[' + STUFF((
SELECT ', ' + CAST(o.C_ORASZAM AS VARCHAR(3)) + IIF(tm.C_TIPUS = 1500, '', '(k)')
FROM T_TANULOMULASZTAS_OSSZES tm
INNER JOIN T_TANITASIORA_OSSZES o ON o.ID = tm.C_TANITASIORAKID
INNER JOIN t_osztalycsoport ocs ON ocs.id=@csoportid
WHERE n.C_NAPTARINAPID = o.C_NAPTARINAPID
AND m.C_ORATANULOIID = tm.C_ORATANULOIID
AND o.C_TANEVID = @tanevID
AND tm.C_TANEVID = @tanevID
AND (@iskolaErdekuSzamit = 1 OR C_IGAZOLASTIPUSA <> 1533)
AND tm.TOROLT='F'
ORDER BY o.C_NAPTARINAPID, o.C_ORASZAM
FOR XML PATH(''), TYPE).value('.', 'varchar(max)'),1,2,'') + '] ' + CAST(SUM(IIF(m.C_IGAZOLT = 'T', 1, 0)) AS varchar(2)) + '/' + CAST(SUM(IIF(m.C_IGAZOLT = 'T' OR m.C_TIPUS = 1499, 0, 1)) AS varchar(2)) AS hianyzas
FROM T_TANITASIORA_OSSZES n
INNER JOIN T_TANULOMULASZTAS_OSSZES m ON m.C_TANITASIORAKID = n.ID
INNER JOIN T_FELHASZNALO_OSSZES t ON t.ID = m.C_ORATANULOIID
WHERE
n.C_TANEVID = @tanevID
AND m.C_TANEVID = @tanevID
AND n.c_osztalycsoportid=@csoportId
AND (@iskolaErdekuSzamit = 1 OR C_IGAZOLASTIPUSA <> 1533)
GROUP BY n.C_NAPTARINAPID, C_ORATANULOIID, C_NYOMTATASINEV, n.C_HETSORSZAMA, n.C_DATUM) AS SUB
PIVOT
(
MAX(HIANYZAS)
FOR NAP IN ([0], [1], [2], [3], [4], [5], [6])
) AS PivotTable
) AS ASD
GROUP BY C_HETSORSZAMA, C_NYOMTATASINEV
ORDER BY C_HETSORSZAMA
--Tanuló feljegyzései
SELECT
feljegyzes.TanuloId AS Tanulo
,FORMAT(Datum, 'yyyy.MM.dd.') AS Idopont
,d.C_NAME AS Tipus
,Tartalom AS Feljegyzes
,FeljegyzoNeve AS Feljegyzo
FROM fnGetDokumentumTanulokFeljegyzesei(@tanevId, @csoportId) feljegyzes
INNER JOIN T_DICTIONARYITEMBASE_OSSZES d ON d.ID=Tipusa AND d.C_TANEVID = @tanevId
WHERE Tipusa <> 1534
--Tanuló gondviselői
SELECT 'Gondviselő ('+Rokonsag.Rokonsag+'):' as Fejlec, tcs.c_tanuloid Tanulo, g.c_nev Gondviselo, gcim.Tipus Tipus,gcim.Cim as Cim, gtel.c_telefonszam Telefon, gemail.C_EMAILCIM Email
FROM T_TANULOCSOPORT_OSSZES tcs
INNER JOIN T_GONDVISELO_OSSZES g ON g.c_tanuloid=tcs.c_tanuloid AND g.torolt='F'
LEFT JOIN (
SELECT g.id Gondviselo, dt.c_name Tipus, c.c_iranyitoszam+', '+c.c_varos+' '+c.c_kozterulet+' '+dj.c_name+' '+c.c_hazszam as Cim
FROM T_CIM_OSSZES c
INNER JOIN (SELECT distinct d.id, d.c_name FROM T_DICTIONARYITEMBASE_OSSZES d )dt ON dt.id=c.c_cimtipusa
INNER JOIN t_gondviselo_osszes g ON g.id=c.c_gondviseloid AND g.torolt='F'
INNER JOIN (SELECT distinct d.id, d.c_name FROM T_DICTIONARYITEMBASE_OSSZES d )dj ON dj.id=c.c_kozteruletjellege
)gcim ON gcim.Gondviselo=g.id
LEFT JOIN T_TELEFON_OSSZES gtel ON gtel.c_gondviseloid=g.id AND gtel.torolt='F'
LEFT JOIN T_EMAIL_OSSZES gemail ON gemail.c_gondviseloid=g.id AND gemail.torolt='F'
LEFT JOIN (SELECT distinct d.id Id, d.c_name Rokonsag FROM T_DICTIONARYITEMBASE_OSSZES d) Rokonsag ON Rokonsag.Id=g.c_rokonsagfoka
WHERE tcs.c_osztalycsoportid=@csoportId AND tcs.c_tanevid=@tanevid AND tcs.torolt='F'
DROP TABLE #MULASZTAS
END
GO

View file

@ -0,0 +1,54 @@
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
IF OBJECT_ID('[dbo].[sp_GetPedagogusOrarendOsszes]') IS NOT NULL
BEGIN
DROP PROCEDURE [dbo].[sp_GetPedagogusOrarendOsszes]
END
GO
CREATE PROCEDURE [dbo].[sp_GetPedagogusOrarendOsszes]
@tanevID int,
@intezmenyId int
AS
BEGIN
SELECT DISTINCT ia.C_NEV as intezmeny, m.C_NEV as mukodesihely, d.C_NAME as oktatasiNevelesiFeladatTipus,
ISNULL(ia.C_VAROS + ', ', '') + FORMAT(GETDATE(), 'yyyy. MMMM dd.', 'hu-hu') AS kelt
FROM T_INTEZMENY_OSSZES i
INNER JOIN T_INTEZMENYADATOK_OSSZES IA ON IA.C_INTEZMENYID=I.ID
INNER JOIN T_MUKODESIHELY_OSSZES m ON IA.C_INTEZMENYID = m.C_INTEZMENYID AND m.TOROLT = 'F'
INNER JOIN T_FELADATELLATASIHELY_OSSZES f ON m.ID = f.C_MUKODESIHELYID AND f.TOROLT = 'F'
INNER JOIN (SELECT DISTINCT ID, C_NAME FROM T_DICTIONARYITEMBASE_OSSZES) d ON d.id = f.C_OKTATASINEVELESIFELADATTIPUS
WHERE i.id=@intezmenyId AND I.TOROLT='F'
declare @tabla 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 kur CURSOR FOR
SELECT ID FROM T_ALKALMAZOTT_OSSZES a
inner join (SELECT DISTINCT c_tanarokid FROM T_FOGLALKOZASOK_TANAROK) ft on ft.c_tanarokid=a.id
where a.torolt='F' and a.C_ALTANEVID=@tanevID
DECLARE @TanarId int
OPEN kur
FETCH NEXT FROM kur INTO @TanarId
WHILE @@FETCH_STATUS = 0 BEGIN
INSERT INTO @tabla
EXEC sp_GetPedagogusOrarend @tanarid, @tanevid, @intezmenyId
FETCH NEXT FROM kur INTO @TanarId
END
CLOSE kur
DEALLOCATE kur
SELECT * from @tabla
END
GO

View file

@ -0,0 +1,178 @@
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
IF OBJECT_ID('[dbo].[sp_GetSzakmaiGyNaplo]') IS NOT NULL
BEGIN
DROP PROCEDURE [dbo].[sp_GetSzakmaiGyNaplo]
END
GO
CREATE PROCEDURE [dbo].[sp_GetSzakmaiGyNaplo]
@tanevId INT,
@intezmenyId INT,
@csoportId INT,
@iskolaErdekuSzamit BIT
AS
BEGIN
SET NOCOUNT ON;
--Kezdőoldal
select ia.c_nev as IntezmenyNev, convert(nvarchar(5), ia.c_iranyitoszam)+', '+ia.c_varos+', '+ia.c_cime as IntezmenyCim, ia.c_omkod as OMKOD, ia.c_igazgatoneve as IntezmenyVezeto, ocs.c_nev NapkozisCsoport,
isnull(f.c_nyomtatasinev,'-') as CsoportVezeto, isnull(cs.c_csoportnaploleiras,'-') as CsoportNaploLeiras, FORMAT(cs.c_csoportnaplomegnyitasa, 'yyyy. MMMM dd.', 'hu-hu') as Megnyitas,
isnull(FORMAT(cs.c_csoportnaplozarasa, 'yyyy. MMMM dd.', 'hu-hu'),'-') as Lezaras, t.c_nev as Tanev, cs.c_csoportnaploleiras as Megjegyzes
from T_INTEZMENY_OSSZES i
inner join T_INTEZMENYADATOK_OSSZES ia on ia.c_intezmenyid=i.id
inner join T_OSZTALYCSOPORT_OSSZES ocs on ocs.c_intezmenyid=i.id
inner join T_CSOPORT_OSSZES cs on cs.id=ocs.id
left join T_FELHASZNALO_OSSZES f on f.id=cs.c_csoportvezetoid
inner join T_TANEV_OSSZES t on t.id=ia.c_tanevid
where i.id=@intezmenyid and ia.c_tanevid=@tanevid and ocs.id=@csoportId
--Csoport tanulóinak osztályai
select Osztaly.Osztaly, count(c_tanuloid) Tanulo from t_tanulocsoport tcs
inner join (select tcs.c_tanuloid Tanulo, ocs.c_nev as Osztaly, tcs.c_kilepesdatum Kilepes from T_TANULOCSOPORT_OSSZES tcs
inner join T_OSZTALY_OSSZES o on o.id=tcs.c_osztalycsoportid and o.torolt='F'
inner join T_OSZTALYCSOPORT_OSSZES ocs on o.id=ocs.id
where tcs.c_kilepesdatum is null and tcs.c_intezmenyid=@intezmenyid and tcs.c_tanevid=@tanevid) osztaly on osztaly.Tanulo=tcs.c_tanuloid and tcs.TOROLT='F'
where tcs.c_osztalycsoportid=@csoportId
group by osztaly.Osztaly
DECLARE @tanulo TABLE (Tanulo int, Osztaly nvarchar(max), RovidNev nvarchar(max))
insert into @tanulo
select f.id as Tanulo, Osztaly.Osztaly, Osztaly.Osztaly RovidNev from T_TANULOCSOPORT_OSSZES tcs
inner join (select tcs.c_tanuloid Tanulo, ocs.c_nev Osztaly from t_tanulocsoport tcs
inner join t_osztaly o on o.id=tcs.c_osztalycsoportid and o.torolt='F'
inner join t_osztalycsoport ocs on ocs.id=tcs.c_osztalycsoportid
where tcs.c_kilepesdatum is null and tcs.c_tanevid=@tanevid) Osztaly on Osztaly.Tanulo=tcs.c_tanuloid and tcs.TOROLT='F'
inner join t_felhasznalo f on f.id=tcs.c_tanuloid
where tcs.c_osztalycsoportid=@csoportId
declare @datum date=getdate()
create table #OraSorszam (TanitasioraId int, OraSorszam int)
insert into #OraSorszam
EXEC [sp_GetOraSorszamByOsztaly]
@osztalyCsoportId = @csoportId,
@datum = @datum,
@intezmenyId = @intezmenyId,
@tanevId = @tanevId
declare @mulasztas table (Csoport nvarchar(1), Tanulo int, Oraszam int)
insert into @mulasztas
select 'x' Csoport, tm.c_oratanuloiid Tanulo, oes.OraSorszam AS OraSzam from T_TANULOMULASZTAS_OSSZES tm
inner join T_TANITASIORA_OSSZES tao on tm.c_tanitasiorakid=tao.id and tao.c_tanevid=@tanevid
LEFT JOIN #OraSorszam oes on oes.TanitasioraId=tao.id
where
tao.c_osztalycsoportid=@csoportId
AND tm.torolt='F'
AND tm.c_tanevid=@tanevid
AND tm.c_intezmenyid=@intezmenyid
AND (@iskolaErdekuSzamit = 1 OR (C_IGAZOLASTIPUSA <> 1533 OR C_IGAZOLASTIPUSA IS NULL))
select f.c_nyomtatasinev Tanulo, tanulo.RovidNev Osztaly, m.[1], m.[2], m.[3], m.[4], m.[5], m.[6], m.[7], m.[8], m.[9], m.[10],
m.[11], m.[12], m.[13], m.[14], m.[15], m.[16], m.[17], m.[18],m.[19],m.[20],
m.[21], m.[22], m.[23], m.[24], m.[25], m.[26], m.[27], m.[28],m.[29],m.[30],
m.[31], m.[32], m.[33], m.[34], m.[35], m.[36], m.[37], m.[38],m.[39],m.[40],
m.[41], m.[42], m.[43], m.[44], m.[45], m.[46], m.[47], m.[48],m.[49],m.[50],
osszesM.Osszes
from @tanulo tanulo
left join (select * from @mulasztas mulasztas pivot (max(Csoport) for Oraszam in ([1], [2], [3], [4], [5], [6], [7], [8], [9], [10],
[11], [12], [13], [14], [15], [16], [17], [18],[19],[20],
[21], [22], [23], [24], [25], [26], [27], [28],[29],[30],
[31], [32], [33], [34], [35], [36], [37], [38],[39],[40],
[41], [42], [43], [44], [45], [46], [47], [48],[49],[50])) pv)m on m.Tanulo=tanulo.Tanulo
inner join T_FELHASZNALO_OSSZES f on f.id=tanulo.Tanulo
left join (select Tanulo, count(Csoport) as Osszes from @mulasztas m group by Tanulo) osszesM on osszesM.Tanulo=tanulo.Tanulo
order by f.c_nyomtatasinev
--napló
declare @letszam int=(select count(tcs.c_tanuloid) from T_TANULOCSOPORT_OSSZES tcs where tcs.c_osztalycsoportid=@csoportId and tcs.Torolt='F')
select convert(nvarchar(max),datepart(year,tao.c_orakezdete))+'. '+convert(nvarchar(max),datepart(month,tao.c_orakezdete))+'. '+convert(nvarchar(max),datepart(day,tao.c_orakezdete))+'.' as Datum,
tao.c_tema as Tema, @letszam-hianyzo.Hianyzok as Letszam, f.c_nyomtatasinev as Pedagogus from T_TANITASIORA_OSSZES tao
inner join T_FOGLALKOZAS_OSSZES fog on fog.id=tao.c_foglalkozasid
inner join T_FOGLALKOZASOK_TANAROK ft on ft.c_foglalkozasokid=fog.id
left join (select tm.c_tanitasiorakid as Tanitasiora, count(tm.c_oratanuloiid) Hianyzok from T_TANULOMULASZTAS_OSSZES tm where tm.Torolt='F' group by tm.c_tanitasiorakid ) hianyzo on hianyzo.Tanitasiora=tao.id
inner join T_FELHASZNALO_OSSZES f on f.id=iif(tao.c_helyettesitotanarid is not null,tao.c_helyettesitotanarid, ft.c_tanarokid)
where tao.c_osztalycsoportid=@csoportId and tao.torolt='F' and tao.c_tanevid=@tanevid and tao.c_intezmenyid=@intezmenyid
order by tao.c_orakezdete
--hiányzások
declare @hianyzas table (Tanulo int, Osztaly nvarchar(max), Honap int, IgazoltE nvarchar(1))
insert into @hianyzas
select Tanulo, RovidNev, datepart(month,tao.c_datum) as Honap, tm.c_igazolt as IgazoltE from @tanulo tanulo
left join T_TANULOMULASZTAS_OSSZES tm on tm.c_oratanuloiid=tanulo.Tanulo and tm.torolt='F' and tm.c_tanevid=@tanevid
left join T_TANITASIORA_OSSZES tao on tao.id=tm.c_tanitasiorakid and tao.c_tanevid=@tanevid
where
tao.c_osztalycsoportid=@csoportId
AND tao.torolt='F'
AND (@iskolaErdekuSzamit = 1 OR (C_IGAZOLASTIPUSA <> 1533 OR C_IGAZOLASTIPUSA IS NULL))
select f.c_nyomtatasinev as Tanulo, tanulo.RovidNev Osztaly,
--igazolt
iif(i.[1]=0,null, i.[1]) as [1], iif(i.[2]=0,null, i.[2]) as [2], iif(i.[3]=0,null, i.[3]) as [3], iif(i.[4]=0,null, i.[4]) as [4], iif(i.[5]=0,null, i.[5]) as [5],iif(i.[6]=0,null, i.[6]) as [6],
iif(i.[7]=0,null, i.[7]) as [7], iif(i.[8]=0,null, i.[8]) as [8], iif(i.[9]=0,null, i.[9]) as [9], iif(i.[10]=0,null, i.[10]) as [10], iif(i.[11]=0,null, i.[11]) as [11], iif(i.[12]=0,null, i.[12]) as [12],
--igazolatlan
iif(ni.[1]=0,null, ni.[1]) as n1, iif(ni.[2]=0,null, ni.[2]) as n2, iif(ni.[3]=0,null, ni.[3]) as n3, iif(ni.[4]=0,null, ni.[4]) as n4, iif(ni.[5]=0,null, ni.[5]) as n5,iif(ni.[6]=0,null, ni.[6]) as n6,
iif(ni.[7]=0,null, ni.[7]) as n7, iif(ni.[8]=0,null, ni.[8]) as n8, iif(ni.[9]=0,null, ni.[9]) as n9, iif(ni.[10]=0,null, ni.[10]) as n10, iif(ni.[11]=0,null, ni.[11]) as n11, iif(ni.[12]=0,null, ni.[12]) as n12,
igazolt.Igazolt, igazolatlan.Igazolatlan
from @tanulo tanulo
left join (select pv.* from @hianyzas hianyzas pivot (count(Honap) for Honap in ([1], [2], [3], [4], [5], [6], [7], [8], [9], [10], [11], [12]))pv where pv.IgazoltE='T')i on tanulo.Tanulo=i.Tanulo
left join (select pv.* from @hianyzas hianyzas pivot (count(Honap) for Honap in ([1], [2], [3], [4], [5], [6], [7], [8], [9], [10], [11], [12]))pv where pv.IgazoltE='F')ni on tanulo.Tanulo=ni.Tanulo
left join (select hianyzas.Tanulo Tanulo, count(IgazoltE) as Igazolt from @hianyzas hianyzas where hianyzas.IgazoltE='T' group by hianyzas.Tanulo) igazolt on igazolt.Tanulo=tanulo.Tanulo
left join (select hianyzas.Tanulo Tanulo, count(IgazoltE) as Igazolatlan from @hianyzas hianyzas where hianyzas.IgazoltE='F' group by hianyzas.Tanulo) igazolatlan on igazolatlan.Tanulo=tanulo.Tanulo
inner join T_FELHASZNALO_OSSZES f on f.id=tanulo.Tanulo
--Mulasztások összesen
declare @hianyzasOssz table (Osztaly int, Honap int, IgazoltE nvarchar(1))
insert into @hianyzasOssz
select @csoportId, datepart(month,tao.c_datum) as Honap, tm.c_igazolt as IgazoltE from @tanulo tanulo
left join T_TANULOMULASZTAS_OSSZES tm on tm.c_oratanuloiid=tanulo.Tanulo and tm.torolt='F' and tm.c_tanevid=@tanevid
left join T_TANITASIORA_OSSZES tao on tao.id=tm.c_tanitasiorakid and tao.c_tanevid=@tanevid
where
tao.c_osztalycsoportid=@csoportId
and tao.torolt='F'
AND (@iskolaErdekuSzamit = 1 OR (C_IGAZOLASTIPUSA <> 1533 OR C_IGAZOLASTIPUSA IS NULL))
declare @igazoltH table (Csoport int, [1] int, [2] int, [3] int, [4] int, [5] int, [6] int, [7] int, [8] int, [9] int, [10] int,
[11] int, [12] int)
insert into @igazoltH
select @csoportId, iif(i.[1]=0,null, i.[1]) as [1], iif(i.[2]=0,null, i.[2]) as [2], iif(i.[3]=0,null, i.[3]) as [3], iif(i.[4]=0,null, i.[4]) as [4], iif(i.[5]=0,null, i.[5]) as [5],iif(i.[6]=0,null, i.[6]) as [6],
iif(i.[7]=0,null, i.[7]) as [7], iif(i.[8]=0,null, i.[8]) as [8], iif(i.[9]=0,null, i.[9]) as [9], iif(i.[10]=0,null, i.[10]) as [10], iif(i.[11]=0,null, i.[11]) as [11], iif(i.[12]=0,null, i.[12]) as [12]
from @hianyzasOssz ho pivot (count(Honap) for Honap in ([1], [2], [3], [4], [5], [6], [7], [8], [9], [10], [11], [12]))i where i.IgazoltE='T'
--Mulasztott órák összesen
declare @igazolatlanH table (Csoport int, [1] int, [2] int, [3] int, [4] int, [5] int, [6] int, [7] int, [8] int, [9] int, [10] int,
[11] int, [12] int)
insert into @igazolatlanH
select @csoportId, iif(ni.[1]=0,null, ni.[1]) as n1, iif(ni.[2]=0,null, ni.[2]) as n2, iif(ni.[3]=0,null, ni.[3]) as n3, iif(ni.[4]=0,null, ni.[4]) as n4, iif(ni.[5]=0,null, ni.[5]) as n5,iif(ni.[6]=0,null, ni.[6]) as n6,
iif(ni.[7]=0,null, ni.[7]) as n7, iif(ni.[8]=0,null, ni.[8]) as n8, iif(ni.[9]=0,null, ni.[9]) as n9, iif(ni.[10]=0,null, ni.[10]) as n10, iif(ni.[11]=0,null, ni.[11]) as n11, iif(ni.[12]=0,null, ni.[12]) as n12
from @hianyzasOssz ho pivot (count(Honap) for Honap in ([1], [2], [3], [4], [5], [6], [7], [8], [9], [10], [11], [12]))ni where ni.IgazoltE='F'
select iif(i.[1]=0,null, i.[1]) as [1], iif(i.[2]=0,null, i.[2]) as [2], iif(i.[3]=0,null, i.[3]) as [3], iif(i.[4]=0,null, i.[4]) as [4], iif(i.[5]=0,null, i.[5]) as [5],iif(i.[6]=0,null, i.[6]) as [6],
iif(i.[7]=0,null, i.[7]) as [7], iif(i.[8]=0,null, i.[8]) as [8], iif(i.[9]=0,null, i.[9]) as [9], iif(i.[10]=0,null, i.[10]) as [10], iif(i.[11]=0,null, i.[11]) as [11], iif(i.[12]=0,null, i.[12]) as [12],
iif(ni.[1]=0,null, ni.[1]) as n1, iif(ni.[2]=0,null, ni.[2]) as n2, iif(ni.[3]=0,null, ni.[3]) as n3, iif(ni.[4]=0,null, ni.[4]) as n4, iif(ni.[5]=0,null, ni.[5]) as n5,iif(ni.[6]=0,null, ni.[6]) as n6,
iif(ni.[7]=0,null, ni.[7]) as n7, iif(ni.[8]=0,null, ni.[8]) as n8, iif(ni.[9]=0,null, ni.[9]) as n9, iif(ni.[10]=0,null, ni.[10]) as n10, iif(ni.[11]=0,null, ni.[11]) as n11, iif(ni.[12]=0,null, ni.[12]) as n12
from @igazolth i
left join @igazolatlanH ni on i.Csoport=ni.csoport
--Mulasztó tanulók szama
declare @Igazolt table (Csoport Int, Osszes int)
insert into @Igazolt
select @csoportId as Id, count(Tanulo) as IgazoltOsszes from (select distinct tanulo from @hianyzas where IgazoltE='T')m
select i.Osszes IgazoltOsszes, ni.Osszes IgazolatlanOsszes from @Igazolt i
left join (select @csoportId as Id, count(Tanulo) as Osszes from (select distinct tanulo from @hianyzas where IgazoltE='F')m) ni on ni.Id=i.Csoport
--Mulasztott órák összesen-összesen
declare @IgazoltOsszesOsszes table (Csoport Int, Osszes int)
insert into @IgazoltOsszesOsszes
select @csoportId, count(IgazoltE) from @hianyzasOssz where IgazoltE='T'
select ioo.Osszes IgazoltOsszesOsszes, nioo.Osszes as IgazolatlanOsszesOsszes from @IgazoltOsszesOsszes ioo
left join (select @csoportId as Id, count(IgazoltE) Osszes from @hianyzasOssz where IgazoltE='F') nioo on nioo.Id=ioo.Csoport
END
GO

View file

@ -0,0 +1,69 @@
-- =============================================
-- Description: Rudlof Kristóf - Tanár órarendi lefedettség
-- =============================================
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
IF OBJECT_ID('[dbo].[sp_GetTanarOrarendLefedettseg]') IS NOT NULL
BEGIN
DROP PROCEDURE [dbo].[sp_GetTanarOrarendLefedettseg]
END
GO
CREATE PROCEDURE [dbo].[sp_GetTanarOrarendLefedettseg]
@intezmenyId int,
@tanevId int
AS
BEGIN
-- SET NOCOUNT ON added to prevent extra result sets from interfering with SELECT statements.
SET NOCOUNT ON;
declare @AktivtanevId int = (select Id from T_TANEV_OSSZES tanev where c_aktiv='T' and c_intezmenyId=@intezmenyId and Torolt='F')
declare @HetEleje date
declare @HetVege date
if (@tanevId=@AktivtanevId)
begin
set @HetEleje =(select distinct nh.c_hetkezdonapja from T_NAPTARIHET_OSSZES nh where getdate()>nh.c_hetkezdonapja and getdate()<nh.c_hetutolsonapja and nh.torolt='F' and nh.c_tanevid=@tanevid and nh.c_intezmenyId=@intezmenyId)
set @HetVege =(select distinct nh.c_hetutolsonapja from T_NAPTARIHET_OSSZES nh where getdate()>nh.c_hetkezdonapja and getdate()<nh.c_hetutolsonapja and nh.torolt='F' and nh.c_tanevid=@tanevid and nh.c_intezmenyId=@intezmenyId)
end
begin
declare @UtolsoNap date = (select c_napdatuma from t_naptarinap_osszes where c_naptipusa=1395 and c_intezmenyId=@intezmenyId and c_tanevId=@tanevid and torolt='F')
set @HetEleje =(select distinct nh.c_hetkezdonapja from T_NAPTARIHET_OSSZES nh where @UtolsoNap>nh.c_hetkezdonapja and @UtolsoNap<nh.c_hetutolsonapja and nh.torolt='F' and nh.c_tanevid=@tanevid and nh.c_intezmenyId=@intezmenyId)
set @HetVege =(select distinct nh.c_hetutolsonapja from T_NAPTARIHET_OSSZES nh where @UtolsoNap>nh.c_hetkezdonapja and @UtolsoNap<nh.c_hetutolsonapja and nh.torolt='F' and nh.c_tanevid=@tanevid and nh.c_intezmenyId=@intezmenyId)
end
--órarendi lefedettség
create table #csoportok (CsoportId int, Pedagogus nvarchar(max), CsoportTipus nvarchar(max), Oraszam float, Hetirend nvarchar(max))
insert into #csoportok
select distinct cs.id, f.c_nyomtatasinev, d.c_name, fog.c_oraszam, Hetirend.c_name from T_CSOPORT_OSSZES cs
inner join T_FOGLALKOZAS_OSSZES fog on fog.c_osztalycsoportid=cs.id and fog.c_tanevid=@tanevid and fog.torolt='F'
inner join T_ORARENDIORA_OSSZES oo on oo.c_foglalkozasid=fog.id and ((oo.c_oraervenyessegkezdete<=@HetEleje and oo.c_oraervenyessegkezdete>=@HetEleje) or
(oo.c_oraervenyessegkezdete<=@HetVege and oo.c_oraervenyessegvege>=@HetEleje))
and oo.c_tanevid=@tanevid and oo.torolt='F'
inner join T_FOGLALKOZASOK_TANAROK ft on ft.c_foglalkozasokid=fog.id
inner join T_FELHASZNALO_OSSZES f on f.id=ft.c_tanarokid and f.c_intezmenyid=@intezmenyId and f.c_tanevid=@tanevid and f.torolt='F'
inner join (select distinct d.id, d.c_name from T_DICTIONARYITEMBASE_OSSZES d)d on d.id=cs.c_tipusa
inner join (select distinct d.id, d.c_name from T_DICTIONARYITEMBASE_OSSZES d)Hetirend on Hetirend.id=oo.c_hetirend
where cs.torolt='F' and cs.c_alintezmenyid=@intezmenyId and cs.c_altanevid=@tanevId
select Pedagogus COLUMN456, CsoportTipus COLUMN444, sum(Oraszam) COLUMN3670 from #csoportok cs group by Pedagogus, CsoportTipus order by Pedagogus
--órarendi lefedettség hetirenden
declare @cols as nvarchar(max),
@query as nvarchar(max);
select distinct @cols= isnull(@cols + ',','') +quotename(Hetirend) from #csoportok
set @query='select Pedagogus as COLUMN456, CsoportTipus COLUMN444, '+@cols+' from #csoportok cs pivot (sum(Oraszam) for Hetirend in ('+@cols+')) pv'
EXEC sp_executesql @query;
drop table #csoportok
END
GO

View file

@ -0,0 +1,200 @@
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
IF OBJECT_ID('[dbo].[sp_GetTanoranKivuliNaplo]') IS NOT NULL
BEGIN
DROP PROCEDURE [dbo].[sp_GetTanoranKivuliNaplo]
END
GO
CREATE PROCEDURE [dbo].[sp_GetTanoranKivuliNaplo]
@tanevId INT,
@intezmenyId INT,
@csoportId INT,
@iskolaErdekuSzamit BIT
AS
BEGIN
SET NOCOUNT ON;
--Fejlecoldal (Fejléc)
select ia.c_nev as IntezmenyNev, convert(nvarchar(5), ia.c_iranyitoszam)+', '+ia.c_varos+', '+ia.c_cime as IntezmenyCim, ia.c_omkod as OMKOD, ia.c_igazgatoneve as IntezmenyVezeto, ocs.c_nev Csoport,
isnull(f.c_nyomtatasinev,'-') as CsoportVezeto, isnull(cs.c_csoportnaploleiras,'-') as CsoportNaploLeiras, FORMAT(cs.c_csoportnaplomegnyitasa, 'yyyy. MMMM dd.', 'hu-hu') as Megnyitas,
isnull(FORMAT(cs.c_csoportnaplozarasa, 'yyyy. MMMM dd.', 'hu-hu'),'-') as Lezaras, t.c_nev as Tanev, cs.c_csoportnaploleiras as Megjegyzes from T_INTEZMENY_OSSZES i
inner join T_INTEZMENYADATOK_OSSZES ia on ia.c_intezmenyid=i.id
inner join T_OSZTALYCSOPORT_OSSZES ocs on ocs.c_intezmenyid=i.id
inner join T_CSOPORT_OSSZES cs on cs.id=ocs.id
left join T_FELHASZNALO_OSSZES f on f.id=cs.c_csoportvezetoid
inner join T_TANEV_OSSZES t on t.id=ia.c_tanevid
where i.id=@intezmenyid and ia.c_tanevid=@tanevid and ocs.id=@csoportId
--Osztaly (Csoport tanulóinak osztályai)
select Osztaly.Osztaly Osztaly, count(c_tanuloid) Tanulo from t_tanulocsoport tcs
inner join (select tcs.c_tanuloid Tanulo, ocs.c_nev as Osztaly, tcs.c_kilepesdatum Kilepes from T_TANULOCSOPORT_OSSZES tcs
inner join T_OSZTALY_OSSZES o on o.id=tcs.c_osztalycsoportid and o.torolt='F'
inner join T_OSZTALYCSOPORT_OSSZES ocs on o.id=ocs.id
where tcs.TOROLT='F') osztaly on osztaly.Tanulo=tcs.c_tanuloid
where tcs.c_osztalycsoportid=@csoportId and tcs.TOROLT='F' and tcs.c_kilepesdatum is null
group by osztaly.Osztaly
--Mulasztasok
declare @datum date=getdate()
create table #OraSorszam (TanitasioraId int, OraSorszam int)
insert into #OraSorszam
EXEC [sp_GetOraSorszamByOsztaly]
@osztalyCsoportId = @csoportId,
@datum = @datum,
@intezmenyId = @intezmenyId,
@tanevId = @tanevId
DECLARE @tanulo TABLE (Tanulo int, Osztaly nvarchar(max))
DECLARE @FelevVege date=(select top 1 c_datum from T_TANEVRENDJE_OSSZES te where te.c_naptipusa=1400 and te.c_intezmenyid=@intezmenyid and te.c_tanevid=@tanevid and te.torolt='F')
insert into @tanulo
select f.id as Tanulo, Osztaly.Osztaly Osztaly from T_TANULOCSOPORT_OSSZES tcs
inner join (select tcs.c_tanuloid Tanulo, ocs.c_nev Osztaly from T_TANULOCSOPORT_OSSZES tcs
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=tcs.c_osztalycsoportid --and ocs.c_intezmenyid=@intezmenyid and ocs.c_tanevid=@tanevid
where tcs.c_kilepesdatum is null and tcs.c_tanevid=@tanevid) Osztaly on Osztaly.Tanulo=tcs.c_tanuloid
inner join t_felhasznalo f on f.id=tcs.c_tanuloid
where tcs.c_osztalycsoportid=@csoportId and tcs.TOROLT='F'
declare @mulasztas table (Csoport nvarchar(1), Tanulo int, Oraszam int, Felev int)
insert into @mulasztas
select 'x' Csoport, tm.c_oratanuloiid Tanulo, oes.OraSorszam OraSzam, iif(tao.c_datum<@FelevVege,1,2) from T_TANULOMULASZTAS_OSSZES tm
inner join T_TANITASIORA_OSSZES tao on tm.c_tanitasiorakid=tao.id
left join #OraSorszam oes on oes.TanitasioraId=tao.id
where
tao.c_osztalycsoportid=@csoportId
AND tao.torolt='F' and tm.torolt='F'
AND tm.c_tanevid=@tanevid
AND tm.c_intezmenyid=@intezmenyid
AND (@iskolaErdekuSzamit = 1 OR (C_IGAZOLASTIPUSA <> 1533 OR C_IGAZOLASTIPUSA IS NULL))
select f.c_nyomtatasinev Tanulo, tanulo.Osztaly,
m.[1], m.[2], m.[3], m.[4], m.[5], m.[6], m.[7], m.[8], m.[9], m.[10],
m.[11], m.[12], m.[13], m.[14], m.[15], m.[16], m.[17], m.[18],m.[19],m.[20],
m.[21], m.[22], m.[23], m.[24], m.[25], m.[26], m.[27], m.[28],m.[29],m.[30],
m.[31], m.[32], m.[33], m.[34], m.[35], m.[36], m.[37], m.[38],m.[39],m.[40],
m.[41], m.[42], m.[43], m.[44], m.[45], m.[46], m.[47], m.[48],m.[49],m.[50],
osszesM.Osszes, /*1. félév*/
m2.[1] m1, m2.[2] m2, m2.[3] m3, m2.[4] m4, m2.[5] m5, m2.[6] m6, m2.[7] m7, m2.[8] m8, m2.[9] m9, m2.[10] m10,
m2.[11] m11, m2.[12] m12, m2.[13] m13, m2.[14] m14, m2.[15] m15, m2.[16] m16, m2.[17] m17, m2.[18] m18, m2.[19] m19, m2.[20] m20,
m2.[21] m21, m2.[22] m22, m2.[23] m23, m2.[24] m24, m2.[25] m25, m2.[26] m26, m2.[27] m27, m2.[28] m28, m2.[29] m29, m2.[30] m30,
m2.[31] m31, m2.[32] m32, m2.[33] m33, m2.[34] m34, m2.[35] m35, m2.[36] m36, m2.[37] m37, m2.[38] m38, m2.[39] m39, m2.[40] m40,
m2.[41] m41, m2.[42] m42, m2.[43] m43, m2.[44] m44, m2.[45] m45, m2.[46] m46, m2.[47] m47, m2.[48] m48, m2.[49] m49, m2.[50] m50,
osszesM2.Osszes OsszesM/*2. félév*/
from @tanulo tanulo
/* 1. félév*/
left join (select * from @mulasztas mulasztas pivot (max(Csoport) for Oraszam in ([1], [2], [3], [4], [5], [6], [7], [8], [9], [10],
[11], [12], [13], [14], [15], [16], [17], [18],[19],[20],
[21], [22], [23], [24], [25], [26], [27], [28],[29],[30],
[31], [32], [33], [34], [35], [36], [37], [38],[39],[40],
[41], [42], [43], [44], [45], [46], [47], [48],[49],[50])) pv where pv.Felev=1)m on m.Tanulo=tanulo.Tanulo
left join (select * from @mulasztas mulasztas pivot (max(Csoport) for Oraszam in ([1], [2], [3], [4], [5], [6], [7], [8], [9], [10],
[11], [12], [13], [14], [15], [16], [17], [18],[19],[20],
[21], [22], [23], [24], [25], [26], [27], [28],[29],[30],
[31], [32], [33], [34], [35], [36], [37], [38],[39],[40],
[41], [42], [43], [44], [45], [46], [47], [48],[49],[50])) pv where pv.Felev=2)m2 on m2.Tanulo=tanulo.Tanulo
inner join T_FELHASZNALO_OSSZES f on f.id=tanulo.Tanulo
left join (select Tanulo, count(Csoport) as Osszes from @mulasztas m where Felev=1 group by Tanulo) osszesM on osszesM.Tanulo=tanulo.Tanulo
left join (select Tanulo, count(Csoport) as Osszes from @mulasztas m where Felev=2 group by Tanulo) osszesM2 on osszesM2.Tanulo=tanulo.Tanulo
order by f.c_nyomtatasinev
--Napló
declare @letszam int=(select count(tcs.c_tanuloid) from T_TANULOCSOPORT_OSSZES tcs where tcs.c_osztalycsoportid=@csoportId and tcs.TOROLT='F' and tcs.c_kilepesdatum is null)
select convert(nvarchar(max),datepart(year,tao.c_orakezdete))+'. '+convert(nvarchar(max),datepart(month,tao.c_orakezdete))+'. '+convert(nvarchar(max),datepart(day,tao.c_orakezdete))+'.' as Datum,
tao.c_tema as Tema, @letszam-isnull(hianyzo.Hianyzok,0) as Letszam, f.c_nyomtatasinev as Pedagogus from T_TANITASIORA_OSSZES tao
inner join T_FOGLALKOZAS_OSSZES fog on fog.id=tao.c_foglalkozasid
inner join T_FOGLALKOZASOK_TANAROK ft on ft.c_foglalkozasokid=fog.id
left join (select tm.c_tanitasiorakid as Tanitasiora, count(tm.c_oratanuloiid) Hianyzok from T_TANULOMULASZTAS_OSSZES tm where tm.torolt='F' group by tm.c_tanitasiorakid ) hianyzo on hianyzo.Tanitasiora=tao.id
inner join T_FELHASZNALO_OSSZES f on f.id=iif(tao.c_helyettesitotanarid is not null,tao.c_helyettesitotanarid, ft.c_tanarokid)
where tao.c_osztalycsoportid=@csoportId and tao.torolt='F'
order by tao.c_orakezdete
--Hiányzások
declare @hianyzas table (Tanulo int, Osztaly nvarchar(max), Honap int, IgazoltE nvarchar(1))
insert into @hianyzas
select Tanulo, Osztaly, datepart(month,tao.c_datum) as Honap, tm.c_igazolt as IgazoltE from @tanulo tanulo
left join T_TANULOMULASZTAS_OSSZES tm on tm.c_oratanuloiid=tanulo.Tanulo and tm.torolt='F' and tm.c_tanevid=@tanevid and tm.c_intezmenyid=@intezmenyid
left join T_TANITASIORA_OSSZES tao on tao.id=tm.c_tanitasiorakid and tao.c_tanevid=@tanevid and tao.c_intezmenyid=@intezmenyid
where
tao.c_osztalycsoportid=@csoportId
AND (@iskolaErdekuSzamit = 1 OR (C_IGAZOLASTIPUSA <> 1533 OR C_IGAZOLASTIPUSA IS NULL))
and tao.torolt='F'
select f.c_nyomtatasinev as Tanulo, tanulo.Osztaly,
--igazolt
iif(i.[1]=0,null, i.[1]) as [1], iif(i.[2]=0,null, i.[2]) as [2], iif(i.[3]=0,null, i.[3]) as [3], iif(i.[4]=0,null, i.[4]) as [4], iif(i.[5]=0,null, i.[5]) as [5],iif(i.[6]=0,null, i.[6]) as [6],
iif(i.[7]=0,null, i.[7]) as [7], iif(i.[8]=0,null, i.[8]) as [8], iif(i.[9]=0,null, i.[9]) as [9], iif(i.[10]=0,null, i.[10]) as [10], iif(i.[11]=0,null, i.[11]) as [11], iif(i.[12]=0,null, i.[12]) as [12],
--igazolatlan
iif(ni.[1]=0,null, ni.[1]) as n1, iif(ni.[2]=0,null, ni.[2]) as n2, iif(ni.[3]=0,null, ni.[3]) as n3, iif(ni.[4]=0,null, ni.[4]) as n4, iif(ni.[5]=0,null, ni.[5]) as n5,iif(ni.[6]=0,null, ni.[6]) as n6,
iif(ni.[7]=0,null, ni.[7]) as n7, iif(ni.[8]=0,null, ni.[8]) as n8, iif(ni.[9]=0,null, ni.[9]) as n9, iif(ni.[10]=0,null, ni.[10]) as n10, iif(ni.[11]=0,null, ni.[11]) as n11, iif(ni.[12]=0,null, ni.[12]) as n12,
igazolt.Igazolt, igazolatlan.Igazolatlan
from @tanulo tanulo
left join (select pv.* from @hianyzas hianyzas pivot (count(Honap) for Honap in ([1], [2], [3], [4], [5], [6], [7], [8], [9], [10], [11], [12]))pv where pv.IgazoltE='T')i on tanulo.Tanulo=i.Tanulo
left join (select pv.* from @hianyzas hianyzas pivot (count(Honap) for Honap in ([1], [2], [3], [4], [5], [6], [7], [8], [9], [10], [11], [12]))pv where pv.IgazoltE='F')ni on tanulo.Tanulo=ni.Tanulo
left join (select hianyzas.Tanulo Tanulo, count(IgazoltE) as Igazolt from @hianyzas hianyzas where hianyzas.IgazoltE='T' group by hianyzas.Tanulo) igazolt on igazolt.Tanulo=tanulo.Tanulo
left join (select hianyzas.Tanulo Tanulo, count(IgazoltE) as Igazolatlan from @hianyzas hianyzas where hianyzas.IgazoltE='F' group by hianyzas.Tanulo) igazolatlan on igazolatlan.Tanulo=tanulo.Tanulo
inner join t_felhasznalo f on f.id=tanulo.Tanulo
--Hiányzások (Összesítő)
declare @hianyzasOssz table (Osztaly int, Honap int, IgazoltE nvarchar(1))
insert into @hianyzasOssz
select @csoportId, datepart(month,tao.c_datum) as Honap, tm.c_igazolt as IgazoltE from @tanulo tanulo
left join T_TANULOMULASZTAS_OSSZES tm on tm.c_oratanuloiid=tanulo.Tanulo and tm.torolt='F' and tm.c_tanevid=@tanevid --and tm.c_intezmenyid=@intezmenyid
left join T_TANITASIORA_OSSZES tao on tao.id=tm.c_tanitasiorakid and tao.c_tanevid=@tanevid --and tao.c_intezmenyid=@intezmenyid
where
tao.c_osztalycsoportid=@csoportId
and tao.torolt='F'
AND (@iskolaErdekuSzamit = 1 OR (C_IGAZOLASTIPUSA <> 1533 OR C_IGAZOLASTIPUSA IS NULL))
declare @igazoltH table (Csoport int, [1] int, [2] int, [3] int, [4] int, [5] int, [6] int, [7] int, [8] int, [9] int, [10] int,
[11] int, [12] int)
insert into @igazoltH
select @csoportId, iif(i.[1]=0,null, i.[1]) as [1], iif(i.[2]=0,null, i.[2]) as [2], iif(i.[3]=0,null, i.[3]) as [3], iif(i.[4]=0,null, i.[4]) as [4], iif(i.[5]=0,null, i.[5]) as [5],iif(i.[6]=0,null, i.[6]) as [6],
iif(i.[7]=0,null, i.[7]) as [7], iif(i.[8]=0,null, i.[8]) as [8], iif(i.[9]=0,null, i.[9]) as [9], iif(i.[10]=0,null, i.[10]) as [10], iif(i.[11]=0,null, i.[11]) as [11], iif(i.[12]=0,null, i.[12]) as [12]
from @hianyzasOssz ho pivot (count(Honap) for Honap in ([1], [2], [3], [4], [5], [6], [7], [8], [9], [10], [11], [12]))i where i.IgazoltE='T'
declare @igazolatlanH table (Csoport int, [1] int, [2] int, [3] int, [4] int, [5] int, [6] int, [7] int, [8] int, [9] int, [10] int,
[11] int, [12] int)
insert into @igazolatlanH
select @csoportId, iif(ni.[1]=0,null, ni.[1]) as n1, iif(ni.[2]=0,null, ni.[2]) as n2, iif(ni.[3]=0,null, ni.[3]) as n3, iif(ni.[4]=0,null, ni.[4]) as n4, iif(ni.[5]=0,null, ni.[5]) as n5,iif(ni.[6]=0,null, ni.[6]) as n6,
iif(ni.[7]=0,null, ni.[7]) as n7, iif(ni.[8]=0,null, ni.[8]) as n8, iif(ni.[9]=0,null, ni.[9]) as n9, iif(ni.[10]=0,null, ni.[10]) as n10, iif(ni.[11]=0,null, ni.[11]) as n11, iif(ni.[12]=0,null, ni.[12]) as n12
from @hianyzasOssz ho pivot (count(Honap) for Honap in ([1], [2], [3], [4], [5], [6], [7], [8], [9], [10], [11], [12]))ni where ni.IgazoltE='F'
--Hiányzás (Mulasztott órák összesen)
select iif(i.[1]=0,null, i.[1]) as [1], iif(i.[2]=0,null, i.[2]) as [2], iif(i.[3]=0,null, i.[3]) as [3], iif(i.[4]=0,null, i.[4]) as [4], iif(i.[5]=0,null, i.[5]) as [5],iif(i.[6]=0,null, i.[6]) as [6],
iif(i.[7]=0,null, i.[7]) as [7], iif(i.[8]=0,null, i.[8]) as [8], iif(i.[9]=0,null, i.[9]) as [9], iif(i.[10]=0,null, i.[10]) as [10], iif(i.[11]=0,null, i.[11]) as [11], iif(i.[12]=0,null, i.[12]) as [12],
iif(ni.[1]=0,null, ni.[1]) as n1, iif(ni.[2]=0,null, ni.[2]) as n2, iif(ni.[3]=0,null, ni.[3]) as n3, iif(ni.[4]=0,null, ni.[4]) as n4, iif(ni.[5]=0,null, ni.[5]) as n5,iif(ni.[6]=0,null, ni.[6]) as n6,
iif(ni.[7]=0,null, ni.[7]) as n7, iif(ni.[8]=0,null, ni.[8]) as n8, iif(ni.[9]=0,null, ni.[9]) as n9, iif(ni.[10]=0,null, ni.[10]) as n10, iif(ni.[11]=0,null, ni.[11]) as n11, iif(ni.[12]=0,null, ni.[12]) as n12
from @igazolth i
left join @igazolatlanH ni on ni.Csoport=i.csoport
--Hiányzás (Mulasztó tanulók száma)
declare @Igazolt table (Csoport Int, Osszes int)
insert into @Igazolt
select @csoportId as Id, count(Tanulo) as IgazoltOsszes from (select distinct tanulo from @hianyzas where IgazoltE='T')m
select i.Osszes IgazoltOsszes, ni.Osszes IgazolatlanOsszes from @Igazolt i
left join (select @csoportId as Id, count(Tanulo) as Osszes from (select distinct tanulo from @hianyzas where IgazoltE='F')m) ni on ni.Id=i.Csoport
--Hiányzás (Mulasztott órák Összesen-Összesen)
declare @IgazoltOsszesOsszes table (Csoport Int, Osszes int)
insert into @IgazoltOsszesOsszes
select @csoportId, count(IgazoltE) from @hianyzasOssz where IgazoltE='T'
select ioo.Osszes IgazoltOsszesOsszes, nioo.Osszes as IgazolatlanOsszesOsszes from @IgazoltOsszesOsszes ioo
left join (select @csoportId as Id, count(IgazoltE) Osszes from @hianyzasOssz where IgazoltE='F') nioo on nioo.Id=ioo.Csoport
END
GO

View file

@ -0,0 +1,94 @@
GO
/****** Object: StoredProcedure [dbo].[sp_GetTantargyakElmaradtOraiTanaronkent] Script Date: 2016.01.28. 16:21:17 ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
IF OBJECT_ID('[dbo].[sp_GetTantargyakElmaradtOraiTanaronkent]') IS NOT NULL
BEGIN
DROP PROCEDURE [dbo].[sp_GetTantargyakElmaradtOraiTanaronkent]
END
GO
-- =============================================
-- Author: <Kelemen Attila>
-- Create date: <2016. 01. 07.>
-- Description: <Elmaradt órák tanáronként, tantárgyanként>
-- =============================================
CREATE PROCEDURE [dbo].[sp_GetTantargyakElmaradtOraiTanaronkent]
@tanevID int,
@intezmenyId int
AS
BEGIN
-- SET NOCOUNT ON added to prevent extra result sets from
-- interfering with SELECT statements.
SET NOCOUNT ON;
select * from
--Évfolyamonként
(select
T_FELHASZNALO_OSSZES.ID TanarID,
T_FELHASZNALO_OSSZES.C_NYOMTATASINEV TanarNev,
T_TANTARGY_OSSZES.C_NEV Tantargy,
T_OSZTALYCSOPORT_OSSZES.C_EVFOLYAMTIPUSA Evfolyam,
COUNT(T_TANITASIORA_OSSZES.ID) MegtartottOrak
FROM T_TANTARGY_OSSZES
right JOIN T_TANITASIORA_OSSZES on T_TANTARGY_OSSZES.ID = T_TANITASIORA_OSSZES.C_TANTARGYID
INNER JOIN T_FOGLALKOZAS_OSSZES ON T_TANTARGY_OSSZES.ID = T_FOGLALKOZAS_OSSZES.C_TANTARGYID
INNER JOIN T_OSZTALYCSOPORT_OSSZES ON T_FOGLALKOZAS_OSSZES.C_OSZTALYCSOPORTID = T_OSZTALYCSOPORT_OSSZES.ID
INNER JOIN T_OSZTALY_OSSZES ON T_OSZTALYCSOPORT_OSSZES.ID = T_OSZTALY_OSSZES.ID
INNER JOIN T_FOGLALKOZASOK_TANAROK ON T_FOGLALKOZAS_OSSZES.ID = T_FOGLALKOZASOK_TANAROK.C_FOGLALKOZASOKID
INNER JOIN T_FELHASZNALO_OSSZES ON T_FELHASZNALO_OSSZES.ID = T_FOGLALKOZASOK_TANAROK.C_TANAROKID
WHERE
T_TANTARGY_OSSZES.TOROLT='F'
AND T_TANITASIORA_OSSZES.TOROLT='F'
AND T_FOGLALKOZAS_OSSZES.TOROLT='F'
AND T_OSZTALYCSOPORT_OSSZES.TOROLT='F'
AND T_OSZTALY_OSSZES.TOROLT='F'
AND T_FOGLALKOZAS_OSSZES.C_FOGLALKOZASTIPUSA = 1339 --Tanórai foglalkozás
AND T_TANITASIORA_OSSZES.C_MEGTARTOTT='F'
AND T_TANTARGY_OSSZES.C_TANEVID = @tanevID
AND T_TANTARGY_OSSZES.C_TANEVID = @intezmenyId
GROUP BY T_FELHASZNALO_OSSZES.ID, T_TANTARGY_OSSZES.C_NEV, T_OSZTALYCSOPORT_OSSZES.C_EVFOLYAMTIPUSA, T_FELHASZNALO_OSSZES.C_NYOMTATASINEV
UNION
--Összes
select
T_FELHASZNALO_OSSZES.ID TanarID,
T_FELHASZNALO_OSSZES.C_NYOMTATASINEV TanarNeve,
T_TANTARGY_OSSZES.C_NEV Tantargy,
NULL Evfolyam,
COUNT(T_TANITASIORA_OSSZES.ID) MegtartottOrak
FROM T_TANTARGY_OSSZES
INNER JOIN T_TANITASIORA_OSSZES on T_TANTARGY_OSSZES.ID = T_TANITASIORA_OSSZES.C_TANTARGYID
INNER JOIN T_FOGLALKOZAS_OSSZES ON T_TANTARGY_OSSZES.ID = T_FOGLALKOZAS_OSSZES.C_TANTARGYID
INNER JOIN T_OSZTALYCSOPORT_OSSZES ON T_FOGLALKOZAS_OSSZES.C_OSZTALYCSOPORTID = T_OSZTALYCSOPORT_OSSZES.ID
INNER JOIN T_OSZTALY_OSSZES ON T_OSZTALYCSOPORT_OSSZES.ID = T_OSZTALY_OSSZES.ID
INNER JOIN T_FOGLALKOZASOK_TANAROK ON T_FOGLALKOZAS_OSSZES.ID = T_FOGLALKOZASOK_TANAROK.C_FOGLALKOZASOKID
INNER JOIN T_FELHASZNALO_OSSZES ON T_FELHASZNALO_OSSZES.ID = T_FOGLALKOZASOK_TANAROK.C_TANAROKID
WHERE
T_TANTARGY_OSSZES.TOROLT='F'
AND T_TANITASIORA_OSSZES.TOROLT='F'
AND T_FOGLALKOZAS_OSSZES.TOROLT='F'
AND T_OSZTALYCSOPORT_OSSZES.TOROLT='F'
AND T_OSZTALY_OSSZES.TOROLT='F'
AND T_TANITASIORA_OSSZES.C_MEGTARTOTT='F'
AND T_TANTARGY_OSSZES.C_TANEVID = @tanevID
AND T_TANTARGY_OSSZES.C_TANEVID = @intezmenyId
AND T_FOGLALKOZAS_OSSZES.C_FOGLALKOZASTIPUSA = 1339 --Tanórai foglalkozás
GROUP BY T_FELHASZNALO_OSSZES.ID, T_TANTARGY_OSSZES.C_NEV, T_FELHASZNALO_OSSZES.C_NYOMTATASINEV) Orak
order by TanarNev, Tantargy, Evfolyam
END
GO

View file

@ -0,0 +1,960 @@
IF OBJECT_ID('sp_ImportASC') IS NOT NULL BEGIN
DROP PROCEDURE sp_ImportASC
END
GO
CREATE PROCEDURE sp_ImportASC
@importXml xml,
@regiTorlese bit,
-- @ttf bit,
@ervenyessegMegadva bit,
@feladatellatasiHelyId int,
@tanevId int,
@intezmenyId int,
@userId int
AS
BEGIN
SET NOCOUNT ON
SET XACT_ABORT ON
DECLARE @mukodsesiHely int
DECLARE @osztalyCsoport table (
osztalyCsoportID nvarchar(32),
nev nvarchar(100),
osztalyCsoport varchar(2),
id int
)
INSERT INTO @osztalyCsoport (osztalyCsoportID, nev, osztalyCsoport)
SELECT
sor.value('(OsztalyId)[1]', 'nvarchar(32)') AS osztalcsoportId,
sor.value('(Nev)[1]', 'varchar(100)') AS nev,
'O'
FROM @importXml.nodes('/AscImport/OsztalyLista/Osztaly') as sorok(sor)
INSERT INTO @osztalyCsoport (osztalyCsoportID, nev, osztalyCsoport)
SELECT
sor.value('(Id)[1]', 'nvarchar(32)') AS osztalcsoportId,
sor.value('(Nev)[1]', 'varchar(100)') AS nev,
'CS'
FROM @importXml.nodes('/AscImport/CsoportLista/Csoport') as sorok(sor)
UPDATE x
SET x.id = ocs.ID
FROM @osztalyCsoport x
INNER JOIN T_OSZTALYCSOPORT_OSSZES ocs ON x.nev = ocs.C_NEV AND ocs.C_TANEVID = @tanevId
WHERE ocs.TOROLT = 'F'
DECLARE @tantargy table (
tantargyId nvarchar(32),
nev nvarchar(100),
osztalyCsoport varchar(2),
id int
)
INSERT INTO @tantargy (tantargyId, nev)
SELECT
sor.value('(TantargyId)[1]', 'nvarchar(32)') AS tantargyId,
sor.value('(Nev)[1]', 'varchar(100)') AS nev
FROM @importXml.nodes('/AscImport/TantargyLista/Tantargy') as sorok(sor)
UPDATE x
SET x.id = t.ID
FROM @tantargy x
INNER JOIN T_TANTARGY_OSSZES t ON x.nev = t.C_NEV AND t.C_TANEVID = @tanevId
WHERE t.TOROLT = 'F'
/* TEREM temp TÁBLÁBA */
DECLARE @terem TABLE (
teremId nvarchar(32),
nev nvarchar(255),
kapacitas int,
id int
)
INSERT INTO @terem (teremId, nev, kapacitas)
SELECT
sor.value('(TeremId)[1]', 'nvarchar(32)') AS teremId,
sor.value('(Nev)[1]', 'nvarchar(255)') AS nev,
sor.value('(Kapacitas)[1]', 'int') AS kapacitas
FROM @importXml.nodes('/AscImport/TeremLista/Terem') as sorok(sor)
UPDATE x
SET x.id = t.ID
FROM @terem x
INNER JOIN T_TEREM_OSSZES t ON x.nev = t.C_NEV AND t.C_TANEVID = @tanevId
WHERE t.TOROLT = 'F'
/* HETIREND temp TÁBLÁBA */
DECLARE @hetirend TABLE (
hetirendId nvarchar(32),
nev nvarchar(255),
id int
)
INSERT INTO @hetirend (hetirendId, nev)
SELECT
sor.value('(HetirendId)[1]', 'nvarchar(32)') AS hetirendId,
sor.value('(Nev)[1]', 'nvarchar(255)') AS nev
FROM @importXml.nodes('/AscImport/HetirendLista/Hetirend') as sorok(sor)
UPDATE x
SET x.id = d.ID
FROM @hetirend x
INNER JOIN T_DICTIONARYITEMBASE_OSSZES d ON x.nev = d.C_NAME AND d.C_TANEVID = @tanevId AND C_TYPE = 'HetiRendTipus'
/* CSENGETÉSIREND temp TÁBLÁBA */
DECLARE @csengetesiRendOra TABLE (
csengetesiRendOraId nvarchar(32),
starttime time,
endtime time,
sorszam int,
id int
)
INSERT INTO @csengetesiRendOra (csengetesiRendOraId, starttime, endtime, sorszam)
SELECT
sor.value('(CsengetesiRendOraId)[1]', 'nvarchar(32)') AS csengetesiRendOraId,
sor.value('(Starttime)[1]', 'time') AS starttime,
sor.value('(Endtime)[1]', 'time') AS endtime,
sor.value('(Sorszam)[1]', 'int') AS sorszam
FROM @importXml.nodes('/AscImport/CsengetesiRendOraLista/CsengetesiRendOra') as sorok(sor)
UPDATE x
SET x.id = cs.ID
FROM @csengetesiRendOra x
INNER JOIN T_CSENGETESIRENDORA_OSSZES cs ON x.sorszam = cs.C_ORASZAM AND cs.C_TANEVID = @tanevId
WHERE cs.C_CSENGETESIRENDID = (SELECT MIN(ID) FROM T_CSENGETESIREND_OSSZES csr WHERE /*csr.C_IMPORTALT = 'T' AND*/ csr.C_TANEVID = @tanevId)
DECLARE @tanar TABLE (
tanarId nvarchar(32),
nev nvarchar(100),
id int
)
INSERT INTO @tanar (tanarId, nev)
SELECT
sor.value('(Id)[1]', 'nvarchar(32)') AS tanarId,
sor.value('(Nev)[1]', 'varchar(100)') AS tanarNev
FROM @importXml.nodes('/AscImport/TanarLista/Tanar') as sorok(sor)
UPDATE x
SET x.id = f.ID
FROM @tanar x
INNER JOIN T_FELHASZNALO_OSSZES f ON f.C_NYOMTATASINEV = x.nev
WHERE EXISTS (SELECT 1 FROM T_ALKALMAZOTT_OSSZES a WHERE a.ID = f.ID AND a.C_ALINTEZMENYID = f.C_INTEZMENYID AND a.C_ALTANEVID = f.C_TANEVID)
AND C_TANEVID = @tanevId
AND C_INTEZMENYID = @intezmenyId
/* ÓRARENDIÓRA temp TÁBLÁBA */
DECLARE @orarendiOra TABLE (
teremID nvarchar(32),
tanarID nvarchar(32),
hetNapja nvarchar(10),
hetirendID nvarchar(32),
osztalyID nvarchar(32),
csoportID nvarchar(32),
tantargyID nvarchar(32),
hetiOraszam float,
sorszam int,
ervenyessegKezdete datetime,
ervenyessegVege datetime
)
INSERT INTO @orarendiOra (
teremID,
tanarID,
hetNapja,
hetirendID,
osztalyID,
csoportID,
tantargyID,
hetiOraszam,
sorszam,
ervenyessegKezdete,
ervenyessegVege
)
SELECT
sor.value('(TeremId)[1]', 'nvarchar(32)') AS teremID,
sor.value('(TanarId)[1]', 'nvarchar(32)') AS tanarID,
sor.value('(HetNapja)[1]', 'nvarchar(10)') AS hetNapja,
sor.value('(HetirendId)[1]', 'nvarchar(32)') AS hetirendID,
NULLIF(sor.value('(OsztalyId)[1]', 'nvarchar(32)'), '') AS osztalyID,
NULLIF(sor.value('(CsoportId)[1]', 'nvarchar(32)'), '') AS csoportID,
sor.value('(TantargyId)[1]', 'nvarchar(32)') AS tantargyID,
sor.value('(HetiOraszam)[1]', 'float') AS hetiOraszam,
sor.value('(Sorszam)[1]', 'int') AS sorszam,
sor.value('(ErvenyessegKezdete)[1]', 'datetime') AS ervenyessegKezdete,
IIF(sor.value('(ErvenyessegVege)[1]', 'datetime') = '19000101', NULL, sor.value('(ErvenyessegVege)[1]', 'datetime')) AS ervenyessegVege
FROM @importXml.nodes('/AscImport/OrarendiOraLista/OrarendiOra') as sorok(sor)
DECLARE
@utolsoTannap datetime
,@utolsoTannapVegzos datetime
-- Utolsó tanitási nap
SELECT @utolsoTannap = C_DATUM + 1
FROM T_TANEVRENDJE_OSSZES
WHERE C_NAPTIPUSA = 1395
AND C_INTEZMENYID = @intezmenyId
AND C_TANEVID = @tanevId
-- Utolsó tanitási nap végzősöknek
SELECT @utolsoTannapVegzos = C_DATUM + 1
FROM T_TANEVRENDJE_OSSZES
WHERE C_NAPTIPUSA = 1402
AND C_TANEVID = @tanevId
AND C_INTEZMENYID = @intezmenyId
UPDATE o
SET ervenyessegVege = CASE WHEN ocsk.C_VEGZOSEVFOLYAM = 'F' THEN @utolsoTannap ELSE @utolsoTannapVegzos END
FROM @orarendiOra o
INNER JOIN @osztalyCsoport ocs ON o.osztalyID = ocs.osztalyCsoportID
INNER JOIN T_OSZTALYCSOPORT_OSSZES ocsk ON ocs.id = ocsk.ID
WHERE ocs.osztalyCsoport = 'O'
AND ervenyessegVege IS NULL
AND ocsk.C_TANEVID = @tanevId
UPDATE @orarendiOra
SET ervenyessegVege = @utolsoTannap
WHERE ervenyessegVege IS NULL
DECLARE @linkTable TABLE (
insertedID int, tempId nvarchar(32), act nvarchar(20)
)
BEGIN TRY
BEGIN TRANSACTION
SELECT @mukodsesiHely = MIN(ID) FROM T_MUKODESIHELY_OSSZES WHERE C_TANEVID = @tanevId
MERGE T_TEREM_OSSZES trg
USING (
SELECT * FROM @terem WHERE nev <> '-') src ON src.ID = trg.ID AND trg.C_TANEVID = @tanevId
WHEN MATCHED THEN
UPDATE SET
trg.C_KAPACITAS = src.kapacitas
,trg.SERIAL = trg.SERIAL + 1
,trg.LASTCHANGED = GETDATE()
,trg.MODIFIER = @userId
WHEN NOT MATCHED THEN
INSERT (
C_JELLEG
,C_NEV
,C_MUKODESIHELYID
,C_INTEZMENYID
,C_TANEVID
,TOROLT
,SERIAL
,LASTCHANGED
,CREATED
,MODIFIER
,CREATOR
) VALUES (
181 -- osztályterem
,src.nev
,@mukodsesiHely
,@intezmenyId
,@tanevId
,'F'
,0
,NULL
,GETDATE()
,@userId
,@userId
)
OUTPUT INSERTED.ID, src.teremId, $action
INTO @linkTable(insertedID, tempId, act);
UPDATE x
SET x.id = y.insertedID
FROM @terem x
INNER JOIN @linkTable y ON x.teremId = y.tempId
WHERE x.ID IS NULL
DELETE FROM @linktable
SET @feladatellatasiHelyId = ISNULL(@feladatellatasiHelyId,
(SELECT MIN(ID)
FROM T_FELADATELLATASIHELY_OSSZES
WHERE C_INTEZMENYID = @intezmenyID
AND C_TANEVID = @tanevID)
)
MERGE T_OSZTALYCSOPORT_OSSZES trg
USING (SELECT * FROM @osztalyCsoport WHERE ID IS NULL) src ON 1 = 2
WHEN NOT MATCHED THEN
INSERT (
C_MEGJEGYZES
,C_NEV
,C_VEGZOSEVFOLYAM
,C_EVFOLYAMTIPUSA
,C_IMPORTALT
,C_TERVEZETTLETSZAM
,C_TEREMID
,C_FELADATELLATASIHELYID
,C_INTEZMENYID
,C_TANEVID
,TOROLT
,SERIAL
,LASTCHANGED
,CREATED
,MODIFIER
,CREATOR
) VALUES (
NULL -- C_MEGJEGYZES - nvarchar(255)
,src.nev -- C_NEV - nvarchar(255)
,'F' -- C_VEGZOSEVFOLYAM - char(1)
,NULL -- C_EVFOLYAMTIPUSA - int
,'T' -- C_IMPORTALT - char(1)
,NULL -- C_TERVEZETTLETSZAM - int
,NULL -- C_TEREMID - int
,@feladatellatasiHelyId -- C_FELADATELLATASIHELYID - int
,@intezmenyId -- C_INTEZMENYID - int
,@tanevId -- C_TANEVID - int
,'F' -- TOROLT - char(1)
,0 -- SERIAL - int
,GETDATE() -- LASTCHANGED - datetime
,GETDATE() -- CREATED - datetime
,@userId -- MODIFIER - int
,@userId -- CREATOR - int
)
OUTPUT INSERTED.ID, src.osztalycsoportId, $action
INTO @linkTable(insertedID, tempId, act);
UPDATE x
SET x.id = y.insertedID
FROM @osztalyCsoport x
INNER JOIN @linkTable y ON x.osztalycsoportId = y.tempId
WHERE x.ID IS NULL
INSERT INTO T_OSZTALY_OSSZES (
ID
,C_KEPZESIFORMA
,C_OSZTALYNAPLOLEIRASA
,C_OSZTALYNAPLOMEGNYITASA
,C_OSZTALYNAPLOZARASA
,C_OSZTALYFONOKID
,C_OFOHELYETTESID
,C_TANTERVID
,C_ALINTEZMENYID
,C_ALTANEVID
,TOROLT
,SERIAL
,LASTCHANGED
,CREATED
,MODIFIER
,CREATOR
) SELECT
x.id AS ID -- ID - int
,1096 AS C_KEPZESIFORMA -- C_KEPZESIFORMA - int
,NULL AS C_OSZTALYNAPLOLEIRASA -- C_OSZTALYNAPLOLEIRASA - nvarchar(MAX)
,NULL AS C_OSZTALYNAPLOMEGNYITASA -- C_OSZTALYNAPLOMEGNYITASA - datetime
,NULL AS C_OSZTALYNAPLOZARASA -- C_OSZTALYNAPLOZARASA - datetime
,NULL AS C_OSZTALYFONOKID -- C_OSZTALYFONOKID - int
,NULL AS C_OFOHELYETTESID -- C_OFOHELYETTESID - int
,NULL AS C_TANTERVID -- C_TANTERVID - int
,@intezmenyId AS C_ALINTEZMENYID -- C_ALINTEZMENYID - int
,@tanevId AS C_ALTANEVID -- C_ALTANEVID - int
,'F' AS TOROLT -- TOROLT - char(1)
,0 AS SERIAL -- SERIAL - int
,GETDATE() AS LASTCHANGED -- LASTCHANGED - datetime
,GETDATE() AS CREATED -- CREATED - datetime
,@userId AS MODIFIER -- MODIFIER - int
,@userId AS CREATOR -- CREATOR - int
FROM @osztalyCsoport x
INNER JOIN @linktable y ON x.id = y.insertedID
WHERE osztalyCsoport = 'O'
INSERT INTO T_CSOPORT_OSSZES (
ID
,C_TIPUSA
,C_CSOPORTNAPLOLEIRAS
,C_CSOPORTNAPLOMEGNYITASA
,C_CSOPORTNAPLOZARASA
,C_CSOPORTVEZETOID
,C_KIZAROCSOPORTID
,C_OSZTALYBONTASID
,C_ALINTEZMENYID
,C_ALTANEVID
,TOROLT
,SERIAL
,LASTCHANGED
,CREATED
,MODIFIER
,CREATOR
) SELECT
x.id AS ID -- ID - int
,1031 AS C_TIPUSA -- C_TIPUSA - int
,NULL AS C_CSOPORTNAPLOLEIRAS -- C_CSOPORTNAPLOLEIRAS - nvarchar(MAX)
,NULL AS C_CSOPORTNAPLOMEGNYITASA -- C_CSOPORTNAPLOMEGNYITASA - datetime
,NULL AS C_CSOPORTNAPLOZARASA -- C_CSOPORTNAPLOZARASA - datetime
,NULL AS C_CSOPORTVEZETOID -- C_CSOPORTVEZETOID - int
,NULL AS C_KIZAROCSOPORTID -- C_KIZAROCSOPORTID - int
,NULL AS C_OSZTALYBONTASID -- C_OSZTALYBONTASID - int
,@intezmenyId AS C_ALINTEZMENYID -- C_ALINTEZMENYID - int
,@tanevId AS C_ALTANEVID -- C_ALTANEVID - int
,'F' AS TOROLT -- TOROLT - char(1)
,0 AS SERIAL -- SERIAL - int
,GETDATE() AS LASTCHANGED -- LASTCHANGED - datetime
,GETDATE() AS CREATED -- CREATED - datetime
,@userId AS MODIFIER -- MODIFIER - int
,@userId AS CREATOR -- CREATOR - int
FROM @osztalyCsoport x
INNER JOIN @linktable y ON x.id = y.insertedID
WHERE osztalyCsoport = 'CS'
DELETE FROM @linktable
MERGE T_TANTARGY_OSSZES trg
USING (SELECT * FROM @tantargy WHERE ID IS NULL) src ON 1 = 2
WHEN NOT MATCHED THEN
INSERT (
C_GYAKORLATI
,C_NEV
,C_ROVIDNEV
,C_TARGYKATEGORIA
,C_ALTANTARGYKENTNYOMTATVANYBAN
,C_NEVNYOMTATVANYBAN
,C_TANORANKIVULI
,C_IMPORTALT
,C_FOTARGYE
,C_FOTARGYID
,C_INTEZMENYID
,C_TANEVID
,TOROLT
,SERIAL
,LASTCHANGED
,CREATED
,MODIFIER
,CREATOR
) VALUES (
'F' -- C_GYAKORLATI - char(1)
,nev -- C_NEV - nvarchar(255)
,LEFT(nev, 20) -- C_ROVIDNEV - nvarchar(20)
,1197 -- C_TARGYKATEGORIA - int
,NULL -- C_ALTANTARGYKENTNYOMTATVANYBAN - char(1)
,NULL -- C_NEVNYOMTATVANYBAN - nvarchar(255)
,'F' -- C_TANORANKIVULI - char(1)
,'T' -- C_IMPORTALT - char(1)
,'F' -- C_FOTARGYE - char(1)
,NULL -- C_FOTARGYID - int
,@intezmenyId -- C_INTEZMENYID - int
,@tanevId -- C_TANEVID - int
,'F' -- TOROLT - char(1)
,0 -- SERIAL - int
,GETDATE() -- LASTCHANGED - datetime
,GETDATE() -- CREATED - datetime
,@userId -- MODIFIER - int
,@userId -- CREATOR - int
)
OUTPUT INSERTED.ID, src.tantargyId, $action
INTO @linkTable(insertedID, tempId, act);
UPDATE x
SET x.id = y.insertedID
FROM @tantargy x
INNER JOIN @linkTable y ON x.tantargyId = y.tempId
WHERE x.ID IS NULL
DELETE FROM @linktable
DECLARE @foglalkozas TABLE (
foglalozasId int IDENTITY(1, 1)
,tantargyId int
,tanarId int
,osztalyCsoportId int
,hetiOraszam float
,nev nvarchar(255)
,id int
)
INSERT INTO @foglalkozas (
tantargyId
,tanarId
,osztalyCsoportId
,hetiOraszam
,nev
,id
) SELECT
tt.ID
,fh.ID
,ISNULL(cs.ID, o.ID)
,oraszam
,tt.nev + ' - ' + ISNULL(cs.nev, o.nev) + ' - ' + x.tanar AS nev
,x.existItemId AS id
FROM (
SELECT
NULLIF(sor.value('(osztaly)[1]', 'nvarchar(32)'), '') AS osztaly
,NULLIF(sor.value('(csoport)[1]', 'nvarchar(32)'), '') AS csoport
,sor.value('(tantargy)[1]', 'nvarchar(32)') AS tantargy
,sor.value('(oraszam)[1]', 'float') AS oraszam
,sor.value('(tanar)[1]', 'nvarchar(32)') AS tanar
,NULLIF(sor.value('(existItemId)[1]', 'nvarchar(32)'), 0) AS existItemId
FROM @importXml.nodes('/AscImport/TantargyfelosztasLista/Tantargyfelosztas') as sorok(sor)
) x
LEFT JOIN @osztalyCsoport cs ON cs.nev = x.csoport
LEFT JOIN @osztalyCsoport o ON o.nev = x.osztaly
INNER JOIN @tantargy tt ON tt.nev = x.tantargy
INNER JOIN T_FELHASZNALO_OSSZES fh ON fh.C_NYOMTATASINEV = x.tanar AND fh.C_TANEVID = @tanevId
WHERE EXISTS (SELECT 1 FROM T_ALKALMAZOTT_OSSZES a WHERE a.ID = fh.ID AND a.C_ALTANEVID = fh.C_TANEVID)
/* Az importtal bekerült foglalkozások beszúrása */
MERGE T_FOGLALKOZAS_OSSZES trg
USING (select * FROM @foglalkozas WHERE ID IS NULL) src ON 1 = 2
WHEN NOT MATCHED THEN
INSERT (
C_FOGLALKOZASTIPUSA
,C_ORASZAM
,C_NEV
,C_ERTEKELESKELL
,C_MULASZTASKELL
,C_TANARFELVEHETI
,C_IMPORTALT
,C_TANTARGYID
,C_OSZTALYCSOPORTID
,C_INTEZMENYID
,C_TANEVID
,TOROLT
,SERIAL
,LASTCHANGED
,CREATED
,MODIFIER
,CREATOR
) VALUES (
1338 -- C_FOGLALKOZASTIPUSA - int
,hetiOraszam -- C_ORASZAM - numeric(10, 2)
,nev -- C_NEV - nvarchar(255)
,'T' -- C_ERTEKELESKELL - char(1)
,'T' -- C_MULASZTASKELL - char(1)
,'T' -- C_TANARFELVEHETI - char(1)
,'T' -- C_IMPORTALT - char(1)
,tantargyId -- C_TANTARGYID - int
,osztalyCsoportId -- C_OSZTALYCSOPORTID - int
,@intezmenyId -- C_INTEZMENYID - int
,@tanevId -- C_TANEVID - int
,'F' -- TOROLT - char(1)
,0 -- SERIAL - int
,GETDATE() -- LASTCHANGED - datetime
,GETDATE() -- CREATED - datetime
,@userId -- MODIFIER - int
,@userId -- CREATOR - int
)
OUTPUT INSERTED.ID, src.foglalozasId, $action
INTO @linkTable(insertedID, tempId, act);
UPDATE x
SET x.id = y.insertedID
FROM @foglalkozas x
INNER JOIN @linkTable y ON x.foglalozasId = y.tempId
WHERE x.ID IS NULL
DELETE FROM @linktable
INSERT INTO T_FOGLALKOZASOK_TANAROK (
C_FOGLALKOZASOKID
,C_TANAROKID
) SELECT
id AS C_FOGLALKOZASOKID -- C_FOGLALKOZASOKID - int
,tanarId AS C_TANAROKID -- C_TANAROKID - int
FROM @foglalkozas f
WHERE id IS NOT NULL
AND NOT EXISTS (SELECT 1 FROM T_FOGLALKOZASOK_TANAROK ft WHERE f.ID = ft.C_FOGLALKOZASOKID)
/* Az importtal bekerült foglalkozások beszúrása */
INSERT INTO @foglalkozas (
tantargyId
,tanarId
,osztalyCsoportId
,hetiOraszam
,nev
,id
) SELECT
tt.id AS tantargyId
,a.id AS tanarId
,ocs.id AS osztalyCsoportId
,COUNT(1) AS hetiOraszam
,MIN(tt.nev) + ' - ' + MIN(ocs.nev) + ' - ' + MIN(a.nev) AS nev
,MIN(ff.ID) AS id
FROM @orarendiOra o
INNER JOIN @tanar a ON a.tanarID = o.tanarID
INNER JOIN @tantargy tt ON tt.tantargyID = o.tantargyID
INNER JOIN @osztalyCsoport ocs ON (ocs.osztalyCsoportID = o.CsoportId AND ocs.osztalyCsoport = 'CS') --OR (ocs.osztalyCsoportID = o.OsztalyId AND ocs.osztalyCsoport = 'O')
LEFT JOIN (
SELECT f.ID, f.C_TANTARGYID, f.C_OSZTALYCSOPORTID, ft.C_TANAROKID
FROM T_FOGLALKOZAS_OSSZES f
INNER JOIN T_FOGLALKOZASOK_TANAROK ft ON ft.C_FOGLALKOZASOKID = f.ID
WHERE f.TOROLT = 'F'
AND f.C_TANEVID = @tanevId
) ff
ON ff.C_TANTARGYID = tt.ID
AND ff.C_TANAROKID = a.ID
AND ff.C_OSZTALYCSOPORTID = ocs.ID
GROUP BY tt.id, a.id, ocs.id
INSERT INTO @foglalkozas (
tantargyId
,tanarId
,osztalyCsoportId
,hetiOraszam
,nev
,id
) SELECT
tt.id AS tantargyId
,a.id AS tanarId
,ocs.id AS osztalyCsoportId
,COUNT(1) AS hetiOraszam
,MIN(tt.nev) + ' - ' + MIN(ocs.nev) + ' - ' + MIN(a.nev) AS nev
,MIN(ff.ID) AS id
FROM @orarendiOra o
INNER JOIN @tanar a ON a.tanarID = o.tanarID
INNER JOIN @tantargy tt ON tt.tantargyID = o.tantargyID
INNER JOIN @osztalyCsoport ocs ON (ocs.osztalyCsoportID = o.OsztalyId AND ocs.osztalyCsoport = 'O') AND o.csoportId IS NULL --OR (ocs.osztalyCsoportID = o.OsztalyId AND ocs.osztalyCsoport = 'O')
LEFT JOIN (
SELECT f.ID, f.C_TANTARGYID, f.C_OSZTALYCSOPORTID, ft.C_TANAROKID
FROM T_FOGLALKOZAS_OSSZES f
INNER JOIN T_FOGLALKOZASOK_TANAROK ft ON ft.C_FOGLALKOZASOKID = f.ID
WHERE f.TOROLT = 'F' AND f.C_TANEVID = @tanevId
) ff ON ff.C_TANTARGYID = tt.ID
AND ff.C_TANAROKID = a.ID
AND ff.C_OSZTALYCSOPORTID = ocs.ID
GROUP BY tt.id, a.id, ocs.id
/* Az órarendi órából keletkező foglalkozások beszúrása */
MERGE T_FOGLALKOZAS_OSSZES trg
USING (SELECT * FROM @foglalkozas WHERE ID IS NULL) src ON 1 = 2
WHEN NOT MATCHED THEN
INSERT (
C_FOGLALKOZASTIPUSA
,C_ORASZAM
,C_NEV
,C_ERTEKELESKELL
,C_MULASZTASKELL
,C_TANARFELVEHETI
,C_IMPORTALT
,C_TANTARGYID
,C_OSZTALYCSOPORTID
,C_INTEZMENYID
,C_TANEVID
,TOROLT
,SERIAL
,LASTCHANGED
,CREATED
,MODIFIER
,CREATOR
) VALUES (
1338 -- C_FOGLALKOZASTIPUSA - int
,hetiOraszam -- C_ORASZAM - numeric(10, 2)
,nev -- C_NEV - nvarchar(255)
,'T' -- C_ERTEKELESKELL - char(1)
,'T' -- C_MULASZTASKELL - char(1)
,'T' -- C_TANARFELVEHETI - char(1)
,'T' -- C_IMPORTALT - char(1)
,tantargyId -- C_TANTARGYID - int
,osztalyCsoportId -- C_OSZTALYCSOPORTID - int
,@intezmenyId -- C_INTEZMENYID - int
,@tanevId -- C_TANEVID - int
,'F' -- TOROLT - char(1)
,0 -- SERIAL - int
,GETDATE() -- LASTCHANGED - datetime
,GETDATE() -- CREATED - datetime
,@userId -- MODIFIER - int
,@userId -- CREATOR - int
)
OUTPUT INSERTED.ID, src.foglalozasId, $action
INTO @linkTable(insertedID, tempId, act);
UPDATE x
SET x.id = y.insertedID
FROM @foglalkozas x
INNER JOIN @linkTable y ON x.foglalozasId = y.tempId
WHERE x.ID IS NULL
DELETE FROM @linktable
INSERT INTO T_FOGLALKOZASOK_TANAROK (
C_FOGLALKOZASOKID
,C_TANAROKID
) SELECT
id AS C_FOGLALKOZASOKID -- C_FOGLALKOZASOKID - int
,tanarId AS C_TANAROKID -- C_TANAROKID - int
FROM @foglalkozas f
WHERE id IS NOT NULL
AND NOT EXISTS (SELECT 1 FROM T_FOGLALKOZASOK_TANAROK ft WHERE f.ID = ft.C_FOGLALKOZASOKID)
/* T_HETIRENDTIPUS INSERT */
SELECT @mukodsesiHely = MIN(ID) FROM T_MUKODESIHELY_OSSZES WHERE C_TANEVID = @tanevId
MERGE T_DICTIONARYITEMBASE_OSSZES trg
USING @hetirend src ON src.ID = trg.ID AND trg.C_INTEZMENYID = @intezmenyid AND trg.C_TANEVID = @tanevId
WHEN NOT MATCHED THEN
INSERT (
C_VALUE
,C_NAME
,C_VISIBLE
,C_TYPE
,C_INTEZMENYID
,C_TANEVID
,TOROLT
,SERIAL
,LASTCHANGED
,CREATED
,MODIFIER
,CREATOR
) VALUES (
0
,src.nev + ' (importálva: ' + CONVERT(varchar(20), GETDATE(), 120) + ')'
,'T'
,'HetirendTipus'
,@intezmenyID
,@tanevID
,'F'
,0
,NULL
,GETDATE()
,NULL
,@userId
)
OUTPUT INSERTED.ID, src.hetirendID, $action
INTO @linkTable(insertedID, tempId, act);
UPDATE x
SET x.id = y.insertedID
FROM @hetirend x
INNER JOIN @linkTable y ON x.hetirendId = y.tempId
WHERE x.ID IS NULL;
INSERT INTO T_HETIRENDTIPUS_OSSZES (
ID
,C_ALINTEZMENYID
,C_ALTANEVID
,TOROLT
,SERIAL
,LASTCHANGED
,CREATED
,MODIFIER
,CREATOR
) SELECT
x.ID AS ID -- ID - int
,@intezmenyId AS C_ALINTEZMENYID -- C_ALINTEZMENYID - int
,@tanevId AS C_ALTANEVID -- C_ALTANEVID - int
,'F' AS TOROLT -- TOROLT - char(1)
,0 AS SERIAL -- SERIAL - int
,NULL AS LASTCHANGED -- LASTCHANGED - datetime
,GETDATE() AS CREATED -- CREATED - datetime
,NULL AS MODIFIER -- MODIFIER - int
,@userId AS CREATOR -- CREATOR - int
FROM @hetirend x
WHERE NOT EXISTS (SELECT 1 FROM T_HETIRENDTIPUS_OSSZES ht WHERE ht.ID = x.ID AND C_ALTANEVID = @tanevId)
DECLARE @ids TABLE (
id int
)
DECLARE @ervenyessegKezdete datetime
/* T_ORARENDIORA INSERT */
IF @regiTorlese = 1 BEGIN
SELECT TOP(1) @ervenyessegKezdete = ervenyessegKezdete
FROM @orarendiOra
IF @ervenyessegMegadva = 1 BEGIN
UPDATE T_ORARENDIORA_OSSZES
SET
C_ORAERVENYESSEGVEGE = @ervenyessegKezdete
,SERIAL += 1
,LASTCHANGED = GETDATE()
,MODIFIER = @userId
WHERE C_ORAERVENYESSEGVEGE > @ervenyessegKezdete
AND C_TANEVID = @tanevId
AND C_ORAERVENYESSEGVEGE <> C_ORAERVENYESSEGKEZDETE
AND TOROLT = 'F'
AND C_ORAERVENYESSEGKEZDETE < @ervenyessegKezdete
END
ELSE BEGIN
UPDATE T_ORARENDIORA_OSSZES
SET TOROLT = 'T'
,SERIAL += 1
,LASTCHANGED = GETDATE()
,MODIFIER = @userId
WHERE TOROLT = 'F'
AND C_TANEVID = @tanevId
AND C_ORAERVENYESSEGVEGE <> C_ORAERVENYESSEGKEZDETE
END
END
DECLARE @csengetesiRendId int
SELECT @csengetesiRendId = ID FROM T_CSENGETESIREND_OSSZES WHERE C_AKTIV = 'T' AND C_TANEVID = @tanevId
INSERT INTO T_ORARENDIORA_OSSZES (
C_HETIREND
,C_HETNAPJA
,C_ORASZAM
,C_ORAERVENYESSEGKEZDETE
,C_INTEZMENYID
,C_TANEVID
,C_BONTOTT
,C_ORAERVENYESSEGVEGE
,C_ORAKEZDETE
,C_ORAVEGE
,C_TEREMID
,C_FOGLALKOZASID
,C_CSENGETESIRENDORAID
,C_TANTARGYID
,C_OSZTALYCSOPORTID
,C_TANARID
,C_ORATULAJDONOSID
,TOROLT
,SERIAL
,LASTCHANGED
,CREATED
,MODIFIER
,CREATOR
,C_IMPORTALT
) SELECT --'T_ORARENDIORA',
h.id AS C_HETIREND
,CASE o.hetNapja
WHEN 'Hétfő' THEN 1408
WHEN 'Kedd' THEN 1409
WHEN 'Szerda' THEN 1410
WHEN 'Csütörtök' THEN 1411
WHEN 'Péntek' THEN 1412
WHEN 'Szombat' THEN 1413
WHEN 'Vasárnap' THEN 1414
ELSE 1407
END AS C_HETNAPJA -- ?
,csro.C_ORASZAM AS C_ORASZAM
,o.ervenyessegKezdete AS C_ORAERVENYESSEGKEZDETE
,@intezmenyID AS C_INTEZMENYID
,@tanevId AS C_TANEVID
,'F' AS C_BONTOTT
,o.ervenyessegVege AS C_ORAERVENYESSEGVEGE
,NULL AS C_ORAKEZDETE
,NULL AS C_ORAVEGE
,t.id AS C_TEREMID
,ff.ID AS C_FOGLALKOZASID -- ?
,csro.ID AS C_CSENGETESIRENDORAID
,tt.ID AS C_TANTARGYID -- ?
,oszt.ID AS C_OSZTALYCSOPORTID -- ?
,a.ID AS C_TANARID -- ?
,@userId AS C_ORATULAJDONOSID -- ?
,'F' AS TOROLT
,0 AS SERIAL
,NULL AS LASTCHANGED
,GETDATE() AS CREATED
,NULL AS MODIFIER
,@userId AS CREATOR
,'T' AS C_IMPORTALT
FROM @orarendiOra o
INNER JOIN @terem t ON t.teremID = o.teremID
INNER JOIN @tanar a ON a.tanarID = o.tanarID
INNER JOIN @tantargy tt ON tt.tantargyID = o.tantargyID
INNER JOIN @osztalyCsoport oszt ON oszt.osztalyCsoportID = o.OsztalyId AND oszt.osztalyCsoport = 'O' AND o.csoportId IS NULL
INNER JOIN (
SELECT f.ID, f.C_TANTARGYID, f.C_OSZTALYCSOPORTID, ft.C_TANAROKID
FROM T_FOGLALKOZAS_OSSZES f
INNER JOIN T_FOGLALKOZASOK_TANAROK ft ON ft.C_FOGLALKOZASOKID = f.ID
WHERE f.TOROLT = 'F' AND f.C_TANEVID = @tanevId
) ff ON ff.C_TANTARGYID = tt.ID AND ff.C_TANAROKID = a.ID AND ff.C_OSZTALYCSOPORTID = oszt.ID--ISNULL(cs.ID, oszt.ID)
INNER JOIN @hetirend h ON o.hetirendID = h.hetirendId
INNER JOIN T_CSENGETESIRENDORA_OSSZES csro ON csro.C_ORASZAM = o.sorszam AND csro.C_CSENGETESIRENDID = @csengetesiRendId;
INSERT INTO T_ORARENDIORA_OSSZES (
C_HETIREND
,C_HETNAPJA
,C_ORASZAM
,C_ORAERVENYESSEGKEZDETE
,C_INTEZMENYID
,C_TANEVID
,C_BONTOTT
,C_ORAERVENYESSEGVEGE
,C_ORAKEZDETE
,C_ORAVEGE
,C_TEREMID
,C_FOGLALKOZASID
,C_CSENGETESIRENDORAID
,C_TANTARGYID
,C_OSZTALYCSOPORTID
,C_TANARID
,C_ORATULAJDONOSID
,TOROLT
,SERIAL
,LASTCHANGED
,CREATED
,MODIFIER
,CREATOR
,C_IMPORTALT
) SELECT --'T_ORARENDIORA',
h.id AS C_HETIREND
,CASE o.hetNapja
WHEN 'Hétfő' THEN 1408
WHEN 'Kedd' THEN 1409
WHEN 'Szerda' THEN 1410
WHEN 'Csütörtök' THEN 1411
WHEN 'Péntek' THEN 1412
WHEN 'Szombat' THEN 1413
WHEN 'Vasárnap' THEN 1414
ELSE 1407
END AS C_HETNAPJA -- ?
,csro.C_ORASZAM AS C_ORASZAM
,o.ervenyessegKezdete AS C_ORAERVENYESSEGKEZDETE
,@intezmenyID AS C_INTEZMENYID
,@tanevId AS C_TANEVID
,'F' AS C_BONTOTT
,o.ervenyessegVege AS C_ORAERVENYESSEGVEGE
,NULL AS C_ORAKEZDETE
,NULL AS C_ORAVEGE
,t.id AS C_TEREMID
,ff.ID AS C_FOGLALKOZASID -- ?
,csro.ID AS C_CSENGETESIRENDORAID
,tt.ID AS C_TANTARGYID -- ?
,cs.ID AS C_OSZTALYCSOPORTID -- ?
,a.ID AS C_TANARID -- ?
,@userId AS C_ORATULAJDONOSID -- ?
,'F' AS TOROLT
,0 AS SERIAL
,NULL AS LASTCHANGED
,GETDATE() AS CREATED
,NULL AS MODIFIER
,@userId AS CREATOR
,'T' AS C_IMPORTALT
FROM @orarendiOra o
INNER JOIN @terem t ON t.teremID = o.teremID
INNER JOIN @tanar a ON a.tanarID = o.tanarID
INNER JOIN @tantargy tt ON tt.tantargyID = o.tantargyID
INNER JOIN @osztalyCsoport cs ON cs.osztalyCsoportID = o.CsoportId AND cs.osztalyCsoport = 'CS'
INNER JOIN (
SELECT f.ID, f.C_TANTARGYID, f.C_OSZTALYCSOPORTID, ft.C_TANAROKID
FROM T_FOGLALKOZAS_OSSZES f
INNER JOIN T_FOGLALKOZASOK_TANAROK ft ON ft.C_FOGLALKOZASOKID = f.ID
WHERE f.TOROLT = 'F' AND f.C_TANEVID = @tanevId
) ff ON ff.C_TANTARGYID = tt.ID AND ff.C_TANAROKID = a.ID AND ff.C_OSZTALYCSOPORTID = cs.ID
INNER JOIN @hetirend h ON o.hetirendID = h.hetirendId
INNER JOIN T_CSENGETESIRENDORA_OSSZES csro ON csro.C_ORASZAM = o.sorszam AND csro.C_CSENGETESIRENDID = @csengetesiRendId;
COMMIT TRANSACTION
-- ROLLBACK TRANSACTION
END TRY
BEGIN CATCH
IF @@TRANCOUNT > 0 AND XACT_STATE() <> 0
ROLLBACK TRANSACTION;
THROW
END CATCH
END
GO

View file

@ -0,0 +1,442 @@
IF OBJECT_ID('sp_ImportTantargyFelosztas', 'P') IS NOT NULL BEGIN
DROP PROCEDURE sp_ImportTantargyFelosztas
END
GO
CREATE PROCEDURE sp_ImportTantargyFelosztas
@importXml xml,
@tanevId int,
@feladatellatasiHelyId int,
@intezmenyId int,
@userId int
AS
BEGIN
SET NOCOUNT ON;
SET XACT_ABORT ON;
DECLARE
@root int
DECLARE @tbl TABLE (
osztalyID int,
osztalyNev nvarchar(255),
csoportID int,
csoportNev nvarchar(255),
tantargyID int,
tantargyNev nvarchar(255),
oraszam float,
tanarID int,
tanarNev nvarchar(255),
szulDatum datetime,
foglalkozasID int,
existItemId int
)
SET @root = @importXml.exist('/TantargyfelosztasImport')
--SELECT @importXml;
IF @root = 1 BEGIN
INSERT INTO @tbl
SELECT
NULL AS osztalyID,
sor.value('(osztaly)[1]', 'nvarchar(255)') AS osztalyNev,
NULL AS csoportID,
sor.value('(csoport)[1]', 'nvarchar(255)') AS csoportNev,
NULL AS tantargyID,
sor.value('(tantargy)[1]', 'nvarchar(255)') AS tantargyNev,
sor.value('(oraszam)[1]', 'float') AS oraszam,
NULL AS tanarID,
sor.value('(tanar)[1]', 'nvarchar(255)') AS tanarNev,
sor.value('(szuldatum)[1]', 'varchar(10)')AS szulDatum,
NULL AS foglalkozasID,
sor.value('(existItemId)[1]', 'int') AS existItemId
FROM @importXml.nodes('/TantargyfelosztasImport/TantargyfelosztasLista/Tantargyfelosztas') as sorok(sor)
END
ELSE BEGIN
INSERT INTO @tbl
SELECT
NULL AS osztalyID,
sor.value('(osztaly)[1]', 'nvarchar(255)') AS osztalyNev,
NULL AS csoportID,
sor.value('(csoport)[1]', 'nvarchar(255)') AS csoportNev,
NULL AS tantargyID,
sor.value('(tantargy)[1]', 'nvarchar(255)') AS tantargyNev,
sor.value('(oraszam)[1]', 'float') AS oraszam,
NULL AS tanarID,
sor.value('(tanar)[1]', 'nvarchar(255)') AS tanarNev,
sor.value('(szuldatum)[1]', 'varchar(10)')AS szulDatum,
NULL AS foglalkozasID,
sor.value('(existItemId)[1]', 'int') AS existItemId
FROM @importXml.nodes('/TantargyfelosztasLista/Tantargyfelosztas') as sorok(sor)
END
BEGIN TRY
BEGIN TRAN
UPDATE t
SET t.C_IMPORTALT = 'T'
FROM T_TANTARGY_OSSZES AS t
INNER JOIN T_FOGLALKOZAS_OSSZES fo ON t.ID = fo.C_TANTARGYID AND fo.C_TANEVID = t.C_TANEVID
WHERE fo.ID IN (SELECT existItemId FROM @tbl WHERE existItemId <> 0)
AND t.C_TANEVID = @tanevId
UPDATE ocs
SET ocs.C_IMPORTALT = 'T'
FROM T_OSZTALYCSOPORT_OSSZES AS ocs
INNER JOIN T_FOGLALKOZAS_OSSZES fo ON ocs.ID = fo.C_OSZTALYCSOPORTID AND ocs.C_TANEVID = fo.C_TANEVID
INNER JOIN T_TANTARGY_OSSZES t ON t.ID = fo.C_TANTARGYID AND t.C_TANEVID = fo.C_TANEVID
WHERE fo.ID IN (SELECT existItemId FROM @tbl WHERE existItemId <> 0)
AND ocs.C_TANEVID = @tanevId
UPDATE fo
SET fo.C_IMPORTALT = 'T'
FROM T_FOGLALKOZAS_OSSZES AS fo
where fo.ID IN (SELECT existItemId FROM @tbl WHERE existItemId <> 0)
AND fo.C_TANEVID = @tanevId
/*TÖRÖLJÜK AZ IMPORTÁLTakat*/
EXEC sp_DeleteAllTTF @feladatellatasiHelyId = @feladatellatasiHelyId, @tanevId = @tanevId
UPDATE f
SET
f.C_ORASZAM = temp.oraszam
,f.C_IMPORTALT = 'T'
,f.SERIAL += 1
,f.LASTCHANGED = GETDATE()
,f.MODIFIER = @userId
FROM T_FOGLALKOZAS_OSSZES f
INNER JOIN @tbl temp ON f.C_NEV = temp.tantargyNev + ' - ' + ISNULL(temp.csoportNev, temp.osztalyNev) + ' - ' + temp.tanarNev
WHERE f.C_INTEZMENYID = @intezmenyId
AND f.C_TANEVID = @tanevId
AND f.TOROLT = 'F'
UPDATE o
SET o.tanarID = fh.ID
FROM @tbl o
INNER JOIN T_FELHASZNALO_OSSZES fh ON fh.C_NYOMTATASINEV = o.tanarNev AND fh.C_SZULETESIDATUM = ISNULL(o.szulDatum, fh.C_SZULETESIDATUM)
INNER JOIN T_ALKALMAZOTT_OSSZES a ON fh.ID = a.ID
WHERE fh.C_TANEVID = @tanevId
/*töltjük a tantárgyakat*/
INSERT INTO T_TANTARGY_OSSZES (
C_GYAKORLATI
,C_NEV
,C_ROVIDNEV
,C_TARGYKATEGORIA
,C_ALTANTARGYKENTNYOMTATVANYBAN
,C_NEVNYOMTATVANYBAN
,C_TANORANKIVULI
,C_FOTARGYID
,C_INTEZMENYID
,C_TANEVID
,TOROLT
,SERIAL
,LASTCHANGED
,CREATED
,MODIFIER
,CREATOR
,C_IMPORTALT
) SELECT DISTINCT
'F' AS C_GYAKORLATI -- C_GYAKORLATI - char(1)
,o.tantargyNev AS C_NEV -- C_NEV - nvarchar(255)
,LEFT(o.tantargyNev, 20) AS C_ROVIDNEV -- C_ROVIDNEV - nvarchar(20)
,1197 AS C_TARGYKATEGORIA /*Na*/ -- C_TARGYKATEGORIA - int
,NULL AS C_ALTANTARGYKENTNYOMTATVANYBAN -- C_ALTANTARGYKENTNYOMTATVANYBAN - char(1)
,NULL AS C_NEVNYOMTATVANYBAN -- C_NEVNYOMTATVANYBAN - nvarchar(255)
,'F' AS C_TANORANKIVULI -- C_TANORANKIVULI - char(1)
,NULL AS C_FOTARGYID -- C_FOTARGYID - int
,@intezmenyId AS C_INTEZMENYID
,@tanevId AS C_TANEVID
,'F' AS TOROLT -- TOROLT - char(1)
,0 AS SERIAL -- SERIAL - int
,NULL AS LASTCHANGED -- LASTCHANGED - datetime
,GETDATE() AS CREATED -- CREATED - datetime
,NULL AS MODIFIER -- MODIFIER - int
,@userId AS CREATOR -- CREATOR - int
,'T' AS C_IMPORTALT -- C_IMPORTALT char(1)
FROM @tbl o
WHERE NOT EXISTS (SELECT 1 FROM T_TANTARGY_OSSZES WHERE C_NEV = o.tantargyNev AND C_TANEVID = @tanevId AND TOROLT = 'F')
UPDATE o
SET o.tantargyID = t.ID
FROM @tbl o
INNER JOIN T_TANTARGY_OSSZES t ON t.C_NEV = o.tantargyNev AND t.C_TANEVID = @tanevId AND t.TOROLT = 'F'
/* OSZTÁLY */
INSERT INTO T_OSZTALYCSOPORT_OSSZES (
C_MEGJEGYZES
,C_NEV
,C_VEGZOSEVFOLYAM
,C_EVFOLYAMTIPUSA
,C_TANEVID
,C_TEREMID
,C_FELADATELLATASIHELYID
,C_INTEZMENYID
,TOROLT
,SERIAL
,LASTCHANGED
,CREATED
,MODIFIER
,CREATOR
,C_IMPORTALT
) SELECT DISTINCT
NULL AS C_MEGJEGYZES -- C_MEGJEGYZES - nvarchar(255)
,o.osztalyNev AS C_NEV -- C_NEV - nvarchar(255)
,'F' AS C_VEGZOSEVFOLYAM -- C_VEGZOSEVFOLYAM - char(1)
,1296 AS C_EVFOLYAMTIPUSA -- C_EVFOLYAMTIPUSA - int
,@tanevId AS C_TANEVID -- C_TANEVID - int
,NULL AS C_TEREMID -- C_TEREMID - int
,@feladatellatasiHelyId AS C_FELADATELLATASIHELYID -- C_FELADATELLATASIHELYID - int
,@intezmenyId AS C_INTEZMENYID
,'F' AS TOROLT -- TOROLT - char(1)
,0 AS SERIAL -- SERIAL - int
,NULL AS LASTCHANGED -- LASTCHANGED - datetime
,GETDATE() AS CREATED -- CREATED - datetime
,NULL AS MODIFIER -- MODIFIER - int
,@userId AS CREATOR -- CREATOR - int
,'T' AS C_IMPORTALT -- C_IMPORTALT char(1)
FROM @tbl o
WHERE NOT EXISTS (SELECT 1 FROM T_OSZTALYCSOPORT_OSSZES WHERE C_NEV = o.osztalyNev AND C_TANEVID = @tanevId AND TOROLT = 'F')
AND o.OsztalyNev IS NOT NULL AND o.OsztalyNev <> ''
UPDATE o
SET o.osztalyID = t.ID
FROM @tbl o
INNER JOIN T_OSZTALYCSOPORT_OSSZES t ON t.C_NEV = o.osztalyNev AND C_TANEVID = @tanevId AND TOROLT = 'F'
INSERT INTO T_OSZTALY_OSSZES (
ID
,C_KEPZESIFORMA
,C_OSZTALYFONOKID
,C_OFOHELYETTESID
,C_TANTERVID
,C_ALINTEZMENYID
,C_ALTANEVID
,TOROLT
,SERIAL
,LASTCHANGED
,CREATED
,MODIFIER
,CREATOR
) SELECT DISTINCT
o.osztalyID AS ID -- ID - int
,1096 AS C_KEPZESIFORMA /*Nappali rendszerű iskolai oktatás*/ -- C_KEPZESIFORMA - int
,NULL AS C_OSZTALYFONOKID -- C_OSZTALYFONOKID - int
,NULL AS C_OFOHELYETTESID -- C_OFOHELYETTESID - int
,NULL AS C_TANTERVID -- C_TANTERVID - int
,@intezmenyId
,@tanevId
,'F' AS TOROLT -- TOROLT - char(1)
,0 AS SERIAL -- SERIAL - int
,NULL AS LASTCHANGED -- LASTCHANGED - datetime
,GETDATE() AS CREATED -- CREATED - datetime
,NULL AS MODIFIER -- MODIFIER - int
,@userId AS CREATOR -- CREATOR - int
FROM @tbl o
WHERE NOT EXISTS (SELECT 1 FROM T_OSZTALY_OSSZES WHERE ID = o.osztalyID AND C_ALTANEVID = @tanevId)
AND o.osztalyID IS NOT NULL
INSERT INTO T_OSZTALYCSOPORT_OSSZES (
C_MEGJEGYZES
,C_NEV
,C_VEGZOSEVFOLYAM
,C_EVFOLYAMTIPUSA
,C_TANEVID
,C_TEREMID
,C_FELADATELLATASIHELYID
,C_INTEZMENYID
,TOROLT
,SERIAL
,LASTCHANGED
,CREATED
,MODIFIER
,CREATOR
,C_IMPORTALT
) SELECT DISTINCT
NULL AS C_MEGJEGYZES -- C_MEGJEGYZES - nvarchar(255)
,IIF(o.csoportNev IS NULL, o.osztalyNev, o.csoportNev) AS C_NEV -- C_NEV - nvarchar(255)
,'F' AS C_VEGZOSEVFOLYAM -- C_VEGZOSEVFOLYAM - char(1)
,1296 AS C_EVFOLYAMTIPUSA -- C_EVFOLYAMTIPUSA - int Default(NA)
,@tanevId AS C_TANEVID -- C_TANEVID - int
,NULL AS C_TEREMID -- C_TEREMID - int
,@feladatellatasiHelyId AS C_FELADATELLATASIHELYID -- C_FELADATELLATASIHELYID - int
,@intezmenyId AS C_INTEZMENYID
,'F' AS TOROLT -- TOROLT - char(1)
,0 AS SERIAL -- SERIAL - int
,NULL AS LASTCHANGED -- LASTCHANGED - datetime
,GETDATE() AS CREATED -- CREATED - datetime
,NULL AS MODIFIER -- MODIFIER - int
,@userId AS CREATOR -- CREATOR - int
,'T' AS C_IMPORTALT -- C_IMPORTALT char(1)
FROM @tbl o
WHERE NOT EXISTS (SELECT 1 FROM T_OSZTALYCSOPORT_OSSZES WHERE C_NEV = o.csoportNev AND C_TANEVID = @tanevId AND TOROLT = 'F')
AND o.csoportNev IS NOT NULL AND o.csoportNev <> ''
UPDATE o
SET o.csoportID = t.ID
FROM @tbl o
INNER JOIN T_OSZTALYCSOPORT_OSSZES t ON t.C_NEV = o.csoportNev AND C_TANEVID = @tanevId AND TOROLT = 'F'
INSERT INTO T_CSOPORT_OSSZES (
ID
,C_TIPUSA
,C_CSOPORTNAPLOLEIRAS
,C_CSOPORTNAPLOMEGNYITASA
,C_CSOPORTNAPLOZARASA
,C_CSOPORTVEZETOID
,C_KIZAROCSOPORTID
,C_OSZTALYBONTASID
,C_ALINTEZMENYID
,C_ALTANEVID
,TOROLT
,SERIAL
,LASTCHANGED
,CREATED
,MODIFIER
,CREATOR
) SELECT DISTINCT
o.csoportID AS ID -- ID - int
,1031 AS C_TIPUSA /*Na*/ -- C_TIPUSA - int
,NULL AS C_CSOPORTNAPLOLEIRAS -- C_CSOPORTNAPLOLEIRAS - nvarchar(MAX)
,NULL AS C_CSOPORTNAPLOMEGNYITASA -- C_CSOPORTNAPLOMEGNYITASA - datetime
,NULL AS C_CSOPORTNAPLOZARASA -- C_CSOPORTNAPLOZARASA - datetime
,NULL AS C_CSOPORTVEZETOID -- C_CSOPORTVEZETOID - int
,NULL AS C_KIZAROCSOPORTID -- C_KIZAROCSOPORTID - int
,IIF(o.osztalyNev IS NULL, NULL, o.osztalyId) AS C_OSZTALYBONTASID -- C_OSZTALYBONTASID - int
,@intezmenyId
,@tanevId
,'F' AS TOROLT -- TOROLT - char(1)
,0 AS SERIAL -- SERIAL - int
,NULL AS LASTCHANGED -- LASTCHANGED - datetime
,GETDATE() AS CREATED -- CREATED - datetime
,NULL AS MODIFIER -- MODIFIER - int
,@userId AS CREATOR -- CREATOR - int
FROM @tbl o
WHERE NOT EXISTS (SELECT 1 FROM T_CSOPORT_OSSZES WHERE ID = o.csoportID AND C_ALTANEVID = @tanevId)
AND o.csoportID IS NOT NULL
DECLARE @linkTable TABLE (
id int,
osztalyCsoportId int,
tantargyID int,
tanarID int
);
MERGE T_FOGLALKOZAS_OSSZES trg
USING (SELECT ISNULL(o.csoportID, o.osztalyID) osztalyCsoportId, o.tantargyID, o.tanarID, SUM(o.oraszam) oraszam,
MAX(o.tantargyNev) + ' - ' + MAX(ISNULL(o.csoportNev, o.osztalyNev)) + ' - ' + MAX(o.tanarNev) as foglalkozasNev
FROM @tbl o
WHERE NOT EXISTS (
SELECT 1 FROM T_FOGLALKOZAS_OSSZES f
INNER JOIN T_FOGLALKOZASOK_TANAROK ft ON f.ID = ft.C_FOGLALKOZASOKID
WHERE f.C_TANTARGYID = o.tantargyID
AND f.C_OSZTALYCSOPORTID = o.csoportID
AND ft.C_TANAROKID = o.tanarID
AND f.C_TANEVID = @tanevId
)
GROUP BY ISNULL(o.csoportID, o.osztalyID), o.tantargyID, o.tanarID
) src ON 1 = 0
WHEN NOT MATCHED THEN
INSERT (
C_FOGLALKOZASTIPUSA
,C_ORASZAM
,C_NEV
,C_ERTEKELESKELL
,C_MULASZTASKELL
,C_TANARFELVEHETI
,C_TANTARGYID
,C_OSZTALYCSOPORTID
,C_INTEZMENYID
,C_TANEVID
,TOROLT
,SERIAL
,LASTCHANGED
,CREATED
,MODIFIER
,CREATOR
,C_IMPORTALT
) VALUES(
--IIF (src.osztalyCsoportId IS NOT NULL, 1368 /*Tanóra (osztálybontásos)*/, 1339/*Tanóra*/) /*Na*/ -- C_FOGLALKOZASTIPUSA - int
IIF (EXISTS(select 1 from T_CSOPORT cs where cs.ID = src.osztalyCsoportId), 1368 /*Tanóra (osztálybontásos)*/, 1339/*Tanóra*/) /*Na*/ -- C_FOGLALKOZASTIPUSA - int
,src.oraszam -- C_ORASZAM - int
,src.foglalkozasNev -- C_NEV - nvarchar(255)
,'T' -- C_ERTEKELESKELL - char(1)
,'T' -- C_MULASZTASKELL - char(1)
,'T' -- C_TANARFELVEHETI - char(1)
,src.tantargyID -- C_TANTARGYID - int
,src.osztalyCsoportId -- C_OSZTALYCSOPORTID - int
,@intezmenyId
,@tanevId -- C_TANEVID - int
,'F' -- TOROLT - char(1)
,0 -- SERIAL - int
,NULL -- LASTCHANGED - datetime
,GETDATE() -- CREATED - datetime
,NULL -- MODIFIER - int
,@userId -- CREATOR - int
,'T' -- C_IMPORTALT char(1)
)
OUTPUT INSERTED.ID, src.osztalyCsoportId, src.tantargyID, src.tanarID
INTO @linkTable(id, osztalyCsoportId, tantargyID, tanarID);
/*csoport - osztaly*/
UPDATE o
SET o.foglalkozasID = f.id
FROM @tbl o
INNER JOIN @linkTable f ON f.osztalyCsoportId = ISNULL(o.csoportID, o.osztalyID) AND f.tantargyID = o.tantargyID AND f.tanarID = o.tanarID
WHERE o.foglalkozasID IS NULL
/*osztaly*/
UPDATE o
SET o.foglalkozasID = f.id
FROM @tbl o
INNER JOIN @linkTable f ON f.osztalyCsoportId = o.osztalyID AND f.tantargyID = o.tantargyID AND f.tanarID = o.tanarID
WHERE o.foglalkozasID IS NULL
/*csoport - osztaly*/
UPDATE o
SET o.foglalkozasID = f.id
FROM @tbl o
INNER JOIN T_FOGLALKOZAS_OSSZES f ON f.C_TANTARGYID = o.tantargyID AND f.C_OSZTALYCSOPORTID = ISNULL(o.csoportID, o.osztalyID)
WHERE o.foglalkozasID IS NULL
AND NOT EXISTS (SELECT 1 FROM T_FOGLALKOZASOK_TANAROK ft WHERE ft.C_FOGLALKOZASOKID = o.foglalkozasID)
AND f.C_TANEVID = @tanevId
/*osztaly*/
UPDATE o
SET o.foglalkozasID = f.id
FROM @tbl o
INNER JOIN T_FOGLALKOZAS_OSSZES f ON f.C_TANTARGYID = o.tantargyID AND f.C_OSZTALYCSOPORTID = o.osztalyID
WHERE o.foglalkozasID IS NULL
AND NOT EXISTS (SELECT 1 FROM T_FOGLALKOZASOK_TANAROK ft WHERE ft.C_FOGLALKOZASOKID = o.foglalkozasID)
AND f.C_TANEVID = @tanevId
INSERT INTO T_FOGLALKOZASOK_TANAROK (
C_FOGLALKOZASOKID
,C_TANAROKID
) SELECT DISTINCT
o.foglalkozasID AS C_FOGLALKOZASOKID -- C_FOGLALKOZASOKID - int
,o.tanarID AS C_TANAROKID -- C_TANAROKID - int
FROM @tbl o
WHERE NOT EXISTS (SELECT 1 FROM T_FOGLALKOZASOK_TANAROK WHERE C_FOGLALKOZASOKID = o.foglalkozasID AND C_TANAROKID = o.tanarID)
COMMIT TRANSACTION
END TRY
BEGIN CATCH
IF @@TRANCOUNT > 0
ROLLBACK TRAN;
THROW
END CATCH
END