Files
GMW/GMW_data/SqlScripts/V1.1/GMW_00110.sql
T
Samuele E. Locatelli bdd7b413e8 Riaggiunto GMW_data
2016-11-22 17:58:00 +01:00

940 lines
18 KiB
Transact-SQL

-- 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