dbo.Imperium_Reporte_Recursos

Description

Properties

Name Value
ANSI Nulls ON

True

Quoted Identifier ON

True

Encrypted

False

Execute As
Assembly

Parameters

5
Name Data Type Length Description
@p_cliente int 4
@p_periodo int 4
@p_seccion varchar 2
@p_contratista varchar -1
@p_periodo2 int 4

SQL Script

Copy
SET QUOTED_IDENTIFIER, ANSI_NULLS ON
GO

/*

exec Imperium_Reporte_Recursos 1226057645, 202209,'C','182890,182889,182892,182893'
exec Imperium_Reporte_Recursos 1226057645, 202209,'E','182890,182889,182892,182893'
exec Imperium_Reporte_Recursos 1226057645, 202209,'V','182890,182889,182892,182893'
exec Imperium_Reporte_Recursos 1226057645, 202409,'EH',null,null 


@p_seccion = 'EH' -- REPORTE DE EMPLEADOS HISTORICO

*/

CREATE OR ALTER PROCEDURE dbo.Imperium_Reporte_Recursos 
 -- Add the parameters for the stored procedure here
 @p_cliente int,
 @p_periodo int,
 @p_seccion varchar(2),
 @p_contratista varchar(max),
    @p_periodo2 int = null
 
AS
BEGIN
 SET NOCOUNT ON;

if (@p_periodo2 is null)
BEGIN
    
    --set @p_periodo2 = dbo.PeriodoAdelantado()
 set @p_periodo2 = @p_periodo
END

if (@p_seccion = 'S')
begin
select p1.nombre_persona AS SUBCONTRATISTA,
    i1.abreviatura as IDENT, p1.numero AS CUIT,
    t1.nombre_tipo_contratista as TIPO_SUBCONTRATISTA,
    CASE WHEN c1.estado_contratista = 'A' THEN 'Activo' ELSE 'No activo' END AS ESTADO_SUBC,
    p0.nombre_persona AS CONTRATISTA,
    i0.abreviatura + ' ' + p0.numero as IDENTIFICACION,
    t0.nombre_tipo_contratista as TIPO_CONTRATISTA ,SECTOR.nombre_corto as sector,TIPSERV.nombre_corto as tipo_servicio
/* CASE WHEN c1.contratista_1 <> c1.subcontratista_de THEN
pd.nombre_persona ELSE NULL END as SUBCONTRATISTA_DE,
CASE WHEN c1.contratista_1 <> c1.subcontratista_de THEN
CASE WHEN c0.estado_contratista = 'A' THEN 'Activo' ELSE 'No activo' END ELSE NULL END AS ESTADO_CONTR
*/

    FROM led_contratistas c1
    inner join padrones p1 on c1.id_padron = p1.id_padron
    inner join identificadores i1 on p1.identificador = i1.identificador
    inner join led_tipos_contratista t1 on c1.tipo_contratista = t1.tipo_contratista
    inner join led_subcontratista_periodo sp on c1.contratista = sp.subcontratista
    inner join led_contratistas c0 on c1.contratista_1 = c0.contratista
    inner join led_tipos_contratista t0 on c0.tipo_contratista = t0.tipo_contratista
    inner join padrones p0 on c0.id_padron = p0.id_padron
    inner join identificadores i0 on p0.identificador = i0.identificador
    inner join ln_contrapartes on c1.contratista_1=LN_contrapartes.id_imperium    
    left outer join led_contratistas s on c1.subcontratista_de = s.contratista
    left outer join padrones pd on s.id_padron = pd.id_padron
    inner join dbo.DelimitedSplit8K(@p_contratista, ',') tipos ON ln_contrapartes.contraparte = tipos.Item

    left join LN_cliente_datos_privados TIPSERV on (LN_contrapartes.cliente=TIPSERV.cliente and TIPSERV.idReg = ln_contrapartes.idTipoServicioPriv) 
    left join LN_cliente_datos_privados SECTOR on (LN_contrapartes.cliente=SECTOR.cliente and SECTOR.idReg = ln_contrapartes.idSectorPriv)

    where c1.cliente = @p_cliente
    and sp.periodo between @p_periodo and @p_periodo2
