﻿create table AnagClassiTempo(
  ClasseTempo nvarchar(50)  not null constraint PK_AnagClassiTempo primary key,
  Descrizione nvarchar(500)
)
go


alter table AnagraficaStati add
  ClasseTempo nvarchar(50)
go

set xact_abort on
go

begin transaction
go

INSERT INTO dbo.AnagClassiTempo
  VALUES (N'T_Auto', N'Macchina in Automatico')
INSERT INTO dbo.AnagClassiTempo
  VALUES (N'T_AutoRun', N'Macchina in Automatico e Lavora')
INSERT INTO dbo.AnagClassiTempo
  VALUES (N'T_Fermo', N'Macchina Ferma')
INSERT INTO dbo.AnagClassiTempo
  VALUES (N'T_ND', N'Macchina non disponibile')
go

commit transaction
go


set xact_abort on
go

begin transaction
go

UPDATE dbo.AnagraficaStati SET 
  ClasseTempo=N'T_Auto'
  WHERE IdxStato=1
UPDATE dbo.AnagraficaStati SET 
  ClasseTempo=N'T_ND'
  WHERE IdxStato=2
UPDATE dbo.AnagraficaStati SET 
  ClasseTempo=N'T_ND'
  WHERE IdxStato=3
UPDATE dbo.AnagraficaStati SET 
  ClasseTempo=N'T_Fermo'
  WHERE IdxStato=4
UPDATE dbo.AnagraficaStati SET 
  ClasseTempo=N'T_Fermo'
  WHERE IdxStato=5
UPDATE dbo.AnagraficaStati SET 
  ClasseTempo=N'T_Fermo'
  WHERE IdxStato=6
UPDATE dbo.AnagraficaStati SET 
  ClasseTempo=N'T_Fermo'
  WHERE IdxStato=7
UPDATE dbo.AnagraficaStati SET 
  ClasseTempo=N'T_Fermo'
  WHERE IdxStato=8
UPDATE dbo.AnagraficaStati SET 
  ClasseTempo=N'T_Fermo'
  WHERE IdxStato=9
UPDATE dbo.AnagraficaStati SET 
  ClasseTempo=N'T_ND'
  WHERE IdxStato=10
UPDATE dbo.AnagraficaStati SET 
  ClasseTempo=N'T_ND'
  WHERE IdxStato=11
UPDATE dbo.AnagraficaStati SET 
  ClasseTempo=N'T_Fermo'
  WHERE IdxStato=12
UPDATE dbo.AnagraficaStati SET 
  ClasseTempo=N'T_AutoRun'
  WHERE IdxStato=13
UPDATE dbo.AnagraficaStati SET 
  ClasseTempo=N'T_ND'
  WHERE IdxStato=14
UPDATE dbo.AnagraficaStati SET 
  ClasseTempo=N'T_Auto'
  WHERE IdxStato=15
go

commit transaction
go


set xact_abort on
go

begin transaction
go

create table DatiConfermati(
  IdxConferma   int           not null identity constraint PK_DatiConfermati primary key,
  DataOraApp    datetime      not null,
  DataRif       datetime      not null,
  TurnoRif      int,
  CodArticolo   nvarchar(50),
  IdxMacchina   nvarchar(50)  not null,
  TCAssegnato   decimal(18,8),
  MatrOpr       int,
  MatrApp       int           not null,
  DataOraFrom   datetime,
  DataOraTo     datetime,
  IdxStato      int           not null,
  TotPzProd     int,
  TempoProdotto decimal(18,8),
  TempoLavoro   decimal(18,8),
  TempoAuto     decimal(18,8),
  TempoFermo    decimal(18,8),
  TotPzFermo    int
)
go

exec sp_addextendedproperty 'MS_Description', 'matricola dell''operatore che ha lavorato sulla macchina', 'SCHEMA', 'dbo', 'TABLE', 'DatiConfermati', 'COLUMN', 'MatrOpr'
go

exec sp_addextendedproperty 'MS_Description', 'matricola dell''approvatore del record', 'SCHEMA', 'dbo', 'TABLE', 'DatiConfermati', 'COLUMN', 'MatrApp'
go

exec sp_addextendedproperty 'MS_Description', 'pezzi prodotti in ciclo', 'SCHEMA', 'dbo', 'TABLE', 'DatiConfermati', 'COLUMN', 'TotPzProd'
go

exec sp_addextendedproperty 'MS_Description', 'TCAssegnato x num pezzi prodotti', 'SCHEMA', 'dbo', 'TABLE', 'DatiConfermati', 'COLUMN', 'TempoProdotto'
go

exec sp_addextendedproperty 'MS_Description', 'Totale tempo macchina in automatico ed in lavoro', 'SCHEMA', 'dbo', 'TABLE', 'DatiConfermati', 'COLUMN', 'TempoLavoro'
go

exec sp_addextendedproperty 'MS_Description', 'Totale tempo macchina in automatico', 'SCHEMA', 'dbo', 'TABLE', 'DatiConfermati', 'COLUMN', 'TempoAuto'
go

exec sp_addextendedproperty 'MS_Description', 'Totale tempo macchina in fermo (anche ND)', 'SCHEMA', 'dbo', 'TABLE', 'DatiConfermati', 'COLUMN', 'TempoFermo'
go

exec sp_addextendedproperty 'MS_Description', 'pezzi prodotti durante la fermata (es setup)', 'SCHEMA', 'dbo', 'TABLE', 'DatiConfermati', 'COLUMN', 'TotPzFermo'
go

commit
go


create table TabAvvioProduzione(
  IdxProduzione int           not null identity constraint PK_TabAvvioProduzione primary key,
  CodArticolo   nvarchar(50)  not null,
  NumPezzi      int           not null,
  TCAssegnato   decimal(18,8) not null constraint DF_TabAvvioProduzione_TCAssegnato default (1)
)
go


drop table TempiCicloRilevati
go



set xact_abort on
go

begin transaction
go

create table TempiCicloRilevati(
  IdxMacchina nvarchar(50)  not null,
  DataOraRif  datetime      not null,
  TCMedio     decimal(18,8) not null constraint DF_TempiCicloRilevati_TempoMedio default (1),
  PzProd      int           not null constraint DF_TempiCicloRilevati_PzProd default (1),

  constraint PK_TempiCicloRilevati primary key(IdxMacchina,DataOraRif)
)
go

alter table TempiCicloRilevati add
  constraint FK_TempiCicloRilevati_Macchine foreign key(IdxMacchina) references Macchine(IdxMacchina) on update cascade
go

commit
go

drop table TempiCicloTeorici
go


set xact_abort on
go

begin transaction
go

create table TempiCicloTeorici(
  IdxMacchina nvarchar(50)  not null,
  DataOraFrom datetime      not null,
  DataOraTo   datetime,
  TCAssegnato decimal(18,8) not null constraint DF_TempiCicloTeorici_TempoMedio default (1),

  constraint PK_TempiCicloTeorici primary key(IdxMacchina,DataOraFrom)
)
go

alter table TempiCicloTeorici add
  constraint FK_TempiCicloTeorici_Macchine foreign key(IdxMacchina) references Macchine(IdxMacchina) on update cascade
go

commit
go





-- registro versione...
INSERT INTO [dbo].[LogUpdateDb] ([Versione],[Data]) VALUES(20, GETDATE())
GO