Description
Properties
| Name | Value |
|---|---|
| ANSI Nulls ON | True |
| Quoted Identifier ON | True |
| Encrypted | False |
| Execute As | |
| Assembly |
Parameters
2| Name | Data Type | Length | Description |
|---|---|---|---|
| @p_id_usuario | int | 4 | |
| @id_producto | int | 4 |
SQL Script
Copy
SET QUOTED_IDENTIFIER, ANSI_NULLS ON
GO
/*
exec obtener_cliente_usuario 0,12
exec obtener_cliente_usuario 12,0
*/
CREATE OR ALTER PROCEDURE dbo.obtener_cliente_usuario
@p_id_usuario int,
@id_producto int -- Id_informe_comercial
AS
BEGIN
declare @cliente int
declare @tipo_paquete char(1)
declare @fecha_desde date
declare @fecha_hasta date
declare @consumos int
declare @dias int
declare @estado char(1)
declare @estado_usuario char(1)
declare @fin char(1) = 'N'
if @p_id_usuario in (0,12) set @p_id_usuario = 15342812
if (@id_producto = 0) set @id_producto = 12
set @cliente = null
set @estado = '0'
set @estado_usuario = '0'
set @cliente = (select top 1 cliente
from usuarios_productos
where usuarios_productos.user_id = @p_id_usuario
and usuarios_productos.id_producto = @id_producto
and usuarios_productos.activo = 1 )
if (@cliente is not null)
begin
set @estado = (select estado_cliente from clientes where cliente = @cliente)
if (select count(*)
from usuarios_productos up
where up.cliente = @cliente
and up.id_producto = @id_producto
and up.activo = 1) > 0
begin
set @estado_usuario = 'A'
end
end
/* Agregado para que deje entrar a los clientes que tienen otro producto */
if (@cliente is null)
begin
set @cliente = (select top 1 cliente
from usuarios_productos
where usuarios_productos.user_id = @p_id_usuario
and usuarios_productos.activo = 1 )
if (@cliente is not null)
begin
select '0' as error,
null as usuario_limite_consumo,
@cliente as client_id,
null as nombre_cliente,
null as fecha_desde,
null as fecha_hasta,
null as tipo_paquete,
'99' as id_producto,
null as cliente_bloquear_consumo,
null as cliente_limite_consumo,
null as usuario_consumido,
null as cliente_consumido
set @fin = 'S'
end
end
/* fin del agregado */
if (@fin = 'N')
begin
if (@cliente is null or @estado != 'A' or @estado_usuario != 'A')
begin
-- ese usuario no tiene el producto activo
select '99' as error,
null as usuario_limite_consumo,
@cliente as client_id,
null as nombre_cliente,
null as fecha_desde,
null as fecha_hasta,
null as tipo_paquete,
null as id_producto,
null as cliente_bloquear_consumo,
null as cliente_limite_consumo,
null as usuario_consumido,
null as cliente_consumido
end
else
begin
select @tipo_paquete = clientes_productos.tipo_paquete,
@fecha_desde = clientes_productos.fecha_desde,
@fecha_hasta = clientes_productos.fecha_hasta
from clientes_productos
where cliente = @cliente
and id_producto = @id_producto
if (@tipo_paquete != 'P' or @tipo_paquete is null)
begin
set @fecha_hasta = GETDATE()
set @dias = CONVERT(int, DAY(getdate()))
set @dias = @dias - 1
set @fecha_desde = dateadd(day,@dias*(-1),@fecha_hasta)
end
select top 1 '0' as error,
up.limite_consumo as usuario_limite_consumo,
@cliente as client_id,
clientes.nombre_cliente as nombre_cliente,
@fecha_desde as fecha_desde,
@fecha_hasta as fecha_hasta,
cp.tipo_paquete,
up.id_producto,
cp.bloquear_consumo cliente_bloquear_consumo,
cp.limite_consumo cliente_limite_consumo,
(select count(subquery.resultado) as consultas
from (
select distinct nombre_persona,
cuit_consultado,
(CONVERT(VARCHAR(10),usuarios_consumos.created, 103)) as resultado,
user_id
from usuarios_consumos
inner join padrones on padrones.identificacion = cuit_consultado
and padrones.habilitado = '1'
where id_producto = @id_producto
and usuarios_consumos.user_id = @p_id_usuario
and convert(date,usuarios_consumos.created) between @fecha_desde and @fecha_hasta)
subquery)
as usuario_consumido,
(select count(subquery.resultado) as consultas
from (
select distinct nombre_persona,
cuit_consultado,
(CONVERT(VARCHAR(10),usuarios_consumos.created, 103)) as resultado,
user_id
from usuarios_consumos
inner join padrones on padrones.identificacion = cuit_consultado
and padrones.habilitado = '1'
where id_producto = @id_producto
and usuarios_consumos.user_id in(select distinct user_id from usuarios_productos where cliente = @cliente)
and convert(date,usuarios_consumos.created) between @fecha_desde and @fecha_hasta)
subquery)
as cliente_consumido
from usuarios_productos up
left join clientes_productos cp
on cp.cliente = @cliente
and cp.id_producto = @id_producto
and cp.activo = 1
left join clientes
on clientes.cliente = @cliente
where up.user_id = @p_id_usuario
and up.id_producto = @id_producto
and up.activo = 1
end
end
END
GO
GO
/*
exec obtener_cliente_usuario 0,12
exec obtener_cliente_usuario 12,0
*/
CREATE OR ALTER PROCEDURE dbo.obtener_cliente_usuario
@p_id_usuario int,
@id_producto int -- Id_informe_comercial
AS
BEGIN
declare @cliente int
declare @tipo_paquete char(1)
declare @fecha_desde date
declare @fecha_hasta date
declare @consumos int
declare @dias int
declare @estado char(1)
declare @estado_usuario char(1)
declare @fin char(1) = 'N'
if @p_id_usuario in (0,12) set @p_id_usuario = 15342812
if (@id_producto = 0) set @id_producto = 12
set @cliente = null
set @estado = '0'
set @estado_usuario = '0'
set @cliente = (select top 1 cliente
from usuarios_productos
where usuarios_productos.user_id = @p_id_usuario
and usuarios_productos.id_producto = @id_producto
and usuarios_productos.activo = 1 )
if (@cliente is not null)
begin
set @estado = (select estado_cliente from clientes where cliente = @cliente)
if (select count(*)
from usuarios_productos up
where up.cliente = @cliente
and up.id_producto = @id_producto
and up.activo = 1) > 0
begin
set @estado_usuario = 'A'
end
end
/* Agregado para que deje entrar a los clientes que tienen otro producto */
if (@cliente is null)
begin
set @cliente = (select top 1 cliente
from usuarios_productos
where usuarios_productos.user_id = @p_id_usuario
and usuarios_productos.activo = 1 )
if (@cliente is not null)
begin
select '0' as error,
null as usuario_limite_consumo,
@cliente as client_id,
null as nombre_cliente,
null as fecha_desde,
null as fecha_hasta,
null as tipo_paquete,
'99' as id_producto,
null as cliente_bloquear_consumo,
null as cliente_limite_consumo,
null as usuario_consumido,
null as cliente_consumido
set @fin = 'S'
end
end
/* fin del agregado */
if (@fin = 'N')
begin
if (@cliente is null or @estado != 'A' or @estado_usuario != 'A')
begin
-- ese usuario no tiene el producto activo
select '99' as error,
null as usuario_limite_consumo,
@cliente as client_id,
null as nombre_cliente,
null as fecha_desde,
null as fecha_hasta,
null as tipo_paquete,
null as id_producto,
null as cliente_bloquear_consumo,
null as cliente_limite_consumo,
null as usuario_consumido,
null as cliente_consumido
end
else
begin
select @tipo_paquete = clientes_productos.tipo_paquete,
@fecha_desde = clientes_productos.fecha_desde,
@fecha_hasta = clientes_productos.fecha_hasta
from clientes_productos
where cliente = @cliente
and id_producto = @id_producto
if (@tipo_paquete != 'P' or @tipo_paquete is null)
begin
set @fecha_hasta = GETDATE()
set @dias = CONVERT(int, DAY(getdate()))
set @dias = @dias - 1
set @fecha_desde = dateadd(day,@dias*(-1),@fecha_hasta)
end
select top 1 '0' as error,
up.limite_consumo as usuario_limite_consumo,
@cliente as client_id,
clientes.nombre_cliente as nombre_cliente,
@fecha_desde as fecha_desde,
@fecha_hasta as fecha_hasta,
cp.tipo_paquete,
up.id_producto,
cp.bloquear_consumo cliente_bloquear_consumo,
cp.limite_consumo cliente_limite_consumo,
(select count(subquery.resultado) as consultas
from (
select distinct nombre_persona,
cuit_consultado,
(CONVERT(VARCHAR(10),usuarios_consumos.created, 103)) as resultado,
user_id
from usuarios_consumos
inner join padrones on padrones.identificacion = cuit_consultado
and padrones.habilitado = '1'
where id_producto = @id_producto
and usuarios_consumos.user_id = @p_id_usuario
and convert(date,usuarios_consumos.created) between @fecha_desde and @fecha_hasta)
subquery)
as usuario_consumido,
(select count(subquery.resultado) as consultas
from (
select distinct nombre_persona,
cuit_consultado,
(CONVERT(VARCHAR(10),usuarios_consumos.created, 103)) as resultado,
user_id
from usuarios_consumos
inner join padrones on padrones.identificacion = cuit_consultado
and padrones.habilitado = '1'
where id_producto = @id_producto
and usuarios_consumos.user_id in(select distinct user_id from usuarios_productos where cliente = @cliente)
and convert(date,usuarios_consumos.created) between @fecha_desde and @fecha_hasta)
subquery)
as cliente_consumido
from usuarios_productos up
left join clientes_productos cp
on cp.cliente = @cliente
and cp.id_producto = @id_producto
and cp.activo = 1
left join clientes
on clientes.cliente = @cliente
where up.user_id = @p_id_usuario
and up.id_producto = @id_producto
and up.activo = 1
end
end
END
GO
Depends On
5Used By
No items found