220 lines
9.2 KiB
Transact-SQL
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';
|
|
|