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,233 @@
DROP PROCEDURE IF EXISTS uspGetHelyettesitesekListaja
GO
CREATE PROCEDURE uspGetHelyettesitesekListaja
@pKezdoDatum datetime = NULL
,@pVegDatum datetime = NULL
,@pHelyettesitesTipusId int = NULL
,@pHelyettesitettId int = NULL
,@pHelyettesitoId int = NULL
,@pIsNaplozott char(1) = NULL
,@pOsztalyCsoportId int = NULL
,@pTantargyId int = NULL
AS
BEGIN
SET NOCOUNT ON
DECLARE
@sql nvarchar(max)
,@whereHisz nvarchar(max) = ''
,@whereTanora nvarchar(max) = ''
IF @pKezdoDatum IS NOT NULL BEGIN
SET @whereHisz += N'
AND hisz.C_HELYETTESITESNAPJA >= @pKezdoDatum'
SET @whereTanora += N'
AND tn.C_DATUM >= @pKezdoDatum'
END
IF @pVegDatum IS NOT NULL BEGIN
SET @whereHisz += N'
AND hisz.C_HELYETTESITESNAPJA <= @pVegDatum'
SET @whereTanora += N'
AND tn.C_DATUM <= @pVegDatum'
END
IF @pHelyettesitesTipusId IS NOT NULL BEGIN
SET @whereHisz += N'
AND hisz.C_HELYETTESITESTIPUS = @pHelyettesitesTipusId'
SET @whereTanora += N'
AND tn.C_HELYETTESITESTIPUSA = @pHelyettesitesTipusId'
END
ELSE BEGIN
SET @whereTanora += N'
AND tn.C_HELYETTESITESTIPUSA IS NOT NULL'
END
IF @pHelyettesitettId IS NOT NULL BEGIN
SET @whereHisz += N'
AND oo.C_TANARID = @pHelyettesitettId'
SET @whereTanora += N'
AND tn.C_TANARID = @pHelyettesitettId'
END
IF @pHelyettesitoId IS NOT NULL BEGIN
SET @whereHisz += N'
AND hisz.C_HELYETTESTANAROKID = @pHelyettesitoId'
SET @whereTanora += N'
AND tn.C_HELYETTESITOTANARID = @pHelyettesitoId'
END
IF @pOsztalyCsoportId IS NOT NULL BEGIN
SET @whereHisz += N'
AND oo.C_OSZTALYCSOPORTID = @pOsztalyCsoportId'
SET @whereTanora += N'
AND tn.C_OSZTALYCSOPORTID = @pOsztalyCsoportId'
END
IF @pTantargyId IS NOT NULL BEGIN
SET @whereHisz += N'
AND oo.C_TANTARGYID = @pTantargyId'
SET @whereTanora += N'
AND tn.C_TANTARGYID = @pTantargyId'
END
SET @sql = N'
SELECT DISTINCT helyettesites.HelyettesitesDatum
,helyettesites.Ora
,helyettesitett.C_NYOMTATASINEV AS Helyettesitett
,IIF(helyettesitett.C_NEVSORREND = ''T'',
helyettesitett.C_UTONEV + '' '' + helyettesitett.C_VEZETEKNEV,
helyettesitett.C_VEZETEKNEV + '' '' + helyettesitett.C_UTONEV) AS HelyettesitettElotagNelkul
,helyettesitett.ID AS HelyettesitettId
,helyettesites.HelyettesitesTipusId
,helyettesites.HelyettesitesOka
,helyettesites.C_MEGJEGYZES
,helyettesito.C_NYOMTATASINEV AS Helyettesito
,IIF(helyettesito.C_NEVSORREND = ''T'',
helyettesito.C_UTONEV + '' '' + helyettesito.C_VEZETEKNEV,
helyettesito.C_VEZETEKNEV + '' '' + helyettesito.C_UTONEV) AS HelyettesitoElotagNelkul
,helyettesito.ID AS HelyettesitoId
,ocs.C_NEV AS OsztalyCsoport
,ocs.ID AS OsztalyCsoportId
,tantargy.C_NEV AS Tantargy
,tantargy.ID AS TantargyId
,helyettesites.Naplozott
,helyettesites.ID
FROM ('
IF @pIsNaplozott = 1 BEGIN
SET @sql += N'
SELECT
tanora.C_HELYETTESITESNAPJA AS HelyettesitesDatum
,tanora.Ora AS Ora
,tanora.C_TANARID AS HelyettesitettId
,tanora.C_HELYETTESITESTIPUSA AS HelyettesitesTipusId
,tanora.C_HELYETTESITOTANARID AS HelyettesitoId
,tanora.C_OSZTALYCSOPORTID AS OsztalyCsoportId
,tanora.C_TANTARGYID AS TantargyId
,''T'' AS Naplozott
,tanora.ID AS ID
,tanora.C_HELYETTESITESOKA AS HelyettesitesOka
,tanora.C_MEGJEGYZES
FROM ('
END
IF @pIsNaplozott = 0 BEGIN
SET @sql += N'
SELECT
hisz.C_HELYETTESITESNAPJA AS HelyettesitesDatum
,hisz.Ora AS Ora
,hisz.C_TANARID AS HelyettesitettId
,hisz.C_HELYETTESITESTIPUS AS HelyettesitesTipusId
,hisz.C_HELYETTESTANAROKID AS HelyettesitoId
,hisz.C_OSZTALYCSOPORTID AS OsztalyCsoportId
,hisz.C_TANTARGYID AS TantargyId
,''F'' AS Naplozott
,hisz.ID AS ID
,hisz.C_HELYETTESITESOKA AS HelyettesitesOka
,null as C_MEGJEGYZES
FROM ('
END
IF @pIsNaplozott IS NULL BEGIN
SET @sql += N'
SELECT
IIF(tanora.ID IS NOT NULL, tanora.C_HELYETTESITESNAPJA, hisz.C_HELYETTESITESNAPJA) AS HelyettesitesDatum
,IIF(tanora.ID IS NOT NULL, tanora.Ora, hisz.Ora) AS Ora
,IIF(tanora.ID IS NOT NULL, tanora.C_TANARID, hisz.C_TANARID) AS HelyettesitettId
,IIF(tanora.ID IS NOT NULL, tanora.C_HELYETTESITESTIPUSA, hisz.C_HELYETTESITESTIPUS) AS HelyettesitesTipusId
,IIF(tanora.ID IS NOT NULL, tanora.C_HELYETTESITOTANARID, hisz.C_HELYETTESTANAROKID) AS HelyettesitoId
,IIF(tanora.ID IS NOT NULL, tanora.C_OSZTALYCSOPORTID, hisz.C_OSZTALYCSOPORTID) AS OsztalyCsoportId
,IIF(tanora.ID IS NOT NULL, tanora.C_TANTARGYID, hisz.C_TANTARGYID) AS TantargyId
,IIF(tanora.ID IS NOT NULL, ''T'', ''F'') AS Naplozott
,IIF(tanora.ID IS NOT NULL, tanora.ID, hisz.ID) AS ID
,IIF(tanora.ID IS NOT NULL, tanora.C_HELYETTESITESOKA, hisz.C_HELYETTESITESOKA) AS HelyettesitesOka
,tanora.C_MEGJEGYZES
FROM ('
END
IF @pIsNaplozott = 1 BEGIN
SET @sql += N'
SELECT
tn.C_DATUM AS C_HELYETTESITESNAPJA
,ISNULL(tn.C_ORASZAM, '''') AS Ora
,tn.C_TANARID
,tn.C_HELYETTESITESTIPUSA
,tn.C_HELYETTESITOTANARID
,tn.C_OSZTALYCSOPORTID
,tn.C_TANTARGYID
,tn.C_ORARENDIORAGROUPID
,tn.ID
,tn.C_HELYETTESITESOKA
,tn.C_MEGJEGYZES
FROM T_TANITASIORA tn
WHERE tn.TOROLT = ''F''
' + @whereTanora + '
) tanora '
END
IF @pIsNaplozott IS NULL OR @pIsNaplozott = 0 BEGIN
SET @sql += N'
SELECT
hisz.C_HELYETTESITESNAPJA AS C_HELYETTESITESNAPJA
,ISNULL(oo.C_ORASZAM, '''') AS Ora
,oo.C_TANARID
,hisz.C_HELYETTESITESTIPUS
,hisz.C_HELYETTESTANAROKID
,oo.C_OSZTALYCSOPORTID
,oo.C_TANTARGYID
,hisz.C_HELYETTESITETTORARENDID
,hisz.ID
,hisz.C_HELYETTESITESOKA
,null as C_MEGJEGYZES
FROM T_HELYETTESITESIIDOSZAK hisz
INNER JOIN T_ORARENDIORA oo ON oo.ID = hisz.C_HELYETTESITETTORARENDID
WHERE hisz.TOROLT = ''F''
' + @whereHisz + '
) hisz
FULL JOIN (
SELECT
tn.C_DATUM AS C_HELYETTESITESNAPJA
,IIF(tn.C_TANORANKIVULIFOGLALKOZAS = ''F'', tn.C_ORASZAM, '''') AS Ora
,tn.C_TANARID
,tn.C_HELYETTESITESTIPUSA
,tn.C_HELYETTESITOTANARID
,tn.C_OSZTALYCSOPORTID
,tn.C_TANTARGYID
,tn.C_ORARENDIORAGROUPID
,tn.ID
,tn.C_HELYETTESITESOKA
,tn.C_MEGJEGYZES
FROM T_TANITASIORA tn
WHERE tn.TOROLT = ''F''
' + @whereTanora + '
) tanora ON tanora.C_HELYETTESITESNAPJA = hisz.C_HELYETTESITESNAPJA
AND tanora.C_OSZTALYCSOPORTID = hisz.C_OSZTALYCSOPORTID
AND (
tanora.C_TANARID = hisz.C_HELYETTESTANAROKID OR
tanora.C_HELYETTESITOTANARID = hisz.C_HELYETTESTANAROKID)
AND tanora.C_TANTARGYID = hisz.C_TANTARGYID
' + IIF(@pIsNaplozott = 0, 'WHERE tanora.ID IS NULL', '')
END
SET @sql += N'
) AS helyettesites
INNER JOIN T_FELHASZNALO helyettesitett ON helyettesites.HelyettesitettId = helyettesitett.ID
INNER JOIN T_FELHASZNALO helyettesito ON helyettesites.HelyettesitoId = helyettesito.ID
INNER JOIN T_OSZTALYCSOPORT ocs ON helyettesites.OsztalyCsoportId = ocs.ID AND ocs.C_FELADATKATEGORIAID = (SELECT C_DEFAULTFELADATKATEGORIAID FROM T_TANEV WHERE ID = ocs.C_TANEVID)
INNER JOIN T_TANTARGY tantargy ON helyettesites.TantargyId = tantargy.ID
'
EXEC sp_executesql @sql, N'
@pKezdoDatum datetime
,@pVegDatum datetime
,@pHelyettesitesTipusId int
,@pHelyettesitettId int
,@pHelyettesitoId int
,@pIsNaplozott char(1)
,@pOsztalyCsoportId int
,@pTantargyId int'
,@pKezdoDatum = @pKezdoDatum
,@pVegDatum = @pVegDatum
,@pHelyettesitesTipusId = @pHelyettesitesTipusId
,@pHelyettesitettId = @pHelyettesitettId
,@pHelyettesitoId = @pHelyettesitoId
,@pIsNaplozott = @pIsNaplozott
,@pOsztalyCsoportId = @pOsztalyCsoportId
,@pTantargyId = @pTantargyId
END