kreta/Kreta.DataAccess.Migrations/Scripts/Archive/20171030151935_KRETA_3639/sp_GetNaploEllenorzes.sql
2024-03-13 00:33:46 +01:00

145 lines
6.6 KiB
Transact-SQL

IF OBJECT_ID('dbo.sp_GetNaploEllenorzes') IS NOT NULL BEGIN
DROP PROCEDURE dbo.sp_GetNaploEllenorzes
END
GO
IF OBJECT_ID('[DBO].[sp_GetNaploEllenorzes]') IS NOT NULL BEGIN
DROP PROCEDURE [DBO].[sp_GetNaploEllenorzes]
END
GO
-- =============================================
-- Author: Kelemen Attila
-- Create date: 2016.03.21.
-- Description: Naplóellenőrzés összegzése
-- =============================================
CREATE PROCEDURE [dbo].[sp_GetNaploEllenorzes]
@osztalyId int
AS
BEGIN
-- SET NOCOUNT ON added to prevent extra result sets from
-- interfering with SELECT statements.
SET NOCOUNT ON;
select
'' Osszegzes,
Eszrevetelek.EV,
Eszrevetelek.HetSzama ID,
count(1) NemNaplozottOrakSzama,
(case when T_NAPLOELLENORZES.ID IS NULL then 'F' else 'T' end) Ellenorizve,
T_NAPLOELLENORZES.ID EllenorzesID,
Ellenorzo.C_NYOMTATASINEV EllenorzoSzemely,
T_NAPLOELLENORZES.C_ELLENORZESDATUMA EllenorzesDatum,
T_NAPLOELLENORZES.C_ESZREVETEL Eszrevetel,
Eszrevetelek.OsztalyID
from (
select KapcsolodoCsoportok.OsztalyID osztalyID,
KapcsolodoCsoportok.OsztalyNev OsztalyNev,
naptar.C_HETSORSZAMA HetSzama,
YEAR(naptar.c_napdatuma) EV
from T_ORARENDIORA
inner join T_FOGLALKOZAS on T_FOGLALKOZAS.ID= T_ORARENDIORA.C_FOGLALKOZASID
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_ORARENDIORAGROUPID = T_ORARENDIORA.C_ORARENDIORAGROUPID AND T_TANITASIORA.C_DATUM BETWEEN T_ORARENDIORA.C_ORAERVENYESSEGKEZDETE AND T_ORARENDIORA.C_ORAERVENYESSEGVEGE AND T_TANITASIORA.TOROLT='F' AND naptar.C_NAPDATUMA = T_TANITASIORA.C_DATUM)
left join (select T_OSZTALYCSOPORT.ID OsztalyID,
T_OSZTALYCSOPORT.C_NEV OsztalyNev,
kcs.CsoportID
from T_OSZTALYCSOPORT
--Az osztályhoz kapcsolódó csoportok óráit is listázzuk
left join (Select OsztalyID,
OsztalyNev,
CsoportID
from (select C_OSZTALYCSOPORTID OsztalyID,
T_OSZTALYCSOPORT.C_NEV OsztalyNev,
C_TANULOID TanuloID
from T_TANULOCSOPORT
INNER JOIN T_OSZTALY on T_TANULOCSOPORT.C_OSZTALYCSOPORTID = T_OSZTALY.ID
INNER JOIN T_OSZTALYCSOPORT on T_OSZTALY.ID = T_OSZTALYCSOPORT.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) kcs
on kcs.OsztalyID = T_OSZTALYCSOPORT.ID
where T_OSZTALYCSOPORt.TOROLT = 'F') KapcsolodoCsoportok
on KapcsolodoCsoportok.OsztalyID = @osztalyId
and KapcsolodoCsoportok.OsztalyID = T_FOGLALKOZAS.C_OSZTALYCSOPORTID
where
T_ORARENDIORA.TOROLT='F'
and naptar.TOROLT = 'F'
and T_FOGLALKOZAS.TOROLT='F'
and GETDATE() >= naptar.C_NAPDATUMA
and T_TANITASIORA.ID IS NULL
and KapcsolodoCsoportok.OsztalyID = @osztalyId
union all
select KapcsolodoCsoportok.OsztalyID osztalyID,
KapcsolodoCsoportok.OsztalyNev OsztalyNev,
naptar.C_HETSORSZAMA HetSzama,
YEAR(naptar.c_napdatuma) EV
from T_TANITASIORA
inner join T_FOGLALKOZAS on T_FOGLALKOZAS.ID= T_TANITASIORA.C_FOGLALKOZASID
inner join T_NAPTARINAP naptar on T_TANITASIORA.C_DATUM = naptar.C_NAPDATUMA
left join (select T_OSZTALYCSOPORT.ID OsztalyID,
T_OSZTALYCSOPORT.C_NEV OsztalyNev,
kcs.CsoportID
from T_OSZTALYCSOPORT
left join (Select OsztalyID,
OsztalyNev,
CsoportID
from
(select C_OSZTALYCSOPORTID OsztalyID,
T_OSZTALYCSOPORT.C_NEV OsztalyNev,
C_TANULOID TanuloID
from T_TANULOCSOPORT
inner join T_OSZTALY on T_TANULOCSOPORT.C_OSZTALYCSOPORTID = T_OSZTALY.ID
inner join T_OSZTALYCSOPORT on T_OSZTALY.ID = T_OSZTALYCSOPORT.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) kcs
on kcs.OsztalyID = T_OSZTALYCSOPORT.ID
where T_OSZTALYCSOPORt.TOROLT = 'F')
KapcsolodoCsoportok on
KapcsolodoCsoportok.OsztalyID = @osztalyId
and KapcsolodoCsoportok.OsztalyID = T_FOGLALKOZAS.C_OSZTALYCSOPORTID
where T_TANITASIORA.C_ORARENDIORAGROUPID is null
and T_TANITASIORA.C_MEGTARTOTT is null
and KapcsolodoCsoportok.OsztalyID = @osztalyId
) Eszrevetelek
left join T_NAPLOELLENORZES on ( T_NAPLOELLENORZES.C_OSZTALYID = @osztalyId
AND T_NAPLOELLENORZES.C_HETSORSZAMA = Eszrevetelek.HetSzama
AND T_NAPLOELLENORZES.TOROLT = 'F')
left join T_FELHASZNALO Ellenorzo on Ellenorzo.ID = T_NAPLOELLENORZES.C_ELLENORZOSZEMELYID
group by Eszrevetelek.EV,
Eszrevetelek.HetSzama,
T_NAPLOELLENORZES.ID,
Ellenorzo.C_NYOMTATASINEV,
T_NAPLOELLENORZES.C_ELLENORZESDATUMA,
T_NAPLOELLENORZES.C_ESZREVETEL,
T_NAPLOELLENORZES.C_OSZTALYID,
Eszrevetelek.OsztalyID
order by EV desc, Eszrevetelek.HetSzama desc
END