set xact_abort on go begin transaction go drop index [] on RilPro.RapQual go alter table RilPro.RapQual alter column UDC nvarchar(50) go create index [] on RilPro.RapQual(DataRapQual) include(nRapQual,CodFor,CodLega,Qta,BenesQual,UDC) go create index i_dataPrelievo on RilPro.RapQual(DataPrelFus) go commit go set xact_abort on go begin transaction go set ANSI_NULLS on go /*************************************** * STORED stp_prtCartMatPrimaByUDC * * ottiene il record del Cartellino Materia Prima dato l'UDC richiesto x la sstampa * ****************************************/ create PROCEDURE stp_prtCartMatPrimaByUDC ( @UDC VARCHAR(50) ) AS SELECT RQ.nRapQual, RQ.DataRapQual, RQ.ProgUDC, RQ.CodFor, RQ.DestTerz, RQ.CodLega, RQ.DataPrelFus, RQ.TurnoPrelFus, RQ.Qta, RQ.DestLega, RQ.LegaScaric, RQ.BenesQual, RQ.UDC, Fo.DescFornitore, Fo.DescFornitore2, Le.CodLega AS CodLega2, Le.DescLega, Le.DescLega2 FROM GMW.RilPro.RapQual AS RQ INNER JOIN ReportAs400.RilPro.AnagFornitori AS Fo ON RQ.CodFor = Fo.CodFornitore INNER JOIN ReportAs400.RilPro.AnagLeghe Le ON RQ.CodLega = 'L' + Le.CodLega WHERE RQ.UDC = RTRIM(@UDC) -- 'UB31000000001' RETURN go /*************************************** * STORED stp_rappQualConsumabili * * Ottiene l'elenco dei record di rapp qualità (e quindi degli UDC) di AS non ancora consumati per range di data di approvazione * * Steamware, S.E.L. * mod: 2010.10.05 * ****************************************/ create PROCEDURE stp_rappQualConsumabili ( @dataFrom DATETIME, @dataTo DATETIME ) AS -- restituisce le righe richieste SELECT * FROM RilPro.RapQual WHERE ((DataPrelFus IS NULL) OR (DataPrelFus = 0)) AND -- condizione sul NON aver fatto ancora il prelievo ((DataRapQual > dbo.dateToAsFormat(@dataFrom)) AND (DataRapQual < dbo.dateToAsFormat(@dataTo))) -- cond data RQ RETURN 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 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 create table RilPro.AnagFornitori( CodFornitore nvarchar(6) not null constraint PK_AnagFornitori primary key, DescFornitore nvarchar(35), DescFornitore2 nvarchar(35) ) go create table RilPro.AnagLeghe( CodLega nvarchar(12) not null constraint PK_AnagLeghe primary key, CodLega2 nvarchar(12), DescLega nvarchar(25), DescLega2 nvarchar(25) ) go commit 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_0', '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_0 go drop table tmp__AS400_BatchMovimenti_0 go commit 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_0', '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_0 go drop table tmp__AS400_BatchMovimenti_0 go commit go -- registro versione... INSERT INTO [dbo].[LogUpdateDb] ([Versione],[Data]) VALUES(275, GETDATE()) GO