-- mod tabella set xact_abort on go begin transaction go alter table TipoListaPrelievo add IdxPosizioneFinal int go exec sp_rename 'stp_getTipoListaByCodTipoLista', 'stp_TL_getByCodTipoLista', 'object' go commit go -- crea stored set xact_abort on go begin transaction go set ANSI_NULLS on go /*************************************** * STORED stp_getUDC_Older * * ottiene l'elenco degli UDC più vecchi in ordine asc TRA QUELLI in una data posizione * * Steamware, S.E.L. * mod: 2010.07.06 * ****************************************/ create PROCEDURE stp_getUDC_Older ( @Esponente VARCHAR(50), @Particolare VARCHAR (50), @IdxPosizione INT ) AS SELECT * FROM ElencoCartellini WHERE (Esponente = @Esponente) AND (Particolare = @Particolare) AND (IdxPosizione = @IdxPosizione) ORDER BY DataFus RETURN go commit go -- crea stored set xact_abort on go begin transaction go set ANSI_NULLS on go /*************************************** * STORED stp_getUDC_UnusedOlder * * ottiene l'elenco degli UDC più vecchi in ordine asc TRA QUELLI NON ANCORA PRELEVATI nè proposti nella lista corrente * * Steamware, S.E.L. * mod: 2010.07.06 * ****************************************/ create PROCEDURE stp_getUDC_UnusedOlder ( @CodLista VARCHAR(12) ) AS -- variabili locali che mi servono DECLARE @Figura AS VARCHAR(4) DECLARE @Esponente AS VARCHAR(6) DECLARE @CodImballo AS VARCHAR(15) DECLARE @Particolare AS VARCHAR (50) DECLARE @CodTipoLista AS VARCHAR (10) DECLARE @IdxPosizione AS INT SET @Figura = (SELECT Figura FROM ElencoListePrelievo WHERE CodLista = @CodLista) SET @Esponente = (SELECT Esponente FROM ElencoListePrelievo WHERE CodLista = @CodLista) SET @CodImballo = (SELECT CodImballo FROM ElencoListePrelievo WHERE CodLista = @CodLista) SET @Particolare = (SELECT Particolare FROM ElencoListePrelievo WHERE CodLista = @CodLista) SET @CodTipoLista = (SELECT CodTipoLista FROM ElencoListePrelievo WHERE CodLista = @CodLista) SET @IdxPosizione = (SELECT IdxPosizione FROM TipoListaPrelievo WHERE CodTipoLista = @CodTipoLista) -- effettuo la selezione SELECT * FROM ElencoCartellini WHERE (Particolare = @Particolare) AND (IdxPosizione = @IdxPosizione) AND (Figura = CASE WHEN @Figura = '*' THEN Figura ELSE @Figura END) AND (Esponente = CASE WHEN @Esponente = '*' THEN Esponente ELSE @Esponente END) AND (CodImballo = CASE WHEN @CodImballo = '*' THEN CodImballo ELSE @CodImballo END) AND UDC NOT IN ( SELECT DISTINCT UDC FROM RigheListePrelievo INNER JOIN ElencoListePrelievo ON RigheListePrelievo.CodLista = ElencoListePrelievo.CodLista WHERE (ElencoListePrelievo.CodLista = @CodLista) OR (ElencoListePrelievo.CodLista <> @CodLista AND CodStatoLista > 1 AND Prelevato = 1) ) ORDER BY ElencoCartellini.DataFus RETURN go commit go -- crea stored set xact_abort on go begin transaction go set ANSI_NULLS on go /*************************************** * STORED stp_LP_deleteQuery * * elimina lista di prelievo (e righe lista associate) della list aindicata * * Steamware, S.E.L. 8 (from Stintino) * mod: 2010.07.15 * ************************************/ create PROCEDURE stp_LP_deleteQuery ( @Original_CodLista varchar(12) ) AS -- cancello righe lista DELETE FROM RigheListePrelievo WHERE CodLista = @Original_CodLista -- cancello record lista DELETE FROM ElencoListePrelievo WHERE CodLista = @Original_CodLista RETURN go commit go -- crea stored set xact_abort on go begin transaction 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 * ****************************************/ create PROCEDURE stp_LP_exportToAs400 ( @CodLista NVARCHAR(12) ) AS -- copio la lista (intestazione) INSERT INTO ElencoListePrelievo_AS SELECT * FROM ElencoListePrelievo WHERE (CodLista = @CodLista) -- copio le righe lista di dettaglio INSERT INTO RigheListePrelievo_AS SELECT * 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) RETURN go commit go -- crea stored set xact_abort on go begin transaction go set ANSI_NULLS on go /*************************************** * STORED stp_LP_updateUDC * * modifica l'UDC in una riga di lista prelievo * * Steamware, S.E.L. 8 (from Stintino) * mod: 2010.07.15 * ************************************/ create PROCEDURE stp_LP_updateUDC ( @Original_CodLista VARCHAR(12), @Original_UDC VARCHAR(50), @UDC VARCHAR(50) ) AS -- aggiorno lista prelievo con nuovo UDC UPDATE RigheListePrelievo SET UDC = @UDC, QTA = (SELECT Qta FROM ElencoCartellini WHERE UDC = @UDC) WHERE CodLista = @Original_CodLista AND UDC = @Original_UDC RETURN go commit go -- crea stored set xact_abort on go begin transaction go set ANSI_NULLS on go /*( * STORED stp_ParticolariEspByParticolare * * elenco distinct particolari/esponente da particoalre * * Steamware, S.E.L. * mod: 2010.07.07 * ****************************************/ create PROCEDURE stp_ParticolariEspByParticolare ( @Particolare VARCHAR(50) ) AS SELECT DISTINCT Particolare, DescParticolare, Esponente, Figura, CodImballo FROM ( SELECT TOP (1) @Particolare AS Particolare, '' AS DescParticolare, '*' AS Esponente, '' AS Figura, '' AS CodImballo FROM v_particolariEsponenteFigura WHERE (Particolare = @Particolare) UNION SELECT DISTINCT Particolare, '' AS DescParticolare, Esponente, '' AS Figura, '' AS CodImballo FROM v_particolariEsponenteFigura WHERE Particolare = @Particolare ) AS derivTab RETURN go commit go -- crea stored set xact_abort on go begin transaction go set ANSI_NULLS on go /*( * STORED stp_ParticolariFiguraByParticolare * * elenco distinct particolari/figure da particoalre * * Steamware, S.E.L. * mod: 2010.07.07 * ****************************************/ create PROCEDURE stp_ParticolariFiguraByParticolare ( @Particolare VARCHAR(50) ) AS SELECT DISTINCT Particolare, DescParticolare, Esponente, Figura, CodImballo FROM ( SELECT TOP (1) @Particolare AS Particolare, '' AS DescParticolare, '' AS Esponente, '*' AS Figura, '' AS CodImballo FROM v_particolariEsponenteFigura WHERE (Particolare = @Particolare) UNION SELECT DISTINCT Particolare, '' AS DescParticolare, '' AS Esponente, Figura, '' AS CodImballo FROM v_particolariEsponenteFigura WHERE Particolare = @Particolare ) AS derivTab RETURN go commit go -- crea stored set xact_abort on go begin transaction go set ANSI_NULLS on go /*( * STORED stp_ParticolariImballoByParticolare * * elenco distinct particolari/imballo da particoalre * * Steamware, S.E.L. * mod: 2010.07.07 * ****************************************/ create PROCEDURE stp_ParticolariImballoByParticolare ( @Particolare VARCHAR(50) ) AS SELECT DISTINCT Particolare, DescParticolare, Esponente, Figura, CodImballo FROM ( SELECT TOP (1) @Particolare AS Particolare, '' AS DescParticolare, '' AS Esponente, '' AS Figura, '*' AS CodImballo FROM v_particolariEsponenteFigura WHERE (Particolare = @Particolare) UNION SELECT DISTINCT Particolare, '' AS DescParticolare, '' AS Esponente, '' AS Figura, CodImballo FROM v_particolariEsponenteFigura AS v_particolariEsponenteFigura_1 WHERE (Particolare = @Particolare) ) AS derivTab RETURN go commit go -- mod stored set xact_abort on go begin transaction go set ANSI_NULLS on go /*************************************** * STORED stp_ParticolariOverviewLike * * elenco di overview sull'impiego dei particolari (dettaglio a "maglie larghe") - modalità LIKE * * Steamware, S.E.L. * mod: 2010.05.31 * ****************************************/ alter PROCEDURE stp_ParticolariOverviewLike ( @searchVal VARCHAR(50), @CodCS VARCHAR(2) ) AS SELECT RilPro.AnagParticolari.Particolare, RilPro.AnagParticolari.DescParticolare, ISNULL(COUNT(ElencoCartellini.UDC), 0) AS NumUDC, SUM(ISNULL(ElencoCartellini.Qta, 0)) AS TotQta, ISNULL(COUNT(PosizioneUdcCorrente.IdxCella), 0) AS NumInMag FROM RilPro.AnagParticolari LEFT OUTER JOIN ElencoCartellini ON RilPro.AnagParticolari.Particolare = ElencoCartellini.Particolare LEFT OUTER JOIN PosizioneUdcCorrente ON ElencoCartellini.UDC = PosizioneUdcCorrente.UDC WHERE (RilPro.AnagParticolari.CodCS = @CodCS) AND ((RilPro.AnagParticolari.Particolare LIKE '%' + @searchVal + '%') OR (RilPro.AnagParticolari.DescParticolare LIKE '%' + @searchVal + '%')) GROUP BY RilPro.AnagParticolari.Particolare, RilPro.AnagParticolari.DescParticolare RETURN go commit go -- crea stored set xact_abort on go begin transaction go set ANSI_NULLS on go /*( * STORED stp_ParticolariOverviewLike * * elenco di overview sull'impiego dei particolari (dettaglio a "maglie larghe") - modalità LIKE con testo CHE INIZIA per searchVal * * Steamware, S.E.L. * mod: 2010.07.07 * ****************************************/ create PROCEDURE stp_ParticolariOverviewLikePrefix ( @searchVal VARCHAR(50), @CodCS VARCHAR(2) ) AS SELECT RilPro.AnagParticolari.Particolare, RilPro.AnagParticolari.DescParticolare, ISNULL(COUNT(ElencoCartellini.UDC), 0) AS NumUDC, SUM(ISNULL(ElencoCartellini.Qta, 0)) AS TotQta, ISNULL(COUNT(PosizioneUdcCorrente.IdxCella), 0) AS NumInMag FROM RilPro.AnagParticolari LEFT OUTER JOIN ElencoCartellini ON RilPro.AnagParticolari.Particolare = ElencoCartellini.Particolare LEFT OUTER JOIN PosizioneUdcCorrente ON ElencoCartellini.UDC = PosizioneUdcCorrente.UDC WHERE (RilPro.AnagParticolari.CodCS = @CodCS) AND (RilPro.AnagParticolari.Particolare LIKE '%' + @searchVal + '%') GROUP BY RilPro.AnagParticolari.Particolare, RilPro.AnagParticolari.DescParticolare RETURN go commit go -- crea stored set xact_abort on go begin transaction go set ANSI_NULLS on go /*************************************** * STORED stp_posizioniGetByIdxCellaUdc * * ottiene una singola posizione data la cella richiesta e l'UDC (e quindi verifica se sono associate...) * * Steamware, S.E.L. * mod: 2010.06.12 * ****************************************/ create PROCEDURE stp_posizioniGetByIdxCellaUdc ( @UDC VARCHAR(50), @IdxCella INT ) AS SELECT UDC, IdxCella, CodCS, DataRif FROM PosizioneUdcCorrente WHERE (IdxCella = @IdxCella) AND (UDC = @UDC) RETURN go commit go -- crea stored set xact_abort on go begin transaction go set ANSI_NULLS on go /*************************************** * STORED stp_RigheListePrelievo_eliminaNonPrelevate * * aggiorna la lista di prelievo ELIMINANDO le righe non ancora prelevate (per poi rigenerare l'elenco) * * Steamware, S.E.L. * mod: 2010.07.06 * ************************************/ create PROCEDURE stp_RigheListePrelievo_eliminaNonPrelevate ( @CodLista AS varchar(12) ) AS DELETE FROM RigheListePrelievo WHERE CodLista = @CodLista AND Prelevato = 0 RETURN go commit go -- crea stored set xact_abort on go begin transaction go set ANSI_NULLS on go /*************************************** * STORED stp_righePrelevateByUdc * * restituisce l'elenco delle righe delle liste di prelievo PRELEVATE dato un UDC * * Steamware, S.E.L. * mod: 2010.07.06 * ****************************************/ create PROCEDURE stp_righePrelevateByUdc ( @UDC VARCHAR(50) ) AS SELECT * FROM RigheListePrelievo WHERE (UDC = @UDC) AND Prelevato = 1 RETURN go commit go -- crea stored set xact_abort on go begin transaction go set ANSI_NULLS on go /*************************************** * STORED stp_S2U_getByUtente * * ottiene record x corrisponenda utente <-> cod soggetto * * Steamware, S.E.L. * mod: 2010.07.16 * ****************************************/ create PROCEDURE stp_S2U_getByUtente ( @USER_NAME VARCHAR(50), @DOMINIO VARCHAR(30) ) AS SELECT * FROM Soggetti2Utente WHERE [USER_NAME] = @USER_NAME AND DOMINIO = @DOMINIO RETURN go commit go -- crea stored set xact_abort on go begin transaction go set ANSI_NULLS on go /*************************************** * STORED stp_scaricaUdc * * elimina dalle posizioni correnti un UDC, salvandone la posizione precedente nella tab storica (per scaricamento / spedizione) * * Steamware, S.E.L. * mod: 2010.07.19 * ****************************************/ create PROCEDURE stp_scaricaUdc ( @CodCS VARCHAR(2), @UDC VARCHAR(50), @IdxCellaFrom INT, @IdxPosizione INT ) AS BEGIN TRAN -- inizio mettendo in storico la posizione attuale dell'UDC (SE esiste) INSERT INTO PosizioneUdcStorico(UDC, IdxCella, CodCS, DataInizio, DataFine) ( SELECT UDC, IdxCella, CodCS, DataRif as DataInizio, GETDATE() as DataFine FROM PosizioneUdcCorrente WHERE UDC = @UDC AND IdxCella = @IdxCellaFrom ) -- libero la posizione attuale dell'UDC (se c'è...) DELETE FROM PosizioneUdcCorrente WHERE UDC = @UDC AND IdxCella = @IdxCellaFrom -- aggiorno l'UDC come posizione finale... UPDATE ElencoCartellini SET IdxPosizione = @IdxPosizione WHERE UDC = @UDC COMMIT TRAN RETURN go commit go -- crea stored set xact_abort on go begin transaction go set ANSI_NULLS on go /*************************************** * STORED stp_setAnnullaUdcPrelevato * * Steamware, E.N. * mod: 2010.06.25 * ************************************/ create PROCEDURE stp_setAnnullaUdcPrelevato ( @CodLista NVARCHAR(12), @UDC NVARCHAR(50) ) AS UPDATE RigheListePrelievo SET Prelevato=0 WHERE (CodLista = @CodLista) AND (UDC = @UDC) SELECT * FROM RigheListePrelievo WHERE (CodLista = @CodLista) AND (UDC = @UDC) go commit go -- crea stored 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 * ****************************************/ create PROCEDURE stp_spostaUdc ( @CodCS VARCHAR(2), @UDC VARCHAR(50), @IdxCellaFrom INT, @IdxCellaTo INT ) AS BEGIN TRAN -- inizio mettendo in storico la posizione attuale dell'UDC (SE esiste) INSERT INTO PosizioneUdcStorico(UDC, IdxCella, CodCS, DataInizio, DataFine) ( SELECT UDC, IdxCella, CodCS, DataRif as DataInizio, GETDATE() as DataFine FROM PosizioneUdcCorrente WHERE UDC = @UDC AND IdxCella = @IdxCellaFrom ) -- libero la posizione attuale dell'UDC (se c'è...) DELETE FROM PosizioneUdcCorrente WHERE UDC = @UDC AND IdxCella = @IdxCellaFrom -- creo una nuova posizione per l'UDC INSERT INTO PosizioneUdcCorrente(UDC, IdxCella, CodCS, DataRif) VALUES(@UDC, @IdxCellaTo, @CodCS, GETDATE()) COMMIT TRAN RETURN go commit go -- crea stored set xact_abort on go begin transaction go set ANSI_NULLS on go /*************************************** * STORED stp_UDC_updateQty * * aggiorna un cartellino x la sua quantità * * Steamware, S.E.L. * mod: 2010.06.12 * ****************************************/ create PROCEDURE stp_UDC_updateQty ( @UDC VARCHAR(20), @CodSoggetto VARCHAR(16), @CodTipoDichiaraz CHAR(1), @CodEvento VARCHAR(10), @Qta DECIMAL(10,2) ) AS ------------------------------------------------------------------------------------------------------ -- Ciclo principale x edit record ------------------------------------------------------------------------------------------------------ BEGIN TRAN -- registro in StoricoCartellini INSERT INTO StoricoCartellini(DataEv, CodEvento, CodTipoDichiaraz, UDC, CodCS,CodCliente, RagSociale, Particolare, DescParticolare, DisegnoGrezzo, Esponente, CodImpianto, DescImpianto, CodStampo, Figura, DataFus, TurnoFus, CodImballo, CodSoggetto, NumCont, Tara, Qta, CodStato, IdxPosizione, PesoTot, PesoCad) SELECT GETDATE() AS DataEv, @CodEvento AS CodEvento, @CodTipoDichiaraz AS CodTipoDichiaraz, UDC, CodCS, CodCliente, RagSociale, Particolare, DescParticolare, DisegnoGrezzo, Esponente, CodImpianto, DescImpianto, CodStampo, Figura, DataFus, TurnoFus, CodImballo, @CodSoggetto AS CodSoggetto, NumCont, Tara, Qta, CodStato, IdxPosizione, PesoTot, PesoCad FROM ElencoCartellini WHERE (UDC = @UDC) -- modifico il record UPDATE ElencoCartellini SET Qta = @Qta, ModDate = GETDATE() WHERE UDC = @UDC COMMIT TRAN ------------------------------------------------------------------------------------------------------ ------------------------------------------------------------------------------------------------------ -- restituisco la tab dati con l'udc appena inserito ------------------------------------------------------------------------------------------------------ SELECT * FROM ElencoCartellini WHERE UDC = @UDC ------------------------------------------------------------------------------------------------------ RETURN go commit go -- crea stored set xact_abort on go begin transaction go set ANSI_NULLS on go /*************************************** * STORED stp_UDC_upsertPrelevato * * fa un upsert sulle righe liste prelievo indicando che è stato prelevato un dato udc * (upsert: se c'è update, se non c'è insert...) * * Steamware, S.E.L. * mod: 2010.06.29 * ************************************/ create PROCEDURE stp_UDC_upsertPrelevato ( @CodLista NVARCHAR(12), @UDC NVARCHAR(50) ) AS -- controllo se ci sia l'UDC tra quelli proposti... DECLARE @trovato AS BIT SET @trovato = (SELECT COUNT(*) AS trovati FROM RigheListePrelievo WHERE (CodLista = @CodLista) AND (UDC = @UDC)) -- controllo x scelta upsert IF ( @trovato > 0) -- UPDATE! BEGIN UPDATE RigheListePrelievo SET Prelevato=1 WHERE (CodLista = @CodLista) AND (UDC = @UDC) END ELSE -- INSERT! BEGIN INSERT INTO RigheListePrelievo (CodLista, UDC, Qta, Proposto, Prelevato) SELECT @CodLista, @UDC, Qta, 0, 1 FROM ElencoCartellini WHERE (UDC = @UDC) END -- restituisce la tab delle righe di prelievo della lista indicata SELECT * FROM RigheListePrelievo WHERE (CodLista = @CodLista) AND (UDC = @UDC) go commit go -- registro versione... INSERT INTO [dbo].[LogUpdateDb] ([Versione],[Data]) VALUES(110, GETDATE()) GO