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,140 @@
DROP PROCEDURE IF EXISTS sp_GetKozossegiSzolgalatokReszletek
GO
-- =============================================
-- Description: <Előszedjük a tanuló közösségi szolgálatait részletesen>
-- =============================================
CREATE PROCEDURE sp_GetKozossegiSzolgalatokReszletek
@pIntezmenyId int
,@pTanevId int
,@pTanuloId int = NULL
,@pTanarId int = NULL
,@pToroltElemek char = 'F'
,@pIntervallumKezdete datetime = NULL
,@pIntervallumVege datetime = NULL
,@pTeljesitesHelye nvarchar(100) = NULL
,@pOraszam int = NULL
,@pTanuloNev nvarchar (100) = NULL
,@pOsztalyNev nvarchar (100) = NULL
,@pKozossegiSzolgalatTipusa int = NULL
AS BEGIN
SET NOCOUNT ON;
DECLARE
@sql nvarchar (max)
,@selectSql nvarchar (max)
,@whereSql nvarchar (max)
,@orderSql nvarchar (max)
SET @selectSql = N'
SELECT
KozossegiSzolgalat.ID AS ID
,KozossegiSzolgalat.C_INTERVALLUMKEZDETE AS IntervallumKezdete
,KozossegiSzolgalat.C_INTERVALLUMVEGE AS IntervallumVege
,KozossegiSzolgalat.C_ROGZITESDATUM AS RogzitesDatuma
,KozossegiSzolgalat.C_TELJESITESIHELYE AS TeljesitesiHelye
,KozossegiSzolgalat.C_ORASZAM AS Oraszam
,KozossegiSzolgalat.C_KOZOSSEGISZOLGALATTIPUSA AS KozossegiSzolgalatTipusa
,KozossegiSzolgalat.C_MEGJEGYZES AS Megjegyzes
,KozossegiSzolgalat.TOROLT AS Torolt
,ISNULL(@pTanuloId, AktTanuloId.TanuloId) AS TanuloId
,Tanulo.C_NYOMTATASINEV AS TanuloNev
,dbo.fnGetTanuloAktualisOsztaly(ISNULL(@pTanuloId, AktTanuloId.TanuloId)) AS OsztalyNev
,KozossegiSzolgalat.C_UGYIRATSZAM AS Ugyiratszam
,CASE WHEN KozossegiSzolgalat.C_FELJEGYZOID = @pTanarId AND @pToroltElemek = ''T'' THEN ''T'' ELSE ''F'' END AS Modosithato
FROM T_TANULOKOZOSSEGISZOLGALAT_OSSZES KozossegiSzolgalat
INNER JOIN T_FELHASZNALO_OSSZES Tanulo ON KozossegiSzolgalat.C_TANULOID = Tanulo.ID
AND Tanulo.TOROLT = IIF(@pToroltElemek = ''T'', Tanulo.TOROLT, ''F'')
LEFT JOIN (
SELECT
f.ID TanuloId
,C_ANYJANEVE
,C_SZULETESIDATUM
,C_SZULETESINEV
,C_SZULETESIHELY
FROM T_FELHASZNALO_OSSZES f
INNER JOIN T_TANULO_OSSZES t ON t.ID = f.ID AND t.TOROLT = IIF(@pToroltElemek = ''T'', t.TOROLT, ''F'')
WHERE f.TOROLT = IIF(@pToroltElemek = ''T'', TOROLT, ''F'')
AND f.C_TANEVID = @pTanevId ) AktTanuloId ON
AktTanuloId.C_ANYJANEVE = Tanulo.C_ANYJANEVE
AND AktTanuloId.C_SZULETESIDATUM = Tanulo.C_SZULETESIDATUM
AND AktTanuloId.C_SZULETESINEV = Tanulo.C_SZULETESINEV
AND AktTanuloId.C_SZULETESIHELY = Tanulo.C_SZULETESIHELY'
SET @whereSql = N'
WHERE KozossegiSzolgalat.TOROLT = IIF(@pToroltElemek = ''T'', KozossegiSzolgalat.TOROLT, ''F'')'
IF @pTanuloId IS NOT NULL BEGIN
SET @whereSql += N'
AND AktTanuloId.TanuloId = @pTanuloId'
END
IF @pIntervallumKezdete IS NOT NULL BEGIN
SET @whereSql += N'
AND KozossegiSzolgalat.C_INTERVALLUMKEZDETE >= @pIntervallumKezdete'
END
IF @pIntervallumVege IS NOT NULL BEGIN
SET @whereSql += N'
AND KozossegiSzolgalat.C_INTERVALLUMVEGE <= @pIntervallumVege'
END
IF @pTeljesitesHelye IS NOT NULL BEGIN
SET @whereSql += N'
AND KozossegiSzolgalat.C_TELJESITESIHELYE = @pTeljesitesHelye'
END
IF @pOraszam IS NOT NULL BEGIN
SET @whereSql += N'
AND KozossegiSzolgalat.C_ORASZAM = @pOraszam'
END
IF @pKozossegiSzolgalatTipusa IS NOT NULL BEGIN
SET @whereSql += N'
AND KozossegiSzolgalat.C_KOZOSSEGISZOLGALATTIPUSA = @pKozossegiSzolgalatTipusa'
END
IF @pTanuloNev IS NOT NULL BEGIN
SET @whereSql += N'
AND Tanulo.C_NYOMTATASINEV = @pTanuloNev'
END
IF @pOsztalyNev IS NOT NULL BEGIN
SET @whereSql += N'
AND dbo.fnGetTanuloAktualisOsztaly(KozossegiSzolgalat.C_TANULOID) = @pOsztalyNev'
END
SET @orderSql = N'
ORDER BY KozossegiSzolgalat.C_INTERVALLUMKEZDETE DESC'
SET @sql = @selectSql + @whereSql + @orderSql
EXEC sp_executesql @sql, N'
@pIntezmenyId int
,@pTanevId int
,@pTanuloId int = NULL
,@pTanarId int = NULL
,@pToroltElemek char
,@pIntervallumKezdete datetime = NULL
,@pIntervallumVege datetime = NULL
,@pTeljesitesHelye nvarchar (100) = NULL
,@pOraszam int = NULL
,@pTanuloNev nvarchar (100) = NULL
,@pOsztalyNev nvarchar (100) = NULL
,@pKozossegiSzolgalatTipusa int = NULL'
,@pIntezmenyId = @pIntezmenyId
,@pTanevId = @pTanevId
,@pTanuloId = @pTanuloId
,@pTanarId = @pTanarId
,@pToroltElemek = @pToroltElemek
,@pIntervallumKezdete = @pIntervallumKezdete
,@pIntervallumVege = @pIntervallumVege
,@pTeljesitesHelye = @pTeljesitesHelye
,@pOraszam = @pOraszam
,@pTanuloNev = @pTanuloNev
,@pOsztalyNev = @pOsztalyNev
,@pKozossegiSzolgalatTipusa = @pKozossegiSzolgalatTipusa
END
GO

