﻿-- ================================================
-- Template generated from Template Explorer using:
-- Create Procedure (New Menu).SQL
--
-- Use the Specify Values for Template Parameters 
-- command (Ctrl-Shift-M) to fill in the parameter 
-- values below.
--
-- This block of comments will not be included in
-- the definition of the procedure.
-- ================================================
IF OBJECT_ID('sp_GetHianyzoDuplikaltTanarokFeladatellatasiHelynelkul') IS NOT NULL BEGIN
  DROP PROCEDURE sp_GetHianyzoDuplikaltTanarokFeladatellatasiHelynelkul
END
GO 
-- =============================================
-- Author:		Sólyom Péter
-- Create date: 2016.04.25.
-- Description:	Az átadott xmlből (tanárok nevei) megvizsgálja hogy létezik ilyen nevű tanár a rendszerben és a név alapján egyértelmű (duplikált) vagy születési dátum alapján szűrt.
-- =============================================
CREATE PROCEDURE sp_GetHianyzoDuplikaltTanarokFeladatellatasiHelynelkul
	-- Add the parameters for the stored procedure here
   @tanarNevekXml xml
  ,@tanevId int
  ,@intezmenyId int
AS
BEGIN
	-- SET NOCOUNT ON added to prevent extra result sets from
	-- interfering with SELECT statements.
	SET NOCOUNT ON;
	DECLARE @TEMPTANAROK TABLE ( TANARNEV NVARCHAR(255), SZULETESIDATUM DATE )
	INSERT INTO @TEMPTANAROK
    SELECT DISTINCT TanarNev = Tanar.value('(TanarNev)[1]', 'NVARCHAR(255)'),
			SzuletesiDatum = Tanar.value('(SzuletesiDatum)[1]', 'DATE')
		FROM @tanarNevekXml.nodes('/ArrayOfTanarNevekExcelModel/TanarNevekExcelModel') as Tanarok(Tanar)
	
	SELECT TANAROK.TANARNEV, TANAROK.SZULETESIDATUM, COUNT(FELH.ID) TANAROKSZAMA
		FROM @TEMPTANAROK TANAROK
			LEFT JOIN  (SELECT * FROM T_FELHASZNALO_OSSZES
							WHERE
								TOROLT = 'F' AND C_TANEVID = @tanevId) FELH
				ON ( RTRIM(LTRIM(TANAROK.TANARNEV)) = FELH.C_NYOMTATASINEV 
						AND  NOT EXISTS (SELECT 1 FROM T_TANULO_OSSZES t
											where t.ID = FELH.ID AND t.C_ALTANEVID = @tanevId)
												AND (TANAROK.SZULETESIDATUM IS NULL OR TANAROK.SZULETESIDATUM = FELH.C_SZULETESIDATUM)
						AND EXISTS ( SELECT 1 FROM T_MUNKAUGYIADATOK_OSSZES tm 
										WHERE tm.C_ALKALMAZOTTID = FELH.ID AND tm.TOROLT='F' AND tm.C_TANEVID = @tanevId)					 
		    AND FELH.TOROLT = 'F') 
			GROUP BY TANAROK.TANARNEV, TANAROK.SZULETESIDATUM
			HAVING (COUNT(FELH.ID) <> 1)
			ORDER BY TANAROK.TANARNEV, TANAROK.SZULETESIDATUM

END
GO
