--query per correggere nella tabella movimenti il prezzo degli scontrini emessi con approssimazione (lettura del prezzo da scontriniD)
UPDATE Movimento SET Prezzo=PrezzoUnitario FROM  Movimento INNER JOIN
(SELECT IdMovimento, PrezzoUnitario FROM 
(SELECT idmovimento, IDNegozio, Data, CodiceDocumento, row_number() OVER (partition BY codicedocumento ORDER BY idmovimento) AS RowNumber, IDArticolo, Quantita, Prezzo, TipoMovimento FROM dbo.Movimento WHERE TipoDocumento = 'scontrino') AS MovScontrini INNER JOIN
(SELECT ScontrinoT.IDNegozio, ScontrinoD.IDScontrinoTServer, row_number() OVER (partition BY dbo.ScontrinoD.IDScontrinoTServer ORDER BY dbo.ScontrinoD.IDScontrinoDServer) AS RowNumber, ScontrinoD.IDArticolo, ScontrinoD.Quantita, ScontrinoD.Importo, ScontrinoD.Prezzo,ScontrinoD.Sconto, ScontrinoD.Deduzione, ScontrinoD.TipoAzione, CASE ScontrinoD.tipoAzione WHEN 'OMG' THEN 0 ELSE abs((ScontrinoD.prezzo * ScontrinoD.Quantita * (1 - ScontrinoD.Sconto / 100)- ScontrinoD.deduzione) / ScontrinoD.Quantita) END AS PrezzoUnitario
FROM ScontrinoD INNER JOIN ScontrinoT ON ScontrinoD.IDScontrinoTServer = ScontrinoT.IDScontrinoTServer WHERE (ScontrinoD.Stato <> 'EL') AND (ScontrinoD.SyncCS <> 'ELI') AND (ScontrinoD.SyncCS <> 'CAN')) AS Scontrini ON 
Scontrini.IDNegozio = MovScontrini.IDNegozio AND Scontrini.IDScontrinoTServer = MovScontrini.CodiceDocumento AND Scontrini.RowNumber = MovScontrini.RowNumber) AS MoVSC ON MOVSC.idmovimento = Movimento.idMovimento WHERE Movimento.prezzo<>MOVSC.prezzoUnitario

GO

-- creazione della tabella Stagione
IF NOT EXISTS (select * from Information_SCHEMA.columns where Table_name='Stagione')
begin
print 'creazione tabella'
CREATE TABLE [dbo].[Stagione](
	[IDStagione] [int] NOT NULL,
	[IDNegozio] [nvarchar](10) NOT NULL,
	[DataInizio] [datetime] NOT NULL,
	[DataFine] [datetime] NULL,
	[Anno] [nvarchar](5) NOT NULL,
	[Stagione] [nvarchar](5) NOT NULL,
	[Nota1] [nvarchar](255) NULL,
	[Nota2] [nvarchar](255) NULL,
	[Nota3] [nvarchar](255) NULL,
	[UserIns] [nvarchar](50) NOT NULL,
	[DataIns] [datetime] NOT NULL,
	[UserMod] [nvarchar](50) NULL,
	[DataMod] [datetime] NULL,
 CONSTRAINT [PK_Stagione] PRIMARY KEY CLUSTERED 
(
	[IDStagione] ASC
)WITH (PAD_INDEX  = OFF, STATISTICS_NORECOMPUTE  = OFF, IGNORE_DUP_KEY = OFF, ALLOW_ROW_LOCKS  = ON, ALLOW_PAGE_LOCKS  = ON) ON [PRIMARY]
) ON [PRIMARY]

print 'creazione indice'
CREATE UNIQUE NONCLUSTERED INDEX IX_Stagione_1 ON dbo.Stagione
	(
	IDNegozio,
	Anno DESC,
	Stagione
	) WITH( STATISTICS_NORECOMPUTE = OFF, IGNORE_DUP_KEY = OFF, ALLOW_ROW_LOCKS = ON, ALLOW_PAGE_LOCKS = ON) ON [PRIMARY]

print 'creazione chiave esterna con negozio'
DECLARE @v sql_variant 
SET @v = N'Univocita Negozio-Stagione'
EXECUTE sp_addextendedproperty N'MS_Description', @v, N'SCHEMA', N'dbo', N'TABLE', N'Stagione', N'INDEX', N'IX_Stagione_1'

ALTER TABLE dbo.Stagione ADD CONSTRAINT
	FK_Negozio_Stagione FOREIGN KEY
	(
	IDNegozio
	) REFERENCES dbo.Negozio
	(
	IDNegozio
	) ON UPDATE  NO ACTION 
	 ON DELETE  NO ACTION 
	 NOT FOR REPLICATION

DECLARE @v1 sql_variant 
SET @v1 = N'Lega la stagione con la tabella Negozio'
EXECUTE sp_addextendedproperty N'MS_Description', @v1, N'SCHEMA', N'dbo', N'TABLE', N'Stagione', N'CONSTRAINT', N'FK_Negozio_Stagione'

print 'Creazione record per Contatore'
INSERT INTO [dbo].[Contatore]
           ([IDContatore]
           ,[Valore]
           ,[Prefisso]
           ,[Suffisso]
           ,[Incremento])
     VALUES
           ('Stagione',0,'','',1)

end
else
print 'tabella esistente'