/* <cfif tipoc neq "">
and c0.tipo_contratista = #tipoc#
</cfif>
*/

    --AND c1.contratista_1 IN (select dbo.DelimitedSplit8K(@p_contratista, ',') --(@p_contratista)
end
if (@p_seccion = 'C')
begin
   select p.nombre_persona AS CONTRATISTA,
    i.abreviatura as IDENT, p.numero AS CUIT,

    c.codigo_interno as CODIGO_INTERNO,
    users.first_name + ' ' + users.last_name  as CONTACTO,
    users.email as EMAIL,
    c.telefonos as TELEFONOS,


    t.nombre_tipo_contratista AS TIPO_CONTRATISTA,
    CASE WHEN c.estado_contratista = 'A' THEN 'Activo' ELSE 'No activo' END AS ESTADO,SECTOR.nombre_corto as sector,TIPSERV.nombre_corto as tipo_servicio

    FROM led_contratistas c inner join padrones p on c.id_padron = p.id_padron
    inner join led_tipos_contratista t on c.tipo_contratista = t.tipo_contratista
    inner join identificadores i on p.identificador = i.identificador
    inner join led_contratista_periodo cp on c.contratista = cp.contratista
    LEFT OUTER JOIN users on c.user_id = users.user_id
    inner join ln_contrapartes on c.contratista_1=LN_contrapartes.id_imperium 
    inner join dbo.DelimitedSplit8K(@p_contratista, ',') tipos ON ln_contrapartes.contraparte = tipos.Item

--select ln_contrapartes.contraparte,SECTOR.nombre_corto as sector,TIPSERV.nombre_corto as tipo_servicio 

    left join LN_cliente_datos_privados TIPSERV on (LN_contrapartes.cliente=TIPSERV.cliente and TIPSERV.idReg = ln_contrapartes.idTipoServicioPriv) 
    left join LN_cliente_datos_privados SECTOR on (LN_contrapartes.cliente=SECTOR.cliente and SECTOR.idReg = ln_contrapartes.idSectorPriv)


    where c.cliente = @p_cliente
    
                and cp.periodo between @p_periodo and @p_periodo2

--select * from ln_contrapartes where contraparte in (159680,159897,159687)

    --and c.contratista IN (@p_contratista)

end

if (@p_seccion = 'E')
begin
select p.nombre_persona AS EMPLEADO,
    i.abreviatura as IDENT, p.numero AS CUIT,
    te.nombre_tipo_empleado as TIPO_EMPLEADO,
    CASE WHEN e.estado_empleado = 'A' THEN 'Activo' ELSE 'No activo' END AS ESTADO,
    CONVERT(date, e.alta_afip, 121) AS ALTA_AFIPA, 
    CONVERT(date, e.baja_afip, 121) AS BAJA_AFIPA,

    CONVERT(varchar(10), e.alta_afip, 103) AS ALTA_AFIP, 
    CONVERT(varchar(10), e.baja_afip, 103) AS BAJA_AFIP,

    p1.nombre_persona as CONTRATISTA,
    i1.abreviatura + ' ' + p1.numero AS IDENTIFICACION,
    tc.nombre_tipo_contratista AS TIPO_CONTRATISTA,
    CASE WHEN c.estado_contratista = 'A' THEN 'Activo' ELSE 'No activo' END AS ESTADO_CONTR,
    CASE WHEN e.contratista_1 <> e.contratista 
    THEN ps.nombre_persona ELSE NULL END AS SUBCONTRATISTA,
    CASE WHEN e.contratista_1 <> e.contratista 
    THEN CASE WHEN s.estado_contratista = 'A' THEN 'Activo' ELSE 'No activo' END ELSE NULL END AS ESTADO_SUBC,
    e.domicilio_trabajo AS DOMICILIO_DE_TRABAJO,SECTOR.nombre_corto as sector,TIPSERV.nombre_corto as tipo_servicio,convert(varchar(10),e.alta_servicio,103) as alta_servicio 
    --alter table led_empleados add alta_servicio date null

    FROM led_empleados e inner join padrones p on e.id_padron = p.id_padron
    inner join led_tipos_empleado te on e.tipo_empleado = te.tipo_empleado
    inner join led_contratistas c on e.contratista_1 = c.contratista
    inner join led_tipos_contratista tc on c.tipo_contratista = tc.tipo_contratista
    inner join identificadores i on p.identificador = i.identificador
    inner join led_empleados_periodo ep on e.empleado = ep.empleado
    inner join padrones p1 on c.id_padron = p1.id_padron
    inner join identificadores i1 on p1.identificador = i1.identificador
    
    inner join led_contratistas s on e.contratista = s.contratista
    inner join padrones ps on s.id_padron = ps.id_padron
    inner join ln_contrapartes on c.contratista_1=LN_contrapartes.id_imperium 
    inner join dbo.DelimitedSplit8K(@p_contratista, ',') tipos ON ln_contrapartes.contraparte = tipos.Item

   
    left join LN_cliente_datos_privados TIPSERV on (LN_contrapartes.cliente=TIPSERV.cliente and TIPSERV.idReg = ln_contrapartes.idTipoServicioPriv) 
    left join LN_cliente_datos_privados SECTOR on (LN_contrapartes.cliente=SECTOR.cliente and SECTOR.idReg = ln_contrapartes.idSectorPriv)

    where c.cliente = @p_cliente
    and ep.periodo between @p_periodo and @p_periodo2
-- and e.contratista_1 IN (@p_contratista)

END



if (@p_seccion = 'E1') -- Solo empleados del contratista 
begin
select p.nombre_persona AS EMPLEADO,
    i.abreviatura as IDENT, p.numero AS CUIT,
    te.nombre_tipo_empleado as TIPO_EMPLEADO,
    CASE WHEN e.estado_empleado = 'A' THEN 'Activo' ELSE 'No activo' END AS ESTADO,
    CONVERT(date, e.alta_afip, 121) AS ALTA_AFIPA, 
    CONVERT(date, e.baja_afip, 121) AS BAJA_AFIPA,

    CONVERT(varchar(10), e.alta_afip, 103) AS ALTA_AFIP, 
    CONVERT(varchar(10), e.baja_afip, 103) AS BAJA_AFIP,

    p1.nombre_persona as CONTRATISTA,
    i1.abreviatura + ' ' + p1.numero AS IDENTIFICACION,
    tc.nombre_tipo_contratista AS TIPO_CONTRATISTA,
    CASE WHEN c.estado_contratista = 'A' THEN 'Activo' ELSE 'No activo' END AS ESTADO_CONTR,
    CASE WHEN e.contratista_1 <> e.contratista 
    THEN ps.nombre_persona ELSE NULL END AS SUBCONTRATISTA,
    CASE WHEN e.contratista_1 <> e.contratista 
    THEN CASE WHEN s.estado_contratista = 'A' THEN 'Activo' ELSE 'No activo' END ELSE NULL END AS ESTADO_SUBC,
    e.domicilio_trabajo AS DOMICILIO_DE_TRABAJO,SECTOR.nombre_corto as sector,TIPSERV.nombre_corto as tipo_servicio,convert(varchar(10),e.alta_servicio,103) as alta_servicio 
    --alter table led_empleados add alta_servicio date null

    FROM led_empleados e inner join padrones p on e.id_padron = p.id_padron
    inner join led_tipos_empleado te on e.tipo_empleado = te.tipo_empleado
    inner join led_contratistas c on e.contratista_1 = c.contratista
    inner join led_tipos_contratista tc on c.tipo_contratista = tc.tipo_contratista
    inner join identificadores i on p.identificador = i.identificador
    inner join led_empleados_periodo ep on e.empleado = ep.empleado
    inner join padrones p1 on c.id_padron = p1.id_padron
    inner join identificadores i1 on p1.identificador = i1.identificador
    
    inner join led_contratistas s on e.contratista = s.contratista
    inner join padrones ps on s.id_padron = ps.id_padron
    inner join ln_contrapartes on c.contratista_1=LN_contrapartes.id_imperium 
    inner join dbo.DelimitedSplit8K(@p_contratista, ',') tipos ON ln_contrapartes.contraparte = tipos.Item

   
    left join LN_cliente_datos_privados TIPSERV on (LN_contrapartes.cliente=TIPSERV.cliente and TIPSERV.idReg = ln_contrapartes.idTipoServicioPriv) 
    left join LN_cliente_datos_privados SECTOR on (LN_contrapartes.cliente=SECTOR.cliente and SECTOR.idReg = ln_contrapartes.idSectorPriv)

    where c.cliente = @p_cliente
    and ep.periodo between @p_periodo and @p_periodo2
    and e.contratista_1 = e.contratista 

END


if (@p_seccion = 'EH') -- REPORTE DE EMPLEADOS HISTORICO
begin

    select distinct p.nombre_persona AS EMPLEADO,
    i.abreviatura as IDENT, p.numero AS CUIT,
    te.nombre_tipo_empleado as TIPO_EMPLEADO,
    CASE WHEN e.estado_empleado = 'A' THEN 'Activo' ELSE 'No activo' END AS ESTADO,
    CONVERT(date, e.alta_afip, 121) AS ALTA_AFIPA,
    CONVERT(date, e.baja_afip, 121) AS BAJA_AFIPA,
    CONVERT(varchar(10), e.alta_afip, 103) AS ALTA_AFIP,
    CONVERT(varchar(10), e.baja_afip, 103) AS BAJA_AFIP,
    p1.nombre_persona as CONTRATISTA,
    i1.abreviatura + ' ' + p1.numero AS IDENTIFICACION,
    tc.nombre_tipo_contratista AS TIPO_CONTRATISTA,
    CASE WHEN c.estado_contratista = 'A' THEN 'Activo' ELSE 'No activo' END AS ESTADO_CONTR,
    CASE WHEN e.contratista_1 <> e.contratista
    THEN ps.nombre_persona ELSE NULL END AS SUBCONTRATISTA,
    CASE WHEN e.contratista_1 <> e.contratista
    THEN CASE WHEN s.estado_contratista = 'A' THEN 'Activo' ELSE 'No activo' END ELSE NULL END AS ESTADO_SUBC,
    e.domicilio_trabajo AS DOMICILIO_DE_TRABAJO,SECTOR.nombre_corto as sector,TIPSERV.nombre_corto as tipo_servicio,convert(varchar(10),e.alta_servicio,103) as alta_servicio
    FROM led_empleados e inner join padrones p on e.id_padron = p.id_padron
    inner join led_tipos_empleado te on e.tipo_empleado = te.tipo_empleado
    inner join led_contratistas c on e.contratista_1 = c.contratista
    inner join led_tipos_contratista tc on c.tipo_contratista = tc.tipo_contratista
    inner join identificadores i on p.identificador = i.identificador
    inner join led_empleados_periodo ep on e.empleado = ep.empleado
    inner join padrones p1 on c.id_padron = p1.id_padron
    inner join identificadores i1 on p1.identificador = i1.identificador
    inner join led_contratistas s on e.contratista = s.contratista
    inner join padrones ps on s.id_padron = ps.id_padron
    inner join ln_contrapartes on c.contratista_1=LN_contrapartes.id_imperium
    left join LN_cliente_datos_privados TIPSERV on (LN_contrapartes.cliente=TIPSERV.cliente and TIPSERV.idReg = ln_contrapartes.idTipoServicioPriv)
    left join LN_cliente_datos_privados SECTOR on (LN_contrapartes.cliente=SECTOR.cliente and SECTOR.idReg = ln_contrapartes.idSectorPriv)

    where c.cliente = @p_cliente
    and ep.periodo between 202001 and dbo.PeriodoAdelantado()

    order by EMPLEADO

END 




if (@p_seccion = 'V')
begin

select v.nombre_vehiculo AS VEHICULO,
    v.dominio AS DOMINIO, v.modelo AS MODELO,
    tv.nombre_tipo_vehiculo as TIPO_VEHICULO,v.tara as KILOS,v.tarimas as TARIMAS, 
    CASE WHEN v.estado_vehiculo = 'A' THEN 'Activo' ELSE 'No activo' END AS ESTADO,
    p1.nombre_persona as CONTRATISTA,
    i1.abreviatura + ' ' + p1.numero AS IDENTIFICACION,
    tc.nombre_tipo_contratista AS TIPO_CONTRATISTA,
    CASE WHEN c.estado_contratista = 'A' THEN 'Activo' ELSE 'No activo' END AS ESTADO_CONTR,
    CASE WHEN v.contratista_1 <> v.contratista 
    THEN ps.nombre_persona ELSE NULL END AS SUBCONTRATISTA,
    CASE WHEN v.contratista_1 <> v.contratista 
    THEN CASE WHEN s.estado_contratista = 'A' THEN 'Activo' ELSE 'No activo' END ELSE NULL END AS ESTADO_SUBC ,SECTOR.nombre_corto as sector,TIPSERV.nombre_corto as tipo_servicio 
    
    FROM led_vehiculos v 
    inner join led_tipos_vehiculo tv on v.tipo_vehiculo = tv.tipo_vehiculo
    inner join led_contratistas c on v.contratista_1 = c.contratista
    inner join led_tipos_contratista tc on c.tipo_contratista = tc.tipo_contratista
    inner join padrones p1 on c.id_padron = p1.id_padron
    inner join identificadores i1 on p1.identificador = i1.identificador
    inner join led_vehiculos_periodo vp on v.vehiculo = vp.vehiculo
    
    inner join led_contratistas s on v.contratista = s.contratista
    inner join padrones ps on s.id_padron = ps.id_padron
    inner join ln_contrapartes on c.contratista_1=LN_contrapartes.id_imperium 
    inner join dbo.DelimitedSplit8K(@p_contratista, ',') tipos ON ln_contrapartes.contraparte = tipos.Item

    
    left join LN_cliente_datos_privados TIPSERV on (LN_contrapartes.cliente=TIPSERV.cliente and TIPSERV.idReg = ln_contrapartes.idTipoServicioPriv) 
    left join LN_cliente_datos_privados SECTOR on (LN_contrapartes.cliente=SECTOR.cliente and SECTOR.idReg = ln_contrapartes.idSectorPriv)


    where c.cliente = @p_cliente
    and vp.periodo between @p_periodo and @p_periodo2
-- and v.contratista_1 IN (@p_contratista)


end

 
END
GO

Used By

No items found