426 lines
11 KiB
Transact-SQL
426 lines
11 KiB
Transact-SQL
-- svuoto tab x procedere...
|
|
delete from AS400_BatchMovimenti
|
|
GO
|
|
|
|
|
|
|
|
set xact_abort on
|
|
go
|
|
|
|
begin transaction
|
|
go
|
|
|
|
alter table AS400_BatchMovimenti drop
|
|
constraint FK_AS400_BatchMovimenti_AS400_MagCont ,
|
|
constraint FK_AS400_BatchMovimenti_AnagTipoEvento
|
|
go
|
|
|
|
exec sp_rename 'PK_AS400_BatchMovimenti', 'tmp__PK_AS400_BatchMovimenti', 'OBJECT'
|
|
go
|
|
|
|
exec sp_rename 'AS400_BatchMovimenti', 'tmp__AS400_BatchMovimenti_1', 'OBJECT'
|
|
go
|
|
|
|
create table AS400_BatchMovimenti(
|
|
DataIns datetime not null,
|
|
CodEvento nvarchar(10) not null,
|
|
Particolare nvarchar(15) not null,
|
|
UDC nvarchar(50) not null,
|
|
CodMagAS nvarchar(50) not null,
|
|
Quantita decimal(10,2) not null,
|
|
DataBatch datetime,
|
|
DataVerifica datetime,
|
|
|
|
constraint PK_AS400_BatchMovimenti primary key(DataIns,CodEvento,Particolare,UDC,CodMagAS)
|
|
)
|
|
go
|
|
|
|
alter table AS400_BatchMovimenti add
|
|
constraint FK_AS400_BatchMovimenti_AnagTipoEvento foreign key(CodEvento) references AnagTipoEvento(CodEvento) on update cascade,
|
|
constraint FK_AS400_BatchMovimenti_AS400_MagCont foreign key(CodMagAS) references AS400_MagCont(CodMagAS) on update cascade
|
|
go
|
|
|
|
exec sp_addextendedproperty 'MS_Description', 'dataora inserimento in coda caricamento', 'SCHEMA', 'dbo', 'TABLE', 'AS400_BatchMovimenti', 'COLUMN', 'DataIns'
|
|
go
|
|
|
|
exec sp_addextendedproperty 'MS_Description', 'NON MODIFICARE: nel codice si usano questi campi x chiamate...', 'SCHEMA', 'dbo', 'TABLE', 'AS400_BatchMovimenti', 'COLUMN', 'CodEvento'
|
|
go
|
|
|
|
exec sp_addextendedproperty 'MS_Description', 'dataora di caricamento batch verso AS', 'SCHEMA', 'dbo', 'TABLE', 'AS400_BatchMovimenti', 'COLUMN', 'DataBatch'
|
|
go
|
|
|
|
exec sp_addextendedproperty 'MS_Description', N'dataora in cui è stato verificato il caricamento su AS', 'SCHEMA', 'dbo', 'TABLE', 'AS400_BatchMovimenti', 'COLUMN', 'DataVerifica'
|
|
go
|
|
|
|
insert into AS400_BatchMovimenti(DataIns,CodEvento,Particolare,UDC,CodMagAS,Quantita,DataBatch,DataVerifica) select DataIns,CodEvento,Particolare,N'',CodMagAS,Quantita,DataBatch,DataVerifica from tmp__AS400_BatchMovimenti_1
|
|
go
|
|
|
|
drop table tmp__AS400_BatchMovimenti_1
|
|
go
|
|
|
|
commit
|
|
go
|
|
|
|
|
|
set xact_abort on
|
|
go
|
|
|
|
begin transaction
|
|
go
|
|
|
|
set ANSI_NULLS on
|
|
go
|
|
|
|
-- =============================================
|
|
-- Author: Samuele E. Locatelli
|
|
-- Create date: 2009-09-20
|
|
-- Description: trigger x inserimento movimenti
|
|
-- nella coda di trasferimento batch
|
|
-- verso AS400 x UPDATE UDC
|
|
-- =============================================
|
|
alter TRIGGER trg_updMovAS
|
|
ON ElencoCartellini
|
|
AFTER UPDATE
|
|
AS
|
|
BEGIN
|
|
|
|
-- setup variabili e verbosità
|
|
SET NOCOUNT ON;
|
|
DECLARE @partOk AS BIT
|
|
DECLARE @IdxPosFrom AS INT
|
|
DECLARE @IdxPosTo AS INT
|
|
DECLARE @magFrom AS NVARCHAR(50)
|
|
DECLARE @magTo AS NVARCHAR(50)
|
|
DECLARE @qta AS DECIMAL(10,2)
|
|
|
|
-- controllo che CI SIA il particolare (altrimenti non eseguo)
|
|
SET @partOk = (SELECT CASE WHEN ISNULL(Particolare,'n.d.') = 'n.d.' THEN 0 ELSE 1 END FROM deleted)
|
|
|
|
IF(@partOk = 1)
|
|
SET @qta = (SELECT Qta FROM inserted)
|
|
-- se c'è stata modifica di quantità inizio a rettificare quella
|
|
IF UPDATE(Qta)
|
|
BEGIN
|
|
INSERT INTO AS400_BatchMovimenti(DataIns, CodEvento, Particolare, UDC, CodMagAS, Quantita)
|
|
(
|
|
SELECT GETDATE(), 'UDC_MOD', Particolare, UDC, CAST(IdxPosizione AS NVARCHAR(50)), @qta-Qta
|
|
FROM deleted
|
|
WHERE CAST(IdxPosizione AS NVARCHAR(50)) IN (SELECT CodMagAS FROM AS400_MagCont WHERE Attivo = 1)
|
|
)
|
|
END
|
|
|
|
-- controllo poi se sia cambiato il magazzino, altrimenti non lo inserisco
|
|
IF UPDATE(IdxPosizione)
|
|
BEGIN
|
|
-- Prendo le posizioni di magazzino precedente e nuova
|
|
SET @IdxPosFrom = (SELECT IdxPosizione FROM deleted)
|
|
SET @IdxPosTo = (SELECT IdxPosizione FROM inserted)
|
|
-- Le trasformo nelle equivalenti stringhe del codMag SE attive
|
|
SET @magFrom = (SELECT ISNULL(CodMagAS,'---') FROM AS400_MagCont WHERE Attivo = 1 AND CodMagAs = CAST(@IdxPosFrom AS NVARCHAR(50)))
|
|
SET @magTo = (SELECT ISNULL(CodMagAS,'---') FROM AS400_MagCont WHERE Attivo = 1 AND CodMagAs = CAST(@IdxPosTo AS NVARCHAR(50)))
|
|
|
|
-- inserisco un movimento di deposito verso mag nuovo (SE attivo)
|
|
IF (@magFrom <> '---')
|
|
BEGIN
|
|
INSERT INTO AS400_BatchMovimenti(DataIns, CodEvento, Particolare, UDC, CodMagAS, Quantita)
|
|
(
|
|
SELECT GETDATE(), 'UDC_MOV', Particolare, UDC, CAST(IdxPosizione AS NVARCHAR(50)), -@qta
|
|
FROM deleted
|
|
WHERE CAST(IdxPosizione AS NVARCHAR(50)) IN (SELECT CodMagAS FROM AS400_MagCont WHERE Attivo = 1)
|
|
)
|
|
END
|
|
-- inserisco un movimento di prelievo verso mag vecchio (SE attivo)
|
|
IF (@magTo <> '---')
|
|
BEGIN
|
|
INSERT INTO AS400_BatchMovimenti(DataIns, CodEvento, Particolare, UDC, CodMagAS, Quantita)
|
|
(
|
|
SELECT GETDATE(), 'UDC_MOV', Particolare, UDC, CAST(IdxPosizione AS NVARCHAR(50)), @qta
|
|
FROM inserted
|
|
WHERE CAST(IdxPosizione AS NVARCHAR(50)) IN (SELECT CodMagAS FROM AS400_MagCont WHERE Attivo = 1)
|
|
)
|
|
END
|
|
END
|
|
|
|
END
|
|
go
|
|
|
|
-- =============================================
|
|
-- Author: Samuele E. Locatelli
|
|
-- Create date: 2009-09-20
|
|
-- Description: trigger x inserimento movimenti
|
|
-- nella coda di trasferimento batch
|
|
-- verso AS400 x INSERT UDC
|
|
-- =============================================
|
|
alter TRIGGER trg_InsMovAS
|
|
ON ElencoCartellini
|
|
AFTER INSERT
|
|
AS
|
|
BEGIN
|
|
|
|
-- setup variabili e verbosità
|
|
SET NOCOUNT ON;
|
|
DECLARE @partOk AS BIT
|
|
|
|
-- controllo che CI SIA il particoalre (altrimenti non eseguo)
|
|
SET @partOk = (SELECT CASE WHEN ISNULL(Particolare,'n.d.') = 'n.d.' THEN 0 ELSE 1 END FROM inserted)
|
|
|
|
IF(@partOk = 1)
|
|
BEGIN
|
|
-- metto in storico la posizione attuale dell'UDC (SE esiste) CANCELLATO
|
|
INSERT INTO AS400_BatchMovimenti(DataIns, CodEvento, Particolare, UDC, CodMagAS, Quantita)
|
|
(
|
|
SELECT GETDATE(), 'UDC_NEW', Particolare, UDC, CAST(IdxPosizione AS NVARCHAR(50)), Qta
|
|
FROM inserted
|
|
WHERE CAST(IdxPosizione AS NVARCHAR(50)) IN (SELECT CodMagAS FROM AS400_MagCont WHERE Attivo = 1)
|
|
)
|
|
END
|
|
|
|
END
|
|
go
|
|
|
|
-- =============================================
|
|
-- Author: Samuele E. Locatelli
|
|
-- Create date: 2009-09-20
|
|
-- Description: trigger x inserimento movimenti
|
|
-- nella coda di trasferimento batch
|
|
-- verso AS400 x DELETE UDC
|
|
-- =============================================
|
|
alter TRIGGER trg_DelMovAS
|
|
ON ElencoCartellini
|
|
AFTER DELETE
|
|
AS
|
|
BEGIN
|
|
|
|
-- setup variabili e verbosità
|
|
SET NOCOUNT ON;
|
|
-- inserisco movimenti AS
|
|
INSERT INTO AS400_BatchMovimenti(DataIns, CodEvento, Particolare, UDC, CodMagAS, Quantita)
|
|
(
|
|
SELECT GETDATE(), 'UDC_DEL', Particolare, UDC, CAST(IdxPosizione AS NVARCHAR(50)), -Qta
|
|
FROM deleted
|
|
WHERE CAST(IdxPosizione AS NVARCHAR(50)) IN (SELECT CodMagAS FROM AS400_MagCont WHERE Attivo = 1) AND ((CASE WHEN ISNULL(Particolare,'n.d.') = 'n.d.' THEN 0 ELSE 1 END) = 1)
|
|
)
|
|
|
|
END
|
|
go
|
|
|
|
commit
|
|
go
|
|
|
|
set xact_abort on
|
|
go
|
|
|
|
begin transaction
|
|
go
|
|
|
|
set ANSI_NULLS on
|
|
go
|
|
|
|
/***************************************
|
|
* STORED stp_batch_RapQual_S01
|
|
*
|
|
* Esegue lo step 1 (caricamento dati RAW da AS400) per la tab dei rapporti di qualità
|
|
*
|
|
* Steamware, S.E.L.
|
|
* mod: 2010.09.23
|
|
*
|
|
****************************************/
|
|
alter PROCEDURE BatchQueue.stp_batch_RapQual_S01
|
|
(
|
|
@minData DATETIME
|
|
)
|
|
AS
|
|
-- BOZZA DA COMPLETARE A CURA MAZZUCCONI!!!
|
|
|
|
DECLARE @SQL AS NVARCHAR(1000)
|
|
DECLARE @dataAs400 AS VARCHAR(8)
|
|
|
|
SET @dataAs400 = (SELECT dbo.dateToAsFormat(@minData))
|
|
|
|
-- svuoto tab raw attuale
|
|
/*
|
|
DELETE FROM RawData.XOGIX00F
|
|
*/
|
|
|
|
|
|
-- INSERISCO DA AS400
|
|
/*
|
|
INSERT INTO RawData.XOGIX00F
|
|
(
|
|
SET @SQL =
|
|
N'SELECT
|
|
XRPQLN
|
|
,XRPQLD
|
|
,XNRETI
|
|
,XCDFOR
|
|
,XCDTER
|
|
,XCDPAR
|
|
,XDTPRO
|
|
,XTRPRO
|
|
,XQTPRO
|
|
,XDESMT
|
|
,XMATSC
|
|
,XBENQL
|
|
FROM OPENQUERY( P65220DC, ''SELECT * FROM MAZZT_DTV3.XOGIX00F WHERE XRPQLD >= '
|
|
SET @SQL = @SQL + @dataAs400 + ''' )'
|
|
|
|
EXEC dbo.sp_executesql @SQL
|
|
)
|
|
*/
|
|
|
|
RETURN
|
|
go
|
|
|
|
commit
|
|
go
|
|
|
|
|
|
|
|
set xact_abort on
|
|
go
|
|
|
|
begin transaction
|
|
go
|
|
|
|
set ANSI_NULLS on
|
|
go
|
|
|
|
/***************************************
|
|
* STORED stp_rappQualSuntoGetByDataRange
|
|
*
|
|
* Ottiene l'elenco dei record di rapp qualità di AS dato il range delle date
|
|
*
|
|
* Steamware, S.E.L.
|
|
* mod: 2010.09.29
|
|
*
|
|
****************************************/
|
|
create PROCEDURE stp_rappQualSuntoGetByDataRange
|
|
(
|
|
@dataFrom DATETIME,
|
|
@dataTo DATETIME
|
|
)
|
|
AS
|
|
-- restituisce le righe richieste
|
|
SELECT *
|
|
FROM v_RapQualSunto
|
|
WHERE (DataRapQual > dbo.dateToAsFormat(@dataFrom)) AND (DataRapQual < dbo.dateToAsFormat(@dataTo))
|
|
ORDER BY nRapQual
|
|
RETURN
|
|
go
|
|
|
|
/***************************************
|
|
* STORED stp_rappQualSuntoGetByNumRap
|
|
*
|
|
* Ottiene il record di rapp qualità di AS dato il numero del rapporto di qualità
|
|
*
|
|
* Steamware, S.E.L.
|
|
* mod: 2010.09.29
|
|
*
|
|
****************************************/
|
|
create PROCEDURE stp_rappQualSuntoGetByNumRap
|
|
(
|
|
@nRapQual NVARCHAR(20)
|
|
)
|
|
AS
|
|
-- restituisce le righe richieste
|
|
SELECT *
|
|
FROM v_RapQualSunto
|
|
WHERE (nRapQual = @nRapQual)
|
|
RETURN
|
|
go
|
|
|
|
commit
|
|
go
|
|
|
|
|
|
set xact_abort on
|
|
go
|
|
|
|
begin transaction
|
|
go
|
|
|
|
set ANSI_NULLS on
|
|
go
|
|
|
|
/***************************************
|
|
* STORED stp_spostaUdc
|
|
*
|
|
* sposta un UDC, salvandone la posizione precedente (se esiste) nella tab storica
|
|
*
|
|
* Steamware, S.E.L.
|
|
* mod: 2010.06.11
|
|
*
|
|
****************************************/
|
|
alter PROCEDURE stp_spostaUdc
|
|
(
|
|
@CodCS VARCHAR(2),
|
|
@UDC VARCHAR(50),
|
|
@IdxCellaTo INT
|
|
)
|
|
AS
|
|
|
|
BEGIN TRAN
|
|
|
|
-- DICHIARAZIONI iniziali variabili
|
|
DECLARE @IdxCellaFrom INT
|
|
DECLARE @capienza INT
|
|
DECLARE @numUdc INT
|
|
|
|
-- controllo cella di partenza
|
|
SET @IdxCellaFrom = (SELECT IdxCella FROM PosizioneUdcCorrente WHERE UDC = @UDC)
|
|
-- controllo se la cella di dest vada indicata come piena
|
|
SET @capienza = (
|
|
SELECT tc.Capienza
|
|
FROM TipoCella TC INNER JOIN Celle c ON TC.IdxTipoCella=c.IdxTipoCella
|
|
WHERE c.IdxCella = @IdxCellaFrom
|
|
)
|
|
SET @numUdc = (SELECT COUNT(*) FROM PosizioneUdcCorrente WHERE IdxCella = @IdxCellaFrom)
|
|
-- se capienza raggiunta aggiorno...
|
|
IF(@numUdc -1 < @capienza)
|
|
BEGIN
|
|
EXEC stp_celle_updPiena @IdxCellaFrom, 0
|
|
END
|
|
|
|
-- cancello posizione occupata
|
|
DELETE
|
|
FROM PosizioneUdcCorrente
|
|
WHERE UDC = @UDC
|
|
|
|
-- creo una nuova posizione per l'UDC
|
|
INSERT INTO PosizioneUdcCorrente(UDC, IdxCella, CodCS, DataRif)
|
|
VALUES(@UDC, @IdxCellaTo, @CodCS, GETDATE())
|
|
|
|
-- controllo se la cella di dest vada indicata come piena
|
|
SET @capienza = (
|
|
SELECT tc.Capienza
|
|
FROM TipoCella TC INNER JOIN Celle c ON TC.IdxTipoCella=c.IdxTipoCella
|
|
WHERE c.IdxCella = @IdxCellaTo
|
|
)
|
|
SET @numUdc = (SELECT COUNT(*) FROM PosizioneUdcCorrente WHERE IdxCella = @IdxCellaTo)
|
|
-- se capienza raggiunta aggiorno...
|
|
IF(@numUdc >= @capienza)
|
|
BEGIN
|
|
EXEC stp_celle_updPiena @IdxCellaTo, 1
|
|
END
|
|
|
|
COMMIT TRAN
|
|
|
|
RETURN
|
|
go
|
|
|
|
commit
|
|
go
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
-- registro versione...
|
|
INSERT INTO [dbo].[LogUpdateDb] ([Versione],[Data]) VALUES(270, GETDATE())
|
|
GO
|