-- stati prodotto...
alter table AnagStatiProdotto add
  CodGruppo nvarchar(50)
go


set xact_abort on
go

begin transaction
go

INSERT INTO dbo.AnagStatiProdotto
  VALUES (N'Anim', N'Anima (interna)', N'Finito')
INSERT INTO dbo.AnagStatiProdotto
  VALUES (N'AnimExt', N'Anima (esterna)', N'Finito')
go

commit transaction
go


set xact_abort on
go

begin transaction
go

UPDATE dbo.AnagStatiProdotto SET 
  CodGruppo=N'Wip'
  WHERE CodStato=N'DaSmat'
UPDATE dbo.AnagStatiProdotto SET 
  CodGruppo=N'Wip'
  WHERE CodStato=N'DaTran'
UPDATE dbo.AnagStatiProdotto SET 
  CodGruppo=N'Finito'
  WHERE CodStato=N'Fin'
UPDATE dbo.AnagStatiProdotto SET 
  CodGruppo=N'Mp'
  WHERE CodStato=N'MP'
UPDATE dbo.AnagStatiProdotto SET 
  CodGruppo=N'Mp'
  WHERE CodStato=N'MP-NA'
UPDATE dbo.AnagStatiProdotto SET 
  CodGruppo=N'Wip'
  WHERE CodStato=N'Sabb'
UPDATE dbo.AnagStatiProdotto SET 
  CodGruppo=N'Wip'
  WHERE CodStato=N'Tran'
UPDATE dbo.AnagStatiProdotto SET 
  CodGruppo=N'Wip'
  WHERE CodStato=N'Wip'
go

commit transaction
go


-- relazioni UDC
set xact_abort on
go

begin transaction
go

alter table RelazUDC add
  dataMod datetime constraint DF_RelazUDC_dataMod default (getdate())
go

update RelazUDC set dataMod=getdate()
go


commit
go


update RelazUDC
set dataMod ='2012-01-01' 
where ISNULL(dataMod,'2012-01-01') = '2012-01-01'
GO



-- blocchi
set xact_abort on
go

begin transaction
go

alter table Blocchi drop
  constraint i_CodBlocco ,
  constraint FK_Blocchi_AnagMag 
go

exec sp_rename 'PK_Blocchi', 'tmp__PK_Blocchi', 'OBJECT'
go

exec sp_rename 'Blocchi', 'tmp__Blocchi_1', 'OBJECT'
go

create table Blocchi(
  IdxBlocco  int          not null constraint PK_Blocchi primary key,
  CodMag     nvarchar(50),
  CodCS      nchar(2),
  CodBlocco  nvarchar(3)  not null constraint i_CodBlocco unique,
  DescBlocco nvarchar(50),
  NumX       int,
  NumY       int,
  NumZ       int
)
go

alter table Blocchi add
  constraint FK_Blocchi_AnagMag foreign key(CodMag,CodCS) references AnagMag(CodMag,CodCS) on update cascade
go

exec sp_addextendedproperty 'MS_Description', 'numero elementi X (colonne)', 'SCHEMA', 'dbo', 'TABLE', 'Blocchi', 'COLUMN', 'NumX'
go

exec sp_addextendedproperty 'MS_Description', 'numero elementi Y (livelli/ripiani)', 'SCHEMA', 'dbo', 'TABLE', 'Blocchi', 'COLUMN', 'NumY'
go

exec sp_addextendedproperty 'MS_Description', 'numero elementi Z (profondita)', 'SCHEMA', 'dbo', 'TABLE', 'Blocchi', 'COLUMN', 'NumZ'
go

insert into Blocchi(IdxBlocco,CodMag,CodCS,CodBlocco,DescBlocco,NumX,NumY,NumZ) select IdxBlocco,CodMag,CodCS,CodBlocco,DescBlocco,NumX,NumY,NumZ from tmp__Blocchi_1
go

drop table tmp__Blocchi_1
go

commit
go


set xact_abort on
go

begin transaction
go

INSERT INTO dbo.AnagMag
  VALUES (N'0', N'00', N'Non definito', 0)
go

commit transaction
go


set xact_abort on
go

begin transaction
go

INSERT INTO dbo.Blocchi
  VALUES (0, N'0', N'00', N'000', N'Non definito', 1, 1, 1)
go

commit transaction
go


-- update transizioni...
alter table TabTranPosizEventi add
  constraint FK_TabTranPosizEventi_Blocchi foreign key(IdxBloccoTo) references Blocchi(IdxBlocco) on update cascade
go


-- update celle...
set xact_abort on
go

begin transaction
go

alter table Celle drop
  constraint FK_Celle_TipoCella 
go


alter table Celle add
  constraint FK_Celle_Blocchi foreign key(IdxBlocco) references Blocchi(IdxBlocco) on update cascade
go

alter table Celle add
  constraint FK_Celle_TipoCella foreign key(IdxTipoCella) references TipoCella(IdxTipoCella)
go

commit
go

-- update insert blocchi!
set xact_abort on
go

begin transaction
go

set ANSI_NULLS on
go

/***************************************
* STORED stp_Blocchi_Insert
*
* crea nuovo record blocchi magazzino
*
* Steamware, S.E.L.
* mod: 2012.05.21
*
****************************************/
alter PROCEDURE stp_Blocchi_Insert
(
	@CodMag NVARCHAR(50),
	@CodCS NVARCHAR(2),
	@CodBlocco NVARCHAR(3),
	@DescBlocco NVARCHAR(50),
	@NumX INT,
	@NumY INT,
	@NumZ INT
)
AS

BEGIN TRAN
	-- inizio calcolando il primo blocco libero x chiave (non è + autoincrement)...
	DECLARE @idxBlocco	INT
	SET		@idxBlocco	= ( SELECT ISNULL(MAX(idxBlocco),0)+1 AS nextIdxBlocco FROM Blocchi )
	
	INSERT INTO Blocchi (idxBlocco, CodMag, CodCS, CodBlocco, DescBlocco, NumX, NumY, NumZ) 
	VALUES (@idxBlocco, @CodMag, @CodCS, @CodBlocco, @DescBlocco, @NumX, @NumY, @NumZ)
	
	
COMMIT TRAN


RETURN
go

commit
go






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