
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO

ALTER PROCEDURE [dbo].[sp_adMotoRaportWyroznienia]
	@rok int,
	@miesiac int
AS

DECLARE @prowizjaPoz DECIMAL(9,4)
DECLARE @prowizjaKat DECIMAL(9,4)

exec sp_GetProcentProwizjiByAgencja 6, @rok, @miesiac, @prowizjaPoz OUTPUT
exec sp_GetProcentProwizjiByAgencja 4, @rok, @miesiac, @prowizjaKat OUTPUT

DECLARE @Wplywy TABLE
(
	IdFaktury INT,
	NumerFaktury INT,
	Agent nvarchar(100),
	SymbolFaktury nvarchar(100),
	DataWplaty DATETIME,
	Wyroznienie MONEY,
	DataFaktury DATETIME,
    KwotaProwizji MONEY,
	Prowizja MONEY,
	Agencja nvarchar(100)
)
DECLARE @Sprzedaz TABLE
(
	IdFaktury INT,
	NumerFaktury INT,
	Agent nvarchar(100),
	SymbolFaktury nvarchar(100),
	DataWplaty DATETIME,
	Wyroznienie MONEY,
	DataFaktury DATETIME,
    KwotaProwizji MONEY,
	Prowizja MONEY,
	Agencja nvarchar(100)
)

-- wplywy z wyroznien
INSERT INTO @Wplywy
SELECT ID_Faktury AS IdFaktury, NumerFaktury, Symbol AS Agent, Nr_Fk AS SymbolFaktury, DataWplaty, ROUND((Netto * 0.15)/1.15,2) AS Wyroznienie, DATA_WYSTAWIENIA AS DataFaktury,
ROUND(((Netto * 0.15)/1.15)*procentProwizji, 2) AS KwotaProwizji, procentProwizji AS Prowizja, Agencja

FROM         WplywyByTytul_Wyroznienia
WHERE     
YEAR(dataWplaty) = @rok 
AND MONTH(dataWplaty) = @miesiac 
ORDER BY Symbol, NumerFaktury

UPDATE @Wplywy
SET Prowizja = @prowizjaPoz, KwotaProwizji=(@prowizjaPoz*(Wyroznienie * 0.15)/1.15), Wyroznienie = NULL
WHERE Agencja='GS O/POZNAŃ'

UPDATE @Wplywy
SET Prowizja = @prowizjaKat, KwotaProwizji=(@prowizjaKat*(Wyroznienie * 0.15)/1.15), Wyroznienie = NULL
WHERE Agencja='GS O/KATOWICE'

UPDATE @Wplywy
SET Wyroznienie = NULL
WHERE MONTH(DataFaktury)<@miesiac


INSERT INTO @Sprzedaz
-- sprzedaz reklam z wyroznieniem
SELECT IdFaktury, NumerFaktury, Agent, SymbolFaktury, DataWplaty, SUM(Wyroznienie) AS Wyroznienie, DataFaktury, NULL AS KwotaProwizji, NULL AS Prowizja, Agencja
FROM ReklamyWyroznienie
WHERE Rok=@rok 
AND Miesiac=@miesiac
GROUP BY IdFaktury, Rok, Miesiac, Agencja, Agent, NumerFaktury, SymbolFaktury, DataFaktury, DataWplaty


SELECT * FROM @Wplywy 
UNION
SELECT * FROM @Sprzedaz
WHERE IdFaktury NOT IN (SELECT IdFaktury FROM @Wplywy)
ORDER BY DataWplaty, Agent, NumerFaktury, Prowizja
GO

SET ANSI_NULLS OFF
GO
SET QUOTED_IDENTIFIER OFF
GO

