dbo.API_consumos_10022022

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

Used By

No items found