set xact_abort on go begin transaction go alter table ElencoListePrelievo add DestinatarioDescrizione nvarchar(50) 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), @DestinatarioDescrizione 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, DestinatarioDescrizione) VALUES (@CodLista, @CodTipoLista, @CodCS, GETDATE(), @CodCliente, @RagSociale, @CodSoggetto, @Particolare, @DescParticolare, @DisegnoGrezzo, @Esponente,@Figura, @CodImballo, @QtaTot, 0, @Destinatario, @DestinatarioDescrizione) COMMIT TRAN SELECT * FROM V_elencoListePrelievo WHERE CodLista = @CodLista; RETURN go alter VIEW V_elencoListePrelievo AS SELECT TOP (100) PERCENT dbo.ElencoListePrelievo.CodLista, dbo.ElencoListePrelievo.CodTipoLista, dbo.ElencoListePrelievo.CodCS, dbo.ElencoListePrelievo.DataCreaz, dbo.ElencoListePrelievo.CodCliente, dbo.ElencoListePrelievo.RagSociale, dbo.ElencoListePrelievo.CodSoggetto, dbo.ElencoListePrelievo.Particolare, dbo.ElencoListePrelievo.DescParticolare, dbo.ElencoListePrelievo.DisegnoGrezzo, dbo.ElencoListePrelievo.Esponente, dbo.ElencoListePrelievo.Figura, dbo.ElencoListePrelievo.CodImballo, dbo.ElencoListePrelievo.QtaTot, dbo.ElencoListePrelievo.CodStatoLista, ISNULL(dbo.v_righePrelevate.TotQta, 0) AS Prelevato, dbo.ElencoListePrelievo.Destinatario, ISNULL(dbo.ElencoListePrelievo.DestinatarioDescrizione, N'nd') AS DestinatarioDescrizione FROM dbo.ElencoListePrelievo LEFT OUTER JOIN dbo.v_righePrelevate ON dbo.ElencoListePrelievo.CodLista = dbo.v_righePrelevate.CodLista ORDER BY dbo.ElencoListePrelievo.DataCreaz DESC go exec sp_updateextendedproperty 'MS_DiagramPane1', '[0E232FF0-B466-11cf-A24F-00AA00A3EFFF, 1.00] Begin DesignProperties = Begin PaneConfigurations = Begin PaneConfiguration = 0 NumPanes = 4 Configuration = "(H (1[40] 4[20] 2[20] 3) )" End Begin PaneConfiguration = 1 NumPanes = 3 Configuration = "(H (1 [50] 4 [25] 3))" End Begin PaneConfiguration = 2 NumPanes = 3 Configuration = "(H (1 [50] 2 [25] 3))" End Begin PaneConfiguration = 3 NumPanes = 3 Configuration = "(H (4 [30] 2 [40] 3))" End Begin PaneConfiguration = 4 NumPanes = 2 Configuration = "(H (1 [56] 3))" End Begin PaneConfiguration = 5 NumPanes = 2 Configuration = "(H (2 [66] 3))" End Begin PaneConfiguration = 6 NumPanes = 2 Configuration = "(H (4 [50] 3))" End Begin PaneConfiguration = 7 NumPanes = 1 Configuration = "(V (3))" End Begin PaneConfiguration = 8 NumPanes = 3 Configuration = "(H (1[56] 4[18] 2) )" End Begin PaneConfiguration = 9 NumPanes = 2 Configuration = "(H (1 [75] 4))" End Begin PaneConfiguration = 10 NumPanes = 2 Configuration = "(H (1[66] 2) )" End Begin PaneConfiguration = 11 NumPanes = 2 Configuration = "(H (4 [60] 2))" End Begin PaneConfiguration = 12 NumPanes = 1 Configuration = "(H (1) )" End Begin PaneConfiguration = 13 NumPanes = 1 Configuration = "(V (4))" End Begin PaneConfiguration = 14 NumPanes = 1 Configuration = "(V (2))" End ActivePaneConfig = 0 End Begin DiagramPane = Begin Origin = Top = 0 Left = 0 End Begin Tables = Begin Table = "ElencoListePrelievo" Begin Extent = Top = 6 Left = 38 Bottom = 350 Right = 208 End DisplayFlags = 280 TopColumn = 1 End Begin Table = "v_righePrelevate" Begin Extent = Top = 6 Left = 454 Bottom = 118 Right = 624 End DisplayFlags = 280 TopColumn = 0 End End End Begin SQLPane = End Begin DataPane = Begin ParameterDefaults = "" End Begin ColumnWidths = 19 Width = 284 Width = 1500 Width = 1500 Width = 1500 Width = 1500 Width = 1500 Width = 1500 Width = 1500 Width = 1500 Width = 1500 Width = 1500 Width = 1500 Width = 1500 Width = 1500 Width = 1500 Width = 1500 Width = 1500 Width = 1500 Width = 1500 End End Begin CriteriaPane = Begin ColumnWidths = 11 Column = 1440 Alias = 900 Table = 1170 Output = 720 Append = 1400 NewValue = 1170 SortType = 1350 SortOrder = 1410 GroupBy = 1350 Filter = 1350 Or = 1350 Or = 1350 Or = 1350 End End End ', 'SCHEMA', 'dbo', 'VIEW', 'V_elencoListePrelievo' 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 commit go -- registro versione... INSERT INTO [dbo].[LogUpdateDb] ([Versione],[Data]) VALUES(326, GETDATE()) GO