dbo.Imperium_Recursos_Contratista_FANCY

Description

Properties

Name Value
ANSI Nulls ON

True

Quoted Identifier ON

True

Encrypted

False

Execute As
Assembly

Parameters

5
Name Data Type Length Description
@p_contratista int 4
@p_led_seccion varchar 1
@p_estado varchar 1
@p_periodo int 4
@p_contratista_1 int 4

SQL Script

Copy
SET QUOTED_IDENTIFIER, ANSI_NULLS ON
GO
-- =============================================
-- Author: <Author,,Name>
-- Create date: <Create Date,,>
-- Description: <Description,,>
-- =============================================
/*
Imperium_Recursos_Contratista 1288, 'E', 'A'
exec Imperium_Recursos_Contratista_fancy 4282,'S','A',202310,4282
*/


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

 @p_contratista         int = null,
 @p_led_seccion         varchar(1) = null,
 @p_estado          varchar(1) = null,
 @p_periodo          int = null,
 @p_contratista_1        int = null
 
AS
BEGIN
 
 SET NOCOUNT ON;

 if ( (@p_contratista is not null OR @p_contratista_1 is not null) and @p_periodo is not null and @p_led_seccion is not null) begin

  if (@p_estado is not null) begin

   if (@p_led_seccion = 'E')

    if (@p_contratista_1 is null)

     select  led_empleados_periodo.periodo,
       convert(varchar,led_empleados_periodo.periodo) as periodo_Ym,  
       led_empleados.empleado, led_empleados.estado_empleado, led_empleados.tipo_empleado, led_empleados.id_padron,
       led_empleados.contratista, padrones.nombre_persona, padrones.identificacion, padrones.numero, padrones.identificador,
       identificadores.abreviatura, led_empleados.cliente, led_empleados.contratista_1, clientes.nombre_cliente,
       led_tipos_empleado.nombre_tipo_empleado, LOWER(identificadores.country_code) as country_code, country.country_name,
       identificadores.abreviatura + ' ' + padrones.identificacion as taxid,
       '<span class="flag-icon flag-icon-background flag-icon-' + LOWER(identificadores.country_code) + '"></span>' as country,
       iif(led_empleados.estado_empleado = 'A', 'Activo', 'No activo') as estado

     from led_empleados
     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 clientes on led_empleados.cliente = clientes.cliente
     inner join led_tipos_empleado on led_empleados.tipo_empleado = led_tipos_empleado.tipo_empleado
     inner join country on identificadores.country_code = country.country_code
     where led_empleados.contratista = @p_contratista
     and led_empleados_periodo.periodo = @p_periodo
     and led_empleados.estado_empleado = @p_estado
     order by padrones.nombre_persona

    else

     select led_empleados_periodo.periodo,
            convert(varchar,led_empleados_periodo.periodo) as periodo_Ym,  
          led_empleados.empleado, led_empleados.estado_empleado, led_empleados.tipo_empleado, led_empleados.id_padron,
       led_empleados.contratista, padrones.nombre_persona, padrones.identificacion, padrones.numero, padrones.identificador,
       identificadores.abreviatura, led_empleados.cliente, led_empleados.contratista_1, clientes.nombre_cliente,
       led_tipos_empleado.nombre_tipo_empleado, LOWER(identificadores.country_code) as country_code, country.country_name,
       identificadores.abreviatura + ' ' + padrones.identificacion as taxid,
       '<span class="flag-icon flag-icon-background flag-icon-' + LOWER(identificadores.country_code) + '"></span>' as country,
       iif(led_empleados.estado_empleado = 'A', 'Activo', 'No activo') as estado
     from led_empleados
     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 clientes on led_empleados.cliente = clientes.cliente
     inner join led_tipos_empleado on led_empleados.tipo_empleado = led_tipos_empleado.tipo_empleado
     inner join country on identificadores.country_code = country.country_code
     where led_empleados.contratista = @p_contratista
     and led_empleados.contratista_1 = @p_contratista_1
     and led_empleados_periodo.periodo = @p_periodo
     and led_empleados.estado_empleado = @p_estado
     order by padrones.nombre_persona




   else if (@p_led_seccion = 'V')

    if (@p_contratista_1 is null)

     select led_vehiculos_periodo.periodo,
       convert(varchar,led_vehiculos_periodo.periodo) as periodo_Ym,  
       led_vehiculos.vehiculo, led_vehiculos.dominio, led_vehiculos.nombre_vehiculo, led_vehiculos.modelo,
       led_vehiculos.estado_vehiculo, led_vehiculos.tipo_vehiculo, led_vehiculos.cliente,
       led_vehiculos.contratista_1, clientes.nombre_cliente, LOWER(led_vehiculos.country_code) as country_code, country.country_name,
       led_tipos_vehiculo.nombre_tipo_vehiculo,
       '<span class="flag-icon flag-icon-background flag-icon-' + LOWER(led_vehiculos.country_code) + '"></span>' as country,
       iif(led_vehiculos.estado_vehiculo = 'A', 'Activo', 'No activo') as estado,tara,tarimas
     from led_vehiculos
     inner join led_vehiculos_periodo on led_vehiculos.vehiculo = led_vehiculos_periodo.vehiculo
     inner join clientes on led_vehiculos.cliente = clientes.cliente
     inner join country on led_vehiculos.country_code = country.country_code
     inner join led_tipos_vehiculo on led_vehiculos.tipo_vehiculo = led_tipos_vehiculo.tipo_vehiculo
     where led_vehiculos.contratista = @p_contratista
     and led_vehiculos_periodo.periodo = @p_periodo
     and led_vehiculos.estado_vehiculo = @p_estado
     order by led_vehiculos.nombre_vehiculo

    else

     select led_vehiculos_periodo.periodo,
       convert(varchar,led_vehiculos_periodo.periodo) as periodo_Ym,  
       led_vehiculos.vehiculo, led_vehiculos.dominio, led_vehiculos.nombre_vehiculo, led_vehiculos.modelo,
       led_vehiculos.estado_vehiculo, led_vehiculos.tipo_vehiculo, led_vehiculos.cliente,
       led_vehiculos.contratista_1, clientes.nombre_cliente, LOWER(led_vehiculos.country_code) as country_code, country.country_name,
       led_tipos_vehiculo.nombre_tipo_vehiculo,
       '<span class="flag-icon flag-icon-background flag-icon-' + LOWER(led_vehiculos.country_code) + '"></span>' as country,
       iif(led_vehiculos.estado_vehiculo = 'A', 'Activo', 'No activo') as estado,tara,tarimas
     from led_vehiculos
     inner join led_vehiculos_periodo on led_vehiculos.vehiculo = led_vehiculos_periodo.vehiculo
     inner join clientes on led_vehiculos.cliente = clientes.cliente
     inner join country on led_vehiculos.country_code = country.country_code
     inner join led_tipos_vehiculo on led_vehiculos.tipo_vehiculo = led_tipos_vehiculo.tipo_vehiculo
     where led_vehiculos.contratista = @p_contratista
     and led_vehiculos.contratista_1 = @p_contratista_1
     and led_vehiculos_periodo.periodo = @p_periodo
     and led_vehiculos.estado_vehiculo = @p_estado
     order by led_vehiculos.nombre_vehiculo


   else if (@p_led_seccion = 'S' OR @p_led_seccion = 'R')

    select led_subcontratista_periodo.periodo, 
      convert(varchar,led_subcontratista_periodo.periodo) as periodo_Ym,  
            led_subcontratista_periodo.subcontratista,
      led_contratistas.contratista, led_contratistas.estado_contratista, led_contratistas.contratista_1,
      led_contratistas.cliente, padrones.nombre_persona, padrones.identificacion, padrones.numero, padrones.identificador,
      identificadores.abreviatura, led_contratistas.cliente, clientes.nombre_cliente,
      LOWER(identificadores.country_code) as country_code, country.country_name, led_tipos_contratista.nombre_tipo_contratista,
      padrones_d.nombre_persona as nombre_persona_d,
      identificadores.abreviatura + ' ' + padrones.identificacion as taxid,
      '<span class="flag-icon flag-icon-background flag-icon-' + LOWER(identificadores.country_code) + '"></span>' as country,
      iif(led_contratistas.estado_contratista = 'A', 'Activo', 'No activo') as estado
      
    from led_contratistas 
    inner join led_subcontratista_periodo on led_contratistas.contratista = led_subcontratista_periodo.subcontratista
    inner join padrones on led_contratistas.id_padron = padrones.id_padron
    inner join identificadores on padrones.identificador = identificadores.identificador
    inner join clientes on led_contratistas.cliente = clientes.cliente
    inner join country on identificadores.country_code = country.country_code
    inner join led_tipos_contratista on led_contratistas.tipo_contratista = led_tipos_contratista.tipo_contratista
    inner join led_contratistas contratista_d on led_contratistas.subcontratista_de = contratista_d.contratista
    inner join padrones padrones_d on contratista_d.id_padron = padrones_d.id_padron
    where led_contratistas.contratista_1 = @p_contratista_1
    and led_subcontratista_periodo.periodo = @p_periodo
    and led_contratistas.estado_contratista = @p_estado
    order by padrones.nombre_persona

        

  end else begin

   /* sin filtro de estado */ 
   if (@p_led_seccion = 'E')

    if (@p_contratista_1 is null)

     select  led_empleados_periodo.periodo,
       convert(varchar,led_empleados_periodo.periodo) as periodo_Ym,  
       led_empleados.empleado, led_empleados.estado_empleado, led_empleados.tipo_empleado, led_empleados.id_padron,
       led_empleados.contratista, padrones.nombre_persona, padrones.identificacion, padrones.numero, padrones.identificador,
       identificadores.abreviatura, led_empleados.cliente, led_empleados.contratista_1, clientes.nombre_cliente,
       led_tipos_empleado.nombre_tipo_empleado, LOWER(identificadores.country_code) as country_code, country.country_name,
       identificadores.abreviatura + ' ' + padrones.identificacion as taxid,
       '<span class="flag-icon flag-icon-background flag-icon-' + LOWER(identificadores.country_code) + '"></span>' as country,
       iif(led_empleados.estado_empleado = 'A', 'Activo', 'No activo') as estado,

        PENDIENTES.total_pendientes,
        INGRESADOS.total_ingresados,
        RECHAZADOS.total_rechazados,
        VERIFICADOS.total_verificados,
       ultimo.periodo_Ym as ultimo_periodo, 
       convert(varchar,EVENTUALES.valor_fecha,103) as fecha_eventual

     from led_empleados
     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 clientes on led_empleados.cliente = clientes.cliente
     inner join led_tipos_empleado on led_empleados.tipo_empleado = led_tipos_empleado.tipo_empleado
     inner join country on identificadores.country_code = country.country_code
     left outer join (select empleado, max(periodo) as periodo, 
          left(convert(varchar(6), MAX(periodo)),4) + '-' + right(convert(varchar(6), MAX(periodo)),2) AS periodo_Ym
          from led_empleados_periodo
          group by empleado) ultimo on ultimo.empleado = led_empleados.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.cliente = led_cliente_empleado.cliente
       and led_empleados.tipo_empleado = led_cliente_empleado.tipo_empleado
       and led_docs.tipo_doc = led_cliente_empleado.tipo_doc)
      where led_empleados.contratista = @p_contratista
      and led_docs.periodo = @p_periodo
      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.cliente = led_cliente_empleado.cliente
       and led_empleados.tipo_empleado = led_cliente_empleado.tipo_empleado
       and led_docs.tipo_doc = led_cliente_empleado.tipo_doc)
      where led_empleados.contratista = @p_contratista
      and led_docs.periodo = @p_periodo
      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.cliente = led_cliente_empleado.cliente
       and led_empleados.tipo_empleado = led_cliente_empleado.tipo_empleado
       and led_docs.tipo_doc = led_cliente_empleado.tipo_doc)
      where led_empleados.contratista = @p_contratista
      and led_docs.periodo = @p_periodo
      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.cliente = led_cliente_empleado.cliente
       and led_empleados.tipo_empleado = led_cliente_empleado.tipo_empleado
       and led_docs.tipo_doc = led_cliente_empleado.tipo_doc)
      where led_empleados.contratista = @p_contratista
      and led_docs.periodo = @p_periodo
      and led_docs.estado_doc = 'V'
      group by led_docs.empleado) VERIFICADOS ON led_empleados.empleado = VERIFICADOS.empleado

     /* 10/04/2023 */ 
     
     left outer join 
     (select led_docs.empleado, led_campos_doc.valor_fecha
     from led_docs 
     inner join led_campos_doc on (led_campos_doc.doc_id = led_docs.doc_id and campo_tipo_doc = 2)
     where led_docs.tipo_doc = 346 
      and contratista_1 = @p_contratista
      and led_docs.estado_doc = 'V'
      and led_docs.periodo = @p_periodo) EVENTUALES ON led_empleados.empleado = EVENTUALES.empleado
     
     /* */ 

     where led_empleados.contratista = @p_contratista
     and led_empleados_periodo.periodo = @p_periodo
     order by padrones.nombre_persona

    else

     select led_empleados_periodo.periodo,
       convert(varchar,led_empleados_periodo.periodo) as periodo_Ym,  
       led_empleados.empleado, led_empleados.estado_empleado, led_empleados.tipo_empleado, led_empleados.id_padron,
       led_empleados.contratista, padrones.nombre_persona, padrones.identificacion, padrones.numero, padrones.identificador,
       identificadores.abreviatura, led_empleados.cliente, led_empleados.contratista_1, clientes.nombre_cliente,
       led_tipos_empleado.nombre_tipo_empleado, LOWER(identificadores.country_code) as country_code, country.country_name,
       identificadores.abreviatura + ' ' + padrones.identificacion as taxid,
       '<span class="flag-icon flag-icon-background flag-icon-' + LOWER(identificadores.country_code) + '"></span>' as country,
       iif(led_empleados.estado_empleado = 'A', 'Activo', 'No activo') as estado,
       ultimo.periodo_ym as ultimo_periodo,
       convert(varchar,EVENTUALES.valor_fecha,103) as fecha_eventual

     from led_empleados
     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 clientes on led_empleados.cliente = clientes.cliente
     inner join led_tipos_empleado on led_empleados.tipo_empleado = led_tipos_empleado.tipo_empleado
     inner join country on identificadores.country_code = country.country_code

     left outer join (select empleado, max(periodo) as periodo, 
          left(convert(varchar(6), MAX(periodo)),4) + '-' + right(convert(varchar(6), MAX(periodo)),2) AS periodo_Ym
          from led_empleados_periodo
          group by empleado) ultimo on ultimo.empleado = led_empleados.empleado

     /* 10/04/2023 */ 
     left outer join 
     (select led_docs.empleado, led_campos_doc.valor_fecha
     from led_docs 
     inner join led_campos_doc on (led_campos_doc.doc_id = led_docs.doc_id and campo_tipo_doc = 2)
     where led_docs.tipo_doc = 346 
      and contratista_1 = @p_contratista_1
      and led_docs.estado_doc = 'V'
      and led_docs.periodo = @p_periodo) EVENTUALES ON led_empleados.empleado = EVENTUALES.empleado
     /* */ 


     where led_empleados.contratista = @p_contratista
     and led_empleados.contratista_1 = @p_contratista_1
     and led_empleados_periodo.periodo = @p_periodo
     order by padrones.nombre_persona


   else if (@p_led_seccion = 'V')

    if (@p_contratista_1 is null)

     select led_vehiculos_periodo.periodo,
       convert(varchar,led_vehiculos_periodo.periodo) as periodo_Ym,  
       led_vehiculos.vehiculo, led_vehiculos.dominio, led_vehiculos.nombre_vehiculo, led_vehiculos.modelo,
       led_vehiculos.estado_vehiculo, led_vehiculos.tipo_vehiculo, led_vehiculos.cliente,
       led_vehiculos.contratista_1, clientes.nombre_cliente, LOWER(led_vehiculos.country_code) as country_code, country.country_name,
       led_tipos_vehiculo.nombre_tipo_vehiculo,
       '<span class="flag-icon flag-icon-background flag-icon-' + LOWER(led_vehiculos.country_code) + '"></span>' as country,
       iif(led_vehiculos.estado_vehiculo = 'A', 'Activo', 'No activo') as estado,

        PENDIENTES.total_pendientes,
        INGRESADOS.total_ingresados,
        RECHAZADOS.total_rechazados,
        VERIFICADOS.total_verificados,
       ultimo.periodo_Ym as ultimo_periodo,tara,tarimas
       
     from led_vehiculos
     inner join led_vehiculos_periodo on led_vehiculos.vehiculo = led_vehiculos_periodo.vehiculo
     inner join clientes on led_vehiculos.cliente = clientes.cliente
     inner join country on led_vehiculos.country_code = country.country_code
     inner join led_tipos_vehiculo on led_vehiculos.tipo_vehiculo = led_tipos_vehiculo.tipo_vehiculo
     
     left outer join (select vehiculo, max(periodo) as periodo, 
          left(convert(varchar(6), MAX(periodo)),4) + '-' + right(convert(varchar(6), MAX(periodo)),2) AS periodo_Ym
          from led_vehiculos_periodo
          group by vehiculo) ultimo on ultimo.vehiculo = led_vehiculos.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.cliente = led_cliente_vehiculo.cliente
       and led_vehiculos.tipo_vehiculo = led_cliente_vehiculo.tipo_vehiculo
       and led_docs.tipo_doc = led_cliente_vehiculo.tipo_doc)
      where led_vehiculos.contratista = @p_contratista
      and led_docs.periodo = @p_periodo
      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.cliente = led_cliente_vehiculo.cliente
       and led_vehiculos.tipo_vehiculo = led_cliente_vehiculo.tipo_vehiculo
       and led_docs.tipo_doc = led_cliente_vehiculo.tipo_doc)
      where led_vehiculos.contratista = @p_contratista
      and led_docs.periodo = @p_periodo
      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.cliente = led_cliente_vehiculo.cliente
       and led_vehiculos.tipo_vehiculo = led_cliente_vehiculo.tipo_vehiculo
       and led_docs.tipo_doc = led_cliente_vehiculo.tipo_doc)
      where led_vehiculos.contratista = @p_contratista
      and led_docs.periodo = @p_periodo
      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.cliente = led_cliente_vehiculo.cliente
       and led_vehiculos.tipo_vehiculo = led_cliente_vehiculo.tipo_vehiculo
       and led_docs.tipo_doc = led_cliente_vehiculo.tipo_doc)
      where led_vehiculos.contratista = @p_contratista
      and led_docs.periodo = @p_periodo
      and led_docs.estado_doc = 'V'
      group by led_docs.vehiculo) VERIFICADOS ON led_vehiculos.vehiculo = VERIFICADOS.vehiculo

     where led_vehiculos.contratista = @p_contratista
     and led_vehiculos_periodo.periodo = @p_periodo
     order by led_vehiculos.nombre_vehiculo

    else

     select led_vehiculos_periodo.periodo,
       convert(varchar,led_vehiculos_periodo.periodo) as periodo_Ym,  
       led_vehiculos.vehiculo, led_vehiculos.dominio, led_vehiculos.nombre_vehiculo, led_vehiculos.modelo,
       led_vehiculos.estado_vehiculo, led_vehiculos.tipo_vehiculo, led_vehiculos.cliente,
       led_vehiculos.contratista_1, clientes.nombre_cliente, LOWER(led_vehiculos.country_code) as country_code, country.country_name,
       led_tipos_vehiculo.nombre_tipo_vehiculo,
       '<span class="flag-icon flag-icon-background flag-icon-' + LOWER(led_vehiculos.country_code) + '"></span>' as country,
       iif(led_vehiculos.estado_vehiculo = 'A', 'Activo', 'No activo') as estado,
       ultimo.periodo_Ym as ultimo_periodo,tara,tarimas

     from led_vehiculos
     inner join led_vehiculos_periodo on led_vehiculos.vehiculo = led_vehiculos_periodo.vehiculo
     inner join clientes on led_vehiculos.cliente = clientes.cliente
     inner join country on led_vehiculos.country_code = country.country_code
     inner join led_tipos_vehiculo on led_vehiculos.tipo_vehiculo = led_tipos_vehiculo.tipo_vehiculo
     left outer join (select vehiculo, max(periodo) as periodo, 
          left(convert(varchar(6), MAX(periodo)),4) + '-' + right(convert(varchar(6), MAX(periodo)),2) AS periodo_Ym
          from led_vehiculos_periodo
          group by vehiculo) ultimo on ultimo.vehiculo = led_vehiculos.vehiculo

     where led_vehiculos.contratista = @p_contratista
     and led_vehiculos.contratista_1 = @p_contratista_1
     and led_vehiculos_periodo.periodo = @p_periodo
     order by led_vehiculos.nombre_vehiculo


   else if (@p_led_seccion = 'S' OR @p_led_seccion = 'R')

    select led_subcontratista_periodo.periodo, 
      convert(varchar,led_subcontratista_periodo.periodo) as periodo_Ym,  
            led_subcontratista_periodo.subcontratista,
      led_contratistas.contratista, led_contratistas.estado_contratista, led_contratistas.contratista_1,
      led_contratistas.cliente, padrones.nombre_persona, padrones.identificacion, padrones.numero, padrones.identificador,
      identificadores.abreviatura, led_contratistas.cliente, clientes.nombre_cliente,
      LOWER(identificadores.country_code) as country_code, country.country_name, led_tipos_contratista.nombre_tipo_contratista,
      padrones_d.nombre_persona as nombre_persona_d,
      identificadores.abreviatura + ' ' + padrones.identificacion as taxid,
      '<span class="flag-icon flag-icon-background flag-icon-' + LOWER(identificadores.country_code) + '"></span>' as country,
      iif(led_contratistas.estado_contratista = 'A', 'Activo', 'No activo') as estado,

       PENDIENTES.total_pendientes,
       INGRESADOS.total_ingresados,
       RECHAZADOS.total_rechazados,
       VERIFICADOS.total_verificados, 
       ultimo.periodo_ym as ultimo_periodo  


    from led_contratistas 
    inner join led_subcontratista_periodo on led_contratistas.contratista = led_subcontratista_periodo.subcontratista
    left outer join (select subcontratista, max(periodo) as periodo, 
        left(convert(varchar(6), MAX(periodo)),4) + '-' + right(convert(varchar(6), MAX(periodo)),2) AS periodo_Ym
        from led_subcontratista_periodo
        group by subcontratista) ultimo on ultimo.subcontratista = led_contratistas.contratista


    inner join padrones on led_contratistas.id_padron = padrones.id_padron
    inner join identificadores on padrones.identificador = identificadores.identificador
    inner join clientes on led_contratistas.cliente = clientes.cliente
    inner join country on identificadores.country_code = country.country_code
    inner join led_tipos_contratista on led_contratistas.tipo_contratista = led_tipos_contratista.tipo_contratista
    inner join led_contratistas contratista_d on led_contratistas.subcontratista_de = contratista_d.contratista
    inner join padrones padrones_d on contratista_d.id_padron = padrones_d.id_padron


    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.cliente = led_cliente_contratista.cliente
      and led_contratistas.tipo_contratista = led_cliente_contratista.tipo_contratista
      and led_docs.tipo_doc = led_cliente_contratista.tipo_doc)
     where led_contratistas.contratista_1 = @p_contratista_1
     and led_contratistas.contratista_1 != led_contratistas.contratista
     and led_docs.periodo = @p_periodo
     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.cliente = led_cliente_contratista.cliente
      and led_contratistas.tipo_contratista = led_cliente_contratista.tipo_contratista
      and led_docs.tipo_doc = led_cliente_contratista.tipo_doc)
     where led_contratistas.contratista_1 = @p_contratista_1
     and led_contratistas.contratista_1 != led_contratistas.contratista
     and led_docs.periodo = @p_periodo
     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.cliente = led_cliente_contratista.cliente
      and led_contratistas.tipo_contratista = led_cliente_contratista.tipo_contratista
      and led_docs.tipo_doc = led_cliente_contratista.tipo_doc)
     where led_contratistas.contratista_1 = @p_contratista_1
     and led_contratistas.contratista_1 != led_contratistas.contratista
     and led_docs.periodo = @p_periodo
     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.cliente = led_cliente_contratista.cliente
      and led_contratistas.tipo_contratista = led_cliente_contratista.tipo_contratista
      and led_docs.tipo_doc = led_cliente_contratista.tipo_doc)
     where led_contratistas.contratista_1 = @p_contratista_1
     and led_contratistas.contratista_1 != led_contratistas.contratista
     and led_docs.periodo = @p_periodo
     and led_docs.estado_doc = 'V'
     group by led_docs.contratista) VERIFICADOS ON led_contratistas.contratista = VERIFICADOS.contratista

    where led_contratistas.contratista_1 = @p_contratista_1
    and led_contratistas.contratista_1 != led_contratistas.contratista
    and led_subcontratista_periodo.periodo = @p_periodo
    order by padrones.nombre_persona
  
  end

 end

 --- Para consultar nómina sin depender a afectación a ningún período, 
 --- debe pasarse el contratista y la sección. El estado es opcional. Para uso web Cliente en www.fidelitas.com.ar
 if (@p_contratista is not null and @p_periodo IS NULL and @p_led_seccion is not null) begin

  if (@p_estado is null) begin

   if (@p_led_seccion = 'E')

    select  MAX(led_empleados_periodo.periodo) as periodo, 
            right(convert(varchar(6), MAX(led_empleados_periodo.periodo)),2) + '/' + left(convert(varchar(6), MAX(led_empleados_periodo.periodo)),4) AS periodo_mY, 
            left(convert(varchar(6), MAX(led_empleados_periodo.periodo)),4) + '-' + right(convert(varchar(6), MAX(led_empleados_periodo.periodo)),2) AS periodo_Ym, 
      --convert(varchar,MAX(led_empleados_periodo.periodo)) as periodo_Ym,  
            led_empleados.empleado, led_empleados.estado_empleado, led_empleados.tipo_empleado, led_empleados.id_padron,
      led_empleados.contratista, padrones.nombre_persona, padrones.identificacion, padrones.numero, padrones.identificador,
      identificadores.abreviatura, led_empleados.cliente, led_empleados.contratista_1, clientes.nombre_cliente,
      led_tipos_empleado.nombre_tipo_empleado, LOWER(identificadores.country_code) as country_code, country.country_name,
      identificadores.abreviatura + ' ' + padrones.identificacion as taxid,
      '<span class="flag-icon flag-icon-background flag-icon-' + LOWER(identificadores.country_code) + '"></span>' as country,
      iif(led_empleados.estado_empleado = 'A', 'Activo', 'No activo') as estado
    from led_empleados
    inner join padrones on led_empleados.id_padron = padrones.id_padron
    inner join led_empleados_periodo on led_empleados.empleado = led_empleados_periodo.empleado
    inner join identificadores on padrones.identificador = identificadores.identificador
    inner join clientes on led_empleados.cliente = clientes.cliente
    inner join led_tipos_empleado on led_empleados.tipo_empleado = led_tipos_empleado.tipo_empleado
    inner join country on identificadores.country_code = country.country_code
    where led_empleados.contratista = @p_contratista
    group by 
      led_empleados.empleado, led_empleados.estado_empleado, led_empleados.tipo_empleado, led_empleados.id_padron, 
      led_empleados.contratista, padrones.nombre_persona, padrones.identificacion, padrones.numero, padrones.identificador,
      identificadores.abreviatura, led_empleados.cliente, led_empleados.contratista_1, clientes.nombre_cliente,
      led_tipos_empleado.nombre_tipo_empleado, LOWER(identificadores.country_code), country.country_name,
      identificadores.abreviatura + ' ' + padrones.identificacion,
      identificadores.country_code,
      led_empleados.estado_empleado 
    order by padrones.nombre_persona

   else if (@p_led_seccion = 'V')

    select  MAX(led_vehiculos_periodo.periodo) as periodo, 
            right(convert(varchar(6), MAX(led_vehiculos_periodo.periodo)),2) + '/' + left(convert(varchar(6), MAX(led_vehiculos_periodo.periodo)),4) AS periodo_mY, 
            left(convert(varchar(6), MAX(led_vehiculos_periodo.periodo)),4) + '-' + right(convert(varchar(6), MAX(led_vehiculos_periodo.periodo)),2) AS periodo_Ym, 
      --convert(varchar,MAX(led_vehiculos_periodo.periodo)) as periodo_Ym, 
            led_vehiculos.vehiculo, led_vehiculos.dominio, led_vehiculos.nombre_vehiculo, led_vehiculos.modelo,
      led_vehiculos.estado_vehiculo, led_vehiculos.tipo_vehiculo, led_vehiculos.cliente,
      led_vehiculos.contratista_1, clientes.nombre_cliente, LOWER(led_vehiculos.country_code) as country_code, country.country_name,
      led_tipos_vehiculo.nombre_tipo_vehiculo,
      '<span class="flag-icon flag-icon-background flag-icon-' + LOWER(led_vehiculos.country_code) + '"></span>' as country,
      iif(led_vehiculos.estado_vehiculo = 'A', 'Activo', 'No activo') as estado,tara,tarimas
    from led_vehiculos
    inner join led_vehiculos_periodo on led_vehiculos.vehiculo = led_vehiculos_periodo.vehiculo
    inner join clientes on led_vehiculos.cliente = clientes.cliente
    inner join country on led_vehiculos.country_code = country.country_code
    inner join led_tipos_vehiculo on led_vehiculos.tipo_vehiculo = led_tipos_vehiculo.tipo_vehiculo
    where led_vehiculos.contratista = @p_contratista
    group by  led_vehiculos.vehiculo, led_vehiculos.dominio, led_vehiculos.nombre_vehiculo, led_vehiculos.modelo,
      led_vehiculos.estado_vehiculo, led_vehiculos.tipo_vehiculo, led_vehiculos.cliente,
      led_vehiculos.contratista_1, clientes.nombre_cliente, led_vehiculos.country_code, country.country_name,
      led_tipos_vehiculo.nombre_tipo_vehiculo,
      led_vehiculos.country_code,
      led_vehiculos.estado_vehiculo,tara,tarimas
    order by led_vehiculos.nombre_vehiculo

   else

    -- en el caso de solicitar nomina de subcontratistas, busco en el campo de contratista principal _1
    select  max(led_subcontratista_periodo.periodo) as periodo, 
            right(convert(varchar(6), MAX(led_subcontratista_periodo.periodo)),2) + '/' + left(convert(varchar(6), MAX(led_subcontratista_periodo.periodo)),4) AS periodo_mY, 
            left(convert(varchar(6), MAX(led_subcontratista_periodo.periodo)),4) + '-' + right(convert(varchar(6), MAX(led_subcontratista_periodo.periodo)),2) AS periodo_Ym, 
      --convert(varchar,max(led_subcontratista_periodo.periodo)) as periodo_Ym,  
            led_contratistas.contratista, led_contratistas.estado_contratista, led_contratistas.contratista_1,
      led_contratistas.cliente, padrones.nombre_persona, padrones.identificacion, padrones.numero, padrones.identificador,
      identificadores.abreviatura, led_contratistas.cliente, clientes.nombre_cliente,
      LOWER(identificadores.country_code) as country_code, country.country_name, led_tipos_contratista.nombre_tipo_contratista,
      padrones_d.nombre_persona as nombre_persona_d,
      identificadores.abreviatura + ' ' + padrones.identificacion as taxid,
      '<span class="flag-icon flag-icon-background flag-icon-' + LOWER(identificadores.country_code) + '"></span>' as country,
      iif(led_contratistas.estado_contratista = 'A', 'Activo', 'No activo') as estado
      
    from led_contratistas     
    inner join padrones on led_contratistas.id_padron = padrones.id_padron
    inner join led_subcontratista_periodo on led_contratistas.contratista = led_subcontratista_periodo.subcontratista

    inner join identificadores on padrones.identificador = identificadores.identificador
    inner join clientes on led_contratistas.cliente = clientes.cliente
    inner join country on identificadores.country_code = country.country_code
    inner join led_tipos_contratista on led_contratistas.tipo_contratista = led_tipos_contratista.tipo_contratista
    inner join led_contratistas contratista_d on led_contratistas.contratista_1 = contratista_d.contratista
    inner join padrones padrones_d on contratista_d.id_padron = padrones_d.id_padron
    where led_contratistas.contratista_1 = @p_contratista
    and led_contratistas.contratista_1 != led_contratistas.contratista
    group by  led_contratistas.contratista, led_contratistas.estado_contratista, led_contratistas.contratista_1,
      led_contratistas.cliente, padrones.nombre_persona, padrones.identificacion, padrones.numero, padrones.identificador,
      identificadores.abreviatura, led_contratistas.cliente, clientes.nombre_cliente,
      identificadores.country_code, country.country_name, led_tipos_contratista.nombre_tipo_contratista,
      padrones_d.nombre_persona,
      identificadores.abreviatura + ' ' + padrones.identificacion,
      identificadores.country_code,
      led_contratistas.estado_contratista
    order by padrones.nombre_persona


  end else

  begin
   -- consulta con estado

   if (@p_led_seccion = 'E')

    select  led_empleados_periodo.periodo, 
      convert(varchar,led_empleados_periodo.periodo) as periodo_Ym,  
            led_empleados.empleado, led_empleados.estado_empleado, led_empleados.tipo_empleado, led_empleados.id_padron,
      led_empleados.contratista, padrones.nombre_persona, padrones.identificacion, padrones.numero, padrones.identificador,
      identificadores.abreviatura, led_empleados.cliente, led_empleados.contratista_1, clientes.nombre_cliente,
      led_tipos_empleado.nombre_tipo_empleado, LOWER(identificadores.country_code) as country_code, country.country_name,
      identificadores.abreviatura + ' ' + padrones.identificacion as taxid,
      '<span class="flag-icon flag-icon-background flag-icon-' + LOWER(identificadores.country_code) + '"></span>' as country,
      iif(led_empleados.estado_empleado = 'A', 'Activo', 'No activo') as estado
    from led_empleados
    inner join padrones on led_empleados.id_padron = padrones.id_padron
    inner join led_empleados_periodo on led_empleados.empleado = led_empleados_periodo.empleado
    inner join identificadores on padrones.identificador = identificadores.identificador
    inner join clientes on led_empleados.cliente = clientes.cliente
    inner join led_tipos_empleado on led_empleados.tipo_empleado = led_tipos_empleado.tipo_empleado
    inner join country on identificadores.country_code = country.country_code
    where led_empleados.contratista = @p_contratista
    and led_empleados.estado_empleado = @p_estado
    order by padrones.nombre_persona

   else if (@p_led_seccion = 'V')

    select led_vehiculos_periodo.periodo, 
      convert(varchar,led_vehiculos_periodo.periodo) as periodo_Ym,  
            led_vehiculos.vehiculo, led_vehiculos.dominio, led_vehiculos.nombre_vehiculo, led_vehiculos.modelo,
      led_vehiculos.estado_vehiculo, led_vehiculos.tipo_vehiculo, led_vehiculos.cliente,
      led_vehiculos.contratista_1, clientes.nombre_cliente, LOWER(led_vehiculos.country_code) as country_code, country.country_name,
      led_tipos_vehiculo.nombre_tipo_vehiculo,
      '<span class="flag-icon flag-icon-background flag-icon-' + LOWER(led_vehiculos.country_code) + '"></span>' as country,
      iif(led_vehiculos.estado_vehiculo = 'A', 'Activo', 'No activo') as estado,tara,tarimas
    from led_vehiculos
    inner join led_vehiculos_periodo on led_vehiculos.vehiculo = led_vehiculos_periodo.vehiculo
    inner join clientes on led_vehiculos.cliente = clientes.cliente
    inner join country on led_vehiculos.country_code = country.country_code
    inner join led_tipos_vehiculo on led_vehiculos.tipo_vehiculo = led_tipos_vehiculo.tipo_vehiculo
    where led_vehiculos.contratista = @p_contratista
    and led_vehiculos.estado_vehiculo = @p_estado
    order by led_vehiculos.nombre_vehiculo

   else

    -- en el caso de solicitar nomina de subcontratistas, busco en el campo de contratista principal _1
    select led_subcontratista_periodo.periodo, 
         convert(varchar,led_subcontratista_periodo.periodo) as periodo_Ym,  
            led_contratistas.contratista, led_contratistas.estado_contratista, led_contratistas.contratista_1,
      led_contratistas.cliente, padrones.nombre_persona, padrones.identificacion, padrones.numero, padrones.identificador,
      identificadores.abreviatura, led_contratistas.cliente, clientes.nombre_cliente,
      LOWER(identificadores.country_code) as country_code, country.country_name, led_tipos_contratista.nombre_tipo_contratista,
      padrones_d.nombre_persona as nombre_persona_d,
      identificadores.abreviatura + ' ' + padrones.identificacion as taxid,
      '<span class="flag-icon flag-icon-background flag-icon-' + LOWER(identificadores.country_code) + '"></span>' as country,
      iif(led_contratistas.estado_contratista = 'A', 'Activo', 'No activo') as estado
      
    from led_contratistas     
    inner join led_subcontratista_periodo on led_contratistas.contratista = led_subcontratista_periodo.subcontratista
    inner join padrones on led_contratistas.id_padron = padrones.id_padron
    inner join identificadores on padrones.identificador = identificadores.identificador
    inner join clientes on led_contratistas.cliente = clientes.cliente
    inner join country on identificadores.country_code = country.country_code
    inner join led_tipos_contratista on led_contratistas.tipo_contratista = led_tipos_contratista.tipo_contratista
    inner join led_contratistas contratista_d on led_contratistas.contratista_1 = contratista_d.contratista
    inner join padrones padrones_d on contratista_d.id_padron = padrones_d.id_padron
    where led_contratistas.contratista_1 = @p_contratista
    and led_contratistas.estado_contratista = @p_estado
    and led_contratistas.contratista_1 != led_contratistas.contratista
    order by padrones.nombre_persona


  end

 end
 
END
GO

Used By

No items found