dbo.Imperium_reporte_semanal_LUIS

Description

Properties

Name Value
ANSI Nulls ON

True

Quoted Identifier ON

True

Encrypted

False

Execute As
Assembly

Parameters

3
Name Data Type Length Description
@cliente int 4
@periodo_desde int 4
@periodo_hasta int 4

SQL Script

Copy
SET QUOTED_IDENTIFIER, ANSI_NULLS ON
GO
/*


DECLARE @cliente int = 5546348
DECLARE @periodo_desde int = dbo.PeriodoAdelantado()
DECLARE @periodo_hasta int = dbo.PeriodoAdelantado()

exec Imperium_reporte_semanal_LUIS @cliente,@periodo_desde,@periodo_hasta

AMX
exec Imperium_reporte_semanal_LUIS 5546348,202103,202202

INC

exec Imperium_reporte_semanal_LUIS 2028732,202012,202111




*/


CREATE OR ALTER PROCEDURE  dbo.Imperium_reporte_semanal_LUIS 
@cliente int,
@periodo_desde int,
@periodo_hasta int

AS
BEGIN

DECLARE @periodo INT
DECLARE @periodoVigente INT

SET @periodo = convert(varchar(4),datepart(year,getdate())) + RIGHT('00' +convert(varchar(2),datepart(month,getdate())),2)

SET @periodoVigente = convert(varchar(4),datepart(year,DATEADD(month,-1,getdate()))) + RIGHT('00' +convert(varchar(2),datepart(month,DATEADD(month,-1,getdate()))),2)


SELECT clientes.nombre_cliente AS CLIENTE, 
led_tipos_contratista.nombre_tipo_contratista as ACTIVIDAD,
padrones_1.nombre_persona AS RAZON_SOCIAL, padrones_1.numero AS CUIT,
iif(led_contratistas.estado_contratista = 'A','Activo','No activo') AS ESTADO_CONTRATISTA,

/*CASE WHEN led_docs.contratista_1 <> led_docs.contratista then padrones.nombre_persona else NULL end as SUBCONTRATISTA,
CASE WHEN led_docs.contratista_1 <> led_docs.contratista then padrones.numero else NULL end as CUIT_SUBC,*/


NULL as SUBCONTRATISTA, NULL as CUIT_SUBC, NULL AS ESTADO_SUBCONT,

led_tipos_doc.nombre_tipo_doc as TIPO_DOCUMENTO, 

    SECCION = CASE led_docs.led_seccion
 WHEN 'C' THEN 'CONTRATISTAS'
 WHEN 'S' THEN 'SUB CONTRATISTAS'
 WHEN 'E' THEN 'EMPLEADOS'
 WHEN 'V' THEN 'VEHICULOS'
 END,

LEFT(CONVERT(VARCHAR,led_docs.periodo),4) as ANIO,
RIGHT(CONVERT(VARCHAR,led_docs.periodo),2) AS MES,

padrones_e.nombre_persona AS RECURSO,
padrones_e.numero AS CUIT_EMPLEADO,

NULL AS ESTADO_RECURSO,

ESTADO = CASE led_docs.estado_doc   
     WHEN 'N' THEN 'PENDIENTE DE ENVIO'
  WHEN 'R' THEN 'RECHAZADO'
  WHEN 'V' THEN 'RECIBIDO'
  WHEN 'I' THEN 'SIN VERIFICAR'
END,


@periodo_desde as CONSULTA_DESDE,
@periodo_hasta as CONSULTA_HASTA,
@periodoVigente as PERIODO_VIGENTE, case when led_docs.estado_doc = 'I' then 'SI' ELSE 'NO' END AS PENDIENTE_VERIFICAR,

/*CASE WHEN led_docs.estado_doc = 'R' then iif(led_docs.aprobacion_parcial = 1, 'SI', 'NO') else NULL end AS APROBADO_PARCIAL*/
CASE WHEN led_docs.estado_doc = 'I' THEN
 iif(led_docs.aprobacion_parcial = 1 and isnull(led_docs.parcial_actualizado,0)=0, 'SI',NULL)
ELSE
 NULL
END AS APROBADO_PARCIAL

FROM led_docs
inner join clientes on led_docs.cliente = clientes.cliente
inner join led_tipos_doc on led_docs.tipo_doc = led_tipos_doc.tipo_doc
inner join led_contratistas led_contratistas_1 on led_docs.contratista_1 = led_contratistas_1.contratista
inner join led_tipos_contratista on led_contratistas_1.tipo_contratista = led_tipos_contratista.tipo_contratista
inner join padrones padrones_1 on led_contratistas_1.id_padron = padrones_1.id_padron

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_cliente_contratista ON
 (led_docs.cliente = led_cliente_contratista.cliente
 and led_contratistas.tipo_contratista = led_cliente_contratista.tipo_contratista
 and led_docs.tipo_doc = led_cliente_contratista.tipo_doc)

