﻿-- =============================================
-- Author:		G:A:R
-- Create date: 
-- Description:	estrazione valore del paramento passato
-- =============================================
CREATE FUNCTION f_prt_getParameter 
(
	 @par AS VARCHAR(50)
    ,@val AS VARCHAR(50)
    ,@endSepar AS VARCHAR(10) = '&'
)
RETURNS VARCHAR(50)
AS
BEGIN

	DECLARE @Result VARCHAR(50)
    DECLARE @Inizio INT;
    DECLARE @Fine   INT;

    SET @par = '%'+ @par + '=%'      -- '%QuoteType=%'

    --;WITH CTE AS 
    --(
    --    SELECT *, ( PATINDEX(@campo , Chiave) + LEN(@campo) - 2 ) As Inizio , CHARINDEX ( '&' ,Chiave , PATINDEX(@campo , Chiave) ) As Fine
    --    FROM dbo.ReportPrintTicket
    --    WHERE Ticket = 1 AND PATINDEX(@campo , Chiave) > 0
    --)

    SET @Inizio = PATINDEX(@par , @val )    

    IF @Inizio > 0
      BEGIN 
        SET @Inizio = @Inizio + LEN(@par) - 2 
        SET @Fine = CASE WHEN ( CHARINDEX ( @endSepar , @val , @Inizio ) ) = 0 
                        THEN LEN(@val) 
                        ELSE CHARINDEX ( @endSepar , @val , @Inizio ) 
                    END ;
       
        SELECT @Result = SUBSTRING( @val, @Inizio, @Fine-@Inizio )
      END

   RETURN @Result
END