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
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
Depends On
12Used By
No items found