dbo.Imperium_Control_Acceso_API

Description

Properties

Name Value
ANSI Nulls ON

True

Quoted Identifier ON

True

Encrypted

False

Execute As
Assembly

Parameters

7
Name Data Type Length Description
@p_cliente int 4
@taxID varchar 30
@p_locacion int 4
@p_led_seccion varchar 1
@p_contratista int 4
@p_empleado int 4
@p_vehiculo int 4

SQL Script

Copy
SET QUOTED_IDENTIFIER, ANSI_NULLS ON
GO
/*

exec Imperium_Control_Acceso_api   7048064,'30714559253'

*/


-- exec Imperium_buscar_identificacion_acceso 7048064,null,'30714559253'


CREATE OR ALTER PROCEDURE dbo.Imperium_Control_Acceso_API 
 -- Add the parameters for the stored procedure here

 @p_cliente        int,
 @taxID         varchar(30),
 @p_locacion        int = NULL,
 @p_led_seccion       varchar(1) = NULL,
 @p_contratista       int = NULL,
 @p_empleado        int = NULL,
 @p_vehiculo        int = NULL
 
AS
BEGIN
 -- SET NOCOUNT ON added to prevent extra result sets from
 -- interfering with SELECT statements.
 SET NOCOUNT ON;

    -- Insert statements for procedure here
 declare @contratista_1 int, @estado varchar(1), @tipo int

