Description
Properties
| Name | Value |
|---|---|
| ANSI Nulls ON | True |
| Quoted Identifier ON | True |
| Encrypted | False |
| Execute As | |
| Assembly |
SQL Script
Copy
SET QUOTED_IDENTIFIER, ANSI_NULLS ON
GO
/*
exec api_consumos
select * from apikey where producto >= 106
select * from productos where producto=40
select @consumo = count(id_transaccion)
from usuarios_consumos
INNER JOIN dbo.DelimitedSplit8K(@pProdKey, ',') Segmentado on usuarios_consumos.id_producto = Segmentado.Item
inner join resultados_api on usuarios_consumos.id_transaccion = resultados_api.transaction_id
left join productos on productos.producto = usuarios_consumos.id_producto
where convert(date,usuarios_consumos.created) between @ant_firstday and @ant_lastday --> lo agregamos para que la consulta sea más rápida por los índices
and convert(date,usuarios_consumos.created2) between @ant_firstday and @ant_lastday --> exacto por segundos
and usuarios_consumos.user_id in (@pUserKey)
and (ip not in ('186.189.232.93') or ip like '192%')
and resultados_api.codigo_resultado != '306'
and ARREGLO_DATOS_POR_FALLAS is null
*/
CREATE OR ALTER PROCEDURE dbo.API_consumos
AS
BEGIN
SET NOCOUNT ON;
declare @ptipo_api char(1) = ''
declare @pUserKey int = 0
declare @pProdKey int = 0
declare @pConsumoTotal int = 0
declare @pConsumoAnual int = 0
declare @pConsumoMensual int = 0
declare @pConsumoDiario int = 0
declare @plimiteConsumo int = 0
declare @pbloquear bit = 0
declare @vigencia_desde datetime
declare @firstMonthday datetime
declare @lastMonthday datetime
declare @StartOfYear datetime
declare @EndOfYear datetime
--set @firstday = DATEADD(mm, DATEDIFF(mm, 0, GETDATE()), 0)
set @firstMonthday = DATEADD(DAY, 1, EOMONTH(getdate(), -1))
--set @lastday = select DATEADD (dd, -1, DATEADD(mm, DATEDIFF(mm, 0, GETDATE()), 0))
set @lastMonthday = EOMONTH(getdate())
SET @lastMonthday = CONVERT(DATETIME, CONVERT(varchar(11),@lastMonthday, 111 ) + ' 23:59:59', 111)
set @StartOfYear = DATEADD(yy, DATEDIFF(yy, 0, GETDATE()), 0)
set @EndOfYear = DATEADD(ms, -3, DATEADD(yy, DATEDIFF(yy, 0, GETDATE()) + 1, 0))
-- select @firstMonthday as FDAY,@lastMonthday as LDAY,@StartOfYear starty,@EndOfYear endy
-- Si es el primer dia del mes, guardo en la tabla apikey_consumo_mensual (si todavia no lo guardé)
-- Acá guardo el primer y último día del mes anterior
declare @hoy date = getdate()
/* PROBANDO */
--set @hoy = '2022-02-01'
/**/
declare @ant_lastday date = null
declare @ant_firstday date = null
if (convert(varchar,DAY(@hoy)) = '1')
begin
set @ant_lastday = DATEADD(dd, -1, @hoy)
set @ant_firstday = DATEADD(mm, -1, @hoy)
end
----
DECLARE C_api_consumo CURSOR FOR
/* select user_id,producto from apikey where producto is not null*/
select distinct apikey.tipo_api, apikey.user_id,apikey.producto,
/*apikey.api_key, */
usuarios_productos.limite_consumo,usuarios_productos.bloquear_consumo, vigencia_desde
from apikey
inner join usuarios_productos on (apikey.user_id=usuarios_productos.user_id and apikey.producto=usuarios_productos.id_producto)
left join clientes_productos on (usuarios_productos.cliente = clientes_productos.cliente and clientes_productos.id_producto=usuarios_productos.id_producto and usuarios_productos.id_seccion=0)
where apikey.activo = 1
/* PROBANDO */
--and id_api_key = 222
/**/
order by usuarios_productos.limite_consumo desc
OPEN C_api_consumo
FETCH NEXT FROM C_api_consumo INTO @ptipo_api,@pUserKey,@pProdKey,@plimiteConsumo,@pbloquear,@vigencia_desde
WHILE @@fetch_status = 0
BEGIN
if (@ptipo_api!='P')
begin
/*
select @pConsumoTotal = count(*) from usuarios_consumos where user_id= @pUserKey and id_producto=@pProdKey
--select @pConsumoAnual = count(*) from usuarios_consumos where user_id= @pUserKey and id_producto=@pProdKey and convert(date,created) between @StartOfYear and @EndOfYear
--10/02/2022: no se guarda desde el 1 de enero, sino, desde la vigencia_desde del registro
--select @pConsumoAnual = count(*) from usuarios_consumos where user_id= @pUserKey and id_producto=@pProdKey <and convert(date,created) between convert(date,@vigencia_desde) and convert(date,GETDATE())
--
select @pConsumoAnual = count(*) from usuarios_consumos where user_id= @pUserKey and id_producto=@pProdKey
--
select @pConsumoMensual = count(*) from usuarios_consumos where user_id= @pUserKey and id_producto=@pProdKey and convert(date,created) between @firstMonthday and @lastMonthday
select @pConsumoDiario = count(*) from usuarios_consumos where user_id= @pUserKey and id_producto=@pProdKey and convert(date,created) =convert(date,getdate())
*/
/* 03/02/2025: Se toman todas las mismas condiciones que en [Reporte_consumos_api_] */
select @pConsumoTotal = count(*) from usuarios_consumos
left join resultados_api on usuarios_consumos.id_transaccion = resultados_api.transaction_id
where usuarios_consumos.user_id = @pUserKey and id_producto = @pProdKey
and (ip not in ('186.189.232.93') and ip not like '192%')
and isnull(resultados_api.codigo_resultado,'0') !='306'
and ARREGLO_DATOS_POR_FALLAS is null
-- desde la vigencia_desde del registro
select @pConsumoAnual = count(*) from usuarios_consumos
left join resultados_api on usuarios_consumos.id_transaccion = resultados_api.transaction_id
where usuarios_consumos.user_id = @pUserKey and id_producto = @pProdKey
and convert(date,usuarios_consumos.created) between convert(date,@vigencia_desde) and convert(date,GETDATE())
and convert(date,usuarios_consumos.created2) between convert(date,@vigencia_desde) and convert(date,GETDATE())
and (ip not in ('186.189.232.93') and ip not like '192%')
and isnull(resultados_api.codigo_resultado,'0') !='306'
and ARREGLO_DATOS_POR_FALLAS is null
select @pConsumoMensual = count(*) from usuarios_consumos
left join resultados_api on usuarios_consumos.id_transaccion = resultados_api.transaction_id
where usuarios_consumos.user_id = @pUserKey and id_producto = @pProdKey
and convert(date,usuarios_consumos.created) between @firstMonthday and @lastMonthday
and convert(date,usuarios_consumos.created2) between @firstMonthday and @lastMonthday
and (ip not in ('186.189.232.93') and ip not like '192%')
and isnull(resultados_api.codigo_resultado,'0') !='306'
and ARREGLO_DATOS_POR_FALLAS is null
select @pConsumoDiario = count(*) from usuarios_consumos
left join resultados_api on usuarios_consumos.id_transaccion = resultados_api.transaction_id
where usuarios_consumos.user_id = @pUserKey and id_producto = @pProdKey
and convert(date,usuarios_consumos.created) = convert(date,getdate())
and convert(date,usuarios_consumos.created2) = convert(date,getdate())
and (ip not in ('186.189.232.93') and ip not like '192%')
and isnull(resultados_api.codigo_resultado,'0') !='306'
and ARREGLO_DATOS_POR_FALLAS is null
end
else
begin
if (@pProdKey = 106) -- API A PROVEEDOR - WORLDSYS
begin
select @pConsumoTotal = count(*) FROM (SELECT distinct documentobuscado, NombreBuscado, convert(date,created) fecha
from LN_Fidecheck_ws where StatusCode = 200) AS internalQuery
select @pConsumoAnual = count(*) from (SELECT distinct documentobuscado, NombreBuscado, convert(date,created) fecha
from LN_Fidecheck_ws where StatusCode = 200 and convert(date,created) between @StartOfYear and convert(date,GETDATE())) AS internalQuery
select @pConsumoMensual = count(*) from (SELECT distinct documentobuscado, NombreBuscado, convert(date,created) fecha
from LN_Fidecheck_ws where StatusCode = 200 and convert(date,created) between @firstMonthday and @lastMonthday) AS internalQuery
select @pConsumoDiario = count(*) from (SELECT distinct documentobuscado, NombreBuscado, convert(date,created) fecha
from LN_Fidecheck_ws where StatusCode = 200 and convert(date,created) = convert(date,getdate())) AS internalQuery
end
if (@pProdKey = 107) -- API A PROVEEDOR - RENAPER
begin
select @pConsumoTotal = count(*) from RENAPER_INFO where codigoError = 99
select @pConsumoAnual = count(*) from RENAPER_INFO where codigoError = 99 and convert(date,created) between @StartOfYear and convert(date,GETDATE())
select @pConsumoMensual = count(*) from RENAPER_INFO where codigoError = 99 and convert(date,created) between @firstMonthday and @lastMonthday
select @pConsumoDiario = count(*) from RENAPER_INFO where codigoError = 99 and convert(date,created) = convert(date,getdate())
end
if (@pProdKey = 108) -- API A PROVEEDOR - RENAPER FACE MATCH
begin
select @pConsumoTotal = count(*) from RENAPER_FACE_INFO where codigo_http = 200
select @pConsumoAnual = count(*) from RENAPER_FACE_INFO where codigo_http = 200 and convert(date,created) between @StartOfYear and convert(date,GETDATE())
select @pConsumoMensual = count(*) from RENAPER_FACE_INFO where codigo_http = 200 and convert(date,created) between @firstMonthday and @lastMonthday
select @pConsumoDiario = count(*) from RENAPER_FACE_INFO where codigo_http = 200 and convert(date,created) = convert(date,getdate())
end
--select @pUserKey as usuario, @pProdKey as producto, @pConsumoTotal total, @pConsumoAnual anual, @pConsumoMensual mensual, @pConsumoDiario diario, @StartOfYear anio, @firstMonthday mes, @lastMonthday mes2
end
update apikey set consumo_acumulado = @pConsumoTotal,
consumo_anual=@pConsumoAnual,
consumo_mes=@pConsumoMensual,
consumo_dia=@pConsumoDiario,
bloquea=@pbloquear
where user_id = @pUserKey and producto = @pProdKey
and activo = 1
/* 10/02/2022 :
Si estamos a principio de mes, tengo que guardar el congelado del mes anterior (si todavía no lo guardé)
*/
IF (@ant_lastday is not null)
begin
declare @id int
declare @consumo bigint
DECLARE C_congelado CURSOR FOR
select distinct id_api_key from apikey where user_id = @pUserKey and producto = @pProdKey and activo = 1
OPEN C_congelado
FETCH NEXT FROM C_congelado INTO @id
WHILE @@fetch_status = 0
BEGIN
if not exists (select * from [apikey_consumo_mensual] where id_api_key = @id and mes = @ant_lastday)
begin
if (@ptipo_api!='P')
begin
/*
select @consumo = count(*) from usuarios_consumos where user_id= @pUserKey and id_producto=@pProdKey
and convert(date,created) between @ant_firstday and @ant_lastday
*/
/* 03/02/2025: Se toman todas las mismas condiciones que en [Reporte_consumos_api_] */
select @consumo = count(*) from usuarios_consumos
left join resultados_api on usuarios_consumos.id_transaccion = resultados_api.transaction_id
where usuarios_consumos.user_id = @pUserKey and id_producto = @pProdKey
and convert(date,usuarios_consumos.created) between @ant_firstday and @ant_lastday
and convert(date,usuarios_consumos.created2) between @ant_firstday and @ant_lastday
and (ip not in ('186.189.232.93') and ip not like '192%')
and isnull(resultados_api.codigo_resultado,'0') !='306'
and ARREGLO_DATOS_POR_FALLAS is null
insert into apikey_consumo_mensual (id_api_key, mes, consumo_mes)
values (@id, @ant_lastday, @consumo)
end
else
begin
if (@pProdKey = 106) -- API A PROVEEDOR - WORLDSYS
begin
select @consumo = count(*) FROM (SELECT distinct documentobuscado, NombreBuscado, convert(date,created) fecha
from LN_Fidecheck_ws where StatusCode = 200 and convert(date,created) between @ant_firstday and @ant_lastday) AS internalQuery
end
if (@pProdKey = 107) -- API A PROVEEDOR - RENAPER
begin
select @consumo = count(*) from RENAPER_INFO where codigoError = 99 and convert(date,created) between @ant_firstday and @ant_lastday
end
if (@pProdKey = 108) -- API A PROVEEDOR - RENAPER FACE MATCH
begin
select @consumo = count(*) from RENAPER_FACE_INFO where codigo_http = 200 and convert(date,created) between @ant_firstday and @ant_lastday
end
insert into apikey_consumo_mensual (id_api_key, mes, consumo_mes)
values (@id, @ant_lastday, @consumo)
end
--select @id id, @ant_lastday lastday, @consumo consumo
end
FETCH NEXT FROM C_congelado INTO @id
END
CLOSE C_congelado
DEALLOCATE C_congelado
end
FETCH NEXT FROM C_api_consumo INTO @ptipo_api,@pUserKey,@pProdKey,@plimiteConsumo,@pbloquear,@vigencia_desde
END
CLOSE C_api_consumo
DEALLOCATE C_api_consumo
END
/*
update apikey set vigencia_desde = '2022-01-01 00:00:000' WHERE activo = 1
select * from apikey where id_api_key = 19
select * from apikey where user_id = 399154624 and producto = 27
select * from [apikey_consumo_mensual]
*/
GO
GO
/*
exec api_consumos
select * from apikey where producto >= 106
select * from productos where producto=40
select @consumo = count(id_transaccion)
from usuarios_consumos
INNER JOIN dbo.DelimitedSplit8K(@pProdKey, ',') Segmentado on usuarios_consumos.id_producto = Segmentado.Item
inner join resultados_api on usuarios_consumos.id_transaccion = resultados_api.transaction_id
left join productos on productos.producto = usuarios_consumos.id_producto
where convert(date,usuarios_consumos.created) between @ant_firstday and @ant_lastday --> lo agregamos para que la consulta sea más rápida por los índices
and convert(date,usuarios_consumos.created2) between @ant_firstday and @ant_lastday --> exacto por segundos
and usuarios_consumos.user_id in (@pUserKey)
and (ip not in ('186.189.232.93') or ip like '192%')
and resultados_api.codigo_resultado != '306'
and ARREGLO_DATOS_POR_FALLAS is null
*/
CREATE OR ALTER PROCEDURE dbo.API_consumos
AS
BEGIN
SET NOCOUNT ON;
declare @ptipo_api char(1) = ''
declare @pUserKey int = 0
declare @pProdKey int = 0
declare @pConsumoTotal int = 0
declare @pConsumoAnual int = 0
declare @pConsumoMensual int = 0
declare @pConsumoDiario int = 0
declare @plimiteConsumo int = 0
declare @pbloquear bit = 0
declare @vigencia_desde datetime
declare @firstMonthday datetime
declare @lastMonthday datetime
declare @StartOfYear datetime
declare @EndOfYear datetime
--set @firstday = DATEADD(mm, DATEDIFF(mm, 0, GETDATE()), 0)
set @firstMonthday = DATEADD(DAY, 1, EOMONTH(getdate(), -1))
--set @lastday = select DATEADD (dd, -1, DATEADD(mm, DATEDIFF(mm, 0, GETDATE()), 0))
set @lastMonthday = EOMONTH(getdate())
SET @lastMonthday = CONVERT(DATETIME, CONVERT(varchar(11),@lastMonthday, 111 ) + ' 23:59:59', 111)
set @StartOfYear = DATEADD(yy, DATEDIFF(yy, 0, GETDATE()), 0)
set @EndOfYear = DATEADD(ms, -3, DATEADD(yy, DATEDIFF(yy, 0, GETDATE()) + 1, 0))
-- select @firstMonthday as FDAY,@lastMonthday as LDAY,@StartOfYear starty,@EndOfYear endy
-- Si es el primer dia del mes, guardo en la tabla apikey_consumo_mensual (si todavia no lo guardé)
-- Acá guardo el primer y último día del mes anterior
declare @hoy date = getdate()
/* PROBANDO */
--set @hoy = '2022-02-01'
/**/
declare @ant_lastday date = null
declare @ant_firstday date = null
if (convert(varchar,DAY(@hoy)) = '1')
begin
set @ant_lastday = DATEADD(dd, -1, @hoy)
set @ant_firstday = DATEADD(mm, -1, @hoy)
end
----
DECLARE C_api_consumo CURSOR FOR
/* select user_id,producto from apikey where producto is not null*/
select distinct apikey.tipo_api, apikey.user_id,apikey.producto,
/*apikey.api_key, */
usuarios_productos.limite_consumo,usuarios_productos.bloquear_consumo, vigencia_desde
from apikey
inner join usuarios_productos on (apikey.user_id=usuarios_productos.user_id and apikey.producto=usuarios_productos.id_producto)
left join clientes_productos on (usuarios_productos.cliente = clientes_productos.cliente and clientes_productos.id_producto=usuarios_productos.id_producto and usuarios_productos.id_seccion=0)
where apikey.activo = 1
/* PROBANDO */
--and id_api_key = 222
/**/
order by usuarios_productos.limite_consumo desc
OPEN C_api_consumo
FETCH NEXT FROM C_api_consumo INTO @ptipo_api,@pUserKey,@pProdKey,@plimiteConsumo,@pbloquear,@vigencia_desde
WHILE @@fetch_status = 0
BEGIN
if (@ptipo_api!='P')
begin
/*
select @pConsumoTotal = count(*) from usuarios_consumos where user_id= @pUserKey and id_producto=@pProdKey
--select @pConsumoAnual = count(*) from usuarios_consumos where user_id= @pUserKey and id_producto=@pProdKey and convert(date,created) between @StartOfYear and @EndOfYear
--10/02/2022: no se guarda desde el 1 de enero, sino, desde la vigencia_desde del registro
--select @pConsumoAnual = count(*) from usuarios_consumos where user_id= @pUserKey and id_producto=@pProdKey <and convert(date,created) between convert(date,@vigencia_desde) and convert(date,GETDATE())
--
select @pConsumoAnual = count(*) from usuarios_consumos where user_id= @pUserKey and id_producto=@pProdKey
--
select @pConsumoMensual = count(*) from usuarios_consumos where user_id= @pUserKey and id_producto=@pProdKey and convert(date,created) between @firstMonthday and @lastMonthday
select @pConsumoDiario = count(*) from usuarios_consumos where user_id= @pUserKey and id_producto=@pProdKey and convert(date,created) =convert(date,getdate())
*/
/* 03/02/2025: Se toman todas las mismas condiciones que en [Reporte_consumos_api_] */
select @pConsumoTotal = count(*) from usuarios_consumos
left join resultados_api on usuarios_consumos.id_transaccion = resultados_api.transaction_id
where usuarios_consumos.user_id = @pUserKey and id_producto = @pProdKey
and (ip not in ('186.189.232.93') and ip not like '192%')
and isnull(resultados_api.codigo_resultado,'0') !='306'
and ARREGLO_DATOS_POR_FALLAS is null
-- desde la vigencia_desde del registro
select @pConsumoAnual = count(*) from usuarios_consumos
left join resultados_api on usuarios_consumos.id_transaccion = resultados_api.transaction_id
where usuarios_consumos.user_id = @pUserKey and id_producto = @pProdKey
and convert(date,usuarios_consumos.created) between convert(date,@vigencia_desde) and convert(date,GETDATE())
and convert(date,usuarios_consumos.created2) between convert(date,@vigencia_desde) and convert(date,GETDATE())
and (ip not in ('186.189.232.93') and ip not like '192%')
and isnull(resultados_api.codigo_resultado,'0') !='306'
and ARREGLO_DATOS_POR_FALLAS is null
select @pConsumoMensual = count(*) from usuarios_consumos
left join resultados_api on usuarios_consumos.id_transaccion = resultados_api.transaction_id
where usuarios_consumos.user_id = @pUserKey and id_producto = @pProdKey
and convert(date,usuarios_consumos.created) between @firstMonthday and @lastMonthday
and convert(date,usuarios_consumos.created2) between @firstMonthday and @lastMonthday
and (ip not in ('186.189.232.93') and ip not like '192%')
and isnull(resultados_api.codigo_resultado,'0') !='306'
and ARREGLO_DATOS_POR_FALLAS is null
select @pConsumoDiario = count(*) from usuarios_consumos
left join resultados_api on usuarios_consumos.id_transaccion = resultados_api.transaction_id
where usuarios_consumos.user_id = @pUserKey and id_producto = @pProdKey
and convert(date,usuarios_consumos.created) = convert(date,getdate())
and convert(date,usuarios_consumos.created2) = convert(date,getdate())
and (ip not in ('186.189.232.93') and ip not like '192%')
and isnull(resultados_api.codigo_resultado,'0') !='306'
and ARREGLO_DATOS_POR_FALLAS is null
end
else
begin
if (@pProdKey = 106) -- API A PROVEEDOR - WORLDSYS
begin
select @pConsumoTotal = count(*) FROM (SELECT distinct documentobuscado, NombreBuscado, convert(date,created) fecha
from LN_Fidecheck_ws where StatusCode = 200) AS internalQuery
select @pConsumoAnual = count(*) from (SELECT distinct documentobuscado, NombreBuscado, convert(date,created) fecha
from LN_Fidecheck_ws where StatusCode = 200 and convert(date,created) between @StartOfYear and convert(date,GETDATE())) AS internalQuery
select @pConsumoMensual = count(*) from (SELECT distinct documentobuscado, NombreBuscado, convert(date,created) fecha
from LN_Fidecheck_ws where StatusCode = 200 and convert(date,created) between @firstMonthday and @lastMonthday) AS internalQuery
select @pConsumoDiario = count(*) from (SELECT distinct documentobuscado, NombreBuscado, convert(date,created) fecha
from LN_Fidecheck_ws where StatusCode = 200 and convert(date,created) = convert(date,getdate())) AS internalQuery
end
if (@pProdKey = 107) -- API A PROVEEDOR - RENAPER
begin
select @pConsumoTotal = count(*) from RENAPER_INFO where codigoError = 99
select @pConsumoAnual = count(*) from RENAPER_INFO where codigoError = 99 and convert(date,created) between @StartOfYear and convert(date,GETDATE())
select @pConsumoMensual = count(*) from RENAPER_INFO where codigoError = 99 and convert(date,created) between @firstMonthday and @lastMonthday
select @pConsumoDiario = count(*) from RENAPER_INFO where codigoError = 99 and convert(date,created) = convert(date,getdate())
end
if (@pProdKey = 108) -- API A PROVEEDOR - RENAPER FACE MATCH
begin
select @pConsumoTotal = count(*) from RENAPER_FACE_INFO where codigo_http = 200
select @pConsumoAnual = count(*) from RENAPER_FACE_INFO where codigo_http = 200 and convert(date,created) between @StartOfYear and convert(date,GETDATE())
select @pConsumoMensual = count(*) from RENAPER_FACE_INFO where codigo_http = 200 and convert(date,created) between @firstMonthday and @lastMonthday
select @pConsumoDiario = count(*) from RENAPER_FACE_INFO where codigo_http = 200 and convert(date,created) = convert(date,getdate())
end
--select @pUserKey as usuario, @pProdKey as producto, @pConsumoTotal total, @pConsumoAnual anual, @pConsumoMensual mensual, @pConsumoDiario diario, @StartOfYear anio, @firstMonthday mes, @lastMonthday mes2
end
update apikey set consumo_acumulado = @pConsumoTotal,
consumo_anual=@pConsumoAnual,
consumo_mes=@pConsumoMensual,
consumo_dia=@pConsumoDiario,
bloquea=@pbloquear
where user_id = @pUserKey and producto = @pProdKey
and activo = 1
/* 10/02/2022 :
Si estamos a principio de mes, tengo que guardar el congelado del mes anterior (si todavía no lo guardé)
*/
IF (@ant_lastday is not null)
begin
declare @id int
declare @consumo bigint
DECLARE C_congelado CURSOR FOR
select distinct id_api_key from apikey where user_id = @pUserKey and producto = @pProdKey and activo = 1
OPEN C_congelado
FETCH NEXT FROM C_congelado INTO @id
WHILE @@fetch_status = 0
BEGIN
if not exists (select * from [apikey_consumo_mensual] where id_api_key = @id and mes = @ant_lastday)
begin
if (@ptipo_api!='P')
begin
/*
select @consumo = count(*) from usuarios_consumos where user_id= @pUserKey and id_producto=@pProdKey
and convert(date,created) between @ant_firstday and @ant_lastday
*/
/* 03/02/2025: Se toman todas las mismas condiciones que en [Reporte_consumos_api_] */
select @consumo = count(*) from usuarios_consumos
left join resultados_api on usuarios_consumos.id_transaccion = resultados_api.transaction_id
where usuarios_consumos.user_id = @pUserKey and id_producto = @pProdKey
and convert(date,usuarios_consumos.created) between @ant_firstday and @ant_lastday
and convert(date,usuarios_consumos.created2) between @ant_firstday and @ant_lastday
and (ip not in ('186.189.232.93') and ip not like '192%')
and isnull(resultados_api.codigo_resultado,'0') !='306'
and ARREGLO_DATOS_POR_FALLAS is null
insert into apikey_consumo_mensual (id_api_key, mes, consumo_mes)
values (@id, @ant_lastday, @consumo)
end
else
begin
if (@pProdKey = 106) -- API A PROVEEDOR - WORLDSYS
begin
select @consumo = count(*) FROM (SELECT distinct documentobuscado, NombreBuscado, convert(date,created) fecha
from LN_Fidecheck_ws where StatusCode = 200 and convert(date,created) between @ant_firstday and @ant_lastday) AS internalQuery
end
if (@pProdKey = 107) -- API A PROVEEDOR - RENAPER
begin
select @consumo = count(*) from RENAPER_INFO where codigoError = 99 and convert(date,created) between @ant_firstday and @ant_lastday
end
if (@pProdKey = 108) -- API A PROVEEDOR - RENAPER FACE MATCH
begin
select @consumo = count(*) from RENAPER_FACE_INFO where codigo_http = 200 and convert(date,created) between @ant_firstday and @ant_lastday
end
insert into apikey_consumo_mensual (id_api_key, mes, consumo_mes)
values (@id, @ant_lastday, @consumo)
end
--select @id id, @ant_lastday lastday, @consumo consumo
end
FETCH NEXT FROM C_congelado INTO @id
END
CLOSE C_congelado
DEALLOCATE C_congelado
end
FETCH NEXT FROM C_api_consumo INTO @ptipo_api,@pUserKey,@pProdKey,@plimiteConsumo,@pbloquear,@vigencia_desde
END
CLOSE C_api_consumo
DEALLOCATE C_api_consumo
END
/*
update apikey set vigencia_desde = '2022-01-01 00:00:000' WHERE activo = 1
select * from apikey where id_api_key = 19
select * from apikey where user_id = 399154624 and producto = 27
select * from [apikey_consumo_mensual]
*/
GO