dbo.Imperium_reporte_facturacion

Description

Properties

Name Value
ANSI Nulls ON

True

Quoted Identifier ON

True

Encrypted

False

Execute As
Assembly

Parameters

5
Name Data Type Length Description
@cliente int 4
@periodo int 4
@accion varchar 20
@desde date 3
@hasta date 3

SQL Script

Copy
SET QUOTED_IDENTIFIER, ANSI_NULLS ON
GO

/*

exec Imperium_reporte_facturacion 2046807993,dbo.PeriodoAdelantado()


exec Imperium_reporte_facturacion 3915936,202401,'REPORTE_FECHA','2022-03-27','2024-07-25'
exec Imperium_reporte_facturacion 7048064,202401,'REPORTE_FECHA','2024-06-27','2024-07-25'
exec Imperium_reporte_facturacion 2046807993,202401,'REPORTE_FECHA','2024-06-25','2024-07-25' 
exec Imperium_reporte_facturacion 2028732,202401,'REPORTE_FECHA','2024-06-25','2024-07-25' 
exec Imperium_reporte_facturacion 211344097,202401,'REPORTE_FECHA','2024-06-25','2024-07-25' 
exec Imperium_reporte_facturacion 528397,202401,'REPORTE_FECHA','2024-06-25','2024-07-25' 
exec Imperium_reporte_facturacion 1758083682,202401,'REPORTE_FECHA','2024-06-25','2024-07-25' 
exec Imperium_reporte_facturacion 1564570,202401,'REPORTE_FECHA','2024-06-25','2024-07-25' 
exec Imperium_reporte_facturacion 1226057645,202401,'REPORTE_FECHA','2024-06-25','2024-07-25' 
exec Imperium_reporte_facturacion 9936068,null,'REPORTE_FECHA','2024-06-25','2024-07-25' 


exec Imperium_reporte_facturacion 3915936,202406,null,null,null
exec Imperium_reporte_facturacion 3915936,202407,null,null,null

*/


CREATE OR ALTER PROCEDURE  dbo.Imperium_reporte_facturacion 
@cliente int,
@periodo int,
@accion varchar(20) = null,
@desde date = null,
@hasta date = null

/*,
@ESTADO VARCHAR(1)
*/

AS
BEGIN


if (@accion = 'REPORTE_FECHA')
BEGIN
    select distinct led_contratistas.estado_contratista, padrones.numero as cuit_contratista, padrones.nombre_persona nombre_contratista,
  clientes.nombre_cliente,
  led_tipos_contratista.nombre_tipo_contratista as tipo_contratista,
  users.first_name AS nombre_usuario, users.last_name as apellido_usuario, users.email, users.username as usuario,  
  padron_1.nombre_persona AS nombre__contratista_principal, 
  padron_1.numero AS cuit_contratista_principal,
   ISNULL(sc.subcontratistas, 0) AS subcontratistas, 
   ISNULL(em.empleados, 0) AS empleados,
   ISNULL(veh.vehiculos, 0) AS vehiculos,
   ISNULL(sc.subcontratistas, 0) + ISNULL(em.empleados, 0) + ISNULL(veh.vehiculos, 0) + 1 AS total_recursos
