set xact_abort on go begin transaction go alter table TipoListaPrelievo add toAs400 bit constraint DF_TipoListaPrelievo_toAs400 default (1) go update TipoListaPrelievo set toAs400=1 go set ANSI_NULLS on go /*************************************** * STORED stp_LP_exportToAs400 * * esporta la lista di prelievo (e le relative righe) verso AS400 andando a copaire nelle relative tabelle _AS * * Steamware, S.E.L. * mod: 2010.07.19 * ****************************************/ alter PROCEDURE stp_LP_exportToAs400 ( @CodLista NVARCHAR(12) ) AS BEGIN TRAN -- inizio con un controllo se devo processare verso AS400 la lista di prelievo... DECLARE @toAs400 BIT SET @toAs400 = (SELECT ISNULL(tlp.toAs400, 0) as valore FROM TipoListaPrelievo AS tlp INNER JOIN ElencoListePrelievo AS elp ON tlp.CodTipoLista = elp.CodTipoLista WHERE (elp.CodLista = @CodLista) ) IF(@toAs400 > 0) BEGIN -- copio la lista (intestazione) INSERT INTO ElencoListePrelievo_AS(CodLista, CodTipoLista, CodCS, DataCreaz, CodCliente, RagSociale, CodSoggetto, Particolare, DescParticolare, DisegnoGrezzo, Esponente, Figura, CodImballo, QtaTot, CodStatoLista, Destinatario) SELECT CodLista, CodTipoLista, CodCS, DataCreaz, CodCliente, RagSociale, CodSoggetto, Particolare, DescParticolare, DisegnoGrezzo, Esponente, Figura, CodImballo, QtaTot, CodStatoLista, Destinatario FROM ElencoListePrelievo WHERE (CodLista = @CodLista) -- copio le righe lista di dettaglio INSERT INTO RigheListePrelievo_AS(CodLista, UDC, Qta, Proposto, Prelevato) SELECT CodLista, UDC, Qta, Proposto, Prelevato FROM RigheListePrelievo WHERE (CodLista = @CodLista) AND Prelevato = 1 -- aggiorno le quantità passate ad AS... UPDATE ElencoListePrelievo_AS SET QtaTot = ( SELECT SUM(Qta) AS QtaTot FROM RigheListePrelievo WHERE (CodLista = @CodLista) AND Prelevato = 1 ) WHERE (CodLista = @CodLista) END COMMIT TRAN -- IMPORTANTE: in caso siano rimasti riferimenti ad un UDC scaricato in AS in altre liste di prelievo li tolgo in modo da "ripulirle" ed evitare che lo stesso UDC venga prelevato 2 volte... DELETE RLP FROM RigheListePrelievo RLP INNER JOIN ElencoListePrelievo ELP ON RLP.CodLista = ELP.CodLista WHERE ELP.CodStatoLista < 4 AND RLP.CodLista <> @CodLista AND RLP.UDC IN ( SELECT UDC FROM RigheListePrelievo WHERE (CodLista = @CodLista) AND Prelevato = 1 ) RETURN go commit go set xact_abort on go begin transaction go UPDATE dbo.TipoListaPrelievo SET toAs400=0 WHERE CodTipoLista=N'01-PreFus' go commit transaction go set xact_abort on go begin transaction go INSERT INTO dbo.TabTranPosizEventi VALUES (N'MagPreFus', 80, 80) go commit transaction go set xact_abort on go begin transaction go set ANSI_NULLS on go /*************************************** * STORED stp_ParticolariOverviewPerListaPrelievo * * elenco di overview sull'impiego dei particolari (dettaglio a "maglie larghe") x una possibile lista di prelievo * * Steamware, S.E.L. * mod: 2010.05.31 * ****************************************/ alter PROCEDURE stp_ParticolariOverviewPerListaPrelievo ( @Particolare VARCHAR(50), @CodCS VARCHAR(2), @Esponente NVARCHAR(6), @Figura NVARCHAR(4), @CodImballo NVARCHAR(15), @CodTipoLista NVARCHAR (10) ) AS /* DECLARE @IdxPosizione AS INT SET @IdxPosizione = (SELECT tt.IdxPosizione FROM TipoListaPrelievo tlp INNER JOIN TabTranPosizEventi tt ON tlp.CodEvento = tt.CodEvento WHERE (tlp.CodTipoLista = @CodTipoLista)) */ SELECT RilPro.AnagParticolari.Particolare, RilPro.AnagParticolari.DescParticolare, ISNULL(COUNT(dbo.ElencoCartellini.UDC), 0) AS NumUDC, ISNULL(SUM(dbo.ElencoCartellini.Qta), 0) AS TotQta, ISNULL(COUNT(dbo.PosizioneUdcCorrente.IdxCella), 0) AS NumInMag FROM RilPro.AnagParticolari LEFT OUTER JOIN dbo.ElencoCartellini ON RilPro.AnagParticolari.Particolare = dbo.ElencoCartellini.Particolare LEFT OUTER JOIN dbo.PosizioneUdcCorrente ON dbo.ElencoCartellini.UDC = dbo.PosizioneUdcCorrente.UDC WHERE RilPro.AnagParticolari.CodCS = @CodCS AND RilPro.AnagParticolari.Particolare = @Particolare AND (IdxPosizione IN (SELECT tt.IdxPosizione FROM TipoListaPrelievo tlp INNER JOIN TabTranPosizEventi tt ON tlp.CodEvento = tt.CodEvento WHERE (tlp.CodTipoLista = @CodTipoLista))) AND (dbo.ElencoCartellini.Figura = CASE WHEN @Figura = '*' THEN dbo.ElencoCartellini.Figura ELSE @Figura END) AND (dbo.ElencoCartellini.Esponente = CASE WHEN @Esponente = '*' THEN dbo.ElencoCartellini.Esponente ELSE @Esponente END) AND (dbo.ElencoCartellini.CodImballo = CASE WHEN @CodImballo = '*' THEN dbo.ElencoCartellini.CodImballo ELSE @CodImballo END) AND ElencoCartellini.UDC NOT IN ( SELECT DISTINCT UDC FROM RigheListePrelievo INNER JOIN ElencoListePrelievo ON RigheListePrelievo.CodLista = ElencoListePrelievo.CodLista WHERE (CodStatoLista > 1 AND Prelevato = 1) ) GROUP BY RilPro.AnagParticolari.Particolare, RilPro.AnagParticolari.DescParticolare RETURN go commit go -- registro versione... INSERT INTO [dbo].[LogUpdateDb] ([Versione],[Data]) VALUES(325, GETDATE()) GO