dbo.panel_control_api

Description

Properties

Name Value
ANSI Nulls ON

True

Quoted Identifier ON

True

Encrypted

False

Execute As
Assembly

Parameters

1
Name Data Type Length Description
@p_cliente int 4

SQL Script

Copy
SET QUOTED_IDENTIFIER, ANSI_NULLS ON
GO
/*
exec [panel_control_api]  2254875
*/

CREATE OR ALTER PROCEDURE dbo.panel_control_api  
@p_cliente int = null 

AS
BEGIN
    SET NOCOUNT ON;
 

-- select * from productos where grupo_informes='API' and estado_producto='A'

  select distinct 
  case tipo_api 
  when 'C' then 'CLIENTES' 
  when 'I' then 'INTERNAS'
  when 'P' then 'PROVEEDORES'
  end as tipo_de_api, 
  case tipo_contrato
  when 'C' then 'X CONSUMO' 
  when 'P' then 'PREPAGO'
  end as tipo_de_contrato, 
  apikey.precio_unitario, 
  apikey.moneda, 
  users.user_id,  lower(users.username) as username, lower(users.email) as email, users.first_name,users.last_name,
  apikey.api_key,
  usuarios_productos.id_producto, 
  productos.nombre_producto, 
  productos.sigla,
  usuarios_productos.limite_consumo, 
  --iif(apikey.activo=1,'ACTIVO','INACTIVO') AS estado_token,

  iif(apikey.activo=1,'ACTIVO','INACTIVO') as estado_token,
  iif(ISNULL(apikey.vigencia, GETDATE()+1) < GETDATE(),'VENCIDO',iif(apikey.activo=1,'ACTIVO','INACTIVO')) as estado_apikey,
  
  iif(apikey.bloquea=1,'SI','NO') AS bloquea_token,
  estado_producto = case usuarios_productos.activo
  when '0' then 'INACTIVO' 
  when '1' then 'ACTIVO' 
  else '' 
  end,
  isnull(apikey.topediario,0) as tope_diario,
  apikey.consumo_dia as consumo_diario,
  isnull(apikey.topemensual,0) as tope_mensual,
  apikey.consumo_mes as consumo_mensual,
  isnull(apikey.topeanual,0) as tope_anual,
  apikey.consumo_anual as consumo_anual,
  iif(apikey.bloquea=1,'SI','NO') as tope_usuario,
  apikey.consumo_acumulado as tope_final,
  convert(varchar(10),apikey.vigencia,103)  as vigencia,
  convert(date,apikey.vigencia) as fecha_vigencia,
  convert(date,apikey.vigencia_desde) as fecha_alta,

  apikey.id_api_key,
  upper(clientes.nombre_cliente) as nombre_cliente,
  clientes.cliente,users.user_id,
  apikey.ip as rango_ip, 

  cm.consumo_mes as consumo_mes_anterior, 
  convert(varchar(7),cm.mes) as mes_anterior,

  cm2.consumo_mes as consumo_mes_anterior2, 
  convert(varchar(7),cm2.mes) as mes_anterior2,

  cm3.consumo_mes as consumo_mes_anterior3, 
  convert(varchar(7),cm3.mes) as mes_anterior3,

  cm4.consumo_mes as consumo_mes_anterior4, 
  convert(varchar(7),cm4.mes) as mes_anterior4,

  cm5.consumo_mes as consumo_mes_anterior5, 
  convert(varchar(7),cm5.mes) as mes_anterior5,

  cm6.consumo_mes as consumo_mes_anterior6, 
  convert(varchar(7),cm6.mes) as mes_anterior6,

  cm7.consumo_mes as consumo_mes_anterior7, 
  convert(varchar(7),cm7.mes) as mes_anterior7,

  cm8.consumo_mes as consumo_mes_anterior8, 
  convert(varchar(7),cm8.mes) as mes_anterior8,

  cm9.consumo_mes as consumo_mes_anterior9, 
  convert(varchar(7),cm9.mes) as mes_anterior9,

  cm10.consumo_mes as consumo_mes_anterior10, 
  convert(varchar(7),cm10.mes) as mes_anterior10,

  cm11.consumo_mes as consumo_mes_anterior11, 
  convert(varchar(7),cm11.mes) as mes_anterior11,

  cm12.consumo_mes as consumo_mes_anterior12, 
  convert(varchar(7),cm12.mes) as mes_anterior12,
   
  productos.url as url

  from usuarios_productos inner join users on users.user_id = usuarios_productos.user_id
  inner join productos on (productos.producto = usuarios_productos.id_producto and productos.grupo_informes='API' and productos.estado_producto='A')
  inner join apikey on (usuarios_productos.user_id = apikey.user_id and usuarios_productos.id_producto = apikey.producto) 
  inner join clientes on usuarios_productos.cliente=clientes.cliente
  inner join clientes_productos on (clientes_productos.cliente=clientes.cliente and clientes_productos.activo=1)

  left join apikey_consumo_mensual cm on (cm.id_api_key = apikey.id_api_key and cm.mes = EOMONTH ( GETDATE(), -1 ) /*ultimo dia del mes anterior*/)
  left join apikey_consumo_mensual cm2 on (cm2.id_api_key = apikey.id_api_key and cm2.mes = EOMONTH ( GETDATE(), -2 ) /*ultimo dia del mes anterior*/)
  left join apikey_consumo_mensual cm3 on (cm3.id_api_key = apikey.id_api_key and cm3.mes = EOMONTH ( GETDATE(), -3 ) /*ultimo dia del mes anterior*/)
  left join apikey_consumo_mensual cm4 on (cm4.id_api_key = apikey.id_api_key and cm4.mes = EOMONTH ( GETDATE(), -4 ) /*ultimo dia del mes anterior*/)
  left join apikey_consumo_mensual cm5 on (cm5.id_api_key = apikey.id_api_key and cm5.mes = EOMONTH ( GETDATE(), -5 ) /*ultimo dia del mes anterior*/)
  left join apikey_consumo_mensual cm6 on (cm6.id_api_key = apikey.id_api_key and cm6.mes = EOMONTH ( GETDATE(), -6 ) /*ultimo dia del mes anterior*/)
  left join apikey_consumo_mensual cm7 on (cm7.id_api_key = apikey.id_api_key and cm7.mes = EOMONTH ( GETDATE(), -7 ) /*ultimo dia del mes anterior*/)
  left join apikey_consumo_mensual cm8 on (cm8.id_api_key = apikey.id_api_key and cm8.mes = EOMONTH ( GETDATE(), -8 ) /*ultimo dia del mes anterior*/)
  left join apikey_consumo_mensual cm9 on (cm9.id_api_key = apikey.id_api_key and cm9.mes = EOMONTH ( GETDATE(), -9 ) /*ultimo dia del mes anterior*/)
  left join apikey_consumo_mensual cm10 on (cm10.id_api_key = apikey.id_api_key and cm10.mes = EOMONTH ( GETDATE(), -10 ) /*ultimo dia del mes anterior*/)
  left join apikey_consumo_mensual cm11 on (cm11.id_api_key = apikey.id_api_key and cm11.mes = EOMONTH ( GETDATE(), -11 ) /*ultimo dia del mes anterior*/)
  left join apikey_consumo_mensual cm12 on (cm12.id_api_key = apikey.id_api_key and cm12.mes = EOMONTH ( GETDATE(), -12 ) /*ultimo dia del mes anterior*/)
 
  where (@p_cliente is null or apikey.client_id = @p_cliente)

   order by nombre_cliente,username,usuarios_productos.id_producto
   
end

GO

Used By

No items found