dbo.backend_obtener_total_consumos

Description

Properties

Name Value
ANSI Nulls ON

True

Quoted Identifier ON

True

Encrypted

False

Execute As
Assembly

Parameters

3
Name Data Type Length Description
@id_cliente int 4
@user_id int 4
@id_producto int 4

SQL Script

Copy
SET QUOTED_IDENTIFIER, ANSI_NULLS ON
GO

--exec backend_obtener_total_consumos 8558396, 0, 16
 
CREATE OR ALTER PROCEDURE dbo.backend_obtener_total_consumos
@id_cliente int,
@user_id int, 
@id_producto int
AS

BEGIN
    SET NOCOUNT ON;
 declare @tipo_paquete char(1)
 declare @fecha_desde date
 declare @fecha_hasta date
 declare @consumos int 
 declare @dias int
 
 select @tipo_paquete = clientes_productos.tipo_paquete, 
        @fecha_desde  = clientes_productos.fecha_desde, 
     @fecha_hasta  = clientes_productos.fecha_hasta  
     from clientes_productos

  where cliente = @id_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 

if (@id_producto = 10) 
begin
  /* Para Inquiro IV, se ven las contrapartes con gestion entre esas fechas - no se toma en cuanta el usuario */
  select count(*) as consultas
   from ln_contrapartes 
         inner join ln_gestiones on ln_gestiones.contraparte = ln_contrapartes.contraparte 
         where ln_contrapartes.cliente = @id_cliente 
           and ln_contrapartes.servicio_contratado = @id_producto
           and ln_gestiones.desde between @fecha_desde and @fecha_hasta
  return  
end 


if (@id_producto = 16) 
begin
 if (@user_id = 0)
 begin 
  if (exists (select * from clientes_union where cliente_union = @id_cliente))
  begin 
   select count(*) as consultas from  (select distinct nombre_persona,
   monitoreos.cuit as cuit_consultado,
   convert(date, monitoreos.fecha_desde) as fecha_oculta,
   (CONVERT(VARCHAR(10),monitoreos.fecha_desde, 103)) as fecha, 
   productos.nombre_producto,
   username
   from monitoreos 
            inner join padrones on padrones.identificacion = cuit
          and padrones.habilitado = '1'
       --and padrones.identificador = 'CUIT'
       left join productos on productos.producto =  @id_producto
    left join users on users.user_id = monitoreos.user_id
    left join clientes on clientes.cliente =  @id_cliente 
   where monitoreos.cliente
        in (select distinct cliente from clientes_union where cliente_union = @id_cliente)
   and monitoreos.visible = 1
   and exists (select * from clientes_productos where cliente = monitoreos.cliente and id_producto =  @id_producto)
   and (fecha_vigencia_mantenimiento is null or fecha_vigencia_mantenimiento >  @fecha_desde)) sql
  end 
  else
  begin
   select count(*) as consultas from  (select distinct nombre_persona,
   monitoreos.cuit as cuit_consultado,
   convert(date, monitoreos.fecha_vigencia_mantenimiento) as fecha_oculta,
   (CONVERT(VARCHAR(10),monitoreos.fecha_vigencia_mantenimiento, 103)) as fecha, 
   productos.nombre_producto,
   username
   from monitoreos 
            inner join padrones on padrones.identificacion = cuit
          and padrones.habilitado = '1'
       --and padrones.identificador = 'CUIT'
       left join productos on productos.producto =  @id_producto
    left join users on users.user_id = monitoreos.user_id
    left join clientes on clientes.cliente =  @id_cliente 
   where monitoreos.cliente =  @id_cliente
   and monitoreos.visible = 1
   and exists (select * from clientes_productos where cliente = monitoreos.cliente and id_producto =  @id_producto)
   and (fecha_vigencia_mantenimiento is null or fecha_vigencia_mantenimiento >  @fecha_desde)) sql 
  end 
 end 
 else 
 begin
   select count(*) as consultas from (select distinct nombre_persona,
   monitoreos.cuit as cuit_consultado,
   convert(date, monitoreos.fecha_desde) as fecha_oculta,
   (CONVERT(VARCHAR(10),monitoreos.fecha_desde, 103)) as fecha, 
   productos.nombre_producto,
   username
   from monitoreos 
            inner join padrones on padrones.identificacion = cuit
          and padrones.habilitado = '1'
       --and padrones.identificador = 'CUIT'
       left join productos on productos.producto =  @id_producto
    left join users on users.user_id = monitoreos.user_id
    left join clientes on clientes.cliente =  @id_cliente 
   where monitoreos.user_id = @user_id
   and monitoreos.visible = 1
   and exists (select * from clientes_productos where cliente = monitoreos.cliente and id_producto =  @id_producto)
   and (fecha_vigencia_mantenimiento is null or fecha_vigencia_mantenimiento >  @fecha_desde)) sql 
 end 
