﻿SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO

IF OBJECT_ID('[dbo].[sp_GetAllOsztalyCsoport]') IS NOT NULL 
BEGIN
  DROP PROCEDURE [dbo].[sp_GetAllOsztalyCsoport]
END  
GO

-- =============================================
-- Description:	<Osztályok/csoportok és egyéb osztályok/csoportok>
-- =============================================

CREATE PROCEDURE [dbo].[sp_GetAllOsztalyCsoport]
AS
BEGIN

	-- SET NOCOUNT ON added to prevent extra result sets from
	-- interfering with SELECT statements.
	SET NOCOUNT ON;

	SELECT 
		CASE WHEN osztalyCsoport.C_NEV NOT LIKE '%[^0-9]%' THEN CAST(LEFT(osztalyCsoport.C_NEV,9) AS INT) ELSE 2147483647 END NumberOrder,
		CASE WHEN LEFT(osztalyCsoport.C_NEV, 1) BETWEEN '0' AND '9' AND osztalyCsoport.C_NEV LIKE '%[^0-9]%' THEN CAST(LEFT(SUBSTRING(osztalyCsoport.C_NEV, 1, PATINDEX('%[^0-9]%', osztalyCsoport.C_NEV) - 1),9) AS INT) ELSE 2147483647 END NumberAndTextOrder,
		osztalyCsoport.ID					ID,
		osztalyCsoport.C_NEV				Nev,
		'1'									Tipus,
		NULL								CsoportTipusa,
		osztalyCsoport.C_EVFOLYAMTIPUSA		Evfolyam,
		0									OsztalyCsoportOrder
	FROM 
		T_OSZTALYCSOPORT osztalyCsoport
		INNER JOIN T_OSZTALY osztaly
			ON osztaly.ID = osztalyCsoport.ID
	WHERE 
		osztalyCsoport.TOROLT = 'F'
			
	UNION ALL
			
	SELECT
		CASE WHEN osztalyCsoport.C_NEV NOT LIKE '%[^0-9]%' THEN CAST(LEFT(osztalyCsoport.C_NEV,9) AS INT) ELSE 2147483647 END NumberOrder,
		CASE WHEN LEFT(osztalyCsoport.C_NEV, 1) BETWEEN '0' AND '9' AND osztalyCsoport.C_NEV LIKE '%[^0-9]%' THEN CAST(LEFT(SUBSTRING(osztalyCsoport.C_NEV, 1, PATINDEX('%[^0-9]%', osztalyCsoport.C_NEV) - 1),9) AS INT) ELSE 2147483647 END NumberAndTextOrder,
		osztalyCsoport.ID					ID,
		osztalyCsoport.C_NEV				Nev,
		'1'									Tipus,
		csoport.C_TIPUSA					CsoportTipusa,
		osztalyCsoport.C_EVFOLYAMTIPUSA		Evfolyam,
		1									OsztalyCsoportOrder
	FROM 
		T_OSZTALYCSOPORT osztalyCsoport
		INNER JOIN T_CSOPORT csoport
			ON csoport.ID = osztalyCsoport.ID
	WHERE 
		osztalyCsoport.TOROLT = 'F'
	ORDER BY 
		OsztalyCsoportOrder, NumberOrder ASC, NumberAndTextOrder ASC, osztalyCsoport.C_NEV ASC

END