,iif(periodo_c.contratista is null,'NO FACTURAR EN PERIODO','FACTURAR') AS SE_FACTURA
-- ,periodo_c.contratista AS ccccc

  from led_contratistas inner join padrones on led_contratistas.id_padron = padrones.id_padron
  inner join identificadores on padrones.identificador = identificadores.identificador
  inner join clientes on led_contratistas.cliente = clientes.cliente
  inner join led_tipos_contratista on led_contratistas.tipo_contratista = led_tipos_contratista.tipo_contratista

  
  inner join led_contratistas AS contratista_1 on led_contratistas.contratista_1 = contratista_1.contratista
  inner join padrones as padron_1 on contratista_1.id_padron = padron_1.id_padron
  inner join identificadores as identificador_1 on padron_1.identificador = identificador_1.identificador
  
  left join led_contratista_periodo AS periodo_c on periodo_c.contratista = led_contratistas.contratista
  
  left outer join led_contratistas AS contratista_d on led_contratistas.subcontratista_de = contratista_d.contratista
  left outer join padrones as padron_d on contratista_d.id_padron = padron_d.id_padron
  left outer join identificadores as identificador_d on padron_d.identificador = identificador_d.identificador


  left outer join users on led_contratistas.user_id = users.user_id
  
  


   LEFT OUTER JOIN
    (select led_contratistas.contratista_1, COUNT(*) as subcontratistas
    from led_contratistas inner join led_subcontratista_periodo
    on led_contratistas.contratista = led_subcontratista_periodo.subcontratista
    where led_contratistas.estado_contratista in ('A','N')
    --and led_subcontratista_periodo.periodo = @periodo 
                and led_subcontratista_periodo.fecha_afectacion between @desde and @hasta 
     and led_contratistas.cliente = @cliente 
    and led_contratistas.contratista_1 <> led_contratistas.contratista
    group by led_contratistas.contratista_1) sc 
   ON led_contratistas.contratista = sc.contratista_1
   
   /*
    LEFT OUTER JOIN
    (select led_empleados.contratista_1, COUNT(*) AS empleados
    from led_empleados inner join led_empleados_periodo
    on led_empleados.empleado = led_empleados_periodo.empleado
    where led_empleados.estado_empleado = 'A'
    and led_empleados_periodo.periodo = @periodo 
    and led_empleados.cliente = @cliente 
    group by led_empleados.contratista_1) em
    */


    LEFT OUTER JOIN (
    select led_empleados.contratista_1, count(*) AS empleados
                                                from led_empleados inner join led_empleados_periodo
                                                on led_empleados.empleado = led_empleados_periodo.empleado
                                                where led_empleados_periodo.fecha_afectacion between @desde and @hasta 
                                                -- led_empleados_periodo.periodo = @periodo
                                                and led_empleados.estado_empleado in ('A','N')
                                                group by led_empleados.contratista_1) em



   ON led_contratistas.contratista = em.contratista_1
   
   LEFT OUTER JOIN
    (select led_vehiculos.contratista_1, COUNT(*) AS vehiculos
    from led_vehiculos inner join led_vehiculos_periodo
    on led_vehiculos.vehiculo = led_vehiculos_periodo.vehiculo
    where led_vehiculos.estado_vehiculo in ('A','N')
    --and led_vehiculos_periodo.periodo = @periodo 
                 and led_vehiculos_periodo.fecha_afectacion between @desde and @hasta 
     and led_vehiculos.cliente = @cliente 
    group by led_vehiculos.contratista_1) veh
   ON led_contratistas.contratista = veh.contratista_1
   
  where
   led_contratistas.cliente = @cliente and
   led_contratistas.subcontratista_de IS NULL
   and led_contratistas.estado_contratista in ('A','N')
   --and periodo_c.periodo in (@periodo)
            and periodo_c.fecha_afectacion between @desde and @hasta 
/*
AND led_contratistas.contratista = 3522
*/

  order by padrones.nombre_persona


return
END

select led_contratistas.estado_contratista, padrones.numero as cuit_contratista, padrones.nombre_persona nombre_contratista,
  clientes.nombre_cliente,
  led_tipos_contratista.nombre_tipo_contratista as tipo_contratista,
  users.first_name AS nombre_usuario, users.last_name as apellido_usuario, users.email, users.username as usuario,  
  padron_1.nombre_persona AS nombre__contratista_principal, 
  padron_1.numero AS cuit_contratista_principal,
   ISNULL(sc.subcontratistas, 0) AS subcontratistas, 
   ISNULL(em.empleados, 0) AS empleados,
   ISNULL(veh.vehiculos, 0) AS vehiculos,
   ISNULL(sc.subcontratistas, 0) + ISNULL(em.empleados, 0) + ISNULL(veh.vehiculos, 0) + 1 AS total_recursos
