Files
2024-03-13 00:33:46 +01:00

101 lines
4.1 KiB
Transact-SQL

CREATE OR ALTER PROCEDURE dbo.uspApaczaiTanuloAdatok(
@IntezmenyGUID uniqueidentifier,
@TanuloIDPEgyediAzonosito uniqueidentifier,
@TanevSorszam int = null
)
AS
DECLARE @IntezmenyID int;
DECLARE @TanevID int;
SELECT @IntezmenyID = i.ID, @TanevID = t.ID
FROM T_INTEZMENY i
INNER JOIN T_TANEV t ON t.C_INTEZMENYID = i.ID AND t.TOROLT = 'F'
WHERE i.TOROLT = 'F'
AND i.C_GUID = @IntezmenyGUID
AND (t.C_AKTIV = 'T' OR t.C_SORSZAM = @TanevSorszam);
IF @@ROWCOUNT = 0 THROW 50001, N'Intézmény, tanév nem található vagy a tanév nem aktív', 0;
SELECT
cim1.C_VAROS AS AllandoLakcim_Telepules,
cim1.C_IRANYITOSZAM AS AllandoLakcim_Iranyitoszam,
CONCAT(cim1.C_KOZTERULET, ' ', cim1.C_KOZTERULETJELLEGENEV + ' ', cim1.C_HAZSZAM, ' ' + cim1.C_LEPCSOHAZ, ' ' + cim1.C_EMELET, ' ' + cim1.C_AJTO) AS AllandoLakcim_Cim,
cim2.C_VAROS AS TartozkodasiCim_Telepules,
cim2.C_IRANYITOSZAM AS TartozkodasiCim_Iranyitoszam,
CONCAT(cim2.C_KOZTERULET, ' ', cim2.C_KOZTERULETJELLEGENEV + ' ', cim2.C_HAZSZAM, ' ' + cim2.C_LEPCSOHAZ, ' ' + cim2.C_EMELET, ' ' + cim2.C_AJTO) AS TartozkodasiCim_Cim,
email.C_EMAILCIM AS EmailCim,
tel.C_TELEFONSZAM AS TelefonSzam,
t.C_BANKSZAMLASZAM AS Bankszamlaszam,
t.C_BANKSZAMLATULAJNEVE AS BankszamlaTulajdonos,
d1.C_NAME AS BankszamlaTulajdonosTipus
FROM T_FELHASZNALO f
INNER JOIN T_TANULO t on t.ID = f.ID
LEFT JOIN T_DICTIONARYITEMBASE d1 on d1.ID = t.C_BANKSZAMLATULAJDONOSTIPUSID AND d1.C_TANEVID = t.C_ALTANEVID AND d1.C_TYPE = 'BankszamlaTulajdonosTipus' AND d1.TOROLT = 'F'
OUTER APPLY (
SELECT TOP 1 *,
CASE WHEN c.C_CIMTIPUSA = 907 AND c.C_ALAPERTELMEZETT = 'T' THEN 1 -- Állandó lakcím, alapértelemezett
WHEN c.C_CIMTIPUSA = 907 AND c.C_ALAPERTELMEZETT = 'F' THEN 2 -- Állandó lakcím, nem alapértelemezett
WHEN c.C_ALAPERTELMEZETT = 'T' THEN 3 -- Bármilyen cím, alapértelemezett
WHEN c.C_ALAPERTELMEZETT = 'F' THEN 4 -- Bármilyen cím, nem alapértelemezett
ELSE 5
END AS Prioritas
FROM T_CIM c
WHERE c.C_INTEZMENYID = f.C_INTEZMENYID
AND c.C_TANEVID = f.C_TANEVID
AND c.C_FELHASZNALOID = f.ID
AND c.C_GONDVISELOID IS NULL
AND c.TOROLT = 'F'
ORDER BY Prioritas
) cim1
OUTER APPLY (
SELECT TOP 1 *,
CASE WHEN c.C_CIMTIPUSA = 909 AND c.C_ALAPERTELMEZETT = 'T' THEN 1 -- Tartózkodási cím, alapértelemezett
WHEN c.C_CIMTIPUSA = 909 AND c.C_ALAPERTELMEZETT = 'F' THEN 2 -- Tartózkodási cím, nem alapértelemezett
WHEN c.C_CIMTIPUSA = 907 AND c.C_ALAPERTELMEZETT = 'T' THEN 3 -- Állandó lakcím, alapértelemezett
WHEN c.C_CIMTIPUSA = 907 AND c.C_ALAPERTELMEZETT = 'F' THEN 4 -- Állandó lakcím, nem alapértelemezett
WHEN c.C_ALAPERTELMEZETT = 'T' THEN 5 -- Bármilyen cím, alapértelemezett
WHEN c.C_ALAPERTELMEZETT = 'F' THEN 6 -- Bármilyen cím, nem alapértelemezett
ELSE 7
END AS Prioritas
FROM T_CIM c
WHERE c.C_INTEZMENYID = f.C_INTEZMENYID
AND c.C_TANEVID = f.C_TANEVID
AND c.C_FELHASZNALOID = f.ID
AND c.C_GONDVISELOID IS NULL
AND c.TOROLT = 'F'
ORDER BY Prioritas
) cim2
OUTER APPLY (
SELECT TOP 1 *,
CASE WHEN e.C_EMAILTIPUSA = 1025 AND e.C_ALAPERTELMEZETT = 'T' THEN 1 -- Hivatalos, alapértelmezett
WHEN e.C_EMAILTIPUSA = 1025 AND e.C_ALAPERTELMEZETT = 'F' THEN 2 -- Hivatalos, nem alapértelmezett
WHEN e.C_ALAPERTELMEZETT = 'T' THEN 3
WHEN e.C_ALAPERTELMEZETT = 'F' THEN 4
ELSE 5
END AS Prioritas
FROM T_EMAIL e
WHERE e.C_INTEZMENYID = f.C_INTEZMENYID
AND e.C_TANEVID = f.C_TANEVID
AND e.C_FELHASZNALOID = f.ID
AND e.C_GONDVISELOID IS NULL
AND e.TOROLT = 'F'
ORDER BY Prioritas
) email
OUTER APPLY (
SELECT TOP 1 *
FROM T_TELEFON t
WHERE t.C_INTEZMENYID = f.C_INTEZMENYID
AND t.C_TANEVID = f.C_TANEVID
AND t.C_FELHASZNALOID = f.ID
AND t.C_GONDVISELOID IS NULL
AND t.TOROLT = 'F'
ORDER BY t.C_ALAPERTELMEZETT DESC
) tel
WHERE f.C_INTEZMENYID = @IntezmenyID
AND f.C_TANEVID = @TanevID
AND f.C_IDPEGYEDIAZONOSITO = @TanuloIDPEgyediAzonosito
AND f.TOROLT = 'F';
IF @@ROWCOUNT = 0 THROW 50002, N'Felhasználó nem található', 0;
GO