Files
GMW/GMW_DB/dbo/Tables/ElencoCartellini.sql
2014-03-21 10:20:06 +01:00

220 lines
9.2 KiB
Transact-SQL

CREATE TABLE [dbo].[ElencoCartellini] (
[UDC] NVARCHAR (50) NOT NULL,
[CodCS] NCHAR (2) CONSTRAINT [DF_ElencoCartellini_CodCS] DEFAULT ('') NULL,
[CodCliente] NVARCHAR (6) CONSTRAINT [DF_ElencoCartellini_CodCliente] DEFAULT ('') NULL,
[RagSociale] NVARCHAR (35) CONSTRAINT [DF_ElencoCartellini_RagSociale] DEFAULT ('') NULL,
[Particolare] NVARCHAR (15) CONSTRAINT [DF_ElencoCartellini_Particolare] DEFAULT ('') NULL,
[DescParticolare] NVARCHAR (30) CONSTRAINT [DF_ElencoCartellini_DescParticolare] DEFAULT ('') NULL,
[DisegnoGrezzo] NVARCHAR (30) CONSTRAINT [DF_ElencoCartellini_DisegnoGrezzo] DEFAULT ('') NULL,
[Esponente] NVARCHAR (6) CONSTRAINT [DF_ElencoCartellini_Esponente] DEFAULT ('') NULL,
[CodImpianto] NVARCHAR (50) CONSTRAINT [DF_ElencoCartellini_CodImpianto] DEFAULT ('') NULL,
[DescImpianto] NVARCHAR (50) CONSTRAINT [DF_ElencoCartellini_DescImpianto] DEFAULT ('') NULL,
[CodStampo] NVARCHAR (8) CONSTRAINT [DF_ElencoCartellini_CodStampo] DEFAULT ('') NULL,
[Figura] NVARCHAR (4) CONSTRAINT [DF_ElencoCartellini_Figura] DEFAULT ('') NULL,
[DataFus] DATETIME CONSTRAINT [DF_ElencoCartellini_DataFus] DEFAULT (getdate()) NULL,
[TurnoFus] INT CONSTRAINT [DF_ElencoCartellini_TurnoFus] DEFAULT ((0)) NULL,
[CodImballo] NVARCHAR (15) CONSTRAINT [DF_ElencoCartellini_CodImballo] DEFAULT ('') NULL,
[CodSoggetto] NCHAR (17) CONSTRAINT [DF_ElencoCartellini_CodSoggetto] DEFAULT ('') NULL,
[NumCont] INT CONSTRAINT [DF_ElencoCartellini_NumCont] DEFAULT ((1)) NULL,
[Tara] FLOAT (53) CONSTRAINT [DF_ElencoCartellini_Tara] DEFAULT ((0)) NULL,
[Qta] DECIMAL (10, 2) CONSTRAINT [DF_ElencoCartellini_Qta] DEFAULT ((0)) NULL,
[CodStato] NVARCHAR (50) CONSTRAINT [DF_ElencoCartellini_CodStato] DEFAULT ('') NULL,
[IdxPosizione] INT CONSTRAINT [DF_ElencoCartellini_IdxPosizione] DEFAULT ((0)) NULL,
[PesoTot] FLOAT (53) CONSTRAINT [DF_ElencoCartellini_PesoTot] DEFAULT ((0)) NULL,
[PesoCad] FLOAT (53) CONSTRAINT [DF_ElencoCartellini_PesoCad] DEFAULT ((0)) NULL,
[CreateDate] DATETIME CONSTRAINT [DF_ElencoCartellini_CreateDate] DEFAULT (getdate()) NULL,
[ModDate] DATETIME CONSTRAINT [DF_ElencoCartellini_ModDate] DEFAULT (getdate()) NULL,
[Note] NVARCHAR (500) CONSTRAINT [DF_ElencoCartellini_Note] DEFAULT ('') NULL,
[CodEvento] NVARCHAR (10) CONSTRAINT [DF_ElencoCartellini_CodEvento] DEFAULT ('') NULL,
CONSTRAINT [PK_ElencoCartellini] PRIMARY KEY CLUSTERED ([UDC] ASC) WITH (FILLFACTOR = 95),
CONSTRAINT [FK_ElencoCartellini_AnagCompanySito] FOREIGN KEY ([CodCS]) REFERENCES [dbo].[AnagCompanySito] ([CodCS]) ON UPDATE CASCADE,
CONSTRAINT [FK_ElencoCartellini_AnagPosizioni] FOREIGN KEY ([IdxPosizione]) REFERENCES [dbo].[AnagPosizioni] ([IdxPosizione]) ON UPDATE CASCADE,
CONSTRAINT [FK_ElencoCartellini_AnagStatiProdotto] FOREIGN KEY ([CodStato]) REFERENCES [dbo].[AnagStatiProdotto] ([CodStato]) ON UPDATE CASCADE,
CONSTRAINT [FK_ElencoCartellini_AnagTipoEvento] FOREIGN KEY ([CodEvento]) REFERENCES [dbo].[AnagTipoEvento] ([CodEvento])
);
GO
CREATE NONCLUSTERED INDEX [i_ElencoCartellini_dataFus]
ON [dbo].[ElencoCartellini]([DataFus] ASC) WITH (FILLFACTOR = 95);
GO
CREATE NONCLUSTERED INDEX [i_ElencoCartellini_CodCS_Particolare]
ON [dbo].[ElencoCartellini]([CodCS] ASC, [Particolare] ASC) WITH (FILLFACTOR = 95);
GO
CREATE NONCLUSTERED INDEX [i_ElencoCartellini_CodStato_IdxPosizione]
ON [dbo].[ElencoCartellini]([CodStato] ASC, [IdxPosizione] ASC)
INCLUDE([Particolare], [Qta]) WITH (FILLFACTOR = 95);
GO
CREATE NONCLUSTERED INDEX [i_ElencoCartellini_particolare]
ON [dbo].[ElencoCartellini]([Particolare] ASC) WITH (FILLFACTOR = 95);
GO
CREATE NONCLUSTERED INDEX [i_ElencoCartellini_CodCS_IdxPosizione]
ON [dbo].[ElencoCartellini]([IdxPosizione] ASC, [CodCS] ASC)
INCLUDE([Particolare]) WITH (FILLFACTOR = 95);
GO
-- =============================================
-- Author: Samuele E. Locatelli
-- Create date: 2009-09-20 mod. 2012-03-14
-- Description: trigger x inserimento movimenti
-- nella tab GiornaleMagazzino
-- =============================================
CREATE TRIGGER [dbo].[trg_updMovAS]
ON [dbo].[ElencoCartellini]
AFTER UPDATE
AS
BEGIN
/*******************************************************************************
* Gestione UPDATE ElencoCartellini --> GiornaleMagazzino
*
* regola1: si fanno registrazioni solo se varia ALMENO UNO tra
* - quantità
* - idxPosizione
* - codStato
*
* regola 2:
* - Particolare deve essere valorizzato ALMENO a '' (blank)
*
* regola3: in caso di update SIA di quantità che di posizione/stato
* - si genera UN PRIMO RECORD di modifica quantità a posizione e stato FISSI sulla vecchia posizione/Stato
* - si genera UN SECONDO RECORD con variazione posizione/stato
*
*******************************************************************************/
-- setup variabili e verbosità
SET NOCOUNT ON;
DECLARE @dataOra AS DATETIME
SET @dataOra = GETDATE()
-- PRIMO STEP: quantità! ( vedi Note )
IF( UPDATE(Qta) )
BEGIN
INSERT INTO GiornaleMagazzino(OP, DataOra, CodEvento, ModDate, UDC, Particolare, CodStatoFrom, CodStatoTo, IdxPosizioneFrom, IdxPosizioneTo, QtaFrom, QtaTo)
(
SELECT 'U', @dataOra, i.CodEvento, i.ModDate, d.UDC, ISNULL(d.Particolare,''), d.CodStato, d.CodStato, d.IdxPosizione, d.IdxPosizione, d.Qta, i.Qta
FROM inserted AS i
INNER JOIN deleted AS d ON i.UDC = d.UDC
WHERE ( (i.Qta <> d.Qta) )
)
END
-- ora controllo in caso di modifica di stato o posizione
IF(UPDATE(CodStato) OR UPDATE(IdxPosizione))
BEGIN
INSERT INTO GiornaleMagazzino(OP, DataOra, CodEvento, ModDate, UDC, Particolare, CodStatoFrom, CodStatoTo, IdxPosizioneFrom, IdxPosizioneTo, QtaFrom, QtaTo)
(
SELECT 'U', @dataOra, i.CodEvento, i.ModDate, i.UDC, ISNULL(d.Particolare,''), d.CodStato, i.CodStato, d.IdxPosizione, i.IdxPosizione, i.Qta, i.Qta
FROM inserted AS i
INNER JOIN deleted AS d ON i.UDC = d.UDC
WHERE ( ( i.IdxPosizione <> d.IdxPosizione) OR (i.CodStato <> d.CodStato) )
)
END
END
GO
-- =============================================
-- Author: Samuele E. Locatelli
-- Create date: 2009-09-20
-- Mod Date: 2012-05-25
-- Description: trigger x movimenti di cancellazione
-- nella tab GiornaleMagazzino
-- =============================================
CREATE TRIGGER [dbo].[trg_DelMovAS]
ON [dbo].[ElencoCartellini]
AFTER DELETE
AS
BEGIN
-- setup variabili e verbosità
SET NOCOUNT ON;
-- inserisco movimenti AS
INSERT INTO GiornaleMagazzino(OP, DataOra, CodEvento, ModDate, UDC, Particolare, CodStatoFrom, CodStatoTo, IdxPosizioneFrom, IdxPosizioneTo, QtaFrom, QtaTo)
(
SELECT 'D', GETDATE(), CodEvento, ModDate, UDC, ISNULL(Particolare,''), CodStato, 'DEL', IdxPosizione, 0, Qta, 0
FROM deleted
)
END
GO
-- =============================================
-- Author: Samuele E. Locatelli
-- Create date: 2009-09-20
-- Mod Date: 2012-05-25
-- Description: trigger x movimenti di inserimento
-- nella tab GiornaleMagazzino
-- =============================================
CREATE TRIGGER [dbo].[trg_InsMovAS]
ON [dbo].[ElencoCartellini]
AFTER INSERT
AS
BEGIN
-- setup variabili e verbosità
SET NOCOUNT ON;
-- metto in Giornale Magazzino i record inseriti
INSERT INTO GiornaleMagazzino(OP, DataOra, CodEvento, ModDate, UDC, Particolare, CodStatoFrom, CodStatoTo, IdxPosizioneFrom, IdxPosizioneTo, QtaFrom, QtaTo)
(
SELECT 'I', GETDATE(), CodEvento, ModDate, UDC, ISNULL(Particolare,''), 'NEW', CodStato, 0, IdxPosizione, 0, Qta
FROM inserted
)
END
GO
-- =============================================
-- Author: Samuele E. Locatelli
-- Create date: 2009-10-27
-- Description: trigger x inserimento valori in archivio storico alla cancellazione/modifica del dato
-- =============================================
CREATE TRIGGER [dbo].[trg_storicoUDC]
ON [dbo].[ElencoCartellini]
AFTER DELETE,UPDATE
AS
BEGIN
-- SET NOCOUNT ON added to prevent extra result sets from
-- interfering with SELECT statements.
SET NOCOUNT ON;
-- metto in storico la posizione attuale dell'UDC (SE esiste) CANCELLATO
INSERT INTO StoricoCartellini(DataEv, CodEvento, ModDate, UDC, CodCS, CodCliente, RagSociale, Particolare, DescParticolare, DisegnoGrezzo, Esponente, CodImpianto,
DescImpianto, CodStampo, Figura, DataFus, TurnoFus, CodImballo, CodSoggetto, NumCont, Tara, Qta, CodStato, IdxPosizione, PesoTot, PesoCad, Note)
(
SELECT GETDATE(), CodEvento, ModDate, UDC, CodCS, CodCliente, RagSociale, Particolare, DescParticolare, DisegnoGrezzo, Esponente, CodImpianto, DescImpianto,
CodStampo, Figura, DataFus, TurnoFus, CodImballo, CodSoggetto, NumCont, Tara, Qta, CodStato, IdxPosizione, PesoTot, PesoCad, Note
FROM deleted
)
END
GO
EXECUTE sp_addextendedproperty @name = N'MS_Description', @value = N'NON MODIFICARE: nel codice si usano questi campi x chiamate...', @level0type = N'SCHEMA', @level0name = N'dbo', @level1type = N'TABLE', @level1name = N'ElencoCartellini', @level2type = N'COLUMN', @level2name = N'CodEvento';