update del delta db...
git-svn-id: https://keyhammer.ath.cx/svn/GMW/trunk@294 365432ac-a1b5-4ffd-bb28-6d3099d32164
This commit is contained in:
@@ -0,0 +1,238 @@
|
||||
set xact_abort on
|
||||
go
|
||||
|
||||
begin transaction
|
||||
go
|
||||
|
||||
create index i_dataFus on ElencoCartellini(DataFus)
|
||||
go
|
||||
|
||||
create index i_idxPosizione on ElencoCartellini(IdxPosizione)
|
||||
go
|
||||
|
||||
commit
|
||||
go
|
||||
|
||||
set xact_abort on
|
||||
go
|
||||
|
||||
begin transaction
|
||||
go
|
||||
|
||||
set ANSI_NULLS on
|
||||
go
|
||||
|
||||
/***************************************
|
||||
* STORED stp_ArtiInProd_ByImpData
|
||||
*
|
||||
* ottiene l'elenco dei particolari in lavorazione in una certa data/ora (già trasformato data+turno in dataora) su un impianto
|
||||
* --> con dettaglio su articoli (da anagrafica)
|
||||
*
|
||||
* Steamware, S.E.L.
|
||||
* mod: 2010.04.29
|
||||
*
|
||||
****************************************/
|
||||
alter PROCEDURE stp_ArtiInProd_ByImpData
|
||||
(
|
||||
@CodImpianto VARCHAR(50),
|
||||
@DataRif DATETIME
|
||||
)
|
||||
AS
|
||||
|
||||
-- iniziamo definendo le varie viste accessorie
|
||||
WITH cteUltStampo AS
|
||||
(SELECT CodStampo, InizioValidita, ProgFigure, FineValidita, NumCommessa, NumFigure, CodCliente, CodArticolo, Particolare
|
||||
FROM RilPro.StampoArticolo AS A
|
||||
WHERE (@DataRif >= InizioValidita AND @DataRif <= ISNULL(FineValidita, DATEADD(year, 2, GETDATE()))) ),
|
||||
cteEspAttivi AS
|
||||
(SELECT s.CodStampo, s.Esponente, s.EspAttivo, s.DataInserim, s.DataValidita
|
||||
FROM RilPro.StampoEsponente AS s INNER JOIN
|
||||
(SELECT CodStampo, MAX(DataValidita) AS DataValidita
|
||||
FROM RilPro.StampoEsponente
|
||||
WHERE (DataValidita <= @DataRif) AND (EspAttivo = 'S')
|
||||
GROUP BY CodStampo) AS s2 ON s.CodStampo = s2.CodStampo AND s.DataValidita = s2.DataValidita),
|
||||
cteLineeAttive AS
|
||||
(SELECT CodImpianto, CodStampo, NumStampate, CONVERT(DATETIME, DataInizio) AS DataInizio, DataFine, TurnoInizio, TurnoFine
|
||||
FROM RilPro.LineaStampi
|
||||
WHERE (@DataRif BETWEEN DataInizio AND ISNULL(DataFine, DATEADD(year, 2, GETDATE())))
|
||||
AND CodImpianto = @CodImpianto)
|
||||
|
||||
-- faccio la select principale
|
||||
SELECT l.CodImpianto, l.CodStampo, l.NumStampate, l.DataInizio, l.TurnoInizio, g.InizioValidita, g.FineValidita, g.NumFigure,
|
||||
dbo.f_padLeft(CAST(g.CodCliente AS varchar(50)), 5, '0') AS CodCliente, ISNULL(cl.RagSociale,'-') AS RagSociale, CAST(g.CodArticolo AS varchar(50)) AS CodArticolo,
|
||||
g.Particolare, pa.DescParticolare, pa.DisegnoGrezzo, pa.CodFamiglia, fa.DescFamiglia, fi.Figura, es.Esponente
|
||||
FROM cteLineeAttive AS l INNER JOIN cteUltStampo AS g ON l.CodStampo = g.CodStampo LEFT OUTER JOIN
|
||||
RilPro.StampoFigure AS fi ON l.CodStampo = fi.CodStampo LEFT OUTER JOIN
|
||||
cteEspAttivi AS es ON g.CodStampo = es.CodStampo LEFT OUTER JOIN
|
||||
RilPro.AnagParticolari AS pa ON g.Particolare = pa.Particolare LEFT OUTER JOIN
|
||||
RilPro.AnagFamiglie AS fa ON pa.CodFamiglia = fa.CodFamiglia LEFT OUTER JOIN
|
||||
RilPro.AnagClienti AS cl ON g.CodCliente = cl.CodCliente
|
||||
ORDER BY l.CodImpianto
|
||||
|
||||
RETURN
|
||||
go
|
||||
|
||||
commit
|
||||
go
|
||||
|
||||
|
||||
set xact_abort on
|
||||
go
|
||||
|
||||
begin transaction
|
||||
go
|
||||
|
||||
set ANSI_NULLS on
|
||||
go
|
||||
|
||||
/***************************************
|
||||
* STORED stp_UDC_delibera
|
||||
*
|
||||
* fa la delibera dell'UDC andando a processare la state machien e quindi eventualmente cambiando la sua posizione
|
||||
*
|
||||
* Steamware, S.E.L.
|
||||
* mod: 2010.09.13
|
||||
*
|
||||
************************************/
|
||||
alter PROCEDURE stp_UDC_delibera
|
||||
(
|
||||
@CodTipoDelibera NVARCHAR(50),
|
||||
@UDC NVARCHAR(50),
|
||||
@CodSoggetto NVARCHAR(17),
|
||||
@CodCS VARCHAR(2)
|
||||
)
|
||||
|
||||
AS
|
||||
|
||||
BEGIN TRAN
|
||||
DECLARE @IdxPosizioneTo AS INT
|
||||
DECLARE @IdxPosizioneFrom AS INT
|
||||
DECLARE @IdxPosizionePre AS NVARCHAR(50)
|
||||
DECLARE @IdxCellaPre AS INT
|
||||
DECLARE @IdxCellaTo AS INT
|
||||
|
||||
-- ricavo cella ATTUALE
|
||||
SET @IdxCellaPre = (SELECT IdxCella FROM PosizioneUdcCorrente WHERE UDC = @UDC)
|
||||
|
||||
-- ricavo posizione ATTUALE
|
||||
SET @IdxPosizionePre = (SELECT TOP 1 b.CodMag FROM Celle c INNER JOIN Blocchi b ON c.IdxBlocco=b.IdxBlocco WHERE c.IdxCella = @IdxCellaPre)
|
||||
|
||||
|
||||
-- registro delibera
|
||||
INSERT INTO DELIBERE
|
||||
VALUES (@CodTipoDelibera, @UDC, GETDATE(), @CodSoggetto)
|
||||
|
||||
-- ricavo nuova posizione
|
||||
SET @IdxPosizioneTo = (SELECT tt.IdxPosizioneTo
|
||||
FROM TabTranPosizEventi tt INNER JOIN AnagTipoDelibere atd ON tt.CodEvento = atd.CodEvento
|
||||
WHERE (atd.CodTipoDelibera = @CodTipoDelibera))
|
||||
|
||||
-- ricavo posizione TEORICA VECCHIA
|
||||
SET @IdxPosizioneFrom = (SELECT tt.IdxPosizione
|
||||
FROM TabTranPosizEventi tt INNER JOIN AnagTipoDelibere atd ON tt.CodEvento = atd.CodEvento
|
||||
WHERE (atd.CodTipoDelibera = @CodTipoDelibera))
|
||||
|
||||
-- calcolo la prima cella della nuova posizione...
|
||||
SET @IdxCellaTo = (
|
||||
SELECT TOP 1 IdxCella FROM Celle
|
||||
WHERE IdxBlocco = (
|
||||
SELECT IdxBlocco FROM Blocchi
|
||||
WHERE CodMag=CAST(@IdxPosizioneTo AS NVARCHAR(50)))
|
||||
)
|
||||
|
||||
-- faccio update posizione
|
||||
UPDATE ElencoCartellini
|
||||
SET IdxPosizione = @IdxPosizioneTo
|
||||
WHERE UDC = @UDC
|
||||
|
||||
-- controllo posizioni act e from teorica: SE e SOLO SE corrispondono faccio spostamento...
|
||||
IF(CAST(@IdxPosizioneFrom AS NVARCHAR(50)) = @IdxPosizionePre)
|
||||
BEGIN
|
||||
-- ora cambio anche la posizione corrente dell'UDC (e tramite trigger storicizza...)
|
||||
EXEC stp_spostaUdc @CodCS, @UDC, @IdxCellaTo
|
||||
END
|
||||
|
||||
COMMIT TRAN
|
||||
|
||||
|
||||
RETURN
|
||||
go
|
||||
|
||||
/***************************************
|
||||
* STORED stp_UDC_getByFlussoDate
|
||||
*
|
||||
* elenco cartellini creati su una data bilancia in un periodo ti tempo indicato
|
||||
*
|
||||
* Steamware, S.E.L.
|
||||
* mod: 2010.10.13
|
||||
*
|
||||
****************************************/
|
||||
create PROCEDURE stp_UDC_getByFlussoDate
|
||||
(
|
||||
|
||||
@CodCS NVARCHAR(2),
|
||||
@Flusso NVARCHAR(2),
|
||||
@DataFrom DATETIME,
|
||||
@DataTo DATETIME
|
||||
)
|
||||
AS
|
||||
|
||||
SELECT *
|
||||
FROM ElencoCartellini
|
||||
WHERE (UDC LIKE 'U' + @CodCS + @Flusso + '%')
|
||||
AND (DataFus >= @DataFrom) AND (DataFus <= @DataTo)
|
||||
ORDER BY UDC DESC
|
||||
|
||||
RETURN
|
||||
go
|
||||
|
||||
/***************************************
|
||||
* STORED stp_UDC_getLast_ByDataTurnoLineaParticolare
|
||||
*
|
||||
* elenco cartellini ULTIMI creati su una data bilancia dati data, turno, linea e particolare
|
||||
*
|
||||
* Steamware, S.E.L.
|
||||
* mod: 2010.10.13
|
||||
*
|
||||
****************************************/
|
||||
create PROCEDURE stp_UDC_getLast_ByDataTurnoLineaParticolare
|
||||
(
|
||||
@CodCS VARCHAR(2),
|
||||
@Particolare VARCHAR(15),
|
||||
@CodImpianto AS VARCHAR(50),
|
||||
@DataFus DATETIME,
|
||||
@TurnoFus INT
|
||||
)
|
||||
AS
|
||||
|
||||
-- carico l'elenco dei dati "attivi" x il filtraggio richiesto
|
||||
WITH cte_contAttivi AS(
|
||||
SELECT CodCS, Particolare, Esponente, CodImpianto,CodStampo, Figura, DataFus, TurnoFus, MAX(NumCont) AS NumCont
|
||||
FROM ElencoCartellini
|
||||
GROUP BY CodCS, Particolare, Esponente, CodImpianto, CodStampo, Figura, DataFus, TurnoFus
|
||||
HAVING (CodImpianto = @CodImpianto) AND (DataFus = @DataFus) AND (TurnoFus= @TurnoFus) AND (Particolare= @Particolare) AND CodCs = @CodCS
|
||||
)
|
||||
|
||||
-- traduco in tab estesa UDC
|
||||
SELECT ec.* FROM ElencoCartellini ec INNER JOIN cte_contAttivi ca
|
||||
ON ec.Particolare = ca.Particolare AND ec.Esponente=ca.Esponente AND ec.CodImpianto=ca.CodImpianto
|
||||
AND ec.CodStampo=ca.CodStampo AND ec.Figura=ca.Figura AND ec.DataFus=ca.DataFus AND ec.TurnoFus=ca.TurnoFus
|
||||
AND ec.NumCont=ca.NumCont AND ec.CodCs=ca.CodCs
|
||||
|
||||
RETURN
|
||||
go
|
||||
|
||||
commit
|
||||
go
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
-- registro versione...
|
||||
INSERT INTO [dbo].[LogUpdateDb] ([Versione],[Data]) VALUES(285, GETDATE())
|
||||
GO
|
||||
Reference in New Issue
Block a user