1f7b3ff79f
git-svn-id: https://keyhammer.ath.cx/svn/GMW/trunk@483 365432ac-a1b5-4ffd-bb28-6d3099d32164
208 lines
5.3 KiB
Transact-SQL
208 lines
5.3 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
|
|
|