125 lines
6.1 KiB
Transact-SQL
125 lines
6.1 KiB
Transact-SQL
GO
|
|
/****** Object: StoredProcedure [dbo].[sp_GetNaploEllenorzesTetelek] Script Date: 2016.03.29. 9:17:20 ******/
|
|
SET ANSI_NULLS ON
|
|
GO
|
|
SET QUOTED_IDENTIFIER ON
|
|
GO
|
|
|
|
IF OBJECT_ID('[DBO].[sp_GetNaploEllenorzesTetelek]') IS NOT NULL BEGIN
|
|
DROP PROCEDURE [DBO].[sp_GetNaploEllenorzesTetelek]
|
|
END
|
|
GO
|
|
|
|
-- =============================================
|
|
-- Author: Kelemen Attila
|
|
-- Create date: 2016.03.21.
|
|
-- Description: Naplóellenőrzés tételei
|
|
-- =============================================
|
|
CREATE PROCEDURE [dbo].[sp_GetNaploEllenorzesTetelek]
|
|
@osztalyId int,
|
|
@hetSorszam int
|
|
AS
|
|
BEGIN
|
|
-- SET NOCOUNT ON added to prevent extra result sets from
|
|
-- interfering with SELECT statements.
|
|
SET NOCOUNT ON;
|
|
select * from
|
|
(
|
|
--Órarendi órák, amikhez nem tartozik tanóra
|
|
select T_ORARENDIORA.ID Id,
|
|
naptar.C_HETSORSZAMA HetSzama,
|
|
naptar.C_NAPDATUMA Datum,
|
|
naptar.C_HETNAPJA Hetnapja,
|
|
T_ORARENDIORA.C_ORASZAM Oraszam,
|
|
osztaly.C_NEV OsztalyNev,
|
|
T_TANTARGY.C_NEV TargyNev,
|
|
--Ha van helyettesítő, akkor annak a nevére van szükségünk
|
|
(select top 1 tanar.C_NYOMTATASINEV from T_FELHASZNALO tanar
|
|
where ((T_TANITASIORA.C_HELYETTESITOTANARID IS null and T_FOGLALKOZAS.C_TANARID = tanar.ID)
|
|
OR (T_TANITASIORA.C_HELYETTESITOTANARID IS not null and T_TANITASIORA.C_HELYETTESITOTANARID= tanar.ID))) TanarNev
|
|
FROM
|
|
T_ORARENDIORA
|
|
inner join T_FOGLALKOZAS on T_FOGLALKOZAS.ID= T_ORARENDIORA.C_FOGLALKOZASID AND T_FOGLALKOZAS.TOROLT='F'
|
|
left join T_TANTARGY on T_TANTARGY.ID= T_FOGLALKOZAS.C_TANTARGYID
|
|
|
|
inner join T_NAPTARINAP naptar on (( CONVERT(date,naptar.C_NAPDATUMA) BETWEEN CONVERT(date,T_ORARENDIORA.C_ORAERVENYESSEGKEZDETE) AND CONVERT(date,T_ORARENDIORA.C_ORAERVENYESSEGVEGE))
|
|
AND
|
|
(naptar.C_HETIREND = T_ORARENDIORA.C_HETIREND OR T_ORARENDIORA.C_HETIREND = 1554
|
|
AND naptar.C_HETNAPJA = T_ORARENDIORA.C_HETNAPJA) )
|
|
|
|
LEFT JOIN T_TANITASIORA ON (T_TANITASIORA.C_ORARENDIORAID = T_ORARENDIORA.ID AND T_TANITASIORA.TOROLT='F' AND naptar.C_NAPDATUMA = T_TANITASIORA.C_DATUM
|
|
--AND T_TANITASIORA.C_MEGTARTOTT IS NULL
|
|
)
|
|
|
|
inner join T_OSZTALYCSOPORT osztaly on T_FOGLALKOZAS.C_OSZTALYCSOPORTID = osztaly.ID AND osztaly.TOROLT='F'
|
|
|
|
--Az osztályhoz kapcsolódó csoportok óráit is listázzuk
|
|
left join (Select OsztalyID, CsoportID from
|
|
(select C_OSZTALYCSOPORTID OsztalyID, C_TANULOID TanuloID from T_TANULOCSOPORT INNER JOIN T_OSZTALY ON T_TANULOCSOPORT.C_OSZTALYCSOPORTID = T_OSZTALY.ID
|
|
WHERE T_TANULOCSOPORT.TOROLT='F'
|
|
and T_TANULOCSOPORT.C_BELEPESDATUM < GETDATE()
|
|
and (T_TANULOCSOPORT.C_KILEPESDATUM is null or T_TANULOCSOPORT.C_KILEPESDATUM >= GETDATE())) OsztalyTanuloi
|
|
INNER JOIN
|
|
(SELECT T_CSOPORT.ID CsoportID, C_TANULOID TanuloID FROM T_TANULOCSOPORT
|
|
INNER JOIN T_CSOPORT ON T_TANULOCSOPORT.ID=T_CSOPORT.ID
|
|
WHERE T_CSOPORT.TOROLT='F'
|
|
AND T_TANULOCSOPORT.TOROLT='F'
|
|
and T_TANULOCSOPORT.C_BELEPESDATUM < GETDATE()
|
|
and (T_TANULOCSOPORT.C_KILEPESDATUM is null or T_TANULOCSOPORT.C_KILEPESDATUM >= GETDATE())
|
|
) Csoportok ON OsztalyTanuloi.TanuloID = Csoportok.TanuloID) KapcsolodoCsoportok ON
|
|
KapcsolodoCsoportok.OsztalyID = @osztalyId
|
|
|
|
where T_ORARENDIORA.TOROLT='F'
|
|
AND naptar.TOROLT = 'F'
|
|
AND GETDATE() >= naptar.C_NAPDATUMA
|
|
AND T_TANITASIORA.ID IS NULL
|
|
AND (osztaly.ID = @osztalyId OR osztaly.ID = KapcsolodoCsoportok.CsoportID)
|
|
and naptar.C_HETSORSZAMA = @hetSorszam
|
|
UNION ALL
|
|
|
|
|
|
--Tanítási órák, amikhez nem tartozik órarendi óra
|
|
select T_TANITASIORA.ID Id,
|
|
naptar.C_HETSORSZAMA HetSzama,
|
|
naptar.C_NAPDATUMA Datum,
|
|
naptar.C_HETNAPJA Hetnapja,
|
|
T_TANITASIORA.C_ORASZAM Oraszam,
|
|
osztaly.C_NEV OsztalyNev,
|
|
T_TANTARGY.C_NEV TargyNev,
|
|
tanar.C_NYOMTATASINEV TanarNev
|
|
|
|
from T_TANITASIORA
|
|
inner join T_NAPTARINAP naptar on (T_TANITASIORA.C_DATUM = naptar.C_NAPDATUMA)
|
|
inner join T_FOGLALKOZAS on T_FOGLALKOZAS.ID= T_TANITASIORA.C_FOGLALKOZASID
|
|
left join T_OSZTALYCSOPORT osztaly on T_FOGLALKOZAS.C_OSZTALYCSOPORTID = osztaly.ID
|
|
left join T_TANTARGY on T_TANTARGY.ID= T_FOGLALKOZAS.C_TANTARGYID
|
|
|
|
left join T_FELHASZNALO tanar on
|
|
--Ha van helyettesítő, akkor aszerint joinolunk
|
|
(case when T_TANITASIORA.C_HELYETTESITOTANARID IS not null then T_TANITASIORA.C_HELYETTESITOTANARID
|
|
else T_FOGLALKOZAS.C_TANARID end) = tanar.ID
|
|
|
|
|
|
left join (Select OsztalyID, CsoportID from
|
|
(select C_OSZTALYCSOPORTID OsztalyID, C_TANULOID TanuloID from T_TANULOCSOPORT INNER JOIN T_OSZTALY ON T_TANULOCSOPORT.C_OSZTALYCSOPORTID = T_OSZTALY.ID
|
|
WHERE T_TANULOCSOPORT.TOROLT='F'
|
|
and T_TANULOCSOPORT.C_BELEPESDATUM < GETDATE()
|
|
and (T_TANULOCSOPORT.C_KILEPESDATUM is null or T_TANULOCSOPORT.C_KILEPESDATUM >= GETDATE())) OsztalyTanuloi
|
|
INNER JOIN
|
|
(SELECT T_CSOPORT.ID CsoportID, C_TANULOID TanuloID FROM T_TANULOCSOPORT
|
|
INNER JOIN T_CSOPORT ON T_TANULOCSOPORT.ID=T_CSOPORT.ID
|
|
WHERE T_CSOPORT.TOROLT='F'
|
|
AND T_TANULOCSOPORT.TOROLT='F'
|
|
and T_TANULOCSOPORT.C_BELEPESDATUM < GETDATE()
|
|
and (T_TANULOCSOPORT.C_KILEPESDATUM is null or T_TANULOCSOPORT.C_KILEPESDATUM >= GETDATE())
|
|
) Csoportok ON OsztalyTanuloi.TanuloID = Csoportok.TanuloID) KapcsolodoCsoportok ON
|
|
KapcsolodoCsoportok.OsztalyID = @osztalyId
|
|
|
|
where T_TANITASIORA.C_ORARENDIORAID is null
|
|
AND T_TANITASIORA.C_MEGTARTOTT is null
|
|
AND (osztaly.ID = @osztalyId OR osztaly.ID = KapcsolodoCsoportok.CsoportID)
|
|
and naptar.C_HETSORSZAMA = @hetSorszam
|
|
) Orak
|
|
|
|
ORDER BY Datum DESC
|
|
END
|