inner join led_contratista_periodo on 
 (led_contratistas_1.contratista = led_contratista_periodo.contratista
 and led_docs.periodo = led_contratista_periodo.periodo)

left outer join led_empleados on led_docs.empleado = led_empleados.empleado
left outer join padrones AS padrones_e on led_empleados.id_padron = padrones_e.id_padron


WHERE led_docs.cliente = @cliente
AND led_docs.led_seccion = 'C' 
AND led_docs.doc_id_lista IS NULL
and led_docs.periodo BETWEEN @periodo_desde AND @periodo_hasta
and led_docs.estado_doc in ('N','R','I')
AND led_contratistas_1.estado_CONTRATISTA = 'A'
AND led_contratistas.contratista_1 = led_contratistas.contratista




UNION

/**** EMPLEADOS *****/
SELECT distinct clientes.nombre_cliente AS CLIENTE, 
led_tipos_contratista.nombre_tipo_contratista as ACTIVIDAD,
padrones_1.nombre_persona AS RAZON_SOCIAL, padrones_1.numero AS CUIT,

iif(led_contratistas.estado_contratista = 'A','Activo','No activo') AS ESTADO_CONTRATISTA,

CASE WHEN led_docs.contratista_1 <> led_docs.contratista then padrones.nombre_persona else NULL end as SUBCONTRATISTA,
CASE WHEN led_docs.contratista_1 <> led_docs.contratista then padrones.numero else NULL end as CUIT_SUBC,
CASE WHEN led_docs.contratista_1 <> led_docs.contratista then IIF(led_contratistaS.estado_contratista = 'A','Activo','No activo') else NULL end as ESTADO_SUBCONT,


led_tipos_doc.nombre_tipo_doc as TIPO_DOCUMENTO, 

    SECCION = CASE led_docs.led_seccion
 WHEN 'C' THEN 'CONTRATISTAS'
 WHEN 'S' THEN 'SUB CONTRATISTAS'
 WHEN 'E' THEN 'EMPLEADOS'
 WHEN 'V' THEN 'VEHICULOS'
 END,

LEFT(CONVERT(VARCHAR,led_docs.periodo),4) as ANIO,
RIGHT(CONVERT(VARCHAR,led_docs.periodo),2) AS MES,

padrones_e.nombre_persona AS RECURSO,
padrones_e.numero AS CUIT_EMPLEADO,

IIF(led_empleados.estado_empleado = 'A', 'Activo', 'No activo') AS ESTADO_RECURSO,

ESTADO = CASE led_docs.estado_doc   
     WHEN 'N' THEN 'PENDIENTE DE ENVIO'
  WHEN 'R' THEN 'RECHAZADO'
  WHEN 'V' THEN 'RECIBIDO'
  WHEN 'I' THEN 'PENDIENTE DE ENVIO'
END,


@periodo_desde as CONSULTA_DESDE,
@periodo_hasta as CONSULTA_HASTA,
@periodoVigente as PERIODO_VIGENTE, case when led_docs.estado_doc = 'I' then 'SI' ELSE 'NO' END AS PENDIENTE_VERIFICAR,
NULL AS APROBADO_PARCIAL

FROM led_docs
inner join clientes on led_docs.cliente = clientes.cliente
inner join led_tipos_doc on led_docs.tipo_doc = led_tipos_doc.tipo_doc

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_tipos_contratista on led_contratistas_1.tipo_contratista = led_tipos_contratista.tipo_contratista

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_empleados on led_docs.empleado = led_empleados.empleado
inner join padrones AS padrones_e on led_empleados.id_padron = padrones_e.id_padron
inner join led_cliente_empleado ON
 (led_docs.cliente = led_cliente_empleado.cliente
 and led_empleados.tipo_empleado = led_cliente_empleado.tipo_empleado
 and led_docs.tipo_doc = led_cliente_empleado.tipo_doc)


INNER JOIN led_contratista_periodo on 
 (led_docs.contratista_1 = led_contratista_periodo.contratista 
  and led_docs.periodo = led_contratista_periodo.periodo)


INNER JOIN led_empleados_periodo on (led_docs.empleado = led_empleados_periodo.empleado
         and led_docs.periodo = led_empleados_periodo.periodo)



