set ANSI_NULLS on;
go

/***************************************
* FUNCTION f_siglaUtente
*
* calcola la sigla utente dalla vista sulla tab utenti
*
* Steamware, S.E.L.
* mod: 2013.02.20
*
****************************************/
create FUNCTION f_siglaUtente(@utente NVARCHAR(MAX))
RETURNS NVARCHAR(4) AS  
BEGIN

	----------------------------------------
	-- dichiaro le componenti del nome
	----------------------------------------
	DECLARE @answ NVARCHAR(4)

	SELECT @answ = ISNULL(sigla,'-') FROM v_selUtenti WHERE ( Cognome + ' ' + Nome = @utente ) OR ( Nome + ' ' + Cognome = @utente ) 
	-- se fosse nullo provo a prendere le iniziali..
    IF(ISNULL(@answ,'-') = '-')
    BEGIN
        DECLARE @indice INT
        SELECT @indice = CHARINDEX(' ', @utente)
        SET @answ = LEFT(@utente,1)+SUBSTRING(@utente,@indice+1,1)
    END

	RETURN UPPER(ISNULL(@answ,'-'))
END
go


set xact_abort on;
go

begin transaction;
go

alter table tbDocumenti alter column
  SA nvarchar(4);
go

alter table tbDocumenti alter column
  SR nvarchar(4);
go

alter table tbDocumenti add
  constraint DF_tbDocumenti_Autore default ('-') for Autore,
  constraint DF_tbDocumenti_SA default ('-') for SA,
  constraint DF_tbDocumenti_Redattore default ('-') for Redattore,
  constraint DF_tbDocumenti_SR default ('-') for SR;
go

set ANSI_NULLS on;
go

/*************************************
* STORED PROCEDURE stp_tbDocs_insert
*
*  crea un nuovo doc con i valori minimi x inserimento
*
* mod : 2012.10.04
* aut : S.E. Locatelli
**************************************/
alter PROCEDURE stp_tbDocs_insert
(
	@nome			NVARCHAR(250),
	@fullPath		NVARCHAR(500),
	@userId			NVARCHAR(50),
	@isProtocollo	BIT, --significa va calcolato NrProtocollo, Numero, Anno (corrente)
	@DataRic		DATETIME,
	@DataDoc		DATETIME,
	@NumeroCommessa NVARCHAR(4),
	@AnnoCommessa	NVARCHAR(4),
	@Fase			NVARCHAR(250),
	@Fonte			NVARCHAR(100),
	@Oggetto		NVARCHAR(250),
	@InOut			NVARCHAR(3),
	@Autore			NVARCHAR(50),
	@Redattore		NVARCHAR(50),
	@isRed			BIT,
	@newIdxFile		INT OUTPUT	
)
AS


BEGIN tran

	-- dichiarazioni
	DECLARE	@Anno			INT
	DECLARE	@Numero			INT
	DECLARE	@NrProtocollo	INT
	DECLARE @SA     		NVARCHAR(4)
	DECLARE @SR     		NVARCHAR(4)
	--DECLARE @fullName		NVARCHAR(250)

	-- calcolo valori base
	SET @Anno			= YEAR(GETDATE())
	SET @Numero			= ( SELECT CASE WHEN @isProtocollo=1 THEN dbo.f_nextNumeroByAnno(@Anno) ELSE 0 END )
	SET @NrProtocollo	= ( SELECT CASE WHEN @isProtocollo=1 THEN dbo.f_nextNrProtocollo() ELSE 0 END )

    -- calcolo sigla autore e redattore...
    SELECT @SR = dbo.f_siglaUtente(@Redattore)  
    SELECT @SA = dbo.f_siglaUtente(@Autore)


	-- vero insert
	INSERT	INTO tbDocumenti(NomeFile,fullPath,userId,isRed,NrProtocollo,Numero,Anno,DataRic,DataDoc,NumeroCommessa,AnnoCommessa,Fase,Fonte,Oggetto,InOut,Autore,Redattore,SA,SR)
	VALUES			(@nome,@fullPath,@userId,@isRed,@NrProtocollo,@Numero,@Anno,@DataRic,@DataDoc,@NumeroCommessa ,@AnnoCommessa,@Fase,@Fonte,@Oggetto,@InOut,@Autore,@Redattore,@SA,@SR)

	SELECT @newIdxFile = SCOPE_IDENTITY()

COMMIT tran

RETURN @newIdxFile
go

commit;
go

set xact_abort on;
go

begin transaction;
go

set ANSI_NULLS on;
go

create VIEW v_selUtenti
AS
SELECT        UtenteAD, Cognome, Nome, email, sigla, attivo
FROM            ETS_Anagrafica.dbo.Utenti
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 = "Utenti (ETS_Anagrafica.dbo)"
            Begin Extent = 
               Top = 6
               Left = 38
               Bottom = 291
               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_selUtenti';
go

exec sp_addextendedproperty 'MS_DiagramPaneCount', 1, 'SCHEMA', 'dbo', 'VIEW', 'v_selUtenti';
go

commit;
go








-- registro versione...
INSERT INTO [dbo].[LogUpdateDb] ([Versione],[Data]) VALUES(120, GETDATE())
GO
SELECT TOP 10 * FROM LogUpdateDb ORDER BY Versione DESC
GO