-- set @p_led_seccion = 'C'

 SELECT contratista FROM led_contratistas INNER JOIN PADRONES ON (led_contratistas.id_padron=PADRONES.id_padron AND PADRONES.HABILITADO=1)
 WHERE PADRONES.identificacion=@taxID AND LED_CONTRATISTAS.cliente = @p_cliente AND led_contratistas.estado_contratista='A'

 
 SELECT @p_contratista as contratista
 return

 if ( @p_cliente > 0 AND @p_locacion > 0 AND (@p_led_seccion = 'C' OR @p_led_seccion = 'E' OR @p_led_seccion = 'V') ) begin


  if (@p_led_seccion = 'C') begin

   if (@p_contratista > 0) begin

    select @contratista_1 = contratista_1, @estado = estado_contratista, @tipo = tipo_contratista from led_contratistas where contratista = @p_contratista and cliente = @p_cliente

    if (@estado = 'A') begin

     if (@contratista_1 = @p_contratista) 
      -- Contratista directo (no tiene que tener empleados activos en el periodo)

      select led_contratistas.contratista, padrones.identificador, padrones.identificacion, padrones.numero, identificadores.abreviatura,
        identificadores.country_code, padrones.nombre_persona, led_tipos_contratista.nombre_tipo_contratista, padrones.id_padron, led_contratistas.contratista_1, 
        padrones.nombre_persona as nombre_contratista_1, identificadores.abreviatura as abreviatura_1, padrones.identificacion as identificacion_1,
        padrones.nombre_persona as nombre_contratista, identificadores.abreviatura as abreviatura_0, padrones.identificacion as identificacion_0,
        ISNULL(docs.total_docs,0) as total_docs, ISNULL(pendientes.total_pendientes,0) as total_pendientes, ISNULL(ingresados.total_ingresados,0) as total_ingresados, 
        ISNULL(rechazados.total_rechazados,0) as total_rechazados, ISNULL(verificados.total_verificados,0) as total_verificados,
        iif(ISNULL(docs.total_docs,0) > 0,
         iif(ISNULL(pendientes.total_pendientes,0) = 0 and ISNULL(ingresados.total_ingresados,0) = 0 and ISNULL(rechazados.total_rechazados,0) = 0 and ISNULL(verificados.total_verificados,0) > 0, 1, 0)
         , 0) AS acceso

      from led_contratistas
      inner join led_contratista_locaciones on led_contratistas.contratista_1 = led_contratista_locaciones.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 identificadores on padrones.identificador = identificadores.identificador
      inner join led_contratista_periodo on led_contratistas.contratista = led_contratista_periodo.contratista

      left outer join 
       (select led_empleados.contratista, count(*) as total_empleados
       from led_empleados inner join led_empleados_periodo on led_empleados.empleado = led_empleados_periodo.empleado
       where led_empleados.contratista = @p_contratista
       and led_empleados_periodo.periodo = dbo.PeriodoAdelantado()
       and led_empleados.estado_empleado = 'A'
       group by led_empleados.contratista) empleados on led_contratistas.contratista = empleados.contratista


      left outer join
       (select led_docs.contratista, count(*) as total_docs
       from led_docs inner join led_cliente_contratista on
        (led_docs.tipo_doc = led_cliente_contratista.tipo_doc
        and led_cliente_contratista.cliente = @p_cliente
        and led_cliente_contratista.tipo_contratista = @tipo
        and led_cliente_contratista.ci_killer = 1
        and led_cliente_contratista.requiere_upload = 1
        and led_cliente_contratista.activo = 1)
       where led_docs.contratista = @p_contratista
       and led_docs.led_seccion = @p_led_seccion
       and led_docs.periodo = dbo.PeriodoAdelantado()
       group by led_docs.contratista) docs on led_contratistas.contratista = docs.contratista

      left outer join
       (select led_docs.contratista, count(*) as total_pendientes
       from led_docs inner join led_cliente_contratista on
        (led_docs.tipo_doc = led_cliente_contratista.tipo_doc
        and led_cliente_contratista.cliente = @p_cliente
        and led_cliente_contratista.tipo_contratista = @tipo
        and led_cliente_contratista.ci_killer = 1
        and led_cliente_contratista.requiere_upload = 1
        and led_cliente_contratista.activo = 1)
       where led_docs.contratista = @p_contratista
       and led_docs.led_seccion = @p_led_seccion
       and led_docs.periodo = dbo.PeriodoAdelantado()
       and led_docs.estado_doc = 'N'
       group by led_docs.contratista) pendientes on led_contratistas.contratista = pendientes.contratista

      left outer join
       (select led_docs.contratista, count(*) as total_ingresados
       from led_docs inner join led_cliente_contratista on
        (led_docs.tipo_doc = led_cliente_contratista.tipo_doc
        and led_cliente_contratista.cliente = @p_cliente
        and led_cliente_contratista.tipo_contratista = @tipo
        and led_cliente_contratista.ci_killer = 1
        and led_cliente_contratista.requiere_upload = 1
        and led_cliente_contratista.activo = 1)
       where led_docs.contratista = @p_contratista
       and led_docs.led_seccion = @p_led_seccion
       and led_docs.periodo = dbo.PeriodoAdelantado()
       and led_docs.estado_doc = 'I'
       group by led_docs.contratista) ingresados on led_contratistas.contratista = ingresados.contratista

      left outer join
       (select led_docs.contratista, count(*) as total_rechazados
       from led_docs inner join led_cliente_contratista on
        (led_docs.tipo_doc = led_cliente_contratista.tipo_doc
        and led_cliente_contratista.cliente = @p_cliente
        and led_cliente_contratista.tipo_contratista = @tipo
        and led_cliente_contratista.ci_killer = 1
        and led_cliente_contratista.requiere_upload = 1
        and led_cliente_contratista.activo = 1)
       where led_docs.contratista = @p_contratista
       and led_docs.led_seccion = @p_led_seccion
       and led_docs.periodo = dbo.PeriodoAdelantado()
       and led_docs.estado_doc = 'R'
       group by led_docs.contratista) rechazados on led_contratistas.contratista = rechazados.contratista

      left outer join
       (select led_docs.contratista, count(*) as total_verificados
       from led_docs inner join led_cliente_contratista on
        (led_docs.tipo_doc = led_cliente_contratista.tipo_doc
        and led_cliente_contratista.cliente = @p_cliente
        and led_cliente_contratista.tipo_contratista = @tipo
        and led_cliente_contratista.ci_killer = 1
        and led_cliente_contratista.requiere_upload = 1
        and led_cliente_contratista.activo = 1)
       where led_docs.contratista = @p_contratista
       and led_docs.led_seccion = @p_led_seccion
       and led_docs.periodo = dbo.PeriodoAdelantado()
       and led_docs.estado_doc = 'V'
       group by led_docs.contratista) verificados on led_contratistas.contratista = verificados.contratista


      where led_contratistas.contratista = @p_contratista
      and led_contratista_locaciones.locacion = @p_locacion
      and led_contratista_locaciones.activo = 1
      and led_contratistas.estado_contratista = 'A'
      and led_contratista_periodo.periodo = dbo.PeriodoAdelantado()
      and ISNULL(empleados.total_empleados, 0) = 0


     else
      -- Subcontratista (no tiene que tener empleados activos en el periodo)

      select led_contratistas.contratista, padrones.identificador, padrones.identificacion, padrones.numero, identificadores.abreviatura,
        identificadores.country_code, padrones.nombre_persona, led_tipos_contratista.nombre_tipo_contratista, padrones.id_padron, led_contratistas.contratista_1, 
        padrones_1.nombre_persona as nombre_contratista_1, identificadores_1.abreviatura as abreviatura_1, padrones_1.identificacion as identificacion_1,
        padrones.nombre_persona as nombre_contratista, identificadores.abreviatura as abreviatura_0, padrones.identificacion as identificacion_0,
        ISNULL(docs.total_docs,0) as total_docs, ISNULL(pendientes.total_pendientes,0) as total_pendientes, ISNULL(ingresados.total_ingresados,0) as total_ingresados, 
        ISNULL(rechazados.total_rechazados,0) as total_rechazados, ISNULL(verificados.total_verificados,0) as total_verificados,
        iif(ISNULL(docs.total_docs,0) > 0,
         iif(ISNULL(pendientes.total_pendientes,0) = 0 and ISNULL(ingresados.total_ingresados,0) = 0 and ISNULL(rechazados.total_rechazados,0) = 0 and ISNULL(verificados.total_verificados,0) > 0, 1, 0)
         , 0) AS acceso

      from led_contratistas 
      inner join led_contratista_locaciones on led_contratistas.contratista_1 = led_contratista_locaciones.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 identificadores on padrones.identificador = identificadores.identificador
      inner join led_contratistas contratistas_1 on led_contratistas.contratista_1 = contratistas_1.contratista
      inner join padrones padrones_1 on contratistas_1.id_padron = padrones_1.id_padron
      inner join identificadores identificadores_1 on padrones_1.identificador = identificadores_1.identificador
      inner join led_subcontratista_periodo on led_contratistas.contratista = led_subcontratista_periodo.subcontratista

      left outer join 
       (select led_empleados.contratista, count(*) as total_empleados
       from led_empleados inner join led_empleados_periodo on led_empleados.empleado = led_empleados_periodo.empleado
       where led_empleados.contratista = @p_contratista
       and led_empleados_periodo.periodo = dbo.PeriodoAdelantado()
       and led_empleados.estado_empleado = 'A'
       group by led_empleados.contratista) empleados on led_contratistas.contratista = empleados.contratista


      left outer join
       (select led_docs.contratista, count(*) as total_docs
       from led_docs inner join led_cliente_contratista on
        (led_docs.tipo_doc = led_cliente_contratista.tipo_doc
        and led_cliente_contratista.cliente = @p_cliente
        and led_cliente_contratista.tipo_contratista = @tipo
        and led_cliente_contratista.ci_killer = 1
        and led_cliente_contratista.requiere_upload = 1
        and led_cliente_contratista.activo = 1)
       where led_docs.contratista = @p_contratista
       and led_docs.led_seccion = @p_led_seccion
       and led_docs.periodo = dbo.PeriodoAdelantado()
       group by led_docs.contratista) docs on led_contratistas.contratista = docs.contratista

      left outer join
       (select led_docs.contratista, count(*) as total_pendientes
       from led_docs inner join led_cliente_contratista on
        (led_docs.tipo_doc = led_cliente_contratista.tipo_doc
        and led_cliente_contratista.cliente = @p_cliente
        and led_cliente_contratista.tipo_contratista = @tipo
        and led_cliente_contratista.ci_killer = 1
        and led_cliente_contratista.requiere_upload = 1
        and led_cliente_contratista.activo = 1)
       where led_docs.contratista = @p_contratista
       and led_docs.led_seccion = @p_led_seccion
       and led_docs.periodo = dbo.PeriodoAdelantado()
       and led_docs.estado_doc = 'N'
       group by led_docs.contratista) pendientes on led_contratistas.contratista = pendientes.contratista

      left outer join
       (select led_docs.contratista, count(*) as total_ingresados
       from led_docs inner join led_cliente_contratista on
        (led_docs.tipo_doc = led_cliente_contratista.tipo_doc
        and led_cliente_contratista.cliente = @p_cliente
        and led_cliente_contratista.tipo_contratista = @tipo
        and led_cliente_contratista.ci_killer = 1
        and led_cliente_contratista.requiere_upload = 1
        and led_cliente_contratista.activo = 1)
       where led_docs.contratista = @p_contratista
       and led_docs.led_seccion = @p_led_seccion
       and led_docs.periodo = dbo.PeriodoAdelantado()
       and led_docs.estado_doc = 'I'
       group by led_docs.contratista) ingresados on led_contratistas.contratista = ingresados.contratista

      left outer join
       (select led_docs.contratista, count(*) as total_rechazados
       from led_docs inner join led_cliente_contratista on
        (led_docs.tipo_doc = led_cliente_contratista.tipo_doc
        and led_cliente_contratista.cliente = @p_cliente
        and led_cliente_contratista.tipo_contratista = @tipo
        and led_cliente_contratista.ci_killer = 1
        and led_cliente_contratista.requiere_upload = 1
        and led_cliente_contratista.activo = 1)
       where led_docs.contratista = @p_contratista
       and led_docs.led_seccion = @p_led_seccion
       and led_docs.periodo = dbo.PeriodoAdelantado()
       and led_docs.estado_doc = 'R'
       group by led_docs.contratista) rechazados on led_contratistas.contratista = rechazados.contratista

      left outer join
       (select led_docs.contratista, count(*) as total_verificados
       from led_docs inner join led_cliente_contratista on
        (led_docs.tipo_doc = led_cliente_contratista.tipo_doc
        and led_cliente_contratista.cliente = @p_cliente
        and led_cliente_contratista.tipo_contratista = @tipo
        and led_cliente_contratista.ci_killer = 1
        and led_cliente_contratista.requiere_upload = 1
        and led_cliente_contratista.activo = 1)
       where led_docs.contratista = @p_contratista
       and led_docs.led_seccion = @p_led_seccion
       and led_docs.periodo = dbo.PeriodoAdelantado()
       and led_docs.estado_doc = 'V'
       group by led_docs.contratista) verificados on led_contratistas.contratista = verificados.contratista

      where led_contratistas.contratista = @p_contratista
      and led_contratista_locaciones.locacion = @p_locacion
      and led_contratista_locaciones.activo = 1
      and led_contratistas.estado_contratista = 'A'
      and contratistas_1.estado_contratista = 'A'
      and led_subcontratista_periodo.periodo = dbo.PeriodoAdelantado()
      and ISNULL(empleados.total_empleados, 0) = 0



    end


   end else begin

    --- Contratistas y subcontratistas del cliente afectados a acceso

    select led_contratistas.contratista, padrones.identificador, padrones.identificacion, padrones.numero, identificadores.abreviatura,
      identificadores.country_code, padrones.nombre_persona, led_tipos_contratista.nombre_tipo_contratista, padrones.id_padron, led_contratistas.contratista_1, 
      padrones.nombre_persona as nombre_contratista_1, identificadores.abreviatura as abreviatura_1, padrones.identificacion as identificacion_1,
      padrones.nombre_persona as nombre_contratista, identificadores.abreviatura as abreviatura_0, padrones.identificacion as identificacion_0,
      ISNULL(docs.total_docs,0) as total_docs, ISNULL(pendientes.total_pendientes,0) as total_pendientes, ISNULL(ingresados.total_ingresados,0) as total_ingresados, 
      ISNULL(rechazados.total_rechazados,0) as total_rechazados, ISNULL(verificados.total_verificados,0) as total_verificados,
      iif(ISNULL(docs.total_docs,0) > 0,
       iif(ISNULL(pendientes.total_pendientes,0) = 0 and ISNULL(ingresados.total_ingresados,0) = 0 and ISNULL(rechazados.total_rechazados,0) = 0 and ISNULL(verificados.total_verificados,0) > 0, 1, 0)
       , 0) AS acceso

    from led_contratistas 
    inner join led_contratista_locaciones on led_contratistas.contratista_1 = led_contratista_locaciones.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 identificadores on padrones.identificador = identificadores.identificador
    inner join led_contratista_periodo on led_contratistas.contratista = led_contratista_periodo.contratista

    left outer join 
     (select led_empleados.contratista, count(*) as total_empleados
     from led_empleados inner join led_empleados_periodo on led_empleados.empleado = led_empleados_periodo.empleado
     where led_empleados.cliente = @p_cliente
     and led_empleados_periodo.periodo = dbo.PeriodoAdelantado()
     and led_empleados.estado_empleado = 'A'
     group by led_empleados.contratista) empleados on led_contratistas.contratista = empleados.contratista


    left outer join
     (select led_docs.contratista, count(*) as total_docs
     from led_docs inner join led_contratistas on led_docs.contratista = led_contratistas.contratista
     inner join led_cliente_contratista on
      (led_docs.tipo_doc = led_cliente_contratista.tipo_doc
      and led_cliente_contratista.tipo_contratista = led_contratistas.tipo_contratista
      and led_cliente_contratista.cliente = @p_cliente
      and led_cliente_contratista.ci_killer = 1
      and led_cliente_contratista.requiere_upload = 1
      and led_cliente_contratista.activo = 1)
     where led_docs.led_seccion = @p_led_seccion
     and led_docs.periodo = dbo.PeriodoAdelantado()
     and led_docs.cliente = @p_cliente
     group by led_docs.contratista) docs on led_contratistas.contratista = docs.contratista

    left outer join
     (select led_docs.contratista, count(*) as total_pendientes
     from led_docs inner join led_contratistas on led_docs.contratista = led_contratistas.contratista
     inner join led_cliente_contratista on
      (led_docs.tipo_doc = led_cliente_contratista.tipo_doc
      and led_cliente_contratista.tipo_contratista = led_contratistas.tipo_contratista
      and led_cliente_contratista.cliente = @p_cliente
      and led_cliente_contratista.ci_killer = 1
      and led_cliente_contratista.requiere_upload = 1
      and led_cliente_contratista.activo = 1)
     where led_docs.led_seccion = @p_led_seccion
     and led_docs.periodo = dbo.PeriodoAdelantado()
     and led_docs.cliente = @p_cliente
     and led_docs.estado_doc = 'N'
     group by led_docs.contratista) pendientes on led_contratistas.contratista = pendientes.contratista

    left outer join
     (select led_docs.contratista, count(*) as total_ingresados
     from led_docs inner join led_contratistas on led_docs.contratista = led_contratistas.contratista
     inner join led_cliente_contratista on
      (led_docs.tipo_doc = led_cliente_contratista.tipo_doc
      and led_cliente_contratista.tipo_contratista = led_contratistas.tipo_contratista
      and led_cliente_contratista.cliente = @p_cliente
      and led_cliente_contratista.ci_killer = 1
      and led_cliente_contratista.requiere_upload = 1
      and led_cliente_contratista.activo = 1)
     where led_docs.led_seccion = @p_led_seccion
     and led_docs.periodo = dbo.PeriodoAdelantado()
     and led_docs.cliente = @p_cliente
     and led_docs.estado_doc = 'I'
     group by led_docs.contratista) ingresados on led_contratistas.contratista = ingresados.contratista

    left outer join
     (select led_docs.contratista, count(*) as total_rechazados
     from led_docs inner join led_contratistas on led_docs.contratista = led_contratistas.contratista
     inner join led_cliente_contratista on
      (led_docs.tipo_doc = led_cliente_contratista.tipo_doc
      and led_cliente_contratista.tipo_contratista = led_contratistas.tipo_contratista
      and led_cliente_contratista.cliente = @p_cliente
      and led_cliente_contratista.ci_killer = 1
      and led_cliente_contratista.requiere_upload = 1
      and led_cliente_contratista.activo = 1)
     where led_docs.led_seccion = @p_led_seccion
     and led_docs.periodo = dbo.PeriodoAdelantado()
     and led_docs.cliente = @p_cliente
     and led_docs.estado_doc = 'R'
     group by led_docs.contratista) rechazados on led_contratistas.contratista = rechazados.contratista

    left outer join
     (select led_docs.contratista, count(*) as total_verificados
     from led_docs inner join led_contratistas on led_docs.contratista = led_contratistas.contratista
     inner join led_cliente_contratista on
      (led_docs.tipo_doc = led_cliente_contratista.tipo_doc
      and led_cliente_contratista.tipo_contratista = led_contratistas.tipo_contratista
      and led_cliente_contratista.cliente = @p_cliente
      and led_cliente_contratista.ci_killer = 1
      and led_cliente_contratista.requiere_upload = 1
      and led_cliente_contratista.activo = 1)
     where led_docs.led_seccion = @p_led_seccion
     and led_docs.periodo = dbo.PeriodoAdelantado()
     and led_docs.cliente = @p_cliente
     and led_docs.estado_doc = 'V'
     group by led_docs.contratista) verificados on led_contratistas.contratista = verificados.contratista


    where led_contratistas.cliente = @p_cliente
    and led_contratista_locaciones.locacion = @p_locacion
    and led_contratista_locaciones.activo = 1
    and led_contratistas.estado_contratista = 'A'
    and led_contratista_periodo.periodo = dbo.PeriodoAdelantado()
    and ISNULL(empleados.total_empleados, 0) = 0

    UNION

    select led_contratistas.contratista, padrones.identificador, padrones.identificacion, padrones.numero, identificadores.abreviatura,
      identificadores.country_code, padrones.nombre_persona, led_tipos_contratista.nombre_tipo_contratista, padrones.id_padron, led_contratistas.contratista_1, 
      padrones_1.nombre_persona as nombre_contratista_1, identificadores_1.abreviatura as abreviatura_1, padrones_1.identificacion as identificacion_1,
      padrones.nombre_persona as nombre_contratista, identificadores.abreviatura as abreviatura_0, padrones.identificacion as identificacion_0,
      ISNULL(docs.total_docs,0) as total_docs, ISNULL(pendientes.total_pendientes,0) as total_pendientes, ISNULL(ingresados.total_ingresados,0) as total_ingresados, 
      ISNULL(rechazados.total_rechazados,0) as total_rechazados, ISNULL(verificados.total_verificados,0) as total_verificados,
      iif(ISNULL(docs.total_docs,0) > 0,
       iif(ISNULL(pendientes.total_pendientes,0) = 0 and ISNULL(ingresados.total_ingresados,0) = 0 and ISNULL(rechazados.total_rechazados,0) = 0 and ISNULL(verificados.total_verificados,0) > 0, 1, 0)
       , 0) AS acceso

    from led_contratistas
    inner join led_contratista_locaciones on led_contratistas.contratista_1 = led_contratista_locaciones.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 identificadores on padrones.identificador = identificadores.identificador
    inner join led_contratistas contratistas_1 on led_contratistas.contratista_1 = contratistas_1.contratista
    inner join padrones padrones_1 on contratistas_1.id_padron = padrones_1.id_padron
    inner join identificadores identificadores_1 on padrones_1.identificador = identificadores_1.identificador
    inner join led_subcontratista_periodo on led_contratistas.contratista = led_subcontratista_periodo.subcontratista

    left outer join 
     (select led_empleados.contratista, count(*) as total_empleados
     from led_empleados inner join led_empleados_periodo on led_empleados.empleado = led_empleados_periodo.empleado
     where led_empleados.cliente = @p_cliente
     and led_empleados_periodo.periodo = dbo.PeriodoAdelantado()
     and led_empleados.estado_empleado = 'A'
     group by led_empleados.contratista) empleados on led_contratistas.contratista = empleados.contratista

    left outer join
     (select led_docs.contratista, count(*) as total_docs
     from led_docs inner join led_contratistas on led_docs.contratista = led_contratistas.contratista
     inner join led_cliente_contratista on
      (led_docs.tipo_doc = led_cliente_contratista.tipo_doc
      and led_cliente_contratista.tipo_contratista = led_contratistas.tipo_contratista
      and led_cliente_contratista.cliente = @p_cliente
      and led_cliente_contratista.ci_killer = 1
      and led_cliente_contratista.requiere_upload = 1
      and led_cliente_contratista.activo = 1)
     where led_docs.led_seccion = @p_led_seccion
     and led_docs.periodo = dbo.PeriodoAdelantado()
     and led_docs.cliente = @p_cliente
     group by led_docs.contratista) docs on led_contratistas.contratista = docs.contratista

    left outer join
     (select led_docs.contratista, count(*) as total_pendientes
     from led_docs inner join led_contratistas on led_docs.contratista = led_contratistas.contratista
     inner join led_cliente_contratista on
      (led_docs.tipo_doc = led_cliente_contratista.tipo_doc
      and led_cliente_contratista.tipo_contratista = led_contratistas.tipo_contratista
      and led_cliente_contratista.cliente = @p_cliente
      and led_cliente_contratista.ci_killer = 1
      and led_cliente_contratista.requiere_upload = 1
      and led_cliente_contratista.activo = 1)
     where led_docs.led_seccion = @p_led_seccion
     and led_docs.periodo = dbo.PeriodoAdelantado()
     and led_docs.cliente = @p_cliente
     and led_docs.estado_doc = 'N'
     group by led_docs.contratista) pendientes on led_contratistas.contratista = pendientes.contratista

    left outer join
     (select led_docs.contratista, count(*) as total_ingresados
     from led_docs inner join led_contratistas on led_docs.contratista = led_contratistas.contratista
     inner join led_cliente_contratista on
      (led_docs.tipo_doc = led_cliente_contratista.tipo_doc
      and led_cliente_contratista.tipo_contratista = led_contratistas.tipo_contratista
      and led_cliente_contratista.cliente = @p_cliente
      and led_cliente_contratista.ci_killer = 1
      and led_cliente_contratista.requiere_upload = 1
      and led_cliente_contratista.activo = 1)
     where led_docs.led_seccion = @p_led_seccion
     and led_docs.periodo = dbo.PeriodoAdelantado()
     and led_docs.cliente = @p_cliente
     and led_docs.estado_doc = 'I'
     group by led_docs.contratista) ingresados on led_contratistas.contratista = ingresados.contratista

    left outer join
     (select led_docs.contratista, count(*) as total_rechazados
     from led_docs inner join led_contratistas on led_docs.contratista = led_contratistas.contratista
     inner join led_cliente_contratista on
      (led_docs.tipo_doc = led_cliente_contratista.tipo_doc
      and led_cliente_contratista.tipo_contratista = led_contratistas.tipo_contratista
      and led_cliente_contratista.cliente = @p_cliente
      and led_cliente_contratista.ci_killer = 1
      and led_cliente_contratista.requiere_upload = 1
      and led_cliente_contratista.activo = 1)
     where led_docs.led_seccion = @p_led_seccion
     and led_docs.periodo = dbo.PeriodoAdelantado()
     and led_docs.cliente = @p_cliente
     and led_docs.estado_doc = 'R'
     group by led_docs.contratista) rechazados on led_contratistas.contratista = rechazados.contratista

    left outer join
     (select led_docs.contratista, count(*) as total_verificados
     from led_docs inner join led_contratistas on led_docs.contratista = led_contratistas.contratista
     inner join led_cliente_contratista on
      (led_docs.tipo_doc = led_cliente_contratista.tipo_doc
      and led_cliente_contratista.tipo_contratista = led_contratistas.tipo_contratista
      and led_cliente_contratista.cliente = @p_cliente
      and led_cliente_contratista.ci_killer = 1
      and led_cliente_contratista.requiere_upload = 1
      and led_cliente_contratista.activo = 1)
     where led_docs.led_seccion = @p_led_seccion
     and led_docs.periodo = dbo.PeriodoAdelantado()
     and led_docs.cliente = @p_cliente
     and led_docs.estado_doc = 'V'
     group by led_docs.contratista) verificados on led_contratistas.contratista = verificados.contratista


    where led_contratistas.cliente = @p_cliente
    and led_contratista_locaciones.locacion = @p_locacion
    and led_contratista_locaciones.activo = 1
    and led_contratistas.estado_contratista = 'A'
    and contratistas_1.estado_contratista = 'A'
    and led_subcontratista_periodo.periodo = dbo.PeriodoAdelantado()
    and ISNULL(empleados.total_empleados, 0) = 0
    and ISNULL(docs.total_docs, 0) > 0
    order by nombre_persona

   end   

  end else

  if (@p_led_seccion = 'E') begin

   if (@p_empleado > 0)

    select led_empleados.empleado, padrones.identificador, padrones.identificacion, padrones.numero, identificadores.abreviatura, identificadores.country_code,
      padrones.nombre_persona, led_tipos_empleado.nombre_tipo_empleado, padrones.id_padron, led_empleados.contratista, led_empleados.contratista_1,
      padrones_1.nombre_persona as nombre_contratista_1, identificadores_1.abreviatura as abreviatura_1, padrones_1.identificacion as identificacion_1,
      padrones_0.nombre_persona as nombre_contratista, identificadores_0.abreviatura as abreviatura_0, padrones_0.identificacion as identificacion_0,
      ISNULL(docs.total_docs,0) as total_docs, ISNULL(pendientes.total_pendientes,0) as total_pendientes, ISNULL(ingresados.total_ingresados,0) as total_ingresados, 
      ISNULL(rechazados.total_rechazados,0) as total_rechazados, ISNULL(verificados.total_verificados,0) as total_verificados,
      iif(ISNULL(docs.total_docs,0) > 0,
       iif(ISNULL(pendientes.total_pendientes,0) = 0 and ISNULL(ingresados.total_ingresados,0) = 0 and ISNULL(rechazados.total_rechazados,0) = 0 and ISNULL(verificados.total_verificados,0) > 0, 1, 0)
       , 0) AS acceso

    from led_empleados
    inner join led_tipos_empleado on led_empleados.tipo_empleado = led_tipos_empleado.tipo_empleado
    inner join led_empleados_periodo on led_empleados.empleado = led_empleados_periodo.empleado
    inner join padrones on led_empleados.id_padron = padrones.id_padron
    inner join identificadores on padrones.identificador = identificadores.identificador

    inner join led_contratistas on led_empleados.contratista = led_contratistas.contratista
    inner join padrones padrones_0 on led_contratistas.id_padron = padrones_0.id_padron
    inner join identificadores identificadores_0 on padrones_0.identificador = identificadores_0.identificador
    inner join led_contratistas contratistas_1 on led_empleados.contratista_1 = contratistas_1.contratista
    inner join padrones padrones_1 on contratistas_1.id_padron = padrones_1.id_padron
    inner join identificadores identificadores_1 on padrones_1.identificador = identificadores_1.identificador

    inner join led_empleado_locaciones on led_empleados.empleado = led_empleado_locaciones.empleado
    inner join led_contratista_locaciones on led_empleados.contratista_1 = led_contratista_locaciones.contratista

    left outer join
       (select led_docs.empleado, COUNT(*) AS total_docs
       from led_docs 
       inner join led_empleados on led_docs.empleado = led_empleados.empleado
       inner join led_cliente_empleado on
         (led_docs.tipo_doc = led_cliente_empleado.tipo_doc
         and led_empleados.tipo_empleado = led_cliente_empleado.tipo_empleado
         and led_cliente_empleado.cliente = @p_cliente
         and led_cliente_empleado.ci_killer = 1
         and led_cliente_empleado.activo = 1)
       where led_docs.periodo = dbo.PeriodoAdelantado()
       and led_docs.empleado = @p_empleado
       and led_docs.led_seccion = @p_led_seccion
       group by led_docs.empleado) docs on led_empleados.empleado = docs.empleado

    left outer join
       (select led_docs.empleado, COUNT(*) AS total_pendientes
       from led_docs 
       inner join led_empleados on led_docs.empleado = led_empleados.empleado
       inner join led_cliente_empleado on
         (led_docs.tipo_doc = led_cliente_empleado.tipo_doc
         and led_empleados.tipo_empleado = led_cliente_empleado.tipo_empleado
         and led_cliente_empleado.cliente = @p_cliente
         and led_cliente_empleado.ci_killer = 1
         and led_cliente_empleado.activo = 1)
       where led_docs.periodo = dbo.PeriodoAdelantado()
       and led_docs.empleado = @p_empleado
       and led_docs.led_seccion = @p_led_seccion
       and led_docs.estado_doc = 'N'
       group by led_docs.empleado) pendientes on led_empleados.empleado = pendientes.empleado


    left outer join
       (select led_docs.empleado, COUNT(*) AS total_ingresados
       from led_docs 
       inner join led_empleados on led_docs.empleado = led_empleados.empleado
       inner join led_cliente_empleado on
         (led_docs.tipo_doc = led_cliente_empleado.tipo_doc
         and led_empleados.tipo_empleado = led_cliente_empleado.tipo_empleado
         and led_cliente_empleado.cliente = @p_cliente
         and led_cliente_empleado.ci_killer = 1
         and led_cliente_empleado.activo = 1)
       where led_docs.periodo = dbo.PeriodoAdelantado()
       and led_docs.empleado = @p_empleado
       and led_docs.led_seccion = @p_led_seccion
       and led_docs.estado_doc = 'I'
       group by led_docs.empleado) ingresados on led_empleados.empleado = ingresados.empleado

    left outer join
       (select led_docs.empleado, COUNT(*) AS total_rechazados
       from led_docs 
       inner join led_empleados on led_docs.empleado = led_empleados.empleado
       inner join led_cliente_empleado on
         (led_docs.tipo_doc = led_cliente_empleado.tipo_doc
         and led_empleados.tipo_empleado = led_cliente_empleado.tipo_empleado
         and led_cliente_empleado.cliente = @p_cliente
         and led_cliente_empleado.ci_killer = 1
         and led_cliente_empleado.activo = 1)
       where led_docs.periodo = dbo.PeriodoAdelantado()
       and led_docs.empleado = @p_empleado
       and led_docs.led_seccion = @p_led_seccion
       and led_docs.estado_doc = 'R'
       group by led_docs.empleado) rechazados on led_empleados.empleado = rechazados.empleado

    left outer join
       (select led_docs.empleado, COUNT(*) AS total_verificados
       from led_docs 
       inner join led_empleados on led_docs.empleado = led_empleados.empleado
       inner join led_cliente_empleado on
         (led_docs.tipo_doc = led_cliente_empleado.tipo_doc
         and led_empleados.tipo_empleado = led_cliente_empleado.tipo_empleado
         and led_cliente_empleado.cliente = @p_cliente
         and led_cliente_empleado.ci_killer = 1
         and led_cliente_empleado.activo = 1)
       where led_docs.periodo = dbo.PeriodoAdelantado()
       and led_docs.empleado = @p_empleado
       and led_docs.led_seccion = @p_led_seccion
       and led_docs.estado_doc = 'V'
       group by led_docs.empleado) verificados on led_empleados.empleado = verificados.empleado

    where led_empleados.estado_empleado = 'A'
    and led_contratistas.estado_contratista = 'A'
    and contratistas_1.estado_contratista = 'A'
    and led_empleados_periodo.periodo = dbo.PeriodoAdelantado()
    and led_empleados.empleado = @p_empleado
    and led_empleado_locaciones.locacion = @p_locacion
    and led_contratista_locaciones.locacion = @p_locacion
    and led_empleado_locaciones.activo = 1
    and led_contratista_locaciones.activo = 1


   else
    -- Todos los empleados con acceso del cliente

    select led_empleados.empleado, padrones.identificador, padrones.identificacion, padrones.numero, identificadores.abreviatura, identificadores.country_code,
      padrones.nombre_persona, led_tipos_empleado.nombre_tipo_empleado, padrones.id_padron, led_empleados.contratista, led_empleados.contratista_1,
      padrones_1.nombre_persona as nombre_contratista_1, identificadores_1.abreviatura as abreviatura_1, padrones_1.identificacion as identificacion_1,
      padrones_0.nombre_persona as nombre_contratista, identificadores_0.abreviatura as abreviatura_0, padrones_0.identificacion as identificacion_0,
      ISNULL(docs.total_docs,0) as total_docs, ISNULL(pendientes.total_pendientes,0) as total_pendientes, ISNULL(ingresados.total_ingresados,0) as total_ingresados, 
      ISNULL(rechazados.total_rechazados,0) as total_rechazados, ISNULL(verificados.total_verificados,0) as total_verificados,
      iif(ISNULL(docs.total_docs,0) > 0,
       iif(ISNULL(pendientes.total_pendientes,0) = 0 and ISNULL(ingresados.total_ingresados,0) = 0 and ISNULL(rechazados.total_rechazados,0) = 0 and ISNULL(verificados.total_verificados,0) > 0, 1, 0)
       , 0) AS acceso

    from led_empleados
    inner join led_tipos_empleado on led_empleados.tipo_empleado = led_tipos_empleado.tipo_empleado
    inner join led_empleados_periodo on led_empleados.empleado = led_empleados_periodo.empleado
    inner join padrones on led_empleados.id_padron = padrones.id_padron
    inner join identificadores on padrones.identificador = identificadores.identificador

    inner join led_contratistas on led_empleados.contratista = led_contratistas.contratista
    inner join padrones padrones_0 on led_contratistas.id_padron = padrones_0.id_padron
    inner join identificadores identificadores_0 on padrones_0.identificador = identificadores_0.identificador
    inner join led_contratistas contratistas_1 on led_empleados.contratista_1 = contratistas_1.contratista
    inner join padrones padrones_1 on contratistas_1.id_padron = padrones_1.id_padron
    inner join identificadores identificadores_1 on padrones_1.identificador = identificadores_1.identificador

    inner join led_empleado_locaciones on led_empleados.empleado = led_empleado_locaciones.empleado
    inner join led_contratista_locaciones on led_empleados.contratista_1 = led_contratista_locaciones.contratista

    left outer join
       (select led_docs.empleado, COUNT(*) AS total_docs
       from led_docs 
       inner join led_empleados on led_docs.empleado = led_empleados.empleado
       inner join led_cliente_empleado on
         (led_docs.tipo_doc = led_cliente_empleado.tipo_doc
         and led_empleados.tipo_empleado = led_cliente_empleado.tipo_empleado
         and led_cliente_empleado.cliente = @p_cliente
         and led_cliente_empleado.ci_killer = 1
         and led_cliente_empleado.activo = 1)
       where led_docs.periodo = dbo.PeriodoAdelantado()
       and led_docs.cliente = @p_cliente
       and led_docs.led_seccion = @p_led_seccion
       group by led_docs.empleado) docs on led_empleados.empleado = docs.empleado

    left outer join
       (select led_docs.empleado, COUNT(*) AS total_pendientes
       from led_docs 
       inner join led_empleados on led_docs.empleado = led_empleados.empleado
       inner join led_cliente_empleado on
         (led_docs.tipo_doc = led_cliente_empleado.tipo_doc
         and led_empleados.tipo_empleado = led_cliente_empleado.tipo_empleado
         and led_cliente_empleado.cliente = @p_cliente
         and led_cliente_empleado.ci_killer = 1
         and led_cliente_empleado.activo = 1)
       where led_docs.periodo = dbo.PeriodoAdelantado()
       and led_docs.cliente = @p_cliente
       and led_docs.led_seccion = @p_led_seccion
       and led_docs.estado_doc = 'N'
       group by led_docs.empleado) pendientes on led_empleados.empleado = pendientes.empleado


    left outer join
       (select led_docs.empleado, COUNT(*) AS total_ingresados
       from led_docs 
       inner join led_empleados on led_docs.empleado = led_empleados.empleado
       inner join led_cliente_empleado on
         (led_docs.tipo_doc = led_cliente_empleado.tipo_doc
         and led_empleados.tipo_empleado = led_cliente_empleado.tipo_empleado
         and led_cliente_empleado.cliente = @p_cliente
         and led_cliente_empleado.ci_killer = 1
         and led_cliente_empleado.activo = 1)
       where led_docs.periodo = dbo.PeriodoAdelantado()
       and led_docs.cliente = @p_cliente
       and led_docs.led_seccion = @p_led_seccion
       and led_docs.estado_doc = 'I'
       group by led_docs.empleado) ingresados on led_empleados.empleado = ingresados.empleado

    left outer join
       (select led_docs.empleado, COUNT(*) AS total_rechazados
       from led_docs 
       inner join led_empleados on led_docs.empleado = led_empleados.empleado
       inner join led_cliente_empleado on
         (led_docs.tipo_doc = led_cliente_empleado.tipo_doc
         and led_empleados.tipo_empleado = led_cliente_empleado.tipo_empleado
         and led_cliente_empleado.cliente = @p_cliente
         and led_cliente_empleado.ci_killer = 1
         and led_cliente_empleado.activo = 1)
       where led_docs.periodo = dbo.PeriodoAdelantado()
       and led_docs.cliente = @p_cliente
       and led_docs.led_seccion = @p_led_seccion
       and led_docs.estado_doc = 'R'
       group by led_docs.empleado) rechazados on led_empleados.empleado = rechazados.empleado

    left outer join
       (select led_docs.empleado, COUNT(*) AS total_verificados
       from led_docs 
       inner join led_empleados on led_docs.empleado = led_empleados.empleado
       inner join led_cliente_empleado on
         (led_docs.tipo_doc = led_cliente_empleado.tipo_doc
         and led_empleados.tipo_empleado = led_cliente_empleado.tipo_empleado
         and led_cliente_empleado.cliente = @p_cliente
         and led_cliente_empleado.ci_killer = 1
         and led_cliente_empleado.activo = 1)
       where led_docs.periodo = dbo.PeriodoAdelantado()
       and led_docs.cliente = @p_cliente
       and led_docs.led_seccion = @p_led_seccion
       and led_docs.estado_doc = 'V'
       group by led_docs.empleado) verificados on led_empleados.empleado = verificados.empleado

    where led_empleados.estado_empleado = 'A'
    and led_contratistas.estado_contratista = 'A'
    and contratistas_1.estado_contratista = 'A'
    and led_empleados_periodo.periodo = dbo.PeriodoAdelantado()
    and led_empleados.cliente = @p_cliente
    and led_empleado_locaciones.locacion = @p_locacion
    and led_contratista_locaciones.locacion = @p_locacion
    and led_empleado_locaciones.activo = 1
    and led_contratista_locaciones.activo = 1
    and ISNULL(docs.total_docs, 0) > 0
    order by padrones.nombre_persona, padrones_0.nombre_persona


  end else

  begin

   if (@p_vehiculo > 0)

    select led_vehiculos.vehiculo, led_vehiculos.country_code, led_vehiculos.dominio, led_vehiculos.nombre_vehiculo, led_tipos_vehiculo.nombre_tipo_vehiculo,
      led_vehiculos.contratista, led_vehiculos.contratista_1, padrones_1.nombre_persona as nombre_contratista_1, 
      identificadores_1.abreviatura as abreviatura_1, padrones_1.identificacion as identificacion_1,
      padrones_0.nombre_persona as nombre_contratista, identificadores_0.abreviatura as abreviatura_0, padrones_0.identificacion as identificacion_0,
      ISNULL(docs.total_docs,0) as total_docs, ISNULL(pendientes.total_pendientes,0) as total_pendientes, ISNULL(ingresados.total_ingresados,0) as total_ingresados, 
      ISNULL(rechazados.total_rechazados,0) as total_rechazados, ISNULL(verificados.total_verificados,0) as total_verificados,
      iif(ISNULL(docs.total_docs,0) > 0,
       iif(ISNULL(pendientes.total_pendientes,0) = 0 and ISNULL(ingresados.total_ingresados,0) = 0 and ISNULL(rechazados.total_rechazados,0) = 0 and ISNULL(verificados.total_verificados,0) > 0, 1, 0)
       , 0) AS acceso

    from led_vehiculos
    inner join led_tipos_vehiculo on led_vehiculos.tipo_vehiculo = led_tipos_vehiculo.tipo_vehiculo
    inner join led_vehiculos_periodo on led_vehiculos.vehiculo = led_vehiculos_periodo.vehiculo
    inner join led_contratistas on led_vehiculos.contratista = led_contratistas.contratista
    inner join padrones padrones_0 on led_contratistas.id_padron = padrones_0.id_padron
    inner join identificadores identificadores_0 on padrones_0.identificador = identificadores_0.identificador
    inner join led_contratistas contratistas_1 on led_vehiculos.contratista_1 = contratistas_1.contratista
    inner join padrones padrones_1 on contratistas_1.id_padron = padrones_1.id_padron
    inner join identificadores identificadores_1 on padrones_1.identificador = identificadores_1.identificador

    inner join led_vehiculo_locaciones on led_vehiculos.vehiculo = led_vehiculo_locaciones.vehiculo
    inner join led_contratista_locaciones on led_vehiculos.contratista_1 = led_contratista_locaciones.contratista
  
    left outer join
       (select led_docs.vehiculo, COUNT(*) AS total_docs
       from led_docs 
       inner join led_vehiculos on led_docs.vehiculo = led_vehiculos.vehiculo
       inner join led_cliente_vehiculo on
         (led_docs.tipo_doc = led_cliente_vehiculo.tipo_doc
         and led_vehiculos.tipo_vehiculo = led_cliente_vehiculo.tipo_vehiculo
         and led_cliente_vehiculo.cliente = @p_cliente
         and led_cliente_vehiculo.ci_killer = 1
         and led_cliente_vehiculo.activo = 1)
       where led_docs.periodo = dbo.PeriodoAdelantado()
       and led_docs.vehiculo = @p_vehiculo
       and led_docs.led_seccion = @p_led_seccion
       group by led_docs.vehiculo) docs on led_vehiculos.vehiculo = docs.vehiculo

    left outer join
       (select led_docs.vehiculo, COUNT(*) AS total_pendientes
       from led_docs 
       inner join led_vehiculos on led_docs.vehiculo = led_vehiculos.vehiculo
       inner join led_cliente_vehiculo on
         (led_docs.tipo_doc = led_cliente_vehiculo.tipo_doc
         and led_vehiculos.tipo_vehiculo = led_cliente_vehiculo.tipo_vehiculo
         and led_cliente_vehiculo.cliente = @p_cliente
         and led_cliente_vehiculo.ci_killer = 1
         and led_cliente_vehiculo.activo = 1)
       where led_docs.periodo = dbo.PeriodoAdelantado()
       and led_docs.vehiculo = @p_vehiculo
       and led_docs.led_seccion = @p_led_seccion
       and led_docs.estado_doc = 'N'
       group by led_docs.vehiculo) pendientes on led_vehiculos.vehiculo = pendientes.vehiculo

    left outer join
       (select led_docs.vehiculo, COUNT(*) AS total_ingresados
       from led_docs 
       inner join led_vehiculos on led_docs.vehiculo = led_vehiculos.vehiculo
       inner join led_cliente_vehiculo on
         (led_docs.tipo_doc = led_cliente_vehiculo.tipo_doc
         and led_vehiculos.tipo_vehiculo = led_cliente_vehiculo.tipo_vehiculo
         and led_cliente_vehiculo.cliente = @p_cliente
         and led_cliente_vehiculo.ci_killer = 1
         and led_cliente_vehiculo.activo = 1)
       where led_docs.periodo = dbo.PeriodoAdelantado()
       and led_docs.vehiculo = @p_vehiculo
       and led_docs.led_seccion = @p_led_seccion
       and led_docs.estado_doc = 'I'
       group by led_docs.vehiculo) ingresados on led_vehiculos.vehiculo = ingresados.vehiculo

    left outer join
       (select led_docs.vehiculo, COUNT(*) AS total_rechazados
       from led_docs 
       inner join led_vehiculos on led_docs.vehiculo = led_vehiculos.vehiculo
       inner join led_cliente_vehiculo on
         (led_docs.tipo_doc = led_cliente_vehiculo.tipo_doc
         and led_vehiculos.tipo_vehiculo = led_cliente_vehiculo.tipo_vehiculo
         and led_cliente_vehiculo.cliente = @p_cliente
         and led_cliente_vehiculo.ci_killer = 1
         and led_cliente_vehiculo.activo = 1)
       where led_docs.periodo = dbo.PeriodoAdelantado()
       and led_docs.vehiculo = @p_vehiculo
       and led_docs.led_seccion = @p_led_seccion
       and led_docs.estado_doc = 'R'
       group by led_docs.vehiculo) rechazados on led_vehiculos.vehiculo = rechazados.vehiculo

    left outer join
       (select led_docs.vehiculo, COUNT(*) AS total_verificados
       from led_docs 
       inner join led_vehiculos on led_docs.vehiculo = led_vehiculos.vehiculo
       inner join led_cliente_vehiculo on
         (led_docs.tipo_doc = led_cliente_vehiculo.tipo_doc
         and led_vehiculos.tipo_vehiculo = led_cliente_vehiculo.tipo_vehiculo
         and led_cliente_vehiculo.cliente = @p_cliente
         and led_cliente_vehiculo.ci_killer = 1
         and led_cliente_vehiculo.activo = 1)
       where led_docs.periodo = dbo.PeriodoAdelantado()
       and led_docs.vehiculo = @p_vehiculo
       and led_docs.led_seccion = @p_led_seccion
       and led_docs.estado_doc = 'V'
       group by led_docs.vehiculo) verificados on led_vehiculos.vehiculo = verificados.vehiculo

    where led_vehiculos.estado_vehiculo = 'A'
    and led_contratistas.estado_contratista = 'A'
    and contratistas_1.estado_contratista = 'A'
    and led_vehiculos_periodo.periodo = dbo.PeriodoAdelantado()
    and led_vehiculos.vehiculo = @p_vehiculo
    and led_vehiculo_locaciones.locacion = @p_locacion
    and led_contratista_locaciones.locacion = @p_locacion
    and led_vehiculo_locaciones.activo = 1
    and led_contratista_locaciones.activo = 1


   else

    -- Todos los vehículos con acceso del cliente

    select led_vehiculos.vehiculo, led_vehiculos.country_code, led_vehiculos.dominio, led_vehiculos.nombre_vehiculo, led_tipos_vehiculo.nombre_tipo_vehiculo,
      led_vehiculos.contratista, led_vehiculos.contratista_1, padrones_1.nombre_persona as nombre_contratista_1, 
      identificadores_1.abreviatura as abreviatura_1, padrones_1.identificacion as identificacion_1,
      padrones_0.nombre_persona as nombre_contratista, identificadores_0.abreviatura as abreviatura_0, padrones_0.identificacion as identificacion_0,
      ISNULL(docs.total_docs,0) as total_docs, ISNULL(pendientes.total_pendientes,0) as total_pendientes, ISNULL(ingresados.total_ingresados,0) as total_ingresados, 
      ISNULL(rechazados.total_rechazados,0) as total_rechazados, ISNULL(verificados.total_verificados,0) as total_verificados,
      iif(ISNULL(docs.total_docs,0) > 0,
       iif(ISNULL(pendientes.total_pendientes,0) = 0 and ISNULL(ingresados.total_ingresados,0) = 0 and ISNULL(rechazados.total_rechazados,0) = 0 and ISNULL(verificados.total_verificados,0) > 0, 1, 0)
       , 0) AS acceso

    from led_vehiculos
    inner join led_tipos_vehiculo on led_vehiculos.tipo_vehiculo = led_tipos_vehiculo.tipo_vehiculo
    inner join led_vehiculos_periodo on led_vehiculos.vehiculo = led_vehiculos_periodo.vehiculo
    inner join led_contratistas on led_vehiculos.contratista = led_contratistas.contratista
    inner join padrones padrones_0 on led_contratistas.id_padron = padrones_0.id_padron
    inner join identificadores identificadores_0 on padrones_0.identificador = identificadores_0.identificador
    inner join led_contratistas contratistas_1 on led_vehiculos.contratista_1 = contratistas_1.contratista
    inner join padrones padrones_1 on contratistas_1.id_padron = padrones_1.id_padron
    inner join identificadores identificadores_1 on padrones_1.identificador = identificadores_1.identificador

    inner join led_vehiculo_locaciones on led_vehiculos.vehiculo = led_vehiculo_locaciones.vehiculo
    inner join led_contratista_locaciones on led_vehiculos.contratista_1 = led_contratista_locaciones.contratista
  
    left outer join
       (select led_docs.vehiculo, COUNT(*) AS total_docs
       from led_docs 
       inner join led_vehiculos on led_docs.vehiculo = led_vehiculos.vehiculo
       inner join led_cliente_vehiculo on
         (led_docs.tipo_doc = led_cliente_vehiculo.tipo_doc
         and led_vehiculos.tipo_vehiculo = led_cliente_vehiculo.tipo_vehiculo
         and led_cliente_vehiculo.cliente = @p_cliente
         and led_cliente_vehiculo.ci_killer = 1
         and led_cliente_vehiculo.activo = 1)
       where led_docs.periodo = dbo.PeriodoAdelantado()
       and led_docs.cliente = @p_cliente
       and led_docs.led_seccion = @p_led_seccion
       group by led_docs.vehiculo) docs on led_vehiculos.vehiculo = docs.vehiculo

    left outer join
       (select led_docs.vehiculo, COUNT(*) AS total_pendientes
       from led_docs 
       inner join led_vehiculos on led_docs.vehiculo = led_vehiculos.vehiculo
       inner join led_cliente_vehiculo on
         (led_docs.tipo_doc = led_cliente_vehiculo.tipo_doc
         and led_vehiculos.tipo_vehiculo = led_cliente_vehiculo.tipo_vehiculo
         and led_cliente_vehiculo.cliente = @p_cliente
         and led_cliente_vehiculo.ci_killer = 1
         and led_cliente_vehiculo.activo = 1)
       where led_docs.periodo = dbo.PeriodoAdelantado()
       and led_docs.cliente = @p_cliente
       and led_docs.led_seccion = @p_led_seccion
       and led_docs.estado_doc = 'N'
       group by led_docs.vehiculo) pendientes on led_vehiculos.vehiculo = pendientes.vehiculo

    left outer join
       (select led_docs.vehiculo, COUNT(*) AS total_ingresados
       from led_docs 
       inner join led_vehiculos on led_docs.vehiculo = led_vehiculos.vehiculo
       inner join led_cliente_vehiculo on
         (led_docs.tipo_doc = led_cliente_vehiculo.tipo_doc
         and led_vehiculos.tipo_vehiculo = led_cliente_vehiculo.tipo_vehiculo
         and led_cliente_vehiculo.cliente = @p_cliente
         and led_cliente_vehiculo.ci_killer = 1
         and led_cliente_vehiculo.activo = 1)
       where led_docs.periodo = dbo.PeriodoAdelantado()
       and led_docs.cliente = @p_cliente
       and led_docs.led_seccion = @p_led_seccion
       and led_docs.estado_doc = 'I'
       group by led_docs.vehiculo) ingresados on led_vehiculos.vehiculo = ingresados.vehiculo

    left outer join
       (select led_docs.vehiculo, COUNT(*) AS total_rechazados
       from led_docs 
       inner join led_vehiculos on led_docs.vehiculo = led_vehiculos.vehiculo
       inner join led_cliente_vehiculo on
         (led_docs.tipo_doc = led_cliente_vehiculo.tipo_doc
         and led_vehiculos.tipo_vehiculo = led_cliente_vehiculo.tipo_vehiculo
         and led_cliente_vehiculo.cliente = @p_cliente
         and led_cliente_vehiculo.ci_killer = 1
         and led_cliente_vehiculo.activo = 1)
       where led_docs.periodo = dbo.PeriodoAdelantado()
       and led_docs.cliente = @p_cliente
       and led_docs.led_seccion = @p_led_seccion
       and led_docs.estado_doc = 'R'
       group by led_docs.vehiculo) rechazados on led_vehiculos.vehiculo = rechazados.vehiculo

    left outer join
       (select led_docs.vehiculo, COUNT(*) AS total_verificados
       from led_docs 
       inner join led_vehiculos on led_docs.vehiculo = led_vehiculos.vehiculo
       inner join led_cliente_vehiculo on
         (led_docs.tipo_doc = led_cliente_vehiculo.tipo_doc
         and led_vehiculos.tipo_vehiculo = led_cliente_vehiculo.tipo_vehiculo
         and led_cliente_vehiculo.cliente = @p_cliente
         and led_cliente_vehiculo.ci_killer = 1
         and led_cliente_vehiculo.activo = 1)
       where led_docs.periodo = dbo.PeriodoAdelantado()
       and led_docs.cliente = @p_cliente
       and led_docs.led_seccion = @p_led_seccion
       and led_docs.estado_doc = 'V'
       group by led_docs.vehiculo) verificados on led_vehiculos.vehiculo = verificados.vehiculo

    where led_vehiculos.estado_vehiculo = 'A'
    and led_contratistas.estado_contratista = 'A'
    and contratistas_1.estado_contratista = 'A'
    and led_vehiculos_periodo.periodo = dbo.PeriodoAdelantado()
    and led_vehiculos.cliente = @p_cliente
    and led_vehiculo_locaciones.locacion = @p_locacion
    and led_contratista_locaciones.locacion = @p_locacion
    and led_vehiculo_locaciones.activo = 1
    and led_contratista_locaciones.activo = 1
    and ISNULL(docs.total_docs, 0) > 0
    order by dominio


  end

 end


 
END
GO

Used By

No items found