Description
Properties
| Name | Value |
|---|---|
| ANSI Nulls ON | True |
| Quoted Identifier ON | True |
| Encrypted | False |
| Execute As | |
| Assembly |
Parameters
1| Name | Data Type | Length | Description |
|---|---|---|---|
| @p_cliente | int | 4 |
SQL Script
Copy
SET QUOTED_IDENTIFIER, ANSI_NULLS ON
GO
-- =============================================
-- Author: <Author,,Name>
-- Create date: <Create Date,,>
-- Description: <Description,,>
-- =============================================
/*
exec [Imperium_Estadistica_Cliente_Mensual] 7048064
*/
CREATE OR ALTER PROCEDUREdbo.Imperium_Estadistica_Cliente_Mensual
-- Add the parameters for the stored procedure here
@p_cliente int
AS
BEGIN
-- SET NOCOUNT ON added to prevent extra result sets from
-- interfering with SELECT statements.
SET NOCOUNT ON;
-- Insert statements for procedure here
SELECT LEFT(CONVERT(VARCHAR(6), DATA.periodo),4) + '-' + RIGHT(CONVERT(VARCHAR(6),DATA.periodo), 2) AS periodo,
DATA.contratista, DATA.cuit, DATA.nombre,
DATA.modalidad, DATA.estado_doc, SUM(DATA.total_docs) AS cantidad,
CASE
WHEN DATA.estado_doc = 'E' THEN 1
WHEN DATA.estado_doc = 'R' THEN 2
WHEN DATA.estado_doc = 'P' THEN 3
WHEN DATA.estado_doc = 'N' THEN 4
WHEN DATA.estado_doc = 'I' THEN 5
WHEN DATA.estado_doc = 'V' THEN 6
END AS orden,
DATEDIFF(MONTH, dbo.Periodo2Date(dbo.PeriodoAnual()), dbo.Periodo2Date(DATA.periodo))+1 AS IDX
FROM (
SELECT led_docs.periodo, led_docs.contratista,
padrones.numero as cuit, padrones.nombre_persona as nombre,
led_tipos_doc.modalidad,
led_docs.status_doc AS estado_doc, COUNT(*) AS total_docs
FROM led_docs INNER JOIN led_contratista_periodo ON
(led_docs.contratista = led_contratista_periodo.contratista
AND led_docs.periodo = led_contratista_periodo.periodo)
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_tipos_doc on led_docs.tipo_doc = led_tipos_doc.tipo_doc
INNER JOIN
(SELECT led_cliente_contratista.tipo_doc
FROM led_cliente_contratista
INNER JOIN led_contratistas
ON led_cliente_contratista.cliente = led_contratistas.cliente
INNER JOIN led_contratista_multi ON
(led_contratistas.contratista = led_contratista_multi.contratista
AND led_cliente_contratista.tipo_contratista = led_contratista_multi.tipo_contratista)
WHERE led_contratistas.cliente = @p_cliente
AND led_cliente_contratista.requiere_upload = 1
AND led_cliente_contratista.activo = 1
AND led_contratista_multi.activo = 1
AND led_contratista_multi.vigencia_desde <= GETDATE()
AND (led_contratista_multi.vigencia_hasta IS NULL OR led_contratista_multi.vigencia_hasta > GETDATE())
GROUP BY led_cliente_contratista.tipo_doc) CONFIG_TC ON led_docs.tipo_doc = CONFIG_TC.tipo_doc
WHERE led_docs.cliente = @p_cliente
AND led_docs.status_doc IN ('N', 'I', 'R', 'V', 'P', 'E')
AND led_docs.periodo BETWEEN dbo.PeriodoAnual() AND dbo.PeriodoAdelantado()
AND led_docs.led_seccion = 'C'
AND led_docs.doc_id_lista IS NULL
GROUP BY led_docs.periodo, led_docs.contratista, padrones.numero, padrones.nombre_persona,
led_tipos_doc.modalidad, led_docs.status_doc
UNION ALL
SELECT led_docs.periodo, led_docs.contratista,
padrones.numero as cuit, padrones.nombre_persona as nombre,
led_tipos_doc.modalidad,led_docs.status_doc AS estado_doc, COUNT(*) AS total_docs
FROM led_docs
INNER JOIN led_empleados_periodo ON
(led_docs.empleado = led_empleados_periodo.empleado
AND led_docs.periodo = led_empleados_periodo.periodo)
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_tipos_doc on led_docs.tipo_doc = led_tipos_doc.tipo_doc
INNER JOIN
(SELECT led_cliente_empleado.tipo_doc
FROM led_cliente_empleado INNER JOIN led_empleados
ON led_cliente_empleado.cliente = led_empleados.cliente
INNER JOIN led_empleado_multi ON
(led_empleados.empleado = led_empleado_multi.empleado
AND led_cliente_empleado.tipo_empleado = led_empleado_multi.tipo_empleado)
WHERE led_empleados.cliente = @p_cliente
AND led_cliente_empleado.requiere_upload = 1
AND led_cliente_empleado.activo = 1
AND led_empleado_multi.activo = 1
AND led_empleado_multi.vigencia_desde <= GETDATE()
AND (led_empleado_multi.vigencia_hasta IS NULL OR led_empleado_multi.vigencia_hasta > GETDATE())
GROUP BY led_cliente_empleado.tipo_doc) CONFIG_TE ON led_docs.tipo_doc = CONFIG_TE.tipo_doc
WHERE led_docs.cliente = @p_cliente
AND led_docs.status_doc IN ('N', 'I', 'R', 'V', 'P', 'E')
AND led_docs.periodo BETWEEN dbo.PeriodoAnual() AND dbo.PeriodoAdelantado()
AND led_docs.led_seccion = 'E'
AND led_docs.doc_id_lista IS NULL
GROUP BY led_docs.periodo, led_docs.contratista, padrones.numero, padrones.nombre_persona,
led_tipos_doc.modalidad, led_docs.status_doc
UNION ALL
SELECT led_docs.periodo, led_docs.contratista,
padrones.numero as cuit, padrones.nombre_persona as nombre,
led_tipos_doc.modalidad,led_docs.status_doc AS estado_doc, COUNT(*) AS total_docs
FROM led_docs
INNER JOIN led_vehiculos_periodo ON
(led_docs.vehiculo = led_vehiculos_periodo.vehiculo
AND led_docs.periodo = led_vehiculos_periodo.periodo)
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_tipos_doc on led_docs.tipo_doc = led_tipos_doc.tipo_doc
INNER JOIN
(SELECT led_cliente_vehiculo.tipo_doc
FROM led_cliente_vehiculo
INNER JOIN led_vehiculos ON
(led_cliente_vehiculo.cliente = led_vehiculos.cliente
AND led_cliente_vehiculo.tipo_vehiculo = led_vehiculos.tipo_vehiculo)
WHERE led_vehiculos.cliente = @p_cliente
AND led_cliente_vehiculo.requiere_upload = 1
AND led_cliente_vehiculo.activo = 1
GROUP BY led_cliente_vehiculo.tipo_doc) CONFIG_TV ON led_docs.tipo_doc = CONFIG_TV.tipo_doc
WHERE led_docs.cliente = @p_cliente
AND led_docs.status_doc IN ('N', 'I', 'R', 'V', 'P', 'E')
AND led_docs.periodo BETWEEN dbo.PeriodoAnual() AND dbo.PeriodoAdelantado()
AND led_docs.led_seccion = 'V'
AND led_docs.doc_id_lista IS NULL
GROUP BY led_docs.periodo, led_docs.contratista, padrones.numero, padrones.nombre_persona,
led_tipos_doc.modalidad, led_docs.status_doc
UNION ALL
SELECT led_docs.periodo, led_docs.contratista_1 as contratista,
padrones.numero as cuit, padrones.nombre_persona as nombre,
led_tipos_doc.modalidad, led_docs.status_doc, COUNT(*) AS total_docs
FROM led_docs
INNER JOIN led_subcontratista_periodo ON
(led_docs.contratista = led_subcontratista_periodo.subcontratista
AND led_docs.periodo = led_subcontratista_periodo.periodo)
INNER JOIN led_contratistas ON led_docs.contratista_1 = led_contratistas.contratista
INNER JOIN padrones ON led_contratistas.id_padron = padrones.id_padron
INNER JOIN led_tipos_doc on led_docs.tipo_doc = led_tipos_doc.tipo_doc
INNER JOIN
(SELECT led_cliente_contratista.tipo_doc
FROM led_cliente_contratista
INNER JOIN led_contratistas ON
(led_cliente_contratista.cliente = led_contratistas.cliente
AND led_cliente_contratista.tipo_contratista = led_contratistas.tipo_contratista)
WHERE led_contratistas.cliente = @p_cliente
AND led_contratistas.contratista_1 <> led_contratistas.contratista
AND led_cliente_contratista.requiere_upload = 1
AND led_cliente_contratista.activo = 1
GROUP BY led_cliente_contratista.tipo_doc) CONFIG_TS ON led_docs.tipo_doc = CONFIG_TS.tipo_doc
WHERE led_docs.cliente = @p_cliente
AND led_docs.status_doc IN ('N', 'I', 'R', 'V', 'P', 'E')
AND led_docs.periodo BETWEEN dbo.PeriodoAnual() AND dbo.PeriodoAdelantado()
AND led_docs.led_seccion = 'C'
AND led_docs.doc_id_lista IS NULL
GROUP BY led_docs.periodo, led_docs.contratista_1, padrones.numero, padrones.nombre_persona,
led_tipos_doc.modalidad, led_docs.status_doc
) DATA
GROUP BY DATA.periodo, DATA.contratista, DATA.cuit, DATA.nombre,
DATA.modalidad, DATA.estado_doc
ORDER BY DATA.periodo, DATA.nombre, DATA.modalidad, orden
END
GO
GO
-- =============================================
-- Author: <Author,,Name>
-- Create date: <Create Date,,>
-- Description: <Description,,>
-- =============================================
/*
exec [Imperium_Estadistica_Cliente_Mensual] 7048064
*/
CREATE OR ALTER PROCEDUREdbo.Imperium_Estadistica_Cliente_Mensual
-- Add the parameters for the stored procedure here
@p_cliente int
AS
BEGIN
-- SET NOCOUNT ON added to prevent extra result sets from
-- interfering with SELECT statements.
SET NOCOUNT ON;
-- Insert statements for procedure here
SELECT LEFT(CONVERT(VARCHAR(6), DATA.periodo),4) + '-' + RIGHT(CONVERT(VARCHAR(6),DATA.periodo), 2) AS periodo,
DATA.contratista, DATA.cuit, DATA.nombre,
DATA.modalidad, DATA.estado_doc, SUM(DATA.total_docs) AS cantidad,
CASE
WHEN DATA.estado_doc = 'E' THEN 1
WHEN DATA.estado_doc = 'R' THEN 2
WHEN DATA.estado_doc = 'P' THEN 3
WHEN DATA.estado_doc = 'N' THEN 4
WHEN DATA.estado_doc = 'I' THEN 5
WHEN DATA.estado_doc = 'V' THEN 6
END AS orden,
DATEDIFF(MONTH, dbo.Periodo2Date(dbo.PeriodoAnual()), dbo.Periodo2Date(DATA.periodo))+1 AS IDX
FROM (
SELECT led_docs.periodo, led_docs.contratista,
padrones.numero as cuit, padrones.nombre_persona as nombre,
led_tipos_doc.modalidad,
led_docs.status_doc AS estado_doc, COUNT(*) AS total_docs
FROM led_docs INNER JOIN led_contratista_periodo ON
(led_docs.contratista = led_contratista_periodo.contratista
AND led_docs.periodo = led_contratista_periodo.periodo)
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_tipos_doc on led_docs.tipo_doc = led_tipos_doc.tipo_doc
INNER JOIN
(SELECT led_cliente_contratista.tipo_doc
FROM led_cliente_contratista
INNER JOIN led_contratistas
ON led_cliente_contratista.cliente = led_contratistas.cliente
INNER JOIN led_contratista_multi ON
(led_contratistas.contratista = led_contratista_multi.contratista
AND led_cliente_contratista.tipo_contratista = led_contratista_multi.tipo_contratista)
WHERE led_contratistas.cliente = @p_cliente
AND led_cliente_contratista.requiere_upload = 1
AND led_cliente_contratista.activo = 1
AND led_contratista_multi.activo = 1
AND led_contratista_multi.vigencia_desde <= GETDATE()
AND (led_contratista_multi.vigencia_hasta IS NULL OR led_contratista_multi.vigencia_hasta > GETDATE())
GROUP BY led_cliente_contratista.tipo_doc) CONFIG_TC ON led_docs.tipo_doc = CONFIG_TC.tipo_doc
WHERE led_docs.cliente = @p_cliente
AND led_docs.status_doc IN ('N', 'I', 'R', 'V', 'P', 'E')
AND led_docs.periodo BETWEEN dbo.PeriodoAnual() AND dbo.PeriodoAdelantado()
AND led_docs.led_seccion = 'C'
AND led_docs.doc_id_lista IS NULL
GROUP BY led_docs.periodo, led_docs.contratista, padrones.numero, padrones.nombre_persona,
led_tipos_doc.modalidad, led_docs.status_doc
UNION ALL
SELECT led_docs.periodo, led_docs.contratista,
padrones.numero as cuit, padrones.nombre_persona as nombre,
led_tipos_doc.modalidad,led_docs.status_doc AS estado_doc, COUNT(*) AS total_docs
FROM led_docs
INNER JOIN led_empleados_periodo ON
(led_docs.empleado = led_empleados_periodo.empleado
AND led_docs.periodo = led_empleados_periodo.periodo)
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_tipos_doc on led_docs.tipo_doc = led_tipos_doc.tipo_doc
INNER JOIN
(SELECT led_cliente_empleado.tipo_doc
FROM led_cliente_empleado INNER JOIN led_empleados
ON led_cliente_empleado.cliente = led_empleados.cliente
INNER JOIN led_empleado_multi ON
(led_empleados.empleado = led_empleado_multi.empleado
AND led_cliente_empleado.tipo_empleado = led_empleado_multi.tipo_empleado)
WHERE led_empleados.cliente = @p_cliente
AND led_cliente_empleado.requiere_upload = 1
AND led_cliente_empleado.activo = 1
AND led_empleado_multi.activo = 1
AND led_empleado_multi.vigencia_desde <= GETDATE()
AND (led_empleado_multi.vigencia_hasta IS NULL OR led_empleado_multi.vigencia_hasta > GETDATE())
GROUP BY led_cliente_empleado.tipo_doc) CONFIG_TE ON led_docs.tipo_doc = CONFIG_TE.tipo_doc
WHERE led_docs.cliente = @p_cliente
AND led_docs.status_doc IN ('N', 'I', 'R', 'V', 'P', 'E')
AND led_docs.periodo BETWEEN dbo.PeriodoAnual() AND dbo.PeriodoAdelantado()
AND led_docs.led_seccion = 'E'
AND led_docs.doc_id_lista IS NULL
GROUP BY led_docs.periodo, led_docs.contratista, padrones.numero, padrones.nombre_persona,
led_tipos_doc.modalidad, led_docs.status_doc
UNION ALL
SELECT led_docs.periodo, led_docs.contratista,
padrones.numero as cuit, padrones.nombre_persona as nombre,
led_tipos_doc.modalidad,led_docs.status_doc AS estado_doc, COUNT(*) AS total_docs
FROM led_docs
INNER JOIN led_vehiculos_periodo ON
(led_docs.vehiculo = led_vehiculos_periodo.vehiculo
AND led_docs.periodo = led_vehiculos_periodo.periodo)
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_tipos_doc on led_docs.tipo_doc = led_tipos_doc.tipo_doc
INNER JOIN
(SELECT led_cliente_vehiculo.tipo_doc
FROM led_cliente_vehiculo
INNER JOIN led_vehiculos ON
(led_cliente_vehiculo.cliente = led_vehiculos.cliente
AND led_cliente_vehiculo.tipo_vehiculo = led_vehiculos.tipo_vehiculo)
WHERE led_vehiculos.cliente = @p_cliente
AND led_cliente_vehiculo.requiere_upload = 1
AND led_cliente_vehiculo.activo = 1
GROUP BY led_cliente_vehiculo.tipo_doc) CONFIG_TV ON led_docs.tipo_doc = CONFIG_TV.tipo_doc
WHERE led_docs.cliente = @p_cliente
AND led_docs.status_doc IN ('N', 'I', 'R', 'V', 'P', 'E')
AND led_docs.periodo BETWEEN dbo.PeriodoAnual() AND dbo.PeriodoAdelantado()
AND led_docs.led_seccion = 'V'
AND led_docs.doc_id_lista IS NULL
GROUP BY led_docs.periodo, led_docs.contratista, padrones.numero, padrones.nombre_persona,
led_tipos_doc.modalidad, led_docs.status_doc
UNION ALL
SELECT led_docs.periodo, led_docs.contratista_1 as contratista,
padrones.numero as cuit, padrones.nombre_persona as nombre,
led_tipos_doc.modalidad, led_docs.status_doc, COUNT(*) AS total_docs
FROM led_docs
INNER JOIN led_subcontratista_periodo ON
(led_docs.contratista = led_subcontratista_periodo.subcontratista
AND led_docs.periodo = led_subcontratista_periodo.periodo)
INNER JOIN led_contratistas ON led_docs.contratista_1 = led_contratistas.contratista
INNER JOIN padrones ON led_contratistas.id_padron = padrones.id_padron
INNER JOIN led_tipos_doc on led_docs.tipo_doc = led_tipos_doc.tipo_doc
INNER JOIN
(SELECT led_cliente_contratista.tipo_doc
FROM led_cliente_contratista
INNER JOIN led_contratistas ON
(led_cliente_contratista.cliente = led_contratistas.cliente
AND led_cliente_contratista.tipo_contratista = led_contratistas.tipo_contratista)
WHERE led_contratistas.cliente = @p_cliente
AND led_contratistas.contratista_1 <> led_contratistas.contratista
AND led_cliente_contratista.requiere_upload = 1
AND led_cliente_contratista.activo = 1
GROUP BY led_cliente_contratista.tipo_doc) CONFIG_TS ON led_docs.tipo_doc = CONFIG_TS.tipo_doc
WHERE led_docs.cliente = @p_cliente
AND led_docs.status_doc IN ('N', 'I', 'R', 'V', 'P', 'E')
AND led_docs.periodo BETWEEN dbo.PeriodoAnual() AND dbo.PeriodoAdelantado()
AND led_docs.led_seccion = 'C'
AND led_docs.doc_id_lista IS NULL
GROUP BY led_docs.periodo, led_docs.contratista_1, padrones.numero, padrones.nombre_persona,
led_tipos_doc.modalidad, led_docs.status_doc
) DATA
GROUP BY DATA.periodo, DATA.contratista, DATA.cuit, DATA.nombre,
DATA.modalidad, DATA.estado_doc
ORDER BY DATA.periodo, DATA.nombre, DATA.modalidad, orden
END
GO
Depends On
18- dbo.Periodo2Date
- dbo.PeriodoAdelantado
- dbo.PeriodoAnual
- dbo.led_cliente_contratista
- dbo.led_cliente_empleado
- dbo.led_cliente_vehiculo
- dbo.led_contratista_multi
- dbo.led_contratista_periodo
- dbo.led_contratistas
- dbo.led_docs
- dbo.led_empleado_multi
- dbo.led_empleados
- dbo.led_empleados_periodo
- dbo.led_subcontratista_periodo
- dbo.led_tipos_doc
- dbo.led_vehiculos
- dbo.led_vehiculos_periodo
- dbo.padrones
Used By
No items found