set xact_abort on go begin transaction go set ANSI_NULLS on go create VIEW v_ElencoMacchine AS SELECT dbo.ElencoMacchineCN.Matricola, dbo.ElencoMacchineCN.Descrizione, dbo.ElencoMacchineCN.Cliente, dbo.ElencoMacchineCN.CodFam, dbo.ElencoMacchineCN.CorsaX, dbo.ElencoMacchineCN.CorsaY, dbo.ElencoMacchineCN.CorsaZ, ISNULL(dbo.ElencoDossier.IdxDossier, 0) AS IdxDossier FROM dbo.ElencoMacchineCN LEFT OUTER JOIN dbo.ElencoDossier ON dbo.ElencoMacchineCN.Matricola = dbo.ElencoDossier.Matricola go exec sp_addextendedproperty '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 = "ElencoMacchineCN" Begin Extent = Top = 6 Left = 38 Bottom = 265 Right = 208 End DisplayFlags = 280 TopColumn = 0 End Begin Table = "ElencoDossier" Begin Extent = Top = 12 Left = 410 Bottom = 142 Right = 580 End DisplayFlags = 280 TopColumn = 0 End End End Begin SQLPane = End Begin DataPane = Begin ParameterDefaults = "" End Begin ColumnWidths = 9 Width = 284 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_ElencoMacchine' go exec sp_addextendedproperty 'MS_DiagramPaneCount', 1, 'SCHEMA', 'dbo', 'VIEW', 'v_ElencoMacchine' go commit go set xact_abort on go begin transaction go set ANSI_NULLS on go -- ============================================= -- Author: S.E. Locatelli -- Create date: 2015.10.19 -- Description: recupero record da matricola -- ============================================= alter PROCEDURE stp_AM_getByMatr ( @Matricola NVARCHAR(50) ) AS SET NOCOUNT OFF; SELECT * FROM v_ElencoMacchine WHERE Matricola = @Matricola go commit go set xact_abort on go begin transaction go set ANSI_NULLS on go -- ============================================= -- Author: S.E. Locatelli -- Create date: 2015.06.09 -- Description: insert record -- ============================================= alter PROCEDURE stp_AM_insertQuery ( @Matricola NVARCHAR(50), @User NVARCHAR(50), @Descrizione NVARCHAR(50), @Cliente NVARCHAR(50), @CodFam NVARCHAR(50), @CorsaX INT, @CorsaY INT, @CorsaZ INT ) AS BEGIN tran SET NOCOUNT OFF; DECLARE @IdxDossier INT = 0 -- inserisco macchina INSERT INTO ElencoMacchineCN (Matricola, Descrizione, Cliente, CodFam, CorsaX, CorsaY, CorsaZ) VALUES (@Matricola, @Descrizione, @Cliente, @CodFam, @CorsaX, @CorsaY, @CorsaZ); -- creo DOSSIER x matricola... EXEC stp_ED_InsertQuery @Matricola, @User -- leggo numero dossier! SELECT @IdxDossier = IdxDossier FROM ElencoDossier WHERE Matricola = @Matricola -- inserisco schema collaudi da famiglia macchina nel dossier... EXEC stp_SCM_insByFamMac @IdxDossier, @CodFam -- inserisco istanza prove standard x varie fasi... EXEC stp_SCM_insMisFasiMissing @IdxDossier SELECT * FROM ElencoMacchineCN WHERE Matricola = @Matricola COMMIT tran go commit go set xact_abort on go begin transaction go set ANSI_NULLS on go -- ============================================= -- Author: S.E. Locatelli -- Create date: 2015.06.18 -- Description: update misura (ede eventualmente parametro) con VERIFICA OK -- ============================================= alter PROCEDURE stp_Mis_updateMis ( @Original_IdxDossier INT ,@Original_CodScheda NVARCHAR(50) ,@Original_Vers INT ,@Original_NumScheda INT ,@Original_CodMisura NVARCHAR(50) ,@Original_Fase NVARCHAR(50) ,@Operatore NVARCHAR(50) ,@ValorePar FLOAT ,@ValoreMis NVARCHAR(4000) ,@CodVisib NVARCHAR(50) ) AS UPDATE Misure SET Operatore = CASE WHEN @ValoreMis <> '' THEN @Operatore ELSE '' END ,DataOra = GETDATE() ,ValorePar = ISNULL(@ValorePar, 0) ,ValoreMis = @ValoreMis ,OkValMis = dbo.f_checkVal(CodScheda, Vers, CodMisura, @ValorePar, @ValoreMis) ,CodVisib = ISNULL(@CodVisib, ISNULL(CodVisib,'')) WHERE IdxDossier = @Original_IdxDossier AND CodScheda = @Original_CodScheda AND Vers = @Original_Vers AND NumScheda = @Original_NumScheda AND CodMisura = @Original_CodMisura AND Fase = @Original_Fase RETURN go commit go set xact_abort on go begin transaction go set ANSI_NULLS on go -- ============================================= -- Author: S.E. Locatelli -- Create date: 2015.10.20 -- Description: update misura (ede eventualmente parametro) con VERIFICA OK -- ============================================= alter FUNCTION f_checkVal ( @CodScheda NVARCHAR(50) ,@Vers INT ,@CodMisura NVARCHAR(50) ,@ValorePar FLOAT ,@ValoreMis NVARCHAR(4000) ) RETURNS BIT AS BEGIN DECLARE @answ BIT = 0 ,@ValFlt FLOAT = 0 ,@TipoValMisura NVARCHAR(50) = '' ,@NumVal INT = 0 DECLARE @delim AS VARCHAR(2) DECLARE @chrind INT = 1 -- recupero num righe x validazione parametro SELECT @NumVal = COUNT(*) FROM ValidVal WHERE CodScheda = @CodScheda AND Vers = @Vers AND CodMisura = @CodMisura -- check 1: DEVE ESSERCI ALMENO un valore di validazione da controllare IF(@NumVal > 0) BEGIN -- recupero tipo val misura SELECT @TipoValMisura = ISNULL(TipoValMisura,'') FROM DettScheda WHERE CodScheda = @CodScheda AND Vers = @Vers AND CodMisura = @CodMisura -- check 2: tipo di valore, se float/int faccio cast e test... IF (@TipoValMisura = 'INT' OR @TipoValMisura = 'FLT') BEGIN IF LTRIM(RTRIM(ISNULL(@ValoreMis,''))) <> '' BEGIN -- recupero valore misura come FLOAT SELECT @ValFlt = ISNULL(CAST(REPLACE(@ValoreMis,',','.') AS FLOAT), -999999) IF @ValFlt > -999999 BEGIN SELECT @answ = CASE WHEN @ValFlt BETWEEN LIVal AND LSVal THEN 1 ELSE 0 END FROM ValidVal WHERE CodScheda = @CodScheda AND Vers = @Vers AND CodMisura = @CodMisura AND MinPar <= @ValorePar AND MaxPar > @ValorePar END END END -- check 2: se è boolean è test DIRETTO ELSE IF (@TipoValMisura = 'BOL') BEGIN SELECT @answ = ISNULL(CAST(@ValoreMis AS BIT), 0) END -- check 3: se è AFLT è test per tutti i valori passati ELSE IF (@TipoValMisura = 'AFLT') BEGIN SET @answ = 0 -- verifico il formato del delimitatore passato se / o spazio IF CHARINDEX('/', @ValoreMis) > 0 BEGIN SET @ValoreMis = REPLACE(@ValoreMis,' ','') SET @delim = '/' END ELSE IF CHARINDEX(' ', @ValoreMis) > 0 BEGIN SET @ValoreMis = REPLACE(@ValoreMis,' ',' ') -- se ci sono spazi doppi li riduco cmq a 1 SET @delim = ' ' END ELSE SET @delim = '' -- solo un valore SET @ValoreMis = RTRIM(LTRIM(REPLACE(@ValoreMis,',','.'))) WHILE @chrind > 0 AND ISNULL(@ValoreMis,'') <> '' BEGIN SELECT @chrind = CHARINDEX(@delim, @ValoreMis) IF @chrind > 0 SET @ValFlt = CAST(LEFT(@ValoreMis, @chrind - 1) AS FLOAT) ELSE SELECT @ValFlt = CAST(@ValoreMis AS FLOAT) SELECT @answ = CASE WHEN @ValFlt BETWEEN LIVal AND LSVal THEN 1 ELSE 0 END FROM ValidVal WHERE CodScheda = @CodScheda AND Vers = @Vers AND CodMisura = @CodMisura AND MinPar <= @ValorePar AND MaxPar > @ValorePar SELECT @ValoreMis = RIGHT(@ValoreMis, LEN(@ValoreMis) - @chrind) IF LEN(@ValoreMis) = 0 OR @answ = 0 -- se anche solo un valore KO esco con @answ = 0 BREAK END END END ELSE BEGIN -- ...(altrimenti è OK per "partito preso" SE HO un valore e KO se non ce l'ho...) SELECT @answ = CASE WHEN @ValoreMis <> '' THEN 1 ELSE 0 END END RETURN @answ END go commit go set xact_abort on go begin transaction go INSERT INTO dbo.Vocabolario VALUES (N'EN', N'btnClonaConfFamMacch', N'Clona Famiglia Esistente') INSERT INTO dbo.Vocabolario VALUES (N'EN', N'insIsEnabled', N'Inserimento Abilitato') INSERT INTO dbo.Vocabolario VALUES (N'EN', N'insNewMatr', N'Crea Macchina e schede') INSERT INTO dbo.Vocabolario VALUES (N'EN', N'numMatrExisting', N'Matricola già presente') INSERT INTO dbo.Vocabolario VALUES (N'EN', N'numMatrIsEmpty', N'Manca Numero Matricola') INSERT INTO dbo.Vocabolario VALUES (N'EN', N'plsInsNewMatr', N'Nuova Matricola Macchina') INSERT INTO dbo.Vocabolario VALUES (N'EN', N'selCodFam', N'Selezionare Famiglia') INSERT INTO dbo.Vocabolario VALUES (N'EN', N'SelectFM_CSV_2ins', N'Selezionare Fam.Macc e Scheda per inserire') INSERT INTO dbo.Vocabolario VALUES (N'EN', N'warnHasChildRecord', N'Attenzione: record child collegati') INSERT INTO dbo.Vocabolario VALUES (N'IT', N'btnClonaConfFamMacch', N'Clona Famiglia Esistente') INSERT INTO dbo.Vocabolario VALUES (N'IT', N'insIsEnabled', N'Inserimento Abilitato') INSERT INTO dbo.Vocabolario VALUES (N'IT', N'insNewMatr', N'Crea Macchina e schede') INSERT INTO dbo.Vocabolario VALUES (N'IT', N'numMatrExisting', N'Matricola già presente') INSERT INTO dbo.Vocabolario VALUES (N'IT', N'numMatrIsEmpty', N'Manca Numero Matricola') INSERT INTO dbo.Vocabolario VALUES (N'IT', N'plsInsNewMatr', N'Nuova Matricola Macchina') INSERT INTO dbo.Vocabolario VALUES (N'IT', N'selCodFam', N'Selezionare Famiglia') INSERT INTO dbo.Vocabolario VALUES (N'IT', N'SelectFM_CSV_2ins', N'Selezionare Fam.Macc e Scheda per inserire') INSERT INTO dbo.Vocabolario VALUES (N'IT', N'warnHasChildRecord', N'Attenzione: record child collegati') go commit transaction go