if exists (select * from dbo.sysobjects where id = object_id(N'[dbo].[vUscite]') and OBJECTPROPERTY(id, N'IsView') = 1)
drop view [dbo].[vUscite]
GO

SET QUOTED_IDENTIFIER ON 
GO
SET ANSI_NULLS ON 
GO

CREATE VIEW dbo.vUscite
AS
SELECT     dbo.Uscite.*, dbo.IVA.Aliquota AS IVA, dbo.vDL.RagioneSociale AS UscitaDL, dbo.vEditori.RagioneSociale AS UscitaEditore, 
                      dbo.vEditori.CodiceFIEG AS UscitaEditoreCodiceFIEG, dbo.Prodotti.CodiceTestata AS CodiceTestata, dbo.Prodotti.Testata AS Testata, 
                      dbo.Prodotti.CodiceCollezione AS CodiceCollezione, dbo.Prodotti.CodiceMultiedizione AS CodiceMultiedizione, 
                      dbo.Associazioni.Descrizione AS DescAssociazione, dbo.Periodicita.Descrizione AS Periodicita, dbo.Prodotti.GiorniScadenzaResa AS GiorniScadResa, 
                      dbo.vSottoEditori.RagioneSociale AS UscitaSottoEditore, dbo.IVA.Descrizione AS DescIVA, dbo.vDL.CodiceFIEG AS UscitaDLCodiceFIEG, 
                      dbo.Prodotti.IDTipoProdotto AS IDTipoProdotto, dbo.TipiProdotto.Descrizione AS TipoProdotto, dbo.Prodotti.IDPeriodicita AS IDPeriodicita, 
                      dbo.Prodotti.IDSegmentoMercato AS IDSegmentoMercato, dbo.SegmentiMercato.Descrizione AS SegmentoMercato, 
                      dbo.Prodotti.LocazioneScaffale AS LocazioneScaffale, dbo.Prodotti.UmAcquisto AS UmAcquisto, dbo.Prodotti.UmVendita AS UmVendita, 
                      dbo.Prodotti.CoeffConv AS CoeffConv, dbo.Prodotti.DescrizioneAggEdicola AS DescrizioneAggEdicola
FROM         dbo.SegmentiMercato RIGHT OUTER JOIN
                      dbo.vSottoEditori RIGHT OUTER JOIN
                      dbo.Prodotti INNER JOIN
                      dbo.Uscite ON dbo.Prodotti.IDProd = dbo.Uscite.IDProd ON dbo.vSottoEditori.IDSoggetto = dbo.Uscite.IDSottoEditore LEFT OUTER JOIN
                      dbo.TipiProdotto ON dbo.Prodotti.IDTipoProdotto = dbo.TipiProdotto.IDTipoProdotto ON 
                      dbo.SegmentiMercato.IDSegmentoMercato = dbo.Prodotti.IDSegmentoMercato LEFT OUTER JOIN
                      dbo.Periodicita ON dbo.Prodotti.IDPeriodicita = dbo.Periodicita.IDPeriodicita LEFT OUTER JOIN
                      dbo.Associazioni ON dbo.Uscite.IDAssociazione = dbo.Associazioni.IDAssociazione LEFT OUTER JOIN
                      dbo.vEditori ON dbo.Uscite.IDEditore = dbo.vEditori.IDSoggetto LEFT OUTER JOIN
                      dbo.vDL ON dbo.Uscite.IDDL = dbo.vDL.IDSoggetto LEFT OUTER JOIN
                      dbo.IVA ON dbo.Uscite.IDIva = dbo.IVA.IDIva

GO
SET QUOTED_IDENTIFIER OFF 
GO
SET ANSI_NULLS ON 
GO

if exists (select * from dbo.sysobjects where id = object_id(N'[dbo].[vAnagraficaUscite]') and OBJECTPROPERTY(id, N'IsView') = 1)
drop view [dbo].[vAnagraficaUscite]
GO

SET QUOTED_IDENTIFIER ON 
GO
SET ANSI_NULLS ON 
GO

CREATE VIEW dbo.vAnagraficaUscite
AS
SELECT DISTINCT 
                      dbo.Uscite.*, dbo.vDL.RagioneSociale AS UscitaDL, dbo.vDL.CodiceFIEG AS UscitaDLCodiceFIEG, dbo.Prodotti.CodiceTestata AS CodiceTestata, 
                      dbo.Prodotti.Testata AS Testata, dbo.Prodotti.Sottotitolo AS ProdSottotitolo, dbo.Prodotti.DescrizioneAggEdicola AS DescrizioneAggEdicola, 
                      dbo.Prodotti.ScortaMinima AS ScortaMinima, dbo.Prodotti.IDPeriodicita AS IDPeriodicita, dbo.Prodotti.NumeroUsciteTotali AS NumeroUsciteTotali, 
                      dbo.Prodotti.GiorniScadenzaResa AS GiorniScadenzaResa, dbo.Prodotti.LocazioneScaffale AS LocazioneScaffale, 
                      dbo.TipiProdotto.Descrizione AS TipoProdotto, dbo.vSottoEditori.RagioneSociale AS Sottoeditore, dbo.vEditori.RagioneSociale AS Editore, 
                      dbo.vEditori.CodiceFIEG AS CodFIEGEditore, dbo.Periodicita.Descrizione AS DescrizionePeriodicita, 
                      dbo.Prodotti.IDTipoProdotto AS ProdIDTipoProdotto, dbo.vEdicola.RagioneSociale AS EDRagioneSociale, dbo.vEdicola.Indirizzo AS EDIndirizzo, 
                      dbo.vEdicola.Cap AS EDCap, dbo.vEdicola.Citta AS EDCitta, dbo.vEdicola.Prov AS EDProv, dbo.vEdicola.Telefono AS EDTelefono, 
                      dbo.vEdicola.PartitaIVA AS EDPartitaIVA, dbo.vEdicola.Codicefiscale AS EDCodicefiscale, dbo.vMancanzeEccedenzeInoltrateTotali.Tot AS TotME, 
                      dbo.vMancanzeEccedenzeRiscontrateTotali.Tot AS TotMER, dbo.vRifornimentiTotali.Tot AS TotRif
