kreta/Kreta.DataAccess.Migrations/Scripts/Archive/20180904112805_KRETA_6641/fnGetDokumentumTanuloOrGondviseloCim.sql
2024-03-13 00:33:46 +01:00

59 lines
No EOL
2.4 KiB
Transact-SQL

IF OBJECT_ID('fnGetDokumentumTanuloOrGondviseloCim') IS NOT NULL BEGIN
DROP FUNCTION fnGetDokumentumTanuloOrGondviseloCim
END
GO
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
CREATE FUNCTION fnGetDokumentumTanuloOrGondviseloCim (@TanuloOrGondviselo BIT, @pTanevId INT, @pOsztalyId INT)
RETURNS @result TABLE
(
TanuloId INT,
Cim NVARCHAR(MAX),
CimTipusa INT,
GondviseloId INT
)
AS
BEGIN
IF @TanuloOrGondviselo = 0 BEGIN
INSERT INTO @result(TanuloId, Cim, CimTipusa, GondviseloId)
SELECT DISTINCT
TanuloId AS TanuloId
,cim.C_IRANYITOSZAM + ' ' + cim.C_VAROS + ', ' + cim.C_KOZTERULET + ' ' + kozterulet.C_NAME + ' ' + cim.C_HAZSZAM AS Cim
,cim.C_CIMTIPUSA AS CimTipusa
,cim.C_GONDVISELOID AS GondviseloId
FROM fnGetDokumentumOsztalyokCsoportokTanuloi(@pTanevId, @pOsztalyId, 'T') tanulo
CROSS APPLY (SELECT TOP 1 WITH TIES c.C_IRANYITOSZAM, c.C_VAROS, c.C_KOZTERULET, c.C_HAZSZAM, c.C_KOZTERULETJELLEGE, c.C_CIMTIPUSA, c.C_GONDVISELOID
FROM T_CIM_OSSZES c
WHERE c.C_FELHASZNALOID = tanulo.TanuloId
AND c.C_TANEVID = @pTanevId
AND c.TOROLT = 'F'
AND c.C_GONDVISELOID IS NULL
ORDER BY C_ALAPERTELMEZETT DESC ) cim
INNER JOIN T_DICTIONARYITEMBASE_OSSZES kozterulet ON kozterulet.Id = cim.C_KOZTERULETJELLEGE AND kozterulet.C_TANEVID = @pTanevId
END
ELSE IF @TanuloOrGondviselo = 1 BEGIN
INSERT INTO @result(TanuloId, Cim, CimTipusa, GondviseloId)
SELECT DISTINCT
Gondviselo.TanuloId AS TanuloId
,cim.C_IRANYITOSZAM + ' ' + cim.C_VAROS + ', ' + cim.C_KOZTERULET + ' ' + kozterulet.C_NAME + ' ' + cim.C_HAZSZAM AS Cim
,cim.C_CIMTIPUSA AS CimTipusa
,Gondviselo.GondviseloId AS GondviseloId
FROM fnGetDokumentumGondviselok (@pOsztalyId, @pTanevId, 'F', 'T') Gondviselo
CROSS APPLY (SELECT TOP 1 WITH TIES c.C_IRANYITOSZAM, c.C_VAROS, c.C_KOZTERULET, c.C_HAZSZAM, c.C_KOZTERULETJELLEGE, c.C_CIMTIPUSA, c.C_GONDVISELOID
FROM T_CIM_OSSZES c
WHERE c.C_GONDVISELOID = Gondviselo.GondviseloId
AND c.C_TANEVID = @pTanevId
AND c.TOROLT = 'F'
AND c.C_GONDVISELOID IS NOT NULL
ORDER BY C_ALAPERTELMEZETT DESC ) cim
INNER JOIN T_DICTIONARYITEMBASE_OSSZES kozterulet ON kozterulet.Id = cim.C_KOZTERULETJELLEGE AND kozterulet.C_TANEVID = @pTanevId
END
RETURN
END