,iif(periodo_c.contratista is null,'NO FACTURAR EN PERIODO','FACTURAR') AS SE_FACTURA,periodo_c.contratista AS ccccc

  from led_contratistas inner join padrones on led_contratistas.id_padron = padrones.id_padron
  inner join identificadores on padrones.identificador = identificadores.identificador
  inner join clientes on led_contratistas.cliente = clientes.cliente
  inner join led_tipos_contratista on led_contratistas.tipo_contratista = led_tipos_contratista.tipo_contratista

  
  inner join led_contratistas AS contratista_1 on led_contratistas.contratista_1 = contratista_1.contratista
  inner join padrones as padron_1 on contratista_1.id_padron = padron_1.id_padron
  inner join identificadores as identificador_1 on padron_1.identificador = identificador_1.identificador
  
  left join led_contratista_periodo AS periodo_c on periodo_c.contratista = led_contratistas.contratista
  
  left outer join led_contratistas AS contratista_d on led_contratistas.subcontratista_de = contratista_d.contratista
  left outer join padrones as padron_d on contratista_d.id_padron = padron_d.id_padron
  left outer join identificadores as identificador_d on padron_d.identificador = identificador_d.identificador


  left outer join users on led_contratistas.user_id = users.user_id
  
  


   LEFT OUTER JOIN
    (select led_contratistas.contratista_1, COUNT(*) as subcontratistas
    from led_contratistas inner join led_subcontratista_periodo
    on led_contratistas.contratista = led_subcontratista_periodo.subcontratista
    where led_contratistas.estado_contratista in ('A','N')
    and led_subcontratista_periodo.periodo = @periodo 
     and led_contratistas.cliente = @cliente 
    and led_contratistas.contratista_1 <> led_contratistas.contratista
    group by led_contratistas.contratista_1) sc 
   ON led_contratistas.contratista = sc.contratista_1
   
   /*
    LEFT OUTER JOIN
    (select led_empleados.contratista_1, COUNT(*) AS empleados
    from led_empleados inner join led_empleados_periodo
    on led_empleados.empleado = led_empleados_periodo.empleado
    where led_empleados.estado_empleado = 'A'
    and led_empleados_periodo.periodo = @periodo 
    and led_empleados.cliente = @cliente 
    group by led_empleados.contratista_1) em
    */


    LEFT OUTER JOIN (
    select led_empleados.contratista_1, count(*) AS empleados
                                                from led_empleados inner join led_empleados_periodo
                                                on led_empleados.empleado = led_empleados_periodo.empleado
                                                where led_empleados_periodo.periodo = @periodo
                                                and led_empleados.estado_empleado in ('A','N')
                                                group by led_empleados.contratista_1) em



   ON led_contratistas.contratista = em.contratista_1
   
   LEFT OUTER JOIN
    (select led_vehiculos.contratista_1, COUNT(*) AS vehiculos
    from led_vehiculos inner join led_vehiculos_periodo
    on led_vehiculos.vehiculo = led_vehiculos_periodo.vehiculo
    where led_vehiculos.estado_vehiculo in ('A','N')
    and led_vehiculos_periodo.periodo = @periodo 
     and led_vehiculos.cliente = @cliente 
    group by led_vehiculos.contratista_1) veh
   ON led_contratistas.contratista = veh.contratista_1
   
  where
   led_contratistas.cliente = @cliente and
   led_contratistas.subcontratista_de IS NULL
   and led_contratistas.estado_contratista in ('A','N')
   and periodo_c.periodo in (@periodo)
/*
AND led_contratistas.contratista = 3522
*/

  order by padrones.nombre_persona


END

GO

Used By

No items found