Files
Samuele E. Locatelli bdd7b413e8 Riaggiunto GMW_data
2016-11-22 17:58:00 +01:00

579 lines
16 KiB
Transact-SQL

set xact_abort on
go
begin transaction
go
INSERT INTO dbo.Permessi
VALUES ('POST_fusiCons', 'consumoFusi.aspx', 4, 5, 'ConsFusi', 'ConsFusiExpl')
go
commit transaction
go
set xact_abort on
go
begin transaction
go
INSERT INTO dbo.Permessi2Funzione
VALUES ('POST_fusiCons', N'GMW_consFusi', 'S')
go
commit transaction
go
set xact_abort on
go
begin transaction
go
UPDATE AnagPosizioni
set IdxPosizione=3
WHERE IdxPosizione=7
go
commit transaction
go
set xact_abort on
go
begin transaction
go
INSERT INTO dbo.TabTranPosizEventi
VALUES (N'UDC_CONS', 3, -3, 0, NULL, N'consumo fusi')
INSERT INTO dbo.TabTranPosizEventi
VALUES (N'UDC_FUSI', 0, 3, 49, N'Fusi', N'creazione UDC fusi (creare magazzino e blocco x fusi e sostituire 49)')
go
commit transaction
go
set xact_abort on
go
begin transaction
go
set ANSI_NULLS on
go
/***************************************
* STORED stp_UDC_insNewFull
*
* crea un nuovo record nella TabStatoOdpUdc FULL (con pesi, qta...) e restituisce il codice UDC appena creato
*
* Steamware, S.E.L.
* mod: 2010.04.28
*
****************************************/
alter PROCEDURE stp_UDC_insNewFull
(
@CodCS VARCHAR(2),
@Flusso VARCHAR(2),
@Anno VARCHAR(2),
@CodCliente VARCHAR(6),
@Particolare VARCHAR(15),
@CodImpianto AS VARCHAR(50),
@CodStampo VARCHAR(8),
@Esponente VARCHAR(6),
@Figura VARCHAR(4),
@DataFus DATETIME,
@TurnoFus INT,
@CodImballo VARCHAR(15),
@CodSoggetto VARCHAR(17),
@Tara FLOAT,
@IdxPosizione INT,
@CodTipoDichiaraz CHAR(1),
@CodEvento VARCHAR(10),
@Qta DECIMAL(10,2),
@PesoTot FLOAT,
@PesoCad FLOAT,
@CodStato VARCHAR(50),
@UDC_parent VARCHAR(50),
@DoDeleteUdcParent BIT,
@Note NVARCHAR(500)
)
AS
-- DECLARE iniziali
DECLARE @UDC AS VARCHAR(50)
DECLARE @RagSociale AS VARCHAR(35)
DECLARE @DescParticolare AS VARCHAR(30)
DECLARE @DescImpianto AS VARCHAR(50)
DECLARE @DisegnoGrezzo AS VARCHAR(30)
DECLARE @NumCont AS INT
DECLARE @numFlu AS INT
DECLARE @numUdc AS INT
DECLARE @nextUdc AS INT
DECLARE @IdxCella AS INT
SET @UDC_parent = UPPER(@UDC_parent) -- nel caso sia passato in minuscolo
------------------------------------------------------------------------------------------------------
-- Caricamento Dati da anagrafica
------------------------------------------------------------------------------------------------------
-- cerco la ragione sociale...
SET @RagSociale = ISNULL(
(
SELECT RagSociale
FROM RilPro.AnagClienti
WHERE (CodCliente = @CodCliente)
)
, '')
-- Cerco descrizione del particolare...
SET @DescParticolare = ISNULL(
(
SELECT DescParticolare
FROM RilPro.AnagParticolari
WHERE (Particolare = @Particolare)
)
, 'ND')
-- se non lo trova provo anche nell'anagrafica leghe
IF(@DescParticolare = 'ND')-- OR (@DescParticolare is null)
BEGIN
SET @DescParticolare = ISNULL(
(
SELECT DescLega
FROM RilPro.AnagLeghe
WHERE ('L'+CodLega = @Particolare)
)
, '')
END
-- cerco codice disegno grezzo
SET @DisegnoGrezzo = ISNULL(
(
SELECT DisegnoGrezzo
FROM RilPro.AnagParticolari
WHERE (Particolare = @Particolare)
)
, '')
-- cerco descrizione Impianto
SET @DescImpianto = ISNULL(
(
SELECT DescImpianto
FROM AnagImpianti
WHERE (CodImpianto = @CodImpianto)
)
, '')
-- Calcolo contatore intero successivo x il contenitore...
SET @NumCont = (
SELECT ISNULL(MAX(NumCont), 0) + 1 AS NumCont
FROM ElencoCartellini
WHERE (Particolare = @Particolare)
AND (DataFus = @DataFus)
AND (TurnoFus = @TurnoFus)
AND (CodImpianto = @CodImpianto)
AND (CodStampo = @CodStampo)
AND (Figura = @Figura)
)
------------------------------------------------------------------------------------------------------
------------------------------------------------------------------------------------------------------
-- Flusso
------------------------------------------------------------------------------------------------------
-- controllo se esiste il flusso (bilancia)...
SET @numFlu = (
SELECT count(*)
FROM AnagBilance
WHERE CodBilancia = @Flusso
)
-- ...sennò lo creo...
IF(@numFlu = 0)
BEGIN
-- se c'è inserisco in tab
INSERT INTO AnagBilance(CodBilancia, DescrImpianto, CodCS)
VALUES (@Flusso, @Flusso, @CodCS)
END
------------------------------------------------------------------------------------------------------
------------------------------------------------------------------------------------------------------
-- UDC
------------------------------------------------------------------------------------------------------
-- controllo se ci sia già un UDC per company / flusso anno
BEGIN TRAN
-- cerco nella tab contatori se esiste contatore x il flusso
-- controllo se record c'è...
IF EXISTS( SELECT TOP 1 Flusso FROM ContatoriUdc
WHERE CodCS = @CodCS
AND Flusso = @Flusso
AND Anno = @Anno )
BEGIN
-- se c'è incremento di 1 in tab
UPDATE ContatoriUdc
SET LastIdx = LastIdx + 1
WHERE CodCS = @CodCS
AND Flusso = @Flusso
AND Anno = @Anno
END
ELSE
BEGIN
-- lo creo!
INSERT INTO ContatoriUdc(CodCS, Flusso, Anno, LastIdx)
VALUES (@CodCS, @Flusso, @Anno, 1)
END
-- aggiorno numero UDC
SET @numUdc = (
SELECT LastIdx
FROM ContatoriUdc
WHERE CodCS = @CodCS
AND Flusso = @Flusso
AND Anno = @Anno
)
COMMIT TRAN
------------------------------------------------------------------------------------------------------
------------------------------------------------------------------------------------------------------
-- Ciclo principale x inserimento nuovo record
------------------------------------------------------------------------------------------------------
BEGIN TRAN
-- ottengo il nuovo codice UDC completo
SET @UDC = dbo.componiUdc(@CodCS, @Flusso, @Anno, @numUdc)
-- inserisco un nuovo record
INSERT INTO ElencoCartellini(UDC, CodCS, CodCliente, RagSociale, Particolare, DescParticolare, DisegnoGrezzo, Esponente, CodImpianto, DescImpianto, CodStampo, Figura, DataFus, TurnoFus, CodImballo, CodSoggetto, NumCont, Tara, Qta, CodStato, IdxPosizione, PesoTot, PesoCad, CreateDate, ModDate, Note, CodEvento)
VALUES (@UDC, @CodCS, @CodCliente, @RagSociale, @Particolare, @DescParticolare, @DisegnoGrezzo, @Esponente, @CodImpianto, @DescImpianto, @CodStampo, @Figura, @DataFus, @TurnoFus, @CodImballo, @CodSoggetto, @NumCont, @Tara, @Qta, @CodStato, @IdxPosizione, @PesoTot, @PesoCad, GETDATE(), GETDATE(), @Note, @CodEvento)
-- inserisco relazione parent-child tra UDC vecchio (tara) e nuovo (pesa) SSE UDC_parent valido
IF((NOT @UDC_parent IS NULL) AND (NOT @UDC_parent = ''))
BEGIN
INSERT INTO RelazUDC(UDC_parent, UDC_child)
VALUES (@UDC_parent, @UDC)
END
COMMIT TRAN
------------------------------------------------------------------------------------------------------
------------------------------------------------------------------------------------------------------
-- Ciclo secondario x eventuale cancellazione UDC tara parent e inserimento in posizione
------------------------------------------------------------------------------------------------------
-- se richiesto elimino l'UDC parent (tara)
IF(@DoDeleteUdcParent = 1)
BEGIN
DELETE FROM ElencoCartellini WHERE UDC = @UDC_parent
END
-- cerco in TabTranPosizEventi record x calcolare cella
DECLARE @IdxBloccoTo INT
SET @IdxBloccoTo = 0
/* da testare...
SET @IdxBloccoTo = (
SELECT ISNULL(
(
SELECT IdxBloccoTo
FROM TabTranPosizEventi
WHERE CodEvento = @CodEvento
AND IdxPosizione = 0
AND IdxPosizioneTo = @IdxPosizione
AND CodStatoTo = @CodStato
), 0)
)
-- se non lo trovo cerco con CodStatoTo null...
IF(@IdxBloccoTo = 0)
BEGIN
SET @IdxBloccoTo = (
SELECT ISNULL(
(
SELECT IdxBloccoTo
FROM TabTranPosizEventi
WHERE CodEvento = @CodEvento
AND IdxPosizione = 0
AND IdxPosizioneTo = @IdxPosizione
), 0)
)
END
*/
-- se NON HO trovato una conf x @IdxBloccoTo utilizzo questo valore utilizzo modalità "vecchia"
IF(@IdxBloccoTo = 0)
BEGIN
-- calcolo la prima cella della posizione indicata..
SET @IdxCella = (
SELECT TOP 1 c.IdxCella
FROM Celle c INNER JOIN Blocchi b ON c.IdxBlocco=b.IdxBlocco
WHERE b.CodMag = CAST(@IdxPosizione AS NVARCHAR(50))
)
END
ELSE
BEGIN
-- calcolo la prima cella della posizione indicata..
SET @IdxCella = (
SELECT TOP 1 c.IdxCella
FROM Celle c
WHERE c.IdxBlocco = @IdxBloccoTo
)
END
-- inserisco il cartellino nella prima cella della posizione indicata...
INSERT INTO PosizioneUdcCorrente(UDC, IdxCella, CodCS, DataRif, CodSoggetto)
VALUES(@Udc, @IdxCella, @CodCS, GETDATE(), @CodSoggetto)
------------------------------------------------------------------------------------------------------
------------------------------------------------------------------------------------------------------
-- restituisco la tab dati con l'udc appena inserito
------------------------------------------------------------------------------------------------------
SELECT *
FROM ElencoCartellini
WHERE UDC = @UDC
------------------------------------------------------------------------------------------------------
RETURN
go
/***************************************
* STORED stp_UDC_insNewFull_fixUDC
*
* crea un nuovo record nella TabStatoOdpUdc FULL (con pesi, qta...) avendo in entrata il codice UDC da
utilizzare
*
* Steamware, S.E.L.
* mod: 2011.12.07
*
****************************************/
alter PROCEDURE stp_UDC_insNewFull_fixUDC
(
@UDC AS NVARCHAR(50),
@CodCS VARCHAR(2),
@Flusso VARCHAR(2),
@Anno VARCHAR(2),
@CodCliente VARCHAR(6),
@Particolare VARCHAR(15),
@CodImpianto AS VARCHAR(50),
@CodStampo VARCHAR(8),
@Esponente VARCHAR(6),
@Figura VARCHAR(4),
@DataFus DATETIME,
@TurnoFus INT,
@CodImballo VARCHAR(15),
@CodSoggetto VARCHAR(17),
@Tara FLOAT,
@IdxPosizione INT,
@CodTipoDichiaraz CHAR(1),
@CodEvento VARCHAR(10),
@Qta DECIMAL(10,2),
@PesoTot FLOAT,
@PesoCad FLOAT,
@CodStato VARCHAR(50),
@UDC_parent VARCHAR(50),
@DoDeleteUdcParent BIT,
@Note NVARCHAR(500)
)
AS
-- DECLARE iniziali
DECLARE @RagSociale AS VARCHAR(35)
DECLARE @DescParticolare AS VARCHAR(30)
DECLARE @DescImpianto AS VARCHAR(50)
DECLARE @DisegnoGrezzo AS VARCHAR(30)
DECLARE @NumCont AS INT
DECLARE @numFlu AS INT
DECLARE @numUdc AS INT
DECLARE @nextUdc AS INT
DECLARE @IdxCella AS INT
------------------------------------------------------------------------------------------------------
-- Caricamento Dati da anagrafica
------------------------------------------------------------------------------------------------------
-- cerco la ragione sociale...
SET @RagSociale = ISNULL(
(
SELECT RagSociale
FROM RilPro.AnagClienti
WHERE (CodCliente = @CodCliente)
)
, '')
-- Cerco descrizione del particolare...
SET @DescParticolare = ISNULL(
(
SELECT DescParticolare
FROM RilPro.AnagParticolari
WHERE (Particolare = @Particolare)
)
, 'ND')
-- se non lo trova provo anche nell'anagrafica leghe
IF(@DescParticolare = 'ND')-- OR (@DescParticolare is null)
BEGIN
SET @DescParticolare = ISNULL(
(
SELECT DescLega
FROM RilPro.AnagLeghe
WHERE ('L'+CodLega = @Particolare)
)
, '')
END
-- cerco codice disegno grezzo
SET @DisegnoGrezzo = ISNULL(
(
SELECT DisegnoGrezzo
FROM RilPro.AnagParticolari
WHERE (Particolare = @Particolare)
)
, '')
-- cerco descrizione Impianto
SET @DescImpianto = ISNULL(
(
SELECT DescImpianto
FROM AnagImpianti
WHERE (CodImpianto = @CodImpianto)
)
, '')
-- Calcolo contatore intero successivo x il contenitore...
SET @NumCont = (
SELECT ISNULL(MAX(NumCont), 0) + 1 AS NumCont
FROM ElencoCartellini
WHERE (Particolare = @Particolare)
AND (DataFus = @DataFus)
AND (TurnoFus = @TurnoFus)
AND (CodImpianto = @CodImpianto)
AND (CodStampo = @CodStampo)
AND (Figura = @Figura)
)
------------------------------------------------------------------------------------------------------
------------------------------------------------------------------------------------------------------
-- Ciclo principale x inserimento nuovo record
------------------------------------------------------------------------------------------------------
BEGIN TRAN
-- inserisco un nuovo record
INSERT INTO ElencoCartellini(UDC, CodCS, CodCliente, RagSociale, Particolare, DescParticolare,
DisegnoGrezzo, Esponente, CodImpianto, DescImpianto, CodStampo, Figura, DataFus, TurnoFus, CodImballo,
CodSoggetto, NumCont, Tara, Qta, CodStato, IdxPosizione, PesoTot, PesoCad, CreateDate, ModDate, Note, CodEvento)
VALUES (@UDC, @CodCS, @CodCliente, @RagSociale, @Particolare, @DescParticolare, @DisegnoGrezzo,
@Esponente, @CodImpianto, @DescImpianto, @CodStampo, @Figura, @DataFus, @TurnoFus, @CodImballo,
@CodSoggetto, @NumCont, @Tara, @Qta, @CodStato, @IdxPosizione, @PesoTot, @PesoCad, GETDATE(), GETDATE(),
@Note, @CodEvento)
-- inserisco relazione parent-child tra UDC vecchio (tara) e nuovo (pesa) SSE UDC_parent valido
IF((NOT @UDC_parent IS NULL) AND (NOT @UDC_parent = ''))
BEGIN
INSERT INTO RelazUDC(UDC_parent, UDC_child)
VALUES (@UDC_parent, @UDC)
END
COMMIT TRAN
------------------------------------------------------------------------------------------------------
------------------------------------------------------------------------------------------------------
-- Ciclo secondario x eventuale cancellazione UDC tara parent e inserimento in posizione
------------------------------------------------------------------------------------------------------
-- se richiesto elimino l'UDC parent (tara)
IF(@DoDeleteUdcParent = 1)
BEGIN
DELETE FROM ElencoCartellini WHERE UDC = @UDC_parent
END
-- cerco in TabTranPosizEventi record x calcolare cella
DECLARE @IdxBloccoTo INT
SET @IdxBloccoTo = 0
/* da testare...
SET @IdxBloccoTo = (
SELECT ISNULL(
(
SELECT IdxBloccoTo
FROM TabTranPosizEventi
WHERE CodEvento = @CodEvento
AND IdxPosizione = 0
AND IdxPosizioneTo = @IdxPosizione
AND CodStatoTo = @CodStato
), 0)
)
-- se non lo trovo cerco con CodStatoTo null...
IF(@IdxBloccoTo = 0)
BEGIN
SET @IdxBloccoTo = (
SELECT ISNULL(
(
SELECT IdxBloccoTo
FROM TabTranPosizEventi
WHERE CodEvento = @CodEvento
AND IdxPosizione = 0
AND IdxPosizioneTo = @IdxPosizione
), 0)
)
END
*/
-- se NON HO trovato una conf x @IdxBloccoTo utilizzo questo valore utilizzo modalità "vecchia"
IF(@IdxBloccoTo = 0)
BEGIN
-- calcolo la prima cella della posizione indicata..
SET @IdxCella = (
SELECT TOP 1 c.IdxCella
FROM Celle c INNER JOIN Blocchi b ON c.IdxBlocco=b.IdxBlocco
WHERE b.CodMag = CAST(@IdxPosizione AS NVARCHAR(50))
)
END
ELSE
BEGIN
-- calcolo la prima cella della posizione indicata..
SET @IdxCella = (
SELECT TOP 1 c.IdxCella
FROM Celle c
WHERE c.IdxBlocco = @IdxBloccoTo
)
END
-- inserisco il cartellino nella prima cella della posizione indicata..
INSERT INTO PosizioneUdcCorrente(UDC, IdxCella, CodCS, DataRif, CodSoggetto)
VALUES(@Udc, @IdxCella, @CodCS, GETDATE(), @CodSoggetto)
------------------------------------------------------------------------------------------------------
------------------------------------------------------------------------------------------------------
-- restituisco la tab dati con l'udc appena inserito
------------------------------------------------------------------------------------------------------
SELECT *
FROM ElencoCartellini
WHERE UDC = @UDC
------------------------------------------------------------------------------------------------------
RETURN
go
commit
go
INSERT INTO [dbo].[LogUpdateDb] ([Versione],[Data]) VALUES(516, GETDATE())
GO
SELECT TOP 10 * FROM LogUpdateDb ORDER BY Versione DESC