FROM         dbo.Uscite LEFT OUTER JOIN
                      dbo.vRifornimentiTotali ON dbo.Uscite.IDUscita = dbo.vRifornimentiTotali.IDUscita LEFT OUTER JOIN
                      dbo.vMancanzeEccedenzeInoltrateTotali ON dbo.Uscite.IDUscita = dbo.vMancanzeEccedenzeInoltrateTotali.IDUscita LEFT OUTER JOIN
                      dbo.vSottoEditori ON dbo.Uscite.IDSottoEditore = dbo.vSottoEditori.IDSoggetto LEFT OUTER JOIN
                      dbo.vEditori RIGHT OUTER JOIN
                      dbo.TipiProdotto RIGHT OUTER JOIN
                      dbo.Prodotti ON dbo.TipiProdotto.IDTipoProdotto = dbo.Prodotti.IDTipoProdotto ON dbo.vEditori.IDSoggetto = dbo.Prodotti.IDEditore LEFT OUTER JOIN
                      dbo.Periodicita ON dbo.Prodotti.IDPeriodicita = dbo.Periodicita.IDPeriodicita ON dbo.Uscite.IDProd = dbo.Prodotti.IDProd LEFT OUTER JOIN
                      dbo.vDL ON dbo.Uscite.IDDL = dbo.vDL.IDSoggetto LEFT OUTER JOIN
                      dbo.vMancanzeEccedenzeRiscontrateTotali ON dbo.Uscite.IDUscita = dbo.vMancanzeEccedenzeRiscontrateTotali.IDUscita CROSS JOIN
                      dbo.vEdicola

GO
SET QUOTED_IDENTIFIER OFF 
GO
SET ANSI_NULLS ON 
GO

if exists (select * from dbo.sysobjects where id = object_id(N'[dbo].[vProdottiIVA]') and OBJECTPROPERTY(id, N'IsView') = 1)
drop view [dbo].[vProdottiIVA]
GO

SET QUOTED_IDENTIFIER ON 
GO
SET ANSI_NULLS ON 
GO

CREATE VIEW dbo.vProdottiIVA
AS
SELECT     dbo.Uscite.*, dbo.IVA.Aliquota AS IVA, dbo.vDL.RagioneSociale AS UscitaDL, dbo.Prodotti.CodiceTestata AS CodiceTestata, 
                      dbo.Prodotti.Testata AS Testata, dbo.Prodotti.CodiceCollezione AS CodiceCollezione, dbo.Prodotti.CodiceMultiedizione AS CodiceMultiedizione, 
                      dbo.Associazioni.Descrizione AS DescAssociazione, dbo.Periodicita.Descrizione AS Periodicita, dbo.Prodotti.GiorniScadenzaResa AS GiorniScadResa, 
                      dbo.vSottoEditori.RagioneSociale AS UscitaSottoEditore, dbo.IVA.Descrizione AS DescIVA, dbo.vDL.CodiceFIEG AS UscitaDLCodiceFIEG, 
                      dbo.TipiProdotto.Descrizione AS TipoProdotto, dbo.vFornitori.RagioneSociale AS UscitaFornitore, dbo.Prodotti.ScortaMinima AS ScortaMinima, 
                      dbo.Prodotti.IDTipoProdotto AS IDTipoProdotto, dbo.Prodotti.Agio AS Agio, dbo.Prodotti.UmAcquisto AS UmAcquisto, 
                      dbo.Prodotti.UmVendita AS UmVendita, dbo.Prodotti.CoeffConv AS CoeffConv, dbo.vFornitori.IDSoggetto AS IDFornitore, 
                      dbo.Uscite.CodiceInforete AS Expr1
FROM         dbo.Periodicita RIGHT OUTER JOIN
                      dbo.vSottoEditori RIGHT OUTER JOIN
                      dbo.vFornitori RIGHT OUTER JOIN
                      dbo.Uscite ON dbo.vFornitori.IDSoggetto = dbo.Uscite.IDEditore ON dbo.vSottoEditori.IDSoggetto = dbo.Uscite.IDSottoEditore LEFT OUTER JOIN
                      dbo.Prodotti LEFT OUTER JOIN
                      dbo.TipiProdotto ON dbo.Prodotti.IDTipoProdotto = dbo.TipiProdotto.IDTipoProdotto ON dbo.Uscite.IDProd = dbo.Prodotti.IDProd ON 
                      dbo.Periodicita.IDPeriodicita = dbo.Prodotti.IDPeriodicita LEFT OUTER JOIN
                      dbo.Associazioni ON dbo.Uscite.IDAssociazione = dbo.Associazioni.IDAssociazione LEFT OUTER JOIN
                      dbo.vDL ON dbo.Uscite.IDDL = dbo.vDL.IDSoggetto LEFT OUTER JOIN
                      dbo.IVA ON dbo.Uscite.IDIva = dbo.IVA.IDIva

GO
SET QUOTED_IDENTIFIER OFF 
GO
SET ANSI_NULLS ON 
GO

