76 lines
		
	
	
		
			2.6 KiB
		
	
	
	
		
			Transact-SQL
		
	
	
	
	
	
			
		
		
	
	
			76 lines
		
	
	
		
			2.6 KiB
		
	
	
	
		
			Transact-SQL
		
	
	
	
	
	
IF OBJECT_ID('dbo.fnGetDokumentumPedagogusOraszam') IS NOT NULL BEGIN
 | 
						|
  DROP FUNCTION dbo.fnGetDokumentumPedagogusOraszam
 | 
						|
END
 | 
						|
GO
 | 
						|
 | 
						|
SET ANSI_NULLS ON
 | 
						|
GO
 | 
						|
SET QUOTED_IDENTIFIER ON
 | 
						|
GO
 | 
						|
 | 
						|
CREATE FUNCTION dbo.fnGetDokumentumPedagogusOraszam (@PedagogusId INT, @isKlebersberg BIT)
 | 
						|
  RETURNS NVARCHAR(MAX)
 | 
						|
BEGIN  
 | 
						|
DECLARE @value NVARCHAR(MAX)
 | 
						|
IF (@isKlebersberg = 0)
 | 
						|
BEGIN 
 | 
						|
	SET @value = (SELECT TOP 1 CAST(C_KOTELEZOORASZAM AS NVARCHAR(MAX)) FROM T_MUNKAUGYIADATOK_OSSZES WHERE C_ALKALMAZOTTID = @PedagogusId AND TOROLT = 'F')
 | 
						|
END
 | 
						|
 | 
						|
ELSE
 | 
						|
 | 
						|
BEGIN
 | 
						|
DECLARE @isKollegium INT =(
 | 
						|
SELECT TOP 1
 | 
						|
	munk.C_ALKALMAZOTTID 
 | 
						|
FROM T_MUNKAUGYIADATOK_OSSZES munk
 | 
						|
	INNER JOIN T_FELADATELLATASIHELY_OSSZES fhely ON fhely.Id = munk.C_FELADATELLATASIHELYID
 | 
						|
WHERE 	
 | 
						|
	fhely.C_OKTATASINEVELESIFELADATTIPUS = 1165
 | 
						|
	AND munk.TOROLT = 'F'
 | 
						|
	AND fhely.TOROLT = 'F'
 | 
						|
	AND munk.C_ALKALMAZOTTID = @PedagogusId)
 | 
						|
 | 
						|
DECLARE @isEgyMi INT=(
 | 
						|
SELECT TOP 1
 | 
						|
	munk.C_ALKALMAZOTTID  
 | 
						|
FROM T_MUNKAUGYIADATOK_OSSZES munk
 | 
						|
	INNER JOIN T_FELADATELLATASIHELY_OSSZES fhely ON fhely.Id = munk.C_FELADATELLATASIHELYID
 | 
						|
WHERE
 | 
						|
	fhely.C_OKTATASINEVELESIFELADATTIPUS IN (1177 /* óvoda gyógy.*/, 1178 /*ált. isk. gyógyp.*/, 6711 /*utazó gyógyp.*/, 1173 /*konduktív ped. ell*/, 6570 /*fejlesztő nev-okt*/)
 | 
						|
	AND munk.C_MUNKAKORTIPUSA IN (597 /*gyógypedagógus*/, 598 /*konduktor*/, 555 /*logopédus*/, 6421 /*pszichopedagógus*/)
 | 
						|
	AND munk.C_ALKALMAZOTTID = @PedagogusId
 | 
						|
	AND munk.TOROLT = 'F'
 | 
						|
	AND fhely.TOROLT = 'F')
 | 
						|
 | 
						|
 | 
						|
 | 
						|
SELECT DISTINCT  @value = 
 | 
						|
		IIF(C_VEZETOIORASZAMOK != 6571, CAST(C_KOTELEZOORASZAM AS NVARCHAR(MAX)) + ' (vezető)', --van vezetői óraszáma, ha nincs
 | 
						|
			--ha teljes munkaidős
 | 
						|
			CASE 
 | 
						|
				WHEN C_FOGLALKOZTATASTIPUS = 6465 AND C_MUNKAKORTIPUSA NOT IN (557,559,560,561,562,563,564,565,566,567,568,583,584,585,589,594,633,3026,6382,6388,6421,6438,7356) --ha teljes munkaidős és nem NOKS
 | 
						|
					THEN IIF(@isKollegium IS NOT NULL, '30', --ha kollégiumi feh-n alkalmazott, ha nem
 | 
						|
					IIF(C_SZAKERTOMESTERPEDAGOGUS = 'T', '18', --ha szakértőmesterpedagógus, ha nem
 | 
						|
						IIF(@isEgyMi IS NOT NULL, '20', --ha gyógypedagógus, ha nem					
 | 
						|
								IIF(C_BESOROLASIFOKOZAT = 3044, '20',  --ha gyakornok, ha nem akkor					
 | 
						|
								'22-26'))))
 | 
						|
				WHEN C_FOGLALKOZTATASTIPUS = 6466 --Részmunkaidős
 | 
						|
					THEN CAST(C_RESZMUNKAIDOSZAZALEK AS NVARCHAR(MAX)) + '%'
 | 
						|
				WHEN C_FOGLALKOZTATASTIPUS = 6467 --Óraadó
 | 
						|
					THEN
 | 
						|
						CAST(C_KOTELEZOORASZAM AS NVARCHAR(MAX)) 	
 | 
						|
				ELSE --betöltetlen álláshely 
 | 
						|
					'-'
 | 
						|
			END
 | 
						|
			)
 | 
						|
FROM T_MUNKAUGYIADATOK_OSSZES munk
 | 
						|
WHERE 
 | 
						|
	munk.TOROLT = 'F'
 | 
						|
	AND munk.C_ALKALMAZOTTID = @PedagogusId
 | 
						|
 | 
						|
END
 | 
						|
	
 | 
						|
	RETURN @value 
 | 
						|
 | 
						|
END; |