dbo.Imperium_Reporte_Altas_Bajas_Doc

Description

Properties

Name Value
ANSI Nulls ON

True

Quoted Identifier ON

True

Encrypted

False

Execute As
Assembly

SQL Script

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

exec Imperium_Reporte_Altas_Bajas_Doc


select * from #Fechas




*/

-- Description: <Description,,>
-- =============================================
CREATE OR ALTER PROCEDURE dbo.Imperium_Reporte_Altas_Bajas_Doc
 -- Add the parameters for the stored procedure here
AS
BEGIN
 -- SET NOCOUNT ON added to prevent extra result sets from
 -- interfering with SELECT statements.
 SET NOCOUNT ON;

    -- Insert statements for procedure here

 create table #Fechas (fecha_control varchar(10))
 insert into #Fechas values (CONVERT(VARCHAR(10),DATEADD(DAY,-7,GETDATE()),121))
 insert into #Fechas values (CONVERT(VARCHAR(10),DATEADD(DAY,-6,GETDATE()),121))
 insert into #Fechas values (CONVERT(VARCHAR(10),DATEADD(DAY,-5,GETDATE()),121))
 insert into #Fechas values (CONVERT(VARCHAR(10),DATEADD(DAY,-4,GETDATE()),121))
 insert into #Fechas values (CONVERT(VARCHAR(10),DATEADD(DAY,-3,GETDATE()),121))
 insert into #Fechas values (CONVERT(VARCHAR(10),DATEADD(DAY,-2,GETDATE()),121))
 insert into #Fechas values (CONVERT(VARCHAR(10),DATEADD(DAY,-1,GETDATE()),121))

 declare @suma_parcial int = 999
 declare @str_acceso varchar(3) = '0,1'
 declare @str_estado varchar(1) = 'I'
 declare @periodo_desde int = dbo.PeriodoAnual()

 DECLARE @total_pendientes int


 SELECT @total_pendientes = SUM(SUMAS.total)
 FROM
   (SELECT count(*) as total
   FROM led_docs
   INNER JOIN clientes ON led_docs.cliente = clientes.cliente
   INNER JOIN led_contratos ON clientes.cliente = led_contratos.cliente
   INNER JOIN led_tipos_doc ON led_docs.tipo_doc = led_tipos_doc.tipo_doc
   INNER JOIN led_complejidad_doc on led_tipos_doc.complejidad = led_complejidad_doc.complejidad

   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_contratista_periodo ON (led_docs.contratista = led_contratista_periodo.contratista
             AND led_docs.periodo = led_contratista_periodo.periodo)

   INNER JOIN led_contratista_multi ON led_docs.contratista = led_contratista_multi.contratista

   INNER JOIN led_cliente_contratista ON
    (led_docs.cliente = led_cliente_contratista.cliente
    AND led_docs.tipo_doc = led_cliente_contratista.tipo_doc
    AND led_contratista_multi.tipo_contratista = led_cliente_contratista.tipo_contratista
    AND led_cliente_contratista.activo = 1)

   INNER JOIN dbo.DelimitedSplit8K(@str_acceso, ',') acceso ON ISNULL(led_cliente_contratista.ci_killer, 0) = acceso.Item
   /*INNER JOIN dbo.DelimitedSplit8K(@str_parcial, ',') parciales ON ISNULL(led_docs.aprobacion_parcial, 0) = parciales.Item*/
   LEFT OUTER JOIN led_docs_aux aux on (led_docs.doc_id = aux.doc_id AND led_docs.doc_version = aux.doc_version)
   
   WHERE led_docs.led_seccion = 'C'
   AND led_docs.estado_doc = @str_estado
   AND led_docs.doc_id_lista IS NULL
   AND led_docs.periodo >= @periodo_desde
   AND ISNULL(led_docs.doc_version, 0) >= 0
   AND led_cliente_contratista.verificacion = 'F'
   AND (ISNULL(led_docs.aprobacion_parcial, 0) + ISNULL(led_docs.reapertura_por_alta, 0) + ISNULL(led_docs.parcial_actualizado, 0)) <> @suma_parcial
   AND led_docs.contratista = led_docs.contratista_1

   UNION ALL

   /* empleados */
   SELECT count(*) as total

   FROM led_docs
   INNER JOIN clientes ON led_docs.cliente = clientes.cliente
   INNER JOIN led_contratos ON clientes.cliente = led_contratos.cliente
   INNER JOIN led_tipos_doc ON led_docs.tipo_doc = led_tipos_doc.tipo_doc
   INNER JOIN led_complejidad_doc on led_tipos_doc.complejidad = led_complejidad_doc.complejidad

   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_empleados ON led_docs.empleado = led_empleados.empleado
   INNER JOIN padrones padrones_e ON led_empleados.id_padron = padrones_e.id_padron

   INNER JOIN led_empleados_periodo ON (led_docs.empleado = led_empleados_periodo.empleado
             AND led_docs.periodo = led_empleados_periodo.periodo)

   INNER JOIN led_cliente_empleado ON
    (led_docs.cliente = led_cliente_empleado.cliente
    AND led_docs.tipo_doc = led_cliente_empleado.tipo_doc
    AND led_empleados.tipo_empleado = led_cliente_empleado.tipo_empleado
    AND led_cliente_empleado.activo = 1)

   INNER JOIN dbo.DelimitedSplit8K(@str_acceso, ',') acceso ON ISNULL(led_cliente_empleado.ci_killer, 0) = acceso.Item

   LEFT OUTER JOIN led_docs_aux aux on (led_docs.doc_id = aux.doc_id AND led_docs.doc_version = aux.doc_version)

   WHERE led_docs.led_seccion = 'E'
   AND led_docs.estado_doc = @str_estado
   AND led_docs.doc_id_lista IS NULL
   AND led_docs.periodo >= @periodo_desde
   AND ISNULL(led_docs.doc_version, 0) >= 0
   AND led_cliente_empleado.verificacion = 'F'
   
   UNION ALL

   /* vehiculos */
   SELECT count(*) as total
   FROM led_docs
   INNER JOIN clientes ON led_docs.cliente = clientes.cliente
   INNER JOIN led_contratos ON clientes.cliente = led_contratos.cliente
   INNER JOIN led_tipos_doc ON led_docs.tipo_doc = led_tipos_doc.tipo_doc
   INNER JOIN led_complejidad_doc on led_tipos_doc.complejidad = led_complejidad_doc.complejidad

   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_vehiculos ON led_docs.vehiculo = led_vehiculos.vehiculo

   INNER JOIN led_vehiculos_periodo ON (led_docs.vehiculo = led_vehiculos_periodo.vehiculo
             AND led_docs.periodo = led_vehiculos_periodo.periodo)

   INNER JOIN led_cliente_vehiculo ON
    (led_docs.cliente = led_cliente_vehiculo.cliente
    AND led_docs.tipo_doc = led_cliente_vehiculo.tipo_doc
    AND led_vehiculos.tipo_vehiculo = led_cliente_vehiculo.tipo_vehiculo
    AND led_cliente_vehiculo.activo = 1)

   INNER JOIN dbo.DelimitedSplit8K(@str_acceso, ',') acceso ON ISNULL(led_cliente_vehiculo.ci_killer, 0) = acceso.Item
   LEFT OUTER JOIN led_docs_aux aux on (led_docs.doc_id = aux.doc_id AND led_docs.doc_version = aux.doc_version)

   WHERE led_docs.led_seccion = 'V'
   AND led_docs.estado_doc = @str_estado
   AND led_docs.doc_id_lista IS NULL
   AND led_docs.periodo >= @periodo_desde
   AND ISNULL(led_docs.doc_version, 0) >= 0
   AND led_cliente_vehiculo.verificacion = 'F'

   UNION ALL
   
   /* SUBcontratistas */ 
   SELECT count(*) as total
   FROM led_docs
   INNER JOIN clientes ON led_docs.cliente = clientes.cliente
   INNER JOIN led_contratos ON clientes.cliente = led_contratos.cliente
   INNER JOIN led_tipos_doc ON led_docs.tipo_doc = led_tipos_doc.tipo_doc
   INNER JOIN led_complejidad_doc on led_tipos_doc.complejidad = led_complejidad_doc.complejidad

   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_subcontratista_periodo ON (led_docs.contratista = led_subcontratista_periodo.subcontratista
             AND led_docs.periodo = led_subcontratista_periodo.periodo)

   INNER JOIN led_contratista_multi ON led_docs.contratista = led_contratista_multi.contratista

   INNER JOIN led_cliente_contratista ON
    (led_docs.cliente = led_cliente_contratista.cliente
    AND led_docs.tipo_doc = led_cliente_contratista.tipo_doc
    AND led_contratista_multi.tipo_contratista = led_cliente_contratista.tipo_contratista
    AND led_cliente_contratista.activo = 1)

   INNER JOIN dbo.DelimitedSplit8K(@str_acceso, ',') acceso ON ISNULL(led_cliente_contratista.ci_killer, 0) = acceso.Item
   /*INNER JOIN dbo.DelimitedSplit8K(@str_parcial, ',') parciales ON ISNULL(led_docs.aprobacion_parcial, 0) = parciales.Item*/
   LEFT OUTER JOIN led_docs_aux aux on (led_docs.doc_id = aux.doc_id AND led_docs.doc_version = aux.doc_version)

   WHERE led_docs.led_seccion = 'C'
   AND led_docs.estado_doc = @str_estado
   AND led_docs.doc_id_lista IS NULL
   AND led_docs.periodo >= @periodo_desde
   AND ISNULL(led_docs.doc_version, 0) >= 0
   AND led_cliente_contratista.verificacion = 'F'
   AND (ISNULL(led_docs.aprobacion_parcial, 0) + ISNULL(led_docs.reapertura_por_alta, 0) + ISNULL(led_docs.parcial_actualizado, 0)) <> @suma_parcial
   AND led_docs.contratista <> led_docs.contratista_1) SUMAS






 /*****************************************************************************************************************************/

    


 select CONVERT(VARCHAR,CONVERT(DATE,FECHA.fecha_control),103) as FECHA, 
   ISNULL(C1.ALTAS, 0) as ALTAS, ISNULL(C2.BAJAS, 0) as BAJAS, @total_pendientes AS TOTAL_PENDIENTES
 from
  (select fecha_control from #Fechas) FECHA

 left outer join

  (select count(*) as altas, convert(varchar(10), led_docs.ingresado,121) as fecha_alta
  from led_docs 
  where led_docs.ingresado between 
  convert(datetime, convert(date,getdate()-7)) and dateadd(second,-1, convert(datetime,convert(date,getdate())) )
  and led_docs.doc_id_lista IS NULL
  group by convert(varchar(10), led_docs.ingresado,121) ) C1 on FECHA.fecha_control = C1.fecha_alta


 left outer join 
  (select count(*) as bajas, convert(varchar(10), led_docs.verificado,121) as fecha_baja
  from led_docs 
  where led_docs.verificado between 
  convert(datetime, convert(date,getdate()-7)) and dateadd(second,-1, convert(datetime,convert(date,getdate())) )
  and led_docs.doc_id_lista IS NULL
  group by convert(varchar(10), led_docs.verificado,121) ) C2 on FECHA.fecha_control = C2.fecha_baja



 ORDER BY FECHA.fecha_control


 DROP TABLE #Fechas

END
GO

Used By

No items found