set ANSI_NULLS on;
go

create FUNCTION f_expDataGGMMAAAA( @Data AS DATE )
-- ritorna la DATA per file di export x paghe formato carattere
RETURNS CHAR(8)
AS
BEGIN
  RETURN REPLACE( CONVERT(NVARCHAR(50), @Data , 105), '-','')
END
go

create FUNCTION f_expTimeHHMM( @Time AS DECIMAL(10,5) , @Format CHAR(1), @Arrot AS INT)
-- ritorna ore per file di export x paghe formato carattere es . 8 0re 30 minuti -> 0850
-- Time valore da convertire 
-- Format  Formato del valore passato ( M-minuti O-Ore )
RETURNS CHAR(4)
AS
BEGIN

 DECLARE @Ore AS INT;
 DECLARE @Min AS INT;
 DECLARE @OreMin AS DECIMAL(10,5);

 IF @Format = 'M'  -- Minuti
   BEGIN
--    SET @Ore = CONVERT( INTEGER , ( @Time / 60.00 )  );
--    SET @Min = @Time - ( @Ore * 60 );
 
    SET @OreMin = CONVERT(INT, (@Time / @Arrot) )
    SET @OreMin = ( ( @OreMin * @Arrot ) / 60 ) * 100
  END

RETURN dbo.f_padLeft( CONVERT( VARCHAR(4) , CONVERT(INT, @OreMin )) , 4, '0')
END
go

/***************************************
* FUNCTION f_padLeft
*
* fornisce una stringa della lunghezza desiderata aggiungendo a sx il carattere richiesto alla @string originale
*
* Steamware, S.E.L.
* mod: 2010.03.19
*
****************************************/
create FUNCTION f_padLeft (@string VARCHAR(255), @desired_length INTEGER, @pad_character CHAR(1))
RETURNS VARCHAR(255) AS  
BEGIN

 -- Prefix the required number of spaces to bulk up the string and then replace the spaces with the desired character
 RETURN CASE
          WHEN LEN(@string) < @desired_length
            THEN REPLACE(SPACE(@desired_length - LEN(@string)), ' ', @pad_character) + @string
          ELSE @string
        END

END
go

/***************************************
* FUNCTION f_padLeft
*
* fornisce una stringa della lunghezza desiderata aggiungendo a sx il carattere richiesto alla @string originale
*
* Steamware, S.E.L.
* mod: 2010.03.19
*
****************************************/
create FUNCTION f_padRight (@string VARCHAR(255), @desired_length INTEGER, @pad_character CHAR(1))
RETURNS VARCHAR(255) AS  
BEGIN

 -- Prefix the required number of spaces to bulk up the string and then replace the spaces with the desired character
 RETURN CASE
          WHEN LEN(@string) < @desired_length
            THEN @string + REPLACE(SPACE(@desired_length - LEN(@string)), ' ', @pad_character)
          ELSE @string
        END

END
go







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