WHERE led_docs.cliente = @cliente
AND led_docs.led_seccion = 'E' 
AND led_docs.doc_id_lista IS NULL
and led_docs.periodo BETWEEN @periodo_desde AND @periodo_hasta
and led_docs.estado_doc in ('N','R','I')
AND led_contratistas_1.estado_CONTRATISTA = 'A'
AND led_contratistas.estado_CONTRATISTA = 'A'
--and led_empleados.estado_empleado = 'A'
/*
AND led_docs.contratista=127
*/


UNION

/**** VEHICULOS ****/
SELECT distinct clientes.nombre_cliente AS CLIENTE, 
led_tipos_contratista.nombre_tipo_contratista as ACTIVIDAD,
padrones_1.nombre_persona AS RAZON_SOCIAL, padrones_1.numero AS CUIT,

iif(led_contratistas.estado_contratista = 'A','Activo','No activo') AS ESTADO_CONTRATISTA,

CASE WHEN led_docs.contratista_1 <> led_docs.contratista then padrones.nombre_persona else NULL end as SUBCONTRATISTA,
CASE WHEN led_docs.contratista_1 <> led_docs.contratista then padrones.numero else NULL end as CUIT_SUBC,
CASE WHEN led_docs.contratista_1 <> led_docs.contratista then IIF(led_contratistas.estado_contratista = 'A','Activo','No activo') else NULL end as ESTADO_SUBCONT,

led_tipos_doc.nombre_tipo_doc as TIPO_DOCUMENTO, 

    SECCION = CASE led_docs.led_seccion
 WHEN 'C' THEN 'CONTRATISTAS'
 WHEN 'S' THEN 'SUB CONTRATISTAS'
 WHEN 'E' THEN 'EMPLEADOS'
 WHEN 'V' THEN 'VEHICULOS'
 END,

LEFT(CONVERT(VARCHAR,led_docs.periodo),4) as ANIO,
RIGHT(CONVERT(VARCHAR,led_docs.periodo),2) AS MES,

led_vehiculos.dominio AS RECURSO,
NULL AS CUIT_EMPLEADO,

IIF(led_vehiculos.estado_vehiculo = 'A', 'Activo', 'No activo') AS ESTADO_RECURSO,

ESTADO = CASE led_docs.estado_doc   
     WHEN 'N' THEN 'PENDIENTE DE ENVIO'
  WHEN 'R' THEN 'RECHAZADO'
  WHEN 'V' THEN 'RECIBIDO'
  WHEN 'I' THEN 'PENDIENTE DE ENVIO'
END,


@periodo_desde as CONSULTA_DESDE,
@periodo_hasta as CONSULTA_HASTA,
@periodoVigente as PERIODO_VIGENTE, case when led_docs.estado_doc = 'I' then 'SI' ELSE 'NO' END AS PENDIENTE_VERIFICAR,
NULL AS APROBADO_PARCIAL

FROM led_docs
inner join clientes on led_docs.cliente = clientes.cliente
inner join led_tipos_doc on led_docs.tipo_doc = led_tipos_doc.tipo_doc

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_tipos_contratista on led_contratistas_1.tipo_contratista = led_tipos_contratista.tipo_contratista

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

inner join led_cliente_vehiculo ON
 (led_docs.cliente = led_cliente_vehiculo.cliente
 and led_vehiculos.tipo_vehiculo = led_cliente_vehiculo.tipo_vehiculo
 and led_docs.tipo_doc = led_cliente_vehiculo.tipo_doc)

INNER JOIN led_contratista_periodo on 
 (led_docs.contratista_1 = led_contratista_periodo.contratista 
  and led_docs.periodo = led_contratista_periodo.periodo)

INNER JOIN led_vehiculos_periodo on (led_docs.vehiculo = led_vehiculos_periodo.vehiculo
         and led_docs.periodo = led_vehiculos_periodo.periodo)


WHERE led_docs.cliente = @cliente
AND led_docs.led_seccion = 'V' 
AND led_docs.doc_id_lista IS NULL
and led_docs.periodo BETWEEN @periodo_desde AND @periodo_hasta
and led_docs.estado_doc in ('N','R','I')
AND led_contratistas_1.estado_CONTRATISTA = 'A'
AND led_contratistas.estado_CONTRATISTA = 'A'
--and led_vehiculos.estado_vehiculo = 'A'
/*
AND led_docs.contratista=127
*/


UNION


/**** SUBCONTRATISTAS ****/
SELECT distinct clientes.nombre_cliente AS CLIENTE, 
led_tipos_contratista.nombre_tipo_contratista as ACTIVIDAD,
padrones_1.nombre_persona AS RAZON_SOCIAL, padrones_1.numero AS CUIT,

