Files
XPS/SQL_Scripts/Update_1.7.sql
T
2018-03-23 18:24:55 +01:00

251 lines
6.2 KiB
Transact-SQL

-- Inserisco NUOVO PERMESSO x iniziare lavorazioen di ordini U / D anche SE NON SCHEDULATI...
INSERT INTO TraEv2Stati (CodMappa,CodObj,CodStato,CodEvento,NextCodStato,CmdPlugin,text2show,descrComando) VALUES('E_Stati','D','02','04','04',NULL,NULL,'cambio da stato 2 a 4 (inizio lav)')
INSERT INTO TraEv2Stati (CodMappa,CodObj,CodStato,CodEvento,NextCodStato,CmdPlugin,text2show,descrComando) VALUES('E_Stati','D','01','04','04',NULL,NULL,'cambio da stato 1 a 4 (inizio lav)')
INSERT INTO TraEv2Stati (CodMappa,CodObj,CodStato,CodEvento,NextCodStato,CmdPlugin,text2show,descrComando) VALUES('E_Stati','U','02','04','04',NULL,NULL,'cambio da stato 2 a 4 (inizio lav)')
INSERT INTO TraEv2Stati (CodMappa,CodObj,CodStato,CodEvento,NextCodStato,CmdPlugin,text2show,descrComando) VALUES('E_Stati','U','01','04','04',NULL,NULL,'cambio da stato 1 a 4 (inizio lav)')
-- 2018.03.23 update tab IstObj x salvare VOLUME occupato (come pesoEq / Peso standard)
ALTER TABLE IstObj ADD PesoEquiv float null;
ALTER TABLE IstObj_storico ADD PesoEquiv float null;
UPDATE IstObj_storico SET PesoEquiv = CEILING(Peso/10)*10
UPDATE IstObj SET PesoEquiv = CEILING(Peso/10)*10
ALTER TABLE AnagLav ADD PesoUnit FLOAT NOT NULL DEFAULT 400;
ALTER TABLE AnagLav ADD RoundVal FLOAT NOT NULL DEFAULT 10;
INSERT INTO AnagLav([IdxLav],[DescrLav],[PesoUnit], RoundVal) VALUES('Fosf-VG', 'Fosfatazione Vasca Grande', 2500, 10)
/****** Object: StoredProcedure [dbo].[stp_selStatiMinMax] Script Date: 23/03/2018 11:59:33 ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
/***************************************
* STORED stp_impegniSchedulati
* recupera elenco degli impegni schedulati x TipoLav e unità equivalenti
*
* Steamware, S.E.L.
* mod: 2018.03.23
****************************************/
create PROCEDURE [dbo].[stp_impegniSchedulati]
(
@IdxLav nvarchar(50) = '*'
)
AS
SELECT @IdxLav = ISNULL(@IdxLav,'*')
;with cteImpegni as
(
SELECT *
FROM IstObj
WHERE ISNULL(PesoEquiv,0)>0
AND CodStato = '03'
AND ExtKey = CASE WHEN @IdxLav = '*' THEN ExtKey ELSE @IdxLav END
)
, cteImpGG AS
(
SELECT dbo.DateOnly(DueDate) AS DueDate, ExtKey as IdxLav, SUM(Peso) AS TotPeso, Sum(PesoEquiv) as TotPesoEquiv
FROM cteImpegni
GROUP BY dbo.DateOnly(DueDate), ExtKey
)
SELECT i.*, i.TotPesoEquiv / al.PesoUnit AS RatioUnit, CEILING(i.TotPesoEquiv / al.PesoUnit) AS NumUnit
FROM cteImpGG i
INNER JOIN AnagLav al ON al.IdxLav=i.IdxLav
RETURN
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
/***************************************
* STORED stp_AnagCliGetByKey
*
* ottiene record anagrafica clienti da chiave
*
* Steamware, S.E.L.
* mod: 2018.03.23
*
****************************************/
create PROCEDURE [dbo].[stp_AnagLav]
(
@IdxLav NVARCHAR(50)
)
AS
SELECT *
FROM AnagLav
WHERE IdxLav = @IdxLav
RETURN
/****** Object: StoredProcedure [dbo].[stp_IstObj_updateStatoTree] Script Date: 23/03/2018 15:28:31 ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
/***************************************
* STORED stp_IstObj_updateStatoTree
*
* aggiorna stato di un intero ramo
*
* Steamware, S.E.L.
* mod: 2011.10.27
*
****************************************/
ALTER PROCEDURE [dbo].[stp_IstObj_updateStatoTree]
(
@CodStato NVARCHAR(50),
@UserMod NVARCHAR(50),
@DataMod DATETIME,
@IdxObjCommon NVARCHAR(50)
)
AS
UPDATE IstObj
SET CodStato = @CodStato,
UserMod = @UserMod,
DataMod = @DataMod
WHERE IdxObj LIKE @IdxObjCommon
RETURN
GO
/****** Object: StoredProcedure [dbo].[stp_IstObj_updateStatoTree] Script Date: 23/03/2018 15:28:31 ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
/***************************************
* STORED stp_IstObj_updateStatoPesoEqTree
*
* aggiorna stato di un intero ramo + fix peso EQUIVALENTE
*
* Steamware, S.E.L.
* mod: 2011.10.27
*
****************************************/
create PROCEDURE [dbo].[stp_IstObj_updateStatoPesoEqTree]
(
@CodStato NVARCHAR(50),
@UserMod NVARCHAR(50),
@DataMod DATETIME,
@IdxObjCommon NVARCHAR(50),
@EqPeso FLOAT
)
AS
UPDATE IstObj
SET CodStato = @CodStato,
UserMod = @UserMod,
DataMod = @DataMod,
PesoEquiv = @EqPeso * Peso
WHERE IdxObj LIKE @IdxObjCommon
RETURN
GO
/****** Object: StoredProcedure [dbo].[stp_IstObj_updateStatoPesoEqTree] Script Date: 23/03/2018 15:51:39 ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
/***************************************
* STORED stp_IstObj_updateStatoPesoEqTree
*
* aggiorna stato di un intero ramo + fix peso EQUIVALENTE
*
* Steamware, S.E.L.
* mod: 2011.10.27
*
****************************************/
ALTER PROCEDURE [dbo].[stp_IstObj_updateStatoPesoEqTree]
(
@CodStato NVARCHAR(50),
@UserMod NVARCHAR(50),
@DataMod DATETIME,
@IdxObjCommon NVARCHAR(50),
@EqPeso FLOAT
)
AS
BEGIN Tran
-- recupero valore arrotondamento standard x lavorazione...
DECLARE @RoundVal FLOAT = 1
SELECT @RoundVal = ISNULL(RoundVal,1)
FROM AnagLav al INNER JOIN IstObj ij ON al.IdxLav=ij.ExtKey
WHERE IdxObj LIKE @IdxObjCommon
UPDATE IstObj
SET CodStato = @CodStato,
UserMod = @UserMod,
DataMod = @DataMod,
PesoEquiv = @EqPeso * CEILING(ISNULL(Peso,0) / @RoundVal ) * @RoundVal
WHERE IdxObj LIKE @IdxObjCommon
COMMIT Tran
RETURN
/****** Object: StoredProcedure [dbo].[stp_impegniSchedulati] Script Date: 23/03/2018 18:22:55 ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
/***************************************
* STORED stp_impegniSchedulati
* recupera elenco degli impegni schedulati x TipoLav e unità equivalenti
*
* Steamware, S.E.L.
* mod: 2018.03.23
****************************************/
ALTER PROCEDURE [dbo].[stp_impegniSchedulati]
(
@IdxLav nvarchar(50) = '*'
)
AS
SELECT @IdxLav = ISNULL(@IdxLav,'*')
;with cteImpegni as
(
SELECT *
FROM IstObj
WHERE ISNULL(PesoEquiv,0)>0
AND CodStato = '03'
AND ExtKey = CASE WHEN @IdxLav = '*' THEN ExtKey ELSE @IdxLav END
AND dbo.DateOnly(DueDate) >= GETDATE()
)
, cteImpGG AS
(
SELECT dbo.DateOnly(DueDate) AS DueDate, ExtKey as IdxLav, SUM(Peso) AS TotPeso, Sum(PesoEquiv) as TotPesoEquiv
FROM cteImpegni
GROUP BY dbo.DateOnly(DueDate), ExtKey
)
SELECT i.*, i.TotPesoEquiv / al.PesoUnit AS RatioUnit, CEILING(i.TotPesoEquiv / al.PesoUnit) AS NumUnit
FROM cteImpGG i
INNER JOIN AnagLav al ON al.IdxLav=i.IdxLav
RETURN