﻿DROP PROCEDURE IF EXISTS uspTanulokGyorsBejegyzesStatisztika
GO

CREATE PROCEDURE uspTanulokGyorsBejegyzesStatisztika
   @tanevId int
  ,@osztalyId int
AS BEGIN
  SET NOCOUNT ON;

  DECLARE
     @FelevVege date,
     @OsztalyNev nvarchar(255)

  /*TANULÓ adatai*/
  CREATE TABLE #TanuloAlapAdatok (
     TanuloId int
    ,TanuloCsoportId int
    ,Sorszam int NULL
    ,TorzslapSzam nvarchar(500) NULL
    ,OktAzon nvarchar(20) NULL
    ,TajSzam nvarchar(9) NULL
    ,AnyjaNeve nvarchar(64)
    ,SzulHely nvarchar(50) NULL
    ,SzulIdo nvarchar(max) NULL
    ,SocAdat nvarchar(340) NULL
    ,Kepzes nvarchar(255)
    ,TanuloNeve nvarchar(255)
    ,Allampolgarsaga nvarchar(250)
    ,DiakIgazolvanySzam nvarchar(255) NULL
    ,KilepesDatum nvarchar(max) NULL
    ,BeirasiNaploSorszam nvarchar(50) NULL
    ,AktualisOsztaly nvarchar(max) NULL
    ,AktualisOsztalyId int NULL
    ,BelepesDatum nvarchar(max) NULL
    ,OsztalyNev nvarchar(255) NULL
  )

  SELECT TOP 1
    @FelevVege = tr.C_DATUM
  FROM T_TANEVRENDJE_OSSZES tr
  WHERE tr.C_NAPTIPUSA = 1400
    AND tr.C_TANEVID = @tanevId
    AND tr.TOROLT = 'F'

  SELECT 
    @OsztalyNev = C_NEV 
  FROM T_OSZTALYCSOPORT_OSSZES 
  WHERE 
    ID = @osztalyId
    AND TOROLT = 'F'

  SELECT DISTINCT
     @osztalyId AS OsztalyId
    ,@OsztalyNev AS OsztalyNev
    ,C_NEV AS IntezmenyNeve
    ,C_OMKOD AS IntezmenyOMKod
  FROM T_INTEZMENYADATOK_OSSZES 
  WHERE    
      C_TANEVID = @tanevId
      AND TOROLT = 'F'

  INSERT INTO #TanuloAlapAdatok (
     TanuloId
    ,TanuloCsoportId
    ,Sorszam
    ,TorzslapSzam
    ,OktAzon
    ,TajSzam
    ,AnyjaNeve
    ,SzulHely
    ,SzulIdo
    ,SocAdat
    ,Kepzes
    ,TanuloNeve
    ,Allampolgarsaga
    ,DiakIgazolvanySzam
    ,KilepesDatum
    ,BeirasiNaploSorszam
    ,AktualisOsztaly
    ,AktualisOsztalyId
    ,BelepesDatum
    ,OsztalyNev
  )
  SELECT
     ta.TanuloId
    ,ta.TanuloCsoportId
    ,ta.Sorszam
    ,ta.TorzslapSzam
    ,ta.OktAzon
    ,ta.TajSzam
    ,ta.AnyjaNeve
    ,ta.SzulHely
    ,ta.SzulIdo
    ,ta.SocAdat
    ,ta.Kepzes
    ,ta.TanuloNeve
    ,ta.Allampolgarsaga
    ,ta.DiakIgazolvanySzam
    ,ta.KilepesDatum
    ,ta.BeirasiNaploSorszam
    ,ta.AktualisOsztaly
    ,ta.AktualisOsztalyId
    ,ta.BelepesDatum
    ,@OsztalyNev
  FROM fnGetDokumentumTanulokAdatai(@tanevId, @osztalyId) ta

  SELECT
     ta.TanuloId
    ,ta.TanuloCsoportId
    ,ta.Sorszam
    ,ta.TorzslapSzam
    ,ta.OktAzon
    ,ta.TajSzam
    ,ta.AnyjaNeve
    ,ta.SzulHely
    ,ta.SzulIdo
    ,ta.SocAdat
    ,ta.Kepzes
    ,ta.TanuloNeve
    ,ta.Allampolgarsaga
    ,ta.DiakIgazolvanySzam
    ,ta.KilepesDatum
    ,ta.BeirasiNaploSorszam
    ,ta.AktualisOsztaly
    ,ta.AktualisOsztalyId
    ,ta.BelepesDatum
    ,OsztalyNev
  FROM #TanuloAlapAdatok ta
  ORDER BY ta.Sorszam

  -- Házifeladat hiány
  SELECT
     a.TanuloId
    ,a.TanuloCsoportId
    ,a.KilepesDatum
    ,feljegyzes.Tantargy
    ,feljegyzes.Szeptember
    ,feljegyzes.Oktober
    ,feljegyzes.November
    ,feljegyzes.December
    ,feljegyzes.Januar
    ,feljegyzes.Februar
    ,feljegyzes.Marcius
    ,feljegyzes.Aprilis
    ,feljegyzes.Majus
    ,feljegyzes.Junius
    ,feljegyzes.Felev
    ,feljegyzes.Ossz
  FROM #TanuloAlapAdatok a
    CROSS APPLY fnGetDokumentumTanulokGyorsFeljegyzeseiHavibontasban (@tanevId, @osztalyId, 6325, 0, @FelevVege, PARSE(a.BelepesDatum AS datetime), PARSE(a.KilepesDatum AS datetime)) feljegyzes
  WHERE feljegyzes.TanuloId = a.TanuloId

  -- Felszerelés hiány
  SELECT
     a.TanuloId
    ,a.TanuloCsoportId
    ,a.KilepesDatum
    ,feljegyzes.Tantargy
    ,feljegyzes.Szeptember
    ,feljegyzes.Oktober
    ,feljegyzes.November
    ,feljegyzes.December
    ,feljegyzes.Januar
    ,feljegyzes.Februar
    ,feljegyzes.Marcius
    ,feljegyzes.Aprilis
    ,feljegyzes.Majus
    ,feljegyzes.Junius
    ,feljegyzes.Felev
    ,feljegyzes.Ossz
  FROM #TanuloAlapAdatok a
    CROSS APPLY fnGetDokumentumTanulokGyorsFeljegyzeseiHavibontasban(@tanevId, @osztalyId, 6324, 0, @FelevVege, PARSE(a.BelepesDatum AS datetime), PARSE(a.KilepesDatum AS datetime)) feljegyzes
  WHERE feljegyzes.TanuloId = a.TanuloId

  -- Felmentés
  SELECT
     a.TanuloId
    ,a.TanuloCsoportId
    ,a.KilepesDatum
    ,feljegyzes.Tantargy
    ,feljegyzes.Szeptember
    ,feljegyzes.Oktober
    ,feljegyzes.November
    ,feljegyzes.December
    ,feljegyzes.Januar
    ,feljegyzes.Februar
    ,feljegyzes.Marcius
    ,feljegyzes.Aprilis
    ,feljegyzes.Majus
    ,feljegyzes.Junius
    ,feljegyzes.Felev
    ,feljegyzes.Ossz
  FROM #TanuloAlapAdatok a
    CROSS APPLY fnGetDokumentumTanulokGyorsFeljegyzeseiHavibontasban(@tanevId, @osztalyId, 1542, 0, @FelevVege, PARSE(a.BelepesDatum AS datetime), PARSE(a.KilepesDatum AS datetime)) feljegyzes
  WHERE feljegyzes.TanuloId = a.TanuloId

  --Dicséret
  SELECT
     a.TanuloId
    ,a.TanuloCsoportId
    ,a.KilepesDatum
    ,feljegyzes.Tantargy
    ,feljegyzes.Szeptember
    ,feljegyzes.Oktober
    ,feljegyzes.November
    ,feljegyzes.December
    ,feljegyzes.Januar
    ,feljegyzes.Februar
    ,feljegyzes.Marcius
    ,feljegyzes.Aprilis
    ,feljegyzes.Majus
    ,feljegyzes.Junius
    ,feljegyzes.Felev
    ,feljegyzes.Ossz
  FROM #TanuloAlapAdatok a
    CROSS APPLY fnGetDokumentumTanulokGyorsFeljegyzeseiHavibontasban(@tanevId, @osztalyId, 1536, 1, @FelevVege, PARSE(a.BelepesDatum AS datetime), PARSE(a.KilepesDatum AS datetime)) feljegyzes
  WHERE feljegyzes.TanuloId = a.TanuloId

END
GO