View file

@ -0,0 +1,74 @@
DROP PROCEDURE IF EXISTS [uspGetKozossegiSzolgalatNaplo]
GO
CREATE PROCEDURE [dbo].[uspGetKozossegiSzolgalatNaplo]
@pIntezmenyId int
,@pTanevId int
,@pOsztalyCsoportId int
AS
BEGIN
SET NOCOUNT ON;
SELECT
C_NEV AS IntezmenyNev
,dbo.fnGetDokumentumIntezmenyCime(@pTanevId) IntezmenyCim
FROM T_INTEZMENYADATOK_OSSZES
WHERE C_TANEVID = @pTanevId
CREATE TABLE #Tanulok (
TanuloId int
,TanuloNev nvarchar(255)
,OsztalyNev nvarchar(255)
)
INSERT INTO #Tanulok
SELECT
t.TanuloId
,f.C_NYOMTATASINEV
,ocs.C_NEV
FROM fnGetDokumentumOsztalyokCsoportokTanuloi(@pTanevId, @pOsztalyCsoportId, 'F') t
INNER JOIN T_FELHASZNALO_OSSZES f ON f.ID = t.TanuloId AND f.TOROLT = 'F'
INNER JOIN T_OSZTALYCSOPORT_OSSZES ocs ON ocs.ID = @pOsztalyCsoportId
SELECT * FROM #Tanulok
CREATE TABLE #NaploAdatok (
ID int
,IntervallumKezdete datetime
,IntervallumVege datetime
,RogzitesDatuma datetime
,TeljesitesiHelye nvarchar(255)
,Oraszam numeric(10,2)
,KozossegiSzolgalatTipusaId int
,Megjegyzes nvarchar(1000)
,Torolt char(1)
,TanuloId int
,TanuloNev nvarchar(255)
,OsztalyNev nvarchar(255)
,Ugyiratszam nvarchar(50)
,Modosithato char(1)
)
INSERT INTO #NaploAdatok
EXEC sp_GetKozossegiSzolgalatokReszletek @pIntezmenyId, @pTanevId
SELECT DISTINCT
na.ID
,dbo.fnGetDokumentumDatumFormatum(na.IntervallumKezdete) AS IntervallumKezdete
,dbo.fnGetDokumentumDatumFormatum(na.IntervallumVege) AS IntervallumVege
,dbo.fnGetDokumentumDatumFormatum(na.RogzitesDatuma) AS RogzitesDatuma
,na.TeljesitesiHelye
,na.Oraszam
,d.C_NAME AS KozossegiSzolgalatTipusa
,na.Megjegyzes
,na.Torolt
,na.TanuloId
,na.Ugyiratszam
,na.Modosithato
FROM #NaploAdatok na
LEFT JOIN T_DICTIONARYITEMBASE_OSSZES d ON d.ID = na.KozossegiSzolgalatTipusaId
AND d.TOROLT = 'F'
AND d.C_INTEZMENYID = @pIntezmenyId
AND d.C_TANEVID = @pTanevId
END
GO