
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO

ALTER VIEW [dbo].[VIEW_ZESTAWIENIE_FAKTUR_NOWE]
AS
SELECT 
T.ID_NABYWCY, 
T.NUMER, 
T.ROK, 
T.MS, 
T.DATA_SPRZEDAZY, 
T.NR_FK, 
T.TYTUL, 
T.NETTO, 
T.S_VAT, 
T.VAT, 
-- jesli zostala wystawiona faktura korekta, wyswietl wartosc brutto po korekcie
BRUTTO = CASE 
			WHEN (T.KorektaBrutto IS NULL) THEN ROUND(T.NETTO * (1 + T.S_VAT),2)
			ELSE ROUND(T.KorektaNetto * (1 + T.KorektaVat),2)
		 END,
ROUND(T.suma_zaplat, 2) AS suma_zaplat, 
T.ID_FAKTURY, 
T.Symbol, 
T.Agencja, 
T.ZAPLACONO, 
T.dataWplaty, 
T.zaplata_data, 
T.FirstName, 
T.TERMIN_ZAPLATY, 
T.idZamowienia, 
T.idWplaty, 
G.sumaNettoZEmisji, 
Waluta_Brutto = 
				CASE 
					WHEN (T.KorektaWalutaBrutto IS NULL) THEN T.waluta_brutto
					ELSE T.KorektaWalutaBrutto
				END,
