IF EXISTS ( SELECT * 
            FROM   sysobjects 
            WHERE  id = object_id(N'dbo.CFU_Cliente_SCA_QR_Generar') 
                   and type = 'FN')
BEGIN
    DROP FUNCTION dbo.CFU_Cliente_SCA_QR_Generar
END
GO

CREATE FUNCTION dbo.CFU_Cliente_SCA_QR_Generar(@pJson VARCHAR(8000))
RETURNS VARCHAR(2048)
AS
BEGIN
DECLARE @Json_Respuesta		VARCHAR(8000)

/*Variables recibidas por parámetro a traves del JSON*/
DECLARE @pId_Cliente		INT
DECLARE @pId_Producto		VARCHAR(14)
DECLARE @pFecha_Desde		DATETIME
DECLARE @pFecha_Hasta		DATETIME
DECLARE @pId_Lista_Precio	SMALLINT
DECLARE @pToken				VARCHAR(256)
DECLARE @pApp				VARCHAR(256) --App:CleverSCA

SET @pId_Cliente		= ISNULL(CONVERT(INT, dbo.CF_JSON_VALUE(@pJson,'Id_Cliente')), 0)
SET @pId_Producto		= UPPER(LTRIM(RTRIM(ISNULL(CONVERT(VARCHAR(14), dbo.CF_JSON_VALUE(@pJson,'Id_Producto')), ''))))
SET @pFecha_Desde		= ISNULL(CONVERT(DATETIME, dbo.CF_JSON_VALUE(@pJson,'Fecha_Desde')), '19000101')
SET @pFecha_Hasta		= ISNULL(CONVERT(DATETIME, dbo.CF_JSON_VALUE(@pJson,'Fecha_Hasta')), '19000101')
SET @pId_Lista_Precio	= ISNULL(CONVERT(SMALLINT, dbo.CF_JSON_VALUE(@pJson,'Id_Lista_Precio')), 0)
SET @pToken				= LTRIM(RTRIM(ISNULL(CONVERT(VARCHAR(256), dbo.CF_JSON_VALUE(@pJson,'Token')), '')))
/*FIN Variables recibidas por parámetro a traves del JSON*/

/*Variables locales*/
DECLARE @Token					VARCHAR(256)
DECLARE @Flag_Existe_Token		TINYINT
DECLARE @url					VARCHAR(2048)
DECLARE @cant_usos_permitidos	INT
DECLARE @fecha_desde			DATETIME
DECLARE @fecha_hasta			DATETIME
/*FIN Variables locales*/

SET @url = (dbo.CF_xParam('API_Url'))

SET @url = @url + 'index.php'

SET @url = @url + '?acs_qr=1'

IF(@pToken = '')
BEGIN
	SET @Token = (dbo.CF_Token(32))
	
	SET @Flag_Existe_Token = (SELECT ISNULL((SELECT 1 FROM Clientes_Links WHERE Token = @Token), 0) AS Flag_Existe_Token)
	
	WHILE(@Flag_Existe_Token = 1)
	BEGIN
		SET @Token = (dbo.CF_Token(32))
	
		SET @Flag_Existe_Token = (SELECT ISNULL((SELECT 1 FROM Clientes_Links WHERE Token = @Token), 0) AS Flag_Existe_Token)
	END	
END
ELSE
BEGIN
	SET @Token = @pToken
END

SET @url = @url + '&token=' + @Token

IF(@pId_Producto <> '')
BEGIN
	SET @url = @url + '&id_producto=' + @pId_Producto
END

IF(@pFecha_Desde > '19000101' AND @pFecha_Hasta > '19000101')
BEGIN
	SET @fecha_desde = @pFecha_Desde
	SET @fecha_hasta = @pFecha_Hasta
END
ELSE
BEGIN
	SET @fecha_desde = GETDATE()
	SET @fecha_hasta = DATEADD(ss, 60, GETDATE())
END

IF(@pId_Lista_Precio > 0)
BEGIN
	SET @url = @url + '&id_lista_precio=' + @pId_Lista_Precio
END

SET @cant_usos_permitidos = 1

SET @Json_Respuesta =	'{' +
						dbo.CF_Json_ParsearVariable('url', @url, 'VARCHAR(2048)') + ',' +
						dbo.CF_Json_ParsearVariable('token', @token, 'VARCHAR(256)') + ',' + 
						dbo.CF_Json_ParsearVariable('cant_usos_permitidos', @cant_usos_permitidos, 'INT') + ',' + 
						dbo.CF_Json_ParsearVariable('fecha_desde', @fecha_desde, 'DATETIME') + ',' + 
						dbo.CF_Json_ParsearVariable('fecha_hasta', @fecha_hasta, 'DATETIME') + 
						'}'

RETURN ISNULL(@Json_Respuesta, '')
END
