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

210 lines
5.0 KiB
Transact-SQL

/* Sistemo stored x bugs risolti */
set xact_abort on
go
begin transaction
go
set ANSI_NULLS on
go
/***************************************
* STORED stp_creaListaPrelievo
*
* crea un nuovo record nella ElencoListePrelievo e restituisce il codice ID appena creato
*
* Steamware, S.E.L. 8 (FROM Stintino)
* mod: 2010.07.30
*
************************************/
alter PROCEDURE stp_creaListaPrelievo
(
@Anno NVARCHAR(2),
@Mese NVARCHAR(2),
@CodTipoLista NVARCHAR(10),
@CodCS NCHAR(2),
@CodCliente NVARCHAR(6),
@RagSociale NVARCHAR(35),
@CodSoggetto NCHAR(17),
@Particolare NVARCHAR(15),
@DescParticolare NVARCHAR(30),
@DisegnoGrezzo NVARCHAR(30),
@Esponente NVARCHAR(6),
@Figura NVARCHAR(4),
@CodImballo NVARCHAR(15),
@QtaTot DECIMAL(10,2),
@Destinatario NVARCHAR(50)
)
AS
-- Dichiarazioni iniziali
DECLARE @CodLista AS NVARCHAR(12)
DECLARE @numLista AS INT
DECLARE @temp AS INT
DECLARE @ora AS DATETIME
------------------------------------------------------------------------------------------------------
-- codice lista di prelievo KAAMM00000 - K = start char, AA = anno, MM = mese, 00000 = progressivo
------------------------------------------------------------------------------------------------------
-- controllo se ci sia già una lista di prelievo per company / flusso anno
BEGIN TRAN
-- cerco nella tab contatori liste prelievo l'ultimo valido
SET @numLista = (
SELECT COUNT(*)
FROM ContatoriListePrelievo
WHERE CodCS = @CodCS
AND Anno = @Anno
AND Mese = @Mese
)
-- controllo se record c'è...
IF(@numLista > 0)
BEGIN
-- se c'è incremento di 1 in tab
UPDATE ContatoriListePrelievo
SET LastIdx = LastIdx + 1
WHERE CodCS = @CodCS
AND Anno = @Anno
AND Mese = @Mese
END
ELSE
BEGIN
-- lo creo!
INSERT INTO ContatoriListePrelievo(CodCS, Anno, Mese, LastIdx)
VALUES (@CodCS, @Anno, @Mese, 1)
END
-- aggiorno numero lista prelievo
SET @numLista = (
SELECT LastIdx
FROM ContatoriListePrelievo
WHERE CodCS = @CodCS
AND Anno = @Anno
AND Mese = @Mese
)
COMMIT TRAN
------------------------------------------------------------------------------------------------------
BEGIN TRAN
------------------------------------------------------------------------------------------------------
-- Ciclo principale x inserimento nuovo record
------------------------------------------------------------------------------------------------------
-- ottengo il nuovo codice lista di prelievo completo
SET @CodLista = 'K' + @CodCS + @Anno + dbo.f_padLeft(CAST(@Mese AS NVARCHAR(2)), 2, '0') + + dbo.f_padLeft(CAST(@numLista AS NVARCHAR(5)), 5, '0')
INSERT INTO ElencoListePrelievo
(CodLista, CodTipoLista, CodCS, DataCreaz, CodCliente, RagSociale, CodSoggetto, Particolare, DescParticolare, DisegnoGrezzo, Esponente, Figura, CodImballo, QtaTot, CodStatoLista, Destinatario)
VALUES (@CodLista, @CodTipoLista, @CodCS, GETDATE(), @CodCliente, @RagSociale, @CodSoggetto, @Particolare, @DescParticolare, @DisegnoGrezzo, @Esponente,@Figura, @CodImballo, @QtaTot, 0, @Destinatario)
COMMIT TRAN
SELECT * FROM V_elencoListePrelievo WHERE CodLista = @CodLista;
RETURN
go
commit
go
set xact_abort on
go
begin transaction
go
set ANSI_NULLS on
go
/***************************************
* STORED stp_RLP_delete
*
* cancella riga x un UDC non prelevato
*
* Steamware, S.E.L.
* mod: 2010.09.03
*
****************************************/
create PROCEDURE stp_RLP_delete
(
@Original_CodLista AS varchar(12),
@Original_UDC NVARCHAR(50)
)
AS
-- cancello
DELETE FROM RigheListePrelievo
WHERE CodLista = @Original_CodLista
AND UDC = @Original_UDC
RETURN
go
/***************************************
* STORED stp_RLP_sbloccaNonPrelevate
*
* sblocca righe liste di prelievo ATTIVE x UDC non prelevati
*
* Steamware, S.E.L.
* mod: 2010.08.31
*
****************************************/
alter PROCEDURE stp_RLP_sbloccaNonPrelevate
(
@CodLista NVARCHAR(12),
@UDC NVARCHAR(50)
)
AS
-- creo una CTE x le righe liste prelievo ATTIVE (escludo bozze e liste scaricate) - candidate per sblocco che NON fanno aprte della lista di prelievo attuale
WITH cteUdcRigheAttive AS (
SELECT RLP.CodLista, RLP.UDC, RLP.Prelevato
FROM RigheListePrelievo AS RLP INNER JOIN ElencoListePrelievo AS ELP
ON RLP.CodLista = ELP.CodLista
WHERE (ELP.CodStatoLista BETWEEN 1 AND 3) AND RLP.Prelevato = 1 AND ELP.CodLista <> @CodLista
)
-- effettua "sblocco" delle righe liste prelievo che danno UDC prelevati ma che NON risultano
UPDATE cteUdcRigheAttive
SET Prelevato = 0
WHERE UDC = @UDC
RETURN
go
/***************************************
* STORED stp_RLP_updateQty
*
* aggiorna qta dato un UDC
*
* Steamware, S.E.L.
* mod: 2010.07.06
*
****************************************/
create PROCEDURE stp_RLP_updateQty
(
@UDC VARCHAR(50),
@Qta DECIMAL
)
AS
update RigheListePrelievo
SET Qta = @Qta
WHERE (UDC = @UDC)
RETURN
go
commit
go
-- registro versione...
INSERT INTO [dbo].[LogUpdateDb] ([Versione],[Data]) VALUES(220, GETDATE())
GO