Files
GMW/GMW_data/SqlScripts/V1.1/GMW_00225.sql
T
Samuele E. Locatelli bdd7b413e8 Riaggiunto GMW_data
2016-11-22 17:58:00 +01:00

208 lines
5.1 KiB
Transact-SQL

-- struttura
alter table Celle add
constraint FK_Celle_TipoCella foreign key(IdxTipoCella) references TipoCella(IdxTipoCella) on update cascade
go
--
set xact_abort on
go
begin transaction
go
set ANSI_NULLS on
go
alter VIEW V_statoCelleCapienzaAssegnati
AS
SELECT dbo.Celle.IdxCella, dbo.Celle.CodCella, dbo.TipoCella.Capienza, ISNULL(COUNT(dbo.PosizioneUdcCorrente.UDC), 0) AS UdcAssegnati, dbo.Celle.Piena
FROM dbo.TipoCella INNER JOIN
dbo.Celle ON dbo.TipoCella.IdxTipoCella = dbo.Celle.IdxTipoCella LEFT OUTER JOIN
dbo.PosizioneUdcCorrente ON dbo.Celle.IdxCella = dbo.PosizioneUdcCorrente.IdxCella
GROUP BY dbo.TipoCella.Capienza, dbo.Celle.IdxCella, dbo.Celle.Piena, dbo.Celle.CodCella
go
commit
go
--
set xact_abort on
go
begin transaction
go
set ANSI_NULLS on
go
/***************************************
* STORED stp_celleCreaMancantiBlocco
*
* crea il numero di celle richeiste e le assegna al blocco con valori default
*
* Steamware, S.E.L.
* mod: 2010.05.18
*
****************************************/
alter PROCEDURE stp_celleCreaMancantiBlocco
(
@CodCS VARCHAR(2),
@CodMag VARCHAR(50),
@IdxBlocco INT,
@IdxTipoCellaNew INT
)
AS
---------------------------------------------------------------------
-- setup iniziale valori XYZ del blocco
---------------------------------------------------------------------
DECLARE @CodBlocco VARCHAR(3);
SET @CodBlocco = (SELECT CodBlocco FROM Blocchi WHERE IdxBlocco = @IdxBlocco)
DECLARE @NumX INT;
DECLARE @NumY INT;
DECLARE @NumZ INT;
SET @NumX = (SELECT NumX FROM Blocchi WHERE IdxBlocco = @IdxBlocco) ;
SET @NumY = (SELECT NumY FROM Blocchi WHERE IdxBlocco = @IdxBlocco) ;
SET @NumZ = (SELECT NumZ FROM Blocchi WHERE IdxBlocco = @IdxBlocco) ;
DECLARE @Index INT ;
DECLARE @IdxTipoCella INT;
---------------------------------------------------------------------
-- creazione temp table x numeri delle dimensioni XYZ del blocco
---------------------------------------------------------------------
DECLARE @DimTable TABLE
(
dimensione VARCHAR(1),
valore INT
)
-- inserisco X
SET @Index = 1 ;
WHILE @Index <= @NumX
BEGIN
INSERT @DimTable(dimensione, valore)
VALUES ('X', @Index)
SET @Index = @Index + 1 ;
END
-- inserisco Y
SET @Index = 1 ;
WHILE @Index <= @NumY
BEGIN
INSERT @DimTable(dimensione, valore)
VALUES ('Y', @Index)
SET @Index = @Index + 1 ;
END
-- inserisco Z
SET @Index = 1 ;
WHILE @Index <= @NumZ
BEGIN
INSERT @DimTable(dimensione, valore)
VALUES ('Z', @Index)
SET @Index = @Index + 1 ;
END
---------------------------------------------------------------------
-- creazione temp table x schema COMPLETO posizioni blocco
---------------------------------------------------------------------
DECLARE @SchemaBlocco TABLE
(
X INT,
Y INT,
Z INT
)
INSERT INTO @SchemaBlocco
SELECT X_val.valore, Y_val.valore, Z_val.valore
FROM (SELECT * FROM @DimTable WHERE dimensione='X') AS X_val,
(SELECT * FROM @DimTable WHERE dimensione='Y') AS Y_val,
(SELECT * FROM @DimTable WHERE dimensione='Z') AS Z_val
----------------------------------------------------------------------------------
-- cerco primo tipo di celle per il mag indicato SE non ce ne è una specificata
----------------------------------------------------------------------------------
IF @IdxTipoCellaNew > 0
BEGIN
SET @IdxTipoCella = @IdxTipoCellaNew
END
ELSE
BEGIN
SET @IdxTipoCella = (SELECT TOP (1) ISNULL(IdxTipoCella, 0) AS IdxTipoCella
FROM TipoCella
WHERE (CodCS = @CodCS) AND (CodMag = @CodMag))
END
---------------------------------------------------------------------
-- inserisco le celle nelle posizioni LIBERE del blocco
---------------------------------------------------------------------
INSERT INTO Celle(CodCS, CodCella, IdxTipoCella, Descrizione, Attiva, Piena, IdxBlocco,X,Y,Z)
SELECT @CodCS, @CodBlocco + dbo.f_padLeft(CAST(sb.X AS VARCHAR),2,'0') + dbo.f_padLeft(CAST(sb.Y AS VARCHAR),2,'0') + dbo.f_padLeft(CAST(sb.Z AS VARCHAR),2,'0'), @IdxTipoCella, '-', 1, 0, @IdxBlocco, sb.X, sb.Y, sb.Z
FROM @SchemaBlocco sb LEFT OUTER JOIN (SELECT *
FROM Celle
WHERE IdxBlocco = @IdxBlocco) c
ON sb.X = c.X AND sb.Y = c.Y AND sb.Z = c.Z
WHERE c.IdxCella IS NULL
ORDER BY sb.X,sb.Y,sb.Z ASC
RETURN
go
commit
go
--
set xact_abort on
go
begin transaction
go
set ANSI_NULLS on
go
/***************************************
* STORED stp_ricercaFullTerminalino
*
* effettua una ricerca full text da terminalino x codice UDC (su cartellini), x nome particolare (AnagParticolari) o posizione (Celle)
*
* Steamware, S.E.L.
* mod: 2010.09.10
*
****************************************/
create PROCEDURE stp_ricercaFullTerminalino
(
@txtSearch VARCHAR(50)
)
AS
SELECT 'UDC' AS Tipo, UDC AS label, UDC AS valore
FROM dbo.ElencoCartellini
WHERE UDC LIKE '%'+@txtSearch+'%'
UNION
SELECT 'Particolare' AS Tipo, Particolare AS label, Particolare AS valore
FROM RilPro.AnagParticolari
WHERE Particolare LIKE '%'+@txtSearch+'%'
UNION
SELECT 'Cella' AS Tipo, CodCella AS label, CAST(IdxCella AS NVARCHAR)AS valore
FROM dbo.Celle
WHERE CodCella LIKE '%'+@txtSearch+'%'
RETURN
go
commit
go
-- DATI