dbo.Imperium_Reporte_Bajas_Desafectaciones

Description

Properties

Name Value
ANSI Nulls ON

True

Quoted Identifier ON

True

Encrypted

False

Execute As
Assembly

Parameters

4
Name Data Type Length Description
@desde datetime 8
@hasta datetime 8
@cliente int 4
@contratista int 4

SQL Script

Copy
SET QUOTED_IDENTIFIER, ANSI_NULLS ON
GO
-- =============================================
-- Author: <Author,,Name>
-- Create date: <Create Date,,>
/*

EXEC Imperium_Reporte_Bajas_Desafectaciones '2018-06-01','2018-06-30',7048064

*/


-- Description: <Description,,>
-- =============================================
CREATE OR ALTER PROCEDURE dbo.Imperium_Reporte_Bajas_Desafectaciones 
 -- Add the parameters for the stored procedure here

 @desde           datetime,
 @hasta           datetime,
 @cliente          int,
 @contratista         int = NULL
 
AS
BEGIN
 -- SET NOCOUNT ON added to prevent extra result sets from
 -- interfering with SELECT statements.
 SET NOCOUNT ON;

 if (select DATEPART(hour, @hasta)) = 0
  set @hasta = dateadd(hour,23,@hasta)   
 if (select DATEPART(MINUTE, @hasta)) = 0 
  set @hasta = dateadd(MINUTE,59,@hasta) 
 if (select DATEPART(SECOND, @hasta)) = 0
  set @hasta = dateadd(SECOND,59,@hasta) 

    -- Insert statements for procedure here

 IF (@cliente is not null)

  if (@contratista is null)

   select clientes.nombre_cliente,
   padrones.nombre_persona as CONTRATISTA,padrones.numero as CUIT,

   CASE WHEN led_log.tipo_log = 'B' then 'BAJA' ELSE 'DESAFECTACION' END AS ACCION,
   CASE WHEN led_log.empleado is not null then 'EMPLEADO'
     WHEN led_log.vehiculo is not null then 'VEHICULO'
     ELSE IIF (led_log.contratista <> led_log.contratista_1,'SUBCONTRATISTA','CONTRATISTA') END AS SECCION,

   CASE 
    WHEN led_log.empleado is not null then led_tipos_empleado.nombre_tipo_empleado
    WHEN led_log.vehiculo is not null then led_tipos_vehiculo.nombre_tipo_vehiculo
    ELSE IIF (led_log.contratista <> led_log.contratista_1, tipos_subc.nombre_tipo_contratista, led_tipos_contratista.nombre_tipo_contratista)
   END AS TIPO,


   /*LED_LOG.contratista,*/
   LED_LOG.descripcion_log + 
   CASE
    WHEN led_log.empleado is not null then iif(led_empleados.contratista_1 <> led_empleados.contratista, ' (Subcontratista: ' + padrones_s.nombre_persona + ' - ' + padrones_s.identificador + ' ' + padrones_s.identificacion + ')','')
    WHEN led_log.vehiculo is not null then iif(led_vehiculos.contratista_1 <> led_vehiculos.contratista, ' (Subcontratista: ' + padrones_s.nombre_persona + ' - ' + padrones_s.identificador + ' ' + padrones_s.identificacion + ')','')
    ELSE ''
   END AS DESCRIPCION,

   padrones_e.nombre_persona as EMPLEADO, padrones_e.numero as CUIL,

   CASE
    WHEN led_log.empleado is not null THEN iif(led_empleados.baja_afip is not null, CONVERT(VARCHAR(10), led_empleados.baja_afip, 121) , NULL)
    ELSE NULL
   END AS BAJA_AFIP,

   led_vehiculos.nombre_vehiculo as VEHICULO, led_vehiculos.DOMINIO,
   CASE when led_log.contratista <> led_log.contratista_1
    then padrones_s.nombre_persona else null end as SUBCONTRATISTA, 
   CASE when led_log.contratista <> led_log.contratista_1
    then padrones_s.numero else null end as CUIT_SUBC,
   CONVERT(VARCHAR(16),led_log.horario_log,121) AS FECHA_HORA,
   users.first_name + ' ' + users.last_name AS USUARIO,
   users.username AS EMAIL 
   from led_log 
   inner join clientes on led_log.cliente = clientes.cliente
   inner join led_contratistas on led_log.contratista_1 = led_contratistas.contratista
   inner join led_tipos_contratista on led_contratistas.tipo_contratista = led_tipos_contratista.tipo_contratista
   inner join padrones on led_contratistas.id_padron = padrones.id_padron
   inner join users on led_log.user_id = users.user_id 
   LEFT OUTER JOIN led_empleados on led_log.empleado = led_empleados.empleado
   left outer join led_tipos_empleado on led_empleados.tipo_empleado = led_tipos_empleado.tipo_empleado

   left outer join padrones as padrones_e on led_empleados.id_padron = padrones_e.id_padron
   LEFT OUTER JOIN led_vehiculos on led_log.vehiculo = led_vehiculos.vehiculo
   left outer join led_tipos_vehiculo on led_vehiculos.tipo_vehiculo = led_tipos_vehiculo.tipo_vehiculo
   LEFT OUTER JOIN led_contratistas subc on led_log.contratista = subc.contratista
   left outer join led_tipos_contratista tipos_subc on subc.tipo_contratista = tipos_subc.tipo_contratista
   LEFT OUTER JOIN padrones padrones_s on subc.id_padron = padrones_s.id_padron
   where led_log.cliente = @cliente
   and tipo_log in ('B','D')
   and horario_log between @desde and @hasta 

   /* 27/07/2021: Que posteriormente no estén Reafectados */
   and not exists (select * from led_log b where b.empleado = led_log.empleado and led_log.empleado is not null and b.horario_log > led_log.horario_log and b.tipo_log = 'R')
   and not exists (select * from led_log v where v.vehiculo = led_log.vehiculo and led_log.vehiculo is not null and v.horario_log > led_log.horario_log and v.tipo_log = 'R')

   order by clientes.nombre_cliente, horario_log asc,padrones.nombre_persona asc

  else

   select clientes.nombre_cliente,
   padrones.nombre_persona as CONTRATISTA,padrones.numero as CUIT,

   CASE WHEN led_log.tipo_log = 'B' then 'BAJA' ELSE 'DESAFECTACION' END AS ACCION,
   CASE WHEN led_log.empleado is not null then 'EMPLEADO'
     WHEN led_log.vehiculo is not null then 'VEHICULO'
     ELSE IIF (led_log.contratista <> led_log.contratista_1,'SUBCONTRATISTA','CONTRATISTA') END AS SECCION,

   CASE 
    WHEN led_log.empleado is not null then led_tipos_empleado.nombre_tipo_empleado
    WHEN led_log.vehiculo is not null then led_tipos_vehiculo.nombre_tipo_vehiculo
    ELSE IIF (led_log.contratista <> led_log.contratista_1, tipos_subc.nombre_tipo_contratista, led_tipos_contratista.nombre_tipo_contratista)
   END AS TIPO,


   /*LED_LOG.contratista,*/
   LED_LOG.descripcion_log + 
   CASE
    WHEN led_log.empleado is not null then iif(led_empleados.contratista_1 <> led_empleados.contratista, ' (Subcontratista: ' + padrones_s.nombre_persona + ' - ' + padrones_s.identificador + ' ' + padrones_s.identificacion + ')','')
    WHEN led_log.vehiculo is not null then iif(led_vehiculos.contratista_1 <> led_vehiculos.contratista, ' (Subcontratista: ' + padrones_s.nombre_persona + ' - ' + padrones_s.identificador + ' ' + padrones_s.identificacion + ')','')
    ELSE ''
   END AS DESCRIPCION,

   padrones_e.nombre_persona as EMPLEADO, padrones_e.numero as CUIL,

   CASE
    WHEN led_log.empleado is not null THEN iif(led_empleados.baja_afip is not null, CONVERT(VARCHAR(10), led_empleados.baja_afip, 121) , NULL)
    ELSE NULL
   END AS BAJA_AFIP,

   led_vehiculos.nombre_vehiculo as VEHICULO, led_vehiculos.DOMINIO,
   CASE when led_log.contratista <> led_log.contratista_1
    then padrones_s.nombre_persona else null end as SUBCONTRATISTA, 
   CASE when led_log.contratista <> led_log.contratista_1
    then padrones_s.numero else null end as CUIT_SUBC,
   CONVERT(VARCHAR(16),led_log.horario_log,121) AS FECHA_HORA,
   users.first_name + ' ' + users.last_name AS USUARIO,
   users.username AS EMAIL 
   from led_log 
   inner join clientes on led_log.cliente = clientes.cliente
   inner join led_contratistas on led_log.contratista_1 = led_contratistas.contratista
   inner join led_tipos_contratista on led_contratistas.tipo_contratista = led_tipos_contratista.tipo_contratista
   inner join padrones on led_contratistas.id_padron = padrones.id_padron
   inner join users on led_log.user_id = users.user_id 
   LEFT OUTER JOIN led_empleados on led_log.empleado = led_empleados.empleado
   left outer join led_tipos_empleado on led_empleados.tipo_empleado = led_tipos_empleado.tipo_empleado

   left outer join padrones as padrones_e on led_empleados.id_padron = padrones_e.id_padron
   LEFT OUTER JOIN led_vehiculos on led_log.vehiculo = led_vehiculos.vehiculo
   left outer join led_tipos_vehiculo on led_vehiculos.tipo_vehiculo = led_tipos_vehiculo.tipo_vehiculo
   LEFT OUTER JOIN led_contratistas subc on led_log.contratista = subc.contratista
   left outer join led_tipos_contratista tipos_subc on subc.tipo_contratista = tipos_subc.tipo_contratista
   LEFT OUTER JOIN padrones padrones_s on subc.id_padron = padrones_s.id_padron
   where led_log.cliente = @cliente
   and led_log.contratista_1 = @contratista
   and tipo_log in ('B','D')
   and horario_log between @desde and @hasta 

   /* 27/07/2021: Que posteriormente no estén Reafectados */
   and not exists (select * from led_log b where b.empleado = led_log.empleado and led_log.empleado is not null and b.horario_log > led_log.horario_log and b.tipo_log = 'R')
   and not exists (select * from led_log v where v.vehiculo = led_log.vehiculo and led_log.vehiculo is not null and v.horario_log > led_log.horario_log and v.tipo_log = 'R')

   order by clientes.nombre_cliente, horario_log asc,padrones.nombre_persona asc

 ELSE

  if (@contratista is null)
  
   select clientes.nombre_cliente,
   padrones.nombre_persona as CONTRATISTA,padrones.numero as CUIT,

   CASE WHEN led_log.tipo_log = 'B' then 'BAJA' ELSE 'DESAFECTACION' END AS ACCION,
   CASE WHEN led_log.empleado is not null then 'EMPLEADO'
     WHEN led_log.vehiculo is not null then 'VEHICULO'
     ELSE IIF (led_log.contratista <> led_log.contratista_1,'SUBCONTRATISTA','CONTRATISTA') END AS SECCION,

   CASE 
    WHEN led_log.empleado is not null then led_tipos_empleado.nombre_tipo_empleado
    WHEN led_log.vehiculo is not null then led_tipos_vehiculo.nombre_tipo_vehiculo
    ELSE IIF (led_log.contratista <> led_log.contratista_1, tipos_subc.nombre_tipo_contratista, led_tipos_contratista.nombre_tipo_contratista)
   END AS TIPO,

   /*LED_LOG.contratista,*/
   LED_LOG.descripcion_log + 
   CASE
    WHEN led_log.empleado is not null then iif(led_empleados.contratista_1 <> led_empleados.contratista, ' (Subcontratista: ' + padrones_s.nombre_persona + ' - ' + padrones_s.identificador + ' ' + padrones_s.identificacion + ')','')
    WHEN led_log.vehiculo is not null then iif(led_vehiculos.contratista_1 <> led_vehiculos.contratista, ' (Subcontratista: ' + padrones_s.nombre_persona + ' - ' + padrones_s.identificador + ' ' + padrones_s.identificacion + ')','')
    ELSE ''
   END AS DESCRIPCION,
   padrones_e.nombre_persona as EMPLEADO, padrones_e.numero as CUIL,

   CASE
    WHEN led_log.empleado is not null THEN iif(led_empleados.baja_afip is not null, CONVERT(VARCHAR(10), led_empleados.baja_afip, 121) , NULL)
    ELSE NULL
   END AS BAJA_AFIP,

   led_vehiculos.nombre_vehiculo as VEHICULO, led_vehiculos.DOMINIO,
   CASE when led_log.contratista <> led_log.contratista_1
    then padrones_s.nombre_persona else null end as SUBCONTRATISTA, 
   CASE when led_log.contratista <> led_log.contratista_1
    then padrones_s.numero else null end as CUIT_SUBC,
   CONVERT(VARCHAR(16),led_log.horario_log,121) AS FECHA_HORA,
   users.first_name + ' ' + users.last_name AS USUARIO,
   users.username AS EMAIL 
   from led_log 
   inner join clientes on led_log.cliente = clientes.cliente
   inner join led_contratistas on led_log.contratista_1 = led_contratistas.contratista
   inner join led_tipos_contratista on led_contratistas.tipo_contratista = led_tipos_contratista.tipo_contratista
   inner join padrones on led_contratistas.id_padron = padrones.id_padron
   inner join users on led_log.user_id = users.user_id 
   LEFT OUTER JOIN led_empleados on led_log.empleado = led_empleados.empleado
   left outer join led_tipos_empleado on led_empleados.tipo_empleado = led_tipos_empleado.tipo_empleado
   left outer join padrones as padrones_e on led_empleados.id_padron = padrones_e.id_padron
   LEFT OUTER JOIN led_vehiculos on led_log.vehiculo = led_vehiculos.vehiculo
   left outer join led_tipos_vehiculo on led_vehiculos.tipo_vehiculo = led_tipos_vehiculo.tipo_vehiculo
   LEFT OUTER JOIN led_contratistas subc on led_log.contratista = subc.contratista
   left outer join led_tipos_contratista tipos_subc on subc.tipo_contratista = tipos_subc.tipo_contratista
   LEFT OUTER JOIN padrones padrones_s on subc.id_padron = padrones_s.id_padron
   where tipo_log in ('B','D')
   and horario_log between @desde and @hasta 

   /* 27/07/2021: Que posteriormente no estén Reafectados */
   and not exists (select * from led_log b where b.empleado = led_log.empleado and led_log.empleado is not null and b.horario_log > led_log.horario_log and b.tipo_log = 'R')
   and not exists (select * from led_log v where v.vehiculo = led_log.vehiculo and led_log.vehiculo is not null and v.horario_log > led_log.horario_log and v.tipo_log = 'R')

   order by clientes.nombre_cliente, horario_log asc,padrones.nombre_persona asc


  else

   select clientes.nombre_cliente,
   padrones.nombre_persona as CONTRATISTA,padrones.numero as CUIT,

   CASE WHEN led_log.tipo_log = 'B' then 'BAJA' ELSE 'DESAFECTACION' END AS ACCION,
   CASE WHEN led_log.empleado is not null then 'EMPLEADO'
     WHEN led_log.vehiculo is not null then 'VEHICULO'
     ELSE IIF (led_log.contratista <> led_log.contratista_1,'SUBCONTRATISTA','CONTRATISTA') END AS SECCION,

   CASE 
    WHEN led_log.empleado is not null then led_tipos_empleado.nombre_tipo_empleado
    WHEN led_log.vehiculo is not null then led_tipos_vehiculo.nombre_tipo_vehiculo
    ELSE IIF (led_log.contratista <> led_log.contratista_1, tipos_subc.nombre_tipo_contratista, led_tipos_contratista.nombre_tipo_contratista)
   END AS TIPO,

   /*LED_LOG.contratista,*/
   LED_LOG.descripcion_log + 
   CASE
    WHEN led_log.empleado is not null then iif(led_empleados.contratista_1 <> led_empleados.contratista, ' (Subcontratista: ' + padrones_s.nombre_persona + ' - ' + padrones_s.identificador + ' ' + padrones_s.identificacion + ')','')
    WHEN led_log.vehiculo is not null then iif(led_vehiculos.contratista_1 <> led_vehiculos.contratista, ' (Subcontratista: ' + padrones_s.nombre_persona + ' - ' + padrones_s.identificador + ' ' + padrones_s.identificacion + ')','')
    ELSE ''
   END AS DESCRIPCION,
   padrones_e.nombre_persona as EMPLEADO, padrones_e.numero as CUIL,

   CASE
    WHEN led_log.empleado is not null THEN iif(led_empleados.baja_afip is not null, CONVERT(VARCHAR(10), led_empleados.baja_afip, 121) , NULL)
    ELSE NULL
   END AS BAJA_AFIP,

   led_vehiculos.nombre_vehiculo as VEHICULO, led_vehiculos.DOMINIO,
   CASE when led_log.contratista <> led_log.contratista_1
    then padrones_s.nombre_persona else null end as SUBCONTRATISTA, 
   CASE when led_log.contratista <> led_log.contratista_1
    then padrones_s.numero else null end as CUIT_SUBC,
   CONVERT(VARCHAR(16),led_log.horario_log,121) AS FECHA_HORA,
   users.first_name + ' ' + users.last_name AS USUARIO,
   users.username AS EMAIL 
   from led_log 
   inner join clientes on led_log.cliente = clientes.cliente
   inner join led_contratistas on led_log.contratista_1 = led_contratistas.contratista
   inner join led_tipos_contratista on led_contratistas.tipo_contratista = led_tipos_contratista.tipo_contratista
   inner join padrones on led_contratistas.id_padron = padrones.id_padron
   inner join users on led_log.user_id = users.user_id 
   LEFT OUTER JOIN led_empleados on led_log.empleado = led_empleados.empleado
   left outer join led_tipos_empleado on led_empleados.tipo_empleado = led_tipos_empleado.tipo_empleado
   left outer join padrones as padrones_e on led_empleados.id_padron = padrones_e.id_padron
   LEFT OUTER JOIN led_vehiculos on led_log.vehiculo = led_vehiculos.vehiculo
   left outer join led_tipos_vehiculo on led_vehiculos.tipo_vehiculo = led_tipos_vehiculo.tipo_vehiculo
   LEFT OUTER JOIN led_contratistas subc on led_log.contratista = subc.contratista
   left outer join led_tipos_contratista tipos_subc on subc.tipo_contratista = tipos_subc.tipo_contratista
   LEFT OUTER JOIN padrones padrones_s on subc.id_padron = padrones_s.id_padron
   where tipo_log in ('B','D')
   and led_log.contratista_1 = @contratista
   and horario_log between @desde and @hasta 

   /* 27/07/2021: Que posteriormente no estén Reafectados */
   and not exists (select * from led_log b where b.empleado = led_log.empleado and led_log.empleado is not null and b.horario_log > led_log.horario_log and b.tipo_log = 'R')
   and not exists (select * from led_log v where v.vehiculo = led_log.vehiculo and led_log.vehiculo is not null and v.horario_log > led_log.horario_log and v.tipo_log = 'R')

   order by clientes.nombre_cliente, horario_log asc,padrones.nombre_persona asc



END
GO

Used By

No items found