
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO

-- =============================================
-- Author:		<Author,,Name>
-- Create date: <Create Date,,>
-- Description:	<Description,,>
-- =============================================
ALTER PROCEDURE [dbo].[sp_GetListaReklamNaWydanie]
	-- Add the parameters for the stored procedure here
	@nrwydania INT,
	@tytul INT,
	@dzial VARCHAR(2000) = NULL,
	@agencja INT = NULL,
	@agent INT = NULL,
	@grzbiet VARCHAR(2000) = NULL
	
AS
BEGIN
	-- SET NOCOUNT ON added to prevent extra result sets from
	-- interfering with SELECT statements.
	SET NOCOUNT ON;

	DECLARE @dzialTable TABLE
	(
		Id int
	)

	IF @dzial='0'
		SET @dzial=NULL

	DECLARE @wszystkieDzialy bit
	SET @wszystkieDzialy=0

	IF @dzial IS NOT NULL
	BEGIN
		INSERT INTO @dzialTable
		SELECT * FROM [BAZA_REKLAM].[dbo].[SplitAsTable] (@dzial, ',')
	END

	IF (SELECT Count(Id) FROM @dzialTable) > 0
	SET @wszystkieDzialy=1

	DECLARE @grzbietTable TABLE
	(
		Id int
	)

	IF @grzbiet='0' OR @grzbiet IS NULL
		SET @grzbiet=NULL

	IF @dzial IS NOT NULL
	BEGIN
		INSERT INTO @grzbietTable
		SELECT * FROM [BAZA_REKLAM].[dbo].[SplitAsTable] (@grzbiet, ',')
	END

    -- Insert statements for procedure here
	SELECT R.ReklamaID, 
	R.TYTUŁ, 
	R.[ID REKLAMY], 
	R.SZER, 
	R.WYS, 
	R.KOLOR, 
	R.[NICK NAME], 
	R.MOD_TYP, 
	R.RABAT, 
	R.STRONA AS lokalizacja, 
	lokalizacja1=L.Text,
	dbo.[UKAŻE SIĘ W NR].[Nr Wydania] AS NR, R.[ZATWIERDZONO DO DRUKU], 
	R.GRZBIET, 
	dbo.REKLAMA_STRONA.STRONA, 
	A.NazwaKrotka AS Agencja, 
	R.[SYMBOL AKWIZYTORA], 
	R.KROTNOŚĆ, 
	R.NETTO, 
	G.Nazwa AS nazwaGrzbietu, 
	A2.ID_AGENTA, 
	R.[CENA JEDN], 
	R.[RABAT WARTOŚĆ], 
	dbo.[UKAŻE SIĘ W NR].netto AS nettoZEmisji, 
	dbo.[UKAŻE SIĘ W NR].zafakturowana,
	D.Name AS Dzial,
	Roz.Name AS Rozdzial
		
	FROM dbo.AGENCI AS A2 
	LEFT OUTER JOIN dbo.AGENCJE AS A ON A.Id_agencji = A2.ID_AGENCJI 
	INNER JOIN dbo.REKLAMA AS R ON A2.Symbol = R.[SYMBOL AKWIZYTORA] 
	INNER JOIN dbo.[UKAŻE SIĘ W NR] ON R.ReklamaID = dbo.[UKAŻE SIĘ W NR].ReklamaId 
	LEFT OUTER JOIN dbo.REKLAMA_STRONA ON R.ReklamaID = dbo.REKLAMA_STRONA.ReklamaId AND dbo.[UKAŻE SIĘ W NR].[Nr Wydania] = dbo.REKLAMA_STRONA.NR_WYDANIA 
	LEFT OUTER JOIN dbo.GRZBIETY AS G ON R.GRZBIET = G.ID 
	LEFT OUTER JOIN dbo.[LISTA TYTUŁÓW] AS T ON R.TYTUŁ = T.SYMB
	LEFT OUTER JOIN dbo.ReklamaLokalizacja AS L ON L.ID = R.AdLocationId
	LEFT OUTER JOIN dbo.Dzial AS D ON R.ogl_dzial = D.Id
	LEFT OUTER JOIN dbo.Rozdzial AS Roz ON R.ogl_rozdzial = Roz.Id
	WHERE 
	(R.[ZATWIERDZONO DO DRUKU] = 1) 
	AND (dbo.[UKAŻE SIĘ W NR].[Nr Wydania] = @nrwydania) 
	AND (dbo.[UKAŻE SIĘ W NR].status <> 2) 
	AND (T.id = @tytul) 
	AND 
	(
	(@agencja IS NULL AND @agent IS NULL)
	OR 
	(@agencja IS NULL AND A2.ID_AGENTA = @agent)
	OR
	(A.Id_agencji = @agencja AND @agent IS NULL)
	OR
	(A.Id_agencji = @agencja  AND A2.ID_AGENTA = @agent)
	)
	AND
	(@wszystkieDzialy = 0 OR R.ogl_dzial IN (SELECT Id FROM @dzialTable) OR R.ogl_dzial IS NULL)
	AND
	(R.GRZBIET IN (SELECT Id FROM @grzbietTable))

	ORDER BY R.[ID REKLAMY]	


END
GO

SET ANSI_NULLS OFF
GO
SET QUOTED_IDENTIFIER OFF
GO