iif(led_contratistas.estado_contratista = 'A','Activo','No activo') AS ESTADO_CONTRATISTA,

/*CASE WHEN led_docs.contratista_1 <> led_docs.contratista then padrones.nombre_persona else NULL end as SUBCONTRATISTA,
CASE WHEN led_docs.contratista_1 <> led_docs.contratista then padrones.numero else NULL end as CUIT_SUBC,*/


padrones.nombre_persona as SUBCONTRATISTA, padrones.numero as CUIT_SUBC,
IIF(led_contratistas.estado_contratista = 'A','Activo','No activo') as ESTADO_SUBCONT,

led_tipos_doc.nombre_tipo_doc AS TIPO_DOCUMENTO, 

    SECCION = CASE led_docs.led_seccion
 WHEN 'C' THEN 'CONTRATISTAS'
 WHEN 'S' THEN 'SUB CONTRATISTAS'
 WHEN 'E' THEN 'EMPLEADOS'
 WHEN 'V' THEN 'VEHICULOS'
 END,

LEFT(CONVERT(VARCHAR,led_docs.periodo),4) as ANIO,
RIGHT(CONVERT(VARCHAR,led_docs.periodo),2) AS MES,

padrones_e.nombre_persona AS RECURSO,
padrones_e.numero AS CUIT_EMPLEADO,

CASE 
 WHEN led_docs.led_seccion = 'E' then iif(led_empleados.estado_empleado = 'A','Activo','No activo')
 WHEN led_docs.led_seccion = 'V' then iif(led_vehiculos.estado_vehiculo = 'A','Activo','No activo')
 ELSE NULL
END AS ESTADO_RECURSO,


ESTADO = CASE led_docs.estado_doc   
     WHEN 'N' THEN 'PENDIENTE DE ENVIO'
  WHEN 'R' THEN 'RECHAZADO'
  WHEN 'V' THEN 'RECIBIDO'
  WHEN 'I' THEN 'PENDIENTE DE ENVIO'
END,


@periodo_desde as CONSULTA_DESDE,
@periodo_hasta as CONSULTA_HASTA,
@periodoVigente as PERIODO_VIGENTE, case when led_docs.estado_doc = 'I' then 'SI' ELSE 'NO' END AS PENDIENTE_VERIFICAR,

/*CASE WHEN led_docs.estado_doc = 'R' then iif(led_docs.aprobacion_parcial = 1, 'SI', 'NO') else NULL end AS APROBADO_PARCIAL*/
CASE WHEN led_docs.estado_doc = 'I' THEN
 iif(led_docs.aprobacion_parcial = 1 and isnull(led_docs.parcial_actualizado,0)=0, 'SI',NULL)
ELSE
 NULL
END AS APROBADO_PARCIAL


FROM led_docs
inner join clientes on led_docs.cliente = clientes.cliente
inner join led_tipos_doc on led_docs.tipo_doc = led_tipos_doc.tipo_doc

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_tipos_contratista on led_contratistas_1.tipo_contratista = led_tipos_contratista.tipo_contratista

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_cliente_contratista ON
 (led_docs.cliente = led_cliente_contratista.cliente
 and led_contratistas.tipo_contratista = led_cliente_contratista.tipo_contratista
 and led_docs.tipo_doc = led_cliente_contratista.tipo_doc)

inner join led_contratista_periodo on 
 (led_contratistas_1.contratista = led_contratista_periodo.contratista
 and led_docs.periodo = led_contratista_periodo.periodo)


inner join led_subcontratista_periodo on 
 (led_contratistas.contratista = led_subcontratista_periodo.subcontratista
 and led_docs.periodo = led_subcontratista_periodo.periodo)

left outer join led_empleados on led_docs.empleado = led_empleados.empleado
left outer join padrones AS padrones_e on led_empleados.id_padron = padrones_e.id_padron

left outer join led_vehiculos on led_docs.vehiculo = led_vehiculos.vehiculo

WHERE led_docs.cliente = @cliente
AND led_docs.led_seccion = 'C' 
AND led_docs.doc_id_lista IS NULL
and led_docs.periodo BETWEEN @periodo_desde AND @periodo_hasta
and led_docs.estado_doc in ('N','R','I')
AND led_contratistas.estado_contratista = 'A'
AND led_contratistas_1.estado_CONTRATISTA = 'A'
AND led_contratistas.contratista_1 <> led_contratistas.contratista

/*
AND led_docs.contratista=127
*/




ORDER BY razon_social asc , cliente asc, actividad asc, subcontratista asc,  led_tipos_doc.nombre_tipo_doc asc, anio, mes asc, recurso asc



END

GO

Used By

No items found