dbo.Imperium_vista_contratista_Historial1

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_contratista_1 int 4
@p_status_doc varchar 20
@p_contratista int 4
@p_periodo_desde int 4
@p_periodo_hasta int 4
@p_led_seccion varchar 1
@p_acceso tinyint 1

SQL Script

Copy
SET QUOTED_IDENTIFIER, ANSI_NULLS ON
GO

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

 /* Parámetro contratista 1 no puede ser nulo */
 @p_contratista_1           int,
 @p_status_doc            varchar(20),
 @p_contratista            int,
 @p_periodo_desde           int,
 @p_periodo_hasta           int,
 @p_led_seccion            varchar(1),
 @p_acceso             tinyint


 /*
 
  02/07/2019 : ULTIMA VERSION - PRODUCTIVA. SE ABRIERON LAS CONSULTAS DE EMPLEADOS Y VEHICULOS EN 2 SEPARANDO NIVEL CONTRATISTA
  Y DE SUBCONTRATISTA. PARA ELLO SE CRUZA LA AFECTACION DE LA EMPRESA EN LOS PERIODOS CON LAS DE LOS RECURSOS CORRESPONDIENTES.
 
  LA VERSION DEL STORE Imperium_vista_contratista_Historial QUEDA SIN USO.
 
 
  @p_contratista : para pedir documentación de un subcontratista
 
  @p_status_doc es la lista separada por "," de estados de documentos a seleccionar, 
  representada cada opción por 1 letra:
 
  E = vencidos
  N = pendientes de carga
  R = rechazados
  P = verificados parciales
  I = ingresados pendientes de verificar
  V = verificados 
 
  @p_acceso, si > 0 filtra por documentos killer de control de acceso
 
  */


 
AS
BEGIN
 -- SET NOCOUNT ON added to prevent extra result sets from
 -- interfering with SELECT statements.
 SET NOCOUNT ON;
 
 DECLARE @cliente INT

 SET @cliente = (select led_contratistas.cliente from led_contratistas where led_contratistas.contratista = @p_contratista_1)

    -- Insert statements for procedure here
 IF (@p_contratista_1 > 0 AND @p_status_doc IS NOT NULL) 
 BEGIN

  /*IF (@p_led_seccion IS NULL)
   BEGIN
   SET @p_led_seccion = 'C'
   END*/



  /* Cota máxima 12 meses */
  IF (@p_periodo_desde IS NULL) 
  BEGIN
   SET @p_periodo_desde = dbo.PeriodoAnual()
  END


  DECLARE @acceso varchar(5) = '0,1'
  IF (@p_acceso > 0) 
  begin
   SET @acceso = '1'
  end


  /*IF (@lista_tipos_doc <> '') BEGIN*/

   IF (@p_led_seccion = 'C') BEGIN

    IF (@p_contratista IS NULL) BEGIN

     IF (@p_periodo_desde IS NULL AND @p_periodo_hasta IS NULL) 

      /* Seccion C, todas las empresas, sin filtro por período */ 
      
      SELECT led_docs.doc_id, led_docs.cliente, led_docs.contratista_1, led_docs.contratista,
        led_docs.led_seccion, led_docs.periodo, led_docs.fecha_tolerancia, 
        led_docs.fecha_vigencia, led_docs.aprobacion_parcial, led_docs.status_doc,
        led_docs.tipo_doc, led_tipos_doc.nombre_tipo_doc,
        padrones.nombre_persona as empresa, padrones.identificador, padrones.numero,
        padrones_1.nombre_persona as nombre_contratista,
        CASE WHEN led_docs.status_doc = 'R' THEN 1
          WHEN led_docs.status_doc = 'E' THEN 2
          WHEN led_docs.status_doc = 'P' THEN 3
          WHEN led_docs.status_doc = 'N' THEN 4
          WHEN led_docs.status_doc = 'I' THEN 5
          WHEN led_docs.status_doc = 'V' THEN 6 END AS orden_status
      FROM led_docs
      INNER JOIN led_tipos_doc ON led_docs.tipo_doc = led_tipos_doc.tipo_doc
      INNER JOIN dbo.DelimitedSplit8K(@p_status_doc, ',') estados ON led_docs.status_doc = estados.Item
      INNER JOIN led_contratistas ON led_docs.contratista = led_contratistas.contratista
      INNER JOIN padrones ON led_contratistas.id_padron = padrones.id_padron
      INNER JOIN led_contratistas led_contratistas_1 ON led_docs.contratista_1 = led_contratistas_1.contratista
      INNER JOIN padrones padrones_1 ON led_contratistas_1.id_padron = padrones_1.id_padron

      INNER JOIN led_cliente_contratista ON (led_contratistas.tipo_contratista = led_cliente_contratista.tipo_contratista
                 AND led_docs.tipo_doc = led_cliente_contratista.tipo_doc
                 AND led_cliente_contratista.requiere_upload = 1
                 AND led_cliente_contratista.cliente = @cliente
                 AND led_cliente_contratista.ci_killer IN (select item from dbo.DelimitedSplit8K(@acceso, ',')))

      INNER JOIN led_contratista_periodo ON (led_contratistas_1.contratista = led_contratista_periodo.contratista 
               AND led_docs.periodo = led_contratista_periodo.periodo)

      WHERE led_docs.contratista_1 = @p_contratista_1
      AND led_contratistas.contratista_1 = led_contratistas.contratista
      AND led_docs.led_seccion = @p_led_seccion

      UNION

      SELECT led_docs.doc_id, led_docs.cliente, led_docs.contratista_1, led_docs.contratista,
        led_docs.led_seccion, led_docs.periodo, led_docs.fecha_tolerancia, 
        led_docs.fecha_vigencia, led_docs.aprobacion_parcial, led_docs.status_doc,
        led_docs.tipo_doc, led_tipos_doc.nombre_tipo_doc,
        padrones.nombre_persona as empresa, padrones.identificador, padrones.numero,
        padrones_1.nombre_persona as nombre_contratista,
      CASE WHEN led_docs.status_doc = 'R' THEN 1
        WHEN led_docs.status_doc = 'E' THEN 2
        WHEN led_docs.status_doc = 'P' THEN 3
        WHEN led_docs.status_doc = 'N' THEN 4
        WHEN led_docs.status_doc = 'I' THEN 5
        WHEN led_docs.status_doc = 'V' THEN 6 END AS orden_status
      FROM led_docs
      INNER JOIN led_tipos_doc ON led_docs.tipo_doc = led_tipos_doc.tipo_doc
      INNER JOIN dbo.DelimitedSplit8K(@p_status_doc, ',') estados ON led_docs.status_doc = estados.Item
      INNER JOIN led_contratistas ON led_docs.contratista = led_contratistas.contratista
      INNER JOIN padrones ON led_contratistas.id_padron = padrones.id_padron
      INNER JOIN led_contratistas led_contratistas_1 ON led_docs.contratista_1 = led_contratistas_1.contratista
      INNER JOIN padrones padrones_1 ON led_contratistas_1.id_padron = padrones_1.id_padron

      INNER JOIN led_cliente_contratista ON (led_contratistas.tipo_contratista = led_cliente_contratista.tipo_contratista
                 AND led_docs.tipo_doc = led_cliente_contratista.tipo_doc
                 AND led_cliente_contratista.requiere_upload = 1
                 AND led_cliente_contratista.cliente = @cliente
                 AND led_cliente_contratista.ci_killer IN (select item from dbo.DelimitedSplit8K(@acceso, ',')))
         
      INNER JOIN led_subcontratista_periodo ON (led_contratistas.contratista = led_subcontratista_periodo.subcontratista 
                AND led_docs.periodo = led_subcontratista_periodo.periodo)

      WHERE led_docs.contratista_1 = @p_contratista_1
      AND led_contratistas.contratista_1 <> led_contratistas.contratista
      AND led_docs.led_seccion = @p_led_seccion
      AND led_contratistas.estado_contratista = 'A'

      ORDER BY orden_status, led_docs.periodo
       


     ELSE

      IF (@p_periodo_desde IS NOT NULL AND @p_periodo_hasta IS NULL) 

       /* Seccion C, todas las empresas, período desde */ 

       SELECT led_docs.doc_id, led_docs.cliente, led_docs.contratista_1, led_docs.contratista,
         led_docs.led_seccion, led_docs.periodo, led_docs.fecha_tolerancia, 
         led_docs.fecha_vigencia, led_docs.aprobacion_parcial, led_docs.status_doc,
         led_docs.tipo_doc, led_tipos_doc.nombre_tipo_doc,
         padrones.nombre_persona as empresa, padrones.identificador, padrones.numero,
         padrones_1.nombre_persona as nombre_contratista,
        CASE WHEN led_docs.status_doc = 'R' THEN 1
          WHEN led_docs.status_doc = 'E' THEN 2
          WHEN led_docs.status_doc = 'P' THEN 3
          WHEN led_docs.status_doc = 'N' THEN 4
          WHEN led_docs.status_doc = 'I' THEN 5
          WHEN led_docs.status_doc = 'V' THEN 6 END AS orden_status
       FROM led_docs
       INNER JOIN led_tipos_doc ON led_docs.tipo_doc = led_tipos_doc.tipo_doc
       INNER JOIN dbo.DelimitedSplit8K(@p_status_doc, ',') estados ON led_docs.status_doc = estados.Item
       INNER JOIN led_contratistas ON led_docs.contratista = led_contratistas.contratista
       INNER JOIN padrones ON led_contratistas.id_padron = padrones.id_padron
       INNER JOIN led_contratistas led_contratistas_1 ON led_docs.contratista_1 = led_contratistas_1.contratista
       INNER JOIN padrones padrones_1 ON led_contratistas_1.id_padron = padrones_1.id_padron

       INNER JOIN led_cliente_contratista ON (led_contratistas.tipo_contratista = led_cliente_contratista.tipo_contratista
                  AND led_docs.tipo_doc = led_cliente_contratista.tipo_doc
                  AND led_cliente_contratista.requiere_upload = 1
                  AND led_cliente_contratista.cliente = @cliente
                  AND led_cliente_contratista.ci_killer IN (select item from dbo.DelimitedSplit8K(@acceso, ',')))


       INNER JOIN led_contratista_periodo ON (led_contratistas_1.contratista = led_contratista_periodo.contratista 
                AND led_docs.periodo = led_contratista_periodo.periodo)

       WHERE led_docs.contratista_1 = @p_contratista_1
       AND led_contratistas.contratista_1 = led_contratistas.contratista
       AND led_docs.led_seccion = @p_led_seccion
       AND led_docs.periodo >= @p_periodo_desde


       UNION

       SELECT led_docs.doc_id, led_docs.cliente, led_docs.contratista_1, led_docs.contratista,
         led_docs.led_seccion, led_docs.periodo, led_docs.fecha_tolerancia, 
         led_docs.fecha_vigencia, led_docs.aprobacion_parcial, led_docs.status_doc,
         led_docs.tipo_doc, led_tipos_doc.nombre_tipo_doc,
         padrones.nombre_persona as empresa, padrones.identificador, padrones.numero,
         padrones_1.nombre_persona as nombre_contratista,
       CASE WHEN led_docs.status_doc = 'R' THEN 1
         WHEN led_docs.status_doc = 'E' THEN 2
         WHEN led_docs.status_doc = 'P' THEN 3
         WHEN led_docs.status_doc = 'N' THEN 4
         WHEN led_docs.status_doc = 'I' THEN 5
         WHEN led_docs.status_doc = 'V' THEN 6 END AS orden_status
       FROM led_docs
       INNER JOIN led_tipos_doc ON led_docs.tipo_doc = led_tipos_doc.tipo_doc
       INNER JOIN dbo.DelimitedSplit8K(@p_status_doc, ',') estados ON led_docs.status_doc = estados.Item
       INNER JOIN led_contratistas ON led_docs.contratista = led_contratistas.contratista
       INNER JOIN padrones ON led_contratistas.id_padron = padrones.id_padron
       INNER JOIN led_contratistas led_contratistas_1 ON led_docs.contratista_1 = led_contratistas_1.contratista
       INNER JOIN padrones padrones_1 ON led_contratistas_1.id_padron = padrones_1.id_padron

       INNER JOIN led_cliente_contratista ON (led_contratistas.tipo_contratista = led_cliente_contratista.tipo_contratista
                  AND led_docs.tipo_doc = led_cliente_contratista.tipo_doc
                  AND led_cliente_contratista.requiere_upload = 1
                  AND led_cliente_contratista.cliente = @cliente
                  AND led_cliente_contratista.ci_killer IN (select item from dbo.DelimitedSplit8K(@acceso, ',')))
         
       INNER JOIN led_subcontratista_periodo ON (led_contratistas.contratista = led_subcontratista_periodo.subcontratista 
                 AND led_docs.periodo = led_subcontratista_periodo.periodo)

       WHERE led_docs.contratista_1 = @p_contratista_1
       AND led_contratistas.contratista_1 <> led_contratistas.contratista
       AND led_docs.led_seccion = @p_led_seccion
       AND led_docs.periodo >= @p_periodo_desde
       AND led_contratistas.estado_contratista = 'A'

       ORDER BY orden_status, led_docs.periodo


      ELSE

       IF (@p_periodo_desde IS NULL AND @p_periodo_hasta IS NOT NULL) 

        /* Seccion C, todas las empresas, período hasta */ 
       
        SELECT led_docs.doc_id, led_docs.cliente, led_docs.contratista_1, led_docs.contratista,
          led_docs.led_seccion, led_docs.periodo, led_docs.fecha_tolerancia, 
          led_docs.fecha_vigencia, led_docs.aprobacion_parcial, led_docs.status_doc,
          led_docs.tipo_doc, led_tipos_doc.nombre_tipo_doc,
          padrones.nombre_persona as empresa, padrones.identificador, padrones.numero,
          padrones_1.nombre_persona as nombre_contratista,
        CASE WHEN led_docs.status_doc = 'R' THEN 1
          WHEN led_docs.status_doc = 'E' THEN 2
          WHEN led_docs.status_doc = 'P' THEN 3
          WHEN led_docs.status_doc = 'N' THEN 4
          WHEN led_docs.status_doc = 'I' THEN 5
          WHEN led_docs.status_doc = 'V' THEN 6 END AS orden_status
        FROM led_docs
        INNER JOIN led_tipos_doc ON led_docs.tipo_doc = led_tipos_doc.tipo_doc
        INNER JOIN dbo.DelimitedSplit8K(@p_status_doc, ',') estados ON led_docs.status_doc = estados.Item
        INNER JOIN led_contratistas ON led_docs.contratista = led_contratistas.contratista
        INNER JOIN padrones ON led_contratistas.id_padron = padrones.id_padron
        INNER JOIN led_contratistas led_contratistas_1 ON led_docs.contratista_1 = led_contratistas_1.contratista
        INNER JOIN padrones padrones_1 ON led_contratistas_1.id_padron = padrones_1.id_padron

        INNER JOIN led_cliente_contratista ON (led_contratistas.tipo_contratista = led_cliente_contratista.tipo_contratista
                   AND led_docs.tipo_doc = led_cliente_contratista.tipo_doc
                   AND led_cliente_contratista.requiere_upload = 1
                   AND led_cliente_contratista.cliente = @cliente
                   AND led_cliente_contratista.ci_killer IN (select item from dbo.DelimitedSplit8K(@acceso, ',')))

        INNER JOIN led_contratista_periodo ON (led_contratistas_1.contratista = led_contratista_periodo.contratista 
                 AND led_docs.periodo = led_contratista_periodo.periodo)

        WHERE led_docs.contratista_1 = @p_contratista_1
        AND led_contratistas.contratista_1 = led_contratistas.contratista
        AND led_docs.led_seccion = @p_led_seccion
        AND led_docs.periodo <= @p_periodo_hasta

        UNION

        SELECT led_docs.doc_id, led_docs.cliente, led_docs.contratista_1, led_docs.contratista,
          led_docs.led_seccion, led_docs.periodo, led_docs.fecha_tolerancia, 
          led_docs.fecha_vigencia, led_docs.aprobacion_parcial, led_docs.status_doc,
          led_docs.tipo_doc, led_tipos_doc.nombre_tipo_doc,
          padrones.nombre_persona as empresa, padrones.identificador, padrones.numero,
          padrones_1.nombre_persona as nombre_contratista,
        CASE WHEN led_docs.status_doc = 'R' THEN 1
          WHEN led_docs.status_doc = 'E' THEN 2
          WHEN led_docs.status_doc = 'P' THEN 3
          WHEN led_docs.status_doc = 'N' THEN 4
          WHEN led_docs.status_doc = 'I' THEN 5
          WHEN led_docs.status_doc = 'V' THEN 6 END AS orden_status
        FROM led_docs
        INNER JOIN led_tipos_doc ON led_docs.tipo_doc = led_tipos_doc.tipo_doc
        INNER JOIN dbo.DelimitedSplit8K(@p_status_doc, ',') estados ON led_docs.status_doc = estados.Item
        INNER JOIN led_contratistas ON led_docs.contratista = led_contratistas.contratista
        INNER JOIN padrones ON led_contratistas.id_padron = padrones.id_padron
        INNER JOIN led_contratistas led_contratistas_1 ON led_docs.contratista_1 = led_contratistas_1.contratista
        INNER JOIN padrones padrones_1 ON led_contratistas_1.id_padron = padrones_1.id_padron

        INNER JOIN led_cliente_contratista ON (led_contratistas.tipo_contratista = led_cliente_contratista.tipo_contratista
                   AND led_docs.tipo_doc = led_cliente_contratista.tipo_doc
                   AND led_cliente_contratista.requiere_upload = 1
                   AND led_cliente_contratista.cliente = @cliente
                   AND led_cliente_contratista.ci_killer IN (select item from dbo.DelimitedSplit8K(@acceso, ',')))
         
        INNER JOIN led_subcontratista_periodo ON (led_contratistas.contratista = led_subcontratista_periodo.subcontratista 
                  AND led_docs.periodo = led_subcontratista_periodo.periodo)

        WHERE led_docs.contratista_1 = @p_contratista_1
        AND led_contratistas.contratista_1 <> led_contratistas.contratista
        AND led_docs.led_seccion = @p_led_seccion
        AND led_docs.periodo <= @p_periodo_hasta
        AND led_contratistas.estado_contratista = 'A'

        ORDER BY orden_status, led_docs.periodo

       ELSE

        /* Seccion C, todas las empresas, período desde hasta */ 

        SELECT led_docs.doc_id, led_docs.cliente, led_docs.contratista_1, led_docs.contratista,
          led_docs.led_seccion, led_docs.periodo, led_docs.fecha_tolerancia, 
          led_docs.fecha_vigencia, led_docs.aprobacion_parcial, led_docs.status_doc,
          led_docs.tipo_doc, led_tipos_doc.nombre_tipo_doc,
          padrones.nombre_persona as empresa, padrones.identificador, padrones.numero,
          padrones_1.nombre_persona as nombre_contratista,
        CASE WHEN led_docs.status_doc = 'R' THEN 1
          WHEN led_docs.status_doc = 'E' THEN 2
          WHEN led_docs.status_doc = 'P' THEN 3
          WHEN led_docs.status_doc = 'N' THEN 4
          WHEN led_docs.status_doc = 'I' THEN 5
          WHEN led_docs.status_doc = 'V' THEN 6 END AS orden_status
        FROM led_docs
        INNER JOIN led_tipos_doc ON led_docs.tipo_doc = led_tipos_doc.tipo_doc
        INNER JOIN dbo.DelimitedSplit8K(@p_status_doc, ',') estados ON led_docs.status_doc = estados.Item
        INNER JOIN led_contratistas ON led_docs.contratista = led_contratistas.contratista
        INNER JOIN padrones ON led_contratistas.id_padron = padrones.id_padron
        INNER JOIN led_contratistas led_contratistas_1 ON led_docs.contratista_1 = led_contratistas_1.contratista
        INNER JOIN padrones padrones_1 ON led_contratistas_1.id_padron = padrones_1.id_padron

        INNER JOIN led_cliente_contratista ON (led_contratistas.tipo_contratista = led_cliente_contratista.tipo_contratista
                   AND led_docs.tipo_doc = led_cliente_contratista.tipo_doc
                   AND led_cliente_contratista.requiere_upload = 1
                   AND led_cliente_contratista.cliente = @cliente
                   AND led_cliente_contratista.ci_killer IN (select item from dbo.DelimitedSplit8K(@acceso, ',')))

        INNER JOIN led_contratista_periodo ON (led_contratistas_1.contratista = led_contratista_periodo.contratista 
                 AND led_docs.periodo = led_contratista_periodo.periodo)

        WHERE led_docs.contratista_1 = @p_contratista_1
        AND led_contratistas.contratista_1 = led_contratistas.contratista
        AND led_docs.led_seccion = @p_led_seccion
        AND led_docs.periodo >= @p_periodo_desde
        AND led_docs.periodo <= @p_periodo_hasta


        UNION

        SELECT led_docs.doc_id, led_docs.cliente, led_docs.contratista_1, led_docs.contratista,
          led_docs.led_seccion, led_docs.periodo, led_docs.fecha_tolerancia, 
          led_docs.fecha_vigencia, led_docs.aprobacion_parcial, led_docs.status_doc,
          led_docs.tipo_doc, led_tipos_doc.nombre_tipo_doc,
          padrones.nombre_persona as empresa, padrones.identificador, padrones.numero,
          padrones_1.nombre_persona as nombre_contratista,
        CASE WHEN led_docs.status_doc = 'R' THEN 1
          WHEN led_docs.status_doc = 'E' THEN 2
          WHEN led_docs.status_doc = 'P' THEN 3
          WHEN led_docs.status_doc = 'N' THEN 4
          WHEN led_docs.status_doc = 'I' THEN 5
          WHEN led_docs.status_doc = 'V' THEN 6 END AS orden_status
        FROM led_docs
        INNER JOIN led_tipos_doc ON led_docs.tipo_doc = led_tipos_doc.tipo_doc
        INNER JOIN dbo.DelimitedSplit8K(@p_status_doc, ',') estados ON led_docs.status_doc = estados.Item
        INNER JOIN led_contratistas ON led_docs.contratista = led_contratistas.contratista
        INNER JOIN padrones ON led_contratistas.id_padron = padrones.id_padron
        INNER JOIN led_contratistas led_contratistas_1 ON led_docs.contratista_1 = led_contratistas_1.contratista
        INNER JOIN padrones padrones_1 ON led_contratistas_1.id_padron = padrones_1.id_padron

        INNER JOIN led_cliente_contratista ON (led_contratistas.tipo_contratista = led_cliente_contratista.tipo_contratista
                   AND led_docs.tipo_doc = led_cliente_contratista.tipo_doc
                   AND led_cliente_contratista.requiere_upload = 1
                   AND led_cliente_contratista.cliente = @cliente
                   AND led_cliente_contratista.ci_killer IN (select item from dbo.DelimitedSplit8K(@acceso, ',')))
         
        INNER JOIN led_subcontratista_periodo ON (led_contratistas.contratista = led_subcontratista_periodo.subcontratista 
                  AND led_docs.periodo = led_subcontratista_periodo.periodo)

        WHERE led_docs.contratista_1 = @p_contratista_1
        AND led_contratistas.contratista_1 <> led_contratistas.contratista
        AND led_docs.led_seccion = @p_led_seccion
        AND led_docs.periodo >= @p_periodo_desde
        AND led_docs.periodo <= @p_periodo_hasta
        AND led_contratistas.estado_contratista = 'A'

        ORDER BY orden_status, led_docs.periodo


    END ELSE BEGIN

     IF (@p_periodo_desde IS NULL AND @p_periodo_hasta IS NULL) 
      
      /* Seccion C, por empresa, sin filtro por período */

      SELECT led_docs.doc_id, led_docs.cliente, led_docs.contratista_1, led_docs.contratista,
        led_docs.led_seccion, led_docs.periodo, led_docs.fecha_tolerancia, 
        led_docs.fecha_vigencia, led_docs.aprobacion_parcial, led_docs.status_doc,
        led_docs.tipo_doc, led_tipos_doc.nombre_tipo_doc,
        padrones.nombre_persona as empresa, padrones.identificador, padrones.numero,
        padrones_1.nombre_persona as nombre_contratista,
        CASE WHEN led_docs.status_doc = 'R' THEN 1
          WHEN led_docs.status_doc = 'E' THEN 2
          WHEN led_docs.status_doc = 'P' THEN 3
          WHEN led_docs.status_doc = 'N' THEN 4
          WHEN led_docs.status_doc = 'I' THEN 5
          WHEN led_docs.status_doc = 'V' THEN 6 END AS orden_status
      FROM led_docs
      INNER JOIN led_tipos_doc ON led_docs.tipo_doc = led_tipos_doc.tipo_doc
      INNER JOIN dbo.DelimitedSplit8K(@p_status_doc, ',') estados ON led_docs.status_doc = estados.Item
      INNER JOIN led_contratistas ON led_docs.contratista = led_contratistas.contratista
      INNER JOIN padrones ON led_contratistas.id_padron = padrones.id_padron
      INNER JOIN led_contratistas led_contratistas_1 ON led_docs.contratista_1 = led_contratistas_1.contratista
      INNER JOIN padrones padrones_1 ON led_contratistas_1.id_padron = padrones_1.id_padron

      --INNER JOIN dbo.DelimitedSplit8K(@lista_tipos_doc, ',') tipos ON led_docs.tipo_doc = tipos.Item
      INNER JOIN led_cliente_contratista ON (led_contratistas.tipo_contratista = led_cliente_contratista.tipo_contratista
                 AND led_docs.tipo_doc = led_cliente_contratista.tipo_doc
                 AND led_cliente_contratista.requiere_upload = 1
                 AND led_cliente_contratista.cliente = @cliente
                 AND led_cliente_contratista.ci_killer IN (select item from dbo.DelimitedSplit8K(@acceso, ',')))


      WHERE led_docs.contratista_1 = @p_contratista_1
      AND led_docs.contratista = @p_contratista
      AND led_docs.led_seccion = @p_led_seccion
      ORDER BY orden_status, led_docs.periodo
       



     ELSE

      IF (@p_periodo_desde IS NOT NULL AND @p_periodo_hasta IS NULL) 

       /* Seccion C, por empresa, período desde */

       SELECT led_docs.doc_id, led_docs.cliente, led_docs.contratista_1, led_docs.contratista,
         led_docs.led_seccion, led_docs.periodo, led_docs.fecha_tolerancia, 
         led_docs.fecha_vigencia, led_docs.aprobacion_parcial, led_docs.status_doc,
         led_docs.tipo_doc, led_tipos_doc.nombre_tipo_doc,
         padrones.nombre_persona as empresa, padrones.identificador, padrones.numero,
         padrones_1.nombre_persona as nombre_contratista,
        CASE WHEN led_docs.status_doc = 'R' THEN 1
          WHEN led_docs.status_doc = 'E' THEN 2
          WHEN led_docs.status_doc = 'P' THEN 3
          WHEN led_docs.status_doc = 'N' THEN 4
          WHEN led_docs.status_doc = 'I' THEN 5
          WHEN led_docs.status_doc = 'V' THEN 6 END AS orden_status
       FROM led_docs
       INNER JOIN led_tipos_doc ON led_docs.tipo_doc = led_tipos_doc.tipo_doc
       INNER JOIN dbo.DelimitedSplit8K(@p_status_doc, ',') estados ON led_docs.status_doc = estados.Item
       INNER JOIN led_contratistas ON led_docs.contratista = led_contratistas.contratista
       INNER JOIN padrones ON led_contratistas.id_padron = padrones.id_padron
       INNER JOIN led_contratistas led_contratistas_1 ON led_docs.contratista_1 = led_contratistas_1.contratista
       INNER JOIN padrones padrones_1 ON led_contratistas_1.id_padron = padrones_1.id_padron

       --INNER JOIN dbo.DelimitedSplit8K(@lista_tipos_doc, ',') tipos ON led_docs.tipo_doc = tipos.Item
       INNER JOIN led_cliente_contratista ON (led_contratistas.tipo_contratista = led_cliente_contratista.tipo_contratista
                  AND led_docs.tipo_doc = led_cliente_contratista.tipo_doc
                  AND led_cliente_contratista.requiere_upload = 1
                  AND led_cliente_contratista.cliente = @cliente
                  AND led_cliente_contratista.ci_killer IN (select item from dbo.DelimitedSplit8K(@acceso, ',')))


       WHERE led_docs.contratista_1 = @p_contratista_1
       AND led_docs.contratista = @p_contratista
       AND led_docs.led_seccion = @p_led_seccion
       AND led_docs.periodo >= @p_periodo_desde
       ORDER BY orden_status, led_docs.periodo


      ELSE

       IF (@p_periodo_desde IS NULL AND @p_periodo_hasta IS NOT NULL) 

        /* Seccion C, por empresa, período hasta */

        SELECT led_docs.doc_id, led_docs.cliente, led_docs.contratista_1, led_docs.contratista,
          led_docs.led_seccion, led_docs.periodo, led_docs.fecha_tolerancia, 
          led_docs.fecha_vigencia, led_docs.aprobacion_parcial, led_docs.status_doc,
          led_docs.tipo_doc, led_tipos_doc.nombre_tipo_doc,
          padrones.nombre_persona as empresa, padrones.identificador, padrones.numero,
          padrones_1.nombre_persona as nombre_contratista,
        CASE WHEN led_docs.status_doc = 'R' THEN 1
          WHEN led_docs.status_doc = 'E' THEN 2
          WHEN led_docs.status_doc = 'P' THEN 3
          WHEN led_docs.status_doc = 'N' THEN 4
          WHEN led_docs.status_doc = 'I' THEN 5
          WHEN led_docs.status_doc = 'V' THEN 6 END AS orden_status
        FROM led_docs
        INNER JOIN led_tipos_doc ON led_docs.tipo_doc = led_tipos_doc.tipo_doc
        INNER JOIN dbo.DelimitedSplit8K(@p_status_doc, ',') estados ON led_docs.status_doc = estados.Item
        INNER JOIN led_contratistas ON led_docs.contratista = led_contratistas.contratista
        INNER JOIN padrones ON led_contratistas.id_padron = padrones.id_padron
        INNER JOIN led_contratistas led_contratistas_1 ON led_docs.contratista_1 = led_contratistas_1.contratista
        INNER JOIN padrones padrones_1 ON led_contratistas_1.id_padron = padrones_1.id_padron


        --INNER JOIN dbo.DelimitedSplit8K(@lista_tipos_doc, ',') tipos ON led_docs.tipo_doc = tipos.Item
        INNER JOIN led_cliente_contratista ON (led_contratistas.tipo_contratista = led_cliente_contratista.tipo_contratista
                   AND led_docs.tipo_doc = led_cliente_contratista.tipo_doc
                   AND led_cliente_contratista.requiere_upload = 1
                   AND led_cliente_contratista.cliente = @cliente
                   AND led_cliente_contratista.ci_killer IN (select item from dbo.DelimitedSplit8K(@acceso, ',')))


        WHERE led_docs.contratista_1 = @p_contratista_1
        AND led_docs.contratista = @p_contratista
        AND led_docs.led_seccion = @p_led_seccion
        AND led_docs.periodo <= @p_periodo_hasta
        ORDER BY orden_status, led_docs.periodo
       
       ELSE

        /* Sección C, por empresa, período desde - hasta */

        SELECT led_docs.doc_id, led_docs.cliente, led_docs.contratista_1, led_docs.contratista,
          led_docs.led_seccion, led_docs.periodo, led_docs.fecha_tolerancia, 
          led_docs.fecha_vigencia, led_docs.aprobacion_parcial, led_docs.status_doc,
          led_docs.tipo_doc, led_tipos_doc.nombre_tipo_doc,
          padrones.nombre_persona as empresa, padrones.identificador, padrones.numero,
          padrones_1.nombre_persona as nombre_contratista,
        CASE WHEN led_docs.status_doc = 'R' THEN 1
          WHEN led_docs.status_doc = 'E' THEN 2
          WHEN led_docs.status_doc = 'P' THEN 3
          WHEN led_docs.status_doc = 'N' THEN 4
          WHEN led_docs.status_doc = 'I' THEN 5
          WHEN led_docs.status_doc = 'V' THEN 6 END AS orden_status
        FROM led_docs
        INNER JOIN led_tipos_doc ON led_docs.tipo_doc = led_tipos_doc.tipo_doc
        INNER JOIN dbo.DelimitedSplit8K(@p_status_doc, ',') estados ON led_docs.status_doc = estados.Item
        INNER JOIN led_contratistas ON led_docs.contratista = led_contratistas.contratista
        INNER JOIN padrones ON led_contratistas.id_padron = padrones.id_padron
        INNER JOIN led_contratistas led_contratistas_1 ON led_docs.contratista_1 = led_contratistas_1.contratista
        INNER JOIN padrones padrones_1 ON led_contratistas_1.id_padron = padrones_1.id_padron

        --INNER JOIN dbo.DelimitedSplit8K(@lista_tipos_doc, ',') tipos ON led_docs.tipo_doc = tipos.Item
        INNER JOIN led_cliente_contratista ON (led_contratistas.tipo_contratista = led_cliente_contratista.tipo_contratista
                   AND led_docs.tipo_doc = led_cliente_contratista.tipo_doc
                   AND led_cliente_contratista.requiere_upload = 1
                   AND led_cliente_contratista.cliente = @cliente
                   AND led_cliente_contratista.ci_killer IN (select item from dbo.DelimitedSplit8K(@acceso, ',')))


        WHERE led_docs.contratista_1 = @p_contratista_1
        AND led_docs.contratista = @p_contratista
        AND led_docs.led_seccion = @p_led_seccion
        AND led_docs.periodo >= @p_periodo_desde
        AND led_docs.periodo <= @p_periodo_hasta
        ORDER BY orden_status, led_docs.periodo

    END
    


   END ELSE

    IF (@p_led_seccion = 'E') BEGIN

     IF (@p_contratista IS NULL) BEGIN

      IF (@p_periodo_desde IS NULL AND @p_periodo_hasta IS NULL) 

       /* Seccion E, todas las empresas, sin filtro por período */

       SELECT NULL AS doc_id, led_contratistas_1.cliente, led_contratistas.contratista_1,
          led_contratistas.contratista, EMPLEADOS.led_seccion, EMPLEADOS.periodo,
          NULL AS fecha_tolerancia, NULL AS fecha_vigencia, NULL AS aprobacion_parcial, 
          EMPLEADOS.status_doc, EMPLEADOS.tipo_doc, led_tipos_doc.nombre_tipo_doc,
          padrones.nombre_persona as empresa, padrones.identificador, padrones.numero,
          padrones_1.nombre_persona as nombre_contratista,
          CASE WHEN EMPLEADOS.status_doc = 'R' THEN 1
            WHEN EMPLEADOS.status_doc = 'E' THEN 2
            WHEN EMPLEADOS.status_doc = 'P' THEN 3
            WHEN EMPLEADOS.status_doc = 'N' THEN 4
            WHEN EMPLEADOS.status_doc = 'I' THEN 5
            WHEN EMPLEADOS.status_doc = 'V' THEN 6 END AS orden_status

       FROM
         (SELECT DOC_EMPLEADOS.tipo_doc, DOC_EMPLEADOS.led_seccion, DOC_EMPLEADOS.contratista_1,
         DOC_EMPLEADOS.contratista, DOC_EMPLEADOS.periodo, MAX(DOC_EMPLEADOS.estado_value) AS max_estado,
         CASE
          WHEN MAX(DOC_EMPLEADOS.estado_value) = 10 THEN 'R'
          WHEN MAX(DOC_EMPLEADOS.estado_value) = 7 THEN 'E'
          WHEN MAX(DOC_EMPLEADOS.estado_value) = 5 THEN 'N'
          WHEN MAX(DOC_EMPLEADOS.estado_value) = 3 THEN 'I'
          WHEN MAX(DOC_EMPLEADOS.estado_value) = 1 THEN 'V'
         END AS status_doc   
         FROM
          (select led_docs.doc_id, led_docs.tipo_doc, led_docs.status_doc, led_docs.led_seccion,
             led_docs.contratista_1, led_docs.contratista, led_docs.periodo,
           CASE 
            WHEN led_docs.status_doc = 'R' THEN 10
            WHEN led_docs.status_doc = 'E' THEN 7
            WHEN led_docs.status_doc = 'N' THEN 5
            WHEN led_docs.status_doc = 'I' THEN 3
            WHEN led_docs.status_doc = 'V' THEN 1
           END AS estado_value
          from led_docs
          inner join dbo.DelimitedSplit8K(@p_status_doc, ',') estados ON led_docs.status_doc = estados.Item
          
          --inner join dbo.DelimitedSplit8K(@lista_tipos_doc, ',') tipos ON led_docs.tipo_doc = tipos.Item
          INNER JOIN led_empleados ON led_docs.empleado = led_empleados.empleado
          INNER JOIN led_cliente_empleado ON (led_empleados.tipo_empleado = led_cliente_empleado.tipo_empleado
                     AND led_docs.tipo_doc = led_cliente_empleado.tipo_doc
                     AND led_cliente_empleado.requiere_upload = 1
                     AND led_cliente_empleado.cliente = @cliente
                     AND led_cliente_empleado.ci_killer IN (select item from dbo.DelimitedSplit8K(@acceso, ',')))
          INNER JOIN led_empleados_periodo ON (led_docs.empleado = led_empleados_periodo.empleado AND led_docs.periodo = led_empleados_periodo.periodo)
          
          inner join led_contratista_periodo on (led_empleados.contratista = led_contratista_periodo.contratista AND led_empleados_periodo.periodo = led_contratista_periodo.periodo)
          
          where led_docs.contratista_1 = @p_contratista_1
          and led_docs.led_seccion = 'E') DOC_EMPLEADOS
         GROUP BY DOC_EMPLEADOS.tipo_doc, DOC_EMPLEADOS.led_seccion, DOC_EMPLEADOS.contratista_1,
           DOC_EMPLEADOS.contratista, DOC_EMPLEADOS.periodo) EMPLEADOS

       INNER JOIN led_tipos_doc ON EMPLEADOS.tipo_doc = led_tipos_doc.tipo_doc
       INNER JOIN led_contratistas AS led_contratistas_1 ON EMPLEADOS.contratista_1 = led_contratistas_1.contratista
       INNER JOIN padrones AS padrones_1 ON led_contratistas_1.id_padron = padrones_1.id_padron
       INNER JOIN led_contratistas ON EMPLEADOS.contratista = led_contratistas.contratista
       INNER JOIN padrones ON led_contratistas.id_padron = padrones.id_padron

       UNION

       SELECT NULL AS doc_id, led_contratistas_1.cliente, led_contratistas.contratista_1,
          led_contratistas.contratista, EMPLEADOS.led_seccion, EMPLEADOS.periodo,
          NULL AS fecha_tolerancia, NULL AS fecha_vigencia, NULL AS aprobacion_parcial, 
          EMPLEADOS.status_doc, EMPLEADOS.tipo_doc, led_tipos_doc.nombre_tipo_doc,
          padrones.nombre_persona as empresa, padrones.identificador, padrones.numero,
          padrones_1.nombre_persona as nombre_contratista,
          CASE WHEN EMPLEADOS.status_doc = 'R' THEN 1
            WHEN EMPLEADOS.status_doc = 'E' THEN 2
            WHEN EMPLEADOS.status_doc = 'P' THEN 3
            WHEN EMPLEADOS.status_doc = 'N' THEN 4
            WHEN EMPLEADOS.status_doc = 'I' THEN 5
            WHEN EMPLEADOS.status_doc = 'V' THEN 6 END AS orden_status

       FROM
         (SELECT DOC_EMPLEADOS.tipo_doc, DOC_EMPLEADOS.led_seccion, DOC_EMPLEADOS.contratista_1,
         DOC_EMPLEADOS.contratista, DOC_EMPLEADOS.periodo, MAX(DOC_EMPLEADOS.estado_value) AS max_estado,
         CASE
          WHEN MAX(DOC_EMPLEADOS.estado_value) = 10 THEN 'R'
          WHEN MAX(DOC_EMPLEADOS.estado_value) = 7 THEN 'E'
          WHEN MAX(DOC_EMPLEADOS.estado_value) = 5 THEN 'N'
          WHEN MAX(DOC_EMPLEADOS.estado_value) = 3 THEN 'I'
          WHEN MAX(DOC_EMPLEADOS.estado_value) = 1 THEN 'V'
         END AS status_doc   
         FROM
          (select led_docs.doc_id, led_docs.tipo_doc, led_docs.status_doc, led_docs.led_seccion,
             led_docs.contratista_1, led_docs.contratista, led_docs.periodo,
           CASE 
            WHEN led_docs.status_doc = 'R' THEN 10
            WHEN led_docs.status_doc = 'E' THEN 7
            WHEN led_docs.status_doc = 'N' THEN 5
            WHEN led_docs.status_doc = 'I' THEN 3
            WHEN led_docs.status_doc = 'V' THEN 1
           END AS estado_value
          from led_docs
          inner join dbo.DelimitedSplit8K(@p_status_doc, ',') estados ON led_docs.status_doc = estados.Item
          
          --inner join dbo.DelimitedSplit8K(@lista_tipos_doc, ',') tipos ON led_docs.tipo_doc = tipos.Item
          INNER JOIN led_empleados ON led_docs.empleado = led_empleados.empleado
          INNER JOIN led_cliente_empleado ON (led_empleados.tipo_empleado = led_cliente_empleado.tipo_empleado
                     AND led_docs.tipo_doc = led_cliente_empleado.tipo_doc
                     AND led_cliente_empleado.requiere_upload = 1
                     AND led_cliente_empleado.cliente = @cliente
                     AND led_cliente_empleado.ci_killer IN (select item from dbo.DelimitedSplit8K(@acceso, ',')))
          INNER JOIN led_empleados_periodo ON (led_docs.empleado = led_empleados_periodo.empleado AND led_docs.periodo = led_empleados_periodo.periodo)
          inner join led_contratista_periodo on (led_empleados.contratista = led_contratista_periodo.contratista AND led_empleados_periodo.periodo = led_contratista_periodo.periodo)

          inner join led_subcontratista_periodo on (led_empleados.contratista = led_subcontratista_periodo.subcontratista AND led_empleados_periodo.periodo = led_subcontratista_periodo.periodo)
          
          where led_docs.contratista_1 = @p_contratista_1
          and led_docs.led_seccion = 'E') DOC_EMPLEADOS
         GROUP BY DOC_EMPLEADOS.tipo_doc, DOC_EMPLEADOS.led_seccion, DOC_EMPLEADOS.contratista_1,
           DOC_EMPLEADOS.contratista, DOC_EMPLEADOS.periodo) EMPLEADOS

       INNER JOIN led_tipos_doc ON EMPLEADOS.tipo_doc = led_tipos_doc.tipo_doc
       INNER JOIN led_contratistas AS led_contratistas_1 ON EMPLEADOS.contratista_1 = led_contratistas_1.contratista
       INNER JOIN padrones AS padrones_1 ON led_contratistas_1.id_padron = padrones_1.id_padron
       INNER JOIN led_contratistas ON EMPLEADOS.contratista = led_contratistas.contratista
       INNER JOIN padrones ON led_contratistas.id_padron = padrones.id_padron


       --ORDER BY orden_status, EMPLEADOS.periodo, led_tipos_doc.nombre_tipo_doc
       ORDER BY orden_status, periodo, nombre_tipo_doc




      ELSE

       IF (@p_periodo_desde IS NOT NULL AND @p_periodo_hasta IS NULL) 

        /* Seccion E, todas las empresas, período desde */

        SELECT NULL AS doc_id, led_contratistas_1.cliente, led_contratistas.contratista_1,
           led_contratistas.contratista, EMPLEADOS.led_seccion, EMPLEADOS.periodo,
           NULL AS fecha_tolerancia, NULL AS fecha_vigencia, NULL AS aprobacion_parcial, 
           EMPLEADOS.status_doc, EMPLEADOS.tipo_doc, led_tipos_doc.nombre_tipo_doc,
           padrones.nombre_persona as empresa, padrones.identificador, padrones.numero,
           padrones_1.nombre_persona as nombre_contratista,
          CASE WHEN EMPLEADOS.status_doc = 'R' THEN 1
            WHEN EMPLEADOS.status_doc = 'E' THEN 2
            WHEN EMPLEADOS.status_doc = 'P' THEN 3
            WHEN EMPLEADOS.status_doc = 'N' THEN 4
            WHEN EMPLEADOS.status_doc = 'I' THEN 5
            WHEN EMPLEADOS.status_doc = 'V' THEN 6 END AS orden_status

        FROM
          (SELECT DOC_EMPLEADOS.tipo_doc, DOC_EMPLEADOS.led_seccion, DOC_EMPLEADOS.contratista_1,
          DOC_EMPLEADOS.contratista, DOC_EMPLEADOS.periodo, MAX(DOC_EMPLEADOS.estado_value) AS max_estado,
          CASE
           WHEN MAX(DOC_EMPLEADOS.estado_value) = 10 THEN 'R'
           WHEN MAX(DOC_EMPLEADOS.estado_value) = 7 THEN 'E'
           WHEN MAX(DOC_EMPLEADOS.estado_value) = 5 THEN 'N'
           WHEN MAX(DOC_EMPLEADOS.estado_value) = 3 THEN 'I'
           WHEN MAX(DOC_EMPLEADOS.estado_value) = 1 THEN 'V'
          END AS status_doc   
          FROM
           (select led_docs.doc_id, led_docs.tipo_doc, led_docs.status_doc, led_docs.led_seccion,
              led_docs.contratista_1, led_docs.contratista, led_docs.periodo,
            CASE 
             WHEN led_docs.status_doc = 'R' THEN 10
             WHEN led_docs.status_doc = 'E' THEN 7
             WHEN led_docs.status_doc = 'N' THEN 5
             WHEN led_docs.status_doc = 'I' THEN 3
             WHEN led_docs.status_doc = 'V' THEN 1
            END AS estado_value
           from led_docs
           inner join dbo.DelimitedSplit8K(@p_status_doc, ',') estados ON led_docs.status_doc = estados.Item
           
           --inner join dbo.DelimitedSplit8K(@lista_tipos_doc, ',') tipos ON led_docs.tipo_doc = tipos.Item
           INNER JOIN led_empleados ON led_docs.empleado = led_empleados.empleado
           INNER JOIN led_cliente_empleado ON (led_empleados.tipo_empleado = led_cliente_empleado.tipo_empleado
                      AND led_docs.tipo_doc = led_cliente_empleado.tipo_doc
                      AND led_cliente_empleado.requiere_upload = 1
                      AND led_cliente_empleado.cliente = @cliente                      
                      AND led_cliente_empleado.ci_killer IN (select item from dbo.DelimitedSplit8K(@acceso, ',')))
           INNER JOIN led_empleados_periodo ON (led_docs.empleado = led_empleados_periodo.empleado AND led_docs.periodo = led_empleados_periodo.periodo)
           inner join led_contratista_periodo on (led_empleados.contratista = led_contratista_periodo.contratista AND led_empleados_periodo.periodo = led_contratista_periodo.periodo)

           where led_docs.contratista_1 = @p_contratista_1
           and led_docs.periodo >= @p_periodo_desde
           and led_docs.led_seccion = 'E') DOC_EMPLEADOS
          GROUP BY DOC_EMPLEADOS.tipo_doc, DOC_EMPLEADOS.led_seccion, DOC_EMPLEADOS.contratista_1,
            DOC_EMPLEADOS.contratista, DOC_EMPLEADOS.periodo) EMPLEADOS

        INNER JOIN led_tipos_doc ON EMPLEADOS.tipo_doc = led_tipos_doc.tipo_doc
        INNER JOIN led_contratistas AS led_contratistas_1 ON EMPLEADOS.contratista_1 = led_contratistas_1.contratista
        INNER JOIN padrones AS padrones_1 ON led_contratistas_1.id_padron = padrones_1.id_padron
        INNER JOIN led_contratistas ON EMPLEADOS.contratista = led_contratistas.contratista
        INNER JOIN padrones ON led_contratistas.id_padron = padrones.id_padron

        UNION

        SELECT NULL AS doc_id, led_contratistas_1.cliente, led_contratistas.contratista_1,
           led_contratistas.contratista, EMPLEADOS.led_seccion, EMPLEADOS.periodo,
           NULL AS fecha_tolerancia, NULL AS fecha_vigencia, NULL AS aprobacion_parcial, 
           EMPLEADOS.status_doc, EMPLEADOS.tipo_doc, led_tipos_doc.nombre_tipo_doc,
           padrones.nombre_persona as empresa, padrones.identificador, padrones.numero,
           padrones_1.nombre_persona as nombre_contratista,
          CASE WHEN EMPLEADOS.status_doc = 'R' THEN 1
            WHEN EMPLEADOS.status_doc = 'E' THEN 2
            WHEN EMPLEADOS.status_doc = 'P' THEN 3
            WHEN EMPLEADOS.status_doc = 'N' THEN 4
            WHEN EMPLEADOS.status_doc = 'I' THEN 5
            WHEN EMPLEADOS.status_doc = 'V' THEN 6 END AS orden_status

        FROM
          (SELECT DOC_EMPLEADOS.tipo_doc, DOC_EMPLEADOS.led_seccion, DOC_EMPLEADOS.contratista_1,
          DOC_EMPLEADOS.contratista, DOC_EMPLEADOS.periodo, MAX(DOC_EMPLEADOS.estado_value) AS max_estado,
          CASE
           WHEN MAX(DOC_EMPLEADOS.estado_value) = 10 THEN 'R'
           WHEN MAX(DOC_EMPLEADOS.estado_value) = 7 THEN 'E'
           WHEN MAX(DOC_EMPLEADOS.estado_value) = 5 THEN 'N'
           WHEN MAX(DOC_EMPLEADOS.estado_value) = 3 THEN 'I'
           WHEN MAX(DOC_EMPLEADOS.estado_value) = 1 THEN 'V'
          END AS status_doc   
          FROM
           (select led_docs.doc_id, led_docs.tipo_doc, led_docs.status_doc, led_docs.led_seccion,
              led_docs.contratista_1, led_docs.contratista, led_docs.periodo,
            CASE 
             WHEN led_docs.status_doc = 'R' THEN 10
             WHEN led_docs.status_doc = 'E' THEN 7
             WHEN led_docs.status_doc = 'N' THEN 5
             WHEN led_docs.status_doc = 'I' THEN 3
             WHEN led_docs.status_doc = 'V' THEN 1
            END AS estado_value
           from led_docs
           inner join dbo.DelimitedSplit8K(@p_status_doc, ',') estados ON led_docs.status_doc = estados.Item
           
           --inner join dbo.DelimitedSplit8K(@lista_tipos_doc, ',') tipos ON led_docs.tipo_doc = tipos.Item
           INNER JOIN led_empleados ON led_docs.empleado = led_empleados.empleado
           INNER JOIN led_cliente_empleado ON (led_empleados.tipo_empleado = led_cliente_empleado.tipo_empleado
                      AND led_docs.tipo_doc = led_cliente_empleado.tipo_doc
                      AND led_cliente_empleado.requiere_upload = 1
                      AND led_cliente_empleado.cliente = @cliente                      
                      AND led_cliente_empleado.ci_killer IN (select item from dbo.DelimitedSplit8K(@acceso, ',')))
           INNER JOIN led_empleados_periodo ON (led_docs.empleado = led_empleados_periodo.empleado AND led_docs.periodo = led_empleados_periodo.periodo)
           inner join led_subcontratista_periodo on (led_empleados.contratista = led_subcontratista_periodo.subcontratista AND led_empleados_periodo.periodo = led_subcontratista_periodo.periodo)

           where led_docs.contratista_1 = @p_contratista_1
           and led_docs.periodo >= @p_periodo_desde
           and led_docs.led_seccion = 'E') DOC_EMPLEADOS
          GROUP BY DOC_EMPLEADOS.tipo_doc, DOC_EMPLEADOS.led_seccion, DOC_EMPLEADOS.contratista_1,
            DOC_EMPLEADOS.contratista, DOC_EMPLEADOS.periodo) EMPLEADOS

        INNER JOIN led_tipos_doc ON EMPLEADOS.tipo_doc = led_tipos_doc.tipo_doc
        INNER JOIN led_contratistas AS led_contratistas_1 ON EMPLEADOS.contratista_1 = led_contratistas_1.contratista
        INNER JOIN padrones AS padrones_1 ON led_contratistas_1.id_padron = padrones_1.id_padron
        INNER JOIN led_contratistas ON EMPLEADOS.contratista = led_contratistas.contratista
        INNER JOIN padrones ON led_contratistas.id_padron = padrones.id_padron


        --ORDER BY orden_status, EMPLEADOS.periodo, led_tipos_doc.nombre_tipo_doc
        ORDER BY orden_status, periodo, nombre_tipo_doc




       ELSE

        IF (@p_periodo_desde IS NULL AND @p_periodo_hasta IS NOT NULL) 

         /* Seccion E, todas las empresas, período hasta */

         SELECT NULL AS doc_id, led_contratistas_1.cliente, led_contratistas.contratista_1,
            led_contratistas.contratista, EMPLEADOS.led_seccion, EMPLEADOS.periodo,
            NULL AS fecha_tolerancia, NULL AS fecha_vigencia, NULL AS aprobacion_parcial, 
            EMPLEADOS.status_doc, EMPLEADOS.tipo_doc, led_tipos_doc.nombre_tipo_doc,
            padrones.nombre_persona as empresa, padrones.identificador, padrones.numero,
            padrones_1.nombre_persona as nombre_contratista,
          CASE WHEN EMPLEADOS.status_doc = 'R' THEN 1
            WHEN EMPLEADOS.status_doc = 'E' THEN 2
            WHEN EMPLEADOS.status_doc = 'P' THEN 3
            WHEN EMPLEADOS.status_doc = 'N' THEN 4
            WHEN EMPLEADOS.status_doc = 'I' THEN 5
            WHEN EMPLEADOS.status_doc = 'V' THEN 6 END AS orden_status

         FROM
           (SELECT DOC_EMPLEADOS.tipo_doc, DOC_EMPLEADOS.led_seccion, DOC_EMPLEADOS.contratista_1,
           DOC_EMPLEADOS.contratista, DOC_EMPLEADOS.periodo, MAX(DOC_EMPLEADOS.estado_value) AS max_estado,
           CASE
            WHEN MAX(DOC_EMPLEADOS.estado_value) = 10 THEN 'R'
            WHEN MAX(DOC_EMPLEADOS.estado_value) = 7 THEN 'E'
            WHEN MAX(DOC_EMPLEADOS.estado_value) = 5 THEN 'N'
            WHEN MAX(DOC_EMPLEADOS.estado_value) = 3 THEN 'I'
            WHEN MAX(DOC_EMPLEADOS.estado_value) = 1 THEN 'V'
           END AS status_doc   
           FROM
            (select led_docs.doc_id, led_docs.tipo_doc, led_docs.status_doc, led_docs.led_seccion,
               led_docs.contratista_1, led_docs.contratista, led_docs.periodo,
             CASE 
              WHEN led_docs.status_doc = 'R' THEN 10
              WHEN led_docs.status_doc = 'E' THEN 7
              WHEN led_docs.status_doc = 'N' THEN 5
              WHEN led_docs.status_doc = 'I' THEN 3
              WHEN led_docs.status_doc = 'V' THEN 1
             END AS estado_value
            from led_docs
            inner join dbo.DelimitedSplit8K(@p_status_doc, ',') estados ON led_docs.status_doc = estados.Item

            --inner join dbo.DelimitedSplit8K(@lista_tipos_doc, ',') tipos ON led_docs.tipo_doc = tipos.Item
            INNER JOIN led_empleados ON led_docs.empleado = led_empleados.empleado
            INNER JOIN led_cliente_empleado ON (led_empleados.tipo_empleado = led_cliente_empleado.tipo_empleado
                       AND led_docs.tipo_doc = led_cliente_empleado.tipo_doc
                       AND led_cliente_empleado.requiere_upload = 1
                       AND led_cliente_empleado.cliente = @cliente
                       AND led_cliente_empleado.ci_killer IN (select item from dbo.DelimitedSplit8K(@acceso, ',')))
            INNER JOIN led_empleados_periodo ON (led_docs.empleado = led_empleados_periodo.empleado AND led_docs.periodo = led_empleados_periodo.periodo)           
            inner join led_contratista_periodo on (led_empleados.contratista = led_contratista_periodo.contratista AND led_empleados_periodo.periodo = led_contratista_periodo.periodo)


            where led_docs.contratista_1 = @p_contratista_1
            and led_docs.periodo <= @p_periodo_hasta
            and led_docs.led_seccion = 'E') DOC_EMPLEADOS
           GROUP BY DOC_EMPLEADOS.tipo_doc, DOC_EMPLEADOS.led_seccion, DOC_EMPLEADOS.contratista_1,
             DOC_EMPLEADOS.contratista, DOC_EMPLEADOS.periodo) EMPLEADOS

         INNER JOIN led_tipos_doc ON EMPLEADOS.tipo_doc = led_tipos_doc.tipo_doc
         INNER JOIN led_contratistas AS led_contratistas_1 ON EMPLEADOS.contratista_1 = led_contratistas_1.contratista
         INNER JOIN padrones AS padrones_1 ON led_contratistas_1.id_padron = padrones_1.id_padron
         INNER JOIN led_contratistas ON EMPLEADOS.contratista = led_contratistas.contratista
         INNER JOIN padrones ON led_contratistas.id_padron = padrones.id_padron
         
         UNION

         SELECT NULL AS doc_id, led_contratistas_1.cliente, led_contratistas.contratista_1,
            led_contratistas.contratista, EMPLEADOS.led_seccion, EMPLEADOS.periodo,
            NULL AS fecha_tolerancia, NULL AS fecha_vigencia, NULL AS aprobacion_parcial, 
            EMPLEADOS.status_doc, EMPLEADOS.tipo_doc, led_tipos_doc.nombre_tipo_doc,
            padrones.nombre_persona as empresa, padrones.identificador, padrones.numero,
            padrones_1.nombre_persona as nombre_contratista,
          CASE WHEN EMPLEADOS.status_doc = 'R' THEN 1
            WHEN EMPLEADOS.status_doc = 'E' THEN 2
            WHEN EMPLEADOS.status_doc = 'P' THEN 3
            WHEN EMPLEADOS.status_doc = 'N' THEN 4
            WHEN EMPLEADOS.status_doc = 'I' THEN 5
            WHEN EMPLEADOS.status_doc = 'V' THEN 6 END AS orden_status

         FROM
           (SELECT DOC_EMPLEADOS.tipo_doc, DOC_EMPLEADOS.led_seccion, DOC_EMPLEADOS.contratista_1,
           DOC_EMPLEADOS.contratista, DOC_EMPLEADOS.periodo, MAX(DOC_EMPLEADOS.estado_value) AS max_estado,
           CASE
            WHEN MAX(DOC_EMPLEADOS.estado_value) = 10 THEN 'R'
            WHEN MAX(DOC_EMPLEADOS.estado_value) = 7 THEN 'E'
            WHEN MAX(DOC_EMPLEADOS.estado_value) = 5 THEN 'N'
            WHEN MAX(DOC_EMPLEADOS.estado_value) = 3 THEN 'I'
            WHEN MAX(DOC_EMPLEADOS.estado_value) = 1 THEN 'V'
           END AS status_doc   
           FROM
            (select led_docs.doc_id, led_docs.tipo_doc, led_docs.status_doc, led_docs.led_seccion,
               led_docs.contratista_1, led_docs.contratista, led_docs.periodo,
             CASE 
              WHEN led_docs.status_doc = 'R' THEN 10
              WHEN led_docs.status_doc = 'E' THEN 7
              WHEN led_docs.status_doc = 'N' THEN 5
              WHEN led_docs.status_doc = 'I' THEN 3
              WHEN led_docs.status_doc = 'V' THEN 1
             END AS estado_value
            from led_docs
            inner join dbo.DelimitedSplit8K(@p_status_doc, ',') estados ON led_docs.status_doc = estados.Item

            --inner join dbo.DelimitedSplit8K(@lista_tipos_doc, ',') tipos ON led_docs.tipo_doc = tipos.Item
            INNER JOIN led_empleados ON led_docs.empleado = led_empleados.empleado
            INNER JOIN led_cliente_empleado ON (led_empleados.tipo_empleado = led_cliente_empleado.tipo_empleado
                       AND led_docs.tipo_doc = led_cliente_empleado.tipo_doc
                       AND led_cliente_empleado.requiere_upload = 1
                       AND led_cliente_empleado.cliente = @cliente
                       AND led_cliente_empleado.ci_killer IN (select item from dbo.DelimitedSplit8K(@acceso, ',')))
            INNER JOIN led_empleados_periodo ON (led_docs.empleado = led_empleados_periodo.empleado AND led_docs.periodo = led_empleados_periodo.periodo)           
            inner join led_subcontratista_periodo on (led_empleados.contratista = led_subcontratista_periodo.subcontratista AND led_empleados_periodo.periodo = led_subcontratista_periodo.periodo)

            where led_docs.contratista_1 = @p_contratista_1
            and led_docs.periodo <= @p_periodo_hasta
            and led_docs.led_seccion = 'E') DOC_EMPLEADOS
           GROUP BY DOC_EMPLEADOS.tipo_doc, DOC_EMPLEADOS.led_seccion, DOC_EMPLEADOS.contratista_1,
             DOC_EMPLEADOS.contratista, DOC_EMPLEADOS.periodo) EMPLEADOS

         INNER JOIN led_tipos_doc ON EMPLEADOS.tipo_doc = led_tipos_doc.tipo_doc
         INNER JOIN led_contratistas AS led_contratistas_1 ON EMPLEADOS.contratista_1 = led_contratistas_1.contratista
         INNER JOIN padrones AS padrones_1 ON led_contratistas_1.id_padron = padrones_1.id_padron
         INNER JOIN led_contratistas ON EMPLEADOS.contratista = led_contratistas.contratista
         INNER JOIN padrones ON led_contratistas.id_padron = padrones.id_padron


         --ORDER BY orden_status, EMPLEADOS.periodo, led_tipos_doc.nombre_tipo_doc
         ORDER BY orden_status, periodo, nombre_tipo_doc
       
        ELSE

         /* Seccion E, todas las empresas, período desde - hasta */

         SELECT NULL AS doc_id, led_contratistas_1.cliente, led_contratistas.contratista_1,
            led_contratistas.contratista, EMPLEADOS.led_seccion, EMPLEADOS.periodo,
            NULL AS fecha_tolerancia, NULL AS fecha_vigencia, NULL AS aprobacion_parcial, 
            EMPLEADOS.status_doc, EMPLEADOS.tipo_doc, led_tipos_doc.nombre_tipo_doc,
            padrones.nombre_persona as empresa, padrones.identificador, padrones.numero,
            padrones_1.nombre_persona as nombre_contratista,
          CASE WHEN EMPLEADOS.status_doc = 'R' THEN 1
            WHEN EMPLEADOS.status_doc = 'E' THEN 2
            WHEN EMPLEADOS.status_doc = 'P' THEN 3
            WHEN EMPLEADOS.status_doc = 'N' THEN 4
            WHEN EMPLEADOS.status_doc = 'I' THEN 5
            WHEN EMPLEADOS.status_doc = 'V' THEN 6 END AS orden_status

         FROM
           (SELECT DOC_EMPLEADOS.tipo_doc, DOC_EMPLEADOS.led_seccion, DOC_EMPLEADOS.contratista_1,
           DOC_EMPLEADOS.contratista, DOC_EMPLEADOS.periodo, MAX(DOC_EMPLEADOS.estado_value) AS max_estado,
           CASE
            WHEN MAX(DOC_EMPLEADOS.estado_value) = 10 THEN 'R'
            WHEN MAX(DOC_EMPLEADOS.estado_value) = 7 THEN 'E'
            WHEN MAX(DOC_EMPLEADOS.estado_value) = 5 THEN 'N'
            WHEN MAX(DOC_EMPLEADOS.estado_value) = 3 THEN 'I'
            WHEN MAX(DOC_EMPLEADOS.estado_value) = 1 THEN 'V'
           END AS status_doc   
           FROM
            (select led_docs.doc_id, led_docs.tipo_doc, led_docs.status_doc, led_docs.led_seccion,
               led_docs.contratista_1, led_docs.contratista, led_docs.periodo,
             CASE 
              WHEN led_docs.status_doc = 'R' THEN 10
              WHEN led_docs.status_doc = 'E' THEN 7
              WHEN led_docs.status_doc = 'N' THEN 5
              WHEN led_docs.status_doc = 'I' THEN 3
              WHEN led_docs.status_doc = 'V' THEN 1
             END AS estado_value
            from led_docs
            inner join dbo.DelimitedSplit8K(@p_status_doc, ',') estados ON led_docs.status_doc = estados.Item
            
            --inner join dbo.DelimitedSplit8K(@lista_tipos_doc, ',') tipos ON led_docs.tipo_doc = tipos.Item
            INNER JOIN led_empleados ON led_docs.empleado = led_empleados.empleado
            INNER JOIN led_cliente_empleado ON (led_empleados.tipo_empleado = led_cliente_empleado.tipo_empleado
                       AND led_docs.tipo_doc = led_cliente_empleado.tipo_doc
                       AND led_cliente_empleado.requiere_upload = 1
                       AND led_cliente_empleado.cliente = @cliente
                       AND led_cliente_empleado.ci_killer IN (select item from dbo.DelimitedSplit8K(@acceso, ',')))
            INNER JOIN led_empleados_periodo ON (led_docs.empleado = led_empleados_periodo.empleado AND led_docs.periodo = led_empleados_periodo.periodo)
            inner join led_contratista_periodo on (led_empleados.contratista = led_contratista_periodo.contratista AND led_empleados_periodo.periodo = led_contratista_periodo.periodo)

            where led_docs.contratista_1 = @p_contratista_1
            and led_docs.periodo >= @p_periodo_desde
            and led_docs.periodo <= @p_periodo_hasta
            and led_docs.led_seccion = 'E') DOC_EMPLEADOS
           GROUP BY DOC_EMPLEADOS.tipo_doc, DOC_EMPLEADOS.led_seccion, DOC_EMPLEADOS.contratista_1,
             DOC_EMPLEADOS.contratista, DOC_EMPLEADOS.periodo) EMPLEADOS

         INNER JOIN led_tipos_doc ON EMPLEADOS.tipo_doc = led_tipos_doc.tipo_doc
         INNER JOIN led_contratistas AS led_contratistas_1 ON EMPLEADOS.contratista_1 = led_contratistas_1.contratista
         INNER JOIN padrones AS padrones_1 ON led_contratistas_1.id_padron = padrones_1.id_padron
         INNER JOIN led_contratistas ON EMPLEADOS.contratista = led_contratistas.contratista
         INNER JOIN padrones ON led_contratistas.id_padron = padrones.id_padron

         UNION

         SELECT NULL AS doc_id, led_contratistas_1.cliente, led_contratistas.contratista_1,
            led_contratistas.contratista, EMPLEADOS.led_seccion, EMPLEADOS.periodo,
            NULL AS fecha_tolerancia, NULL AS fecha_vigencia, NULL AS aprobacion_parcial, 
            EMPLEADOS.status_doc, EMPLEADOS.tipo_doc, led_tipos_doc.nombre_tipo_doc,
            padrones.nombre_persona as empresa, padrones.identificador, padrones.numero,
            padrones_1.nombre_persona as nombre_contratista,
          CASE WHEN EMPLEADOS.status_doc = 'R' THEN 1
            WHEN EMPLEADOS.status_doc = 'E' THEN 2
            WHEN EMPLEADOS.status_doc = 'P' THEN 3
            WHEN EMPLEADOS.status_doc = 'N' THEN 4
            WHEN EMPLEADOS.status_doc = 'I' THEN 5
            WHEN EMPLEADOS.status_doc = 'V' THEN 6 END AS orden_status

         FROM
           (SELECT DOC_EMPLEADOS.tipo_doc, DOC_EMPLEADOS.led_seccion, DOC_EMPLEADOS.contratista_1,
           DOC_EMPLEADOS.contratista, DOC_EMPLEADOS.periodo, MAX(DOC_EMPLEADOS.estado_value) AS max_estado,
           CASE
            WHEN MAX(DOC_EMPLEADOS.estado_value) = 10 THEN 'R'
            WHEN MAX(DOC_EMPLEADOS.estado_value) = 7 THEN 'E'
            WHEN MAX(DOC_EMPLEADOS.estado_value) = 5 THEN 'N'
            WHEN MAX(DOC_EMPLEADOS.estado_value) = 3 THEN 'I'
            WHEN MAX(DOC_EMPLEADOS.estado_value) = 1 THEN 'V'
           END AS status_doc   
           FROM
            (select led_docs.doc_id, led_docs.tipo_doc, led_docs.status_doc, led_docs.led_seccion,
               led_docs.contratista_1, led_docs.contratista, led_docs.periodo,
             CASE 
              WHEN led_docs.status_doc = 'R' THEN 10
              WHEN led_docs.status_doc = 'E' THEN 7
              WHEN led_docs.status_doc = 'N' THEN 5
              WHEN led_docs.status_doc = 'I' THEN 3
              WHEN led_docs.status_doc = 'V' THEN 1
             END AS estado_value
            from led_docs
            inner join dbo.DelimitedSplit8K(@p_status_doc, ',') estados ON led_docs.status_doc = estados.Item
            
            --inner join dbo.DelimitedSplit8K(@lista_tipos_doc, ',') tipos ON led_docs.tipo_doc = tipos.Item
            INNER JOIN led_empleados ON led_docs.empleado = led_empleados.empleado
            INNER JOIN led_cliente_empleado ON (led_empleados.tipo_empleado = led_cliente_empleado.tipo_empleado
                       AND led_docs.tipo_doc = led_cliente_empleado.tipo_doc
                       AND led_cliente_empleado.requiere_upload = 1
                       AND led_cliente_empleado.cliente = @cliente
                       AND led_cliente_empleado.ci_killer IN (select item from dbo.DelimitedSplit8K(@acceso, ',')))
            INNER JOIN led_empleados_periodo ON (led_docs.empleado = led_empleados_periodo.empleado AND led_docs.periodo = led_empleados_periodo.periodo)
            inner join led_subcontratista_periodo on (led_empleados.contratista = led_subcontratista_periodo.subcontratista AND led_empleados_periodo.periodo = led_subcontratista_periodo.periodo)

            where led_docs.contratista_1 = @p_contratista_1
            and led_docs.periodo >= @p_periodo_desde
            and led_docs.periodo <= @p_periodo_hasta
            and led_docs.led_seccion = 'E') DOC_EMPLEADOS
           GROUP BY DOC_EMPLEADOS.tipo_doc, DOC_EMPLEADOS.led_seccion, DOC_EMPLEADOS.contratista_1,
             DOC_EMPLEADOS.contratista, DOC_EMPLEADOS.periodo) EMPLEADOS

         INNER JOIN led_tipos_doc ON EMPLEADOS.tipo_doc = led_tipos_doc.tipo_doc
         INNER JOIN led_contratistas AS led_contratistas_1 ON EMPLEADOS.contratista_1 = led_contratistas_1.contratista
         INNER JOIN padrones AS padrones_1 ON led_contratistas_1.id_padron = padrones_1.id_padron
         INNER JOIN led_contratistas ON EMPLEADOS.contratista = led_contratistas.contratista
         INNER JOIN padrones ON led_contratistas.id_padron = padrones.id_padron

         
         
         --ORDER BY orden_status, EMPLEADOS.periodo, led_tipos_doc.nombre_tipo_doc
         ORDER BY orden_status, periodo, nombre_tipo_doc




     END ELSE BEGIN


      IF (@p_periodo_desde IS NULL AND @p_periodo_hasta IS NULL) 

       /* Sección E, por empresa, sin filtro por período */

       SELECT NULL AS doc_id, led_contratistas_1.cliente, led_contratistas.contratista_1,
          led_contratistas.contratista, EMPLEADOS.led_seccion, EMPLEADOS.periodo,
          NULL AS fecha_tolerancia, NULL AS fecha_vigencia, NULL AS aprobacion_parcial, 
          EMPLEADOS.status_doc, EMPLEADOS.tipo_doc, led_tipos_doc.nombre_tipo_doc,
          padrones.nombre_persona as empresa, padrones.identificador, padrones.numero,
          padrones_1.nombre_persona as nombre_contratista,
          CASE WHEN EMPLEADOS.status_doc = 'R' THEN 1
            WHEN EMPLEADOS.status_doc = 'E' THEN 2
            WHEN EMPLEADOS.status_doc = 'P' THEN 3
            WHEN EMPLEADOS.status_doc = 'N' THEN 4
            WHEN EMPLEADOS.status_doc = 'I' THEN 5
            WHEN EMPLEADOS.status_doc = 'V' THEN 6 END AS orden_status

       FROM
         (SELECT DOC_EMPLEADOS.tipo_doc, DOC_EMPLEADOS.led_seccion, DOC_EMPLEADOS.contratista_1,
         DOC_EMPLEADOS.contratista, DOC_EMPLEADOS.periodo, MAX(DOC_EMPLEADOS.estado_value) AS max_estado,
         CASE
          WHEN MAX(DOC_EMPLEADOS.estado_value) = 10 THEN 'R'
          WHEN MAX(DOC_EMPLEADOS.estado_value) = 7 THEN 'E'
          WHEN MAX(DOC_EMPLEADOS.estado_value) = 5 THEN 'N'
          WHEN MAX(DOC_EMPLEADOS.estado_value) = 3 THEN 'I'
          WHEN MAX(DOC_EMPLEADOS.estado_value) = 1 THEN 'V'
         END AS status_doc   
         FROM
          (select led_docs.doc_id, led_docs.tipo_doc, led_docs.status_doc, led_docs.led_seccion,
             led_docs.contratista_1, led_docs.contratista, led_docs.periodo,
           CASE 
            WHEN led_docs.status_doc = 'R' THEN 10
            WHEN led_docs.status_doc = 'E' THEN 7
            WHEN led_docs.status_doc = 'N' THEN 5
            WHEN led_docs.status_doc = 'I' THEN 3
            WHEN led_docs.status_doc = 'V' THEN 1
           END AS estado_value
          from led_docs
          inner join dbo.DelimitedSplit8K(@p_status_doc, ',') estados ON led_docs.status_doc = estados.Item

          --inner join dbo.DelimitedSplit8K(@lista_tipos_doc, ',') tipos ON led_docs.tipo_doc = tipos.Item
          INNER JOIN led_empleados ON led_docs.empleado = led_empleados.empleado
          INNER JOIN led_cliente_empleado ON (led_empleados.tipo_empleado = led_cliente_empleado.tipo_empleado
                     AND led_docs.tipo_doc = led_cliente_empleado.tipo_doc
                     AND led_cliente_empleado.requiere_upload = 1
                     AND led_cliente_empleado.cliente = @cliente
                     AND led_cliente_empleado.ci_killer IN (select item from dbo.DelimitedSplit8K(@acceso, ',')))
          INNER JOIN led_empleados_periodo ON (led_docs.empleado = led_empleados_periodo.empleado AND led_docs.periodo = led_empleados_periodo.periodo)
          inner join led_contratista_periodo on (led_empleados.contratista = led_contratista_periodo.contratista AND led_empleados_periodo.periodo = led_contratista_periodo.periodo)

          where led_docs.contratista_1 = @p_contratista_1
          and led_docs.contratista = @p_contratista
          and led_docs.led_seccion = 'E') DOC_EMPLEADOS
         GROUP BY DOC_EMPLEADOS.tipo_doc, DOC_EMPLEADOS.led_seccion, DOC_EMPLEADOS.contratista_1,
           DOC_EMPLEADOS.contratista, DOC_EMPLEADOS.periodo) EMPLEADOS

       INNER JOIN led_tipos_doc ON EMPLEADOS.tipo_doc = led_tipos_doc.tipo_doc
       INNER JOIN led_contratistas AS led_contratistas_1 ON EMPLEADOS.contratista_1 = led_contratistas_1.contratista
       INNER JOIN padrones AS padrones_1 ON led_contratistas_1.id_padron = padrones_1.id_padron
       INNER JOIN led_contratistas ON EMPLEADOS.contratista = led_contratistas.contratista
       INNER JOIN padrones ON led_contratistas.id_padron = padrones.id_padron
       
       UNION

       SELECT NULL AS doc_id, led_contratistas_1.cliente, led_contratistas.contratista_1,
          led_contratistas.contratista, EMPLEADOS.led_seccion, EMPLEADOS.periodo,
          NULL AS fecha_tolerancia, NULL AS fecha_vigencia, NULL AS aprobacion_parcial, 
          EMPLEADOS.status_doc, EMPLEADOS.tipo_doc, led_tipos_doc.nombre_tipo_doc,
          padrones.nombre_persona as empresa, padrones.identificador, padrones.numero,
          padrones_1.nombre_persona as nombre_contratista,
          CASE WHEN EMPLEADOS.status_doc = 'R' THEN 1
            WHEN EMPLEADOS.status_doc = 'E' THEN 2
            WHEN EMPLEADOS.status_doc = 'P' THEN 3
            WHEN EMPLEADOS.status_doc = 'N' THEN 4
            WHEN EMPLEADOS.status_doc = 'I' THEN 5
            WHEN EMPLEADOS.status_doc = 'V' THEN 6 END AS orden_status

       FROM
         (SELECT DOC_EMPLEADOS.tipo_doc, DOC_EMPLEADOS.led_seccion, DOC_EMPLEADOS.contratista_1,
         DOC_EMPLEADOS.contratista, DOC_EMPLEADOS.periodo, MAX(DOC_EMPLEADOS.estado_value) AS max_estado,
         CASE
          WHEN MAX(DOC_EMPLEADOS.estado_value) = 10 THEN 'R'
          WHEN MAX(DOC_EMPLEADOS.estado_value) = 7 THEN 'E'
          WHEN MAX(DOC_EMPLEADOS.estado_value) = 5 THEN 'N'
          WHEN MAX(DOC_EMPLEADOS.estado_value) = 3 THEN 'I'
          WHEN MAX(DOC_EMPLEADOS.estado_value) = 1 THEN 'V'
         END AS status_doc   
         FROM
          (select led_docs.doc_id, led_docs.tipo_doc, led_docs.status_doc, led_docs.led_seccion,
             led_docs.contratista_1, led_docs.contratista, led_docs.periodo,
           CASE 
            WHEN led_docs.status_doc = 'R' THEN 10
            WHEN led_docs.status_doc = 'E' THEN 7
            WHEN led_docs.status_doc = 'N' THEN 5
            WHEN led_docs.status_doc = 'I' THEN 3
            WHEN led_docs.status_doc = 'V' THEN 1
           END AS estado_value
          from led_docs
          inner join dbo.DelimitedSplit8K(@p_status_doc, ',') estados ON led_docs.status_doc = estados.Item

          --inner join dbo.DelimitedSplit8K(@lista_tipos_doc, ',') tipos ON led_docs.tipo_doc = tipos.Item
          INNER JOIN led_empleados ON led_docs.empleado = led_empleados.empleado
          INNER JOIN led_cliente_empleado ON (led_empleados.tipo_empleado = led_cliente_empleado.tipo_empleado
                     AND led_docs.tipo_doc = led_cliente_empleado.tipo_doc
                     AND led_cliente_empleado.requiere_upload = 1
                     AND led_cliente_empleado.cliente = @cliente
                     AND led_cliente_empleado.ci_killer IN (select item from dbo.DelimitedSplit8K(@acceso, ',')))
          INNER JOIN led_empleados_periodo ON (led_docs.empleado = led_empleados_periodo.empleado AND led_docs.periodo = led_empleados_periodo.periodo)
          inner join led_subcontratista_periodo on (led_empleados.contratista = led_subcontratista_periodo.subcontratista AND led_empleados_periodo.periodo = led_subcontratista_periodo.periodo)

          where led_docs.contratista_1 = @p_contratista_1
          and led_docs.contratista = @p_contratista
          and led_docs.led_seccion = 'E') DOC_EMPLEADOS
         GROUP BY DOC_EMPLEADOS.tipo_doc, DOC_EMPLEADOS.led_seccion, DOC_EMPLEADOS.contratista_1,
           DOC_EMPLEADOS.contratista, DOC_EMPLEADOS.periodo) EMPLEADOS

       INNER JOIN led_tipos_doc ON EMPLEADOS.tipo_doc = led_tipos_doc.tipo_doc
       INNER JOIN led_contratistas AS led_contratistas_1 ON EMPLEADOS.contratista_1 = led_contratistas_1.contratista
       INNER JOIN padrones AS padrones_1 ON led_contratistas_1.id_padron = padrones_1.id_padron
       INNER JOIN led_contratistas ON EMPLEADOS.contratista = led_contratistas.contratista
       INNER JOIN padrones ON led_contratistas.id_padron = padrones.id_padron

       
       --ORDER BY orden_status, EMPLEADOS.periodo, led_tipos_doc.nombre_tipo_doc
       ORDER BY orden_status, periodo, nombre_tipo_doc

      ELSE

       IF (@p_periodo_desde IS NOT NULL AND @p_periodo_hasta IS NULL) 

        /* Sección E, por empresa, período desde */

        SELECT NULL AS doc_id, led_contratistas_1.cliente, led_contratistas.contratista_1,
           led_contratistas.contratista, EMPLEADOS.led_seccion, EMPLEADOS.periodo,
           NULL AS fecha_tolerancia, NULL AS fecha_vigencia, NULL AS aprobacion_parcial, 
           EMPLEADOS.status_doc, EMPLEADOS.tipo_doc, led_tipos_doc.nombre_tipo_doc,
           padrones.nombre_persona as empresa, padrones.identificador, padrones.numero,
           padrones_1.nombre_persona as nombre_contratista,
          CASE WHEN EMPLEADOS.status_doc = 'R' THEN 1
            WHEN EMPLEADOS.status_doc = 'E' THEN 2
            WHEN EMPLEADOS.status_doc = 'P' THEN 3
            WHEN EMPLEADOS.status_doc = 'N' THEN 4
            WHEN EMPLEADOS.status_doc = 'I' THEN 5
            WHEN EMPLEADOS.status_doc = 'V' THEN 6 END AS orden_status

        FROM
          (SELECT DOC_EMPLEADOS.tipo_doc, DOC_EMPLEADOS.led_seccion, DOC_EMPLEADOS.contratista_1,
          DOC_EMPLEADOS.contratista, DOC_EMPLEADOS.periodo, MAX(DOC_EMPLEADOS.estado_value) AS max_estado,
          CASE
           WHEN MAX(DOC_EMPLEADOS.estado_value) = 10 THEN 'R'
           WHEN MAX(DOC_EMPLEADOS.estado_value) = 7 THEN 'E'
           WHEN MAX(DOC_EMPLEADOS.estado_value) = 5 THEN 'N'
           WHEN MAX(DOC_EMPLEADOS.estado_value) = 3 THEN 'I'
           WHEN MAX(DOC_EMPLEADOS.estado_value) = 1 THEN 'V'
          END AS status_doc   
          FROM
           (select led_docs.doc_id, led_docs.tipo_doc, led_docs.status_doc, led_docs.led_seccion,
              led_docs.contratista_1, led_docs.contratista, led_docs.periodo,
            CASE 
             WHEN led_docs.status_doc = 'R' THEN 10
             WHEN led_docs.status_doc = 'E' THEN 7
             WHEN led_docs.status_doc = 'N' THEN 5
             WHEN led_docs.status_doc = 'I' THEN 3
             WHEN led_docs.status_doc = 'V' THEN 1
            END AS estado_value
           from led_docs
           inner join dbo.DelimitedSplit8K(@p_status_doc, ',') estados ON led_docs.status_doc = estados.Item

           --inner join dbo.DelimitedSplit8K(@lista_tipos_doc, ',') tipos ON led_docs.tipo_doc = tipos.Item
           INNER JOIN led_empleados ON led_docs.empleado = led_empleados.empleado
           INNER JOIN led_cliente_empleado ON (led_empleados.tipo_empleado = led_cliente_empleado.tipo_empleado
                      AND led_docs.tipo_doc = led_cliente_empleado.tipo_doc
                      AND led_cliente_empleado.requiere_upload = 1
                      AND led_cliente_empleado.cliente = @cliente
                      AND led_cliente_empleado.ci_killer IN (select item from dbo.DelimitedSplit8K(@acceso, ',')))
           INNER JOIN led_empleados_periodo ON (led_docs.empleado = led_empleados_periodo.empleado AND led_docs.periodo = led_empleados_periodo.periodo)
           inner join led_contratista_periodo on (led_empleados.contratista = led_contratista_periodo.contratista AND led_empleados_periodo.periodo = led_contratista_periodo.periodo)

           where led_docs.contratista_1 = @p_contratista_1
           and led_docs.contratista = @p_contratista
           and led_docs.periodo >= @p_periodo_desde
           and led_docs.led_seccion = 'E') DOC_EMPLEADOS
          GROUP BY DOC_EMPLEADOS.tipo_doc, DOC_EMPLEADOS.led_seccion, DOC_EMPLEADOS.contratista_1,
            DOC_EMPLEADOS.contratista, DOC_EMPLEADOS.periodo) EMPLEADOS

        INNER JOIN led_tipos_doc ON EMPLEADOS.tipo_doc = led_tipos_doc.tipo_doc
        INNER JOIN led_contratistas AS led_contratistas_1 ON EMPLEADOS.contratista_1 = led_contratistas_1.contratista
        INNER JOIN padrones AS padrones_1 ON led_contratistas_1.id_padron = padrones_1.id_padron
        INNER JOIN led_contratistas ON EMPLEADOS.contratista = led_contratistas.contratista
        INNER JOIN padrones ON led_contratistas.id_padron = padrones.id_padron
        
        UNION

        SELECT NULL AS doc_id, led_contratistas_1.cliente, led_contratistas.contratista_1,
           led_contratistas.contratista, EMPLEADOS.led_seccion, EMPLEADOS.periodo,
           NULL AS fecha_tolerancia, NULL AS fecha_vigencia, NULL AS aprobacion_parcial, 
           EMPLEADOS.status_doc, EMPLEADOS.tipo_doc, led_tipos_doc.nombre_tipo_doc,
           padrones.nombre_persona as empresa, padrones.identificador, padrones.numero,
           padrones_1.nombre_persona as nombre_contratista,
          CASE WHEN EMPLEADOS.status_doc = 'R' THEN 1
            WHEN EMPLEADOS.status_doc = 'E' THEN 2
            WHEN EMPLEADOS.status_doc = 'P' THEN 3
            WHEN EMPLEADOS.status_doc = 'N' THEN 4
            WHEN EMPLEADOS.status_doc = 'I' THEN 5
            WHEN EMPLEADOS.status_doc = 'V' THEN 6 END AS orden_status

        FROM
          (SELECT DOC_EMPLEADOS.tipo_doc, DOC_EMPLEADOS.led_seccion, DOC_EMPLEADOS.contratista_1,
          DOC_EMPLEADOS.contratista, DOC_EMPLEADOS.periodo, MAX(DOC_EMPLEADOS.estado_value) AS max_estado,
          CASE
           WHEN MAX(DOC_EMPLEADOS.estado_value) = 10 THEN 'R'
           WHEN MAX(DOC_EMPLEADOS.estado_value) = 7 THEN 'E'
           WHEN MAX(DOC_EMPLEADOS.estado_value) = 5 THEN 'N'
           WHEN MAX(DOC_EMPLEADOS.estado_value) = 3 THEN 'I'
           WHEN MAX(DOC_EMPLEADOS.estado_value) = 1 THEN 'V'
          END AS status_doc   
          FROM
           (select led_docs.doc_id, led_docs.tipo_doc, led_docs.status_doc, led_docs.led_seccion,
              led_docs.contratista_1, led_docs.contratista, led_docs.periodo,
            CASE 
             WHEN led_docs.status_doc = 'R' THEN 10
             WHEN led_docs.status_doc = 'E' THEN 7
             WHEN led_docs.status_doc = 'N' THEN 5
             WHEN led_docs.status_doc = 'I' THEN 3
             WHEN led_docs.status_doc = 'V' THEN 1
            END AS estado_value
           from led_docs
           inner join dbo.DelimitedSplit8K(@p_status_doc, ',') estados ON led_docs.status_doc = estados.Item

           --inner join dbo.DelimitedSplit8K(@lista_tipos_doc, ',') tipos ON led_docs.tipo_doc = tipos.Item
           INNER JOIN led_empleados ON led_docs.empleado = led_empleados.empleado
           INNER JOIN led_cliente_empleado ON (led_empleados.tipo_empleado = led_cliente_empleado.tipo_empleado
                      AND led_docs.tipo_doc = led_cliente_empleado.tipo_doc
                      AND led_cliente_empleado.requiere_upload = 1
                      AND led_cliente_empleado.cliente = @cliente
                      AND led_cliente_empleado.ci_killer IN (select item from dbo.DelimitedSplit8K(@acceso, ',')))
           INNER JOIN led_empleados_periodo ON (led_docs.empleado = led_empleados_periodo.empleado AND led_docs.periodo = led_empleados_periodo.periodo)
           inner join led_subcontratista_periodo on (led_empleados.contratista = led_subcontratista_periodo.subcontratista AND led_empleados_periodo.periodo = led_subcontratista_periodo.periodo)

           where led_docs.contratista_1 = @p_contratista_1
           and led_docs.contratista = @p_contratista
           and led_docs.periodo >= @p_periodo_desde
           and led_docs.led_seccion = 'E') DOC_EMPLEADOS
          GROUP BY DOC_EMPLEADOS.tipo_doc, DOC_EMPLEADOS.led_seccion, DOC_EMPLEADOS.contratista_1,
            DOC_EMPLEADOS.contratista, DOC_EMPLEADOS.periodo) EMPLEADOS

        INNER JOIN led_tipos_doc ON EMPLEADOS.tipo_doc = led_tipos_doc.tipo_doc
        INNER JOIN led_contratistas AS led_contratistas_1 ON EMPLEADOS.contratista_1 = led_contratistas_1.contratista
        INNER JOIN padrones AS padrones_1 ON led_contratistas_1.id_padron = padrones_1.id_padron
        INNER JOIN led_contratistas ON EMPLEADOS.contratista = led_contratistas.contratista
        INNER JOIN padrones ON led_contratistas.id_padron = padrones.id_padron


        --ORDER BY orden_status, EMPLEADOS.periodo, led_tipos_doc.nombre_tipo_doc
        ORDER BY orden_status, periodo, nombre_tipo_doc


       ELSE

        IF (@p_periodo_desde IS NULL AND @p_periodo_hasta IS NOT NULL) 

         /* Sección E, por empresa, período hasta */

         SELECT NULL AS doc_id, led_contratistas_1.cliente, led_contratistas.contratista_1,
            led_contratistas.contratista, EMPLEADOS.led_seccion, EMPLEADOS.periodo,
            NULL AS fecha_tolerancia, NULL AS fecha_vigencia, NULL AS aprobacion_parcial, 
            EMPLEADOS.status_doc, EMPLEADOS.tipo_doc, led_tipos_doc.nombre_tipo_doc,
            padrones.nombre_persona as empresa, padrones.identificador, padrones.numero,
            padrones_1.nombre_persona as nombre_contratista,
          CASE WHEN EMPLEADOS.status_doc = 'R' THEN 1
            WHEN EMPLEADOS.status_doc = 'E' THEN 2
            WHEN EMPLEADOS.status_doc = 'P' THEN 3
            WHEN EMPLEADOS.status_doc = 'N' THEN 4
            WHEN EMPLEADOS.status_doc = 'I' THEN 5
            WHEN EMPLEADOS.status_doc = 'V' THEN 6 END AS orden_status

         FROM
           (SELECT DOC_EMPLEADOS.tipo_doc, DOC_EMPLEADOS.led_seccion, DOC_EMPLEADOS.contratista_1,
           DOC_EMPLEADOS.contratista, DOC_EMPLEADOS.periodo, MAX(DOC_EMPLEADOS.estado_value) AS max_estado,
           CASE
            WHEN MAX(DOC_EMPLEADOS.estado_value) = 10 THEN 'R'
            WHEN MAX(DOC_EMPLEADOS.estado_value) = 7 THEN 'E'
            WHEN MAX(DOC_EMPLEADOS.estado_value) = 5 THEN 'N'
            WHEN MAX(DOC_EMPLEADOS.estado_value) = 3 THEN 'I'
            WHEN MAX(DOC_EMPLEADOS.estado_value) = 1 THEN 'V'
           END AS status_doc   
           FROM
            (select led_docs.doc_id, led_docs.tipo_doc, led_docs.status_doc, led_docs.led_seccion,
               led_docs.contratista_1, led_docs.contratista, led_docs.periodo,
             CASE 
              WHEN led_docs.status_doc = 'R' THEN 10
              WHEN led_docs.status_doc = 'E' THEN 7
              WHEN led_docs.status_doc = 'N' THEN 5
              WHEN led_docs.status_doc = 'I' THEN 3
              WHEN led_docs.status_doc = 'V' THEN 1
             END AS estado_value
            from led_docs
            inner join dbo.DelimitedSplit8K(@p_status_doc, ',') estados ON led_docs.status_doc = estados.Item

            --inner join dbo.DelimitedSplit8K(@lista_tipos_doc, ',') tipos ON led_docs.tipo_doc = tipos.Item
            INNER JOIN led_empleados ON led_docs.empleado = led_empleados.empleado
            INNER JOIN led_cliente_empleado ON (led_empleados.tipo_empleado = led_cliente_empleado.tipo_empleado
                       AND led_docs.tipo_doc = led_cliente_empleado.tipo_doc
                       AND led_cliente_empleado.requiere_upload = 1
                       AND led_cliente_empleado.cliente = @cliente
                       AND led_cliente_empleado.ci_killer IN (select item from dbo.DelimitedSplit8K(@acceso, ',')))
            INNER JOIN led_empleados_periodo ON (led_docs.empleado = led_empleados_periodo.empleado AND led_docs.periodo = led_empleados_periodo.periodo)
            inner join led_contratista_periodo on (led_empleados.contratista = led_contratista_periodo.contratista AND led_empleados_periodo.periodo = led_contratista_periodo.periodo)

            where led_docs.contratista_1 = @p_contratista_1
            and led_docs.contratista = @p_contratista
            and led_docs.periodo <= @p_periodo_hasta
            and led_docs.led_seccion = 'E') DOC_EMPLEADOS
           GROUP BY DOC_EMPLEADOS.tipo_doc, DOC_EMPLEADOS.led_seccion, DOC_EMPLEADOS.contratista_1,
             DOC_EMPLEADOS.contratista, DOC_EMPLEADOS.periodo) EMPLEADOS

         INNER JOIN led_tipos_doc ON EMPLEADOS.tipo_doc = led_tipos_doc.tipo_doc
         INNER JOIN led_contratistas AS led_contratistas_1 ON EMPLEADOS.contratista_1 = led_contratistas_1.contratista
         INNER JOIN padrones AS padrones_1 ON led_contratistas_1.id_padron = padrones_1.id_padron
         INNER JOIN led_contratistas ON EMPLEADOS.contratista = led_contratistas.contratista
         INNER JOIN padrones ON led_contratistas.id_padron = padrones.id_padron
         
         UNION

         SELECT NULL AS doc_id, led_contratistas_1.cliente, led_contratistas.contratista_1,
            led_contratistas.contratista, EMPLEADOS.led_seccion, EMPLEADOS.periodo,
            NULL AS fecha_tolerancia, NULL AS fecha_vigencia, NULL AS aprobacion_parcial, 
            EMPLEADOS.status_doc, EMPLEADOS.tipo_doc, led_tipos_doc.nombre_tipo_doc,
            padrones.nombre_persona as empresa, padrones.identificador, padrones.numero,
            padrones_1.nombre_persona as nombre_contratista,
          CASE WHEN EMPLEADOS.status_doc = 'R' THEN 1
            WHEN EMPLEADOS.status_doc = 'E' THEN 2
            WHEN EMPLEADOS.status_doc = 'P' THEN 3
            WHEN EMPLEADOS.status_doc = 'N' THEN 4
            WHEN EMPLEADOS.status_doc = 'I' THEN 5
            WHEN EMPLEADOS.status_doc = 'V' THEN 6 END AS orden_status

         FROM
           (SELECT DOC_EMPLEADOS.tipo_doc, DOC_EMPLEADOS.led_seccion, DOC_EMPLEADOS.contratista_1,
           DOC_EMPLEADOS.contratista, DOC_EMPLEADOS.periodo, MAX(DOC_EMPLEADOS.estado_value) AS max_estado,
           CASE
            WHEN MAX(DOC_EMPLEADOS.estado_value) = 10 THEN 'R'
            WHEN MAX(DOC_EMPLEADOS.estado_value) = 7 THEN 'E'
            WHEN MAX(DOC_EMPLEADOS.estado_value) = 5 THEN 'N'
            WHEN MAX(DOC_EMPLEADOS.estado_value) = 3 THEN 'I'
            WHEN MAX(DOC_EMPLEADOS.estado_value) = 1 THEN 'V'
           END AS status_doc   
           FROM
            (select led_docs.doc_id, led_docs.tipo_doc, led_docs.status_doc, led_docs.led_seccion,
               led_docs.contratista_1, led_docs.contratista, led_docs.periodo,
             CASE 
              WHEN led_docs.status_doc = 'R' THEN 10
              WHEN led_docs.status_doc = 'E' THEN 7
              WHEN led_docs.status_doc = 'N' THEN 5
              WHEN led_docs.status_doc = 'I' THEN 3
              WHEN led_docs.status_doc = 'V' THEN 1
             END AS estado_value
            from led_docs
            inner join dbo.DelimitedSplit8K(@p_status_doc, ',') estados ON led_docs.status_doc = estados.Item

            --inner join dbo.DelimitedSplit8K(@lista_tipos_doc, ',') tipos ON led_docs.tipo_doc = tipos.Item
            INNER JOIN led_empleados ON led_docs.empleado = led_empleados.empleado
            INNER JOIN led_cliente_empleado ON (led_empleados.tipo_empleado = led_cliente_empleado.tipo_empleado
                       AND led_docs.tipo_doc = led_cliente_empleado.tipo_doc
                       AND led_cliente_empleado.requiere_upload = 1
                       AND led_cliente_empleado.cliente = @cliente
                       AND led_cliente_empleado.ci_killer IN (select item from dbo.DelimitedSplit8K(@acceso, ',')))
            INNER JOIN led_empleados_periodo ON (led_docs.empleado = led_empleados_periodo.empleado AND led_docs.periodo = led_empleados_periodo.periodo)
            inner join led_subcontratista_periodo on (led_empleados.contratista = led_subcontratista_periodo.subcontratista AND led_empleados_periodo.periodo = led_subcontratista_periodo.periodo)

            where led_docs.contratista_1 = @p_contratista_1
            and led_docs.contratista = @p_contratista
            and led_docs.periodo <= @p_periodo_hasta
            and led_docs.led_seccion = 'E') DOC_EMPLEADOS
           GROUP BY DOC_EMPLEADOS.tipo_doc, DOC_EMPLEADOS.led_seccion, DOC_EMPLEADOS.contratista_1,
             DOC_EMPLEADOS.contratista, DOC_EMPLEADOS.periodo) EMPLEADOS

         INNER JOIN led_tipos_doc ON EMPLEADOS.tipo_doc = led_tipos_doc.tipo_doc
         INNER JOIN led_contratistas AS led_contratistas_1 ON EMPLEADOS.contratista_1 = led_contratistas_1.contratista
         INNER JOIN padrones AS padrones_1 ON led_contratistas_1.id_padron = padrones_1.id_padron
         INNER JOIN led_contratistas ON EMPLEADOS.contratista = led_contratistas.contratista
         INNER JOIN padrones ON led_contratistas.id_padron = padrones.id_padron



         --ORDER BY orden_status, EMPLEADOS.periodo, led_tipos_doc.nombre_tipo_doc
         ORDER BY orden_status, periodo, nombre_tipo_doc

      
        ELSE

         /* Sección E, por empresa, período desde - hasta */

         SELECT NULL AS doc_id, led_contratistas_1.cliente, led_contratistas.contratista_1,
            led_contratistas.contratista, EMPLEADOS.led_seccion, EMPLEADOS.periodo,
            NULL AS fecha_tolerancia, NULL AS fecha_vigencia, NULL AS aprobacion_parcial, 
            EMPLEADOS.status_doc, EMPLEADOS.tipo_doc, led_tipos_doc.nombre_tipo_doc,
            padrones.nombre_persona as empresa, padrones.identificador, padrones.numero,
            padrones_1.nombre_persona as nombre_contratista,
          CASE WHEN EMPLEADOS.status_doc = 'R' THEN 1
            WHEN EMPLEADOS.status_doc = 'E' THEN 2
            WHEN EMPLEADOS.status_doc = 'P' THEN 3
            WHEN EMPLEADOS.status_doc = 'N' THEN 4
            WHEN EMPLEADOS.status_doc = 'I' THEN 5
            WHEN EMPLEADOS.status_doc = 'V' THEN 6 END AS orden_status

         FROM
           (SELECT DOC_EMPLEADOS.tipo_doc, DOC_EMPLEADOS.led_seccion, DOC_EMPLEADOS.contratista_1,
           DOC_EMPLEADOS.contratista, DOC_EMPLEADOS.periodo, MAX(DOC_EMPLEADOS.estado_value) AS max_estado,
           CASE
            WHEN MAX(DOC_EMPLEADOS.estado_value) = 10 THEN 'R'
            WHEN MAX(DOC_EMPLEADOS.estado_value) = 7 THEN 'E'
            WHEN MAX(DOC_EMPLEADOS.estado_value) = 5 THEN 'N'
            WHEN MAX(DOC_EMPLEADOS.estado_value) = 3 THEN 'I'
            WHEN MAX(DOC_EMPLEADOS.estado_value) = 1 THEN 'V'
           END AS status_doc   
           FROM
            (select led_docs.doc_id, led_docs.tipo_doc, led_docs.status_doc, led_docs.led_seccion,
               led_docs.contratista_1, led_docs.contratista, led_docs.periodo,
             CASE 
              WHEN led_docs.status_doc = 'R' THEN 10
              WHEN led_docs.status_doc = 'E' THEN 7
              WHEN led_docs.status_doc = 'N' THEN 5
              WHEN led_docs.status_doc = 'I' THEN 3
              WHEN led_docs.status_doc = 'V' THEN 1
             END AS estado_value
            from led_docs
            inner join dbo.DelimitedSplit8K(@p_status_doc, ',') estados ON led_docs.status_doc = estados.Item
            
            --inner join dbo.DelimitedSplit8K(@lista_tipos_doc, ',') tipos ON led_docs.tipo_doc = tipos.Item
            INNER JOIN led_empleados ON led_docs.empleado = led_empleados.empleado
            INNER JOIN led_cliente_empleado ON (led_empleados.tipo_empleado = led_cliente_empleado.tipo_empleado
                       AND led_docs.tipo_doc = led_cliente_empleado.tipo_doc
                       AND led_cliente_empleado.requiere_upload = 1
                       AND led_cliente_empleado.cliente = @cliente
                       AND led_cliente_empleado.ci_killer IN (select item from dbo.DelimitedSplit8K(@acceso, ',')))
            INNER JOIN led_empleados_periodo ON (led_docs.empleado = led_empleados_periodo.empleado AND led_docs.periodo = led_empleados_periodo.periodo)
            inner join led_contratista_periodo on (led_empleados.contratista = led_contratista_periodo.contratista AND led_empleados_periodo.periodo = led_contratista_periodo.periodo)

            where led_docs.contratista_1 = @p_contratista_1
            and led_docs.contratista = @p_contratista
            and led_docs.periodo >= @p_periodo_desde
            and led_docs.periodo <= @p_periodo_hasta
            and led_docs.led_seccion = 'E') DOC_EMPLEADOS
           GROUP BY DOC_EMPLEADOS.tipo_doc, DOC_EMPLEADOS.led_seccion, DOC_EMPLEADOS.contratista_1,
             DOC_EMPLEADOS.contratista, DOC_EMPLEADOS.periodo) EMPLEADOS

         INNER JOIN led_tipos_doc ON EMPLEADOS.tipo_doc = led_tipos_doc.tipo_doc
         INNER JOIN led_contratistas AS led_contratistas_1 ON EMPLEADOS.contratista_1 = led_contratistas_1.contratista
         INNER JOIN padrones AS padrones_1 ON led_contratistas_1.id_padron = padrones_1.id_padron
         INNER JOIN led_contratistas ON EMPLEADOS.contratista = led_contratistas.contratista
         INNER JOIN padrones ON led_contratistas.id_padron = padrones.id_padron

         UNION

         SELECT NULL AS doc_id, led_contratistas_1.cliente, led_contratistas.contratista_1,
            led_contratistas.contratista, EMPLEADOS.led_seccion, EMPLEADOS.periodo,
            NULL AS fecha_tolerancia, NULL AS fecha_vigencia, NULL AS aprobacion_parcial, 
            EMPLEADOS.status_doc, EMPLEADOS.tipo_doc, led_tipos_doc.nombre_tipo_doc,
            padrones.nombre_persona as empresa, padrones.identificador, padrones.numero,
            padrones_1.nombre_persona as nombre_contratista,
          CASE WHEN EMPLEADOS.status_doc = 'R' THEN 1
            WHEN EMPLEADOS.status_doc = 'E' THEN 2
            WHEN EMPLEADOS.status_doc = 'P' THEN 3
            WHEN EMPLEADOS.status_doc = 'N' THEN 4
            WHEN EMPLEADOS.status_doc = 'I' THEN 5
            WHEN EMPLEADOS.status_doc = 'V' THEN 6 END AS orden_status

         FROM
           (SELECT DOC_EMPLEADOS.tipo_doc, DOC_EMPLEADOS.led_seccion, DOC_EMPLEADOS.contratista_1,
           DOC_EMPLEADOS.contratista, DOC_EMPLEADOS.periodo, MAX(DOC_EMPLEADOS.estado_value) AS max_estado,
           CASE
            WHEN MAX(DOC_EMPLEADOS.estado_value) = 10 THEN 'R'
            WHEN MAX(DOC_EMPLEADOS.estado_value) = 7 THEN 'E'
            WHEN MAX(DOC_EMPLEADOS.estado_value) = 5 THEN 'N'
            WHEN MAX(DOC_EMPLEADOS.estado_value) = 3 THEN 'I'
            WHEN MAX(DOC_EMPLEADOS.estado_value) = 1 THEN 'V'
           END AS status_doc   
           FROM
            (select led_docs.doc_id, led_docs.tipo_doc, led_docs.status_doc, led_docs.led_seccion,
               led_docs.contratista_1, led_docs.contratista, led_docs.periodo,
             CASE 
              WHEN led_docs.status_doc = 'R' THEN 10
              WHEN led_docs.status_doc = 'E' THEN 7
              WHEN led_docs.status_doc = 'N' THEN 5
              WHEN led_docs.status_doc = 'I' THEN 3
              WHEN led_docs.status_doc = 'V' THEN 1
             END AS estado_value
            from led_docs
            inner join dbo.DelimitedSplit8K(@p_status_doc, ',') estados ON led_docs.status_doc = estados.Item
            
            --inner join dbo.DelimitedSplit8K(@lista_tipos_doc, ',') tipos ON led_docs.tipo_doc = tipos.Item
            INNER JOIN led_empleados ON led_docs.empleado = led_empleados.empleado
            INNER JOIN led_cliente_empleado ON (led_empleados.tipo_empleado = led_cliente_empleado.tipo_empleado
                       AND led_docs.tipo_doc = led_cliente_empleado.tipo_doc
                       AND led_cliente_empleado.requiere_upload = 1
                       AND led_cliente_empleado.cliente = @cliente
                       AND led_cliente_empleado.ci_killer IN (select item from dbo.DelimitedSplit8K(@acceso, ',')))
            INNER JOIN led_empleados_periodo ON (led_docs.empleado = led_empleados_periodo.empleado AND led_docs.periodo = led_empleados_periodo.periodo)            
            inner join led_subcontratista_periodo on (led_empleados.contratista = led_subcontratista_periodo.subcontratista AND led_empleados_periodo.periodo = led_subcontratista_periodo.periodo)

            where led_docs.contratista_1 = @p_contratista_1
            and led_docs.contratista = @p_contratista
            and led_docs.periodo >= @p_periodo_desde
            and led_docs.periodo <= @p_periodo_hasta
            and led_docs.led_seccion = 'E') DOC_EMPLEADOS
           GROUP BY DOC_EMPLEADOS.tipo_doc, DOC_EMPLEADOS.led_seccion, DOC_EMPLEADOS.contratista_1,
             DOC_EMPLEADOS.contratista, DOC_EMPLEADOS.periodo) EMPLEADOS

         INNER JOIN led_tipos_doc ON EMPLEADOS.tipo_doc = led_tipos_doc.tipo_doc
         INNER JOIN led_contratistas AS led_contratistas_1 ON EMPLEADOS.contratista_1 = led_contratistas_1.contratista
         INNER JOIN padrones AS padrones_1 ON led_contratistas_1.id_padron = padrones_1.id_padron
         INNER JOIN led_contratistas ON EMPLEADOS.contratista = led_contratistas.contratista
         INNER JOIN padrones ON led_contratistas.id_padron = padrones.id_padron
         
         
         --ORDER BY orden_status, EMPLEADOS.periodo, led_tipos_doc.nombre_tipo_doc
         ORDER BY orden_status, periodo, nombre_tipo_doc


     END


    END ELSE

     IF (@p_led_seccion = 'V') BEGIN

      IF (@p_contratista IS NULL) BEGIN

       IF (@p_periodo_desde IS NULL AND @p_periodo_hasta IS NULL) 

        /* Sección V, todas las empresas, sin filtro por período */

        SELECT NULL AS doc_id, led_contratistas_1.cliente, led_contratistas.contratista_1,
           led_contratistas.contratista, VEHICULOS.led_seccion, VEHICULOS.periodo,
           NULL AS fecha_tolerancia, NULL AS fecha_vigencia, NULL AS aprobacion_parcial, 
           VEHICULOS.status_doc, VEHICULOS.tipo_doc, led_tipos_doc.nombre_tipo_doc,
           padrones.nombre_persona as empresa, padrones.identificador, padrones.numero,
           padrones_1.nombre_persona as nombre_contratista,
          CASE WHEN VEHICULOS.status_doc = 'R' THEN 1
            WHEN VEHICULOS.status_doc = 'E' THEN 2
            WHEN VEHICULOS.status_doc = 'P' THEN 3
            WHEN VEHICULOS.status_doc = 'N' THEN 4
            WHEN VEHICULOS.status_doc = 'I' THEN 5
            WHEN VEHICULOS.status_doc = 'V' THEN 6 END AS orden_status

        FROM
          (SELECT DOC_VEHICULOS.tipo_doc, DOC_VEHICULOS.led_seccion, DOC_VEHICULOS.contratista_1,
          DOC_VEHICULOS.contratista, DOC_VEHICULOS.periodo, MAX(DOC_VEHICULOS.estado_value) AS max_estado,
          CASE
           WHEN MAX(DOC_VEHICULOS.estado_value) = 10 THEN 'R'
           WHEN MAX(DOC_VEHICULOS.estado_value) = 7 THEN 'E'
           WHEN MAX(DOC_VEHICULOS.estado_value) = 5 THEN 'N'
           WHEN MAX(DOC_VEHICULOS.estado_value) = 3 THEN 'I'
           WHEN MAX(DOC_VEHICULOS.estado_value) = 1 THEN 'V'
          END AS status_doc   
          FROM
           (select led_docs.doc_id, led_docs.tipo_doc, led_docs.status_doc, led_docs.led_seccion,
              led_docs.contratista_1, led_docs.contratista, led_docs.periodo,
            CASE 
             WHEN led_docs.status_doc = 'R' THEN 10
             WHEN led_docs.status_doc = 'E' THEN 7
             WHEN led_docs.status_doc = 'N' THEN 5
             WHEN led_docs.status_doc = 'I' THEN 3
             WHEN led_docs.status_doc = 'V' THEN 1
            END AS estado_value
           from led_docs
           inner join dbo.DelimitedSplit8K(@p_status_doc, ',') estados ON led_docs.status_doc = estados.Item

           --inner join dbo.DelimitedSplit8K(@lista_tipos_doc, ',') tipos ON led_docs.tipo_doc = tipos.Item
           INNER JOIN led_vehiculos ON led_docs.vehiculo = led_vehiculos.vehiculo
           INNER JOIN led_cliente_vehiculo ON (led_vehiculos.tipo_vehiculo = led_cliente_vehiculo.tipo_vehiculo
                      AND led_docs.tipo_doc = led_cliente_vehiculo.tipo_doc
                      AND led_cliente_vehiculo.requiere_upload = 1
                      AND led_cliente_vehiculo.cliente = @cliente
                      AND led_cliente_vehiculo.ci_killer IN (select item from dbo.DelimitedSplit8K(@acceso, ',')))
           INNER JOIN led_vehiculos_periodo ON (led_docs.vehiculo = led_vehiculos_periodo.vehiculo AND led_docs.periodo = led_vehiculos_periodo.periodo)
           inner join led_contratista_periodo on (led_vehiculos.contratista = led_contratista_periodo.contratista AND led_vehiculos_periodo.periodo = led_contratista_periodo.periodo)   
           
           where led_docs.contratista_1 = @p_contratista_1
           and led_vehiculos.estado_vehiculo = 'A'
           and led_docs.led_seccion = 'V') DOC_VEHICULOS
          GROUP BY DOC_VEHICULOS.tipo_doc, DOC_VEHICULOS.led_seccion, DOC_VEHICULOS.contratista_1,
            DOC_VEHICULOS.contratista, DOC_VEHICULOS.periodo) VEHICULOS

        INNER JOIN led_tipos_doc ON VEHICULOS.tipo_doc = led_tipos_doc.tipo_doc
        INNER JOIN led_contratistas AS led_contratistas_1 ON VEHICULOS.contratista_1 = led_contratistas_1.contratista
        INNER JOIN padrones AS padrones_1 ON led_contratistas_1.id_padron = padrones_1.id_padron
        INNER JOIN led_contratistas ON VEHICULOS.contratista = led_contratistas.contratista
        INNER JOIN padrones ON led_contratistas.id_padron = padrones.id_padron
        
        UNION

        SELECT NULL AS doc_id, led_contratistas_1.cliente, led_contratistas.contratista_1,
           led_contratistas.contratista, VEHICULOS.led_seccion, VEHICULOS.periodo,
           NULL AS fecha_tolerancia, NULL AS fecha_vigencia, NULL AS aprobacion_parcial, 
           VEHICULOS.status_doc, VEHICULOS.tipo_doc, led_tipos_doc.nombre_tipo_doc,
           padrones.nombre_persona as empresa, padrones.identificador, padrones.numero,
           padrones_1.nombre_persona as nombre_contratista,
          CASE WHEN VEHICULOS.status_doc = 'R' THEN 1
            WHEN VEHICULOS.status_doc = 'E' THEN 2
            WHEN VEHICULOS.status_doc = 'P' THEN 3
            WHEN VEHICULOS.status_doc = 'N' THEN 4
            WHEN VEHICULOS.status_doc = 'I' THEN 5
            WHEN VEHICULOS.status_doc = 'V' THEN 6 END AS orden_status

        FROM
          (SELECT DOC_VEHICULOS.tipo_doc, DOC_VEHICULOS.led_seccion, DOC_VEHICULOS.contratista_1,
          DOC_VEHICULOS.contratista, DOC_VEHICULOS.periodo, MAX(DOC_VEHICULOS.estado_value) AS max_estado,
          CASE
           WHEN MAX(DOC_VEHICULOS.estado_value) = 10 THEN 'R'
           WHEN MAX(DOC_VEHICULOS.estado_value) = 7 THEN 'E'
           WHEN MAX(DOC_VEHICULOS.estado_value) = 5 THEN 'N'
           WHEN MAX(DOC_VEHICULOS.estado_value) = 3 THEN 'I'
           WHEN MAX(DOC_VEHICULOS.estado_value) = 1 THEN 'V'
          END AS status_doc   
          FROM
           (select led_docs.doc_id, led_docs.tipo_doc, led_docs.status_doc, led_docs.led_seccion,
              led_docs.contratista_1, led_docs.contratista, led_docs.periodo,
            CASE 
             WHEN led_docs.status_doc = 'R' THEN 10
             WHEN led_docs.status_doc = 'E' THEN 7
             WHEN led_docs.status_doc = 'N' THEN 5
             WHEN led_docs.status_doc = 'I' THEN 3
             WHEN led_docs.status_doc = 'V' THEN 1
            END AS estado_value
           from led_docs
           inner join dbo.DelimitedSplit8K(@p_status_doc, ',') estados ON led_docs.status_doc = estados.Item

           --inner join dbo.DelimitedSplit8K(@lista_tipos_doc, ',') tipos ON led_docs.tipo_doc = tipos.Item
           INNER JOIN led_vehiculos ON led_docs.vehiculo = led_vehiculos.vehiculo
           INNER JOIN led_cliente_vehiculo ON (led_vehiculos.tipo_vehiculo = led_cliente_vehiculo.tipo_vehiculo
                      AND led_docs.tipo_doc = led_cliente_vehiculo.tipo_doc
                      AND led_cliente_vehiculo.requiere_upload = 1
                      AND led_cliente_vehiculo.cliente = @cliente
                      AND led_cliente_vehiculo.ci_killer IN (select item from dbo.DelimitedSplit8K(@acceso, ',')))
           INNER JOIN led_vehiculos_periodo ON (led_docs.vehiculo = led_vehiculos_periodo.vehiculo AND led_docs.periodo = led_vehiculos_periodo.periodo)
           inner join led_subcontratista_periodo on (led_vehiculos.contratista = led_subcontratista_periodo.subcontratista AND led_vehiculos_periodo.periodo = led_subcontratista_periodo.periodo)
           
           where led_docs.contratista_1 = @p_contratista_1
           and led_vehiculos.estado_vehiculo = 'A'
           and led_docs.led_seccion = 'V') DOC_VEHICULOS
          GROUP BY DOC_VEHICULOS.tipo_doc, DOC_VEHICULOS.led_seccion, DOC_VEHICULOS.contratista_1,
            DOC_VEHICULOS.contratista, DOC_VEHICULOS.periodo) VEHICULOS

        INNER JOIN led_tipos_doc ON VEHICULOS.tipo_doc = led_tipos_doc.tipo_doc
        INNER JOIN led_contratistas AS led_contratistas_1 ON VEHICULOS.contratista_1 = led_contratistas_1.contratista
        INNER JOIN padrones AS padrones_1 ON led_contratistas_1.id_padron = padrones_1.id_padron
        INNER JOIN led_contratistas ON VEHICULOS.contratista = led_contratistas.contratista
        INNER JOIN padrones ON led_contratistas.id_padron = padrones.id_padron
        
        --ORDER BY orden_status, VEHICULOS.periodo, led_tipos_doc.nombre_tipo_doc
        ORDER BY orden_status, periodo, nombre_tipo_doc


       ELSE

        IF (@p_periodo_desde IS NOT NULL AND @p_periodo_hasta IS NULL) 

         /* Sección V, todas las empresas, período desde */

         SELECT NULL AS doc_id, led_contratistas_1.cliente, led_contratistas.contratista_1,
            led_contratistas.contratista, VEHICULOS.led_seccion, VEHICULOS.periodo,
            NULL AS fecha_tolerancia, NULL AS fecha_vigencia, NULL AS aprobacion_parcial, 
            VEHICULOS.status_doc, VEHICULOS.tipo_doc, led_tipos_doc.nombre_tipo_doc,
            padrones.nombre_persona as empresa, padrones.identificador, padrones.numero,
            padrones_1.nombre_persona as nombre_contratista,
          CASE WHEN VEHICULOS.status_doc = 'R' THEN 1
            WHEN VEHICULOS.status_doc = 'E' THEN 2
            WHEN VEHICULOS.status_doc = 'P' THEN 3
            WHEN VEHICULOS.status_doc = 'N' THEN 4
            WHEN VEHICULOS.status_doc = 'I' THEN 5
            WHEN VEHICULOS.status_doc = 'V' THEN 6 END AS orden_status

         FROM
           (SELECT DOC_VEHICULOS.tipo_doc, DOC_VEHICULOS.led_seccion, DOC_VEHICULOS.contratista_1,
           DOC_VEHICULOS.contratista, DOC_VEHICULOS.periodo, MAX(DOC_VEHICULOS.estado_value) AS max_estado,
           CASE
            WHEN MAX(DOC_VEHICULOS.estado_value) = 10 THEN 'R'
            WHEN MAX(DOC_VEHICULOS.estado_value) = 7 THEN 'E'
            WHEN MAX(DOC_VEHICULOS.estado_value) = 5 THEN 'N'
            WHEN MAX(DOC_VEHICULOS.estado_value) = 3 THEN 'I'
            WHEN MAX(DOC_VEHICULOS.estado_value) = 1 THEN 'V'
           END AS status_doc   
           FROM
            (select led_docs.doc_id, led_docs.tipo_doc, led_docs.status_doc, led_docs.led_seccion,
               led_docs.contratista_1, led_docs.contratista, led_docs.periodo,
             CASE 
              WHEN led_docs.status_doc = 'R' THEN 10
              WHEN led_docs.status_doc = 'E' THEN 7
              WHEN led_docs.status_doc = 'N' THEN 5
              WHEN led_docs.status_doc = 'I' THEN 3
              WHEN led_docs.status_doc = 'V' THEN 1
             END AS estado_value
            from led_docs
            inner join dbo.DelimitedSplit8K(@p_status_doc, ',') estados ON led_docs.status_doc = estados.Item
            
            --inner join dbo.DelimitedSplit8K(@lista_tipos_doc, ',') tipos ON led_docs.tipo_doc = tipos.Item
            INNER JOIN led_vehiculos ON led_docs.vehiculo = led_vehiculos.vehiculo
            INNER JOIN led_cliente_vehiculo ON (led_vehiculos.tipo_vehiculo = led_cliente_vehiculo.tipo_vehiculo
                       AND led_docs.tipo_doc = led_cliente_vehiculo.tipo_doc
                       AND led_cliente_vehiculo.requiere_upload = 1
                       AND led_cliente_vehiculo.cliente = @cliente
                       AND led_cliente_vehiculo.ci_killer IN (select item from dbo.DelimitedSplit8K(@acceso, ',')))
            INNER JOIN led_vehiculos_periodo ON (led_docs.vehiculo = led_vehiculos_periodo.vehiculo AND led_docs.periodo = led_vehiculos_periodo.periodo)
            inner join led_contratista_periodo on (led_vehiculos.contratista = led_contratista_periodo.contratista AND led_vehiculos_periodo.periodo = led_contratista_periodo.periodo)
            
            where led_docs.contratista_1 = @p_contratista_1
            and led_vehiculos.estado_vehiculo = 'A'
            and led_docs.periodo >= @p_periodo_desde
            and led_docs.led_seccion = 'V') DOC_VEHICULOS
           GROUP BY DOC_VEHICULOS.tipo_doc, DOC_VEHICULOS.led_seccion, DOC_VEHICULOS.contratista_1,
             DOC_VEHICULOS.contratista, DOC_VEHICULOS.periodo) VEHICULOS

         INNER JOIN led_tipos_doc ON VEHICULOS.tipo_doc = led_tipos_doc.tipo_doc
         INNER JOIN led_contratistas AS led_contratistas_1 ON VEHICULOS.contratista_1 = led_contratistas_1.contratista
         INNER JOIN padrones AS padrones_1 ON led_contratistas_1.id_padron = padrones_1.id_padron
         INNER JOIN led_contratistas ON VEHICULOS.contratista = led_contratistas.contratista
         INNER JOIN padrones ON led_contratistas.id_padron = padrones.id_padron
         
         UNION

         SELECT NULL AS doc_id, led_contratistas_1.cliente, led_contratistas.contratista_1,
            led_contratistas.contratista, VEHICULOS.led_seccion, VEHICULOS.periodo,
            NULL AS fecha_tolerancia, NULL AS fecha_vigencia, NULL AS aprobacion_parcial, 
            VEHICULOS.status_doc, VEHICULOS.tipo_doc, led_tipos_doc.nombre_tipo_doc,
            padrones.nombre_persona as empresa, padrones.identificador, padrones.numero,
            padrones_1.nombre_persona as nombre_contratista,
          CASE WHEN VEHICULOS.status_doc = 'R' THEN 1
            WHEN VEHICULOS.status_doc = 'E' THEN 2
            WHEN VEHICULOS.status_doc = 'P' THEN 3
            WHEN VEHICULOS.status_doc = 'N' THEN 4
            WHEN VEHICULOS.status_doc = 'I' THEN 5
            WHEN VEHICULOS.status_doc = 'V' THEN 6 END AS orden_status

         FROM
           (SELECT DOC_VEHICULOS.tipo_doc, DOC_VEHICULOS.led_seccion, DOC_VEHICULOS.contratista_1,
           DOC_VEHICULOS.contratista, DOC_VEHICULOS.periodo, MAX(DOC_VEHICULOS.estado_value) AS max_estado,
           CASE
            WHEN MAX(DOC_VEHICULOS.estado_value) = 10 THEN 'R'
            WHEN MAX(DOC_VEHICULOS.estado_value) = 7 THEN 'E'
            WHEN MAX(DOC_VEHICULOS.estado_value) = 5 THEN 'N'
            WHEN MAX(DOC_VEHICULOS.estado_value) = 3 THEN 'I'
            WHEN MAX(DOC_VEHICULOS.estado_value) = 1 THEN 'V'
           END AS status_doc   
           FROM
            (select led_docs.doc_id, led_docs.tipo_doc, led_docs.status_doc, led_docs.led_seccion,
               led_docs.contratista_1, led_docs.contratista, led_docs.periodo,
             CASE 
              WHEN led_docs.status_doc = 'R' THEN 10
              WHEN led_docs.status_doc = 'E' THEN 7
              WHEN led_docs.status_doc = 'N' THEN 5
              WHEN led_docs.status_doc = 'I' THEN 3
              WHEN led_docs.status_doc = 'V' THEN 1
             END AS estado_value
            from led_docs
            inner join dbo.DelimitedSplit8K(@p_status_doc, ',') estados ON led_docs.status_doc = estados.Item
            
            --inner join dbo.DelimitedSplit8K(@lista_tipos_doc, ',') tipos ON led_docs.tipo_doc = tipos.Item
            INNER JOIN led_vehiculos ON led_docs.vehiculo = led_vehiculos.vehiculo
            INNER JOIN led_cliente_vehiculo ON (led_vehiculos.tipo_vehiculo = led_cliente_vehiculo.tipo_vehiculo
                       AND led_docs.tipo_doc = led_cliente_vehiculo.tipo_doc
                       AND led_cliente_vehiculo.requiere_upload = 1
                       AND led_cliente_vehiculo.cliente = @cliente
                       AND led_cliente_vehiculo.ci_killer IN (select item from dbo.DelimitedSplit8K(@acceso, ',')))
            INNER JOIN led_vehiculos_periodo ON (led_docs.vehiculo = led_vehiculos_periodo.vehiculo AND led_docs.periodo = led_vehiculos_periodo.periodo)
            inner join led_subcontratista_periodo on (led_vehiculos.contratista = led_subcontratista_periodo.subcontratista AND led_vehiculos_periodo.periodo = led_subcontratista_periodo.periodo)
            
            where led_docs.contratista_1 = @p_contratista_1
            and led_vehiculos.estado_vehiculo = 'A'
            and led_docs.periodo >= @p_periodo_desde
            and led_docs.led_seccion = 'V') DOC_VEHICULOS
           GROUP BY DOC_VEHICULOS.tipo_doc, DOC_VEHICULOS.led_seccion, DOC_VEHICULOS.contratista_1,
             DOC_VEHICULOS.contratista, DOC_VEHICULOS.periodo) VEHICULOS

         INNER JOIN led_tipos_doc ON VEHICULOS.tipo_doc = led_tipos_doc.tipo_doc
         INNER JOIN led_contratistas AS led_contratistas_1 ON VEHICULOS.contratista_1 = led_contratistas_1.contratista
         INNER JOIN padrones AS padrones_1 ON led_contratistas_1.id_padron = padrones_1.id_padron
         INNER JOIN led_contratistas ON VEHICULOS.contratista = led_contratistas.contratista
         INNER JOIN padrones ON led_contratistas.id_padron = padrones.id_padron

         --ORDER BY orden_status, VEHICULOS.periodo, led_tipos_doc.nombre_tipo_doc
         ORDER BY orden_status, periodo, nombre_tipo_doc


        ELSE

         IF (@p_periodo_desde IS NULL AND @p_periodo_hasta IS NOT NULL) 

          /* Sección V, todas las empresas, período hasta */

          SELECT NULL AS doc_id, led_contratistas_1.cliente, led_contratistas.contratista_1,
             led_contratistas.contratista, VEHICULOS.led_seccion, VEHICULOS.periodo,
             NULL AS fecha_tolerancia, NULL AS fecha_vigencia, NULL AS aprobacion_parcial, 
             VEHICULOS.status_doc, VEHICULOS.tipo_doc, led_tipos_doc.nombre_tipo_doc,
             padrones.nombre_persona as empresa, padrones.identificador, padrones.numero,
             padrones_1.nombre_persona as nombre_contratista,
          CASE WHEN VEHICULOS.status_doc = 'R' THEN 1
            WHEN VEHICULOS.status_doc = 'E' THEN 2
            WHEN VEHICULOS.status_doc = 'P' THEN 3
            WHEN VEHICULOS.status_doc = 'N' THEN 4
            WHEN VEHICULOS.status_doc = 'I' THEN 5
            WHEN VEHICULOS.status_doc = 'V' THEN 6 END AS orden_status

          FROM
            (SELECT DOC_VEHICULOS.tipo_doc, DOC_VEHICULOS.led_seccion, DOC_VEHICULOS.contratista_1,
            DOC_VEHICULOS.contratista, DOC_VEHICULOS.periodo, MAX(DOC_VEHICULOS.estado_value) AS max_estado,
            CASE
             WHEN MAX(DOC_VEHICULOS.estado_value) = 10 THEN 'R'
             WHEN MAX(DOC_VEHICULOS.estado_value) = 7 THEN 'E'
             WHEN MAX(DOC_VEHICULOS.estado_value) = 5 THEN 'N'
             WHEN MAX(DOC_VEHICULOS.estado_value) = 3 THEN 'I'
             WHEN MAX(DOC_VEHICULOS.estado_value) = 1 THEN 'V'
            END AS status_doc   
            FROM
             (select led_docs.doc_id, led_docs.tipo_doc, led_docs.status_doc, led_docs.led_seccion,
                led_docs.contratista_1, led_docs.contratista, led_docs.periodo,
              CASE 
               WHEN led_docs.status_doc = 'R' THEN 10
               WHEN led_docs.status_doc = 'E' THEN 7
               WHEN led_docs.status_doc = 'N' THEN 5
               WHEN led_docs.status_doc = 'I' THEN 3
               WHEN led_docs.status_doc = 'V' THEN 1
              END AS estado_value
             from led_docs
             
             --inner join dbo.DelimitedSplit8K(@lista_tipos_doc, ',') tipos ON led_docs.tipo_doc = tipos.Item
             INNER JOIN led_vehiculos ON led_docs.vehiculo = led_vehiculos.vehiculo
             INNER JOIN led_cliente_vehiculo ON (led_vehiculos.tipo_vehiculo = led_cliente_vehiculo.tipo_vehiculo
                        AND led_docs.tipo_doc = led_cliente_vehiculo.tipo_doc
                        AND led_cliente_vehiculo.requiere_upload = 1
                        AND led_cliente_vehiculo.cliente = @cliente
                        AND led_cliente_vehiculo.ci_killer IN (select item from dbo.DelimitedSplit8K(@acceso, ',')))
             INNER JOIN led_vehiculos_periodo ON (led_docs.vehiculo = led_vehiculos_periodo.vehiculo AND led_docs.periodo = led_vehiculos_periodo.periodo)
             inner join led_contratista_periodo on (led_vehiculos.contratista = led_contratista_periodo.contratista AND led_vehiculos_periodo.periodo = led_contratista_periodo.periodo)

             inner join dbo.DelimitedSplit8K(@p_status_doc, ',') estados ON led_docs.status_doc = estados.Item
             where led_docs.contratista_1 = @p_contratista_1
             and led_vehiculos.estado_vehiculo = 'A'
             and led_docs.periodo <= @p_periodo_hasta
             and led_docs.led_seccion = 'V') DOC_VEHICULOS
            GROUP BY DOC_VEHICULOS.tipo_doc, DOC_VEHICULOS.led_seccion, DOC_VEHICULOS.contratista_1,
              DOC_VEHICULOS.contratista, DOC_VEHICULOS.periodo) VEHICULOS

          INNER JOIN led_tipos_doc ON VEHICULOS.tipo_doc = led_tipos_doc.tipo_doc
          INNER JOIN led_contratistas AS led_contratistas_1 ON VEHICULOS.contratista_1 = led_contratistas_1.contratista
          INNER JOIN padrones AS padrones_1 ON led_contratistas_1.id_padron = padrones_1.id_padron
          INNER JOIN led_contratistas ON VEHICULOS.contratista = led_contratistas.contratista
          INNER JOIN padrones ON led_contratistas.id_padron = padrones.id_padron

          UNION

          SELECT NULL AS doc_id, led_contratistas_1.cliente, led_contratistas.contratista_1,
             led_contratistas.contratista, VEHICULOS.led_seccion, VEHICULOS.periodo,
             NULL AS fecha_tolerancia, NULL AS fecha_vigencia, NULL AS aprobacion_parcial, 
             VEHICULOS.status_doc, VEHICULOS.tipo_doc, led_tipos_doc.nombre_tipo_doc,
             padrones.nombre_persona as empresa, padrones.identificador, padrones.numero,
             padrones_1.nombre_persona as nombre_contratista,
          CASE WHEN VEHICULOS.status_doc = 'R' THEN 1
            WHEN VEHICULOS.status_doc = 'E' THEN 2
            WHEN VEHICULOS.status_doc = 'P' THEN 3
            WHEN VEHICULOS.status_doc = 'N' THEN 4
            WHEN VEHICULOS.status_doc = 'I' THEN 5
            WHEN VEHICULOS.status_doc = 'V' THEN 6 END AS orden_status

          FROM
            (SELECT DOC_VEHICULOS.tipo_doc, DOC_VEHICULOS.led_seccion, DOC_VEHICULOS.contratista_1,
            DOC_VEHICULOS.contratista, DOC_VEHICULOS.periodo, MAX(DOC_VEHICULOS.estado_value) AS max_estado,
            CASE
             WHEN MAX(DOC_VEHICULOS.estado_value) = 10 THEN 'R'
             WHEN MAX(DOC_VEHICULOS.estado_value) = 7 THEN 'E'
             WHEN MAX(DOC_VEHICULOS.estado_value) = 5 THEN 'N'
             WHEN MAX(DOC_VEHICULOS.estado_value) = 3 THEN 'I'
             WHEN MAX(DOC_VEHICULOS.estado_value) = 1 THEN 'V'
            END AS status_doc   
            FROM
             (select led_docs.doc_id, led_docs.tipo_doc, led_docs.status_doc, led_docs.led_seccion,
                led_docs.contratista_1, led_docs.contratista, led_docs.periodo,
              CASE 
               WHEN led_docs.status_doc = 'R' THEN 10
               WHEN led_docs.status_doc = 'E' THEN 7
               WHEN led_docs.status_doc = 'N' THEN 5
               WHEN led_docs.status_doc = 'I' THEN 3
               WHEN led_docs.status_doc = 'V' THEN 1
              END AS estado_value
             from led_docs
             
             --inner join dbo.DelimitedSplit8K(@lista_tipos_doc, ',') tipos ON led_docs.tipo_doc = tipos.Item
             INNER JOIN led_vehiculos ON led_docs.vehiculo = led_vehiculos.vehiculo
             INNER JOIN led_cliente_vehiculo ON (led_vehiculos.tipo_vehiculo = led_cliente_vehiculo.tipo_vehiculo
                        AND led_docs.tipo_doc = led_cliente_vehiculo.tipo_doc
                        AND led_cliente_vehiculo.requiere_upload = 1
                        AND led_cliente_vehiculo.cliente = @cliente
                        AND led_cliente_vehiculo.ci_killer IN (select item from dbo.DelimitedSplit8K(@acceso, ',')))
             INNER JOIN led_vehiculos_periodo ON (led_docs.vehiculo = led_vehiculos_periodo.vehiculo AND led_docs.periodo = led_vehiculos_periodo.periodo)
             inner join led_subcontratista_periodo on (led_vehiculos.contratista = led_subcontratista_periodo.subcontratista AND led_vehiculos_periodo.periodo = led_subcontratista_periodo.periodo)

             inner join dbo.DelimitedSplit8K(@p_status_doc, ',') estados ON led_docs.status_doc = estados.Item
             where led_docs.contratista_1 = @p_contratista_1
             and led_vehiculos.estado_vehiculo = 'A'
             and led_docs.periodo <= @p_periodo_hasta
             and led_docs.led_seccion = 'V') DOC_VEHICULOS
            GROUP BY DOC_VEHICULOS.tipo_doc, DOC_VEHICULOS.led_seccion, DOC_VEHICULOS.contratista_1,
              DOC_VEHICULOS.contratista, DOC_VEHICULOS.periodo) VEHICULOS

          INNER JOIN led_tipos_doc ON VEHICULOS.tipo_doc = led_tipos_doc.tipo_doc
          INNER JOIN led_contratistas AS led_contratistas_1 ON VEHICULOS.contratista_1 = led_contratistas_1.contratista
          INNER JOIN padrones AS padrones_1 ON led_contratistas_1.id_padron = padrones_1.id_padron
          INNER JOIN led_contratistas ON VEHICULOS.contratista = led_contratistas.contratista
          INNER JOIN padrones ON led_contratistas.id_padron = padrones.id_padron

          --ORDER BY orden_status, VEHICULOS.periodo, led_tipos_doc.nombre_tipo_doc
          ORDER BY orden_status, periodo, nombre_tipo_doc

       
         ELSE

          /* Sección V, todas las empresas, período desde - hasta */
 
          SELECT NULL AS doc_id, led_contratistas_1.cliente, led_contratistas.contratista_1,
             led_contratistas.contratista, VEHICULOS.led_seccion, VEHICULOS.periodo,
             NULL AS fecha_tolerancia, NULL AS fecha_vigencia, NULL AS aprobacion_parcial, 
             VEHICULOS.status_doc, VEHICULOS.tipo_doc, led_tipos_doc.nombre_tipo_doc,
             padrones.nombre_persona as empresa, padrones.identificador, padrones.numero,
             padrones_1.nombre_persona as nombre_contratista,
          CASE WHEN VEHICULOS.status_doc = 'R' THEN 1
            WHEN VEHICULOS.status_doc = 'E' THEN 2
            WHEN VEHICULOS.status_doc = 'P' THEN 3
            WHEN VEHICULOS.status_doc = 'N' THEN 4
            WHEN VEHICULOS.status_doc = 'I' THEN 5
            WHEN VEHICULOS.status_doc = 'V' THEN 6 END AS orden_status

          FROM
            (SELECT DOC_VEHICULOS.tipo_doc, DOC_VEHICULOS.led_seccion, DOC_VEHICULOS.contratista_1,
            DOC_VEHICULOS.contratista, DOC_VEHICULOS.periodo, MAX(DOC_VEHICULOS.estado_value) AS max_estado,
            CASE
             WHEN MAX(DOC_VEHICULOS.estado_value) = 10 THEN 'R'
             WHEN MAX(DOC_VEHICULOS.estado_value) = 7 THEN 'E'
             WHEN MAX(DOC_VEHICULOS.estado_value) = 5 THEN 'N'
             WHEN MAX(DOC_VEHICULOS.estado_value) = 3 THEN 'I'
             WHEN MAX(DOC_VEHICULOS.estado_value) = 1 THEN 'V'
            END AS status_doc   
            FROM
             (select led_docs.doc_id, led_docs.tipo_doc, led_docs.status_doc, led_docs.led_seccion,
                led_docs.contratista_1, led_docs.contratista, led_docs.periodo,
              CASE 
               WHEN led_docs.status_doc = 'R' THEN 10
               WHEN led_docs.status_doc = 'E' THEN 7
               WHEN led_docs.status_doc = 'N' THEN 5
               WHEN led_docs.status_doc = 'I' THEN 3
               WHEN led_docs.status_doc = 'V' THEN 1
              END AS estado_value
             from led_docs
             inner join dbo.DelimitedSplit8K(@p_status_doc, ',') estados ON led_docs.status_doc = estados.Item
             
             --inner join dbo.DelimitedSplit8K(@lista_tipos_doc, ',') tipos ON led_docs.tipo_doc = tipos.Item
             INNER JOIN led_vehiculos ON led_docs.vehiculo = led_vehiculos.vehiculo
             INNER JOIN led_cliente_vehiculo ON (led_vehiculos.tipo_vehiculo = led_cliente_vehiculo.tipo_vehiculo
                        AND led_docs.tipo_doc = led_cliente_vehiculo.tipo_doc
                        AND led_cliente_vehiculo.requiere_upload = 1
                        AND led_cliente_vehiculo.cliente = @cliente
                        AND led_cliente_vehiculo.ci_killer IN (select item from dbo.DelimitedSplit8K(@acceso, ',')))
             INNER JOIN led_vehiculos_periodo ON (led_docs.vehiculo = led_vehiculos_periodo.vehiculo AND led_docs.periodo = led_vehiculos_periodo.periodo)
             inner join led_contratista_periodo on (led_vehiculos.contratista = led_contratista_periodo.contratista AND led_vehiculos_periodo.periodo = led_contratista_periodo.periodo)

             where led_docs.contratista_1 = @p_contratista_1
             and led_vehiculos.estado_vehiculo = 'A'
             and led_docs.periodo >= @p_periodo_desde
             and led_docs.periodo <= @p_periodo_hasta
             and led_docs.led_seccion = 'V') DOC_VEHICULOS
            GROUP BY DOC_VEHICULOS.tipo_doc, DOC_VEHICULOS.led_seccion, DOC_VEHICULOS.contratista_1,
              DOC_VEHICULOS.contratista, DOC_VEHICULOS.periodo) VEHICULOS

          INNER JOIN led_tipos_doc ON VEHICULOS.tipo_doc = led_tipos_doc.tipo_doc
          INNER JOIN led_contratistas AS led_contratistas_1 ON VEHICULOS.contratista_1 = led_contratistas_1.contratista
          INNER JOIN padrones AS padrones_1 ON led_contratistas_1.id_padron = padrones_1.id_padron
          INNER JOIN led_contratistas ON VEHICULOS.contratista = led_contratistas.contratista
          INNER JOIN padrones ON led_contratistas.id_padron = padrones.id_padron
          
          UNION

          SELECT NULL AS doc_id, led_contratistas_1.cliente, led_contratistas.contratista_1,
             led_contratistas.contratista, VEHICULOS.led_seccion, VEHICULOS.periodo,
             NULL AS fecha_tolerancia, NULL AS fecha_vigencia, NULL AS aprobacion_parcial, 
             VEHICULOS.status_doc, VEHICULOS.tipo_doc, led_tipos_doc.nombre_tipo_doc,
             padrones.nombre_persona as empresa, padrones.identificador, padrones.numero,
             padrones_1.nombre_persona as nombre_contratista,
          CASE WHEN VEHICULOS.status_doc = 'R' THEN 1
            WHEN VEHICULOS.status_doc = 'E' THEN 2
            WHEN VEHICULOS.status_doc = 'P' THEN 3
            WHEN VEHICULOS.status_doc = 'N' THEN 4
            WHEN VEHICULOS.status_doc = 'I' THEN 5
            WHEN VEHICULOS.status_doc = 'V' THEN 6 END AS orden_status

          FROM
            (SELECT DOC_VEHICULOS.tipo_doc, DOC_VEHICULOS.led_seccion, DOC_VEHICULOS.contratista_1,
            DOC_VEHICULOS.contratista, DOC_VEHICULOS.periodo, MAX(DOC_VEHICULOS.estado_value) AS max_estado,
            CASE
             WHEN MAX(DOC_VEHICULOS.estado_value) = 10 THEN 'R'
             WHEN MAX(DOC_VEHICULOS.estado_value) = 7 THEN 'E'
             WHEN MAX(DOC_VEHICULOS.estado_value) = 5 THEN 'N'
             WHEN MAX(DOC_VEHICULOS.estado_value) = 3 THEN 'I'
             WHEN MAX(DOC_VEHICULOS.estado_value) = 1 THEN 'V'
            END AS status_doc   
            FROM
             (select led_docs.doc_id, led_docs.tipo_doc, led_docs.status_doc, led_docs.led_seccion,
                led_docs.contratista_1, led_docs.contratista, led_docs.periodo,
              CASE 
               WHEN led_docs.status_doc = 'R' THEN 10
               WHEN led_docs.status_doc = 'E' THEN 7
               WHEN led_docs.status_doc = 'N' THEN 5
               WHEN led_docs.status_doc = 'I' THEN 3
               WHEN led_docs.status_doc = 'V' THEN 1
              END AS estado_value
             from led_docs
             inner join dbo.DelimitedSplit8K(@p_status_doc, ',') estados ON led_docs.status_doc = estados.Item
             
             --inner join dbo.DelimitedSplit8K(@lista_tipos_doc, ',') tipos ON led_docs.tipo_doc = tipos.Item
             INNER JOIN led_vehiculos ON led_docs.vehiculo = led_vehiculos.vehiculo
             INNER JOIN led_cliente_vehiculo ON (led_vehiculos.tipo_vehiculo = led_cliente_vehiculo.tipo_vehiculo
                        AND led_docs.tipo_doc = led_cliente_vehiculo.tipo_doc
                        AND led_cliente_vehiculo.requiere_upload = 1
                        AND led_cliente_vehiculo.cliente = @cliente
                        AND led_cliente_vehiculo.ci_killer IN (select item from dbo.DelimitedSplit8K(@acceso, ',')))
             INNER JOIN led_vehiculos_periodo ON (led_docs.vehiculo = led_vehiculos_periodo.vehiculo AND led_docs.periodo = led_vehiculos_periodo.periodo)
             inner join led_subcontratista_periodo on (led_vehiculos.contratista = led_subcontratista_periodo.subcontratista AND led_vehiculos_periodo.periodo = led_subcontratista_periodo.periodo)

             where led_docs.contratista_1 = @p_contratista_1
             and led_vehiculos.estado_vehiculo = 'A'
             and led_docs.periodo >= @p_periodo_desde
             and led_docs.periodo <= @p_periodo_hasta
             and led_docs.led_seccion = 'V') DOC_VEHICULOS
            GROUP BY DOC_VEHICULOS.tipo_doc, DOC_VEHICULOS.led_seccion, DOC_VEHICULOS.contratista_1,
              DOC_VEHICULOS.contratista, DOC_VEHICULOS.periodo) VEHICULOS

          INNER JOIN led_tipos_doc ON VEHICULOS.tipo_doc = led_tipos_doc.tipo_doc
          INNER JOIN led_contratistas AS led_contratistas_1 ON VEHICULOS.contratista_1 = led_contratistas_1.contratista
          INNER JOIN padrones AS padrones_1 ON led_contratistas_1.id_padron = padrones_1.id_padron
          INNER JOIN led_contratistas ON VEHICULOS.contratista = led_contratistas.contratista
          INNER JOIN padrones ON led_contratistas.id_padron = padrones.id_padron


          --ORDER BY orden_status, VEHICULOS.periodo, led_tipos_doc.nombre_tipo_doc
          ORDER BY orden_status, periodo, nombre_tipo_doc


      END ELSE BEGIN


       IF (@p_periodo_desde IS NULL AND @p_periodo_hasta IS NULL) 
        
        /* Sección V, por empresa, sin filtro por período */

        SELECT NULL AS doc_id, led_contratistas_1.cliente, led_contratistas.contratista_1,
           led_contratistas.contratista, VEHICULOS.led_seccion, VEHICULOS.periodo,
           NULL AS fecha_tolerancia, NULL AS fecha_vigencia, NULL AS aprobacion_parcial, 
           VEHICULOS.status_doc, VEHICULOS.tipo_doc, led_tipos_doc.nombre_tipo_doc,
           padrones.nombre_persona as empresa, padrones.identificador, padrones.numero,
           padrones_1.nombre_persona as nombre_contratista,
          CASE WHEN VEHICULOS.status_doc = 'R' THEN 1
            WHEN VEHICULOS.status_doc = 'E' THEN 2
            WHEN VEHICULOS.status_doc = 'P' THEN 3
            WHEN VEHICULOS.status_doc = 'N' THEN 4
            WHEN VEHICULOS.status_doc = 'I' THEN 5
            WHEN VEHICULOS.status_doc = 'V' THEN 6 END AS orden_status

        FROM
          (SELECT DOC_VEHICULOS.tipo_doc, DOC_VEHICULOS.led_seccion, DOC_VEHICULOS.contratista_1,
          DOC_VEHICULOS.contratista, DOC_VEHICULOS.periodo, MAX(DOC_VEHICULOS.estado_value) AS max_estado,
          CASE
           WHEN MAX(DOC_VEHICULOS.estado_value) = 10 THEN 'R'
           WHEN MAX(DOC_VEHICULOS.estado_value) = 7 THEN 'E'
           WHEN MAX(DOC_VEHICULOS.estado_value) = 5 THEN 'N'
           WHEN MAX(DOC_VEHICULOS.estado_value) = 3 THEN 'I'
           WHEN MAX(DOC_VEHICULOS.estado_value) = 1 THEN 'V'
          END AS status_doc   
          FROM
           (select led_docs.doc_id, led_docs.tipo_doc, led_docs.status_doc, led_docs.led_seccion,
              led_docs.contratista_1, led_docs.contratista, led_docs.periodo,
            CASE 
             WHEN led_docs.status_doc = 'R' THEN 10
             WHEN led_docs.status_doc = 'E' THEN 7
             WHEN led_docs.status_doc = 'N' THEN 5
             WHEN led_docs.status_doc = 'I' THEN 3
             WHEN led_docs.status_doc = 'V' THEN 1
            END AS estado_value
           from led_docs
           inner join dbo.DelimitedSplit8K(@p_status_doc, ',') estados ON led_docs.status_doc = estados.Item
           
           --inner join dbo.DelimitedSplit8K(@lista_tipos_doc, ',') tipos ON led_docs.tipo_doc = tipos.Item
           INNER JOIN led_vehiculos ON led_docs.vehiculo = led_vehiculos.vehiculo
           INNER JOIN led_cliente_vehiculo ON (led_vehiculos.tipo_vehiculo = led_cliente_vehiculo.tipo_vehiculo
                      AND led_docs.tipo_doc = led_cliente_vehiculo.tipo_doc
                      AND led_cliente_vehiculo.requiere_upload = 1
                      AND led_cliente_vehiculo.cliente = @cliente
                      AND led_cliente_vehiculo.ci_killer IN (select item from dbo.DelimitedSplit8K(@acceso, ',')))
           INNER JOIN led_vehiculos_periodo ON (led_docs.vehiculo = led_vehiculos_periodo.vehiculo AND led_docs.periodo = led_vehiculos_periodo.periodo)
           inner join led_contratista_periodo on (led_vehiculos.contratista = led_contratista_periodo.contratista AND led_vehiculos_periodo.periodo = led_contratista_periodo.periodo)

           where led_docs.contratista_1 = @p_contratista_1
           and led_vehiculos.estado_vehiculo = 'A'
           and led_docs.contratista = @p_contratista
           and led_docs.led_seccion = 'V') DOC_VEHICULOS
          GROUP BY DOC_VEHICULOS.tipo_doc, DOC_VEHICULOS.led_seccion, DOC_VEHICULOS.contratista_1,
            DOC_VEHICULOS.contratista, DOC_VEHICULOS.periodo) VEHICULOS

        INNER JOIN led_tipos_doc ON VEHICULOS.tipo_doc = led_tipos_doc.tipo_doc
        INNER JOIN led_contratistas AS led_contratistas_1 ON VEHICULOS.contratista_1 = led_contratistas_1.contratista
        INNER JOIN padrones AS padrones_1 ON led_contratistas_1.id_padron = padrones_1.id_padron
        INNER JOIN led_contratistas ON VEHICULOS.contratista = led_contratistas.contratista
        INNER JOIN padrones ON led_contratistas.id_padron = padrones.id_padron
        
        UNION

        SELECT NULL AS doc_id, led_contratistas_1.cliente, led_contratistas.contratista_1,
           led_contratistas.contratista, VEHICULOS.led_seccion, VEHICULOS.periodo,
           NULL AS fecha_tolerancia, NULL AS fecha_vigencia, NULL AS aprobacion_parcial, 
           VEHICULOS.status_doc, VEHICULOS.tipo_doc, led_tipos_doc.nombre_tipo_doc,
           padrones.nombre_persona as empresa, padrones.identificador, padrones.numero,
           padrones_1.nombre_persona as nombre_contratista,
          CASE WHEN VEHICULOS.status_doc = 'R' THEN 1
            WHEN VEHICULOS.status_doc = 'E' THEN 2
            WHEN VEHICULOS.status_doc = 'P' THEN 3
            WHEN VEHICULOS.status_doc = 'N' THEN 4
            WHEN VEHICULOS.status_doc = 'I' THEN 5
            WHEN VEHICULOS.status_doc = 'V' THEN 6 END AS orden_status

        FROM
          (SELECT DOC_VEHICULOS.tipo_doc, DOC_VEHICULOS.led_seccion, DOC_VEHICULOS.contratista_1,
          DOC_VEHICULOS.contratista, DOC_VEHICULOS.periodo, MAX(DOC_VEHICULOS.estado_value) AS max_estado,
          CASE
           WHEN MAX(DOC_VEHICULOS.estado_value) = 10 THEN 'R'
           WHEN MAX(DOC_VEHICULOS.estado_value) = 7 THEN 'E'
           WHEN MAX(DOC_VEHICULOS.estado_value) = 5 THEN 'N'
           WHEN MAX(DOC_VEHICULOS.estado_value) = 3 THEN 'I'
           WHEN MAX(DOC_VEHICULOS.estado_value) = 1 THEN 'V'
          END AS status_doc   
          FROM
           (select led_docs.doc_id, led_docs.tipo_doc, led_docs.status_doc, led_docs.led_seccion,
              led_docs.contratista_1, led_docs.contratista, led_docs.periodo,
            CASE 
             WHEN led_docs.status_doc = 'R' THEN 10
             WHEN led_docs.status_doc = 'E' THEN 7
             WHEN led_docs.status_doc = 'N' THEN 5
             WHEN led_docs.status_doc = 'I' THEN 3
             WHEN led_docs.status_doc = 'V' THEN 1
            END AS estado_value
           from led_docs
           inner join dbo.DelimitedSplit8K(@p_status_doc, ',') estados ON led_docs.status_doc = estados.Item
           
           --inner join dbo.DelimitedSplit8K(@lista_tipos_doc, ',') tipos ON led_docs.tipo_doc = tipos.Item
           INNER JOIN led_vehiculos ON led_docs.vehiculo = led_vehiculos.vehiculo
           INNER JOIN led_cliente_vehiculo ON (led_vehiculos.tipo_vehiculo = led_cliente_vehiculo.tipo_vehiculo
                      AND led_docs.tipo_doc = led_cliente_vehiculo.tipo_doc
                      AND led_cliente_vehiculo.requiere_upload = 1
                      AND led_cliente_vehiculo.cliente = @cliente
                      AND led_cliente_vehiculo.ci_killer IN (select item from dbo.DelimitedSplit8K(@acceso, ',')))
           INNER JOIN led_vehiculos_periodo ON (led_docs.vehiculo = led_vehiculos_periodo.vehiculo AND led_docs.periodo = led_vehiculos_periodo.periodo)
           inner join led_subcontratista_periodo on (led_vehiculos.contratista = led_subcontratista_periodo.subcontratista AND led_vehiculos_periodo.periodo = led_subcontratista_periodo.periodo)

           where led_docs.contratista_1 = @p_contratista_1
           and led_vehiculos.estado_vehiculo = 'A'
           and led_docs.contratista = @p_contratista
           and led_docs.led_seccion = 'V') DOC_VEHICULOS
          GROUP BY DOC_VEHICULOS.tipo_doc, DOC_VEHICULOS.led_seccion, DOC_VEHICULOS.contratista_1,
            DOC_VEHICULOS.contratista, DOC_VEHICULOS.periodo) VEHICULOS

        INNER JOIN led_tipos_doc ON VEHICULOS.tipo_doc = led_tipos_doc.tipo_doc
        INNER JOIN led_contratistas AS led_contratistas_1 ON VEHICULOS.contratista_1 = led_contratistas_1.contratista
        INNER JOIN padrones AS padrones_1 ON led_contratistas_1.id_padron = padrones_1.id_padron
        INNER JOIN led_contratistas ON VEHICULOS.contratista = led_contratistas.contratista
        INNER JOIN padrones ON led_contratistas.id_padron = padrones.id_padron

        --ORDER BY orden_status, VEHICULOS.periodo, led_tipos_doc.nombre_tipo_doc
        ORDER BY orden_status, periodo, nombre_tipo_doc

       

       ELSE

        IF (@p_periodo_desde IS NOT NULL AND @p_periodo_hasta IS NULL) 

         /* Sección V, por empresa, período desde */

         SELECT NULL AS doc_id, led_contratistas_1.cliente, led_contratistas.contratista_1,
            led_contratistas.contratista, VEHICULOS.led_seccion, VEHICULOS.periodo,
            NULL AS fecha_tolerancia, NULL AS fecha_vigencia, NULL AS aprobacion_parcial, 
            VEHICULOS.status_doc, VEHICULOS.tipo_doc, led_tipos_doc.nombre_tipo_doc,
            padrones.nombre_persona as empresa, padrones.identificador, padrones.numero,
            padrones_1.nombre_persona as nombre_contratista,
          CASE WHEN VEHICULOS.status_doc = 'R' THEN 1
            WHEN VEHICULOS.status_doc = 'E' THEN 2
            WHEN VEHICULOS.status_doc = 'P' THEN 3
            WHEN VEHICULOS.status_doc = 'N' THEN 4
            WHEN VEHICULOS.status_doc = 'I' THEN 5
            WHEN VEHICULOS.status_doc = 'V' THEN 6 END AS orden_status

         FROM
           (SELECT DOC_VEHICULOS.tipo_doc, DOC_VEHICULOS.led_seccion, DOC_VEHICULOS.contratista_1,
           DOC_VEHICULOS.contratista, DOC_VEHICULOS.periodo, MAX(DOC_VEHICULOS.estado_value) AS max_estado,
           CASE
            WHEN MAX(DOC_VEHICULOS.estado_value) = 10 THEN 'R'
            WHEN MAX(DOC_VEHICULOS.estado_value) = 7 THEN 'E'
            WHEN MAX(DOC_VEHICULOS.estado_value) = 5 THEN 'N'
            WHEN MAX(DOC_VEHICULOS.estado_value) = 3 THEN 'I'
            WHEN MAX(DOC_VEHICULOS.estado_value) = 1 THEN 'V'
           END AS status_doc   
           FROM
            (select led_docs.doc_id, led_docs.tipo_doc, led_docs.status_doc, led_docs.led_seccion,
               led_docs.contratista_1, led_docs.contratista, led_docs.periodo,
             CASE 
              WHEN led_docs.status_doc = 'R' THEN 10
              WHEN led_docs.status_doc = 'E' THEN 7
              WHEN led_docs.status_doc = 'N' THEN 5
              WHEN led_docs.status_doc = 'I' THEN 3
              WHEN led_docs.status_doc = 'V' THEN 1
             END AS estado_value
            from led_docs
            inner join dbo.DelimitedSplit8K(@p_status_doc, ',') estados ON led_docs.status_doc = estados.Item
            
            --inner join dbo.DelimitedSplit8K(@lista_tipos_doc, ',') tipos ON led_docs.tipo_doc = tipos.Item
            INNER JOIN led_vehiculos ON led_docs.vehiculo = led_vehiculos.vehiculo
            INNER JOIN led_cliente_vehiculo ON (led_vehiculos.tipo_vehiculo = led_cliente_vehiculo.tipo_vehiculo
                       AND led_docs.tipo_doc = led_cliente_vehiculo.tipo_doc
                       AND led_cliente_vehiculo.requiere_upload = 1
                       AND led_cliente_vehiculo.cliente = @cliente
                       AND led_cliente_vehiculo.ci_killer IN (select item from dbo.DelimitedSplit8K(@acceso, ',')))
            INNER JOIN led_vehiculos_periodo ON (led_docs.vehiculo = led_vehiculos_periodo.vehiculo AND led_docs.periodo = led_vehiculos_periodo.periodo)
            inner join led_contratista_periodo on (led_vehiculos.contratista = led_contratista_periodo.contratista AND led_vehiculos_periodo.periodo = led_contratista_periodo.periodo)

            where led_docs.contratista_1 = @p_contratista_1
            and led_vehiculos.estado_vehiculo = 'A'
            and led_docs.contratista = @p_contratista
            and led_docs.periodo >= @p_periodo_desde
            and led_docs.led_seccion = 'V') DOC_VEHICULOS
           GROUP BY DOC_VEHICULOS.tipo_doc, DOC_VEHICULOS.led_seccion, DOC_VEHICULOS.contratista_1,
             DOC_VEHICULOS.contratista, DOC_VEHICULOS.periodo) VEHICULOS

         INNER JOIN led_tipos_doc ON VEHICULOS.tipo_doc = led_tipos_doc.tipo_doc
         INNER JOIN led_contratistas AS led_contratistas_1 ON VEHICULOS.contratista_1 = led_contratistas_1.contratista
         INNER JOIN padrones AS padrones_1 ON led_contratistas_1.id_padron = padrones_1.id_padron
         INNER JOIN led_contratistas ON VEHICULOS.contratista = led_contratistas.contratista
         INNER JOIN padrones ON led_contratistas.id_padron = padrones.id_padron
         
         UNION

         SELECT NULL AS doc_id, led_contratistas_1.cliente, led_contratistas.contratista_1,
            led_contratistas.contratista, VEHICULOS.led_seccion, VEHICULOS.periodo,
            NULL AS fecha_tolerancia, NULL AS fecha_vigencia, NULL AS aprobacion_parcial, 
            VEHICULOS.status_doc, VEHICULOS.tipo_doc, led_tipos_doc.nombre_tipo_doc,
            padrones.nombre_persona as empresa, padrones.identificador, padrones.numero,
            padrones_1.nombre_persona as nombre_contratista,
          CASE WHEN VEHICULOS.status_doc = 'R' THEN 1
            WHEN VEHICULOS.status_doc = 'E' THEN 2
            WHEN VEHICULOS.status_doc = 'P' THEN 3
            WHEN VEHICULOS.status_doc = 'N' THEN 4
            WHEN VEHICULOS.status_doc = 'I' THEN 5
            WHEN VEHICULOS.status_doc = 'V' THEN 6 END AS orden_status

         FROM
           (SELECT DOC_VEHICULOS.tipo_doc, DOC_VEHICULOS.led_seccion, DOC_VEHICULOS.contratista_1,
           DOC_VEHICULOS.contratista, DOC_VEHICULOS.periodo, MAX(DOC_VEHICULOS.estado_value) AS max_estado,
           CASE
            WHEN MAX(DOC_VEHICULOS.estado_value) = 10 THEN 'R'
            WHEN MAX(DOC_VEHICULOS.estado_value) = 7 THEN 'E'
            WHEN MAX(DOC_VEHICULOS.estado_value) = 5 THEN 'N'
            WHEN MAX(DOC_VEHICULOS.estado_value) = 3 THEN 'I'
            WHEN MAX(DOC_VEHICULOS.estado_value) = 1 THEN 'V'
           END AS status_doc   
           FROM
            (select led_docs.doc_id, led_docs.tipo_doc, led_docs.status_doc, led_docs.led_seccion,
               led_docs.contratista_1, led_docs.contratista, led_docs.periodo,
             CASE 
              WHEN led_docs.status_doc = 'R' THEN 10
              WHEN led_docs.status_doc = 'E' THEN 7
              WHEN led_docs.status_doc = 'N' THEN 5
              WHEN led_docs.status_doc = 'I' THEN 3
              WHEN led_docs.status_doc = 'V' THEN 1
             END AS estado_value
            from led_docs
            inner join dbo.DelimitedSplit8K(@p_status_doc, ',') estados ON led_docs.status_doc = estados.Item
            
            --inner join dbo.DelimitedSplit8K(@lista_tipos_doc, ',') tipos ON led_docs.tipo_doc = tipos.Item
            INNER JOIN led_vehiculos ON led_docs.vehiculo = led_vehiculos.vehiculo
            INNER JOIN led_cliente_vehiculo ON (led_vehiculos.tipo_vehiculo = led_cliente_vehiculo.tipo_vehiculo
                       AND led_docs.tipo_doc = led_cliente_vehiculo.tipo_doc
                       AND led_cliente_vehiculo.requiere_upload = 1
                       AND led_cliente_vehiculo.cliente = @cliente
                       AND led_cliente_vehiculo.ci_killer IN (select item from dbo.DelimitedSplit8K(@acceso, ',')))
            INNER JOIN led_vehiculos_periodo ON (led_docs.vehiculo = led_vehiculos_periodo.vehiculo AND led_docs.periodo = led_vehiculos_periodo.periodo)
            inner join led_subcontratista_periodo on (led_vehiculos.contratista = led_subcontratista_periodo.subcontratista AND led_vehiculos_periodo.periodo = led_subcontratista_periodo.periodo)

            where led_docs.contratista_1 = @p_contratista_1
            and led_vehiculos.estado_vehiculo = 'A'
            and led_docs.contratista = @p_contratista
            and led_docs.periodo >= @p_periodo_desde
            and led_docs.led_seccion = 'V') DOC_VEHICULOS
           GROUP BY DOC_VEHICULOS.tipo_doc, DOC_VEHICULOS.led_seccion, DOC_VEHICULOS.contratista_1,
             DOC_VEHICULOS.contratista, DOC_VEHICULOS.periodo) VEHICULOS

         INNER JOIN led_tipos_doc ON VEHICULOS.tipo_doc = led_tipos_doc.tipo_doc
         INNER JOIN led_contratistas AS led_contratistas_1 ON VEHICULOS.contratista_1 = led_contratistas_1.contratista
         INNER JOIN padrones AS padrones_1 ON led_contratistas_1.id_padron = padrones_1.id_padron
         INNER JOIN led_contratistas ON VEHICULOS.contratista = led_contratistas.contratista
         INNER JOIN padrones ON led_contratistas.id_padron = padrones.id_padron
         
         --ORDER BY orden_status, VEHICULOS.periodo, led_tipos_doc.nombre_tipo_doc
         ORDER BY orden_status, periodo, nombre_tipo_doc


        ELSE

         IF (@p_periodo_desde IS NULL AND @p_periodo_hasta IS NOT NULL) 

          /* Sección V, por empresa, período hasta */

          SELECT NULL AS doc_id, led_contratistas_1.cliente, led_contratistas.contratista_1,
             led_contratistas.contratista, VEHICULOS.led_seccion, VEHICULOS.periodo,
             NULL AS fecha_tolerancia, NULL AS fecha_vigencia, NULL AS aprobacion_parcial, 
             VEHICULOS.status_doc, VEHICULOS.tipo_doc, led_tipos_doc.nombre_tipo_doc,
             padrones.nombre_persona as empresa, padrones.identificador, padrones.numero,
             padrones_1.nombre_persona as nombre_contratista,
          CASE WHEN VEHICULOS.status_doc = 'R' THEN 1
            WHEN VEHICULOS.status_doc = 'E' THEN 2
            WHEN VEHICULOS.status_doc = 'P' THEN 3
            WHEN VEHICULOS.status_doc = 'N' THEN 4
            WHEN VEHICULOS.status_doc = 'I' THEN 5
            WHEN VEHICULOS.status_doc = 'V' THEN 6 END AS orden_status

          FROM
            (SELECT DOC_VEHICULOS.tipo_doc, DOC_VEHICULOS.led_seccion, DOC_VEHICULOS.contratista_1,
            DOC_VEHICULOS.contratista, DOC_VEHICULOS.periodo, MAX(DOC_VEHICULOS.estado_value) AS max_estado,
            CASE
             WHEN MAX(DOC_VEHICULOS.estado_value) = 10 THEN 'R'
             WHEN MAX(DOC_VEHICULOS.estado_value) = 7 THEN 'E'
             WHEN MAX(DOC_VEHICULOS.estado_value) = 5 THEN 'N'
             WHEN MAX(DOC_VEHICULOS.estado_value) = 3 THEN 'I'
             WHEN MAX(DOC_VEHICULOS.estado_value) = 1 THEN 'V'
            END AS status_doc   
            FROM
             (select led_docs.doc_id, led_docs.tipo_doc, led_docs.status_doc, led_docs.led_seccion,
                led_docs.contratista_1, led_docs.contratista, led_docs.periodo,
              CASE 
               WHEN led_docs.status_doc = 'R' THEN 10
               WHEN led_docs.status_doc = 'E' THEN 7
               WHEN led_docs.status_doc = 'N' THEN 5
               WHEN led_docs.status_doc = 'I' THEN 3
               WHEN led_docs.status_doc = 'V' THEN 1
              END AS estado_value
             from led_docs
             inner join dbo.DelimitedSplit8K(@p_status_doc, ',') estados ON led_docs.status_doc = estados.Item
             
             --inner join dbo.DelimitedSplit8K(@lista_tipos_doc, ',') tipos ON led_docs.tipo_doc = tipos.Item
             INNER JOIN led_vehiculos ON led_docs.vehiculo = led_vehiculos.vehiculo
             INNER JOIN led_cliente_vehiculo ON (led_vehiculos.tipo_vehiculo = led_cliente_vehiculo.tipo_vehiculo
                        AND led_docs.tipo_doc = led_cliente_vehiculo.tipo_doc
                        AND led_cliente_vehiculo.requiere_upload = 1
                        AND led_cliente_vehiculo.cliente = @cliente
                        AND led_cliente_vehiculo.ci_killer IN (select item from dbo.DelimitedSplit8K(@acceso, ',')))
             INNER JOIN led_vehiculos_periodo ON (led_docs.vehiculo = led_vehiculos_periodo.vehiculo AND led_docs.periodo = led_vehiculos_periodo.periodo)
             inner join led_contratista_periodo on (led_vehiculos.contratista = led_contratista_periodo.contratista AND led_vehiculos_periodo.periodo = led_contratista_periodo.periodo)

             where led_docs.contratista_1 = @p_contratista_1
             and led_vehiculos.estado_vehiculo = 'A'
             and led_docs.contratista = @p_contratista
             and led_docs.periodo <= @p_periodo_hasta
             and led_docs.led_seccion = 'V') DOC_VEHICULOS
            GROUP BY DOC_VEHICULOS.tipo_doc, DOC_VEHICULOS.led_seccion, DOC_VEHICULOS.contratista_1,
              DOC_VEHICULOS.contratista, DOC_VEHICULOS.periodo) VEHICULOS

          INNER JOIN led_tipos_doc ON VEHICULOS.tipo_doc = led_tipos_doc.tipo_doc
          INNER JOIN led_contratistas AS led_contratistas_1 ON VEHICULOS.contratista_1 = led_contratistas_1.contratista
          INNER JOIN padrones AS padrones_1 ON led_contratistas_1.id_padron = padrones_1.id_padron
          INNER JOIN led_contratistas ON VEHICULOS.contratista = led_contratistas.contratista
          INNER JOIN padrones ON led_contratistas.id_padron = padrones.id_padron
          
          UNION

          
          SELECT NULL AS doc_id, led_contratistas_1.cliente, led_contratistas.contratista_1,
             led_contratistas.contratista, VEHICULOS.led_seccion, VEHICULOS.periodo,
             NULL AS fecha_tolerancia, NULL AS fecha_vigencia, NULL AS aprobacion_parcial, 
             VEHICULOS.status_doc, VEHICULOS.tipo_doc, led_tipos_doc.nombre_tipo_doc,
             padrones.nombre_persona as empresa, padrones.identificador, padrones.numero,
             padrones_1.nombre_persona as nombre_contratista,
          CASE WHEN VEHICULOS.status_doc = 'R' THEN 1
            WHEN VEHICULOS.status_doc = 'E' THEN 2
            WHEN VEHICULOS.status_doc = 'P' THEN 3
            WHEN VEHICULOS.status_doc = 'N' THEN 4
            WHEN VEHICULOS.status_doc = 'I' THEN 5
            WHEN VEHICULOS.status_doc = 'V' THEN 6 END AS orden_status

          FROM
            (SELECT DOC_VEHICULOS.tipo_doc, DOC_VEHICULOS.led_seccion, DOC_VEHICULOS.contratista_1,
            DOC_VEHICULOS.contratista, DOC_VEHICULOS.periodo, MAX(DOC_VEHICULOS.estado_value) AS max_estado,
            CASE
             WHEN MAX(DOC_VEHICULOS.estado_value) = 10 THEN 'R'
             WHEN MAX(DOC_VEHICULOS.estado_value) = 7 THEN 'E'
             WHEN MAX(DOC_VEHICULOS.estado_value) = 5 THEN 'N'
             WHEN MAX(DOC_VEHICULOS.estado_value) = 3 THEN 'I'
             WHEN MAX(DOC_VEHICULOS.estado_value) = 1 THEN 'V'
            END AS status_doc   
            FROM
             (select led_docs.doc_id, led_docs.tipo_doc, led_docs.status_doc, led_docs.led_seccion,
                led_docs.contratista_1, led_docs.contratista, led_docs.periodo,
              CASE 
               WHEN led_docs.status_doc = 'R' THEN 10
               WHEN led_docs.status_doc = 'E' THEN 7
               WHEN led_docs.status_doc = 'N' THEN 5
               WHEN led_docs.status_doc = 'I' THEN 3
               WHEN led_docs.status_doc = 'V' THEN 1
              END AS estado_value
             from led_docs
             inner join dbo.DelimitedSplit8K(@p_status_doc, ',') estados ON led_docs.status_doc = estados.Item
             
             --inner join dbo.DelimitedSplit8K(@lista_tipos_doc, ',') tipos ON led_docs.tipo_doc = tipos.Item
             INNER JOIN led_vehiculos ON led_docs.vehiculo = led_vehiculos.vehiculo
             INNER JOIN led_cliente_vehiculo ON (led_vehiculos.tipo_vehiculo = led_cliente_vehiculo.tipo_vehiculo
                        AND led_docs.tipo_doc = led_cliente_vehiculo.tipo_doc
                        AND led_cliente_vehiculo.requiere_upload = 1
                        AND led_cliente_vehiculo.cliente = @cliente
                        AND led_cliente_vehiculo.ci_killer IN (select item from dbo.DelimitedSplit8K(@acceso, ',')))
             INNER JOIN led_vehiculos_periodo ON (led_docs.vehiculo = led_vehiculos_periodo.vehiculo AND led_docs.periodo = led_vehiculos_periodo.periodo)
             inner join led_subcontratista_periodo on (led_vehiculos.contratista = led_subcontratista_periodo.subcontratista AND led_vehiculos_periodo.periodo = led_subcontratista_periodo.periodo)

             where led_docs.contratista_1 = @p_contratista_1
             and led_vehiculos.estado_vehiculo = 'A'
             and led_docs.contratista = @p_contratista
             and led_docs.periodo <= @p_periodo_hasta
             and led_docs.led_seccion = 'V') DOC_VEHICULOS
            GROUP BY DOC_VEHICULOS.tipo_doc, DOC_VEHICULOS.led_seccion, DOC_VEHICULOS.contratista_1,
              DOC_VEHICULOS.contratista, DOC_VEHICULOS.periodo) VEHICULOS

          INNER JOIN led_tipos_doc ON VEHICULOS.tipo_doc = led_tipos_doc.tipo_doc
          INNER JOIN led_contratistas AS led_contratistas_1 ON VEHICULOS.contratista_1 = led_contratistas_1.contratista
          INNER JOIN padrones AS padrones_1 ON led_contratistas_1.id_padron = padrones_1.id_padron
          INNER JOIN led_contratistas ON VEHICULOS.contratista = led_contratistas.contratista
          INNER JOIN padrones ON led_contratistas.id_padron = padrones.id_padron
          
          --ORDER BY orden_status, VEHICULOS.periodo, led_tipos_doc.nombre_tipo_doc
          ORDER BY orden_status, periodo, nombre_tipo_doc

       
         ELSE

          /* Sección V, por empresa, período desde - hasta */

          SELECT NULL AS doc_id, led_contratistas_1.cliente, led_contratistas.contratista_1,
             led_contratistas.contratista, VEHICULOS.led_seccion, VEHICULOS.periodo,
             NULL AS fecha_tolerancia, NULL AS fecha_vigencia, NULL AS aprobacion_parcial, 
             VEHICULOS.status_doc, VEHICULOS.tipo_doc, led_tipos_doc.nombre_tipo_doc,
             padrones.nombre_persona as empresa, padrones.identificador, padrones.numero,
             padrones_1.nombre_persona as nombre_contratista,
          CASE WHEN VEHICULOS.status_doc = 'R' THEN 1
            WHEN VEHICULOS.status_doc = 'E' THEN 2
            WHEN VEHICULOS.status_doc = 'P' THEN 3
            WHEN VEHICULOS.status_doc = 'N' THEN 4
            WHEN VEHICULOS.status_doc = 'I' THEN 5
            WHEN VEHICULOS.status_doc = 'V' THEN 6 END AS orden_status

          FROM
            (SELECT DOC_VEHICULOS.tipo_doc, DOC_VEHICULOS.led_seccion, DOC_VEHICULOS.contratista_1,
            DOC_VEHICULOS.contratista, DOC_VEHICULOS.periodo, MAX(DOC_VEHICULOS.estado_value) AS max_estado,
            CASE
             WHEN MAX(DOC_VEHICULOS.estado_value) = 10 THEN 'R'
             WHEN MAX(DOC_VEHICULOS.estado_value) = 7 THEN 'E'
             WHEN MAX(DOC_VEHICULOS.estado_value) = 5 THEN 'N'
             WHEN MAX(DOC_VEHICULOS.estado_value) = 3 THEN 'I'
             WHEN MAX(DOC_VEHICULOS.estado_value) = 1 THEN 'V'
            END AS status_doc   
            FROM
             (select led_docs.doc_id, led_docs.tipo_doc, led_docs.status_doc, led_docs.led_seccion,
                led_docs.contratista_1, led_docs.contratista, led_docs.periodo,
              CASE 
               WHEN led_docs.status_doc = 'R' THEN 10
               WHEN led_docs.status_doc = 'E' THEN 7
               WHEN led_docs.status_doc = 'N' THEN 5
               WHEN led_docs.status_doc = 'I' THEN 3
               WHEN led_docs.status_doc = 'V' THEN 1
              END AS estado_value
             from led_docs
             inner join dbo.DelimitedSplit8K(@p_status_doc, ',') estados ON led_docs.status_doc = estados.Item
             
             --inner join dbo.DelimitedSplit8K(@lista_tipos_doc, ',') tipos ON led_docs.tipo_doc = tipos.Item
             INNER JOIN led_vehiculos ON led_docs.vehiculo = led_vehiculos.vehiculo
             INNER JOIN led_cliente_vehiculo ON (led_vehiculos.tipo_vehiculo = led_cliente_vehiculo.tipo_vehiculo
                        AND led_docs.tipo_doc = led_cliente_vehiculo.tipo_doc
                        AND led_cliente_vehiculo.requiere_upload = 1
                        AND led_cliente_vehiculo.cliente = @cliente
                        AND led_cliente_vehiculo.ci_killer IN (select item from dbo.DelimitedSplit8K(@acceso, ',')))
             INNER JOIN led_vehiculos_periodo ON (led_docs.vehiculo = led_vehiculos_periodo.vehiculo AND led_docs.periodo = led_vehiculos_periodo.periodo)
             inner join led_contratista_periodo on (led_vehiculos.contratista = led_contratista_periodo.contratista AND led_vehiculos_periodo.periodo = led_contratista_periodo.periodo)

             where led_docs.contratista_1 = @p_contratista_1
             and led_vehiculos.estado_vehiculo = 'A'
             and led_docs.contratista = @p_contratista
             and led_docs.periodo >= @p_periodo_desde
             and led_docs.periodo <= @p_periodo_hasta
             and led_docs.led_seccion = 'V') DOC_VEHICULOS
            GROUP BY DOC_VEHICULOS.tipo_doc, DOC_VEHICULOS.led_seccion, DOC_VEHICULOS.contratista_1,
              DOC_VEHICULOS.contratista, DOC_VEHICULOS.periodo) VEHICULOS

          INNER JOIN led_tipos_doc ON VEHICULOS.tipo_doc = led_tipos_doc.tipo_doc
          INNER JOIN led_contratistas AS led_contratistas_1 ON VEHICULOS.contratista_1 = led_contratistas_1.contratista
          INNER JOIN padrones AS padrones_1 ON led_contratistas_1.id_padron = padrones_1.id_padron
          INNER JOIN led_contratistas ON VEHICULOS.contratista = led_contratistas.contratista
          INNER JOIN padrones ON led_contratistas.id_padron = padrones.id_padron
          
          UNION


          SELECT NULL AS doc_id, led_contratistas_1.cliente, led_contratistas.contratista_1,
             led_contratistas.contratista, VEHICULOS.led_seccion, VEHICULOS.periodo,
             NULL AS fecha_tolerancia, NULL AS fecha_vigencia, NULL AS aprobacion_parcial, 
             VEHICULOS.status_doc, VEHICULOS.tipo_doc, led_tipos_doc.nombre_tipo_doc,
             padrones.nombre_persona as empresa, padrones.identificador, padrones.numero,
             padrones_1.nombre_persona as nombre_contratista,
          CASE WHEN VEHICULOS.status_doc = 'R' THEN 1
            WHEN VEHICULOS.status_doc = 'E' THEN 2
            WHEN VEHICULOS.status_doc = 'P' THEN 3
            WHEN VEHICULOS.status_doc = 'N' THEN 4
            WHEN VEHICULOS.status_doc = 'I' THEN 5
            WHEN VEHICULOS.status_doc = 'V' THEN 6 END AS orden_status

          FROM
            (SELECT DOC_VEHICULOS.tipo_doc, DOC_VEHICULOS.led_seccion, DOC_VEHICULOS.contratista_1,
            DOC_VEHICULOS.contratista, DOC_VEHICULOS.periodo, MAX(DOC_VEHICULOS.estado_value) AS max_estado,
            CASE
             WHEN MAX(DOC_VEHICULOS.estado_value) = 10 THEN 'R'
             WHEN MAX(DOC_VEHICULOS.estado_value) = 7 THEN 'E'
             WHEN MAX(DOC_VEHICULOS.estado_value) = 5 THEN 'N'
             WHEN MAX(DOC_VEHICULOS.estado_value) = 3 THEN 'I'
             WHEN MAX(DOC_VEHICULOS.estado_value) = 1 THEN 'V'
            END AS status_doc   
            FROM
             (select led_docs.doc_id, led_docs.tipo_doc, led_docs.status_doc, led_docs.led_seccion,
                led_docs.contratista_1, led_docs.contratista, led_docs.periodo,
              CASE 
               WHEN led_docs.status_doc = 'R' THEN 10
               WHEN led_docs.status_doc = 'E' THEN 7
               WHEN led_docs.status_doc = 'N' THEN 5
               WHEN led_docs.status_doc = 'I' THEN 3
               WHEN led_docs.status_doc = 'V' THEN 1
              END AS estado_value
             from led_docs
             inner join dbo.DelimitedSplit8K(@p_status_doc, ',') estados ON led_docs.status_doc = estados.Item
             
             --inner join dbo.DelimitedSplit8K(@lista_tipos_doc, ',') tipos ON led_docs.tipo_doc = tipos.Item
             INNER JOIN led_vehiculos ON led_docs.vehiculo = led_vehiculos.vehiculo
             INNER JOIN led_cliente_vehiculo ON (led_vehiculos.tipo_vehiculo = led_cliente_vehiculo.tipo_vehiculo
                        AND led_docs.tipo_doc = led_cliente_vehiculo.tipo_doc
                        AND led_cliente_vehiculo.requiere_upload = 1
                        AND led_cliente_vehiculo.cliente = @cliente
                        AND led_cliente_vehiculo.ci_killer IN (select item from dbo.DelimitedSplit8K(@acceso, ',')))
             INNER JOIN led_vehiculos_periodo ON (led_docs.vehiculo = led_vehiculos_periodo.vehiculo AND led_docs.periodo = led_vehiculos_periodo.periodo)
             inner join led_subcontratista_periodo on (led_vehiculos.contratista = led_subcontratista_periodo.subcontratista AND led_vehiculos_periodo.periodo = led_subcontratista_periodo.periodo)

             where led_docs.contratista_1 = @p_contratista_1
             and led_vehiculos.estado_vehiculo = 'A'
             and led_docs.contratista = @p_contratista
             and led_docs.periodo >= @p_periodo_desde
             and led_docs.periodo <= @p_periodo_hasta
             and led_docs.led_seccion = 'V') DOC_VEHICULOS
            GROUP BY DOC_VEHICULOS.tipo_doc, DOC_VEHICULOS.led_seccion, DOC_VEHICULOS.contratista_1,
              DOC_VEHICULOS.contratista, DOC_VEHICULOS.periodo) VEHICULOS

          INNER JOIN led_tipos_doc ON VEHICULOS.tipo_doc = led_tipos_doc.tipo_doc
          INNER JOIN led_contratistas AS led_contratistas_1 ON VEHICULOS.contratista_1 = led_contratistas_1.contratista
          INNER JOIN padrones AS padrones_1 ON led_contratistas_1.id_padron = padrones_1.id_padron
          INNER JOIN led_contratistas ON VEHICULOS.contratista = led_contratistas.contratista
          INNER JOIN padrones ON led_contratistas.id_padron = padrones.id_padron

          --ORDER BY orden_status, VEHICULOS.periodo, led_tipos_doc.nombre_tipo_doc
          ORDER BY orden_status, periodo, nombre_tipo_doc


      END


     END ELSE

      IF (@p_contratista IS NULL) BEGIN


       IF (@p_periodo_desde IS NULL AND @p_periodo_hasta IS NULL) 

        /* Todas las secciones, todas las empresas, sin filtro por período */

        SELECT led_docs.doc_id, led_docs.cliente, led_docs.contratista_1, led_docs.contratista,
          led_docs.led_seccion, led_docs.periodo, led_docs.fecha_tolerancia, 
          led_docs.fecha_vigencia, led_docs.aprobacion_parcial, led_docs.status_doc,
          led_docs.tipo_doc, led_tipos_doc.nombre_tipo_doc,
          padrones.nombre_persona as empresa, padrones.identificador, padrones.numero,
          padrones_1.nombre_persona as nombre_contratista,
        CASE WHEN led_docs.status_doc = 'R' THEN 1
          WHEN led_docs.status_doc = 'E' THEN 2
          WHEN led_docs.status_doc = 'P' THEN 3
          WHEN led_docs.status_doc = 'N' THEN 4
          WHEN led_docs.status_doc = 'I' THEN 5
          WHEN led_docs.status_doc = 'V' THEN 6 END AS orden_status
        FROM led_docs
        INNER JOIN led_tipos_doc ON led_docs.tipo_doc = led_tipos_doc.tipo_doc
        INNER JOIN dbo.DelimitedSplit8K(@p_status_doc, ',') estados ON led_docs.status_doc = estados.Item
        INNER JOIN led_contratistas ON led_docs.contratista = led_contratistas.contratista
        INNER JOIN padrones ON led_contratistas.id_padron = padrones.id_padron
        INNER JOIN led_contratistas led_contratistas_1 ON led_docs.contratista_1 = led_contratistas_1.contratista
        INNER JOIN padrones padrones_1 ON led_contratistas_1.id_padron = padrones_1.id_padron

        INNER JOIN led_cliente_contratista ON (led_contratistas.tipo_contratista = led_cliente_contratista.tipo_contratista
                   AND led_docs.tipo_doc = led_cliente_contratista.tipo_doc
                   AND led_cliente_contratista.requiere_upload = 1
                   AND led_cliente_contratista.cliente = @cliente
                   AND led_cliente_contratista.ci_killer IN (select item from dbo.DelimitedSplit8K(@acceso, ',')))

        WHERE led_docs.contratista_1 = @p_contratista_1
        AND led_contratistas.contratista_1 = led_contratistas.contratista
        AND led_docs.led_seccion = 'C'


        UNION

        SELECT led_docs.doc_id, led_docs.cliente, led_docs.contratista_1, led_docs.contratista,
          led_docs.led_seccion, led_docs.periodo, led_docs.fecha_tolerancia, 
          led_docs.fecha_vigencia, led_docs.aprobacion_parcial, led_docs.status_doc,
          led_docs.tipo_doc, led_tipos_doc.nombre_tipo_doc,
          padrones.nombre_persona as empresa, padrones.identificador, padrones.numero,
          padrones_1.nombre_persona as nombre_contratista,
        CASE WHEN led_docs.status_doc = 'R' THEN 1
          WHEN led_docs.status_doc = 'E' THEN 2
          WHEN led_docs.status_doc = 'P' THEN 3
          WHEN led_docs.status_doc = 'N' THEN 4
          WHEN led_docs.status_doc = 'I' THEN 5
          WHEN led_docs.status_doc = 'V' THEN 6 END AS orden_status
        FROM led_docs
        INNER JOIN led_tipos_doc ON led_docs.tipo_doc = led_tipos_doc.tipo_doc
        INNER JOIN dbo.DelimitedSplit8K(@p_status_doc, ',') estados ON led_docs.status_doc = estados.Item
        INNER JOIN led_contratistas ON led_docs.contratista = led_contratistas.contratista
        INNER JOIN padrones ON led_contratistas.id_padron = padrones.id_padron
        INNER JOIN led_contratistas led_contratistas_1 ON led_docs.contratista_1 = led_contratistas_1.contratista
        INNER JOIN padrones padrones_1 ON led_contratistas_1.id_padron = padrones_1.id_padron

        INNER JOIN led_cliente_contratista ON (led_contratistas.tipo_contratista = led_cliente_contratista.tipo_contratista
                   AND led_docs.tipo_doc = led_cliente_contratista.tipo_doc
                   AND led_cliente_contratista.requiere_upload = 1
                   AND led_cliente_contratista.cliente = @cliente
                   AND led_cliente_contratista.ci_killer IN (select item from dbo.DelimitedSplit8K(@acceso, ',')))
         
        INNER JOIN led_subcontratista_periodo ON (led_contratistas.contratista = led_subcontratista_periodo.subcontratista 
                  AND led_docs.periodo = led_subcontratista_periodo.periodo)

        WHERE led_docs.contratista_1 = @p_contratista_1
        AND led_contratistas.contratista_1 <> led_contratistas.contratista
        AND led_docs.led_seccion = 'C'
        AND led_contratistas.estado_contratista = 'A'

        UNION

        SELECT NULL AS doc_id, led_contratistas_1.cliente, led_contratistas.contratista_1,
           led_contratistas.contratista, EMPLEADOS.led_seccion, EMPLEADOS.periodo,
           NULL AS fecha_tolerancia, NULL AS fecha_vigencia, NULL AS aprobacion_parcial, 
           EMPLEADOS.status_doc, EMPLEADOS.tipo_doc, led_tipos_doc.nombre_tipo_doc,
           padrones.nombre_persona as empresa, padrones.identificador, padrones.numero,
           padrones_1.nombre_persona as nombre_contratista,
          CASE WHEN EMPLEADOS.status_doc = 'R' THEN 1
            WHEN EMPLEADOS.status_doc = 'E' THEN 2
            WHEN EMPLEADOS.status_doc = 'P' THEN 3
            WHEN EMPLEADOS.status_doc = 'N' THEN 4
            WHEN EMPLEADOS.status_doc = 'I' THEN 5
            WHEN EMPLEADOS.status_doc = 'V' THEN 6 END AS orden_status

        FROM
          (SELECT DOC_EMPLEADOS.tipo_doc, DOC_EMPLEADOS.led_seccion, DOC_EMPLEADOS.contratista_1,
          DOC_EMPLEADOS.contratista, DOC_EMPLEADOS.periodo, MAX(DOC_EMPLEADOS.estado_value) AS max_estado,
          CASE
           WHEN MAX(DOC_EMPLEADOS.estado_value) = 10 THEN 'R'
           WHEN MAX(DOC_EMPLEADOS.estado_value) = 7 THEN 'E'
           WHEN MAX(DOC_EMPLEADOS.estado_value) = 5 THEN 'N'
           WHEN MAX(DOC_EMPLEADOS.estado_value) = 3 THEN 'I'
           WHEN MAX(DOC_EMPLEADOS.estado_value) = 1 THEN 'V'
          END AS status_doc   
          FROM
           (select led_docs.doc_id, led_docs.tipo_doc, led_docs.status_doc, led_docs.led_seccion,
              led_docs.contratista_1, led_docs.contratista, led_docs.periodo,
            CASE 
             WHEN led_docs.status_doc = 'R' THEN 10
             WHEN led_docs.status_doc = 'E' THEN 7
             WHEN led_docs.status_doc = 'N' THEN 5
             WHEN led_docs.status_doc = 'I' THEN 3
             WHEN led_docs.status_doc = 'V' THEN 1
            END AS estado_value
           from led_docs
           inner join dbo.DelimitedSplit8K(@p_status_doc, ',') estados ON led_docs.status_doc = estados.Item
           
           --inner join dbo.DelimitedSplit8K(@lista_tipos_doc, ',') tipos ON led_docs.tipo_doc = tipos.Item
           INNER JOIN led_empleados ON led_docs.empleado = led_empleados.empleado
           INNER JOIN led_cliente_empleado ON (led_empleados.tipo_empleado = led_cliente_empleado.tipo_empleado
                      AND led_docs.tipo_doc = led_cliente_empleado.tipo_doc
                      AND led_cliente_empleado.requiere_upload = 1
                      AND led_cliente_empleado.cliente = @cliente
                      AND led_cliente_empleado.ci_killer IN (select item from dbo.DelimitedSplit8K(@acceso, ',')))
           INNER JOIN led_empleados_periodo ON (led_docs.empleado = led_empleados_periodo.empleado AND led_docs.periodo = led_empleados_periodo.periodo)
           inner join led_contratista_periodo on (led_empleados.contratista = led_contratista_periodo.contratista AND led_empleados_periodo.periodo = led_contratista_periodo.periodo)
           
           where led_docs.contratista_1 = @p_contratista_1
           and led_docs.led_seccion = 'E') DOC_EMPLEADOS
          GROUP BY DOC_EMPLEADOS.tipo_doc, DOC_EMPLEADOS.led_seccion, DOC_EMPLEADOS.contratista_1,
            DOC_EMPLEADOS.contratista, DOC_EMPLEADOS.periodo) EMPLEADOS

        INNER JOIN led_tipos_doc ON EMPLEADOS.tipo_doc = led_tipos_doc.tipo_doc
        INNER JOIN led_contratistas AS led_contratistas_1 ON EMPLEADOS.contratista_1 = led_contratistas_1.contratista
        INNER JOIN padrones AS padrones_1 ON led_contratistas_1.id_padron = padrones_1.id_padron
        INNER JOIN led_contratistas ON EMPLEADOS.contratista = led_contratistas.contratista
        INNER JOIN padrones ON led_contratistas.id_padron = padrones.id_padron

        UNION

        SELECT NULL AS doc_id, led_contratistas_1.cliente, led_contratistas.contratista_1,
           led_contratistas.contratista, EMPLEADOS.led_seccion, EMPLEADOS.periodo,
           NULL AS fecha_tolerancia, NULL AS fecha_vigencia, NULL AS aprobacion_parcial, 
           EMPLEADOS.status_doc, EMPLEADOS.tipo_doc, led_tipos_doc.nombre_tipo_doc,
           padrones.nombre_persona as empresa, padrones.identificador, padrones.numero,
           padrones_1.nombre_persona as nombre_contratista,
          CASE WHEN EMPLEADOS.status_doc = 'R' THEN 1
            WHEN EMPLEADOS.status_doc = 'E' THEN 2
            WHEN EMPLEADOS.status_doc = 'P' THEN 3
            WHEN EMPLEADOS.status_doc = 'N' THEN 4
            WHEN EMPLEADOS.status_doc = 'I' THEN 5
            WHEN EMPLEADOS.status_doc = 'V' THEN 6 END AS orden_status

        FROM
          (SELECT DOC_EMPLEADOS.tipo_doc, DOC_EMPLEADOS.led_seccion, DOC_EMPLEADOS.contratista_1,
          DOC_EMPLEADOS.contratista, DOC_EMPLEADOS.periodo, MAX(DOC_EMPLEADOS.estado_value) AS max_estado,
          CASE
           WHEN MAX(DOC_EMPLEADOS.estado_value) = 10 THEN 'R'
           WHEN MAX(DOC_EMPLEADOS.estado_value) = 7 THEN 'E'
           WHEN MAX(DOC_EMPLEADOS.estado_value) = 5 THEN 'N'
           WHEN MAX(DOC_EMPLEADOS.estado_value) = 3 THEN 'I'
           WHEN MAX(DOC_EMPLEADOS.estado_value) = 1 THEN 'V'
          END AS status_doc   
          FROM
           (select led_docs.doc_id, led_docs.tipo_doc, led_docs.status_doc, led_docs.led_seccion,
              led_docs.contratista_1, led_docs.contratista, led_docs.periodo,
            CASE 
             WHEN led_docs.status_doc = 'R' THEN 10
             WHEN led_docs.status_doc = 'E' THEN 7
             WHEN led_docs.status_doc = 'N' THEN 5
             WHEN led_docs.status_doc = 'I' THEN 3
             WHEN led_docs.status_doc = 'V' THEN 1
            END AS estado_value
           from led_docs
           inner join dbo.DelimitedSplit8K(@p_status_doc, ',') estados ON led_docs.status_doc = estados.Item
           
           --inner join dbo.DelimitedSplit8K(@lista_tipos_doc, ',') tipos ON led_docs.tipo_doc = tipos.Item
           INNER JOIN led_empleados ON led_docs.empleado = led_empleados.empleado
           INNER JOIN led_cliente_empleado ON (led_empleados.tipo_empleado = led_cliente_empleado.tipo_empleado
                      AND led_docs.tipo_doc = led_cliente_empleado.tipo_doc
                      AND led_cliente_empleado.requiere_upload = 1
                      AND led_cliente_empleado.cliente = @cliente
                      AND led_cliente_empleado.ci_killer IN (select item from dbo.DelimitedSplit8K(@acceso, ',')))
           INNER JOIN led_empleados_periodo ON (led_docs.empleado = led_empleados_periodo.empleado AND led_docs.periodo = led_empleados_periodo.periodo)
           inner join led_subcontratista_periodo on (led_empleados.contratista = led_subcontratista_periodo.subcontratista AND led_empleados_periodo.periodo = led_subcontratista_periodo.periodo)
           
           where led_docs.contratista_1 = @p_contratista_1
           and led_docs.led_seccion = 'E') DOC_EMPLEADOS
          GROUP BY DOC_EMPLEADOS.tipo_doc, DOC_EMPLEADOS.led_seccion, DOC_EMPLEADOS.contratista_1,
            DOC_EMPLEADOS.contratista, DOC_EMPLEADOS.periodo) EMPLEADOS

        INNER JOIN led_tipos_doc ON EMPLEADOS.tipo_doc = led_tipos_doc.tipo_doc
        INNER JOIN led_contratistas AS led_contratistas_1 ON EMPLEADOS.contratista_1 = led_contratistas_1.contratista
        INNER JOIN padrones AS padrones_1 ON led_contratistas_1.id_padron = padrones_1.id_padron
        INNER JOIN led_contratistas ON EMPLEADOS.contratista = led_contratistas.contratista
        INNER JOIN padrones ON led_contratistas.id_padron = padrones.id_padron

        UNION

        SELECT NULL AS doc_id, led_contratistas_1.cliente, led_contratistas.contratista_1,
           led_contratistas.contratista, VEHICULOS.led_seccion, VEHICULOS.periodo,
           NULL AS fecha_tolerancia, NULL AS fecha_vigencia, NULL AS aprobacion_parcial, 
           VEHICULOS.status_doc, VEHICULOS.tipo_doc, led_tipos_doc.nombre_tipo_doc,
           padrones.nombre_persona as empresa, padrones.identificador, padrones.numero,
           padrones_1.nombre_persona as nombre_contratista,
          CASE WHEN VEHICULOS.status_doc = 'R' THEN 1
            WHEN VEHICULOS.status_doc = 'E' THEN 2
            WHEN VEHICULOS.status_doc = 'P' THEN 3
            WHEN VEHICULOS.status_doc = 'N' THEN 4
            WHEN VEHICULOS.status_doc = 'I' THEN 5
            WHEN VEHICULOS.status_doc = 'V' THEN 6 END AS orden_status

        FROM
          (SELECT DOC_VEHICULOS.tipo_doc, DOC_VEHICULOS.led_seccion, DOC_VEHICULOS.contratista_1,
          DOC_VEHICULOS.contratista, DOC_VEHICULOS.periodo, MAX(DOC_VEHICULOS.estado_value) AS max_estado,
          CASE
           WHEN MAX(DOC_VEHICULOS.estado_value) = 10 THEN 'R'
           WHEN MAX(DOC_VEHICULOS.estado_value) = 7 THEN 'E'
           WHEN MAX(DOC_VEHICULOS.estado_value) = 5 THEN 'N'
           WHEN MAX(DOC_VEHICULOS.estado_value) = 3 THEN 'I'
           WHEN MAX(DOC_VEHICULOS.estado_value) = 1 THEN 'V'
          END AS status_doc   
          FROM
           (select led_docs.doc_id, led_docs.tipo_doc, led_docs.status_doc, led_docs.led_seccion,
              led_docs.contratista_1, led_docs.contratista, led_docs.periodo,
            CASE 
             WHEN led_docs.status_doc = 'R' THEN 10
             WHEN led_docs.status_doc = 'E' THEN 7
             WHEN led_docs.status_doc = 'N' THEN 5
             WHEN led_docs.status_doc = 'I' THEN 3
             WHEN led_docs.status_doc = 'V' THEN 1
            END AS estado_value
           from led_docs
           inner join dbo.DelimitedSplit8K(@p_status_doc, ',') estados ON led_docs.status_doc = estados.Item
           
           --inner join dbo.DelimitedSplit8K(@lista_tipos_doc, ',') tipos ON led_docs.tipo_doc = tipos.Item
           INNER JOIN led_vehiculos ON led_docs.vehiculo = led_vehiculos.vehiculo
           INNER JOIN led_cliente_vehiculo ON (led_vehiculos.tipo_vehiculo = led_cliente_vehiculo.tipo_vehiculo
                      AND led_docs.tipo_doc = led_cliente_vehiculo.tipo_doc
                      AND led_cliente_vehiculo.requiere_upload = 1
                      AND led_cliente_vehiculo.cliente = @cliente
                      AND led_cliente_vehiculo.ci_killer IN (select item from dbo.DelimitedSplit8K(@acceso, ',')))
           INNER JOIN led_vehiculos_periodo ON (led_docs.vehiculo = led_vehiculos_periodo.vehiculo AND led_docs.periodo = led_vehiculos_periodo.periodo)
           inner join led_contratista_periodo on (led_vehiculos.contratista = led_contratista_periodo.contratista AND led_vehiculos_periodo.periodo = led_contratista_periodo.periodo)

           where led_docs.contratista_1 = @p_contratista_1
           and led_vehiculos.estado_vehiculo = 'A'
           and led_docs.led_seccion = 'V') DOC_VEHICULOS
          GROUP BY DOC_VEHICULOS.tipo_doc, DOC_VEHICULOS.led_seccion, DOC_VEHICULOS.contratista_1,
            DOC_VEHICULOS.contratista, DOC_VEHICULOS.periodo) VEHICULOS

        INNER JOIN led_tipos_doc ON VEHICULOS.tipo_doc = led_tipos_doc.tipo_doc
        INNER JOIN led_contratistas AS led_contratistas_1 ON VEHICULOS.contratista_1 = led_contratistas_1.contratista
        INNER JOIN padrones AS padrones_1 ON led_contratistas_1.id_padron = padrones_1.id_padron
        INNER JOIN led_contratistas ON VEHICULOS.contratista = led_contratistas.contratista
        INNER JOIN padrones ON led_contratistas.id_padron = padrones.id_padron

        UNION


        SELECT NULL AS doc_id, led_contratistas_1.cliente, led_contratistas.contratista_1,
           led_contratistas.contratista, VEHICULOS.led_seccion, VEHICULOS.periodo,
           NULL AS fecha_tolerancia, NULL AS fecha_vigencia, NULL AS aprobacion_parcial, 
           VEHICULOS.status_doc, VEHICULOS.tipo_doc, led_tipos_doc.nombre_tipo_doc,
           padrones.nombre_persona as empresa, padrones.identificador, padrones.numero,
           padrones_1.nombre_persona as nombre_contratista,
          CASE WHEN VEHICULOS.status_doc = 'R' THEN 1
            WHEN VEHICULOS.status_doc = 'E' THEN 2
            WHEN VEHICULOS.status_doc = 'P' THEN 3
            WHEN VEHICULOS.status_doc = 'N' THEN 4
            WHEN VEHICULOS.status_doc = 'I' THEN 5
            WHEN VEHICULOS.status_doc = 'V' THEN 6 END AS orden_status

        FROM
          (SELECT DOC_VEHICULOS.tipo_doc, DOC_VEHICULOS.led_seccion, DOC_VEHICULOS.contratista_1,
          DOC_VEHICULOS.contratista, DOC_VEHICULOS.periodo, MAX(DOC_VEHICULOS.estado_value) AS max_estado,
          CASE
           WHEN MAX(DOC_VEHICULOS.estado_value) = 10 THEN 'R'
           WHEN MAX(DOC_VEHICULOS.estado_value) = 7 THEN 'E'
           WHEN MAX(DOC_VEHICULOS.estado_value) = 5 THEN 'N'
           WHEN MAX(DOC_VEHICULOS.estado_value) = 3 THEN 'I'
           WHEN MAX(DOC_VEHICULOS.estado_value) = 1 THEN 'V'
          END AS status_doc   
          FROM
           (select led_docs.doc_id, led_docs.tipo_doc, led_docs.status_doc, led_docs.led_seccion,
              led_docs.contratista_1, led_docs.contratista, led_docs.periodo,
            CASE 
             WHEN led_docs.status_doc = 'R' THEN 10
             WHEN led_docs.status_doc = 'E' THEN 7
             WHEN led_docs.status_doc = 'N' THEN 5
             WHEN led_docs.status_doc = 'I' THEN 3
             WHEN led_docs.status_doc = 'V' THEN 1
            END AS estado_value
           from led_docs
           inner join dbo.DelimitedSplit8K(@p_status_doc, ',') estados ON led_docs.status_doc = estados.Item
           
           --inner join dbo.DelimitedSplit8K(@lista_tipos_doc, ',') tipos ON led_docs.tipo_doc = tipos.Item
           INNER JOIN led_vehiculos ON led_docs.vehiculo = led_vehiculos.vehiculo
           INNER JOIN led_cliente_vehiculo ON (led_vehiculos.tipo_vehiculo = led_cliente_vehiculo.tipo_vehiculo
                      AND led_docs.tipo_doc = led_cliente_vehiculo.tipo_doc
                      AND led_cliente_vehiculo.requiere_upload = 1
                      AND led_cliente_vehiculo.cliente = @cliente
                      AND led_cliente_vehiculo.ci_killer IN (select item from dbo.DelimitedSplit8K(@acceso, ',')))
           INNER JOIN led_vehiculos_periodo ON (led_docs.vehiculo = led_vehiculos_periodo.vehiculo AND led_docs.periodo = led_vehiculos_periodo.periodo)
           inner join led_subcontratista_periodo on (led_vehiculos.contratista = led_subcontratista_periodo.subcontratista AND led_vehiculos_periodo.periodo = led_subcontratista_periodo.periodo)

           where led_docs.contratista_1 = @p_contratista_1
           and led_vehiculos.estado_vehiculo = 'A'
           and led_docs.led_seccion = 'V') DOC_VEHICULOS
          GROUP BY DOC_VEHICULOS.tipo_doc, DOC_VEHICULOS.led_seccion, DOC_VEHICULOS.contratista_1,
            DOC_VEHICULOS.contratista, DOC_VEHICULOS.periodo) VEHICULOS

        INNER JOIN led_tipos_doc ON VEHICULOS.tipo_doc = led_tipos_doc.tipo_doc
        INNER JOIN led_contratistas AS led_contratistas_1 ON VEHICULOS.contratista_1 = led_contratistas_1.contratista
        INNER JOIN padrones AS padrones_1 ON led_contratistas_1.id_padron = padrones_1.id_padron
        INNER JOIN led_contratistas ON VEHICULOS.contratista = led_contratistas.contratista
        INNER JOIN padrones ON led_contratistas.id_padron = padrones.id_padron

        ORDER BY orden_status, periodo, nombre_tipo_doc


       ELSE

       /* VISTA DEFAULT */


        IF (@p_periodo_desde IS NOT NULL AND @p_periodo_hasta IS NULL) 
         
         /* Todas las secciones, todas las empresas, período desde */

         SELECT led_docs.doc_id, led_docs.cliente, led_docs.contratista_1, led_docs.contratista,
           led_docs.led_seccion, led_docs.periodo, led_docs.fecha_tolerancia, 
           led_docs.fecha_vigencia, led_docs.aprobacion_parcial, led_docs.status_doc,
           led_docs.tipo_doc, led_tipos_doc.nombre_tipo_doc,
           padrones.nombre_persona as empresa, padrones.identificador, padrones.numero,
           padrones_1.nombre_persona as nombre_contratista,
         CASE WHEN led_docs.status_doc = 'R' THEN 1
           WHEN led_docs.status_doc = 'E' THEN 2
           WHEN led_docs.status_doc = 'P' THEN 3
           WHEN led_docs.status_doc = 'N' THEN 4
           WHEN led_docs.status_doc = 'I' THEN 5
           WHEN led_docs.status_doc = 'V' THEN 6 END AS orden_status
         FROM led_docs
         INNER JOIN led_tipos_doc ON led_docs.tipo_doc = led_tipos_doc.tipo_doc
         INNER JOIN dbo.DelimitedSplit8K(@p_status_doc, ',') estados ON led_docs.status_doc = estados.Item
         INNER JOIN led_contratistas ON led_docs.contratista = led_contratistas.contratista
         INNER JOIN padrones ON led_contratistas.id_padron = padrones.id_padron
         INNER JOIN led_contratistas led_contratistas_1 ON led_docs.contratista_1 = led_contratistas_1.contratista
         INNER JOIN padrones padrones_1 ON led_contratistas_1.id_padron = padrones_1.id_padron

         INNER JOIN led_cliente_contratista ON (led_contratistas.tipo_contratista = led_cliente_contratista.tipo_contratista
                    AND led_docs.tipo_doc = led_cliente_contratista.tipo_doc
                    AND led_cliente_contratista.requiere_upload = 1
                    AND led_cliente_contratista.cliente = @cliente
                    AND led_cliente_contratista.ci_killer IN (select item from dbo.DelimitedSplit8K(@acceso, ',')))
         
         INNER JOIN led_contratista_periodo ON (led_contratistas_1.contratista = led_contratista_periodo.contratista 
                   AND led_docs.periodo = led_contratista_periodo.periodo)

         WHERE led_docs.contratista_1 = @p_contratista_1
         AND led_contratistas.contratista_1 = led_contratistas.contratista
         AND led_docs.periodo >= @p_periodo_desde
         AND led_docs.led_seccion = 'C'

         UNION

         SELECT led_docs.doc_id, led_docs.cliente, led_docs.contratista_1, led_docs.contratista,
           led_docs.led_seccion, led_docs.periodo, led_docs.fecha_tolerancia, 
           led_docs.fecha_vigencia, led_docs.aprobacion_parcial, led_docs.status_doc,
           led_docs.tipo_doc, led_tipos_doc.nombre_tipo_doc,
           padrones.nombre_persona as empresa, padrones.identificador, padrones.numero,
           padrones_1.nombre_persona as nombre_contratista,
         CASE WHEN led_docs.status_doc = 'R' THEN 1
           WHEN led_docs.status_doc = 'E' THEN 2
           WHEN led_docs.status_doc = 'P' THEN 3
           WHEN led_docs.status_doc = 'N' THEN 4
           WHEN led_docs.status_doc = 'I' THEN 5
           WHEN led_docs.status_doc = 'V' THEN 6 END AS orden_status
         FROM led_docs
         INNER JOIN led_tipos_doc ON led_docs.tipo_doc = led_tipos_doc.tipo_doc
         INNER JOIN dbo.DelimitedSplit8K(@p_status_doc, ',') estados ON led_docs.status_doc = estados.Item
         INNER JOIN led_contratistas ON led_docs.contratista = led_contratistas.contratista
         INNER JOIN padrones ON led_contratistas.id_padron = padrones.id_padron
         INNER JOIN led_contratistas led_contratistas_1 ON led_docs.contratista_1 = led_contratistas_1.contratista
         INNER JOIN padrones padrones_1 ON led_contratistas_1.id_padron = padrones_1.id_padron

         INNER JOIN led_cliente_contratista ON (led_contratistas.tipo_contratista = led_cliente_contratista.tipo_contratista
                    AND led_docs.tipo_doc = led_cliente_contratista.tipo_doc
                    AND led_cliente_contratista.requiere_upload = 1
                    AND led_cliente_contratista.cliente = @cliente
                    AND led_cliente_contratista.ci_killer IN (select item from dbo.DelimitedSplit8K(@acceso, ',')))
         
         INNER JOIN led_subcontratista_periodo ON (led_contratistas.contratista = led_subcontratista_periodo.subcontratista 
                   AND led_docs.periodo = led_subcontratista_periodo.periodo)

         WHERE led_docs.contratista_1 = @p_contratista_1
         AND led_contratistas.contratista_1 <> led_contratistas.contratista
         AND led_docs.periodo >= @p_periodo_desde
         AND led_docs.led_seccion = 'C'
         AND led_contratistas.estado_contratista = 'A'


         UNION

         SELECT NULL AS doc_id, led_contratistas_1.cliente, led_contratistas.contratista_1,
            led_contratistas.contratista, EMPLEADOS.led_seccion, EMPLEADOS.periodo,
            NULL AS fecha_tolerancia, NULL AS fecha_vigencia, NULL AS aprobacion_parcial, 
            EMPLEADOS.status_doc, EMPLEADOS.tipo_doc, led_tipos_doc.nombre_tipo_doc,
            padrones.nombre_persona as empresa, padrones.identificador, padrones.numero,
            padrones_1.nombre_persona as nombre_contratista,
          CASE WHEN EMPLEADOS.status_doc = 'R' THEN 1
            WHEN EMPLEADOS.status_doc = 'E' THEN 2
            WHEN EMPLEADOS.status_doc = 'P' THEN 3
            WHEN EMPLEADOS.status_doc = 'N' THEN 4
            WHEN EMPLEADOS.status_doc = 'I' THEN 5
            WHEN EMPLEADOS.status_doc = 'V' THEN 6 END AS orden_status

         FROM
           (SELECT DOC_EMPLEADOS.tipo_doc, DOC_EMPLEADOS.led_seccion, DOC_EMPLEADOS.contratista_1,
           DOC_EMPLEADOS.contratista, DOC_EMPLEADOS.periodo, MAX(DOC_EMPLEADOS.estado_value) AS max_estado,
           CASE
            WHEN MAX(DOC_EMPLEADOS.estado_value) = 10 THEN 'R'
            WHEN MAX(DOC_EMPLEADOS.estado_value) = 7 THEN 'E'
            WHEN MAX(DOC_EMPLEADOS.estado_value) = 5 THEN 'N'
            WHEN MAX(DOC_EMPLEADOS.estado_value) = 3 THEN 'I'
            WHEN MAX(DOC_EMPLEADOS.estado_value) = 1 THEN 'V'
           END AS status_doc   
           FROM
            (select led_docs.doc_id, led_docs.tipo_doc, led_docs.status_doc, led_docs.led_seccion,
               led_docs.contratista_1, led_docs.contratista, led_docs.periodo,
             CASE 
              WHEN led_docs.status_doc = 'R' THEN 10
              WHEN led_docs.status_doc = 'E' THEN 7
              WHEN led_docs.status_doc = 'N' THEN 5
              WHEN led_docs.status_doc = 'I' THEN 3
              WHEN led_docs.status_doc = 'V' THEN 1
             END AS estado_value
            from led_docs
            inner join dbo.DelimitedSplit8K(@p_status_doc, ',') estados ON led_docs.status_doc = estados.Item

            --inner join dbo.DelimitedSplit8K(@lista_tipos_doc, ',') tipos ON led_docs.tipo_doc = tipos.Item
            INNER JOIN led_empleados ON led_docs.empleado = led_empleados.empleado
            INNER JOIN led_cliente_empleado ON (led_empleados.tipo_empleado = led_cliente_empleado.tipo_empleado
                       AND led_docs.tipo_doc = led_cliente_empleado.tipo_doc
                       AND led_cliente_empleado.requiere_upload = 1
                       AND led_cliente_empleado.cliente = @cliente
                       AND led_cliente_empleado.ci_killer IN (select item from dbo.DelimitedSplit8K(@acceso, ',')))
            INNER JOIN led_empleados_periodo ON (led_docs.empleado = led_empleados_periodo.empleado AND led_docs.periodo = led_empleados_periodo.periodo)
            inner join led_contratista_periodo on (led_empleados.contratista = led_contratista_periodo.contratista AND led_empleados_periodo.periodo = led_contratista_periodo.periodo)

            where led_docs.contratista_1 = @p_contratista_1
            and led_docs.periodo >= @p_periodo_desde
            and led_docs.led_seccion = 'E') DOC_EMPLEADOS
           GROUP BY DOC_EMPLEADOS.tipo_doc, DOC_EMPLEADOS.led_seccion, DOC_EMPLEADOS.contratista_1,
             DOC_EMPLEADOS.contratista, DOC_EMPLEADOS.periodo) EMPLEADOS

         INNER JOIN led_tipos_doc ON EMPLEADOS.tipo_doc = led_tipos_doc.tipo_doc
         INNER JOIN led_contratistas AS led_contratistas_1 ON EMPLEADOS.contratista_1 = led_contratistas_1.contratista
         INNER JOIN padrones AS padrones_1 ON led_contratistas_1.id_padron = padrones_1.id_padron
         INNER JOIN led_contratistas ON EMPLEADOS.contratista = led_contratistas.contratista
         INNER JOIN padrones ON led_contratistas.id_padron = padrones.id_padron

         UNION


         SELECT NULL AS doc_id, led_contratistas_1.cliente, led_contratistas.contratista_1,
            led_contratistas.contratista, EMPLEADOS.led_seccion, EMPLEADOS.periodo,
            NULL AS fecha_tolerancia, NULL AS fecha_vigencia, NULL AS aprobacion_parcial, 
            EMPLEADOS.status_doc, EMPLEADOS.tipo_doc, led_tipos_doc.nombre_tipo_doc,
            padrones.nombre_persona as empresa, padrones.identificador, padrones.numero,
            padrones_1.nombre_persona as nombre_contratista,
          CASE WHEN EMPLEADOS.status_doc = 'R' THEN 1
            WHEN EMPLEADOS.status_doc = 'E' THEN 2
            WHEN EMPLEADOS.status_doc = 'P' THEN 3
            WHEN EMPLEADOS.status_doc = 'N' THEN 4
            WHEN EMPLEADOS.status_doc = 'I' THEN 5
            WHEN EMPLEADOS.status_doc = 'V' THEN 6 END AS orden_status

         FROM
           (SELECT DOC_EMPLEADOS.tipo_doc, DOC_EMPLEADOS.led_seccion, DOC_EMPLEADOS.contratista_1,
           DOC_EMPLEADOS.contratista, DOC_EMPLEADOS.periodo, MAX(DOC_EMPLEADOS.estado_value) AS max_estado,
           CASE
            WHEN MAX(DOC_EMPLEADOS.estado_value) = 10 THEN 'R'
            WHEN MAX(DOC_EMPLEADOS.estado_value) = 7 THEN 'E'
            WHEN MAX(DOC_EMPLEADOS.estado_value) = 5 THEN 'N'
            WHEN MAX(DOC_EMPLEADOS.estado_value) = 3 THEN 'I'
            WHEN MAX(DOC_EMPLEADOS.estado_value) = 1 THEN 'V'
           END AS status_doc   
           FROM
            (select led_docs.doc_id, led_docs.tipo_doc, led_docs.status_doc, led_docs.led_seccion,
               led_docs.contratista_1, led_docs.contratista, led_docs.periodo,
             CASE 
              WHEN led_docs.status_doc = 'R' THEN 10
              WHEN led_docs.status_doc = 'E' THEN 7
              WHEN led_docs.status_doc = 'N' THEN 5
              WHEN led_docs.status_doc = 'I' THEN 3
              WHEN led_docs.status_doc = 'V' THEN 1
             END AS estado_value
            from led_docs
            inner join dbo.DelimitedSplit8K(@p_status_doc, ',') estados ON led_docs.status_doc = estados.Item

            --inner join dbo.DelimitedSplit8K(@lista_tipos_doc, ',') tipos ON led_docs.tipo_doc = tipos.Item
            INNER JOIN led_empleados ON led_docs.empleado = led_empleados.empleado
            INNER JOIN led_cliente_empleado ON (led_empleados.tipo_empleado = led_cliente_empleado.tipo_empleado
                       AND led_docs.tipo_doc = led_cliente_empleado.tipo_doc
                       AND led_cliente_empleado.requiere_upload = 1
                       AND led_cliente_empleado.cliente = @cliente
                       AND led_cliente_empleado.ci_killer IN (select item from dbo.DelimitedSplit8K(@acceso, ',')))
            INNER JOIN led_empleados_periodo ON (led_docs.empleado = led_empleados_periodo.empleado AND led_docs.periodo = led_empleados_periodo.periodo)
            inner join led_subcontratista_periodo on (led_empleados.contratista = led_subcontratista_periodo.subcontratista AND led_empleados_periodo.periodo = led_subcontratista_periodo.periodo)

            where led_docs.contratista_1 = @p_contratista_1
            and led_docs.periodo >= @p_periodo_desde
            and led_docs.led_seccion = 'E') DOC_EMPLEADOS
           GROUP BY DOC_EMPLEADOS.tipo_doc, DOC_EMPLEADOS.led_seccion, DOC_EMPLEADOS.contratista_1,
             DOC_EMPLEADOS.contratista, DOC_EMPLEADOS.periodo) EMPLEADOS

         INNER JOIN led_tipos_doc ON EMPLEADOS.tipo_doc = led_tipos_doc.tipo_doc
         INNER JOIN led_contratistas AS led_contratistas_1 ON EMPLEADOS.contratista_1 = led_contratistas_1.contratista
         INNER JOIN padrones AS padrones_1 ON led_contratistas_1.id_padron = padrones_1.id_padron
         INNER JOIN led_contratistas ON EMPLEADOS.contratista = led_contratistas.contratista
         INNER JOIN padrones ON led_contratistas.id_padron = padrones.id_padron


         UNION

         SELECT NULL AS doc_id, led_contratistas_1.cliente, led_contratistas.contratista_1,
            led_contratistas.contratista, VEHICULOS.led_seccion, VEHICULOS.periodo,
            NULL AS fecha_tolerancia, NULL AS fecha_vigencia, NULL AS aprobacion_parcial, 
            VEHICULOS.status_doc, VEHICULOS.tipo_doc, led_tipos_doc.nombre_tipo_doc,
            padrones.nombre_persona as empresa, padrones.identificador, padrones.numero,
            padrones_1.nombre_persona as nombre_contratista,
          CASE WHEN VEHICULOS.status_doc = 'R' THEN 1
            WHEN VEHICULOS.status_doc = 'E' THEN 2
            WHEN VEHICULOS.status_doc = 'P' THEN 3
            WHEN VEHICULOS.status_doc = 'N' THEN 4
            WHEN VEHICULOS.status_doc = 'I' THEN 5
            WHEN VEHICULOS.status_doc = 'V' THEN 6 END AS orden_status

         FROM
           (SELECT DOC_VEHICULOS.tipo_doc, DOC_VEHICULOS.led_seccion, DOC_VEHICULOS.contratista_1,
           DOC_VEHICULOS.contratista, DOC_VEHICULOS.periodo, MAX(DOC_VEHICULOS.estado_value) AS max_estado,
           CASE
            WHEN MAX(DOC_VEHICULOS.estado_value) = 10 THEN 'R'
            WHEN MAX(DOC_VEHICULOS.estado_value) = 7 THEN 'E'
            WHEN MAX(DOC_VEHICULOS.estado_value) = 5 THEN 'N'
            WHEN MAX(DOC_VEHICULOS.estado_value) = 3 THEN 'I'
            WHEN MAX(DOC_VEHICULOS.estado_value) = 1 THEN 'V'
           END AS status_doc   
           FROM
            (select led_docs.doc_id, led_docs.tipo_doc, led_docs.status_doc, led_docs.led_seccion,
               led_docs.contratista_1, led_docs.contratista, led_docs.periodo,
             CASE 
              WHEN led_docs.status_doc = 'R' THEN 10
              WHEN led_docs.status_doc = 'E' THEN 7
              WHEN led_docs.status_doc = 'N' THEN 5
              WHEN led_docs.status_doc = 'I' THEN 3
              WHEN led_docs.status_doc = 'V' THEN 1
             END AS estado_value
            from led_docs
            inner join dbo.DelimitedSplit8K(@p_status_doc, ',') estados ON led_docs.status_doc = estados.Item
            
            --inner join dbo.DelimitedSplit8K(@lista_tipos_doc, ',') tipos ON led_docs.tipo_doc = tipos.Item
            INNER JOIN led_vehiculos ON led_docs.vehiculo = led_vehiculos.vehiculo
            INNER JOIN led_cliente_vehiculo ON (led_vehiculos.tipo_vehiculo = led_cliente_vehiculo.tipo_vehiculo
                       AND led_docs.tipo_doc = led_cliente_vehiculo.tipo_doc
                       AND led_cliente_vehiculo.requiere_upload = 1
                       AND led_cliente_vehiculo.cliente = @cliente
                       AND led_cliente_vehiculo.ci_killer IN (select item from dbo.DelimitedSplit8K(@acceso, ',')))
            INNER JOIN led_vehiculos_periodo ON (led_docs.vehiculo = led_vehiculos_periodo.vehiculo AND led_docs.periodo = led_vehiculos_periodo.periodo)
            inner join led_contratista_periodo on (led_vehiculos.contratista = led_contratista_periodo.contratista AND led_vehiculos_periodo.periodo = led_contratista_periodo.periodo)

            where led_docs.contratista_1 = @p_contratista_1
            and led_vehiculos.estado_vehiculo = 'A'
            and led_docs.periodo >= @p_periodo_desde
            and led_docs.led_seccion = 'V') DOC_VEHICULOS
           GROUP BY DOC_VEHICULOS.tipo_doc, DOC_VEHICULOS.led_seccion, DOC_VEHICULOS.contratista_1,
             DOC_VEHICULOS.contratista, DOC_VEHICULOS.periodo) VEHICULOS

         INNER JOIN led_tipos_doc ON VEHICULOS.tipo_doc = led_tipos_doc.tipo_doc
         INNER JOIN led_contratistas AS led_contratistas_1 ON VEHICULOS.contratista_1 = led_contratistas_1.contratista
         INNER JOIN padrones AS padrones_1 ON led_contratistas_1.id_padron = padrones_1.id_padron
         INNER JOIN led_contratistas ON VEHICULOS.contratista = led_contratistas.contratista
         INNER JOIN padrones ON led_contratistas.id_padron = padrones.id_padron

         UNION

         SELECT NULL AS doc_id, led_contratistas_1.cliente, led_contratistas.contratista_1,
            led_contratistas.contratista, VEHICULOS.led_seccion, VEHICULOS.periodo,
            NULL AS fecha_tolerancia, NULL AS fecha_vigencia, NULL AS aprobacion_parcial, 
            VEHICULOS.status_doc, VEHICULOS.tipo_doc, led_tipos_doc.nombre_tipo_doc,
            padrones.nombre_persona as empresa, padrones.identificador, padrones.numero,
            padrones_1.nombre_persona as nombre_contratista,
          CASE WHEN VEHICULOS.status_doc = 'R' THEN 1
            WHEN VEHICULOS.status_doc = 'E' THEN 2
            WHEN VEHICULOS.status_doc = 'P' THEN 3
            WHEN VEHICULOS.status_doc = 'N' THEN 4
            WHEN VEHICULOS.status_doc = 'I' THEN 5
            WHEN VEHICULOS.status_doc = 'V' THEN 6 END AS orden_status

         FROM
           (SELECT DOC_VEHICULOS.tipo_doc, DOC_VEHICULOS.led_seccion, DOC_VEHICULOS.contratista_1,
           DOC_VEHICULOS.contratista, DOC_VEHICULOS.periodo, MAX(DOC_VEHICULOS.estado_value) AS max_estado,
           CASE
            WHEN MAX(DOC_VEHICULOS.estado_value) = 10 THEN 'R'
            WHEN MAX(DOC_VEHICULOS.estado_value) = 7 THEN 'E'
            WHEN MAX(DOC_VEHICULOS.estado_value) = 5 THEN 'N'
            WHEN MAX(DOC_VEHICULOS.estado_value) = 3 THEN 'I'
            WHEN MAX(DOC_VEHICULOS.estado_value) = 1 THEN 'V'
           END AS status_doc   
           FROM
            (select led_docs.doc_id, led_docs.tipo_doc, led_docs.status_doc, led_docs.led_seccion,
               led_docs.contratista_1, led_docs.contratista, led_docs.periodo,
             CASE 
              WHEN led_docs.status_doc = 'R' THEN 10
              WHEN led_docs.status_doc = 'E' THEN 7
              WHEN led_docs.status_doc = 'N' THEN 5
              WHEN led_docs.status_doc = 'I' THEN 3
              WHEN led_docs.status_doc = 'V' THEN 1
             END AS estado_value
            from led_docs
            inner join dbo.DelimitedSplit8K(@p_status_doc, ',') estados ON led_docs.status_doc = estados.Item
            
            --inner join dbo.DelimitedSplit8K(@lista_tipos_doc, ',') tipos ON led_docs.tipo_doc = tipos.Item
            INNER JOIN led_vehiculos ON led_docs.vehiculo = led_vehiculos.vehiculo
            INNER JOIN led_cliente_vehiculo ON (led_vehiculos.tipo_vehiculo = led_cliente_vehiculo.tipo_vehiculo
                       AND led_docs.tipo_doc = led_cliente_vehiculo.tipo_doc
                       AND led_cliente_vehiculo.requiere_upload = 1
                       AND led_cliente_vehiculo.cliente = @cliente
                       AND led_cliente_vehiculo.ci_killer IN (select item from dbo.DelimitedSplit8K(@acceso, ',')))
            INNER JOIN led_vehiculos_periodo ON (led_docs.vehiculo = led_vehiculos_periodo.vehiculo AND led_docs.periodo = led_vehiculos_periodo.periodo)
            inner join led_subcontratista_periodo on (led_vehiculos.contratista = led_subcontratista_periodo.subcontratista AND led_vehiculos_periodo.periodo = led_subcontratista_periodo.periodo)

            where led_docs.contratista_1 = @p_contratista_1
            and led_vehiculos.estado_vehiculo = 'A'
            and led_docs.periodo >= @p_periodo_desde
            and led_docs.led_seccion = 'V') DOC_VEHICULOS
           GROUP BY DOC_VEHICULOS.tipo_doc, DOC_VEHICULOS.led_seccion, DOC_VEHICULOS.contratista_1,
             DOC_VEHICULOS.contratista, DOC_VEHICULOS.periodo) VEHICULOS

         INNER JOIN led_tipos_doc ON VEHICULOS.tipo_doc = led_tipos_doc.tipo_doc
         INNER JOIN led_contratistas AS led_contratistas_1 ON VEHICULOS.contratista_1 = led_contratistas_1.contratista
         INNER JOIN padrones AS padrones_1 ON led_contratistas_1.id_padron = padrones_1.id_padron
         INNER JOIN led_contratistas ON VEHICULOS.contratista = led_contratistas.contratista
         INNER JOIN padrones ON led_contratistas.id_padron = padrones.id_padron

           
         ORDER BY orden_status, periodo, nombre_tipo_doc


        ELSE

         IF (@p_periodo_desde IS NULL AND @p_periodo_hasta IS NOT NULL) 

          /* Todas las secciones, todas las empresas, período hasta */

          SELECT led_docs.doc_id, led_docs.cliente, led_docs.contratista_1, led_docs.contratista,
            led_docs.led_seccion, led_docs.periodo, led_docs.fecha_tolerancia, 
            led_docs.fecha_vigencia, led_docs.aprobacion_parcial, led_docs.status_doc,
            led_docs.tipo_doc, led_tipos_doc.nombre_tipo_doc,
            padrones.nombre_persona as empresa, padrones.identificador, padrones.numero,
            padrones_1.nombre_persona as nombre_contratista,
          CASE WHEN led_docs.status_doc = 'R' THEN 1
            WHEN led_docs.status_doc = 'E' THEN 2
            WHEN led_docs.status_doc = 'P' THEN 3
            WHEN led_docs.status_doc = 'N' THEN 4
            WHEN led_docs.status_doc = 'I' THEN 5
            WHEN led_docs.status_doc = 'V' THEN 6 END AS orden_status
          FROM led_docs
          INNER JOIN led_tipos_doc ON led_docs.tipo_doc = led_tipos_doc.tipo_doc
          INNER JOIN dbo.DelimitedSplit8K(@p_status_doc, ',') estados ON led_docs.status_doc = estados.Item
          INNER JOIN led_contratistas ON led_docs.contratista = led_contratistas.contratista
          INNER JOIN padrones ON led_contratistas.id_padron = padrones.id_padron
          INNER JOIN led_contratistas led_contratistas_1 ON led_docs.contratista_1 = led_contratistas_1.contratista
          INNER JOIN padrones padrones_1 ON led_contratistas_1.id_padron = padrones_1.id_padron

          INNER JOIN led_cliente_contratista ON (led_contratistas.tipo_contratista = led_cliente_contratista.tipo_contratista
                     AND led_docs.tipo_doc = led_cliente_contratista.tipo_doc
                     AND led_cliente_contratista.requiere_upload = 1
                     AND led_cliente_contratista.cliente = @cliente
                     AND led_cliente_contratista.ci_killer IN (select item from dbo.DelimitedSplit8K(@acceso, ',')))

          INNER JOIN led_contratista_periodo ON (led_contratistas_1.contratista = led_contratista_periodo.contratista 
                  AND led_docs.periodo = led_contratista_periodo.periodo)
  
          WHERE led_docs.contratista_1 = @p_contratista_1
          AND led_contratistas.contratista_1 = led_contratistas.contratista
          AND led_docs.periodo <= @p_periodo_hasta
          AND led_docs.led_seccion = 'C'


          UNION

          SELECT led_docs.doc_id, led_docs.cliente, led_docs.contratista_1, led_docs.contratista,
            led_docs.led_seccion, led_docs.periodo, led_docs.fecha_tolerancia, 
            led_docs.fecha_vigencia, led_docs.aprobacion_parcial, led_docs.status_doc,
            led_docs.tipo_doc, led_tipos_doc.nombre_tipo_doc,
            padrones.nombre_persona as empresa, padrones.identificador, padrones.numero,
            padrones_1.nombre_persona as nombre_contratista,
          CASE WHEN led_docs.status_doc = 'R' THEN 1
            WHEN led_docs.status_doc = 'E' THEN 2
            WHEN led_docs.status_doc = 'P' THEN 3
            WHEN led_docs.status_doc = 'N' THEN 4
            WHEN led_docs.status_doc = 'I' THEN 5
            WHEN led_docs.status_doc = 'V' THEN 6 END AS orden_status
          FROM led_docs
          INNER JOIN led_tipos_doc ON led_docs.tipo_doc = led_tipos_doc.tipo_doc
          INNER JOIN dbo.DelimitedSplit8K(@p_status_doc, ',') estados ON led_docs.status_doc = estados.Item
          INNER JOIN led_contratistas ON led_docs.contratista = led_contratistas.contratista
          INNER JOIN padrones ON led_contratistas.id_padron = padrones.id_padron
          INNER JOIN led_contratistas led_contratistas_1 ON led_docs.contratista_1 = led_contratistas_1.contratista
          INNER JOIN padrones padrones_1 ON led_contratistas_1.id_padron = padrones_1.id_padron

          INNER JOIN led_cliente_contratista ON (led_contratistas.tipo_contratista = led_cliente_contratista.tipo_contratista
                     AND led_docs.tipo_doc = led_cliente_contratista.tipo_doc
                     AND led_cliente_contratista.requiere_upload = 1
                     AND led_cliente_contratista.cliente = @cliente
                     AND led_cliente_contratista.ci_killer IN (select item from dbo.DelimitedSplit8K(@acceso, ',')))
         
          INNER JOIN led_subcontratista_periodo ON (led_contratistas.contratista = led_subcontratista_periodo.subcontratista 
                    AND led_docs.periodo = led_subcontratista_periodo.periodo)

          WHERE led_docs.contratista_1 = @p_contratista_1
          AND led_contratistas.contratista_1 <> led_contratistas.contratista
          AND led_docs.periodo <= @p_periodo_hasta
          AND led_docs.led_seccion = 'C'
          AND led_contratistas.estado_contratista = 'A'


          UNION

          SELECT NULL AS doc_id, led_contratistas_1.cliente, led_contratistas.contratista_1,
             led_contratistas.contratista, EMPLEADOS.led_seccion, EMPLEADOS.periodo,
             NULL AS fecha_tolerancia, NULL AS fecha_vigencia, NULL AS aprobacion_parcial, 
             EMPLEADOS.status_doc, EMPLEADOS.tipo_doc, led_tipos_doc.nombre_tipo_doc,
             padrones.nombre_persona as empresa, padrones.identificador, padrones.numero,
             padrones_1.nombre_persona as nombre_contratista,
          CASE WHEN EMPLEADOS.status_doc = 'R' THEN 1
            WHEN EMPLEADOS.status_doc = 'E' THEN 2
            WHEN EMPLEADOS.status_doc = 'P' THEN 3
            WHEN EMPLEADOS.status_doc = 'N' THEN 4
            WHEN EMPLEADOS.status_doc = 'I' THEN 5
            WHEN EMPLEADOS.status_doc = 'V' THEN 6 END AS orden_status

          FROM
            (SELECT DOC_EMPLEADOS.tipo_doc, DOC_EMPLEADOS.led_seccion, DOC_EMPLEADOS.contratista_1,
            DOC_EMPLEADOS.contratista, DOC_EMPLEADOS.periodo, MAX(DOC_EMPLEADOS.estado_value) AS max_estado,
            CASE
             WHEN MAX(DOC_EMPLEADOS.estado_value) = 10 THEN 'R'
             WHEN MAX(DOC_EMPLEADOS.estado_value) = 7 THEN 'E'
             WHEN MAX(DOC_EMPLEADOS.estado_value) = 5 THEN 'N'
             WHEN MAX(DOC_EMPLEADOS.estado_value) = 3 THEN 'I'
             WHEN MAX(DOC_EMPLEADOS.estado_value) = 1 THEN 'V'
            END AS status_doc   
            FROM
             (select led_docs.doc_id, led_docs.tipo_doc, led_docs.status_doc, led_docs.led_seccion,
                led_docs.contratista_1, led_docs.contratista, led_docs.periodo,
              CASE 
               WHEN led_docs.status_doc = 'R' THEN 10
               WHEN led_docs.status_doc = 'E' THEN 7
               WHEN led_docs.status_doc = 'N' THEN 5
               WHEN led_docs.status_doc = 'I' THEN 3
               WHEN led_docs.status_doc = 'V' THEN 1
              END AS estado_value
             from led_docs
             inner join dbo.DelimitedSplit8K(@p_status_doc, ',') estados ON led_docs.status_doc = estados.Item
             
             --inner join dbo.DelimitedSplit8K(@lista_tipos_doc, ',') tipos ON led_docs.tipo_doc = tipos.Item
             INNER JOIN led_empleados ON led_docs.empleado = led_empleados.empleado
             INNER JOIN led_cliente_empleado ON (led_empleados.tipo_empleado = led_cliente_empleado.tipo_empleado
                        AND led_docs.tipo_doc = led_cliente_empleado.tipo_doc
                        AND led_cliente_empleado.requiere_upload = 1
                        AND led_cliente_empleado.cliente = @cliente
                        AND led_cliente_empleado.ci_killer IN (select item from dbo.DelimitedSplit8K(@acceso, ',')))
             INNER JOIN led_empleados_periodo ON (led_docs.empleado = led_empleados_periodo.empleado AND led_docs.periodo = led_empleados_periodo.periodo)
             inner join led_contratista_periodo on (led_empleados.contratista = led_contratista_periodo.contratista AND led_empleados_periodo.periodo = led_contratista_periodo.periodo)
             
             where led_docs.contratista_1 = @p_contratista_1
             and led_docs.periodo <= @p_periodo_hasta
             and led_docs.led_seccion = 'E') DOC_EMPLEADOS
            GROUP BY DOC_EMPLEADOS.tipo_doc, DOC_EMPLEADOS.led_seccion, DOC_EMPLEADOS.contratista_1,
              DOC_EMPLEADOS.contratista, DOC_EMPLEADOS.periodo) EMPLEADOS

          INNER JOIN led_tipos_doc ON EMPLEADOS.tipo_doc = led_tipos_doc.tipo_doc
          INNER JOIN led_contratistas AS led_contratistas_1 ON EMPLEADOS.contratista_1 = led_contratistas_1.contratista
          INNER JOIN padrones AS padrones_1 ON led_contratistas_1.id_padron = padrones_1.id_padron
          INNER JOIN led_contratistas ON EMPLEADOS.contratista = led_contratistas.contratista
          INNER JOIN padrones ON led_contratistas.id_padron = padrones.id_padron

          UNION

          SELECT NULL AS doc_id, led_contratistas_1.cliente, led_contratistas.contratista_1,
             led_contratistas.contratista, EMPLEADOS.led_seccion, EMPLEADOS.periodo,
             NULL AS fecha_tolerancia, NULL AS fecha_vigencia, NULL AS aprobacion_parcial, 
             EMPLEADOS.status_doc, EMPLEADOS.tipo_doc, led_tipos_doc.nombre_tipo_doc,
             padrones.nombre_persona as empresa, padrones.identificador, padrones.numero,
             padrones_1.nombre_persona as nombre_contratista,
          CASE WHEN EMPLEADOS.status_doc = 'R' THEN 1
            WHEN EMPLEADOS.status_doc = 'E' THEN 2
            WHEN EMPLEADOS.status_doc = 'P' THEN 3
            WHEN EMPLEADOS.status_doc = 'N' THEN 4
            WHEN EMPLEADOS.status_doc = 'I' THEN 5
            WHEN EMPLEADOS.status_doc = 'V' THEN 6 END AS orden_status

          FROM
            (SELECT DOC_EMPLEADOS.tipo_doc, DOC_EMPLEADOS.led_seccion, DOC_EMPLEADOS.contratista_1,
            DOC_EMPLEADOS.contratista, DOC_EMPLEADOS.periodo, MAX(DOC_EMPLEADOS.estado_value) AS max_estado,
            CASE
             WHEN MAX(DOC_EMPLEADOS.estado_value) = 10 THEN 'R'
             WHEN MAX(DOC_EMPLEADOS.estado_value) = 7 THEN 'E'
             WHEN MAX(DOC_EMPLEADOS.estado_value) = 5 THEN 'N'
             WHEN MAX(DOC_EMPLEADOS.estado_value) = 3 THEN 'I'
             WHEN MAX(DOC_EMPLEADOS.estado_value) = 1 THEN 'V'
            END AS status_doc   
            FROM
             (select led_docs.doc_id, led_docs.tipo_doc, led_docs.status_doc, led_docs.led_seccion,
                led_docs.contratista_1, led_docs.contratista, led_docs.periodo,
              CASE 
               WHEN led_docs.status_doc = 'R' THEN 10
               WHEN led_docs.status_doc = 'E' THEN 7
               WHEN led_docs.status_doc = 'N' THEN 5
               WHEN led_docs.status_doc = 'I' THEN 3
               WHEN led_docs.status_doc = 'V' THEN 1
              END AS estado_value
             from led_docs
             inner join dbo.DelimitedSplit8K(@p_status_doc, ',') estados ON led_docs.status_doc = estados.Item
             
             --inner join dbo.DelimitedSplit8K(@lista_tipos_doc, ',') tipos ON led_docs.tipo_doc = tipos.Item
             INNER JOIN led_empleados ON led_docs.empleado = led_empleados.empleado
             INNER JOIN led_cliente_empleado ON (led_empleados.tipo_empleado = led_cliente_empleado.tipo_empleado
                        AND led_docs.tipo_doc = led_cliente_empleado.tipo_doc
                        AND led_cliente_empleado.requiere_upload = 1
                        AND led_cliente_empleado.cliente = @cliente
                        AND led_cliente_empleado.ci_killer IN (select item from dbo.DelimitedSplit8K(@acceso, ',')))
             INNER JOIN led_empleados_periodo ON (led_docs.empleado = led_empleados_periodo.empleado AND led_docs.periodo = led_empleados_periodo.periodo)
             inner join led_subcontratista_periodo on (led_empleados.contratista = led_subcontratista_periodo.subcontratista AND led_empleados_periodo.periodo = led_subcontratista_periodo.periodo)
             
             where led_docs.contratista_1 = @p_contratista_1
             and led_docs.periodo <= @p_periodo_hasta
             and led_docs.led_seccion = 'E') DOC_EMPLEADOS
            GROUP BY DOC_EMPLEADOS.tipo_doc, DOC_EMPLEADOS.led_seccion, DOC_EMPLEADOS.contratista_1,
              DOC_EMPLEADOS.contratista, DOC_EMPLEADOS.periodo) EMPLEADOS

          INNER JOIN led_tipos_doc ON EMPLEADOS.tipo_doc = led_tipos_doc.tipo_doc
          INNER JOIN led_contratistas AS led_contratistas_1 ON EMPLEADOS.contratista_1 = led_contratistas_1.contratista
          INNER JOIN padrones AS padrones_1 ON led_contratistas_1.id_padron = padrones_1.id_padron
          INNER JOIN led_contratistas ON EMPLEADOS.contratista = led_contratistas.contratista
          INNER JOIN padrones ON led_contratistas.id_padron = padrones.id_padron

          UNION

          SELECT NULL AS doc_id, led_contratistas_1.cliente, led_contratistas.contratista_1,
             led_contratistas.contratista, VEHICULOS.led_seccion, VEHICULOS.periodo,
             NULL AS fecha_tolerancia, NULL AS fecha_vigencia, NULL AS aprobacion_parcial, 
             VEHICULOS.status_doc, VEHICULOS.tipo_doc, led_tipos_doc.nombre_tipo_doc,
             padrones.nombre_persona as empresa, padrones.identificador, padrones.numero,
             padrones_1.nombre_persona as nombre_contratista,
          CASE WHEN VEHICULOS.status_doc = 'R' THEN 1
            WHEN VEHICULOS.status_doc = 'E' THEN 2
            WHEN VEHICULOS.status_doc = 'P' THEN 3
            WHEN VEHICULOS.status_doc = 'N' THEN 4
            WHEN VEHICULOS.status_doc = 'I' THEN 5
            WHEN VEHICULOS.status_doc = 'V' THEN 6 END AS orden_status

          FROM
            (SELECT DOC_VEHICULOS.tipo_doc, DOC_VEHICULOS.led_seccion, DOC_VEHICULOS.contratista_1,
            DOC_VEHICULOS.contratista, DOC_VEHICULOS.periodo, MAX(DOC_VEHICULOS.estado_value) AS max_estado,
            CASE
             WHEN MAX(DOC_VEHICULOS.estado_value) = 10 THEN 'R'
             WHEN MAX(DOC_VEHICULOS.estado_value) = 7 THEN 'E'
             WHEN MAX(DOC_VEHICULOS.estado_value) = 5 THEN 'N'
             WHEN MAX(DOC_VEHICULOS.estado_value) = 3 THEN 'I'
             WHEN MAX(DOC_VEHICULOS.estado_value) = 1 THEN 'V'
            END AS status_doc   
            FROM
             (select led_docs.doc_id, led_docs.tipo_doc, led_docs.status_doc, led_docs.led_seccion,
                led_docs.contratista_1, led_docs.contratista, led_docs.periodo,
              CASE 
               WHEN led_docs.status_doc = 'R' THEN 10
               WHEN led_docs.status_doc = 'E' THEN 7
               WHEN led_docs.status_doc = 'N' THEN 5
               WHEN led_docs.status_doc = 'I' THEN 3
               WHEN led_docs.status_doc = 'V' THEN 1
              END AS estado_value
             from led_docs
             inner join dbo.DelimitedSplit8K(@p_status_doc, ',') estados ON led_docs.status_doc = estados.Item
             
             --inner join dbo.DelimitedSplit8K(@lista_tipos_doc, ',') tipos ON led_docs.tipo_doc = tipos.Item
             INNER JOIN led_vehiculos ON led_docs.vehiculo = led_vehiculos.vehiculo
             INNER JOIN led_cliente_vehiculo ON (led_vehiculos.tipo_vehiculo = led_cliente_vehiculo.tipo_vehiculo
                        AND led_docs.tipo_doc = led_cliente_vehiculo.tipo_doc
                        AND led_cliente_vehiculo.requiere_upload = 1
                        AND led_cliente_vehiculo.cliente = @cliente
                        AND led_cliente_vehiculo.ci_killer IN (select item from dbo.DelimitedSplit8K(@acceso, ',')))
             INNER JOIN led_vehiculos_periodo ON (led_docs.vehiculo = led_vehiculos_periodo.vehiculo AND led_docs.periodo = led_vehiculos_periodo.periodo)
             inner join led_contratista_periodo on (led_vehiculos.contratista = led_contratista_periodo.contratista AND led_vehiculos_periodo.periodo = led_contratista_periodo.periodo)

             where led_docs.contratista_1 = @p_contratista_1
             and led_vehiculos.estado_vehiculo = 'A'
             and led_docs.periodo <= @p_periodo_hasta
             and led_docs.led_seccion = 'V') DOC_VEHICULOS
            GROUP BY DOC_VEHICULOS.tipo_doc, DOC_VEHICULOS.led_seccion, DOC_VEHICULOS.contratista_1,
              DOC_VEHICULOS.contratista, DOC_VEHICULOS.periodo) VEHICULOS

          INNER JOIN led_tipos_doc ON VEHICULOS.tipo_doc = led_tipos_doc.tipo_doc
          INNER JOIN led_contratistas AS led_contratistas_1 ON VEHICULOS.contratista_1 = led_contratistas_1.contratista
          INNER JOIN padrones AS padrones_1 ON led_contratistas_1.id_padron = padrones_1.id_padron
          INNER JOIN led_contratistas ON VEHICULOS.contratista = led_contratistas.contratista
          INNER JOIN padrones ON led_contratistas.id_padron = padrones.id_padron

          UNION

          SELECT NULL AS doc_id, led_contratistas_1.cliente, led_contratistas.contratista_1,
             led_contratistas.contratista, VEHICULOS.led_seccion, VEHICULOS.periodo,
             NULL AS fecha_tolerancia, NULL AS fecha_vigencia, NULL AS aprobacion_parcial, 
             VEHICULOS.status_doc, VEHICULOS.tipo_doc, led_tipos_doc.nombre_tipo_doc,
             padrones.nombre_persona as empresa, padrones.identificador, padrones.numero,
             padrones_1.nombre_persona as nombre_contratista,
          CASE WHEN VEHICULOS.status_doc = 'R' THEN 1
            WHEN VEHICULOS.status_doc = 'E' THEN 2
            WHEN VEHICULOS.status_doc = 'P' THEN 3
            WHEN VEHICULOS.status_doc = 'N' THEN 4
            WHEN VEHICULOS.status_doc = 'I' THEN 5
            WHEN VEHICULOS.status_doc = 'V' THEN 6 END AS orden_status

          FROM
            (SELECT DOC_VEHICULOS.tipo_doc, DOC_VEHICULOS.led_seccion, DOC_VEHICULOS.contratista_1,
            DOC_VEHICULOS.contratista, DOC_VEHICULOS.periodo, MAX(DOC_VEHICULOS.estado_value) AS max_estado,
            CASE
             WHEN MAX(DOC_VEHICULOS.estado_value) = 10 THEN 'R'
             WHEN MAX(DOC_VEHICULOS.estado_value) = 7 THEN 'E'
             WHEN MAX(DOC_VEHICULOS.estado_value) = 5 THEN 'N'
             WHEN MAX(DOC_VEHICULOS.estado_value) = 3 THEN 'I'
             WHEN MAX(DOC_VEHICULOS.estado_value) = 1 THEN 'V'
            END AS status_doc   
            FROM
             (select led_docs.doc_id, led_docs.tipo_doc, led_docs.status_doc, led_docs.led_seccion,
                led_docs.contratista_1, led_docs.contratista, led_docs.periodo,
              CASE 
               WHEN led_docs.status_doc = 'R' THEN 10
               WHEN led_docs.status_doc = 'E' THEN 7
               WHEN led_docs.status_doc = 'N' THEN 5
               WHEN led_docs.status_doc = 'I' THEN 3
               WHEN led_docs.status_doc = 'V' THEN 1
              END AS estado_value
             from led_docs
             inner join dbo.DelimitedSplit8K(@p_status_doc, ',') estados ON led_docs.status_doc = estados.Item
             
             --inner join dbo.DelimitedSplit8K(@lista_tipos_doc, ',') tipos ON led_docs.tipo_doc = tipos.Item
             INNER JOIN led_vehiculos ON led_docs.vehiculo = led_vehiculos.vehiculo
             INNER JOIN led_cliente_vehiculo ON (led_vehiculos.tipo_vehiculo = led_cliente_vehiculo.tipo_vehiculo
                        AND led_docs.tipo_doc = led_cliente_vehiculo.tipo_doc
                        AND led_cliente_vehiculo.requiere_upload = 1
                        AND led_cliente_vehiculo.cliente = @cliente
                        AND led_cliente_vehiculo.ci_killer IN (select item from dbo.DelimitedSplit8K(@acceso, ',')))
             INNER JOIN led_vehiculos_periodo ON (led_docs.vehiculo = led_vehiculos_periodo.vehiculo AND led_docs.periodo = led_vehiculos_periodo.periodo)
             inner join led_subcontratista_periodo on (led_vehiculos.contratista = led_subcontratista_periodo.subcontratista AND led_vehiculos_periodo.periodo = led_subcontratista_periodo.periodo)

             where led_docs.contratista_1 = @p_contratista_1
             and led_vehiculos.estado_vehiculo = 'A'
             and led_docs.periodo <= @p_periodo_hasta
             and led_docs.led_seccion = 'V') DOC_VEHICULOS
            GROUP BY DOC_VEHICULOS.tipo_doc, DOC_VEHICULOS.led_seccion, DOC_VEHICULOS.contratista_1,
              DOC_VEHICULOS.contratista, DOC_VEHICULOS.periodo) VEHICULOS

          INNER JOIN led_tipos_doc ON VEHICULOS.tipo_doc = led_tipos_doc.tipo_doc
          INNER JOIN led_contratistas AS led_contratistas_1 ON VEHICULOS.contratista_1 = led_contratistas_1.contratista
          INNER JOIN padrones AS padrones_1 ON led_contratistas_1.id_padron = padrones_1.id_padron
          INNER JOIN led_contratistas ON VEHICULOS.contratista = led_contratistas.contratista
          INNER JOIN padrones ON led_contratistas.id_padron = padrones.id_padron
            
          ORDER BY orden_status, periodo, nombre_tipo_doc


       
         ELSE

          /* Todas las secciones, todas las empresas, período desde - hasta */

          SELECT led_docs.doc_id, led_docs.cliente, led_docs.contratista_1, led_docs.contratista,
            led_docs.led_seccion, led_docs.periodo, led_docs.fecha_tolerancia, 
            led_docs.fecha_vigencia, led_docs.aprobacion_parcial, led_docs.status_doc,
            led_docs.tipo_doc, led_tipos_doc.nombre_tipo_doc,
            padrones.nombre_persona as empresa, padrones.identificador, padrones.numero,
            padrones_1.nombre_persona as nombre_contratista,
          CASE WHEN led_docs.status_doc = 'R' THEN 1
            WHEN led_docs.status_doc = 'E' THEN 2
            WHEN led_docs.status_doc = 'P' THEN 3
            WHEN led_docs.status_doc = 'N' THEN 4
            WHEN led_docs.status_doc = 'I' THEN 5
            WHEN led_docs.status_doc = 'V' THEN 6 END AS orden_status
          FROM led_docs
          INNER JOIN led_tipos_doc ON led_docs.tipo_doc = led_tipos_doc.tipo_doc
          INNER JOIN dbo.DelimitedSplit8K(@p_status_doc, ',') estados ON led_docs.status_doc = estados.Item
          INNER JOIN led_contratistas ON led_docs.contratista = led_contratistas.contratista
          INNER JOIN padrones ON led_contratistas.id_padron = padrones.id_padron
          INNER JOIN led_contratistas led_contratistas_1 ON led_docs.contratista_1 = led_contratistas_1.contratista
          INNER JOIN padrones padrones_1 ON led_contratistas_1.id_padron = padrones_1.id_padron

          INNER JOIN led_cliente_contratista ON (led_contratistas.tipo_contratista = led_cliente_contratista.tipo_contratista
                     AND led_docs.tipo_doc = led_cliente_contratista.tipo_doc
                     AND led_cliente_contratista.requiere_upload = 1
                     AND led_cliente_contratista.cliente = @cliente
                     AND led_cliente_contratista.ci_killer IN (select item from dbo.DelimitedSplit8K(@acceso, ',')))

          INNER JOIN led_contratista_periodo ON (led_contratistas_1.contratista = led_contratista_periodo.contratista 
                    AND led_docs.periodo = led_contratista_periodo.periodo)

          WHERE led_docs.contratista_1 = @p_contratista_1
          AND led_contratistas.contratista_1 = led_contratistas.contratista
          AND led_docs.periodo >= @p_periodo_desde
          AND led_docs.periodo <= @p_periodo_hasta
          AND led_docs.led_seccion = 'C'



          UNION

          SELECT led_docs.doc_id, led_docs.cliente, led_docs.contratista_1, led_docs.contratista,
            led_docs.led_seccion, led_docs.periodo, led_docs.fecha_tolerancia, 
            led_docs.fecha_vigencia, led_docs.aprobacion_parcial, led_docs.status_doc,
            led_docs.tipo_doc, led_tipos_doc.nombre_tipo_doc,
            padrones.nombre_persona as empresa, padrones.identificador, padrones.numero,
            padrones_1.nombre_persona as nombre_contratista,
          CASE WHEN led_docs.status_doc = 'R' THEN 1
            WHEN led_docs.status_doc = 'E' THEN 2
            WHEN led_docs.status_doc = 'P' THEN 3
            WHEN led_docs.status_doc = 'N' THEN 4
            WHEN led_docs.status_doc = 'I' THEN 5
            WHEN led_docs.status_doc = 'V' THEN 6 END AS orden_status
          FROM led_docs
          INNER JOIN led_tipos_doc ON led_docs.tipo_doc = led_tipos_doc.tipo_doc
          INNER JOIN dbo.DelimitedSplit8K(@p_status_doc, ',') estados ON led_docs.status_doc = estados.Item
          INNER JOIN led_contratistas ON led_docs.contratista = led_contratistas.contratista
          INNER JOIN padrones ON led_contratistas.id_padron = padrones.id_padron
          INNER JOIN led_contratistas led_contratistas_1 ON led_docs.contratista_1 = led_contratistas_1.contratista
          INNER JOIN padrones padrones_1 ON led_contratistas_1.id_padron = padrones_1.id_padron

          INNER JOIN led_cliente_contratista ON (led_contratistas.tipo_contratista = led_cliente_contratista.tipo_contratista
                     AND led_docs.tipo_doc = led_cliente_contratista.tipo_doc
                     AND led_cliente_contratista.requiere_upload = 1
                     AND led_cliente_contratista.cliente = @cliente
                     AND led_cliente_contratista.ci_killer IN (select item from dbo.DelimitedSplit8K(@acceso, ',')))
         
          INNER JOIN led_subcontratista_periodo ON (led_contratistas.contratista = led_subcontratista_periodo.subcontratista 
                    AND led_docs.periodo = led_subcontratista_periodo.periodo)

          WHERE led_docs.contratista_1 = @p_contratista_1
          AND led_contratistas.contratista_1 <> led_contratistas.contratista
          AND led_docs.periodo >= @p_periodo_desde
          AND led_docs.periodo <= @p_periodo_hasta
          AND led_docs.led_seccion = 'C'
          AND led_contratistas.estado_contratista = 'A'


          UNION

          SELECT NULL AS doc_id, led_contratistas_1.cliente, led_contratistas.contratista_1,
             led_contratistas.contratista, EMPLEADOS.led_seccion, EMPLEADOS.periodo,
             NULL AS fecha_tolerancia, NULL AS fecha_vigencia, NULL AS aprobacion_parcial, 
             EMPLEADOS.status_doc, EMPLEADOS.tipo_doc, led_tipos_doc.nombre_tipo_doc,
             padrones.nombre_persona as empresa, padrones.identificador, padrones.numero,
             padrones_1.nombre_persona as nombre_contratista,
          CASE WHEN EMPLEADOS.status_doc = 'R' THEN 1
            WHEN EMPLEADOS.status_doc = 'E' THEN 2
            WHEN EMPLEADOS.status_doc = 'P' THEN 3
            WHEN EMPLEADOS.status_doc = 'N' THEN 4
            WHEN EMPLEADOS.status_doc = 'I' THEN 5
            WHEN EMPLEADOS.status_doc = 'V' THEN 6 END AS orden_status

          FROM
            (SELECT DOC_EMPLEADOS.tipo_doc, DOC_EMPLEADOS.led_seccion, DOC_EMPLEADOS.contratista_1,
            DOC_EMPLEADOS.contratista, DOC_EMPLEADOS.periodo, MAX(DOC_EMPLEADOS.estado_value) AS max_estado,
            CASE
             WHEN MAX(DOC_EMPLEADOS.estado_value) = 10 THEN 'R'
             WHEN MAX(DOC_EMPLEADOS.estado_value) = 7 THEN 'E'
             WHEN MAX(DOC_EMPLEADOS.estado_value) = 5 THEN 'N'
             WHEN MAX(DOC_EMPLEADOS.estado_value) = 3 THEN 'I'
             WHEN MAX(DOC_EMPLEADOS.estado_value) = 1 THEN 'V'
            END AS status_doc   
            FROM
             (select led_docs.doc_id, led_docs.tipo_doc, led_docs.status_doc, led_docs.led_seccion,
                led_docs.contratista_1, led_docs.contratista, led_docs.periodo,
              CASE 
               WHEN led_docs.status_doc = 'R' THEN 10
               WHEN led_docs.status_doc = 'E' THEN 7
               WHEN led_docs.status_doc = 'N' THEN 5
               WHEN led_docs.status_doc = 'I' THEN 3
               WHEN led_docs.status_doc = 'V' THEN 1
              END AS estado_value
             from led_docs
             inner join dbo.DelimitedSplit8K(@p_status_doc, ',') estados ON led_docs.status_doc = estados.Item

             --inner join dbo.DelimitedSplit8K(@lista_tipos_doc, ',') tipos ON led_docs.tipo_doc = tipos.Item
             INNER JOIN led_empleados ON led_docs.empleado = led_empleados.empleado
             INNER JOIN led_cliente_empleado ON (led_empleados.tipo_empleado = led_cliente_empleado.tipo_empleado
                        AND led_docs.tipo_doc = led_cliente_empleado.tipo_doc
                        AND led_cliente_empleado.requiere_upload = 1
                        AND led_cliente_empleado.cliente = @cliente
                        AND led_cliente_empleado.ci_killer IN (select item from dbo.DelimitedSplit8K(@acceso, ',')))
             INNER JOIN led_empleados_periodo ON (led_docs.empleado = led_empleados_periodo.empleado AND led_docs.periodo = led_empleados_periodo.periodo)
             inner join led_contratista_periodo on (led_empleados.contratista = led_contratista_periodo.contratista AND led_empleados_periodo.periodo = led_contratista_periodo.periodo)

             where led_docs.contratista_1 = @p_contratista_1
             and led_docs.periodo >= @p_periodo_desde
             and led_docs.periodo <= @p_periodo_hasta
             and led_docs.led_seccion = 'E') DOC_EMPLEADOS
            GROUP BY DOC_EMPLEADOS.tipo_doc, DOC_EMPLEADOS.led_seccion, DOC_EMPLEADOS.contratista_1,
              DOC_EMPLEADOS.contratista, DOC_EMPLEADOS.periodo) EMPLEADOS

          INNER JOIN led_tipos_doc ON EMPLEADOS.tipo_doc = led_tipos_doc.tipo_doc
          INNER JOIN led_contratistas AS led_contratistas_1 ON EMPLEADOS.contratista_1 = led_contratistas_1.contratista
          INNER JOIN padrones AS padrones_1 ON led_contratistas_1.id_padron = padrones_1.id_padron
          INNER JOIN led_contratistas ON EMPLEADOS.contratista = led_contratistas.contratista
          INNER JOIN padrones ON led_contratistas.id_padron = padrones.id_padron

          UNION

          SELECT NULL AS doc_id, led_contratistas_1.cliente, led_contratistas.contratista_1,
             led_contratistas.contratista, EMPLEADOS.led_seccion, EMPLEADOS.periodo,
             NULL AS fecha_tolerancia, NULL AS fecha_vigencia, NULL AS aprobacion_parcial, 
             EMPLEADOS.status_doc, EMPLEADOS.tipo_doc, led_tipos_doc.nombre_tipo_doc,
             padrones.nombre_persona as empresa, padrones.identificador, padrones.numero,
             padrones_1.nombre_persona as nombre_contratista,
          CASE WHEN EMPLEADOS.status_doc = 'R' THEN 1
            WHEN EMPLEADOS.status_doc = 'E' THEN 2
            WHEN EMPLEADOS.status_doc = 'P' THEN 3
            WHEN EMPLEADOS.status_doc = 'N' THEN 4
            WHEN EMPLEADOS.status_doc = 'I' THEN 5
            WHEN EMPLEADOS.status_doc = 'V' THEN 6 END AS orden_status

          FROM
            (SELECT DOC_EMPLEADOS.tipo_doc, DOC_EMPLEADOS.led_seccion, DOC_EMPLEADOS.contratista_1,
            DOC_EMPLEADOS.contratista, DOC_EMPLEADOS.periodo, MAX(DOC_EMPLEADOS.estado_value) AS max_estado,
            CASE
             WHEN MAX(DOC_EMPLEADOS.estado_value) = 10 THEN 'R'
             WHEN MAX(DOC_EMPLEADOS.estado_value) = 7 THEN 'E'
             WHEN MAX(DOC_EMPLEADOS.estado_value) = 5 THEN 'N'
             WHEN MAX(DOC_EMPLEADOS.estado_value) = 3 THEN 'I'
             WHEN MAX(DOC_EMPLEADOS.estado_value) = 1 THEN 'V'
            END AS status_doc   
            FROM
             (select led_docs.doc_id, led_docs.tipo_doc, led_docs.status_doc, led_docs.led_seccion,
                led_docs.contratista_1, led_docs.contratista, led_docs.periodo,
              CASE 
               WHEN led_docs.status_doc = 'R' THEN 10
               WHEN led_docs.status_doc = 'E' THEN 7
               WHEN led_docs.status_doc = 'N' THEN 5
               WHEN led_docs.status_doc = 'I' THEN 3
               WHEN led_docs.status_doc = 'V' THEN 1
              END AS estado_value
             from led_docs
             inner join dbo.DelimitedSplit8K(@p_status_doc, ',') estados ON led_docs.status_doc = estados.Item

             --inner join dbo.DelimitedSplit8K(@lista_tipos_doc, ',') tipos ON led_docs.tipo_doc = tipos.Item
             INNER JOIN led_empleados ON led_docs.empleado = led_empleados.empleado
             INNER JOIN led_cliente_empleado ON (led_empleados.tipo_empleado = led_cliente_empleado.tipo_empleado
                        AND led_docs.tipo_doc = led_cliente_empleado.tipo_doc
                        AND led_cliente_empleado.requiere_upload = 1
                        AND led_cliente_empleado.cliente = @cliente
                        AND led_cliente_empleado.ci_killer IN (select item from dbo.DelimitedSplit8K(@acceso, ',')))
             INNER JOIN led_empleados_periodo ON (led_docs.empleado = led_empleados_periodo.empleado AND led_docs.periodo = led_empleados_periodo.periodo)
             inner join led_subcontratista_periodo on (led_empleados.contratista = led_subcontratista_periodo.subcontratista AND led_empleados_periodo.periodo = led_subcontratista_periodo.periodo)

             where led_docs.contratista_1 = @p_contratista_1
             and led_docs.periodo >= @p_periodo_desde
             and led_docs.periodo <= @p_periodo_hasta
             and led_docs.led_seccion = 'E') DOC_EMPLEADOS
            GROUP BY DOC_EMPLEADOS.tipo_doc, DOC_EMPLEADOS.led_seccion, DOC_EMPLEADOS.contratista_1,
              DOC_EMPLEADOS.contratista, DOC_EMPLEADOS.periodo) EMPLEADOS

          INNER JOIN led_tipos_doc ON EMPLEADOS.tipo_doc = led_tipos_doc.tipo_doc
          INNER JOIN led_contratistas AS led_contratistas_1 ON EMPLEADOS.contratista_1 = led_contratistas_1.contratista
          INNER JOIN padrones AS padrones_1 ON led_contratistas_1.id_padron = padrones_1.id_padron
          INNER JOIN led_contratistas ON EMPLEADOS.contratista = led_contratistas.contratista
          INNER JOIN padrones ON led_contratistas.id_padron = padrones.id_padron

          UNION

          SELECT NULL AS doc_id, led_contratistas_1.cliente, led_contratistas.contratista_1,
             led_contratistas.contratista, VEHICULOS.led_seccion, VEHICULOS.periodo,
             NULL AS fecha_tolerancia, NULL AS fecha_vigencia, NULL AS aprobacion_parcial, 
             VEHICULOS.status_doc, VEHICULOS.tipo_doc, led_tipos_doc.nombre_tipo_doc,
             padrones.nombre_persona as empresa, padrones.identificador, padrones.numero,
             padrones_1.nombre_persona as nombre_contratista,
          CASE WHEN VEHICULOS.status_doc = 'R' THEN 1
            WHEN VEHICULOS.status_doc = 'E' THEN 2
            WHEN VEHICULOS.status_doc = 'P' THEN 3
            WHEN VEHICULOS.status_doc = 'N' THEN 4
            WHEN VEHICULOS.status_doc = 'I' THEN 5
            WHEN VEHICULOS.status_doc = 'V' THEN 6 END AS orden_status

          FROM
            (SELECT DOC_VEHICULOS.tipo_doc, DOC_VEHICULOS.led_seccion, DOC_VEHICULOS.contratista_1,
            DOC_VEHICULOS.contratista, DOC_VEHICULOS.periodo, MAX(DOC_VEHICULOS.estado_value) AS max_estado,
            CASE
             WHEN MAX(DOC_VEHICULOS.estado_value) = 10 THEN 'R'
             WHEN MAX(DOC_VEHICULOS.estado_value) = 7 THEN 'E'
             WHEN MAX(DOC_VEHICULOS.estado_value) = 5 THEN 'N'
             WHEN MAX(DOC_VEHICULOS.estado_value) = 3 THEN 'I'
             WHEN MAX(DOC_VEHICULOS.estado_value) = 1 THEN 'V'
            END AS status_doc   
            FROM
             (select led_docs.doc_id, led_docs.tipo_doc, led_docs.status_doc, led_docs.led_seccion,
                led_docs.contratista_1, led_docs.contratista, led_docs.periodo,
              CASE 
               WHEN led_docs.status_doc = 'R' THEN 10
               WHEN led_docs.status_doc = 'E' THEN 7
               WHEN led_docs.status_doc = 'N' THEN 5
               WHEN led_docs.status_doc = 'I' THEN 3
               WHEN led_docs.status_doc = 'V' THEN 1
              END AS estado_value
             from led_docs
             inner join dbo.DelimitedSplit8K(@p_status_doc, ',') estados ON led_docs.status_doc = estados.Item
             
             --inner join dbo.DelimitedSplit8K(@lista_tipos_doc, ',') tipos ON led_docs.tipo_doc = tipos.Item
             INNER JOIN led_vehiculos ON led_docs.vehiculo = led_vehiculos.vehiculo
             INNER JOIN led_cliente_vehiculo ON (led_vehiculos.tipo_vehiculo = led_cliente_vehiculo.tipo_vehiculo
                        AND led_docs.tipo_doc = led_cliente_vehiculo.tipo_doc
                        AND led_cliente_vehiculo.requiere_upload = 1
                        AND led_cliente_vehiculo.cliente = @cliente
                        AND led_cliente_vehiculo.ci_killer IN (select item from dbo.DelimitedSplit8K(@acceso, ',')))
             INNER JOIN led_vehiculos_periodo ON (led_docs.vehiculo = led_vehiculos_periodo.vehiculo AND led_docs.periodo = led_vehiculos_periodo.periodo)
             inner join led_contratista_periodo on (led_vehiculos.contratista = led_contratista_periodo.contratista AND led_vehiculos_periodo.periodo = led_contratista_periodo.periodo)

             where led_docs.contratista_1 = @p_contratista_1
             and led_vehiculos.estado_vehiculo = 'A'
             and led_docs.periodo >= @p_periodo_desde
             and led_docs.periodo <= @p_periodo_hasta
             and led_docs.led_seccion = 'V') DOC_VEHICULOS
            GROUP BY DOC_VEHICULOS.tipo_doc, DOC_VEHICULOS.led_seccion, DOC_VEHICULOS.contratista_1,
              DOC_VEHICULOS.contratista, DOC_VEHICULOS.periodo) VEHICULOS

          INNER JOIN led_tipos_doc ON VEHICULOS.tipo_doc = led_tipos_doc.tipo_doc
          INNER JOIN led_contratistas AS led_contratistas_1 ON VEHICULOS.contratista_1 = led_contratistas_1.contratista
          INNER JOIN padrones AS padrones_1 ON led_contratistas_1.id_padron = padrones_1.id_padron
          INNER JOIN led_contratistas ON VEHICULOS.contratista = led_contratistas.contratista
          INNER JOIN padrones ON led_contratistas.id_padron = padrones.id_padron

          UNION

          SELECT NULL AS doc_id, led_contratistas_1.cliente, led_contratistas.contratista_1,
             led_contratistas.contratista, VEHICULOS.led_seccion, VEHICULOS.periodo,
             NULL AS fecha_tolerancia, NULL AS fecha_vigencia, NULL AS aprobacion_parcial, 
             VEHICULOS.status_doc, VEHICULOS.tipo_doc, led_tipos_doc.nombre_tipo_doc,
             padrones.nombre_persona as empresa, padrones.identificador, padrones.numero,
             padrones_1.nombre_persona as nombre_contratista,
          CASE WHEN VEHICULOS.status_doc = 'R' THEN 1
            WHEN VEHICULOS.status_doc = 'E' THEN 2
            WHEN VEHICULOS.status_doc = 'P' THEN 3
            WHEN VEHICULOS.status_doc = 'N' THEN 4
            WHEN VEHICULOS.status_doc = 'I' THEN 5
            WHEN VEHICULOS.status_doc = 'V' THEN 6 END AS orden_status

          FROM
            (SELECT DOC_VEHICULOS.tipo_doc, DOC_VEHICULOS.led_seccion, DOC_VEHICULOS.contratista_1,
            DOC_VEHICULOS.contratista, DOC_VEHICULOS.periodo, MAX(DOC_VEHICULOS.estado_value) AS max_estado,
            CASE
             WHEN MAX(DOC_VEHICULOS.estado_value) = 10 THEN 'R'
             WHEN MAX(DOC_VEHICULOS.estado_value) = 7 THEN 'E'
             WHEN MAX(DOC_VEHICULOS.estado_value) = 5 THEN 'N'
             WHEN MAX(DOC_VEHICULOS.estado_value) = 3 THEN 'I'
             WHEN MAX(DOC_VEHICULOS.estado_value) = 1 THEN 'V'
            END AS status_doc   
            FROM
             (select led_docs.doc_id, led_docs.tipo_doc, led_docs.status_doc, led_docs.led_seccion,
                led_docs.contratista_1, led_docs.contratista, led_docs.periodo,
              CASE 
               WHEN led_docs.status_doc = 'R' THEN 10
               WHEN led_docs.status_doc = 'E' THEN 7
               WHEN led_docs.status_doc = 'N' THEN 5
               WHEN led_docs.status_doc = 'I' THEN 3
               WHEN led_docs.status_doc = 'V' THEN 1
              END AS estado_value
             from led_docs
             inner join dbo.DelimitedSplit8K(@p_status_doc, ',') estados ON led_docs.status_doc = estados.Item
             
             --inner join dbo.DelimitedSplit8K(@lista_tipos_doc, ',') tipos ON led_docs.tipo_doc = tipos.Item
             INNER JOIN led_vehiculos ON led_docs.vehiculo = led_vehiculos.vehiculo
             INNER JOIN led_cliente_vehiculo ON (led_vehiculos.tipo_vehiculo = led_cliente_vehiculo.tipo_vehiculo
                        AND led_docs.tipo_doc = led_cliente_vehiculo.tipo_doc
                        AND led_cliente_vehiculo.requiere_upload = 1
                        AND led_cliente_vehiculo.cliente = @cliente
                        AND led_cliente_vehiculo.ci_killer IN (select item from dbo.DelimitedSplit8K(@acceso, ',')))
             INNER JOIN led_vehiculos_periodo ON (led_docs.vehiculo = led_vehiculos_periodo.vehiculo AND led_docs.periodo = led_vehiculos_periodo.periodo)
             inner join led_subcontratista_periodo on (led_vehiculos.contratista = led_subcontratista_periodo.subcontratista AND led_vehiculos_periodo.periodo = led_subcontratista_periodo.periodo)


             where led_docs.contratista_1 = @p_contratista_1
             and led_vehiculos.estado_vehiculo = 'A'
             and led_docs.periodo >= @p_periodo_desde
             and led_docs.periodo <= @p_periodo_hasta
             and led_docs.led_seccion = 'V') DOC_VEHICULOS
            GROUP BY DOC_VEHICULOS.tipo_doc, DOC_VEHICULOS.led_seccion, DOC_VEHICULOS.contratista_1,
              DOC_VEHICULOS.contratista, DOC_VEHICULOS.periodo) VEHICULOS

          INNER JOIN led_tipos_doc ON VEHICULOS.tipo_doc = led_tipos_doc.tipo_doc
          INNER JOIN led_contratistas AS led_contratistas_1 ON VEHICULOS.contratista_1 = led_contratistas_1.contratista
          INNER JOIN padrones AS padrones_1 ON led_contratistas_1.id_padron = padrones_1.id_padron
          INNER JOIN led_contratistas ON VEHICULOS.contratista = led_contratistas.contratista
          INNER JOIN padrones ON led_contratistas.id_padron = padrones.id_padron
            
          ORDER BY orden_status, periodo, nombre_tipo_doc



      END ELSE BEGIN

       IF (@p_periodo_desde IS NULL AND @p_periodo_hasta IS NULL) 

        /* Todas las secciones, por empresa, sin filtro por período */

        SELECT led_docs.doc_id, led_docs.cliente, led_docs.contratista_1, led_docs.contratista,
          led_docs.led_seccion, led_docs.periodo, led_docs.fecha_tolerancia, 
          led_docs.fecha_vigencia, led_docs.aprobacion_parcial, led_docs.status_doc,
          led_docs.tipo_doc, led_tipos_doc.nombre_tipo_doc,
          padrones.nombre_persona as empresa, padrones.identificador, padrones.numero,
          padrones_1.nombre_persona as nombre_contratista,
        CASE WHEN led_docs.status_doc = 'R' THEN 1
          WHEN led_docs.status_doc = 'E' THEN 2
          WHEN led_docs.status_doc = 'P' THEN 3
          WHEN led_docs.status_doc = 'N' THEN 4
          WHEN led_docs.status_doc = 'I' THEN 5
          WHEN led_docs.status_doc = 'V' THEN 6 END AS orden_status
        FROM led_docs
        INNER JOIN led_tipos_doc ON led_docs.tipo_doc = led_tipos_doc.tipo_doc
        INNER JOIN dbo.DelimitedSplit8K(@p_status_doc, ',') estados ON led_docs.status_doc = estados.Item
        INNER JOIN led_contratistas ON led_docs.contratista = led_contratistas.contratista
        INNER JOIN padrones ON led_contratistas.id_padron = padrones.id_padron
        INNER JOIN led_contratistas led_contratistas_1 ON led_docs.contratista_1 = led_contratistas_1.contratista
        INNER JOIN padrones padrones_1 ON led_contratistas_1.id_padron = padrones_1.id_padron

        --INNER JOIN dbo.DelimitedSplit8K(@lista_tipos_doc, ',') tipos ON led_docs.tipo_doc = tipos.Item
        INNER JOIN led_cliente_contratista ON (led_contratistas.tipo_contratista = led_cliente_contratista.tipo_contratista
                   AND led_docs.tipo_doc = led_cliente_contratista.tipo_doc
                   AND led_cliente_contratista.requiere_upload = 1
                   AND led_cliente_contratista.cliente = @cliente
                   AND led_cliente_contratista.ci_killer IN (select item from dbo.DelimitedSplit8K(@acceso, ',')))

        WHERE led_docs.contratista_1 = @p_contratista_1
        AND led_docs.contratista = @p_contratista
        AND led_docs.led_seccion = 'C'

        UNION

        SELECT NULL AS doc_id, led_contratistas_1.cliente, led_contratistas.contratista_1,
           led_contratistas.contratista, EMPLEADOS.led_seccion, EMPLEADOS.periodo,
           NULL AS fecha_tolerancia, NULL AS fecha_vigencia, NULL AS aprobacion_parcial, 
           EMPLEADOS.status_doc, EMPLEADOS.tipo_doc, led_tipos_doc.nombre_tipo_doc,
           padrones.nombre_persona as empresa, padrones.identificador, padrones.numero,
           padrones_1.nombre_persona as nombre_contratista,
          CASE WHEN EMPLEADOS.status_doc = 'R' THEN 1
            WHEN EMPLEADOS.status_doc = 'E' THEN 2
            WHEN EMPLEADOS.status_doc = 'P' THEN 3
            WHEN EMPLEADOS.status_doc = 'N' THEN 4
            WHEN EMPLEADOS.status_doc = 'I' THEN 5
            WHEN EMPLEADOS.status_doc = 'V' THEN 6 END AS orden_status

        FROM
          (SELECT DOC_EMPLEADOS.tipo_doc, DOC_EMPLEADOS.led_seccion, DOC_EMPLEADOS.contratista_1,
          DOC_EMPLEADOS.contratista, DOC_EMPLEADOS.periodo, MAX(DOC_EMPLEADOS.estado_value) AS max_estado,
          CASE
           WHEN MAX(DOC_EMPLEADOS.estado_value) = 10 THEN 'R'
           WHEN MAX(DOC_EMPLEADOS.estado_value) = 7 THEN 'E'
           WHEN MAX(DOC_EMPLEADOS.estado_value) = 5 THEN 'N'
           WHEN MAX(DOC_EMPLEADOS.estado_value) = 3 THEN 'I'
           WHEN MAX(DOC_EMPLEADOS.estado_value) = 1 THEN 'V'
          END AS status_doc   
          FROM
           (select led_docs.doc_id, led_docs.tipo_doc, led_docs.status_doc, led_docs.led_seccion,
              led_docs.contratista_1, led_docs.contratista, led_docs.periodo,
            CASE 
             WHEN led_docs.status_doc = 'R' THEN 10
             WHEN led_docs.status_doc = 'E' THEN 7
             WHEN led_docs.status_doc = 'N' THEN 5
             WHEN led_docs.status_doc = 'I' THEN 3
             WHEN led_docs.status_doc = 'V' THEN 1
            END AS estado_value
           from led_docs
           inner join dbo.DelimitedSplit8K(@p_status_doc, ',') estados ON led_docs.status_doc = estados.Item

           --inner join dbo.DelimitedSplit8K(@lista_tipos_doc, ',') tipos ON led_docs.tipo_doc = tipos.Item
           INNER JOIN led_empleados ON led_docs.empleado = led_empleados.empleado
           INNER JOIN led_cliente_empleado ON (led_empleados.tipo_empleado = led_cliente_empleado.tipo_empleado
                      AND led_docs.tipo_doc = led_cliente_empleado.tipo_doc
                      AND led_cliente_empleado.requiere_upload = 1
                      AND led_cliente_empleado.cliente = @cliente
                      AND led_cliente_empleado.ci_killer IN (select item from dbo.DelimitedSplit8K(@acceso, ',')))
           INNER JOIN led_empleados_periodo ON (led_docs.empleado = led_empleados_periodo.empleado AND led_docs.periodo = led_empleados_periodo.periodo)
           inner join led_contratista_periodo on (led_empleados.contratista = led_contratista_periodo.contratista AND led_empleados_periodo.periodo = led_contratista_periodo.periodo)

           where led_docs.contratista_1 = @p_contratista_1
           and led_docs.contratista = @p_contratista
           and led_docs.led_seccion = 'E') DOC_EMPLEADOS
          GROUP BY DOC_EMPLEADOS.tipo_doc, DOC_EMPLEADOS.led_seccion, DOC_EMPLEADOS.contratista_1,
            DOC_EMPLEADOS.contratista, DOC_EMPLEADOS.periodo) EMPLEADOS

        INNER JOIN led_tipos_doc ON EMPLEADOS.tipo_doc = led_tipos_doc.tipo_doc
        INNER JOIN led_contratistas AS led_contratistas_1 ON EMPLEADOS.contratista_1 = led_contratistas_1.contratista
        INNER JOIN padrones AS padrones_1 ON led_contratistas_1.id_padron = padrones_1.id_padron
        INNER JOIN led_contratistas ON EMPLEADOS.contratista = led_contratistas.contratista
        INNER JOIN padrones ON led_contratistas.id_padron = padrones.id_padron

        UNION

        SELECT NULL AS doc_id, led_contratistas_1.cliente, led_contratistas.contratista_1,
           led_contratistas.contratista, EMPLEADOS.led_seccion, EMPLEADOS.periodo,
           NULL AS fecha_tolerancia, NULL AS fecha_vigencia, NULL AS aprobacion_parcial, 
           EMPLEADOS.status_doc, EMPLEADOS.tipo_doc, led_tipos_doc.nombre_tipo_doc,
           padrones.nombre_persona as empresa, padrones.identificador, padrones.numero,
           padrones_1.nombre_persona as nombre_contratista,
          CASE WHEN EMPLEADOS.status_doc = 'R' THEN 1
            WHEN EMPLEADOS.status_doc = 'E' THEN 2
            WHEN EMPLEADOS.status_doc = 'P' THEN 3
            WHEN EMPLEADOS.status_doc = 'N' THEN 4
            WHEN EMPLEADOS.status_doc = 'I' THEN 5
            WHEN EMPLEADOS.status_doc = 'V' THEN 6 END AS orden_status

        FROM
          (SELECT DOC_EMPLEADOS.tipo_doc, DOC_EMPLEADOS.led_seccion, DOC_EMPLEADOS.contratista_1,
          DOC_EMPLEADOS.contratista, DOC_EMPLEADOS.periodo, MAX(DOC_EMPLEADOS.estado_value) AS max_estado,
          CASE
           WHEN MAX(DOC_EMPLEADOS.estado_value) = 10 THEN 'R'
           WHEN MAX(DOC_EMPLEADOS.estado_value) = 7 THEN 'E'
           WHEN MAX(DOC_EMPLEADOS.estado_value) = 5 THEN 'N'
           WHEN MAX(DOC_EMPLEADOS.estado_value) = 3 THEN 'I'
           WHEN MAX(DOC_EMPLEADOS.estado_value) = 1 THEN 'V'
          END AS status_doc   
          FROM
           (select led_docs.doc_id, led_docs.tipo_doc, led_docs.status_doc, led_docs.led_seccion,
              led_docs.contratista_1, led_docs.contratista, led_docs.periodo,
            CASE 
             WHEN led_docs.status_doc = 'R' THEN 10
             WHEN led_docs.status_doc = 'E' THEN 7
             WHEN led_docs.status_doc = 'N' THEN 5
             WHEN led_docs.status_doc = 'I' THEN 3
             WHEN led_docs.status_doc = 'V' THEN 1
            END AS estado_value
           from led_docs
           inner join dbo.DelimitedSplit8K(@p_status_doc, ',') estados ON led_docs.status_doc = estados.Item

           --inner join dbo.DelimitedSplit8K(@lista_tipos_doc, ',') tipos ON led_docs.tipo_doc = tipos.Item
           INNER JOIN led_empleados ON led_docs.empleado = led_empleados.empleado
           INNER JOIN led_cliente_empleado ON (led_empleados.tipo_empleado = led_cliente_empleado.tipo_empleado
                      AND led_docs.tipo_doc = led_cliente_empleado.tipo_doc
                      AND led_cliente_empleado.requiere_upload = 1
                      AND led_cliente_empleado.cliente = @cliente
                      AND led_cliente_empleado.ci_killer IN (select item from dbo.DelimitedSplit8K(@acceso, ',')))
           INNER JOIN led_empleados_periodo ON (led_docs.empleado = led_empleados_periodo.empleado AND led_docs.periodo = led_empleados_periodo.periodo)
           inner join led_subcontratista_periodo on (led_empleados.contratista = led_subcontratista_periodo.subcontratista AND led_empleados_periodo.periodo = led_subcontratista_periodo.periodo)

           where led_docs.contratista_1 = @p_contratista_1
           and led_docs.contratista = @p_contratista
           and led_docs.led_seccion = 'E') DOC_EMPLEADOS
          GROUP BY DOC_EMPLEADOS.tipo_doc, DOC_EMPLEADOS.led_seccion, DOC_EMPLEADOS.contratista_1,
            DOC_EMPLEADOS.contratista, DOC_EMPLEADOS.periodo) EMPLEADOS

        INNER JOIN led_tipos_doc ON EMPLEADOS.tipo_doc = led_tipos_doc.tipo_doc
        INNER JOIN led_contratistas AS led_contratistas_1 ON EMPLEADOS.contratista_1 = led_contratistas_1.contratista
        INNER JOIN padrones AS padrones_1 ON led_contratistas_1.id_padron = padrones_1.id_padron
        INNER JOIN led_contratistas ON EMPLEADOS.contratista = led_contratistas.contratista
        INNER JOIN padrones ON led_contratistas.id_padron = padrones.id_padron
        
        UNION

        SELECT NULL AS doc_id, led_contratistas_1.cliente, led_contratistas.contratista_1,
           led_contratistas.contratista, VEHICULOS.led_seccion, VEHICULOS.periodo,
           NULL AS fecha_tolerancia, NULL AS fecha_vigencia, NULL AS aprobacion_parcial, 
           VEHICULOS.status_doc, VEHICULOS.tipo_doc, led_tipos_doc.nombre_tipo_doc,
           padrones.nombre_persona as empresa, padrones.identificador, padrones.numero,
           padrones_1.nombre_persona as nombre_contratista,
          CASE WHEN VEHICULOS.status_doc = 'R' THEN 1
            WHEN VEHICULOS.status_doc = 'E' THEN 2
            WHEN VEHICULOS.status_doc = 'P' THEN 3
            WHEN VEHICULOS.status_doc = 'N' THEN 4
            WHEN VEHICULOS.status_doc = 'I' THEN 5
            WHEN VEHICULOS.status_doc = 'V' THEN 6 END AS orden_status

        FROM
          (SELECT DOC_VEHICULOS.tipo_doc, DOC_VEHICULOS.led_seccion, DOC_VEHICULOS.contratista_1,
          DOC_VEHICULOS.contratista, DOC_VEHICULOS.periodo, MAX(DOC_VEHICULOS.estado_value) AS max_estado,
          CASE
           WHEN MAX(DOC_VEHICULOS.estado_value) = 10 THEN 'R'
           WHEN MAX(DOC_VEHICULOS.estado_value) = 7 THEN 'E'
           WHEN MAX(DOC_VEHICULOS.estado_value) = 5 THEN 'N'
           WHEN MAX(DOC_VEHICULOS.estado_value) = 3 THEN 'I'
           WHEN MAX(DOC_VEHICULOS.estado_value) = 1 THEN 'V'
          END AS status_doc   
          FROM
           (select led_docs.doc_id, led_docs.tipo_doc, led_docs.status_doc, led_docs.led_seccion,
              led_docs.contratista_1, led_docs.contratista, led_docs.periodo,
            CASE 
             WHEN led_docs.status_doc = 'R' THEN 10
             WHEN led_docs.status_doc = 'E' THEN 7
             WHEN led_docs.status_doc = 'N' THEN 5
             WHEN led_docs.status_doc = 'I' THEN 3
             WHEN led_docs.status_doc = 'V' THEN 1
            END AS estado_value
           from led_docs
           inner join dbo.DelimitedSplit8K(@p_status_doc, ',') estados ON led_docs.status_doc = estados.Item
           
           --inner join dbo.DelimitedSplit8K(@lista_tipos_doc, ',') tipos ON led_docs.tipo_doc = tipos.Item
           INNER JOIN led_vehiculos ON led_docs.vehiculo = led_vehiculos.vehiculo
           INNER JOIN led_cliente_vehiculo ON (led_vehiculos.tipo_vehiculo = led_cliente_vehiculo.tipo_vehiculo
                      AND led_docs.tipo_doc = led_cliente_vehiculo.tipo_doc
                      AND led_cliente_vehiculo.requiere_upload = 1
                      AND led_cliente_vehiculo.cliente = @cliente
                      AND led_cliente_vehiculo.ci_killer IN (select item from dbo.DelimitedSplit8K(@acceso, ',')))
           INNER JOIN led_vehiculos_periodo ON (led_docs.vehiculo = led_vehiculos_periodo.vehiculo AND led_docs.periodo = led_vehiculos_periodo.periodo)
           inner join led_contratista_periodo on (led_vehiculos.contratista = led_contratista_periodo.contratista AND led_vehiculos_periodo.periodo = led_contratista_periodo.periodo)
           
           where led_docs.contratista_1 = @p_contratista_1
           and led_vehiculos.estado_vehiculo = 'A'
           and led_docs.contratista = @p_contratista
           and led_docs.led_seccion = 'V') DOC_VEHICULOS
          GROUP BY DOC_VEHICULOS.tipo_doc, DOC_VEHICULOS.led_seccion, DOC_VEHICULOS.contratista_1,
            DOC_VEHICULOS.contratista, DOC_VEHICULOS.periodo) VEHICULOS

        INNER JOIN led_tipos_doc ON VEHICULOS.tipo_doc = led_tipos_doc.tipo_doc
        INNER JOIN led_contratistas AS led_contratistas_1 ON VEHICULOS.contratista_1 = led_contratistas_1.contratista
        INNER JOIN padrones AS padrones_1 ON led_contratistas_1.id_padron = padrones_1.id_padron
        INNER JOIN led_contratistas ON VEHICULOS.contratista = led_contratistas.contratista
        INNER JOIN padrones ON led_contratistas.id_padron = padrones.id_padron

        UNION

        SELECT NULL AS doc_id, led_contratistas_1.cliente, led_contratistas.contratista_1,
           led_contratistas.contratista, VEHICULOS.led_seccion, VEHICULOS.periodo,
           NULL AS fecha_tolerancia, NULL AS fecha_vigencia, NULL AS aprobacion_parcial, 
           VEHICULOS.status_doc, VEHICULOS.tipo_doc, led_tipos_doc.nombre_tipo_doc,
           padrones.nombre_persona as empresa, padrones.identificador, padrones.numero,
           padrones_1.nombre_persona as nombre_contratista,
          CASE WHEN VEHICULOS.status_doc = 'R' THEN 1
            WHEN VEHICULOS.status_doc = 'E' THEN 2
            WHEN VEHICULOS.status_doc = 'P' THEN 3
            WHEN VEHICULOS.status_doc = 'N' THEN 4
            WHEN VEHICULOS.status_doc = 'I' THEN 5
            WHEN VEHICULOS.status_doc = 'V' THEN 6 END AS orden_status

        FROM
          (SELECT DOC_VEHICULOS.tipo_doc, DOC_VEHICULOS.led_seccion, DOC_VEHICULOS.contratista_1,
          DOC_VEHICULOS.contratista, DOC_VEHICULOS.periodo, MAX(DOC_VEHICULOS.estado_value) AS max_estado,
          CASE
           WHEN MAX(DOC_VEHICULOS.estado_value) = 10 THEN 'R'
           WHEN MAX(DOC_VEHICULOS.estado_value) = 7 THEN 'E'
           WHEN MAX(DOC_VEHICULOS.estado_value) = 5 THEN 'N'
           WHEN MAX(DOC_VEHICULOS.estado_value) = 3 THEN 'I'
           WHEN MAX(DOC_VEHICULOS.estado_value) = 1 THEN 'V'
          END AS status_doc   
          FROM
           (select led_docs.doc_id, led_docs.tipo_doc, led_docs.status_doc, led_docs.led_seccion,
              led_docs.contratista_1, led_docs.contratista, led_docs.periodo,
            CASE 
             WHEN led_docs.status_doc = 'R' THEN 10
             WHEN led_docs.status_doc = 'E' THEN 7
             WHEN led_docs.status_doc = 'N' THEN 5
             WHEN led_docs.status_doc = 'I' THEN 3
             WHEN led_docs.status_doc = 'V' THEN 1
            END AS estado_value
           from led_docs
           inner join dbo.DelimitedSplit8K(@p_status_doc, ',') estados ON led_docs.status_doc = estados.Item
           
           --inner join dbo.DelimitedSplit8K(@lista_tipos_doc, ',') tipos ON led_docs.tipo_doc = tipos.Item
           INNER JOIN led_vehiculos ON led_docs.vehiculo = led_vehiculos.vehiculo
           INNER JOIN led_cliente_vehiculo ON (led_vehiculos.tipo_vehiculo = led_cliente_vehiculo.tipo_vehiculo
                      AND led_docs.tipo_doc = led_cliente_vehiculo.tipo_doc
                      AND led_cliente_vehiculo.requiere_upload = 1
                      AND led_cliente_vehiculo.cliente = @cliente
                      AND led_cliente_vehiculo.ci_killer IN (select item from dbo.DelimitedSplit8K(@acceso, ',')))
           INNER JOIN led_vehiculos_periodo ON (led_docs.vehiculo = led_vehiculos_periodo.vehiculo AND led_docs.periodo = led_vehiculos_periodo.periodo)
           inner join led_subcontratista_periodo on (led_vehiculos.contratista = led_subcontratista_periodo.subcontratista AND led_vehiculos_periodo.periodo = led_subcontratista_periodo.periodo)
           
           where led_docs.contratista_1 = @p_contratista_1
           and led_vehiculos.estado_vehiculo = 'A'
           and led_docs.contratista = @p_contratista
           and led_docs.led_seccion = 'V') DOC_VEHICULOS
          GROUP BY DOC_VEHICULOS.tipo_doc, DOC_VEHICULOS.led_seccion, DOC_VEHICULOS.contratista_1,
            DOC_VEHICULOS.contratista, DOC_VEHICULOS.periodo) VEHICULOS

        INNER JOIN led_tipos_doc ON VEHICULOS.tipo_doc = led_tipos_doc.tipo_doc
        INNER JOIN led_contratistas AS led_contratistas_1 ON VEHICULOS.contratista_1 = led_contratistas_1.contratista
        INNER JOIN padrones AS padrones_1 ON led_contratistas_1.id_padron = padrones_1.id_padron
        INNER JOIN led_contratistas ON VEHICULOS.contratista = led_contratistas.contratista
        INNER JOIN padrones ON led_contratistas.id_padron = padrones.id_padron

        ORDER BY orden_status, periodo, nombre_tipo_doc


       ELSE

        IF (@p_periodo_desde IS NOT NULL AND @p_periodo_hasta IS NULL) 

         /* Todas las secciones, por empresa, período desde */

         SELECT led_docs.doc_id, led_docs.cliente, led_docs.contratista_1, led_docs.contratista,
           led_docs.led_seccion, led_docs.periodo, led_docs.fecha_tolerancia, 
           led_docs.fecha_vigencia, led_docs.aprobacion_parcial, led_docs.status_doc,
           led_docs.tipo_doc, led_tipos_doc.nombre_tipo_doc,
           padrones.nombre_persona as empresa, padrones.identificador, padrones.numero,
           padrones_1.nombre_persona as nombre_contratista,
         CASE WHEN led_docs.status_doc = 'R' THEN 1
           WHEN led_docs.status_doc = 'E' THEN 2
           WHEN led_docs.status_doc = 'P' THEN 3
           WHEN led_docs.status_doc = 'N' THEN 4
           WHEN led_docs.status_doc = 'I' THEN 5
           WHEN led_docs.status_doc = 'V' THEN 6 END AS orden_status
         FROM led_docs
         INNER JOIN led_tipos_doc ON led_docs.tipo_doc = led_tipos_doc.tipo_doc
         INNER JOIN dbo.DelimitedSplit8K(@p_status_doc, ',') estados ON led_docs.status_doc = estados.Item
         INNER JOIN led_contratistas ON led_docs.contratista = led_contratistas.contratista
         INNER JOIN padrones ON led_contratistas.id_padron = padrones.id_padron
         INNER JOIN led_contratistas led_contratistas_1 ON led_docs.contratista_1 = led_contratistas_1.contratista
         INNER JOIN padrones padrones_1 ON led_contratistas_1.id_padron = padrones_1.id_padron

         --INNER JOIN dbo.DelimitedSplit8K(@lista_tipos_doc, ',') tipos ON led_docs.tipo_doc = tipos.Item
         INNER JOIN led_cliente_contratista ON (led_contratistas.tipo_contratista = led_cliente_contratista.tipo_contratista
                    AND led_docs.tipo_doc = led_cliente_contratista.tipo_doc
                    AND led_cliente_contratista.requiere_upload = 1
                    AND led_cliente_contratista.cliente = @cliente
                    AND led_cliente_contratista.ci_killer IN (select item from dbo.DelimitedSplit8K(@acceso, ',')))

         WHERE led_docs.contratista_1 = @p_contratista_1
         AND led_docs.contratista = @p_contratista
         AND led_docs.periodo >= @p_periodo_desde
         AND led_docs.led_seccion = 'C'

         UNION

         SELECT NULL AS doc_id, led_contratistas_1.cliente, led_contratistas.contratista_1,
            led_contratistas.contratista, EMPLEADOS.led_seccion, EMPLEADOS.periodo,
            NULL AS fecha_tolerancia, NULL AS fecha_vigencia, NULL AS aprobacion_parcial, 
            EMPLEADOS.status_doc, EMPLEADOS.tipo_doc, led_tipos_doc.nombre_tipo_doc,
            padrones.nombre_persona as empresa, padrones.identificador, padrones.numero,
            padrones_1.nombre_persona as nombre_contratista,
          CASE WHEN EMPLEADOS.status_doc = 'R' THEN 1
            WHEN EMPLEADOS.status_doc = 'E' THEN 2
            WHEN EMPLEADOS.status_doc = 'P' THEN 3
            WHEN EMPLEADOS.status_doc = 'N' THEN 4
            WHEN EMPLEADOS.status_doc = 'I' THEN 5
            WHEN EMPLEADOS.status_doc = 'V' THEN 6 END AS orden_status

         FROM
           (SELECT DOC_EMPLEADOS.tipo_doc, DOC_EMPLEADOS.led_seccion, DOC_EMPLEADOS.contratista_1,
           DOC_EMPLEADOS.contratista, DOC_EMPLEADOS.periodo, MAX(DOC_EMPLEADOS.estado_value) AS max_estado,
           CASE
            WHEN MAX(DOC_EMPLEADOS.estado_value) = 10 THEN 'R'
            WHEN MAX(DOC_EMPLEADOS.estado_value) = 7 THEN 'E'
            WHEN MAX(DOC_EMPLEADOS.estado_value) = 5 THEN 'N'
            WHEN MAX(DOC_EMPLEADOS.estado_value) = 3 THEN 'I'
            WHEN MAX(DOC_EMPLEADOS.estado_value) = 1 THEN 'V'
           END AS status_doc   
           FROM
            (select led_docs.doc_id, led_docs.tipo_doc, led_docs.status_doc, led_docs.led_seccion,
               led_docs.contratista_1, led_docs.contratista, led_docs.periodo,
             CASE 
              WHEN led_docs.status_doc = 'R' THEN 10
              WHEN led_docs.status_doc = 'E' THEN 7
              WHEN led_docs.status_doc = 'N' THEN 5
              WHEN led_docs.status_doc = 'I' THEN 3
              WHEN led_docs.status_doc = 'V' THEN 1
             END AS estado_value
            from led_docs
            inner join dbo.DelimitedSplit8K(@p_status_doc, ',') estados ON led_docs.status_doc = estados.Item

            --inner join dbo.DelimitedSplit8K(@lista_tipos_doc, ',') tipos ON led_docs.tipo_doc = tipos.Item
            INNER JOIN led_empleados ON led_docs.empleado = led_empleados.empleado
            INNER JOIN led_cliente_empleado ON (led_empleados.tipo_empleado = led_cliente_empleado.tipo_empleado
                       AND led_docs.tipo_doc = led_cliente_empleado.tipo_doc
                       AND led_cliente_empleado.requiere_upload = 1
                       AND led_cliente_empleado.cliente = @cliente
                       AND led_cliente_empleado.ci_killer IN (select item from dbo.DelimitedSplit8K(@acceso, ',')))
            INNER JOIN led_empleados_periodo ON (led_docs.empleado = led_empleados_periodo.empleado AND led_docs.periodo = led_empleados_periodo.periodo)
            inner join led_contratista_periodo on (led_empleados.contratista = led_contratista_periodo.contratista AND led_empleados_periodo.periodo = led_contratista_periodo.periodo)
            
            where led_docs.contratista_1 = @p_contratista_1
            and led_docs.contratista = @p_contratista
            and led_docs.periodo >= @p_periodo_desde
            and led_docs.led_seccion = 'E') DOC_EMPLEADOS
           GROUP BY DOC_EMPLEADOS.tipo_doc, DOC_EMPLEADOS.led_seccion, DOC_EMPLEADOS.contratista_1,
             DOC_EMPLEADOS.contratista, DOC_EMPLEADOS.periodo) EMPLEADOS

         INNER JOIN led_tipos_doc ON EMPLEADOS.tipo_doc = led_tipos_doc.tipo_doc
         INNER JOIN led_contratistas AS led_contratistas_1 ON EMPLEADOS.contratista_1 = led_contratistas_1.contratista
         INNER JOIN padrones AS padrones_1 ON led_contratistas_1.id_padron = padrones_1.id_padron
         INNER JOIN led_contratistas ON EMPLEADOS.contratista = led_contratistas.contratista
         INNER JOIN padrones ON led_contratistas.id_padron = padrones.id_padron

         UNION
         
         SELECT NULL AS doc_id, led_contratistas_1.cliente, led_contratistas.contratista_1,
            led_contratistas.contratista, EMPLEADOS.led_seccion, EMPLEADOS.periodo,
            NULL AS fecha_tolerancia, NULL AS fecha_vigencia, NULL AS aprobacion_parcial, 
            EMPLEADOS.status_doc, EMPLEADOS.tipo_doc, led_tipos_doc.nombre_tipo_doc,
            padrones.nombre_persona as empresa, padrones.identificador, padrones.numero,
            padrones_1.nombre_persona as nombre_contratista,
          CASE WHEN EMPLEADOS.status_doc = 'R' THEN 1
            WHEN EMPLEADOS.status_doc = 'E' THEN 2
            WHEN EMPLEADOS.status_doc = 'P' THEN 3
            WHEN EMPLEADOS.status_doc = 'N' THEN 4
            WHEN EMPLEADOS.status_doc = 'I' THEN 5
            WHEN EMPLEADOS.status_doc = 'V' THEN 6 END AS orden_status

         FROM
           (SELECT DOC_EMPLEADOS.tipo_doc, DOC_EMPLEADOS.led_seccion, DOC_EMPLEADOS.contratista_1,
           DOC_EMPLEADOS.contratista, DOC_EMPLEADOS.periodo, MAX(DOC_EMPLEADOS.estado_value) AS max_estado,
           CASE
            WHEN MAX(DOC_EMPLEADOS.estado_value) = 10 THEN 'R'
            WHEN MAX(DOC_EMPLEADOS.estado_value) = 7 THEN 'E'
            WHEN MAX(DOC_EMPLEADOS.estado_value) = 5 THEN 'N'
            WHEN MAX(DOC_EMPLEADOS.estado_value) = 3 THEN 'I'
            WHEN MAX(DOC_EMPLEADOS.estado_value) = 1 THEN 'V'
           END AS status_doc   
           FROM
            (select led_docs.doc_id, led_docs.tipo_doc, led_docs.status_doc, led_docs.led_seccion,
               led_docs.contratista_1, led_docs.contratista, led_docs.periodo,
             CASE 
              WHEN led_docs.status_doc = 'R' THEN 10
              WHEN led_docs.status_doc = 'E' THEN 7
              WHEN led_docs.status_doc = 'N' THEN 5
              WHEN led_docs.status_doc = 'I' THEN 3
              WHEN led_docs.status_doc = 'V' THEN 1
             END AS estado_value
            from led_docs
            inner join dbo.DelimitedSplit8K(@p_status_doc, ',') estados ON led_docs.status_doc = estados.Item

            --inner join dbo.DelimitedSplit8K(@lista_tipos_doc, ',') tipos ON led_docs.tipo_doc = tipos.Item
            INNER JOIN led_empleados ON led_docs.empleado = led_empleados.empleado
            INNER JOIN led_cliente_empleado ON (led_empleados.tipo_empleado = led_cliente_empleado.tipo_empleado
                       AND led_docs.tipo_doc = led_cliente_empleado.tipo_doc
                       AND led_cliente_empleado.requiere_upload = 1
                       AND led_cliente_empleado.cliente = @cliente
                       AND led_cliente_empleado.ci_killer IN (select item from dbo.DelimitedSplit8K(@acceso, ',')))
            INNER JOIN led_empleados_periodo ON (led_docs.empleado = led_empleados_periodo.empleado AND led_docs.periodo = led_empleados_periodo.periodo)
            inner join led_subcontratista_periodo on (led_empleados.contratista = led_subcontratista_periodo.subcontratista AND led_empleados_periodo.periodo = led_subcontratista_periodo.periodo)
            
            where led_docs.contratista_1 = @p_contratista_1
            and led_docs.contratista = @p_contratista
            and led_docs.periodo >= @p_periodo_desde
            and led_docs.led_seccion = 'E') DOC_EMPLEADOS
           GROUP BY DOC_EMPLEADOS.tipo_doc, DOC_EMPLEADOS.led_seccion, DOC_EMPLEADOS.contratista_1,
             DOC_EMPLEADOS.contratista, DOC_EMPLEADOS.periodo) EMPLEADOS

         INNER JOIN led_tipos_doc ON EMPLEADOS.tipo_doc = led_tipos_doc.tipo_doc
         INNER JOIN led_contratistas AS led_contratistas_1 ON EMPLEADOS.contratista_1 = led_contratistas_1.contratista
         INNER JOIN padrones AS padrones_1 ON led_contratistas_1.id_padron = padrones_1.id_padron
         INNER JOIN led_contratistas ON EMPLEADOS.contratista = led_contratistas.contratista
         INNER JOIN padrones ON led_contratistas.id_padron = padrones.id_padron

         UNION

         SELECT NULL AS doc_id, led_contratistas_1.cliente, led_contratistas.contratista_1,
            led_contratistas.contratista, VEHICULOS.led_seccion, VEHICULOS.periodo,
            NULL AS fecha_tolerancia, NULL AS fecha_vigencia, NULL AS aprobacion_parcial, 
            VEHICULOS.status_doc, VEHICULOS.tipo_doc, led_tipos_doc.nombre_tipo_doc,
            padrones.nombre_persona as empresa, padrones.identificador, padrones.numero,
            padrones_1.nombre_persona as nombre_contratista,
          CASE WHEN VEHICULOS.status_doc = 'R' THEN 1
            WHEN VEHICULOS.status_doc = 'E' THEN 2
            WHEN VEHICULOS.status_doc = 'P' THEN 3
            WHEN VEHICULOS.status_doc = 'N' THEN 4
            WHEN VEHICULOS.status_doc = 'I' THEN 5
            WHEN VEHICULOS.status_doc = 'V' THEN 6 END AS orden_status

         FROM
           (SELECT DOC_VEHICULOS.tipo_doc, DOC_VEHICULOS.led_seccion, DOC_VEHICULOS.contratista_1,
           DOC_VEHICULOS.contratista, DOC_VEHICULOS.periodo, MAX(DOC_VEHICULOS.estado_value) AS max_estado,
           CASE
            WHEN MAX(DOC_VEHICULOS.estado_value) = 10 THEN 'R'
            WHEN MAX(DOC_VEHICULOS.estado_value) = 7 THEN 'E'
            WHEN MAX(DOC_VEHICULOS.estado_value) = 5 THEN 'N'
            WHEN MAX(DOC_VEHICULOS.estado_value) = 3 THEN 'I'
            WHEN MAX(DOC_VEHICULOS.estado_value) = 1 THEN 'V'
           END AS status_doc   
           FROM
            (select led_docs.doc_id, led_docs.tipo_doc, led_docs.status_doc, led_docs.led_seccion,
               led_docs.contratista_1, led_docs.contratista, led_docs.periodo,
             CASE 
              WHEN led_docs.status_doc = 'R' THEN 10
              WHEN led_docs.status_doc = 'E' THEN 7
              WHEN led_docs.status_doc = 'N' THEN 5
              WHEN led_docs.status_doc = 'I' THEN 3
              WHEN led_docs.status_doc = 'V' THEN 1
             END AS estado_value
            from led_docs
            inner join dbo.DelimitedSplit8K(@p_status_doc, ',') estados ON led_docs.status_doc = estados.Item
            
            --inner join dbo.DelimitedSplit8K(@lista_tipos_doc, ',') tipos ON led_docs.tipo_doc = tipos.Item
            INNER JOIN led_vehiculos ON led_docs.vehiculo = led_vehiculos.vehiculo
            INNER JOIN led_cliente_vehiculo ON (led_vehiculos.tipo_vehiculo = led_cliente_vehiculo.tipo_vehiculo
                       AND led_docs.tipo_doc = led_cliente_vehiculo.tipo_doc
                       AND led_cliente_vehiculo.requiere_upload = 1
                       AND led_cliente_vehiculo.cliente = @cliente
                       AND led_cliente_vehiculo.ci_killer IN (select item from dbo.DelimitedSplit8K(@acceso, ',')))
            INNER JOIN led_vehiculos_periodo ON (led_docs.vehiculo = led_vehiculos_periodo.vehiculo AND led_docs.periodo = led_vehiculos_periodo.periodo)
            inner join led_contratista_periodo on (led_vehiculos.contratista = led_contratista_periodo.contratista AND led_vehiculos_periodo.periodo = led_contratista_periodo.periodo)

            where led_docs.contratista_1 = @p_contratista_1
            and led_vehiculos.estado_vehiculo = 'A'
            and led_docs.contratista = @p_contratista
            and led_docs.periodo >= @p_periodo_desde
            and led_docs.led_seccion = 'V') DOC_VEHICULOS
           GROUP BY DOC_VEHICULOS.tipo_doc, DOC_VEHICULOS.led_seccion, DOC_VEHICULOS.contratista_1,
             DOC_VEHICULOS.contratista, DOC_VEHICULOS.periodo) VEHICULOS

         INNER JOIN led_tipos_doc ON VEHICULOS.tipo_doc = led_tipos_doc.tipo_doc
         INNER JOIN led_contratistas AS led_contratistas_1 ON VEHICULOS.contratista_1 = led_contratistas_1.contratista
         INNER JOIN padrones AS padrones_1 ON led_contratistas_1.id_padron = padrones_1.id_padron
         INNER JOIN led_contratistas ON VEHICULOS.contratista = led_contratistas.contratista
         INNER JOIN padrones ON led_contratistas.id_padron = padrones.id_padron

         UNION

         SELECT NULL AS doc_id, led_contratistas_1.cliente, led_contratistas.contratista_1,
            led_contratistas.contratista, VEHICULOS.led_seccion, VEHICULOS.periodo,
            NULL AS fecha_tolerancia, NULL AS fecha_vigencia, NULL AS aprobacion_parcial, 
            VEHICULOS.status_doc, VEHICULOS.tipo_doc, led_tipos_doc.nombre_tipo_doc,
            padrones.nombre_persona as empresa, padrones.identificador, padrones.numero,
            padrones_1.nombre_persona as nombre_contratista,
          CASE WHEN VEHICULOS.status_doc = 'R' THEN 1
            WHEN VEHICULOS.status_doc = 'E' THEN 2
            WHEN VEHICULOS.status_doc = 'P' THEN 3
            WHEN VEHICULOS.status_doc = 'N' THEN 4
            WHEN VEHICULOS.status_doc = 'I' THEN 5
            WHEN VEHICULOS.status_doc = 'V' THEN 6 END AS orden_status

         FROM
           (SELECT DOC_VEHICULOS.tipo_doc, DOC_VEHICULOS.led_seccion, DOC_VEHICULOS.contratista_1,
           DOC_VEHICULOS.contratista, DOC_VEHICULOS.periodo, MAX(DOC_VEHICULOS.estado_value) AS max_estado,
           CASE
            WHEN MAX(DOC_VEHICULOS.estado_value) = 10 THEN 'R'
            WHEN MAX(DOC_VEHICULOS.estado_value) = 7 THEN 'E'
            WHEN MAX(DOC_VEHICULOS.estado_value) = 5 THEN 'N'
            WHEN MAX(DOC_VEHICULOS.estado_value) = 3 THEN 'I'
            WHEN MAX(DOC_VEHICULOS.estado_value) = 1 THEN 'V'
           END AS status_doc   
           FROM
            (select led_docs.doc_id, led_docs.tipo_doc, led_docs.status_doc, led_docs.led_seccion,
               led_docs.contratista_1, led_docs.contratista, led_docs.periodo,
             CASE 
              WHEN led_docs.status_doc = 'R' THEN 10
              WHEN led_docs.status_doc = 'E' THEN 7
              WHEN led_docs.status_doc = 'N' THEN 5
              WHEN led_docs.status_doc = 'I' THEN 3
              WHEN led_docs.status_doc = 'V' THEN 1
             END AS estado_value
            from led_docs
            inner join dbo.DelimitedSplit8K(@p_status_doc, ',') estados ON led_docs.status_doc = estados.Item
            
            --inner join dbo.DelimitedSplit8K(@lista_tipos_doc, ',') tipos ON led_docs.tipo_doc = tipos.Item
            INNER JOIN led_vehiculos ON led_docs.vehiculo = led_vehiculos.vehiculo
            INNER JOIN led_cliente_vehiculo ON (led_vehiculos.tipo_vehiculo = led_cliente_vehiculo.tipo_vehiculo
                       AND led_docs.tipo_doc = led_cliente_vehiculo.tipo_doc
                       AND led_cliente_vehiculo.requiere_upload = 1
                       AND led_cliente_vehiculo.cliente = @cliente
                       AND led_cliente_vehiculo.ci_killer IN (select item from dbo.DelimitedSplit8K(@acceso, ',')))
            INNER JOIN led_vehiculos_periodo ON (led_docs.vehiculo = led_vehiculos_periodo.vehiculo AND led_docs.periodo = led_vehiculos_periodo.periodo)
            inner join led_subcontratista_periodo on (led_vehiculos.contratista = led_subcontratista_periodo.subcontratista AND led_vehiculos_periodo.periodo = led_subcontratista_periodo.periodo)

            where led_docs.contratista_1 = @p_contratista_1
            and led_vehiculos.estado_vehiculo = 'A'
            and led_docs.contratista = @p_contratista
            and led_docs.periodo >= @p_periodo_desde
            and led_docs.led_seccion = 'V') DOC_VEHICULOS
           GROUP BY DOC_VEHICULOS.tipo_doc, DOC_VEHICULOS.led_seccion, DOC_VEHICULOS.contratista_1,
             DOC_VEHICULOS.contratista, DOC_VEHICULOS.periodo) VEHICULOS

         INNER JOIN led_tipos_doc ON VEHICULOS.tipo_doc = led_tipos_doc.tipo_doc
         INNER JOIN led_contratistas AS led_contratistas_1 ON VEHICULOS.contratista_1 = led_contratistas_1.contratista
         INNER JOIN padrones AS padrones_1 ON led_contratistas_1.id_padron = padrones_1.id_padron
         INNER JOIN led_contratistas ON VEHICULOS.contratista = led_contratistas.contratista
         INNER JOIN padrones ON led_contratistas.id_padron = padrones.id_padron

         ORDER BY orden_status, periodo, nombre_tipo_doc



        ELSE

         IF (@p_periodo_desde IS NULL AND @p_periodo_hasta IS NOT NULL) 

          /* Todas las secciones, por empresa, período hasta */

          SELECT led_docs.doc_id, led_docs.cliente, led_docs.contratista_1, led_docs.contratista,
            led_docs.led_seccion, led_docs.periodo, led_docs.fecha_tolerancia, 
            led_docs.fecha_vigencia, led_docs.aprobacion_parcial, led_docs.status_doc,
            led_docs.tipo_doc, led_tipos_doc.nombre_tipo_doc,
            padrones.nombre_persona as empresa, padrones.identificador, padrones.numero,
            padrones_1.nombre_persona as nombre_contratista,
          CASE WHEN led_docs.status_doc = 'R' THEN 1
            WHEN led_docs.status_doc = 'E' THEN 2
            WHEN led_docs.status_doc = 'P' THEN 3
            WHEN led_docs.status_doc = 'N' THEN 4
            WHEN led_docs.status_doc = 'I' THEN 5
            WHEN led_docs.status_doc = 'V' THEN 6 END AS orden_status
          FROM led_docs
          INNER JOIN led_tipos_doc ON led_docs.tipo_doc = led_tipos_doc.tipo_doc
          INNER JOIN dbo.DelimitedSplit8K(@p_status_doc, ',') estados ON led_docs.status_doc = estados.Item
          INNER JOIN led_contratistas ON led_docs.contratista = led_contratistas.contratista
          INNER JOIN padrones ON led_contratistas.id_padron = padrones.id_padron
          INNER JOIN led_contratistas led_contratistas_1 ON led_docs.contratista_1 = led_contratistas_1.contratista
          INNER JOIN padrones padrones_1 ON led_contratistas_1.id_padron = padrones_1.id_padron

          --INNER JOIN dbo.DelimitedSplit8K(@lista_tipos_doc, ',') tipos ON led_docs.tipo_doc = tipos.Item
          INNER JOIN led_cliente_contratista ON (led_contratistas.tipo_contratista = led_cliente_contratista.tipo_contratista
                     AND led_docs.tipo_doc = led_cliente_contratista.tipo_doc
                     AND led_cliente_contratista.requiere_upload = 1
                     AND led_cliente_contratista.cliente = @cliente
                     AND led_cliente_contratista.ci_killer IN (select item from dbo.DelimitedSplit8K(@acceso, ',')))

          WHERE led_docs.contratista_1 = @p_contratista_1
          AND led_docs.contratista = @p_contratista
          AND led_docs.periodo <= @p_periodo_hasta
          AND led_docs.led_seccion = 'C'

          UNION

          SELECT NULL AS doc_id, led_contratistas_1.cliente, led_contratistas.contratista_1,
             led_contratistas.contratista, EMPLEADOS.led_seccion, EMPLEADOS.periodo,
             NULL AS fecha_tolerancia, NULL AS fecha_vigencia, NULL AS aprobacion_parcial, 
             EMPLEADOS.status_doc, EMPLEADOS.tipo_doc, led_tipos_doc.nombre_tipo_doc,
             padrones.nombre_persona as empresa, padrones.identificador, padrones.numero,
             padrones_1.nombre_persona as nombre_contratista,
          CASE WHEN EMPLEADOS.status_doc = 'R' THEN 1
            WHEN EMPLEADOS.status_doc = 'E' THEN 2
            WHEN EMPLEADOS.status_doc = 'P' THEN 3
            WHEN EMPLEADOS.status_doc = 'N' THEN 4
            WHEN EMPLEADOS.status_doc = 'I' THEN 5
            WHEN EMPLEADOS.status_doc = 'V' THEN 6 END AS orden_status

          FROM
            (SELECT DOC_EMPLEADOS.tipo_doc, DOC_EMPLEADOS.led_seccion, DOC_EMPLEADOS.contratista_1,
            DOC_EMPLEADOS.contratista, DOC_EMPLEADOS.periodo, MAX(DOC_EMPLEADOS.estado_value) AS max_estado,
            CASE
             WHEN MAX(DOC_EMPLEADOS.estado_value) = 10 THEN 'R'
             WHEN MAX(DOC_EMPLEADOS.estado_value) = 7 THEN 'E'
             WHEN MAX(DOC_EMPLEADOS.estado_value) = 5 THEN 'N'
             WHEN MAX(DOC_EMPLEADOS.estado_value) = 3 THEN 'I'
             WHEN MAX(DOC_EMPLEADOS.estado_value) = 1 THEN 'V'
            END AS status_doc   
            FROM
             (select led_docs.doc_id, led_docs.tipo_doc, led_docs.status_doc, led_docs.led_seccion,
                led_docs.contratista_1, led_docs.contratista, led_docs.periodo,
              CASE 
               WHEN led_docs.status_doc = 'R' THEN 10
               WHEN led_docs.status_doc = 'E' THEN 7
               WHEN led_docs.status_doc = 'N' THEN 5
               WHEN led_docs.status_doc = 'I' THEN 3
               WHEN led_docs.status_doc = 'V' THEN 1
              END AS estado_value
             from led_docs
             inner join dbo.DelimitedSplit8K(@p_status_doc, ',') estados ON led_docs.status_doc = estados.Item

             --inner join dbo.DelimitedSplit8K(@lista_tipos_doc, ',') tipos ON led_docs.tipo_doc = tipos.Item
             INNER JOIN led_empleados ON led_docs.empleado = led_empleados.empleado
             INNER JOIN led_cliente_empleado ON (led_empleados.tipo_empleado = led_cliente_empleado.tipo_empleado
                        AND led_docs.tipo_doc = led_cliente_empleado.tipo_doc
                        AND led_cliente_empleado.requiere_upload = 1
                        AND led_cliente_empleado.cliente = @cliente
                        AND led_cliente_empleado.ci_killer IN (select item from dbo.DelimitedSplit8K(@acceso, ',')))
             INNER JOIN led_empleados_periodo ON (led_docs.empleado = led_empleados_periodo.empleado AND led_docs.periodo = led_empleados_periodo.periodo)
             inner join led_contratista_periodo on (led_empleados.contratista = led_contratista_periodo.contratista AND led_empleados_periodo.periodo = led_contratista_periodo.periodo)

             where led_docs.contratista_1 = @p_contratista_1
             and led_docs.contratista = @p_contratista
             and led_docs.periodo <= @p_periodo_hasta
             and led_docs.led_seccion = 'E') DOC_EMPLEADOS
            GROUP BY DOC_EMPLEADOS.tipo_doc, DOC_EMPLEADOS.led_seccion, DOC_EMPLEADOS.contratista_1,
              DOC_EMPLEADOS.contratista, DOC_EMPLEADOS.periodo) EMPLEADOS

          INNER JOIN led_tipos_doc ON EMPLEADOS.tipo_doc = led_tipos_doc.tipo_doc
          INNER JOIN led_contratistas AS led_contratistas_1 ON EMPLEADOS.contratista_1 = led_contratistas_1.contratista
          INNER JOIN padrones AS padrones_1 ON led_contratistas_1.id_padron = padrones_1.id_padron
          INNER JOIN led_contratistas ON EMPLEADOS.contratista = led_contratistas.contratista
          INNER JOIN padrones ON led_contratistas.id_padron = padrones.id_padron

          UNION

          SELECT NULL AS doc_id, led_contratistas_1.cliente, led_contratistas.contratista_1,
             led_contratistas.contratista, EMPLEADOS.led_seccion, EMPLEADOS.periodo,
             NULL AS fecha_tolerancia, NULL AS fecha_vigencia, NULL AS aprobacion_parcial, 
             EMPLEADOS.status_doc, EMPLEADOS.tipo_doc, led_tipos_doc.nombre_tipo_doc,
             padrones.nombre_persona as empresa, padrones.identificador, padrones.numero,
             padrones_1.nombre_persona as nombre_contratista,
          CASE WHEN EMPLEADOS.status_doc = 'R' THEN 1
            WHEN EMPLEADOS.status_doc = 'E' THEN 2
            WHEN EMPLEADOS.status_doc = 'P' THEN 3
            WHEN EMPLEADOS.status_doc = 'N' THEN 4
            WHEN EMPLEADOS.status_doc = 'I' THEN 5
            WHEN EMPLEADOS.status_doc = 'V' THEN 6 END AS orden_status

          FROM
            (SELECT DOC_EMPLEADOS.tipo_doc, DOC_EMPLEADOS.led_seccion, DOC_EMPLEADOS.contratista_1,
            DOC_EMPLEADOS.contratista, DOC_EMPLEADOS.periodo, MAX(DOC_EMPLEADOS.estado_value) AS max_estado,
            CASE
             WHEN MAX(DOC_EMPLEADOS.estado_value) = 10 THEN 'R'
             WHEN MAX(DOC_EMPLEADOS.estado_value) = 7 THEN 'E'
             WHEN MAX(DOC_EMPLEADOS.estado_value) = 5 THEN 'N'
             WHEN MAX(DOC_EMPLEADOS.estado_value) = 3 THEN 'I'
             WHEN MAX(DOC_EMPLEADOS.estado_value) = 1 THEN 'V'
            END AS status_doc   
            FROM
             (select led_docs.doc_id, led_docs.tipo_doc, led_docs.status_doc, led_docs.led_seccion,
                led_docs.contratista_1, led_docs.contratista, led_docs.periodo,
              CASE 
               WHEN led_docs.status_doc = 'R' THEN 10
               WHEN led_docs.status_doc = 'E' THEN 7
               WHEN led_docs.status_doc = 'N' THEN 5
               WHEN led_docs.status_doc = 'I' THEN 3
               WHEN led_docs.status_doc = 'V' THEN 1
              END AS estado_value
             from led_docs
             inner join dbo.DelimitedSplit8K(@p_status_doc, ',') estados ON led_docs.status_doc = estados.Item

             --inner join dbo.DelimitedSplit8K(@lista_tipos_doc, ',') tipos ON led_docs.tipo_doc = tipos.Item
             INNER JOIN led_empleados ON led_docs.empleado = led_empleados.empleado
             INNER JOIN led_cliente_empleado ON (led_empleados.tipo_empleado = led_cliente_empleado.tipo_empleado
                        AND led_docs.tipo_doc = led_cliente_empleado.tipo_doc
                        AND led_cliente_empleado.requiere_upload = 1
                        AND led_cliente_empleado.cliente = @cliente
                        AND led_cliente_empleado.ci_killer IN (select item from dbo.DelimitedSplit8K(@acceso, ',')))
             INNER JOIN led_empleados_periodo ON (led_docs.empleado = led_empleados_periodo.empleado AND led_docs.periodo = led_empleados_periodo.periodo)
             inner join led_subcontratista_periodo on (led_empleados.contratista = led_subcontratista_periodo.subcontratista AND led_empleados_periodo.periodo = led_subcontratista_periodo.periodo)

             where led_docs.contratista_1 = @p_contratista_1
             and led_docs.contratista = @p_contratista
             and led_docs.periodo <= @p_periodo_hasta
             and led_docs.led_seccion = 'E') DOC_EMPLEADOS
            GROUP BY DOC_EMPLEADOS.tipo_doc, DOC_EMPLEADOS.led_seccion, DOC_EMPLEADOS.contratista_1,
              DOC_EMPLEADOS.contratista, DOC_EMPLEADOS.periodo) EMPLEADOS

          INNER JOIN led_tipos_doc ON EMPLEADOS.tipo_doc = led_tipos_doc.tipo_doc
          INNER JOIN led_contratistas AS led_contratistas_1 ON EMPLEADOS.contratista_1 = led_contratistas_1.contratista
          INNER JOIN padrones AS padrones_1 ON led_contratistas_1.id_padron = padrones_1.id_padron
          INNER JOIN led_contratistas ON EMPLEADOS.contratista = led_contratistas.contratista
          INNER JOIN padrones ON led_contratistas.id_padron = padrones.id_padron

          UNION

          SELECT NULL AS doc_id, led_contratistas_1.cliente, led_contratistas.contratista_1,
             led_contratistas.contratista, VEHICULOS.led_seccion, VEHICULOS.periodo,
             NULL AS fecha_tolerancia, NULL AS fecha_vigencia, NULL AS aprobacion_parcial, 
             VEHICULOS.status_doc, VEHICULOS.tipo_doc, led_tipos_doc.nombre_tipo_doc,
             padrones.nombre_persona as empresa, padrones.identificador, padrones.numero,
             padrones_1.nombre_persona as nombre_contratista,
          CASE WHEN VEHICULOS.status_doc = 'R' THEN 1
            WHEN VEHICULOS.status_doc = 'E' THEN 2
            WHEN VEHICULOS.status_doc = 'P' THEN 3
            WHEN VEHICULOS.status_doc = 'N' THEN 4
            WHEN VEHICULOS.status_doc = 'I' THEN 5
            WHEN VEHICULOS.status_doc = 'V' THEN 6 END AS orden_status

          FROM
            (SELECT DOC_VEHICULOS.tipo_doc, DOC_VEHICULOS.led_seccion, DOC_VEHICULOS.contratista_1,
            DOC_VEHICULOS.contratista, DOC_VEHICULOS.periodo, MAX(DOC_VEHICULOS.estado_value) AS max_estado,
            CASE
             WHEN MAX(DOC_VEHICULOS.estado_value) = 10 THEN 'R'
             WHEN MAX(DOC_VEHICULOS.estado_value) = 7 THEN 'E'
             WHEN MAX(DOC_VEHICULOS.estado_value) = 5 THEN 'N'
             WHEN MAX(DOC_VEHICULOS.estado_value) = 3 THEN 'I'
             WHEN MAX(DOC_VEHICULOS.estado_value) = 1 THEN 'V'
            END AS status_doc   
            FROM
             (select led_docs.doc_id, led_docs.tipo_doc, led_docs.status_doc, led_docs.led_seccion,
                led_docs.contratista_1, led_docs.contratista, led_docs.periodo,
              CASE 
               WHEN led_docs.status_doc = 'R' THEN 10
               WHEN led_docs.status_doc = 'E' THEN 7
               WHEN led_docs.status_doc = 'N' THEN 5
               WHEN led_docs.status_doc = 'I' THEN 3
               WHEN led_docs.status_doc = 'V' THEN 1
              END AS estado_value
             from led_docs
             inner join dbo.DelimitedSplit8K(@p_status_doc, ',') estados ON led_docs.status_doc = estados.Item
             
             --inner join dbo.DelimitedSplit8K(@lista_tipos_doc, ',') tipos ON led_docs.tipo_doc = tipos.Item
             INNER JOIN led_vehiculos ON led_docs.vehiculo = led_vehiculos.vehiculo
             INNER JOIN led_cliente_vehiculo ON (led_vehiculos.tipo_vehiculo = led_cliente_vehiculo.tipo_vehiculo
                        AND led_docs.tipo_doc = led_cliente_vehiculo.tipo_doc
                        AND led_cliente_vehiculo.requiere_upload = 1
                        AND led_cliente_vehiculo.cliente = @cliente
                        AND led_cliente_vehiculo.ci_killer IN (select item from dbo.DelimitedSplit8K(@acceso, ',')))
             INNER JOIN led_vehiculos_periodo ON (led_docs.vehiculo = led_vehiculos_periodo.vehiculo AND led_docs.periodo = led_vehiculos_periodo.periodo)
             inner join led_contratista_periodo on (led_vehiculos.contratista = led_contratista_periodo.contratista AND led_vehiculos_periodo.periodo = led_contratista_periodo.periodo)

             where led_docs.contratista_1 = @p_contratista_1
             and led_vehiculos.estado_vehiculo = 'A'
             and led_docs.contratista = @p_contratista
             and led_docs.periodo <= @p_periodo_hasta
             and led_docs.led_seccion = 'V') DOC_VEHICULOS
            GROUP BY DOC_VEHICULOS.tipo_doc, DOC_VEHICULOS.led_seccion, DOC_VEHICULOS.contratista_1,
              DOC_VEHICULOS.contratista, DOC_VEHICULOS.periodo) VEHICULOS

          INNER JOIN led_tipos_doc ON VEHICULOS.tipo_doc = led_tipos_doc.tipo_doc
          INNER JOIN led_contratistas AS led_contratistas_1 ON VEHICULOS.contratista_1 = led_contratistas_1.contratista
          INNER JOIN padrones AS padrones_1 ON led_contratistas_1.id_padron = padrones_1.id_padron
          INNER JOIN led_contratistas ON VEHICULOS.contratista = led_contratistas.contratista
          INNER JOIN padrones ON led_contratistas.id_padron = padrones.id_padron

          UNION

          SELECT NULL AS doc_id, led_contratistas_1.cliente, led_contratistas.contratista_1,
             led_contratistas.contratista, VEHICULOS.led_seccion, VEHICULOS.periodo,
             NULL AS fecha_tolerancia, NULL AS fecha_vigencia, NULL AS aprobacion_parcial, 
             VEHICULOS.status_doc, VEHICULOS.tipo_doc, led_tipos_doc.nombre_tipo_doc,
             padrones.nombre_persona as empresa, padrones.identificador, padrones.numero,
             padrones_1.nombre_persona as nombre_contratista,
          CASE WHEN VEHICULOS.status_doc = 'R' THEN 1
            WHEN VEHICULOS.status_doc = 'E' THEN 2
            WHEN VEHICULOS.status_doc = 'P' THEN 3
            WHEN VEHICULOS.status_doc = 'N' THEN 4
            WHEN VEHICULOS.status_doc = 'I' THEN 5
            WHEN VEHICULOS.status_doc = 'V' THEN 6 END AS orden_status

          FROM
            (SELECT DOC_VEHICULOS.tipo_doc, DOC_VEHICULOS.led_seccion, DOC_VEHICULOS.contratista_1,
            DOC_VEHICULOS.contratista, DOC_VEHICULOS.periodo, MAX(DOC_VEHICULOS.estado_value) AS max_estado,
            CASE
             WHEN MAX(DOC_VEHICULOS.estado_value) = 10 THEN 'R'
             WHEN MAX(DOC_VEHICULOS.estado_value) = 7 THEN 'E'
             WHEN MAX(DOC_VEHICULOS.estado_value) = 5 THEN 'N'
             WHEN MAX(DOC_VEHICULOS.estado_value) = 3 THEN 'I'
             WHEN MAX(DOC_VEHICULOS.estado_value) = 1 THEN 'V'
            END AS status_doc   
            FROM
             (select led_docs.doc_id, led_docs.tipo_doc, led_docs.status_doc, led_docs.led_seccion,
                led_docs.contratista_1, led_docs.contratista, led_docs.periodo,
              CASE 
               WHEN led_docs.status_doc = 'R' THEN 10
               WHEN led_docs.status_doc = 'E' THEN 7
               WHEN led_docs.status_doc = 'N' THEN 5
               WHEN led_docs.status_doc = 'I' THEN 3
               WHEN led_docs.status_doc = 'V' THEN 1
              END AS estado_value
             from led_docs
             inner join dbo.DelimitedSplit8K(@p_status_doc, ',') estados ON led_docs.status_doc = estados.Item
             
             --inner join dbo.DelimitedSplit8K(@lista_tipos_doc, ',') tipos ON led_docs.tipo_doc = tipos.Item
             INNER JOIN led_vehiculos ON led_docs.vehiculo = led_vehiculos.vehiculo
             INNER JOIN led_cliente_vehiculo ON (led_vehiculos.tipo_vehiculo = led_cliente_vehiculo.tipo_vehiculo
                        AND led_docs.tipo_doc = led_cliente_vehiculo.tipo_doc
                        AND led_cliente_vehiculo.requiere_upload = 1
                        AND led_cliente_vehiculo.cliente = @cliente
                        AND led_cliente_vehiculo.ci_killer IN (select item from dbo.DelimitedSplit8K(@acceso, ',')))
             INNER JOIN led_vehiculos_periodo ON (led_docs.vehiculo = led_vehiculos_periodo.vehiculo AND led_docs.periodo = led_vehiculos_periodo.periodo)
             inner join led_subcontratista_periodo on (led_vehiculos.contratista = led_subcontratista_periodo.subcontratista AND led_vehiculos_periodo.periodo = led_subcontratista_periodo.periodo)

             where led_docs.contratista_1 = @p_contratista_1
             and led_vehiculos.estado_vehiculo = 'A'
             and led_docs.contratista = @p_contratista
             and led_docs.periodo <= @p_periodo_hasta
             and led_docs.led_seccion = 'V') DOC_VEHICULOS
            GROUP BY DOC_VEHICULOS.tipo_doc, DOC_VEHICULOS.led_seccion, DOC_VEHICULOS.contratista_1,
              DOC_VEHICULOS.contratista, DOC_VEHICULOS.periodo) VEHICULOS

          INNER JOIN led_tipos_doc ON VEHICULOS.tipo_doc = led_tipos_doc.tipo_doc
          INNER JOIN led_contratistas AS led_contratistas_1 ON VEHICULOS.contratista_1 = led_contratistas_1.contratista
          INNER JOIN padrones AS padrones_1 ON led_contratistas_1.id_padron = padrones_1.id_padron
          INNER JOIN led_contratistas ON VEHICULOS.contratista = led_contratistas.contratista
          INNER JOIN padrones ON led_contratistas.id_padron = padrones.id_padron

          ORDER BY orden_status, periodo, nombre_tipo_doc


       
         ELSE

          /* Todas las secciones, por empresa, período desde - hasta */

          SELECT led_docs.doc_id, led_docs.cliente, led_docs.contratista_1, led_docs.contratista,
            led_docs.led_seccion, led_docs.periodo, led_docs.fecha_tolerancia, 
            led_docs.fecha_vigencia, led_docs.aprobacion_parcial, led_docs.status_doc,
            led_docs.tipo_doc, led_tipos_doc.nombre_tipo_doc,
            padrones.nombre_persona as empresa, padrones.identificador, padrones.numero,
            padrones_1.nombre_persona as nombre_contratista,
          CASE WHEN led_docs.status_doc = 'R' THEN 1
            WHEN led_docs.status_doc = 'E' THEN 2
            WHEN led_docs.status_doc = 'P' THEN 3
            WHEN led_docs.status_doc = 'N' THEN 4
            WHEN led_docs.status_doc = 'I' THEN 5
            WHEN led_docs.status_doc = 'V' THEN 6 END AS orden_status
          FROM led_docs
          INNER JOIN led_tipos_doc ON led_docs.tipo_doc = led_tipos_doc.tipo_doc
          INNER JOIN dbo.DelimitedSplit8K(@p_status_doc, ',') estados ON led_docs.status_doc = estados.Item
          INNER JOIN led_contratistas ON led_docs.contratista = led_contratistas.contratista
          INNER JOIN padrones ON led_contratistas.id_padron = padrones.id_padron
          INNER JOIN led_contratistas led_contratistas_1 ON led_docs.contratista_1 = led_contratistas_1.contratista
          INNER JOIN padrones padrones_1 ON led_contratistas_1.id_padron = padrones_1.id_padron

          --INNER JOIN dbo.DelimitedSplit8K(@lista_tipos_doc, ',') tipos ON led_docs.tipo_doc = tipos.Item
          INNER JOIN led_cliente_contratista ON (led_contratistas.tipo_contratista = led_cliente_contratista.tipo_contratista
                     AND led_docs.tipo_doc = led_cliente_contratista.tipo_doc
                     AND led_cliente_contratista.requiere_upload = 1
                     AND led_cliente_contratista.cliente = @cliente
                     AND led_cliente_contratista.ci_killer IN (select item from dbo.DelimitedSplit8K(@acceso, ',')))

          WHERE led_docs.contratista_1 = @p_contratista_1
          AND led_docs.contratista = @p_contratista
          AND led_docs.periodo >= @p_periodo_desde
          AND led_docs.periodo <= @p_periodo_hasta
          AND led_docs.led_seccion = 'C'

          UNION

          SELECT NULL AS doc_id, led_contratistas_1.cliente, led_contratistas.contratista_1,
             led_contratistas.contratista, EMPLEADOS.led_seccion, EMPLEADOS.periodo,
             NULL AS fecha_tolerancia, NULL AS fecha_vigencia, NULL AS aprobacion_parcial, 
             EMPLEADOS.status_doc, EMPLEADOS.tipo_doc, led_tipos_doc.nombre_tipo_doc,
             padrones.nombre_persona as empresa, padrones.identificador, padrones.numero,
             padrones_1.nombre_persona as nombre_contratista,
          CASE WHEN EMPLEADOS.status_doc = 'R' THEN 1
            WHEN EMPLEADOS.status_doc = 'E' THEN 2
            WHEN EMPLEADOS.status_doc = 'P' THEN 3
            WHEN EMPLEADOS.status_doc = 'N' THEN 4
            WHEN EMPLEADOS.status_doc = 'I' THEN 5
            WHEN EMPLEADOS.status_doc = 'V' THEN 6 END AS orden_status

          FROM
            (SELECT DOC_EMPLEADOS.tipo_doc, DOC_EMPLEADOS.led_seccion, DOC_EMPLEADOS.contratista_1,
            DOC_EMPLEADOS.contratista, DOC_EMPLEADOS.periodo, MAX(DOC_EMPLEADOS.estado_value) AS max_estado,
            CASE
             WHEN MAX(DOC_EMPLEADOS.estado_value) = 10 THEN 'R'
             WHEN MAX(DOC_EMPLEADOS.estado_value) = 7 THEN 'E'
             WHEN MAX(DOC_EMPLEADOS.estado_value) = 5 THEN 'N'
             WHEN MAX(DOC_EMPLEADOS.estado_value) = 3 THEN 'I'
             WHEN MAX(DOC_EMPLEADOS.estado_value) = 1 THEN 'V'
            END AS status_doc   
            FROM
             (select led_docs.doc_id, led_docs.tipo_doc, led_docs.status_doc, led_docs.led_seccion,
                led_docs.contratista_1, led_docs.contratista, led_docs.periodo,
              CASE 
               WHEN led_docs.status_doc = 'R' THEN 10
               WHEN led_docs.status_doc = 'E' THEN 7
               WHEN led_docs.status_doc = 'N' THEN 5
               WHEN led_docs.status_doc = 'I' THEN 3
               WHEN led_docs.status_doc = 'V' THEN 1
              END AS estado_value
             from led_docs
             inner join dbo.DelimitedSplit8K(@p_status_doc, ',') estados ON led_docs.status_doc = estados.Item

             --inner join dbo.DelimitedSplit8K(@lista_tipos_doc, ',') tipos ON led_docs.tipo_doc = tipos.Item
             INNER JOIN led_empleados ON led_docs.empleado = led_empleados.empleado
             INNER JOIN led_cliente_empleado ON (led_empleados.tipo_empleado = led_cliente_empleado.tipo_empleado
                        AND led_docs.tipo_doc = led_cliente_empleado.tipo_doc
                        AND led_cliente_empleado.requiere_upload = 1
                        AND led_cliente_empleado.cliente = @cliente
                        AND led_cliente_empleado.ci_killer IN (select item from dbo.DelimitedSplit8K(@acceso, ',')))
             INNER JOIN led_empleados_periodo ON (led_docs.empleado = led_empleados_periodo.empleado AND led_docs.periodo = led_empleados_periodo.periodo)
             inner join led_contratista_periodo on (led_empleados.contratista = led_contratista_periodo.contratista AND led_empleados_periodo.periodo = led_contratista_periodo.periodo)
             
             where led_docs.contratista_1 = @p_contratista_1
             and led_docs.contratista = @p_contratista
             and led_docs.periodo >= @p_periodo_desde
             and led_docs.periodo <= @p_periodo_hasta
             and led_docs.led_seccion = 'E') DOC_EMPLEADOS
            GROUP BY DOC_EMPLEADOS.tipo_doc, DOC_EMPLEADOS.led_seccion, DOC_EMPLEADOS.contratista_1,
              DOC_EMPLEADOS.contratista, DOC_EMPLEADOS.periodo) EMPLEADOS

          INNER JOIN led_tipos_doc ON EMPLEADOS.tipo_doc = led_tipos_doc.tipo_doc
          INNER JOIN led_contratistas AS led_contratistas_1 ON EMPLEADOS.contratista_1 = led_contratistas_1.contratista
          INNER JOIN padrones AS padrones_1 ON led_contratistas_1.id_padron = padrones_1.id_padron
          INNER JOIN led_contratistas ON EMPLEADOS.contratista = led_contratistas.contratista
          INNER JOIN padrones ON led_contratistas.id_padron = padrones.id_padron

          UNION

          SELECT NULL AS doc_id, led_contratistas_1.cliente, led_contratistas.contratista_1,
             led_contratistas.contratista, EMPLEADOS.led_seccion, EMPLEADOS.periodo,
             NULL AS fecha_tolerancia, NULL AS fecha_vigencia, NULL AS aprobacion_parcial, 
             EMPLEADOS.status_doc, EMPLEADOS.tipo_doc, led_tipos_doc.nombre_tipo_doc,
             padrones.nombre_persona as empresa, padrones.identificador, padrones.numero,
             padrones_1.nombre_persona as nombre_contratista,
          CASE WHEN EMPLEADOS.status_doc = 'R' THEN 1
            WHEN EMPLEADOS.status_doc = 'E' THEN 2
            WHEN EMPLEADOS.status_doc = 'P' THEN 3
            WHEN EMPLEADOS.status_doc = 'N' THEN 4
            WHEN EMPLEADOS.status_doc = 'I' THEN 5
            WHEN EMPLEADOS.status_doc = 'V' THEN 6 END AS orden_status

          FROM
            (SELECT DOC_EMPLEADOS.tipo_doc, DOC_EMPLEADOS.led_seccion, DOC_EMPLEADOS.contratista_1,
            DOC_EMPLEADOS.contratista, DOC_EMPLEADOS.periodo, MAX(DOC_EMPLEADOS.estado_value) AS max_estado,
            CASE
             WHEN MAX(DOC_EMPLEADOS.estado_value) = 10 THEN 'R'
             WHEN MAX(DOC_EMPLEADOS.estado_value) = 7 THEN 'E'
             WHEN MAX(DOC_EMPLEADOS.estado_value) = 5 THEN 'N'
             WHEN MAX(DOC_EMPLEADOS.estado_value) = 3 THEN 'I'
             WHEN MAX(DOC_EMPLEADOS.estado_value) = 1 THEN 'V'
            END AS status_doc   
            FROM
             (select led_docs.doc_id, led_docs.tipo_doc, led_docs.status_doc, led_docs.led_seccion,
                led_docs.contratista_1, led_docs.contratista, led_docs.periodo,
              CASE 
               WHEN led_docs.status_doc = 'R' THEN 10
               WHEN led_docs.status_doc = 'E' THEN 7
               WHEN led_docs.status_doc = 'N' THEN 5
               WHEN led_docs.status_doc = 'I' THEN 3
               WHEN led_docs.status_doc = 'V' THEN 1
              END AS estado_value
             from led_docs
             inner join dbo.DelimitedSplit8K(@p_status_doc, ',') estados ON led_docs.status_doc = estados.Item

             --inner join dbo.DelimitedSplit8K(@lista_tipos_doc, ',') tipos ON led_docs.tipo_doc = tipos.Item
             INNER JOIN led_empleados ON led_docs.empleado = led_empleados.empleado
             INNER JOIN led_cliente_empleado ON (led_empleados.tipo_empleado = led_cliente_empleado.tipo_empleado
                        AND led_docs.tipo_doc = led_cliente_empleado.tipo_doc
                        AND led_cliente_empleado.requiere_upload = 1
                        AND led_cliente_empleado.cliente = @cliente
                        AND led_cliente_empleado.ci_killer IN (select item from dbo.DelimitedSplit8K(@acceso, ',')))
             INNER JOIN led_empleados_periodo ON (led_docs.empleado = led_empleados_periodo.empleado AND led_docs.periodo = led_empleados_periodo.periodo)
             inner join led_subcontratista_periodo on (led_empleados.contratista = led_subcontratista_periodo.subcontratista AND led_empleados_periodo.periodo = led_subcontratista_periodo.periodo)
             
             where led_docs.contratista_1 = @p_contratista_1
             and led_docs.contratista = @p_contratista
             and led_docs.periodo >= @p_periodo_desde
             and led_docs.periodo <= @p_periodo_hasta
             and led_docs.led_seccion = 'E') DOC_EMPLEADOS
            GROUP BY DOC_EMPLEADOS.tipo_doc, DOC_EMPLEADOS.led_seccion, DOC_EMPLEADOS.contratista_1,
              DOC_EMPLEADOS.contratista, DOC_EMPLEADOS.periodo) EMPLEADOS

          INNER JOIN led_tipos_doc ON EMPLEADOS.tipo_doc = led_tipos_doc.tipo_doc
          INNER JOIN led_contratistas AS led_contratistas_1 ON EMPLEADOS.contratista_1 = led_contratistas_1.contratista
          INNER JOIN padrones AS padrones_1 ON led_contratistas_1.id_padron = padrones_1.id_padron
          INNER JOIN led_contratistas ON EMPLEADOS.contratista = led_contratistas.contratista
          INNER JOIN padrones ON led_contratistas.id_padron = padrones.id_padron

          UNION

          SELECT NULL AS doc_id, led_contratistas_1.cliente, led_contratistas.contratista_1,
             led_contratistas.contratista, VEHICULOS.led_seccion, VEHICULOS.periodo,
             NULL AS fecha_tolerancia, NULL AS fecha_vigencia, NULL AS aprobacion_parcial, 
             VEHICULOS.status_doc, VEHICULOS.tipo_doc, led_tipos_doc.nombre_tipo_doc,
             padrones.nombre_persona as empresa, padrones.identificador, padrones.numero,
             padrones_1.nombre_persona as nombre_contratista,
          CASE WHEN VEHICULOS.status_doc = 'R' THEN 1
            WHEN VEHICULOS.status_doc = 'E' THEN 2
            WHEN VEHICULOS.status_doc = 'P' THEN 3
            WHEN VEHICULOS.status_doc = 'N' THEN 4
            WHEN VEHICULOS.status_doc = 'I' THEN 5
            WHEN VEHICULOS.status_doc = 'V' THEN 6 END AS orden_status

          FROM
            (SELECT DOC_VEHICULOS.tipo_doc, DOC_VEHICULOS.led_seccion, DOC_VEHICULOS.contratista_1,
            DOC_VEHICULOS.contratista, DOC_VEHICULOS.periodo, MAX(DOC_VEHICULOS.estado_value) AS max_estado,
            CASE
             WHEN MAX(DOC_VEHICULOS.estado_value) = 10 THEN 'R'
             WHEN MAX(DOC_VEHICULOS.estado_value) = 7 THEN 'E'
             WHEN MAX(DOC_VEHICULOS.estado_value) = 5 THEN 'N'
             WHEN MAX(DOC_VEHICULOS.estado_value) = 3 THEN 'I'
             WHEN MAX(DOC_VEHICULOS.estado_value) = 1 THEN 'V'
            END AS status_doc   
            FROM
             (select led_docs.doc_id, led_docs.tipo_doc, led_docs.status_doc, led_docs.led_seccion,
                led_docs.contratista_1, led_docs.contratista, led_docs.periodo,
              CASE 
               WHEN led_docs.status_doc = 'R' THEN 10
               WHEN led_docs.status_doc = 'E' THEN 7
               WHEN led_docs.status_doc = 'N' THEN 5
               WHEN led_docs.status_doc = 'I' THEN 3
               WHEN led_docs.status_doc = 'V' THEN 1
              END AS estado_value
             from led_docs
             inner join dbo.DelimitedSplit8K(@p_status_doc, ',') estados ON led_docs.status_doc = estados.Item
             
             --inner join dbo.DelimitedSplit8K(@lista_tipos_doc, ',') tipos ON led_docs.tipo_doc = tipos.Item
             INNER JOIN led_vehiculos ON led_docs.vehiculo = led_vehiculos.vehiculo
             INNER JOIN led_cliente_vehiculo ON (led_vehiculos.tipo_vehiculo = led_cliente_vehiculo.tipo_vehiculo
                        AND led_docs.tipo_doc = led_cliente_vehiculo.tipo_doc
                        AND led_cliente_vehiculo.requiere_upload = 1
                        AND led_cliente_vehiculo.cliente = @cliente
                        AND led_cliente_vehiculo.ci_killer IN (select item from dbo.DelimitedSplit8K(@acceso, ',')))
             INNER JOIN led_vehiculos_periodo ON (led_docs.vehiculo = led_vehiculos_periodo.vehiculo AND led_docs.periodo = led_vehiculos_periodo.periodo)
             inner join led_contratista_periodo on (led_vehiculos.contratista = led_contratista_periodo.contratista AND led_vehiculos_periodo.periodo = led_contratista_periodo.periodo)

             where led_docs.contratista_1 = @p_contratista_1
             and led_vehiculos.estado_vehiculo = 'A'
             and led_docs.contratista = @p_contratista
             and led_docs.periodo >= @p_periodo_desde
             and led_docs.periodo <= @p_periodo_hasta
             and led_docs.led_seccion = 'V') DOC_VEHICULOS
            GROUP BY DOC_VEHICULOS.tipo_doc, DOC_VEHICULOS.led_seccion, DOC_VEHICULOS.contratista_1,
              DOC_VEHICULOS.contratista, DOC_VEHICULOS.periodo) VEHICULOS

          INNER JOIN led_tipos_doc ON VEHICULOS.tipo_doc = led_tipos_doc.tipo_doc
          INNER JOIN led_contratistas AS led_contratistas_1 ON VEHICULOS.contratista_1 = led_contratistas_1.contratista
          INNER JOIN padrones AS padrones_1 ON led_contratistas_1.id_padron = padrones_1.id_padron
          INNER JOIN led_contratistas ON VEHICULOS.contratista = led_contratistas.contratista
          INNER JOIN padrones ON led_contratistas.id_padron = padrones.id_padron

          UNION

          SELECT NULL AS doc_id, led_contratistas_1.cliente, led_contratistas.contratista_1,
             led_contratistas.contratista, VEHICULOS.led_seccion, VEHICULOS.periodo,
             NULL AS fecha_tolerancia, NULL AS fecha_vigencia, NULL AS aprobacion_parcial, 
             VEHICULOS.status_doc, VEHICULOS.tipo_doc, led_tipos_doc.nombre_tipo_doc,
             padrones.nombre_persona as empresa, padrones.identificador, padrones.numero,
             padrones_1.nombre_persona as nombre_contratista,
          CASE WHEN VEHICULOS.status_doc = 'R' THEN 1
            WHEN VEHICULOS.status_doc = 'E' THEN 2
            WHEN VEHICULOS.status_doc = 'P' THEN 3
            WHEN VEHICULOS.status_doc = 'N' THEN 4
            WHEN VEHICULOS.status_doc = 'I' THEN 5
            WHEN VEHICULOS.status_doc = 'V' THEN 6 END AS orden_status

          FROM
            (SELECT DOC_VEHICULOS.tipo_doc, DOC_VEHICULOS.led_seccion, DOC_VEHICULOS.contratista_1,
            DOC_VEHICULOS.contratista, DOC_VEHICULOS.periodo, MAX(DOC_VEHICULOS.estado_value) AS max_estado,
            CASE
             WHEN MAX(DOC_VEHICULOS.estado_value) = 10 THEN 'R'
             WHEN MAX(DOC_VEHICULOS.estado_value) = 7 THEN 'E'
             WHEN MAX(DOC_VEHICULOS.estado_value) = 5 THEN 'N'
             WHEN MAX(DOC_VEHICULOS.estado_value) = 3 THEN 'I'
             WHEN MAX(DOC_VEHICULOS.estado_value) = 1 THEN 'V'
            END AS status_doc   
            FROM
             (select led_docs.doc_id, led_docs.tipo_doc, led_docs.status_doc, led_docs.led_seccion,
                led_docs.contratista_1, led_docs.contratista, led_docs.periodo,
              CASE 
               WHEN led_docs.status_doc = 'R' THEN 10
               WHEN led_docs.status_doc = 'E' THEN 7
               WHEN led_docs.status_doc = 'N' THEN 5
               WHEN led_docs.status_doc = 'I' THEN 3
               WHEN led_docs.status_doc = 'V' THEN 1
              END AS estado_value
             from led_docs
             inner join dbo.DelimitedSplit8K(@p_status_doc, ',') estados ON led_docs.status_doc = estados.Item
             
             --inner join dbo.DelimitedSplit8K(@lista_tipos_doc, ',') tipos ON led_docs.tipo_doc = tipos.Item
             INNER JOIN led_vehiculos ON led_docs.vehiculo = led_vehiculos.vehiculo
             INNER JOIN led_cliente_vehiculo ON (led_vehiculos.tipo_vehiculo = led_cliente_vehiculo.tipo_vehiculo
                        AND led_docs.tipo_doc = led_cliente_vehiculo.tipo_doc
                        AND led_cliente_vehiculo.requiere_upload = 1
                        AND led_cliente_vehiculo.cliente = @cliente
                        AND led_cliente_vehiculo.ci_killer IN (select item from dbo.DelimitedSplit8K(@acceso, ',')))
             INNER JOIN led_vehiculos_periodo ON (led_docs.vehiculo = led_vehiculos_periodo.vehiculo AND led_docs.periodo = led_vehiculos_periodo.periodo)
             inner join led_subcontratista_periodo on (led_vehiculos.contratista = led_subcontratista_periodo.subcontratista AND led_vehiculos_periodo.periodo = led_subcontratista_periodo.periodo)

             where led_docs.contratista_1 = @p_contratista_1
             and led_vehiculos.estado_vehiculo = 'A'
             and led_docs.contratista = @p_contratista
             and led_docs.periodo >= @p_periodo_desde
             and led_docs.periodo <= @p_periodo_hasta
             and led_docs.led_seccion = 'V') DOC_VEHICULOS
            GROUP BY DOC_VEHICULOS.tipo_doc, DOC_VEHICULOS.led_seccion, DOC_VEHICULOS.contratista_1,
              DOC_VEHICULOS.contratista, DOC_VEHICULOS.periodo) VEHICULOS

          INNER JOIN led_tipos_doc ON VEHICULOS.tipo_doc = led_tipos_doc.tipo_doc
          INNER JOIN led_contratistas AS led_contratistas_1 ON VEHICULOS.contratista_1 = led_contratistas_1.contratista
          INNER JOIN padrones AS padrones_1 ON led_contratistas_1.id_padron = padrones_1.id_padron
          INNER JOIN led_contratistas ON VEHICULOS.contratista = led_contratistas.contratista
          INNER JOIN padrones ON led_contratistas.id_padron = padrones.id_padron

          ORDER BY orden_status, periodo, nombre_tipo_doc



      END



  /*END*/




 END

 
END

GO

Used By

No items found