274 lines
7.0 KiB
Transact-SQL
274 lines
7.0 KiB
Transact-SQL
create table ListValues(
|
|
TableName nvarchar(50) not null,
|
|
FieldName nvarchar(50) not null,
|
|
value nvarchar(10) not null,
|
|
label nvarchar(50),
|
|
ordinal int constraint DF_ListValues_ordinal default ((0)),
|
|
|
|
constraint PK_ListValues_1 primary key(TableName,FieldName,value)
|
|
);
|
|
go
|
|
|
|
|
|
set xact_abort on
|
|
go
|
|
|
|
begin transaction
|
|
go
|
|
|
|
INSERT INTO dbo.ListValues
|
|
VALUES (N'*', N'PageSize', N'10', N'10', 1)
|
|
INSERT INTO dbo.ListValues
|
|
VALUES (N'*', N'PageSize', N'15', N'15', 2)
|
|
INSERT INTO dbo.ListValues
|
|
VALUES (N'*', N'PageSize', N'20', N'20', 3)
|
|
INSERT INTO dbo.ListValues
|
|
VALUES (N'*', N'PageSize', N'35', N'35', 4)
|
|
INSERT INTO dbo.ListValues
|
|
VALUES (N'*', N'PageSize', N'50', N'50', 5)
|
|
go
|
|
|
|
commit transaction
|
|
go
|
|
|
|
|
|
set xact_abort on;
|
|
go
|
|
|
|
begin transaction;
|
|
go
|
|
|
|
set ANSI_NULLS on;
|
|
go
|
|
|
|
/*----------------------------------
|
|
* Trigger su insert/update
|
|
*
|
|
* Aggiorna giustificativi nella tab TimbratureExpl
|
|
*
|
|
* creato da: S.E. Locatelli - 2012.12.04
|
|
* ultima modifica:
|
|
*----------------------------------*/
|
|
alter TRIGGER trg_giustUpdateTimbr
|
|
ON Giustificativi
|
|
FOR INSERT, UPDATE
|
|
AS
|
|
|
|
-- controllo se rescord esista altrimenti lo creo!!!
|
|
DECLARE @trovate INT = 0
|
|
DECLARE @idxDipendente INT
|
|
DECLARE @dataRif DATETIME
|
|
SET @trovate = ISNULL( ( SELECT COUNT(*) FROM TimbratureExpl te INNER JOIN inserted g ON te.idxDipendente = g.idxDipendente AND te.dataLav = g.dataLav) ,0)
|
|
IF(@trovate = 0)
|
|
BEGIN
|
|
SELECT @idxDipendente = idxDipendente, @dataRif=dataLav FROM inserted
|
|
EXEC stp_ricalcolaTimbratureExpl @idxDipendente, @dataRif
|
|
END
|
|
|
|
-- CONTROLLO SE IL RECORD NON SIA BLOCCATO con where nell'update
|
|
-- prendo tutte le "vecchie" righe (deleted) e x le giornate relative TOLGO i minuti dei giustificativi
|
|
UPDATE TimbratureExpl
|
|
SET minMal = CASE WHEN g.codGiust='MAL' THEN 0 ELSE minMal END,
|
|
minFer = CASE WHEN g.codGiust='FER' THEN 0 ELSE minFer END,
|
|
minFest = CASE WHEN g.codGiust='FEST' THEN 0 ELSE minFest END,
|
|
minPerm = CASE WHEN g.codGiust='PERM' THEN 0 ELSE minPerm END
|
|
FROM TimbratureExpl te INNER JOIN deleted g ON te.idxDipendente = g.idxDipendente AND te.dataLav = g.dataLav
|
|
WHERE te.block = 0
|
|
|
|
-- prendo le "nuove" righe (inserted) e x le giornate relative AGGIUNGO i minuti dei giustificativi
|
|
UPDATE TimbratureExpl
|
|
SET minMal = CASE WHEN g.codGiust='MAL' THEN g.minuti ELSE minMal END,
|
|
minFer = CASE WHEN g.codGiust='FER' THEN g.minuti ELSE minFer END,
|
|
minFest = CASE WHEN g.codGiust='FEST' THEN g.minuti ELSE minFest END,
|
|
minPerm = CASE WHEN g.codGiust='PERM' THEN g.minuti ELSE minPerm END
|
|
FROM TimbratureExpl te INNER JOIN inserted g ON te.idxDipendente = g.idxDipendente AND te.dataLav = g.dataLav
|
|
WHERE te.block = 0
|
|
go
|
|
|
|
/*----------------------------------
|
|
* Trigger su delete
|
|
*
|
|
* Aggiorna giustificativi nella tab TimbratureExpl
|
|
*
|
|
* creato da: S.E. Locatelli - 2012.12.04
|
|
* ultima modifica:
|
|
*----------------------------------*/
|
|
alter TRIGGER trg_giustDelUpdTimbr
|
|
ON Giustificativi
|
|
FOR DELETE
|
|
AS
|
|
|
|
-- controllo se rescord esista altrimenti lo creo!!!
|
|
DECLARE @trovate INT = 0
|
|
DECLARE @idxDipendente INT
|
|
DECLARE @dataRif DATETIME
|
|
|
|
-- CONTROLLO SE IL RECORD NON SIA BLOCCATO in update con where
|
|
-- prendo tutte le "vecchie" righe (deleted) e x le giornate relative TOLGO i minuti dei giustificativi
|
|
UPDATE TimbratureExpl
|
|
SET minMal = CASE WHEN g.codGiust='MAL' THEN 0 ELSE minMal END,
|
|
minFer = CASE WHEN g.codGiust='FER' THEN 0 ELSE minFer END,
|
|
minFest = CASE WHEN g.codGiust='FEST' THEN 0 ELSE minFest END,
|
|
minPerm = CASE WHEN g.codGiust='PERM' THEN 0 ELSE minPerm END
|
|
FROM TimbratureExpl te INNER JOIN deleted g ON te.idxDipendente = g.idxDipendente AND te.dataLav = g.dataLav
|
|
WHERE te.block = 0
|
|
go
|
|
|
|
commit;
|
|
go
|
|
|
|
|
|
set xact_abort on;
|
|
go
|
|
|
|
begin transaction;
|
|
go
|
|
|
|
set ANSI_NULLS on;
|
|
go
|
|
|
|
create VIEW v_selPageSize
|
|
AS
|
|
SELECT TOP (100) PERCENT value, label, ordinal
|
|
FROM dbo.ListValues
|
|
WHERE (TableName = N'*') AND (FieldName = N'PageSize')
|
|
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 = "ListValues"
|
|
Begin Extent =
|
|
Top = 6
|
|
Left = 38
|
|
Bottom = 187
|
|
Right = 208
|
|
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_selPageSize';
|
|
go
|
|
|
|
exec sp_addextendedproperty 'MS_DiagramPaneCount', 1, 'SCHEMA', 'dbo', 'VIEW', 'v_selPageSize';
|
|
go
|
|
|
|
commit;
|
|
go
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
-- registro versione...
|
|
INSERT INTO [dbo].[LogUpdateDb] ([Versione],[Data]) VALUES(325, GETDATE())
|
|
GO
|
|
SELECT * FROM LogUpdateDb ORDER BY Versione DESC
|