T.waluta_miano, 
T.KOREKTA, 
T.idFakturyKorekta, 
T.ID_FK_KOR, 
T.wplata_brutto, 
T.wplata_waluta_brutto, 
T.ilPozycji, 
COALESCE(G.ilEmisji, 0) AS ilEmisji,
T.SposobZaplaty
FROM         (SELECT dbo.FAKTURY.ID_NABYWCY, dbo.FAKTURY.NUMER, YEAR(dbo.FAKTURY.DATA_SPRZEDAZY) AS ROK, 
                                              MONTH(dbo.FAKTURY.DATA_SPRZEDAZY) AS MS, dbo.FAKTURY.DATA_SPRZEDAZY, CONVERT(VARCHAR, dbo.FAKTURY.NUMER) 
                                              + '/' + CONVERT(VARCHAR, dbo.FAKTURY.NUMER_ROZ) + '/' + CONVERT(VARCHAR, dbo.FAKTURY.NUMER_ROK) AS NR_FK, 
                                              dbo.[LISTA TYTUŁÓW].SYMB AS TYTUL, SUM(dbo.FAKTURA_DETAILS.NETTO) AS NETTO, dbo.FAKTURA_DETAILS.S_VAT, 
                                              SUM(dbo.FAKTURA_DETAILS.VAT) AS VAT, SUM(dbo.FAKTURA_DETAILS.BRUTTO) AS BRUTTO, count(dbo.FAKTURA_DETAILS.id_faktura_details) as ilPozycji,
											  dbo.FAKTURY.suma_zaplat, 
                                              dbo.FAKTURY.ID_FAKTURY, dbo.AGENCI.Symbol, dbo.AGENCJE.Symbol AS Agencja, dbo.FAKTURY.ZAPLACONO, dbo.Wplaty.dataWplaty, 
                                              dbo.FAKTURY.zaplata_data, dbo.KLIENCI.FirstName, dbo.FAKTURY.TERMIN_ZAPLATY, dbo.FAKTURY.idZamowienia, dbo.Wplaty.idWplaty, 
                                              dbo.FAKTURY.waluta_brutto, dbo.FAKTURY.waluta_miano, dbo.FAKTURY.KOREKTA, dbo.FAKTURY.idFakturyKorekta, 
                                              dbo.FAKTURY.ID_FK_KOR, Wplaty.brutto as wplata_brutto, Wplaty.waluta_brutto as wplata_waluta_brutto,
											  dbo.FAKTURY.SPOSOB_ZAPLATY AS SposobZaplaty,
											  COALESCE(Korekta.S_VAT, NULL) AS KorektaVat, 
											  COALESCE(Korekta.Netto, NULL) AS KorektaNetto,
											  COALESCE(Korekta.Brutto, NULL) AS KorektaBrutto,
											  COALESCE(Korekta.waluta_brutto, NULL) AS KorektaWalutaBrutto
                       FROM          dbo.FAKTURY LEFT OUTER JOIN
                                              dbo.FAKTURA_DETAILS ON dbo.FAKTURY.ID_FAKTURY = dbo.FAKTURA_DETAILS.ID_FAKTURY LEFT OUTER JOIN
                                              dbo.[LISTA TYTUŁÓW] ON dbo.FAKTURY.ID_TYTUL = dbo.[LISTA TYTUŁÓW].id LEFT OUTER JOIN
                                              dbo.AGENCI ON dbo.FAKTURY.NUMER_ROZ = dbo.AGENCI.F_ROZ LEFT OUTER JOIN
                                              dbo.AGENCJE ON dbo.AGENCI.ID_AGENCJI = dbo.AGENCJE.Id_agencji LEFT OUTER JOIN
                                              dbo.Wplaty ON dbo.FAKTURY.ID_FAKTURY = dbo.Wplaty.idFaktury LEFT OUTER JOIN
                                              dbo.KLIENCI ON dbo.FAKTURY.ID_NABYWCY = dbo.KLIENCI.CustomerID
											  LEFT OUTER JOIN dbo.VIEW_KOREKTY AS Korekta ON Korekta.idZamowienia = dbo.FAKTURY.idZamowienia
						where  (dbo.FAKTURY.idZamowienia IS NOT NULL) AND (dbo.FAKTURY.KOREKTA <> 1)
						GROUP BY dbo.FAKTURY.ID_NABYWCY, dbo.FAKTURY.NUMER, YEAR(dbo.FAKTURY.DATA_SPRZEDAZY), dbo.FAKTURY.DATA_SPRZEDAZY, 
                                              CONVERT(VARCHAR, dbo.FAKTURY.NUMER) + '/' + CONVERT(VARCHAR, dbo.FAKTURY.NUMER_ROZ) + '/' + CONVERT(VARCHAR, 
                                              dbo.FAKTURY.NUMER_ROK), dbo.FAKTURY.suma_zaplat, dbo.FAKTURA_DETAILS.S_VAT, dbo.FAKTURY.ID_FAKTURY, 
                                              dbo.[LISTA TYTUŁÓW].SYMB, dbo.AGENCI.Symbol, dbo.AGENCJE.Symbol, dbo.FAKTURY.ZAPLACONO, dbo.Wplaty.dataWplaty, 
                                              dbo.FAKTURY.zaplata_data, dbo.KLIENCI.FirstName, dbo.FAKTURY.TERMIN_ZAPLATY, dbo.FAKTURY.idZamowienia, dbo.Wplaty.idWplaty, 
                                              dbo.FAKTURY.waluta_brutto, dbo.FAKTURY.waluta_miano, dbo.FAKTURY.KOREKTA, dbo.FAKTURY.idFakturyKorekta, 
                                              dbo.FAKTURY.ID_FK_KOR, Wplaty.brutto, Wplaty.waluta_brutto,
											  dbo.FAKTURY.SPOSOB_ZAPLATY,
											  Korekta.S_VAT, Korekta.Netto, Korekta.Brutto, Korekta.waluta_brutto
                       ) AS T LEFT OUTER JOIN
                          (SELECT     idFaktury, round(SUM(netto),2) AS sumaNettoZEmisji, count(id) as ilEmisji
                            FROM          dbo.[UKAŻE SIĘ W NR] AS U 
						where     (status <> 2)    
                        GROUP BY idFaktury, status
                       ) AS G ON T.ID_FAKTURY = G.idFaktury
GO

SET ANSI_NULLS OFF
GO
SET QUOTED_IDENTIFIER OFF
GO