end
else 
begin
 if (@user_id = 0)
  begin
   
   select count(cuit_consultado) as consultas
   from usuarios_consumos 
   where usuarios_consumos.id_producto = @id_producto
   and (usuarios_consumos.user_id in(select distinct user_id from usuarios_productos where cliente = @id_cliente) 
       or usuarios_consumos.user_id 
        in (select distinct user_id from usuarios_productos 
         where cliente 
            in (select distinct cliente from clientes_union where cliente_union = @id_cliente)))
   and convert(date,usuarios_consumos.created) between @fecha_desde and @fecha_hasta 
   /*
    AGB 11/11/2021 hay consumos como dni y los join los pierden
    select count(subquery.resultado) as consultas
    from (
    /*
    select distinct --nombre_persona,
               cuit_consultado,
               --(CONVERT(VARCHAR(10),usuarios_consumos.created, 103)) as resultado,
      (CONVERT(date,usuarios_consumos.created)) as resultado,
       user_id
    from usuarios_consumos 
    --left join padrones on padrones.identificacion = cuit_consultado 
       --and padrones.habilitado = '1'
       --and padrones.identificador = 'CUIT'
   
    where id_producto = @id_producto
    and usuarios_consumos.user_id in(select distinct user_id from usuarios_productos where cliente = @id_cliente) 
    and convert(date,usuarios_consumos.created) between @fecha_desde and @fecha_hasta
    */

    select distinct nombre_persona,
    cuit_consultado,
    convert(date, usuarios_consumos.created) as resultado,
    (CONVERT(VARCHAR(10),usuarios_consumos.created, 103)) as fecha, 
    productos.nombre_producto,
    clientes.nombre_cliente as username
    from usuarios_consumos 
    left join padrones on padrones.identificacion = cuit_consultado 
           and padrones.habilitado = '1'
       --and padrones.identificador = 'CUIT'
     left join productos on productos.producto = usuarios_consumos.id_producto
     left join users on users.user_id = usuarios_consumos.user_id
     left join usuarios_productos on usuarios_productos.user_id = usuarios_consumos.user_id 
     left join clientes on clientes.cliente = usuarios_productos.cliente 
    where usuarios_consumos.id_producto = @id_producto
    and (usuarios_consumos.user_id in(select distinct user_id from usuarios_productos where cliente = @id_cliente) 
        or usuarios_consumos.user_id 
         in (select distinct user_id from usuarios_productos 
         where cliente 
           in (select distinct cliente from clientes_union where cliente_union = @id_cliente)))
    and convert(date,usuarios_consumos.created) between @fecha_desde and @fecha_hasta 
    )
    subquery
    */

      
  end 
 else 
  begin
   select count(subquery.resultado) as consultas
   from (
       select distinct nombre_persona,
              cuit_consultado,
              (CONVERT(VARCHAR(10),usuarios_consumos.created, 103)) as fecha,
        (CONVERT(date,usuarios_consumos.created)) as resultado,
        user_id
    from usuarios_consumos 
  
    left join padrones on padrones.identificacion = cuit_consultado 
        and padrones.habilitado = '1'
        --and padrones.identificador = 'CUIT'
   
    where id_producto = @id_producto
    and usuarios_consumos.user_id = @user_id 
    and convert(date,usuarios_consumos.created) between @fecha_desde and @fecha_hasta)
    subquery
  end 
end
  
END

GO

Used By

No items found