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 =40
select * from productos where producto=40
*/
CREATE OR ALTER PROCEDURE dbo.API_consumos_10022022
AS
BEGIN
SET NOCOUNT ON;
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 @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 = 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
DECLARE C_api_consumo CURSOR FOR
/* select user_id,producto from apikey where producto is not null*/
select distinct apikey.user_id,apikey.producto,
/*apikey.api_key, */
usuarios_productos.limite_consumo,usuarios_productos.bloquear_consumo 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)
order by usuarios_productos.limite_consumo desc
-- where activo = 1
OPEN C_api_consumo
FETCH NEXT FROM C_api_consumo INTO @pUserKey,@pProdKey,@plimiteConsumo,@pbloquear
WHILE @@fetch_status = 0
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
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())
update apikey set consumo_acumulado = @pConsumoTotal,
consumo_anual=@pConsumoAnual,
consumo_mes=@pConsumoMensual,
consumo_dia=@pConsumoDiario,
topeanual=@plimiteConsumo,
bloquea=@pbloquear
where user_id= @pUserKey and producto=@pProdKey
FETCH NEXT FROM C_api_consumo INTO @pUserKey,@pProdKey,@plimiteConsumo,@pbloquear
END
CLOSE C_api_consumo
DEALLOCATE C_api_consumo
END
GO
GO
/*
exec api_consumos
select * from apikey where producto =40
select * from productos where producto=40
*/
CREATE OR ALTER PROCEDURE dbo.API_consumos_10022022
AS
BEGIN
SET NOCOUNT ON;
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 @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 = 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
DECLARE C_api_consumo CURSOR FOR
/* select user_id,producto from apikey where producto is not null*/
select distinct apikey.user_id,apikey.producto,
/*apikey.api_key, */
usuarios_productos.limite_consumo,usuarios_productos.bloquear_consumo 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)
order by usuarios_productos.limite_consumo desc
-- where activo = 1
OPEN C_api_consumo
FETCH NEXT FROM C_api_consumo INTO @pUserKey,@pProdKey,@plimiteConsumo,@pbloquear
WHILE @@fetch_status = 0
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
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())
update apikey set consumo_acumulado = @pConsumoTotal,
consumo_anual=@pConsumoAnual,
consumo_mes=@pConsumoMensual,
consumo_dia=@pConsumoDiario,
topeanual=@plimiteConsumo,
bloquea=@pbloquear
where user_id= @pUserKey and producto=@pProdKey
FETCH NEXT FROM C_api_consumo INTO @pUserKey,@pProdKey,@plimiteConsumo,@pbloquear
END
CLOSE C_api_consumo
DEALLOCATE C_api_consumo
END
GO
Used By
No items found