Description
Properties
| Name | Value |
|---|---|
| ANSI Nulls ON | True |
| Quoted Identifier ON | True |
| Encrypted | False |
| Execute As | |
| Assembly |
Parameters
3| Name | Data Type | Length | Description |
|---|---|---|---|
| @accion | varchar | 50 | |
| @p_cliente | int | 4 | |
| @servicio_contratado | int | 4 |
SQL Script
Copy
SET QUOTED_IDENTIFIER, ANSI_NULLS ON
GO
/*
exec LN_dashboard_graficos_segun_servicio 'COUNT_ADMINISTRADOS', 9936068,73
exec LN_dashboard_graficos_segun_servicio 'COUNT_CONTRATISTAS', 9936068,73
exec LN_dashboard_graficos_segun_servicio 'COUNT_SUBCONTRATISTAS', 7048064,73
exec LN_dashboard_graficos_segun_servicio 'COUNT_EMPLEADOS', 9936068,73
exec LN_dashboard_graficos_segun_servicio 'COUNT_VEHICULOS', 9936068,73
exec LN_dashboard_graficos_segun_servicio 'COUNT_DOCUMENTOS_IMPE', 9936068,73
exec LN_dashboard_graficos_segun_servicio 'GRAPH_CONTRATISTAS',9936068,73
exec LN_dashboard_graficos_segun_servicio 'GRAPH_SUBCONTRATISTAS',9936068,73
exec LN_dashboard_graficos_segun_servicio 'GRAPH_EMPLEADOS',9936068,73
exec LN_dashboard_graficos_segun_servicio 'GRAPH_IMPE_STATUS',9936068,73
exec LN_dashboard_graficos_segun_servicio 'GRAPH_CUMPLIMIENTO_MENSUAL',9936068,10
exec LN_dashboard_graficos_segun_servicio 'ENRIESGO',3920694,47
exec LN_dashboard_graficos_segun_servicio 'GRAFICOS_INDICADORES',2254875,10
exec LN_dashboard_graficos_segun_servicio 'GRAFICO_INFORME_COMERCIAL',@p_cliente,10
LN_dashboard_graficos_segun_servicio 'COUNT_ADMINISTRADOS',7048064,73
*/
CREATE OR ALTER PROCEDURE dbo.LN_dashboard_graficos_segun_servicio_AGB_08012025
@accion varchar(50),
@p_cliente int,
@servicio_contratado int
AS
BEGIN
SET NOCOUNT ON;
declare @nuevo int = dbo.PeriodoAdelantado()
declare @viejo int = dbo.PeriodoVencido()
declare @anterior int = dbo.PeriodoMenosDos()
IF (@accion = 'GRAFICO_INFORME_COMERCIAL')
BEGIN
EXEC LN_dashboard_graficos_filtrado 'GRAFICO_INFORME_COMERCIAL',@p_cliente,null,@servicio_contratado,0
RETURN
END
IF (@accion = 'GRAFICOS_INDICADORES')
if (@servicio_contratado=10)
BEGIN
select LN_productos.producto,ln.clave_indicador,LN_productos.etiqueta,
LN_productos.producto_id, LN_productos.balance, LN_productos.balance_carga,
LN_productos.balance_score, LN_productos.balance_analisis, LN_productos.balance_valoracion,
LN_productos.documentos, LN_productos.subcontratistas,LN.tipo_control , ln.etiqueta as etiqueta_indicador
from LN_cliente_indicadores lni
inner join LN_indicadores ln on ln.indicador = lni.indicador
inner join ln_productos on ln_productos.producto = ln.producto
where cliente = @p_cliente
and LN_productos.producto_id = 'graficosDashboard'
--and ln_productos.servicio_contratado in (@servicio_contratado,10,0)
and ln.servicio_contratado in (@servicio_contratado,10,0)
and lni.activo = 1
order by ln.orden desc
END
else
BEGIN
select LN_productos.producto,ln.clave_indicador,LN_productos.etiqueta,
LN_productos.producto_id, LN_productos.balance, LN_productos.balance_carga,
LN_productos.balance_score, LN_productos.balance_analisis, LN_productos.balance_valoracion,
LN_productos.documentos, LN_productos.subcontratistas, ln.tipo_control, ln.etiqueta as etiqueta_indicador
from LN_cliente_indicadores lni
inner join LN_indicadores ln on ln.indicador = lni.indicador
inner join ln_productos on ln_productos.producto = ln.producto
where cliente = @p_cliente
and LN_productos.producto_id = 'graficosDashboard'
and ln_productos.servicio_contratado in (@servicio_contratado,0)
and lni.activo = 1
and ln.servicio_contratado in (@servicio_contratado,0)
order by ln.orden asc
END
declare @estado_rec varchar(1) = 'A'
IF (@accion = 'COUNT_CONTRATISTAS' or @accion = 'COUNT_CONTRAPARTES')
BEGIN
/*
select ISNULL(contratistas.total_contratistas, 0) AS Total
from clientes
inner join led_contratos on clientes.cliente = led_contratos.cliente
left outer join
(select led_contratistas.cliente, count(distinct led_contratistas.contratista) AS total_contratistas
from led_contratistas
inner join led_contratista_periodo on led_contratistas.contratista = led_contratista_periodo.contratista
where led_contratista_periodo.periodo >= dbo.PeriodoVencido()
and led_contratistas.estado_contratista = @estado_rec
group by led_contratistas.cliente) contratistas
on clientes.cliente = contratistas.cliente
where clientes.estado_cliente = 'A'
and led_contratos.vigencia_hasta >= GETDATE()
and clientes.acceso_led = 1
and clientes.cliente = @p_cliente
order by clientes.nombre_cliente
*/
declare @total_con int = (select count(distinct LN_contrapartes.contraparte) AS Total
from LN_contrapartes
inner join LN_gestiones on LN_contrapartes.contraparte = LN_gestiones.contraparte
inner join LN_contraparte_indicadores on (LN_gestiones.contraparte = LN_contraparte_indicadores.contraparte
and LN_gestiones.gestion = LN_contraparte_indicadores.gestion)
inner join LN_indicadores on LN_contraparte_indicadores.indicador = LN_indicadores.indicador
inner join LN_cliente_productos on (LN_indicadores.producto = LN_cliente_productos.producto
and LN_contrapartes.cliente = LN_cliente_productos.cliente)
inner join LN_contraparte_familias on LN_contrapartes.contraparte = LN_contraparte_familias.contraparte
inner join LN_familia_productos on (LN_cliente_productos.producto = LN_familia_productos.producto
and LN_contraparte_familias.familia = LN_familia_productos.familia)
inner join LN_familias on LN_contraparte_familias.familia = LN_familias.familia
where LN_contrapartes.cliente = @p_cliente
and LN_contrapartes.activo = 1
and LN_familias.visible = 1
and LN_contraparte_familias.activo = 1
and LN_gestiones.desde <= GETDATE()
and LN_gestiones.hasta >= GETDATE()
and LN_familia_productos.activo = 1
and LN_cliente_productos.activo = 1
and LN_contrapartes.servicio_contratado = @servicio_contratado
and LN_familias.servicio_contratado = @servicio_contratado)
declare @lista_contrapartes_con varchar(max) = (select STUFF(
(SELECT distinct ', ' + convert(varchar,LN_contrapartes.contraparte) AS [text()]
from LN_contrapartes
inner join LN_gestiones on LN_contrapartes.contraparte = LN_gestiones.contraparte
inner join LN_contraparte_indicadores on (LN_gestiones.contraparte = LN_contraparte_indicadores.contraparte
and LN_gestiones.gestion = LN_contraparte_indicadores.gestion)
inner join LN_indicadores on LN_contraparte_indicadores.indicador = LN_indicadores.indicador
inner join LN_cliente_productos on (LN_indicadores.producto = LN_cliente_productos.producto
and LN_contrapartes.cliente = LN_cliente_productos.cliente)
inner join LN_contraparte_familias on LN_contrapartes.contraparte = LN_contraparte_familias.contraparte
inner join LN_familia_productos on (LN_cliente_productos.producto = LN_familia_productos.producto
and LN_contraparte_familias.familia = LN_familia_productos.familia)
inner join LN_familias on LN_contraparte_familias.familia = LN_familias.familia
where LN_contrapartes.cliente = @p_cliente
and LN_contrapartes.activo = 1
and LN_familias.visible = 1
and LN_contraparte_familias.activo = 1
and LN_gestiones.desde <= GETDATE()
and LN_gestiones.hasta >= GETDATE()
and LN_familia_productos.activo = 1
and LN_cliente_productos.activo = 1
and LN_contrapartes.servicio_contratado = @servicio_contratado
and LN_familias.servicio_contratado = @servicio_contratado
FOR XML PATH('')), 1, 2, ''))
select @total_con as Total, @lista_contrapartes_con as lista
END
IF (@accion = 'COUNT_SUBCONTRATISTAS')
BEGIN
declare @total_sub int = ( select ISNULL(subcontratistas.total_subcontratistas, 0) AS Total
from clientes
inner join led_contratos on clientes.cliente = led_contratos.cliente
left outer join
(select led_contratistas.cliente, count(distinct led_contratistas.contratista) AS total_subcontratistas
from led_contratistas
inner join led_subcontratista_periodo on led_contratistas.contratista = led_subcontratista_periodo.subcontratista
inner join led_contratistas contratista1 ON led_contratistas.contratista_1 = contratista1.contratista
where led_subcontratista_periodo.periodo >= dbo.PeriodoVencido()
and led_contratistas.estado_contratista = @estado_rec
and contratista1.estado_contratista = @estado_rec
group by led_contratistas.cliente) subcontratistas
on clientes.cliente = subcontratistas.cliente
where clientes.estado_cliente = 'A'
and led_contratos.vigencia_hasta >= GETDATE()
and clientes.acceso_led = 1
and clientes.cliente = @p_cliente)
declare @lista_contrapartes_sub varchar(max) = (select STUFF(
(SELECT distinct ', ' + convert(varchar,subcontratistas.contraparte) AS [text()]
from clientes
inner join led_contratos on clientes.cliente = led_contratos.cliente
left outer join
(select distinct led_contratistas.cliente, led_contratistas.contratista_1, LN_contrapartes.contraparte
from led_contratistas
inner join led_subcontratista_periodo on led_contratistas.contratista = led_subcontratista_periodo.subcontratista
inner join led_contratistas contratista1 ON led_contratistas.contratista_1 = contratista1.contratista
inner join LN_contrapartes ON led_contratistas.contratista_1 = LN_contrapartes.id_imperium
where led_subcontratista_periodo.periodo >= dbo.PeriodoVencido()
and led_contratistas.estado_contratista = @estado_rec
and contratista1.estado_contratista = @estado_rec
) subcontratistas
on clientes.cliente = subcontratistas.cliente
where clientes.estado_cliente = 'A'
and led_contratos.vigencia_hasta >= GETDATE()
and clientes.acceso_led = 1
and clientes.cliente = @p_cliente
FOR XML PATH('')), 1, 2, ''))
select @total_sub as Total, @lista_contrapartes_sub as lista
END
IF (@accion = 'COUNT_EMPLEADOS')
BEGIN
declare @total_emp int = (select ISNULL(empleados.total_empleados, 0) AS Total
from clientes
inner join led_contratos on clientes.cliente = led_contratos.cliente
left outer join
(select led_empleados.cliente, count(distinct led_empleados.empleado) AS total_empleados
from led_empleados inner join led_empleados_periodo
on led_empleados.empleado = led_empleados_periodo.empleado
inner join led_contratistas contratista1 ON led_empleados.contratista_1 = contratista1.contratista
where led_empleados_periodo.periodo >= dbo.PeriodoVencido()
and led_empleados.estado_empleado = @estado_rec
and contratista1.estado_contratista = @estado_rec
group by led_empleados.cliente) empleados
on clientes.cliente = empleados.cliente
where clientes.estado_cliente = 'A'
and led_contratos.vigencia_hasta >= GETDATE()
and clientes.acceso_led = 1
and clientes.cliente = @p_cliente)
declare @lista_contrapartes_emp varchar(max) = (select STUFF(
(SELECT distinct ', ' + convert(varchar,empleados.contraparte) AS [text()]
from clientes
inner join led_contratos on clientes.cliente = led_contratos.cliente
left outer join
(select distinct led_empleados.cliente, led_empleados.contratista_1, LN_contrapartes.contraparte
from led_empleados inner join led_empleados_periodo
on led_empleados.empleado = led_empleados_periodo.empleado
inner join led_contratistas contratista1 ON led_empleados.contratista_1 = contratista1.contratista
inner join LN_contrapartes ON led_empleados.contratista_1 = LN_contrapartes.id_imperium
where led_empleados_periodo.periodo >= dbo.PeriodoVencido()
and led_empleados.estado_empleado = @estado_rec
and contratista1.estado_contratista = @estado_rec
) empleados
on clientes.cliente = empleados.cliente
where clientes.estado_cliente = 'A'
and led_contratos.vigencia_hasta >= GETDATE()
and clientes.acceso_led = 1
and clientes.cliente = @p_cliente
FOR XML PATH('')), 1, 2, ''))
select @total_emp as Total, @lista_contrapartes_emp as lista
END
IF (@accion = 'COUNT_VEHICULOS')
BEGIN
declare @total_veh int = (select ISNULL(vehiculos.total_vehiculos, 0) AS Total
from clientes
inner join led_contratos on clientes.cliente = led_contratos.cliente
left outer join
(select led_vehiculos.cliente, count(distinct led_vehiculos.vehiculo) AS total_vehiculos
from led_vehiculos inner join led_vehiculos_periodo
on led_vehiculos.vehiculo = led_vehiculos_periodo.vehiculo
inner join led_contratistas contratista1 ON led_vehiculos.contratista_1 = contratista1.contratista
where led_vehiculos_periodo.periodo >= dbo.PeriodoVencido()
and led_vehiculos.estado_vehiculo = @estado_rec
and contratista1.estado_contratista = @estado_rec
group by led_vehiculos.cliente) vehiculos
on clientes.cliente = vehiculos.cliente
where clientes.estado_cliente = 'A'
and led_contratos.vigencia_hasta >= GETDATE()
and clientes.acceso_led = 1
and clientes.cliente = @p_cliente)
declare @lista_contrapartes_veh varchar(max) = (select STUFF(
(SELECT distinct ', ' + convert(varchar,vehiculos.contraparte) AS [text()]
from clientes
inner join led_contratos on clientes.cliente = led_contratos.cliente
left outer join
(select distinct led_vehiculos.cliente, led_vehiculos.contratista_1, LN_contrapartes.contraparte
from led_vehiculos inner join led_vehiculos_periodo
on led_vehiculos.vehiculo = led_vehiculos_periodo.vehiculo
inner join led_contratistas contratista1 ON led_vehiculos.contratista_1 = contratista1.contratista
inner join LN_contrapartes ON led_vehiculos.contratista_1 = LN_contrapartes.id_imperium
where led_vehiculos_periodo.periodo >= dbo.PeriodoVencido()
and led_vehiculos.estado_vehiculo = @estado_rec
and contratista1.estado_contratista = @estado_rec
) vehiculos
on clientes.cliente = vehiculos.cliente
where clientes.estado_cliente = 'A'
and led_contratos.vigencia_hasta >= GETDATE()
and clientes.acceso_led = 1
and clientes.cliente = @p_cliente
FOR XML PATH('')), 1, 2, ''))
select @total_veh as Total, @lista_contrapartes_veh as lista
END
IF (@accion = 'COUNT_DOCUMENTOS_IMPE')
BEGIN
select ISNULL(docs.total_docs, 0) AS Total
from clientes inner join led_contratos on clientes.cliente = led_contratos.cliente
left outer join
(select data.cliente, SUM(data.total_documentos) as total_docs
from
(select led_docs.cliente, COUNT(*) AS total_documentos
from led_docs
inner join led_contratistas on led_docs.contratista = led_contratistas.contratista
inner join led_cliente_contratista on
(led_docs.tipo_doc = led_cliente_contratista.tipo_doc
and led_docs.cliente = led_cliente_contratista.cliente
and led_contratistas.tipo_contratista = led_cliente_contratista.tipo_contratista)
where led_docs.periodo >= dbo.PeriodoVencido()
and led_docs.doc_id_lista is null
and led_docs.estado_doc IN ('N','I','V','R')
and led_cliente_contratista.activo = 1
and led_cliente_contratista.requiere_upload = 1
and led_cliente_contratista.verificacion = 'F'
and led_contratistas.estado_contratista = @estado_rec
group by led_docs.cliente
UNION
select led_docs.cliente, COUNT(*) AS total_documentos
from led_docs
inner join led_empleados on led_docs.empleado = led_empleados.empleado
inner join led_cliente_empleado on
(led_docs.tipo_doc = led_cliente_empleado.tipo_doc
and led_docs.cliente = led_cliente_empleado.cliente
and led_empleados.tipo_empleado = led_cliente_empleado.tipo_empleado)
where led_docs.periodo >= dbo.PeriodoVencido()
and led_docs.doc_id_lista is null
and led_docs.estado_doc IN ('N','I','V','R')
and led_cliente_empleado.activo = 1
and led_cliente_empleado.requiere_upload = 1
and led_cliente_empleado.verificacion = 'F'
and led_empleados.estado_empleado = @estado_rec
group by led_docs.cliente
UNION
select led_docs.cliente, COUNT(*) AS total_documentos
from led_docs
inner join led_vehiculos on led_docs.vehiculo = led_vehiculos.vehiculo
inner join led_cliente_vehiculo on
(led_docs.tipo_doc = led_cliente_vehiculo.tipo_doc
and led_docs.cliente = led_cliente_vehiculo.cliente
and led_vehiculos.tipo_vehiculo = led_cliente_vehiculo.tipo_vehiculo)
where led_docs.periodo >= dbo.PeriodoVencido()
and led_docs.doc_id_lista is null
and led_docs.estado_doc IN ('N','I','V','R')
and led_cliente_vehiculo.activo = 1
and led_cliente_vehiculo.requiere_upload = 1
and led_cliente_vehiculo.verificacion = 'F'
and led_vehiculos.estado_vehiculo = @estado_rec
group by led_docs.cliente) data
group by data.cliente) docs
on clientes.cliente = docs.cliente
where clientes.estado_cliente = 'A'
and led_contratos.vigencia_hasta >= GETDATE()
and clientes.acceso_led = 1
and clientes.cliente = @p_cliente
order by clientes.nombre_cliente
END
IF (@accion = 'COUNT_ADMINISTRADOS')
BEGIN
declare @totales table (total int,lista varchar(max))
insert into @totales(total,lista)
exec [LN_dashboard_graficos_segun_servicio] 'COUNT_CONTRATISTAS', @p_cliente, @servicio_contratado
insert into @totales(total,lista)
exec [LN_dashboard_graficos_segun_servicio] 'COUNT_SUBCONTRATISTAS', @p_cliente, @servicio_contratado
insert into @totales(total,lista)
exec [LN_dashboard_graficos_segun_servicio] 'COUNT_EMPLEADOS', @p_cliente, @servicio_contratado
insert into @totales(total,lista)
exec [LN_dashboard_graficos_segun_servicio] 'COUNT_VEHICULOS', @p_cliente, @servicio_contratado
select sum(ISNULL(total, 0)) as Total
from @totales
END
/*
IF (@accion = 'COUNT_ADMINISTRADOS')
BEGIN
select clientes.cliente, clientes.nombre_cliente, led_contratos.vigencia_desde, led_contratos.vigencia_hasta,
led_contratos.minimo_recursos, led_contratos.maximo_recursos, led_contratos.autogestion,
ISNULL(contratistas.total_contratistas, 0) AS total_contratistas,
ISNULL(subcontratistas.total_subcontratistas, 0) AS total_subcontratistas,
ISNULL(empleados.total_empleados, 0) AS total_empleados,
ISNULL(vehiculos.total_vehiculos, 0) AS total_vehiculos,
ISNULL(contratistas.total_contratistas, 0) + ISNULL(subcontratistas.total_subcontratistas, 0) + ISNULL(empleados.total_empleados, 0) + ISNULL(vehiculos.total_vehiculos, 0) AS total_recursos,
ISNULL(docs.total_docs, 0) AS total_docs
from clientes inner join led_contratos on clientes.cliente = led_contratos.cliente
left outer join
(select led_contratistas.cliente, count(distinct led_contratistas.contratista) AS total_contratistas
from led_contratistas
inner join led_contratista_periodo on led_contratistas.contratista = led_contratista_periodo.contratista
where led_contratista_periodo.periodo >= dbo.PeriodoVencido()
and led_contratistas.estado_contratista = @estado_rec
group by led_contratistas.cliente) contratistas
on clientes.cliente = contratistas.cliente
left outer join
(select led_contratistas.cliente, count(distinct led_contratistas.contratista) AS total_subcontratistas
from led_contratistas
inner join led_subcontratista_periodo on led_contratistas.contratista = led_subcontratista_periodo.subcontratista
inner join led_contratistas contratista1 ON led_contratistas.contratista_1 = contratista1.contratista
where led_subcontratista_periodo.periodo >= dbo.PeriodoVencido()
and led_contratistas.estado_contratista = @estado_rec
and contratista1.estado_contratista = @estado_rec
group by led_contratistas.cliente) subcontratistas
on clientes.cliente = subcontratistas.cliente
left outer join
(select led_empleados.cliente, count(distinct led_empleados.empleado) AS total_empleados
from led_empleados inner join led_empleados_periodo
on led_empleados.empleado = led_empleados_periodo.empleado
inner join led_contratistas contratista1 ON led_empleados.contratista_1 = contratista1.contratista
where led_empleados_periodo.periodo >= dbo.PeriodoVencido()
and led_empleados.estado_empleado = @estado_rec
and contratista1.estado_contratista = @estado_rec
group by led_empleados.cliente) empleados
on clientes.cliente = empleados.cliente
left outer join
(select led_vehiculos.cliente, count(distinct led_vehiculos.vehiculo) AS total_vehiculos
from led_vehiculos inner join led_vehiculos_periodo
on led_vehiculos.vehiculo = led_vehiculos_periodo.vehiculo
inner join led_contratistas contratista1 ON led_vehiculos.contratista_1 = contratista1.contratista
where led_vehiculos_periodo.periodo >= dbo.PeriodoVencido()
and led_vehiculos.estado_vehiculo = @estado_rec
and contratista1.estado_contratista = @estado_rec
group by led_vehiculos.cliente) vehiculos
on clientes.cliente = vehiculos.cliente
left outer join
(select data.cliente, SUM(data.total_documentos) as total_docs
from
(select led_docs.cliente, COUNT(*) AS total_documentos
from led_docs
inner join led_contratistas on led_docs.contratista = led_contratistas.contratista
inner join led_cliente_contratista on
(led_docs.tipo_doc = led_cliente_contratista.tipo_doc
and led_docs.cliente = led_cliente_contratista.cliente
and led_contratistas.tipo_contratista = led_cliente_contratista.tipo_contratista)
where led_docs.periodo >= dbo.PeriodoVencido()
and led_docs.doc_id_lista is null
and led_docs.estado_doc IN ('N','I','V','R')
and led_cliente_contratista.activo = 1
and led_cliente_contratista.requiere_upload = 1
and led_cliente_contratista.verificacion = 'F'
and led_contratistas.estado_contratista = @estado_rec
group by led_docs.cliente
UNION
select led_docs.cliente, COUNT(*) AS total_documentos
from led_docs
inner join led_empleados on led_docs.empleado = led_empleados.empleado
inner join led_cliente_empleado on
(led_docs.tipo_doc = led_cliente_empleado.tipo_doc
and led_docs.cliente = led_cliente_empleado.cliente
and led_empleados.tipo_empleado = led_cliente_empleado.tipo_empleado)
where led_docs.periodo >= dbo.PeriodoVencido()
and led_docs.doc_id_lista is null
and led_docs.estado_doc IN ('N','I','V','R')
and led_cliente_empleado.activo = 1
and led_cliente_empleado.requiere_upload = 1
and led_cliente_empleado.verificacion = 'F'
and led_empleados.estado_empleado = @estado_rec
group by led_docs.cliente
UNION
select led_docs.cliente, COUNT(*) AS total_documentos
from led_docs
inner join led_vehiculos on led_docs.vehiculo = led_vehiculos.vehiculo
inner join led_cliente_vehiculo on
(led_docs.tipo_doc = led_cliente_vehiculo.tipo_doc
and led_docs.cliente = led_cliente_vehiculo.cliente
and led_vehiculos.tipo_vehiculo = led_cliente_vehiculo.tipo_vehiculo)
where led_docs.periodo >= dbo.PeriodoVencido()
and led_docs.doc_id_lista is null
and led_docs.estado_doc IN ('N','I','V','R')
and led_cliente_vehiculo.activo = 1
and led_cliente_vehiculo.requiere_upload = 1
and led_cliente_vehiculo.verificacion = 'F'
and led_vehiculos.estado_vehiculo = @estado_rec
group by led_docs.cliente) data
group by data.cliente) docs
on clientes.cliente = docs.cliente
where clientes.estado_cliente = 'A'
and led_contratos.vigencia_hasta >= GETDATE()
and clientes.acceso_led = 1
and clientes.cliente = @p_cliente
order by clientes.nombre_cliente
END
*/
IF (@accion = 'ENRIESGO' or @accion = 'OPORTUNIDADES')
BEGIN
declare @cantidad int
declare @lista_contrapartes varchar(max)
select
@cantidad =
count(distinct LN_contraparte_indicadores.contraparte)
from LN_contraparte_indicadores
inner join LN_gestiones on ln_gestiones.contraparte = LN_contraparte_indicadores.contraparte
where LN_contraparte_indicadores.contraparte in (select distinct ln_contrapartes.contraparte
from ln_contrapartes
INNER JOIN LN_contraparte_familias ON LN_contrapartes.contraparte = LN_contraparte_familias.contraparte
INNER JOIN LN_familias ON LN_contraparte_familias.familia = LN_familias.familia
inner join LN_gestiones on LN_contrapartes.contraparte = LN_gestiones.contraparte
where LN_contrapartes.cliente = @p_cliente
and LN_gestiones.desde <= GETDATE()
and LN_gestiones.hasta >= GETDATE()
and LN_gestiones.vigente = 1
and LN_contrapartes.activo = 1
and isnull(ln_contrapartes.servicio_contratado,47)=@servicio_contratado
and LN_contrapartes.subcontratista = 0
and LN_familias.visible = 1
and LN_contraparte_familias.activo = 1
)
and indicador in (select indicador from ln_indicadores where clave_indicador = @accion )
and valor_numerico = 1
and LN_contraparte_indicadores.visible = 1
and LN_gestiones.desde <= GETDATE()
and LN_gestiones.hasta >= GETDATE()
and LN_gestiones.vigente = 1
and LN_contraparte_indicadores.gestion = LN_gestiones.gestion
select @lista_contrapartes = STUFF(
(SELECT distinct ', ' + convert(varchar,LN_contraparte_indicadores.contraparte) AS [text()]
from LN_contraparte_indicadores
inner join LN_gestiones on ln_gestiones.contraparte = LN_contraparte_indicadores.contraparte
where LN_contraparte_indicadores.contraparte in (select distinct ln_contrapartes.contraparte
from ln_contrapartes
INNER JOIN LN_contraparte_familias ON LN_contrapartes.contraparte = LN_contraparte_familias.contraparte
INNER JOIN LN_familias ON LN_contraparte_familias.familia = LN_familias.familia
inner join LN_gestiones on LN_contrapartes.contraparte = LN_gestiones.contraparte
where LN_contrapartes.cliente = @p_cliente
and LN_gestiones.desde <= GETDATE()
and LN_gestiones.hasta >= GETDATE()
and LN_gestiones.vigente = 1
and LN_contrapartes.activo = 1
and isnull(ln_contrapartes.servicio_contratado,47)=@servicio_contratado
and LN_contrapartes.subcontratista = 0
and LN_familias.visible = 1
and LN_contraparte_familias.activo = 1
)
and indicador in (select indicador from ln_indicadores where clave_indicador = @accion )
and valor_numerico = 1
and LN_contraparte_indicadores.visible = 1
and LN_gestiones.desde <= GETDATE()
and LN_gestiones.hasta >= GETDATE()
and LN_gestiones.vigente = 1
and LN_contraparte_indicadores.gestion = LN_gestiones.gestion
FOR XML PATH('')), 1, 2, '')
select @cantidad as total, @lista_contrapartes as lista
END
IF (@accion = 'GRAPH_CUMPLIMIENTO_MENSUAL')
BEGIN
exec Imperium_vista_contratista_Cumplimiento_Mensual_todos null, @p_cliente
END
IF (@accion = 'GRAPH_CONTRATISTAS')
BEGIN
select led_compliance.periodo, led_compliance.led_seccion, led_compliance.estado_compliance,
case
when led_compliance.estado_compliance = 'R' then 'ROJO'
when led_compliance.estado_compliance = 'A' then 'AMARILLO'
when led_compliance.estado_compliance = 'V' then 'VERDE'
else null
end as etiqueta,
case
when led_compliance.estado_compliance = 'R' then 'A72B2A'
when led_compliance.estado_compliance = 'A' then 'FFB81C'
when led_compliance.estado_compliance = 'V' then '63b68c'
else null
end as color,
COUNT(*) as total
from led_compliance
inner join led_contratistas on led_compliance.contratista = led_contratistas.contratista
inner join led_contratista_periodo on (led_contratistas.contratista = led_contratista_periodo.contratista
and led_compliance.periodo = led_contratista_periodo.periodo)
where
led_compliance.periodo = @viejo
and
led_compliance.led_seccion = 'C'
and
led_compliance.estado_compliance = 'V'
and
led_contratistas.cliente = @p_cliente
and
led_contratistas.estado_contratista = 'A'
group by led_compliance.periodo, led_compliance.led_seccion, led_compliance.estado_compliance
union
select led_compliance.periodo, led_compliance.led_seccion, led_compliance.estado_compliance,
case
when led_compliance.estado_compliance = 'R' then 'ROJO'
when led_compliance.estado_compliance = 'A' then 'AMARILLO'
when led_compliance.estado_compliance = 'V' then 'VERDE'
else null
end as etiqueta,
case
when led_compliance.estado_compliance = 'R' then 'A72B2A'
when led_compliance.estado_compliance = 'A' then 'FFB81C'
when led_compliance.estado_compliance = 'V' then '63b68c'
else null
end as color,
COUNT(*) as total
from led_compliance
inner join led_contratistas on led_compliance.contratista = led_contratistas.contratista
inner join led_contratista_periodo on (led_contratistas.contratista = led_contratista_periodo.contratista
and led_compliance.periodo = led_contratista_periodo.periodo)
where
led_compliance.periodo = @viejo
and
led_compliance.led_seccion = 'C'
and
led_compliance.estado_compliance = 'A'
and
led_contratistas.cliente = @p_cliente
and
led_contratistas.estado_contratista = 'A'
group by led_compliance.periodo, led_compliance.led_seccion, led_compliance.estado_compliance
union
select led_compliance.periodo, led_compliance.led_seccion, led_compliance.estado_compliance,
case
when led_compliance.estado_compliance = 'R' then 'ROJO'
when led_compliance.estado_compliance = 'A' then 'AMARILLO'
when led_compliance.estado_compliance = 'V' then 'VERDE'
else null
end as etiqueta,
case
when led_compliance.estado_compliance = 'R' then 'A72B2A'
when led_compliance.estado_compliance = 'A' then 'FFB81C'
when led_compliance.estado_compliance = 'V' then '63b68c'
else null
end as color,
COUNT(*) as total
from led_compliance
inner join led_contratistas on led_compliance.contratista = led_contratistas.contratista
inner join led_contratista_periodo on (led_contratistas.contratista = led_contratista_periodo.contratista
and led_compliance.periodo = led_contratista_periodo.periodo)
where
led_compliance.periodo = @viejo
and
led_compliance.led_seccion = 'C'
and
led_compliance.estado_compliance = 'R'
and
led_contratistas.cliente = @p_cliente
and
led_contratistas.estado_contratista = 'A'
group by led_compliance.periodo, led_compliance.led_seccion, led_compliance.estado_compliance
END
IF (@accion = 'GRAPH_SUBCONTRATISTAS')
BEGIN
select led_compliance.periodo, 'S' as led_seccion, led_compliance.estado_compliance,
case
when led_compliance.estado_compliance = 'R' then 'ROJO'
when led_compliance.estado_compliance = 'A' then 'AMARILLO'
when led_compliance.estado_compliance = 'V' then 'VERDE'
else null
end as etiqueta,
case
when led_compliance.estado_compliance = 'R' then 'A72B2A'
when led_compliance.estado_compliance = 'A' then 'FFB81C'
when led_compliance.estado_compliance = 'V' then '63b68c'
else null
end as color,
COUNT(*) as total
from led_compliance
inner join led_contratistas on led_compliance.contratista = led_contratistas.contratista
inner join led_subcontratista_periodo on (led_contratistas.contratista = led_subcontratista_periodo.subcontratista
and led_compliance.periodo = led_subcontratista_periodo.periodo)
inner join led_contratistas contratistas_1 on led_contratistas.contratista_1 = contratistas_1.contratista
inner join led_contratista_periodo on (contratistas_1.contratista = led_contratista_periodo.contratista
and led_compliance.periodo = led_contratista_periodo.periodo)
where
led_compliance.periodo = @viejo
and
led_compliance.led_seccion = 'C'
and
led_compliance.estado_compliance = 'V'
and
led_contratistas.cliente = @p_cliente
and
led_contratistas.estado_contratista = 'A'
AND contratistas_1.estado_contratista = 'A'
group by led_compliance.periodo, led_compliance.led_seccion, led_compliance.estado_compliance
union
select led_compliance.periodo, 'S' as led_seccion, led_compliance.estado_compliance,
case
when led_compliance.estado_compliance = 'R' then 'ROJO'
when led_compliance.estado_compliance = 'A' then 'AMARILLO'
when led_compliance.estado_compliance = 'V' then 'VERDE'
else null
end as etiqueta,
case
when led_compliance.estado_compliance = 'R' then 'A72B2A'
when led_compliance.estado_compliance = 'A' then 'FFB81C'
when led_compliance.estado_compliance = 'V' then '63b68c'
else null
end as color,
COUNT(*) as total
from led_compliance
inner join led_contratistas on led_compliance.contratista = led_contratistas.contratista
inner join led_subcontratista_periodo on (led_contratistas.contratista = led_subcontratista_periodo.subcontratista
and led_compliance.periodo = led_subcontratista_periodo.periodo)
inner join led_contratistas contratistas_1 on led_contratistas.contratista_1 = contratistas_1.contratista
inner join led_contratista_periodo on (contratistas_1.contratista = led_contratista_periodo.contratista
and led_compliance.periodo = led_contratista_periodo.periodo)
where
led_compliance.periodo = @viejo
and
led_compliance.led_seccion = 'C'
and
led_compliance.estado_compliance = 'A'
and
led_contratistas.cliente = @p_cliente
and
led_contratistas.estado_contratista = 'A'
AND contratistas_1.estado_contratista = 'A'
group by led_compliance.periodo, led_compliance.led_seccion, led_compliance.estado_compliance
union
select led_compliance.periodo, 'S' as led_seccion, led_compliance.estado_compliance,
case
when led_compliance.estado_compliance = 'R' then 'ROJO'
when led_compliance.estado_compliance = 'A' then 'AMARILLO'
when led_compliance.estado_compliance = 'V' then 'VERDE'
else null
end as etiqueta,
case
when led_compliance.estado_compliance = 'R' then 'A72B2A'
when led_compliance.estado_compliance = 'A' then 'FFB81C'
when led_compliance.estado_compliance = 'V' then '63b68c'
else null
end as color,
COUNT(*) as total
from led_compliance
inner join led_contratistas on led_compliance.contratista = led_contratistas.contratista
inner join led_subcontratista_periodo on (led_contratistas.contratista = led_subcontratista_periodo.subcontratista
and led_compliance.periodo = led_subcontratista_periodo.periodo)
inner join led_contratistas contratistas_1 on led_contratistas.contratista_1 = contratistas_1.contratista
inner join led_contratista_periodo on (contratistas_1.contratista = led_contratista_periodo.contratista
and led_compliance.periodo = led_contratista_periodo.periodo)
where
led_compliance.periodo = @viejo
and
led_compliance.led_seccion = 'C'
and
led_compliance.estado_compliance = 'R'
and
led_contratistas.cliente = @p_cliente
and
led_contratistas.estado_contratista = 'A'
AND contratistas_1.estado_contratista = 'A'
group by led_compliance.periodo, led_compliance.led_seccion, led_compliance.estado_compliance
END
IF (@accion = 'GRAPH_EMPLEADOS')
BEGIN
select led_compliance.periodo, led_compliance.led_seccion, led_compliance.estado_compliance,
case
when led_compliance.estado_compliance = 'R' then 'ROJO'
when led_compliance.estado_compliance = 'A' then 'AMARILLO'
when led_compliance.estado_compliance = 'V' then 'VERDE'
else null
end as etiqueta,
case
when led_compliance.estado_compliance = 'R' then 'A72B2A'
when led_compliance.estado_compliance = 'A' then 'FFB81C'
when led_compliance.estado_compliance = 'V' then '63b68c'
else null
end as color,
COUNT(*) as total
from led_compliance
inner join led_contratistas on led_compliance.contratista = led_contratistas.contratista
inner join led_contratista_periodo on (led_contratistas.contratista = led_contratista_periodo.contratista
and led_compliance.periodo = led_contratista_periodo.periodo)
where
led_compliance.periodo = @viejo
and
led_compliance.led_seccion = 'E'
and
led_compliance.estado_compliance = 'V'
and
led_contratistas.cliente = @p_cliente
and
led_contratistas.estado_contratista = 'A'
group by led_compliance.periodo, led_compliance.led_seccion, led_compliance.estado_compliance
union
select led_compliance.periodo, led_compliance.led_seccion, led_compliance.estado_compliance,
case
when led_compliance.estado_compliance = 'R' then 'ROJO'
when led_compliance.estado_compliance = 'A' then 'AMARILLO'
when led_compliance.estado_compliance = 'V' then 'VERDE'
else null
end as etiqueta,
case
when led_compliance.estado_compliance = 'R' then 'A72B2A'
when led_compliance.estado_compliance = 'A' then 'FFB81C'
when led_compliance.estado_compliance = 'V' then '63b68c'
else null
end as color,
COUNT(*) as total
from led_compliance
inner join led_contratistas on led_compliance.contratista = led_contratistas.contratista
inner join led_contratista_periodo on (led_contratistas.contratista = led_contratista_periodo.contratista
and led_compliance.periodo = led_contratista_periodo.periodo)
where
led_compliance.periodo = @viejo
and
led_compliance.led_seccion = 'E'
and
led_compliance.estado_compliance = 'A'
and
led_contratistas.cliente = @p_cliente
and
led_contratistas.estado_contratista = 'A'
group by led_compliance.periodo, led_compliance.led_seccion, led_compliance.estado_compliance
union
select led_compliance.periodo, led_compliance.led_seccion, led_compliance.estado_compliance,
case
when led_compliance.estado_compliance = 'R' then 'ROJO'
when led_compliance.estado_compliance = 'A' then 'AMARILLO'
when led_compliance.estado_compliance = 'V' then 'VERDE'
else null
end as etiqueta,
case
when led_compliance.estado_compliance = 'R' then 'A72B2A'
when led_compliance.estado_compliance = 'A' then 'FFB81C'
when led_compliance.estado_compliance = 'V' then '63b68c'
else null
end as color,
COUNT(*) as total
from led_compliance
inner join led_contratistas on led_compliance.contratista = led_contratistas.contratista
inner join led_contratista_periodo on (led_contratistas.contratista = led_contratista_periodo.contratista
and led_compliance.periodo = led_contratista_periodo.periodo)
where
led_compliance.periodo = @viejo
and
led_compliance.led_seccion = 'E'
and
led_compliance.estado_compliance = 'R'
and
led_contratistas.cliente = @p_cliente
and
led_contratistas.estado_contratista = 'A'
group by led_compliance.periodo, led_compliance.led_seccion, led_compliance.estado_compliance
END
IF (@accion = 'GRAPH_VEHICULOS')
BEGIN
select led_compliance.periodo, led_compliance.led_seccion, led_compliance.estado_compliance,
case
when led_compliance.estado_compliance = 'R' then 'ROJO'
when led_compliance.estado_compliance = 'A' then 'AMARILLO'
when led_compliance.estado_compliance = 'V' then 'VERDE'
else null
end as etiqueta,
case
when led_compliance.estado_compliance = 'R' then 'A72B2A'
when led_compliance.estado_compliance = 'A' then 'FFB81C'
when led_compliance.estado_compliance = 'V' then '63b68c'
else null
end as color,
COUNT(*) as total
from led_compliance
inner join led_contratistas on led_compliance.contratista = led_contratistas.contratista
inner join led_contratista_periodo on (led_contratistas.contratista = led_contratista_periodo.contratista
and led_compliance.periodo = led_contratista_periodo.periodo)
where
led_compliance.periodo = @viejo
and
led_compliance.led_seccion = 'V'
and
led_compliance.estado_compliance = 'V'
and
led_contratistas.cliente = @p_cliente
and
led_contratistas.estado_contratista = 'A'
group by led_compliance.periodo, led_compliance.led_seccion, led_compliance.estado_compliance
union
select led_compliance.periodo, led_compliance.led_seccion, led_compliance.estado_compliance,
case
when led_compliance.estado_compliance = 'R' then 'ROJO'
when led_compliance.estado_compliance = 'A' then 'AMARILLO'
when led_compliance.estado_compliance = 'V' then 'VERDE'
else null
end as etiqueta,
case
when led_compliance.estado_compliance = 'R' then 'A72B2A'
when led_compliance.estado_compliance = 'A' then 'FFB81C'
when led_compliance.estado_compliance = 'V' then '63b68c'
else null
end as color,
COUNT(*) as total
from led_compliance
inner join led_contratistas on led_compliance.contratista = led_contratistas.contratista
inner join led_contratista_periodo on (led_contratistas.contratista = led_contratista_periodo.contratista
and led_compliance.periodo = led_contratista_periodo.periodo)
where
led_compliance.periodo = @viejo
and
led_compliance.led_seccion = 'V'
and
led_compliance.estado_compliance = 'A'
and
led_contratistas.cliente = @p_cliente
and
led_contratistas.estado_contratista = 'A'
group by led_compliance.periodo, led_compliance.led_seccion, led_compliance.estado_compliance
union
select led_compliance.periodo, led_compliance.led_seccion, led_compliance.estado_compliance,
case
when led_compliance.estado_compliance = 'R' then 'ROJO'
when led_compliance.estado_compliance = 'A' then 'AMARILLO'
when led_compliance.estado_compliance = 'V' then 'VERDE'
else null
end as etiqueta,
case
when led_compliance.estado_compliance = 'R' then 'A72B2A'
when led_compliance.estado_compliance = 'A' then 'FFB81C'
when led_compliance.estado_compliance = 'V' then '63b68c'
else null
end as color,
COUNT(*) as total
from led_compliance
inner join led_contratistas on led_compliance.contratista = led_contratistas.contratista
inner join led_contratista_periodo on (led_contratistas.contratista = led_contratista_periodo.contratista
and led_compliance.periodo = led_contratista_periodo.periodo)
where
led_compliance.periodo = @viejo
and
led_compliance.led_seccion = 'V'
and
led_compliance.estado_compliance = 'R'
and
led_contratistas.cliente = @p_cliente
and
led_contratistas.estado_contratista = 'A'
group by led_compliance.periodo, led_compliance.led_seccion, led_compliance.estado_compliance
END
declare @clave_indicador varchar(100)
create table #rangos (
rango varchar(2),
etiqueta varchar(20),
etiqueta_texto varchar(100) NULL,
color varchar(6),
total int,
desde float,
hasta float)
IF (@accion = 'GRAPH_IMPE_STATUS') BEGIN set @clave_indicador = 'IMPE_STATUS' END
IF (@accion = 'GRAPH_IMPE_STATUS')
BEGIN
-- Si tiene rangos definidos en ln_cliente_nivel
if (select COUNT(*) from LN_cliente_nivel where cliente = @p_cliente
and desde >= -100
and indicador in (
select distinct LN_indicadores.indicador from ln_cliente_indicadores
inner join LN_indicadores on LN_indicadores.indicador = LN_cliente_indicadores.indicador
where clave_indicador = @clave_indicador
and cliente = @p_cliente
union
select distinct LN_indicadores.indicador from LN_indicadores
inner join LN_productos on LN_productos.producto = LN_indicadores.producto
inner join LN_cliente_productos on LN_cliente_productos.producto = LN_indicadores.producto
where LN_productos.suscribe_indicadores = 0
and clave_indicador = @clave_indicador
and LN_cliente_productos.cliente = @p_cliente
)) > 0
begin
-- Si tiene textos muestra en los pies de los graficos ese texto
if (select COUNT(*) from LN_cliente_nivel where cliente = @p_cliente
and desde >= -100
and texto is not null
and indicador in (
select distinct LN_indicadores.indicador from ln_cliente_indicadores
inner join LN_indicadores on LN_indicadores.indicador = LN_cliente_indicadores.indicador
where clave_indicador = @clave_indicador
and cliente = @p_cliente
union
select distinct LN_indicadores.indicador from LN_indicadores
inner join LN_productos on LN_productos.producto = LN_indicadores.producto
inner join LN_cliente_productos on LN_cliente_productos.producto = LN_indicadores.producto
where LN_productos.suscribe_indicadores = 0
and clave_indicador = @clave_indicador
and LN_cliente_productos.cliente = @p_cliente
)) > 0
begin
insert into #rangos
select 'R'+convert(varchar,ROW_NUMBER() OVER(ORDER BY desde desc)) AS Row,
texto, texto, color_fondo, 0, desde, hasta
from LN_cliente_nivel where cliente = @p_cliente
and desde >= -100
and indicador in (
select distinct LN_indicadores.indicador from ln_cliente_indicadores
inner join LN_indicadores on LN_indicadores.indicador = LN_cliente_indicadores.indicador
where clave_indicador = @clave_indicador
and cliente = @p_cliente
union
select distinct LN_indicadores.indicador from LN_indicadores
inner join LN_productos on LN_productos.producto = LN_indicadores.producto
inner join LN_cliente_productos on LN_cliente_productos.producto = LN_indicadores.producto
where LN_productos.suscribe_indicadores = 0
and clave_indicador = @clave_indicador
and LN_cliente_productos.cliente = @p_cliente
)
order by desde desc
end
else
begin
-- Si no tiene texto arma el texto con el desde-hasta para mostrar como pie
insert into #rangos
select 'R'+convert(varchar,ROW_NUMBER() OVER(ORDER BY desde desc)) AS Row,
convert(varchar,desde) + '-' + convert(varchar,hasta) as texto,
convert(varchar,desde) + '-' + convert(varchar,hasta) as texto2,
color_fondo, 0, desde, hasta
from LN_cliente_nivel where cliente = @p_cliente
and desde >= -100
and indicador in (
select distinct LN_indicadores.indicador from ln_cliente_indicadores
inner join LN_indicadores on LN_indicadores.indicador = LN_cliente_indicadores.indicador
where clave_indicador = @clave_indicador
and cliente = @p_cliente
union
select distinct LN_indicadores.indicador from LN_indicadores
inner join LN_productos on LN_productos.producto = LN_indicadores.producto
inner join LN_cliente_productos on LN_cliente_productos.producto = LN_indicadores.producto
where LN_productos.suscribe_indicadores = 0
and clave_indicador = @clave_indicador
and LN_cliente_productos.cliente = @p_cliente
)
order by desde desc
end
end
END
if (@accion = 'GRAPH_IMPE_STATUS' )
BEGIN
if ((select top 1 tipo_dato from LN_indicadores
inner join LN_cliente_productos on LN_cliente_productos.producto = LN_indicadores.producto
where clave_indicador = @clave_indicador
and LN_cliente_productos.cliente = @p_cliente) = 'F')
begin
SELECT distinct ISNULL(totales.clave_indicador,@clave_indicador) as clave_indicador,
#rangos.rango, #rangos.etiqueta,
#rangos.etiqueta_texto, #rangos.color,
#rangos.desde, #rangos.hasta, ISNULL(totales.total,0) as total, lista.lista as lista
FROM #rangos
LEFT OUTER JOIN (
SELECT LN_indicadores.clave_indicador, #rangos.rango, COUNT(*) AS total
from LN_contraparte_indicadores
/*inner join #rangos on (format(LN_contraparte_indicadores.valor_numerico,'##0') >= #rangos.desde
and format(LN_contraparte_indicadores.valor_numerico,'##0') < #rangos.hasta)*/
inner join #rangos on (LN_contraparte_indicadores.valor_numerico >= #rangos.desde
and LN_contraparte_indicadores.valor_numerico < #rangos.hasta)
inner join LN_contrapartes on LN_contraparte_indicadores.contraparte = LN_contrapartes.contraparte
inner join LN_gestiones on LN_contrapartes.contraparte = LN_gestiones.contraparte
inner join LN_cliente_productos on LN_contrapartes.cliente = LN_cliente_productos.cliente
inner join LN_indicadores ON
(LN_cliente_productos.producto = LN_indicadores.producto
AND LN_contraparte_indicadores.indicador = LN_indicadores.indicador)
inner join LN_productos on LN_productos.producto = LN_indicadores.producto
inner join LN_contraparte_familias on LN_contrapartes.contraparte = LN_contraparte_familias.contraparte
inner join LN_familias on LN_familias.familia = LN_contraparte_familias.familia
inner join LN_familia_productos on (LN_contraparte_familias.familia = LN_familia_productos.familia
and LN_indicadores.producto = LN_familia_productos.producto)
where LN_contrapartes.cliente = @p_cliente
and LN_indicadores.clave_indicador = @clave_indicador
and LN_contraparte_indicadores.visible = 1
and LN_indicadores.visible = 1
and LN_familias.visible = 1
and LN_productos.visible = 1
and LN_gestiones.desde <= getdate() and LN_gestiones.hasta >= getdate()
and LN_contrapartes.activo = 1
and isnull(ln_contrapartes.servicio_contratado,47)=@servicio_contratado
and LN_familia_productos.activo = 1
and LN_cliente_productos.activo = 1
AND LN_contrapartes.subcontratista = 0
and LN_contraparte_indicadores.gestion = ln_gestiones.gestion
/*
and ((LN_indicadores.clave_indicador = 'SCORE_IC' and
(LN_contrapartes.country_code = 'AR' and LN_productos.country_code = 'AR')
or
(LN_contrapartes.country_code != 'AR' and LN_productos.country_code is null)
) or (LN_indicadores.clave_indicador != 'SCORE_IC') )
*/
GROUP BY LN_indicadores.clave_indicador, #rangos.rango
) totales ON totales.rango = #rangos.rango
LEFT OUTER JOIN (
SELECT R1.rango, STUFF((
SELECT ',' + convert(varchar,T.contraparte)
from LN_contraparte_indicadores T
/*inner join #rangos on (format(LN_contraparte_indicadores.valor_numerico,'##0') >= #rangos.desde
and format(LN_contraparte_indicadores.valor_numerico,'##0') < #rangos.hasta)*/
inner join #rangos R on (T.valor_numerico >= R.desde
and T.valor_numerico < R.hasta)
inner join LN_contrapartes on T.contraparte = LN_contrapartes.contraparte
inner join LN_gestiones on LN_contrapartes.contraparte = LN_gestiones.contraparte
inner join LN_cliente_productos on LN_contrapartes.cliente = LN_cliente_productos.cliente
inner join LN_indicadores ON
(LN_cliente_productos.producto = LN_indicadores.producto
AND T.indicador = LN_indicadores.indicador)
inner join LN_productos on LN_productos.producto = LN_indicadores.producto
inner join LN_contraparte_familias on LN_contrapartes.contraparte = LN_contraparte_familias.contraparte
inner join LN_familias on LN_familias.familia = LN_contraparte_familias.familia
inner join LN_familia_productos on (LN_contraparte_familias.familia = LN_familia_productos.familia
and LN_indicadores.producto = LN_familia_productos.producto)
where LN_contrapartes.cliente = @p_cliente
and LN_indicadores.clave_indicador = @clave_indicador
and T.visible = 1
and LN_indicadores.visible = 1
and LN_familias.visible = 1
and LN_productos.visible = 1
and LN_gestiones.desde <= getdate() and LN_gestiones.hasta >= getdate()
and LN_contrapartes.activo = 1
and isnull(ln_contrapartes.servicio_contratado,47)=@servicio_contratado
and LN_familia_productos.activo = 1
and LN_cliente_productos.activo = 1
AND LN_contrapartes.subcontratista = 0
and T.gestion = ln_gestiones.gestion
and R1.rango = R.rango
FOR XML PATH('')
), 1, 1, '') AS lista
from LN_contraparte_indicadores T1
/*inner join #rangos on (format(LN_contraparte_indicadores.valor_numerico,'##0') >= #rangos.desde
and format(LN_contraparte_indicadores.valor_numerico,'##0') < #rangos.hasta)*/
inner join #rangos R1 on (T1.valor_numerico >= R1.desde
and T1.valor_numerico < R1.hasta)
inner join LN_contrapartes on T1.contraparte = LN_contrapartes.contraparte
inner join LN_gestiones on LN_contrapartes.contraparte = LN_gestiones.contraparte
inner join LN_cliente_productos on LN_contrapartes.cliente = LN_cliente_productos.cliente
inner join LN_indicadores ON
(LN_cliente_productos.producto = LN_indicadores.producto
AND T1.indicador = LN_indicadores.indicador)
inner join LN_productos on LN_productos.producto = LN_indicadores.producto
inner join LN_contraparte_familias on LN_contrapartes.contraparte = LN_contraparte_familias.contraparte
inner join LN_familias on LN_familias.familia = LN_contraparte_familias.familia
inner join LN_familia_productos on (LN_contraparte_familias.familia = LN_familia_productos.familia
and LN_indicadores.producto = LN_familia_productos.producto)
where LN_contrapartes.cliente = @p_cliente
and LN_indicadores.clave_indicador = @clave_indicador
and T1.visible = 1
and LN_indicadores.visible = 1
and LN_familias.visible = 1
and LN_productos.visible = 1
and LN_gestiones.desde <= getdate() and LN_gestiones.hasta >= getdate()
and LN_contrapartes.activo = 1
and isnull(ln_contrapartes.servicio_contratado,47)=@servicio_contratado
and LN_familia_productos.activo = 1
and LN_cliente_productos.activo = 1
AND LN_contrapartes.subcontratista = 0
and T1.gestion = ln_gestiones.gestion
) lista ON lista.rango = #rangos.rango
ORDER BY #rangos.rango
end
else
begin
SELECT distinct ISNULL(totales.clave_indicador,@clave_indicador) as clave_indicador,
#rangos.rango, #rangos.etiqueta,
#rangos.etiqueta_texto, #rangos.color,
#rangos.desde, #rangos.hasta, ISNULL(totales.total,0) as total, lista.lista as lista
FROM #rangos
LEFT OUTER JOIN (
SELECT LN_indicadores.clave_indicador, #rangos.rango, COUNT(*) AS total
from LN_contraparte_indicadores
inner join #rangos on (format(LN_contraparte_indicadores.valor_numerico,'##0') >= #rangos.desde
and format(LN_contraparte_indicadores.valor_numerico,'##0') < #rangos.hasta)
/*inner join #rangos on (LN_contraparte_indicadores.valor_numerico >= #rangos.desde
and LN_contraparte_indicadores.valor_numerico < #rangos.hasta)*/
inner join LN_contrapartes on LN_contraparte_indicadores.contraparte = LN_contrapartes.contraparte
inner join LN_gestiones on LN_contrapartes.contraparte = LN_gestiones.contraparte
inner join LN_cliente_productos on LN_contrapartes.cliente = LN_cliente_productos.cliente
inner join LN_indicadores ON
(LN_cliente_productos.producto = LN_indicadores.producto
AND LN_contraparte_indicadores.indicador = LN_indicadores.indicador)
inner join LN_productos on LN_productos.producto = LN_indicadores.producto
inner join LN_contraparte_familias on LN_contrapartes.contraparte = LN_contraparte_familias.contraparte
inner join LN_familias on LN_familias.familia = LN_contraparte_familias.familia
inner join LN_familia_productos on (LN_contraparte_familias.familia = LN_familia_productos.familia
and LN_indicadores.producto = LN_familia_productos.producto)
where LN_contrapartes.cliente = @p_cliente
and LN_indicadores.clave_indicador = @clave_indicador
and LN_contraparte_indicadores.visible = 1
and LN_indicadores.visible = 1
and LN_familias.visible = 1
and LN_productos.visible = 1
and LN_gestiones.desde <= getdate() and LN_gestiones.hasta >= getdate()
and LN_contrapartes.activo = 1
and isnull(ln_contrapartes.servicio_contratado,47)=@servicio_contratado
and LN_familia_productos.activo = 1
and LN_cliente_productos.activo = 1
AND LN_contrapartes.subcontratista = 0
and LN_contraparte_indicadores.gestion = ln_gestiones.gestion
/*
and ((LN_indicadores.clave_indicador = 'SCORE_IC' and
(LN_contrapartes.country_code = 'AR' and LN_productos.country_code = 'AR')
or
(LN_contrapartes.country_code != 'AR' and LN_productos.country_code is null)
) or (LN_indicadores.clave_indicador != 'SCORE_IC') )
*/
GROUP BY LN_indicadores.clave_indicador, #rangos.rango
) totales ON totales.rango = #rangos.rango
LEFT OUTER JOIN (
SELECT R1.rango, STUFF((
SELECT ',' + convert(varchar,T.contraparte)
from LN_contraparte_indicadores T
/*inner join #rangos on (format(LN_contraparte_indicadores.valor_numerico,'##0') >= #rangos.desde
and format(LN_contraparte_indicadores.valor_numerico,'##0') < #rangos.hasta)*/
inner join #rangos R on (T.valor_numerico >= R.desde
and T.valor_numerico < R.hasta)
inner join LN_contrapartes on T.contraparte = LN_contrapartes.contraparte
inner join LN_gestiones on LN_contrapartes.contraparte = LN_gestiones.contraparte
inner join LN_cliente_productos on LN_contrapartes.cliente = LN_cliente_productos.cliente
inner join LN_indicadores ON
(LN_cliente_productos.producto = LN_indicadores.producto
AND T.indicador = LN_indicadores.indicador)
inner join LN_productos on LN_productos.producto = LN_indicadores.producto
inner join LN_contraparte_familias on LN_contrapartes.contraparte = LN_contraparte_familias.contraparte
inner join LN_familias on LN_familias.familia = LN_contraparte_familias.familia
inner join LN_familia_productos on (LN_contraparte_familias.familia = LN_familia_productos.familia
and LN_indicadores.producto = LN_familia_productos.producto)
where LN_contrapartes.cliente = @p_cliente
and LN_indicadores.clave_indicador = @clave_indicador
and T.visible = 1
and LN_indicadores.visible = 1
and LN_familias.visible = 1
and LN_productos.visible = 1
and LN_gestiones.desde <= getdate() and LN_gestiones.hasta >= getdate()
and LN_contrapartes.activo = 1
and isnull(ln_contrapartes.servicio_contratado,47)=@servicio_contratado
and LN_familia_productos.activo = 1
and LN_cliente_productos.activo = 1
AND LN_contrapartes.subcontratista = 0
and T.gestion = ln_gestiones.gestion
and R1.rango = R.rango
FOR XML PATH('')
), 1, 1, '') AS lista
from LN_contraparte_indicadores T1
/*inner join #rangos on (format(LN_contraparte_indicadores.valor_numerico,'##0') >= #rangos.desde
and format(LN_contraparte_indicadores.valor_numerico,'##0') < #rangos.hasta)*/
inner join #rangos R1 on (T1.valor_numerico >= R1.desde
and T1.valor_numerico < R1.hasta)
inner join LN_contrapartes on T1.contraparte = LN_contrapartes.contraparte
inner join LN_gestiones on LN_contrapartes.contraparte = LN_gestiones.contraparte
inner join LN_cliente_productos on LN_contrapartes.cliente = LN_cliente_productos.cliente
inner join LN_indicadores ON
(LN_cliente_productos.producto = LN_indicadores.producto
AND T1.indicador = LN_indicadores.indicador)
inner join LN_productos on LN_productos.producto = LN_indicadores.producto
inner join LN_contraparte_familias on LN_contrapartes.contraparte = LN_contraparte_familias.contraparte
inner join LN_familias on LN_familias.familia = LN_contraparte_familias.familia
inner join LN_familia_productos on (LN_contraparte_familias.familia = LN_familia_productos.familia
and LN_indicadores.producto = LN_familia_productos.producto)
where LN_contrapartes.cliente = @p_cliente
and LN_indicadores.clave_indicador = @clave_indicador
and T1.visible = 1
and LN_indicadores.visible = 1
and LN_familias.visible = 1
and LN_productos.visible = 1
and LN_gestiones.desde <= getdate() and LN_gestiones.hasta >= getdate()
and LN_contrapartes.activo = 1
and isnull(ln_contrapartes.servicio_contratado,47)=@servicio_contratado
and LN_familia_productos.activo = 1
and LN_cliente_productos.activo = 1
AND LN_contrapartes.subcontratista = 0
and T1.gestion = ln_gestiones.gestion
) lista ON lista.rango = #rangos.rango
ORDER BY #rangos.rango
end
END
END
GO
GO
/*
exec LN_dashboard_graficos_segun_servicio 'COUNT_ADMINISTRADOS', 9936068,73
exec LN_dashboard_graficos_segun_servicio 'COUNT_CONTRATISTAS', 9936068,73
exec LN_dashboard_graficos_segun_servicio 'COUNT_SUBCONTRATISTAS', 7048064,73
exec LN_dashboard_graficos_segun_servicio 'COUNT_EMPLEADOS', 9936068,73
exec LN_dashboard_graficos_segun_servicio 'COUNT_VEHICULOS', 9936068,73
exec LN_dashboard_graficos_segun_servicio 'COUNT_DOCUMENTOS_IMPE', 9936068,73
exec LN_dashboard_graficos_segun_servicio 'GRAPH_CONTRATISTAS',9936068,73
exec LN_dashboard_graficos_segun_servicio 'GRAPH_SUBCONTRATISTAS',9936068,73
exec LN_dashboard_graficos_segun_servicio 'GRAPH_EMPLEADOS',9936068,73
exec LN_dashboard_graficos_segun_servicio 'GRAPH_IMPE_STATUS',9936068,73
exec LN_dashboard_graficos_segun_servicio 'GRAPH_CUMPLIMIENTO_MENSUAL',9936068,10
exec LN_dashboard_graficos_segun_servicio 'ENRIESGO',3920694,47
exec LN_dashboard_graficos_segun_servicio 'GRAFICOS_INDICADORES',2254875,10
exec LN_dashboard_graficos_segun_servicio 'GRAFICO_INFORME_COMERCIAL',@p_cliente,10
LN_dashboard_graficos_segun_servicio 'COUNT_ADMINISTRADOS',7048064,73
*/
CREATE OR ALTER PROCEDURE dbo.LN_dashboard_graficos_segun_servicio_AGB_08012025
@accion varchar(50),
@p_cliente int,
@servicio_contratado int
AS
BEGIN
SET NOCOUNT ON;
declare @nuevo int = dbo.PeriodoAdelantado()
declare @viejo int = dbo.PeriodoVencido()
declare @anterior int = dbo.PeriodoMenosDos()
IF (@accion = 'GRAFICO_INFORME_COMERCIAL')
BEGIN
EXEC LN_dashboard_graficos_filtrado 'GRAFICO_INFORME_COMERCIAL',@p_cliente,null,@servicio_contratado,0
RETURN
END
IF (@accion = 'GRAFICOS_INDICADORES')
if (@servicio_contratado=10)
BEGIN
select LN_productos.producto,ln.clave_indicador,LN_productos.etiqueta,
LN_productos.producto_id, LN_productos.balance, LN_productos.balance_carga,
LN_productos.balance_score, LN_productos.balance_analisis, LN_productos.balance_valoracion,
LN_productos.documentos, LN_productos.subcontratistas,LN.tipo_control , ln.etiqueta as etiqueta_indicador
from LN_cliente_indicadores lni
inner join LN_indicadores ln on ln.indicador = lni.indicador
inner join ln_productos on ln_productos.producto = ln.producto
where cliente = @p_cliente
and LN_productos.producto_id = 'graficosDashboard'
--and ln_productos.servicio_contratado in (@servicio_contratado,10,0)
and ln.servicio_contratado in (@servicio_contratado,10,0)
and lni.activo = 1
order by ln.orden desc
END
else
BEGIN
select LN_productos.producto,ln.clave_indicador,LN_productos.etiqueta,
LN_productos.producto_id, LN_productos.balance, LN_productos.balance_carga,
LN_productos.balance_score, LN_productos.balance_analisis, LN_productos.balance_valoracion,
LN_productos.documentos, LN_productos.subcontratistas, ln.tipo_control, ln.etiqueta as etiqueta_indicador
from LN_cliente_indicadores lni
inner join LN_indicadores ln on ln.indicador = lni.indicador
inner join ln_productos on ln_productos.producto = ln.producto
where cliente = @p_cliente
and LN_productos.producto_id = 'graficosDashboard'
and ln_productos.servicio_contratado in (@servicio_contratado,0)
and lni.activo = 1
and ln.servicio_contratado in (@servicio_contratado,0)
order by ln.orden asc
END
declare @estado_rec varchar(1) = 'A'
IF (@accion = 'COUNT_CONTRATISTAS' or @accion = 'COUNT_CONTRAPARTES')
BEGIN
/*
select ISNULL(contratistas.total_contratistas, 0) AS Total
from clientes
inner join led_contratos on clientes.cliente = led_contratos.cliente
left outer join
(select led_contratistas.cliente, count(distinct led_contratistas.contratista) AS total_contratistas
from led_contratistas
inner join led_contratista_periodo on led_contratistas.contratista = led_contratista_periodo.contratista
where led_contratista_periodo.periodo >= dbo.PeriodoVencido()
and led_contratistas.estado_contratista = @estado_rec
group by led_contratistas.cliente) contratistas
on clientes.cliente = contratistas.cliente
where clientes.estado_cliente = 'A'
and led_contratos.vigencia_hasta >= GETDATE()
and clientes.acceso_led = 1
and clientes.cliente = @p_cliente
order by clientes.nombre_cliente
*/
declare @total_con int = (select count(distinct LN_contrapartes.contraparte) AS Total
from LN_contrapartes
inner join LN_gestiones on LN_contrapartes.contraparte = LN_gestiones.contraparte
inner join LN_contraparte_indicadores on (LN_gestiones.contraparte = LN_contraparte_indicadores.contraparte
and LN_gestiones.gestion = LN_contraparte_indicadores.gestion)
inner join LN_indicadores on LN_contraparte_indicadores.indicador = LN_indicadores.indicador
inner join LN_cliente_productos on (LN_indicadores.producto = LN_cliente_productos.producto
and LN_contrapartes.cliente = LN_cliente_productos.cliente)
inner join LN_contraparte_familias on LN_contrapartes.contraparte = LN_contraparte_familias.contraparte
inner join LN_familia_productos on (LN_cliente_productos.producto = LN_familia_productos.producto
and LN_contraparte_familias.familia = LN_familia_productos.familia)
inner join LN_familias on LN_contraparte_familias.familia = LN_familias.familia
where LN_contrapartes.cliente = @p_cliente
and LN_contrapartes.activo = 1
and LN_familias.visible = 1
and LN_contraparte_familias.activo = 1
and LN_gestiones.desde <= GETDATE()
and LN_gestiones.hasta >= GETDATE()
and LN_familia_productos.activo = 1
and LN_cliente_productos.activo = 1
and LN_contrapartes.servicio_contratado = @servicio_contratado
and LN_familias.servicio_contratado = @servicio_contratado)
declare @lista_contrapartes_con varchar(max) = (select STUFF(
(SELECT distinct ', ' + convert(varchar,LN_contrapartes.contraparte) AS [text()]
from LN_contrapartes
inner join LN_gestiones on LN_contrapartes.contraparte = LN_gestiones.contraparte
inner join LN_contraparte_indicadores on (LN_gestiones.contraparte = LN_contraparte_indicadores.contraparte
and LN_gestiones.gestion = LN_contraparte_indicadores.gestion)
inner join LN_indicadores on LN_contraparte_indicadores.indicador = LN_indicadores.indicador
inner join LN_cliente_productos on (LN_indicadores.producto = LN_cliente_productos.producto
and LN_contrapartes.cliente = LN_cliente_productos.cliente)
inner join LN_contraparte_familias on LN_contrapartes.contraparte = LN_contraparte_familias.contraparte
inner join LN_familia_productos on (LN_cliente_productos.producto = LN_familia_productos.producto
and LN_contraparte_familias.familia = LN_familia_productos.familia)
inner join LN_familias on LN_contraparte_familias.familia = LN_familias.familia
where LN_contrapartes.cliente = @p_cliente
and LN_contrapartes.activo = 1
and LN_familias.visible = 1
and LN_contraparte_familias.activo = 1
and LN_gestiones.desde <= GETDATE()
and LN_gestiones.hasta >= GETDATE()
and LN_familia_productos.activo = 1
and LN_cliente_productos.activo = 1
and LN_contrapartes.servicio_contratado = @servicio_contratado
and LN_familias.servicio_contratado = @servicio_contratado
FOR XML PATH('')), 1, 2, ''))
select @total_con as Total, @lista_contrapartes_con as lista
END
IF (@accion = 'COUNT_SUBCONTRATISTAS')
BEGIN
declare @total_sub int = ( select ISNULL(subcontratistas.total_subcontratistas, 0) AS Total
from clientes
inner join led_contratos on clientes.cliente = led_contratos.cliente
left outer join
(select led_contratistas.cliente, count(distinct led_contratistas.contratista) AS total_subcontratistas
from led_contratistas
inner join led_subcontratista_periodo on led_contratistas.contratista = led_subcontratista_periodo.subcontratista
inner join led_contratistas contratista1 ON led_contratistas.contratista_1 = contratista1.contratista
where led_subcontratista_periodo.periodo >= dbo.PeriodoVencido()
and led_contratistas.estado_contratista = @estado_rec
and contratista1.estado_contratista = @estado_rec
group by led_contratistas.cliente) subcontratistas
on clientes.cliente = subcontratistas.cliente
where clientes.estado_cliente = 'A'
and led_contratos.vigencia_hasta >= GETDATE()
and clientes.acceso_led = 1
and clientes.cliente = @p_cliente)
declare @lista_contrapartes_sub varchar(max) = (select STUFF(
(SELECT distinct ', ' + convert(varchar,subcontratistas.contraparte) AS [text()]
from clientes
inner join led_contratos on clientes.cliente = led_contratos.cliente
left outer join
(select distinct led_contratistas.cliente, led_contratistas.contratista_1, LN_contrapartes.contraparte
from led_contratistas
inner join led_subcontratista_periodo on led_contratistas.contratista = led_subcontratista_periodo.subcontratista
inner join led_contratistas contratista1 ON led_contratistas.contratista_1 = contratista1.contratista
inner join LN_contrapartes ON led_contratistas.contratista_1 = LN_contrapartes.id_imperium
where led_subcontratista_periodo.periodo >= dbo.PeriodoVencido()
and led_contratistas.estado_contratista = @estado_rec
and contratista1.estado_contratista = @estado_rec
) subcontratistas
on clientes.cliente = subcontratistas.cliente
where clientes.estado_cliente = 'A'
and led_contratos.vigencia_hasta >= GETDATE()
and clientes.acceso_led = 1
and clientes.cliente = @p_cliente
FOR XML PATH('')), 1, 2, ''))
select @total_sub as Total, @lista_contrapartes_sub as lista
END
IF (@accion = 'COUNT_EMPLEADOS')
BEGIN
declare @total_emp int = (select ISNULL(empleados.total_empleados, 0) AS Total
from clientes
inner join led_contratos on clientes.cliente = led_contratos.cliente
left outer join
(select led_empleados.cliente, count(distinct led_empleados.empleado) AS total_empleados
from led_empleados inner join led_empleados_periodo
on led_empleados.empleado = led_empleados_periodo.empleado
inner join led_contratistas contratista1 ON led_empleados.contratista_1 = contratista1.contratista
where led_empleados_periodo.periodo >= dbo.PeriodoVencido()
and led_empleados.estado_empleado = @estado_rec
and contratista1.estado_contratista = @estado_rec
group by led_empleados.cliente) empleados
on clientes.cliente = empleados.cliente
where clientes.estado_cliente = 'A'
and led_contratos.vigencia_hasta >= GETDATE()
and clientes.acceso_led = 1
and clientes.cliente = @p_cliente)
declare @lista_contrapartes_emp varchar(max) = (select STUFF(
(SELECT distinct ', ' + convert(varchar,empleados.contraparte) AS [text()]
from clientes
inner join led_contratos on clientes.cliente = led_contratos.cliente
left outer join
(select distinct led_empleados.cliente, led_empleados.contratista_1, LN_contrapartes.contraparte
from led_empleados inner join led_empleados_periodo
on led_empleados.empleado = led_empleados_periodo.empleado
inner join led_contratistas contratista1 ON led_empleados.contratista_1 = contratista1.contratista
inner join LN_contrapartes ON led_empleados.contratista_1 = LN_contrapartes.id_imperium
where led_empleados_periodo.periodo >= dbo.PeriodoVencido()
and led_empleados.estado_empleado = @estado_rec
and contratista1.estado_contratista = @estado_rec
) empleados
on clientes.cliente = empleados.cliente
where clientes.estado_cliente = 'A'
and led_contratos.vigencia_hasta >= GETDATE()
and clientes.acceso_led = 1
and clientes.cliente = @p_cliente
FOR XML PATH('')), 1, 2, ''))
select @total_emp as Total, @lista_contrapartes_emp as lista
END
IF (@accion = 'COUNT_VEHICULOS')
BEGIN
declare @total_veh int = (select ISNULL(vehiculos.total_vehiculos, 0) AS Total
from clientes
inner join led_contratos on clientes.cliente = led_contratos.cliente
left outer join
(select led_vehiculos.cliente, count(distinct led_vehiculos.vehiculo) AS total_vehiculos
from led_vehiculos inner join led_vehiculos_periodo
on led_vehiculos.vehiculo = led_vehiculos_periodo.vehiculo
inner join led_contratistas contratista1 ON led_vehiculos.contratista_1 = contratista1.contratista
where led_vehiculos_periodo.periodo >= dbo.PeriodoVencido()
and led_vehiculos.estado_vehiculo = @estado_rec
and contratista1.estado_contratista = @estado_rec
group by led_vehiculos.cliente) vehiculos
on clientes.cliente = vehiculos.cliente
where clientes.estado_cliente = 'A'
and led_contratos.vigencia_hasta >= GETDATE()
and clientes.acceso_led = 1
and clientes.cliente = @p_cliente)
declare @lista_contrapartes_veh varchar(max) = (select STUFF(
(SELECT distinct ', ' + convert(varchar,vehiculos.contraparte) AS [text()]
from clientes
inner join led_contratos on clientes.cliente = led_contratos.cliente
left outer join
(select distinct led_vehiculos.cliente, led_vehiculos.contratista_1, LN_contrapartes.contraparte
from led_vehiculos inner join led_vehiculos_periodo
on led_vehiculos.vehiculo = led_vehiculos_periodo.vehiculo
inner join led_contratistas contratista1 ON led_vehiculos.contratista_1 = contratista1.contratista
inner join LN_contrapartes ON led_vehiculos.contratista_1 = LN_contrapartes.id_imperium
where led_vehiculos_periodo.periodo >= dbo.PeriodoVencido()
and led_vehiculos.estado_vehiculo = @estado_rec
and contratista1.estado_contratista = @estado_rec
) vehiculos
on clientes.cliente = vehiculos.cliente
where clientes.estado_cliente = 'A'
and led_contratos.vigencia_hasta >= GETDATE()
and clientes.acceso_led = 1
and clientes.cliente = @p_cliente
FOR XML PATH('')), 1, 2, ''))
select @total_veh as Total, @lista_contrapartes_veh as lista
END
IF (@accion = 'COUNT_DOCUMENTOS_IMPE')
BEGIN
select ISNULL(docs.total_docs, 0) AS Total
from clientes inner join led_contratos on clientes.cliente = led_contratos.cliente
left outer join
(select data.cliente, SUM(data.total_documentos) as total_docs
from
(select led_docs.cliente, COUNT(*) AS total_documentos
from led_docs
inner join led_contratistas on led_docs.contratista = led_contratistas.contratista
inner join led_cliente_contratista on
(led_docs.tipo_doc = led_cliente_contratista.tipo_doc
and led_docs.cliente = led_cliente_contratista.cliente
and led_contratistas.tipo_contratista = led_cliente_contratista.tipo_contratista)
where led_docs.periodo >= dbo.PeriodoVencido()
and led_docs.doc_id_lista is null
and led_docs.estado_doc IN ('N','I','V','R')
and led_cliente_contratista.activo = 1
and led_cliente_contratista.requiere_upload = 1
and led_cliente_contratista.verificacion = 'F'
and led_contratistas.estado_contratista = @estado_rec
group by led_docs.cliente
UNION
select led_docs.cliente, COUNT(*) AS total_documentos
from led_docs
inner join led_empleados on led_docs.empleado = led_empleados.empleado
inner join led_cliente_empleado on
(led_docs.tipo_doc = led_cliente_empleado.tipo_doc
and led_docs.cliente = led_cliente_empleado.cliente
and led_empleados.tipo_empleado = led_cliente_empleado.tipo_empleado)
where led_docs.periodo >= dbo.PeriodoVencido()
and led_docs.doc_id_lista is null
and led_docs.estado_doc IN ('N','I','V','R')
and led_cliente_empleado.activo = 1
and led_cliente_empleado.requiere_upload = 1
and led_cliente_empleado.verificacion = 'F'
and led_empleados.estado_empleado = @estado_rec
group by led_docs.cliente
UNION
select led_docs.cliente, COUNT(*) AS total_documentos
from led_docs
inner join led_vehiculos on led_docs.vehiculo = led_vehiculos.vehiculo
inner join led_cliente_vehiculo on
(led_docs.tipo_doc = led_cliente_vehiculo.tipo_doc
and led_docs.cliente = led_cliente_vehiculo.cliente
and led_vehiculos.tipo_vehiculo = led_cliente_vehiculo.tipo_vehiculo)
where led_docs.periodo >= dbo.PeriodoVencido()
and led_docs.doc_id_lista is null
and led_docs.estado_doc IN ('N','I','V','R')
and led_cliente_vehiculo.activo = 1
and led_cliente_vehiculo.requiere_upload = 1
and led_cliente_vehiculo.verificacion = 'F'
and led_vehiculos.estado_vehiculo = @estado_rec
group by led_docs.cliente) data
group by data.cliente) docs
on clientes.cliente = docs.cliente
where clientes.estado_cliente = 'A'
and led_contratos.vigencia_hasta >= GETDATE()
and clientes.acceso_led = 1
and clientes.cliente = @p_cliente
order by clientes.nombre_cliente
END
IF (@accion = 'COUNT_ADMINISTRADOS')
BEGIN
declare @totales table (total int,lista varchar(max))
insert into @totales(total,lista)
exec [LN_dashboard_graficos_segun_servicio] 'COUNT_CONTRATISTAS', @p_cliente, @servicio_contratado
insert into @totales(total,lista)
exec [LN_dashboard_graficos_segun_servicio] 'COUNT_SUBCONTRATISTAS', @p_cliente, @servicio_contratado
insert into @totales(total,lista)
exec [LN_dashboard_graficos_segun_servicio] 'COUNT_EMPLEADOS', @p_cliente, @servicio_contratado
insert into @totales(total,lista)
exec [LN_dashboard_graficos_segun_servicio] 'COUNT_VEHICULOS', @p_cliente, @servicio_contratado
select sum(ISNULL(total, 0)) as Total
from @totales
END
/*
IF (@accion = 'COUNT_ADMINISTRADOS')
BEGIN
select clientes.cliente, clientes.nombre_cliente, led_contratos.vigencia_desde, led_contratos.vigencia_hasta,
led_contratos.minimo_recursos, led_contratos.maximo_recursos, led_contratos.autogestion,
ISNULL(contratistas.total_contratistas, 0) AS total_contratistas,
ISNULL(subcontratistas.total_subcontratistas, 0) AS total_subcontratistas,
ISNULL(empleados.total_empleados, 0) AS total_empleados,
ISNULL(vehiculos.total_vehiculos, 0) AS total_vehiculos,
ISNULL(contratistas.total_contratistas, 0) + ISNULL(subcontratistas.total_subcontratistas, 0) + ISNULL(empleados.total_empleados, 0) + ISNULL(vehiculos.total_vehiculos, 0) AS total_recursos,
ISNULL(docs.total_docs, 0) AS total_docs
from clientes inner join led_contratos on clientes.cliente = led_contratos.cliente
left outer join
(select led_contratistas.cliente, count(distinct led_contratistas.contratista) AS total_contratistas
from led_contratistas
inner join led_contratista_periodo on led_contratistas.contratista = led_contratista_periodo.contratista
where led_contratista_periodo.periodo >= dbo.PeriodoVencido()
and led_contratistas.estado_contratista = @estado_rec
group by led_contratistas.cliente) contratistas
on clientes.cliente = contratistas.cliente
left outer join
(select led_contratistas.cliente, count(distinct led_contratistas.contratista) AS total_subcontratistas
from led_contratistas
inner join led_subcontratista_periodo on led_contratistas.contratista = led_subcontratista_periodo.subcontratista
inner join led_contratistas contratista1 ON led_contratistas.contratista_1 = contratista1.contratista
where led_subcontratista_periodo.periodo >= dbo.PeriodoVencido()
and led_contratistas.estado_contratista = @estado_rec
and contratista1.estado_contratista = @estado_rec
group by led_contratistas.cliente) subcontratistas
on clientes.cliente = subcontratistas.cliente
left outer join
(select led_empleados.cliente, count(distinct led_empleados.empleado) AS total_empleados
from led_empleados inner join led_empleados_periodo
on led_empleados.empleado = led_empleados_periodo.empleado
inner join led_contratistas contratista1 ON led_empleados.contratista_1 = contratista1.contratista
where led_empleados_periodo.periodo >= dbo.PeriodoVencido()
and led_empleados.estado_empleado = @estado_rec
and contratista1.estado_contratista = @estado_rec
group by led_empleados.cliente) empleados
on clientes.cliente = empleados.cliente
left outer join
(select led_vehiculos.cliente, count(distinct led_vehiculos.vehiculo) AS total_vehiculos
from led_vehiculos inner join led_vehiculos_periodo
on led_vehiculos.vehiculo = led_vehiculos_periodo.vehiculo
inner join led_contratistas contratista1 ON led_vehiculos.contratista_1 = contratista1.contratista
where led_vehiculos_periodo.periodo >= dbo.PeriodoVencido()
and led_vehiculos.estado_vehiculo = @estado_rec
and contratista1.estado_contratista = @estado_rec
group by led_vehiculos.cliente) vehiculos
on clientes.cliente = vehiculos.cliente
left outer join
(select data.cliente, SUM(data.total_documentos) as total_docs
from
(select led_docs.cliente, COUNT(*) AS total_documentos
from led_docs
inner join led_contratistas on led_docs.contratista = led_contratistas.contratista
inner join led_cliente_contratista on
(led_docs.tipo_doc = led_cliente_contratista.tipo_doc
and led_docs.cliente = led_cliente_contratista.cliente
and led_contratistas.tipo_contratista = led_cliente_contratista.tipo_contratista)
where led_docs.periodo >= dbo.PeriodoVencido()
and led_docs.doc_id_lista is null
and led_docs.estado_doc IN ('N','I','V','R')
and led_cliente_contratista.activo = 1
and led_cliente_contratista.requiere_upload = 1
and led_cliente_contratista.verificacion = 'F'
and led_contratistas.estado_contratista = @estado_rec
group by led_docs.cliente
UNION
select led_docs.cliente, COUNT(*) AS total_documentos
from led_docs
inner join led_empleados on led_docs.empleado = led_empleados.empleado
inner join led_cliente_empleado on
(led_docs.tipo_doc = led_cliente_empleado.tipo_doc
and led_docs.cliente = led_cliente_empleado.cliente
and led_empleados.tipo_empleado = led_cliente_empleado.tipo_empleado)
where led_docs.periodo >= dbo.PeriodoVencido()
and led_docs.doc_id_lista is null
and led_docs.estado_doc IN ('N','I','V','R')
and led_cliente_empleado.activo = 1
and led_cliente_empleado.requiere_upload = 1
and led_cliente_empleado.verificacion = 'F'
and led_empleados.estado_empleado = @estado_rec
group by led_docs.cliente
UNION
select led_docs.cliente, COUNT(*) AS total_documentos
from led_docs
inner join led_vehiculos on led_docs.vehiculo = led_vehiculos.vehiculo
inner join led_cliente_vehiculo on
(led_docs.tipo_doc = led_cliente_vehiculo.tipo_doc
and led_docs.cliente = led_cliente_vehiculo.cliente
and led_vehiculos.tipo_vehiculo = led_cliente_vehiculo.tipo_vehiculo)
where led_docs.periodo >= dbo.PeriodoVencido()
and led_docs.doc_id_lista is null
and led_docs.estado_doc IN ('N','I','V','R')
and led_cliente_vehiculo.activo = 1
and led_cliente_vehiculo.requiere_upload = 1
and led_cliente_vehiculo.verificacion = 'F'
and led_vehiculos.estado_vehiculo = @estado_rec
group by led_docs.cliente) data
group by data.cliente) docs
on clientes.cliente = docs.cliente
where clientes.estado_cliente = 'A'
and led_contratos.vigencia_hasta >= GETDATE()
and clientes.acceso_led = 1
and clientes.cliente = @p_cliente
order by clientes.nombre_cliente
END
*/
IF (@accion = 'ENRIESGO' or @accion = 'OPORTUNIDADES')
BEGIN
declare @cantidad int
declare @lista_contrapartes varchar(max)
select
@cantidad =
count(distinct LN_contraparte_indicadores.contraparte)
from LN_contraparte_indicadores
inner join LN_gestiones on ln_gestiones.contraparte = LN_contraparte_indicadores.contraparte
where LN_contraparte_indicadores.contraparte in (select distinct ln_contrapartes.contraparte
from ln_contrapartes
INNER JOIN LN_contraparte_familias ON LN_contrapartes.contraparte = LN_contraparte_familias.contraparte
INNER JOIN LN_familias ON LN_contraparte_familias.familia = LN_familias.familia
inner join LN_gestiones on LN_contrapartes.contraparte = LN_gestiones.contraparte
where LN_contrapartes.cliente = @p_cliente
and LN_gestiones.desde <= GETDATE()
and LN_gestiones.hasta >= GETDATE()
and LN_gestiones.vigente = 1
and LN_contrapartes.activo = 1
and isnull(ln_contrapartes.servicio_contratado,47)=@servicio_contratado
and LN_contrapartes.subcontratista = 0
and LN_familias.visible = 1
and LN_contraparte_familias.activo = 1
)
and indicador in (select indicador from ln_indicadores where clave_indicador = @accion )
and valor_numerico = 1
and LN_contraparte_indicadores.visible = 1
and LN_gestiones.desde <= GETDATE()
and LN_gestiones.hasta >= GETDATE()
and LN_gestiones.vigente = 1
and LN_contraparte_indicadores.gestion = LN_gestiones.gestion
select @lista_contrapartes = STUFF(
(SELECT distinct ', ' + convert(varchar,LN_contraparte_indicadores.contraparte) AS [text()]
from LN_contraparte_indicadores
inner join LN_gestiones on ln_gestiones.contraparte = LN_contraparte_indicadores.contraparte
where LN_contraparte_indicadores.contraparte in (select distinct ln_contrapartes.contraparte
from ln_contrapartes
INNER JOIN LN_contraparte_familias ON LN_contrapartes.contraparte = LN_contraparte_familias.contraparte
INNER JOIN LN_familias ON LN_contraparte_familias.familia = LN_familias.familia
inner join LN_gestiones on LN_contrapartes.contraparte = LN_gestiones.contraparte
where LN_contrapartes.cliente = @p_cliente
and LN_gestiones.desde <= GETDATE()
and LN_gestiones.hasta >= GETDATE()
and LN_gestiones.vigente = 1
and LN_contrapartes.activo = 1
and isnull(ln_contrapartes.servicio_contratado,47)=@servicio_contratado
and LN_contrapartes.subcontratista = 0
and LN_familias.visible = 1
and LN_contraparte_familias.activo = 1
)
and indicador in (select indicador from ln_indicadores where clave_indicador = @accion )
and valor_numerico = 1
and LN_contraparte_indicadores.visible = 1
and LN_gestiones.desde <= GETDATE()
and LN_gestiones.hasta >= GETDATE()
and LN_gestiones.vigente = 1
and LN_contraparte_indicadores.gestion = LN_gestiones.gestion
FOR XML PATH('')), 1, 2, '')
select @cantidad as total, @lista_contrapartes as lista
END
IF (@accion = 'GRAPH_CUMPLIMIENTO_MENSUAL')
BEGIN
exec Imperium_vista_contratista_Cumplimiento_Mensual_todos null, @p_cliente
END
IF (@accion = 'GRAPH_CONTRATISTAS')
BEGIN
select led_compliance.periodo, led_compliance.led_seccion, led_compliance.estado_compliance,
case
when led_compliance.estado_compliance = 'R' then 'ROJO'
when led_compliance.estado_compliance = 'A' then 'AMARILLO'
when led_compliance.estado_compliance = 'V' then 'VERDE'
else null
end as etiqueta,
case
when led_compliance.estado_compliance = 'R' then 'A72B2A'
when led_compliance.estado_compliance = 'A' then 'FFB81C'
when led_compliance.estado_compliance = 'V' then '63b68c'
else null
end as color,
COUNT(*) as total
from led_compliance
inner join led_contratistas on led_compliance.contratista = led_contratistas.contratista
inner join led_contratista_periodo on (led_contratistas.contratista = led_contratista_periodo.contratista
and led_compliance.periodo = led_contratista_periodo.periodo)
where
led_compliance.periodo = @viejo
and
led_compliance.led_seccion = 'C'
and
led_compliance.estado_compliance = 'V'
and
led_contratistas.cliente = @p_cliente
and
led_contratistas.estado_contratista = 'A'
group by led_compliance.periodo, led_compliance.led_seccion, led_compliance.estado_compliance
union
select led_compliance.periodo, led_compliance.led_seccion, led_compliance.estado_compliance,
case
when led_compliance.estado_compliance = 'R' then 'ROJO'
when led_compliance.estado_compliance = 'A' then 'AMARILLO'
when led_compliance.estado_compliance = 'V' then 'VERDE'
else null
end as etiqueta,
case
when led_compliance.estado_compliance = 'R' then 'A72B2A'
when led_compliance.estado_compliance = 'A' then 'FFB81C'
when led_compliance.estado_compliance = 'V' then '63b68c'
else null
end as color,
COUNT(*) as total
from led_compliance
inner join led_contratistas on led_compliance.contratista = led_contratistas.contratista
inner join led_contratista_periodo on (led_contratistas.contratista = led_contratista_periodo.contratista
and led_compliance.periodo = led_contratista_periodo.periodo)
where
led_compliance.periodo = @viejo
and
led_compliance.led_seccion = 'C'
and
led_compliance.estado_compliance = 'A'
and
led_contratistas.cliente = @p_cliente
and
led_contratistas.estado_contratista = 'A'
group by led_compliance.periodo, led_compliance.led_seccion, led_compliance.estado_compliance
union
select led_compliance.periodo, led_compliance.led_seccion, led_compliance.estado_compliance,
case
when led_compliance.estado_compliance = 'R' then 'ROJO'
when led_compliance.estado_compliance = 'A' then 'AMARILLO'
when led_compliance.estado_compliance = 'V' then 'VERDE'
else null
end as etiqueta,
case
when led_compliance.estado_compliance = 'R' then 'A72B2A'
when led_compliance.estado_compliance = 'A' then 'FFB81C'
when led_compliance.estado_compliance = 'V' then '63b68c'
else null
end as color,
COUNT(*) as total
from led_compliance
inner join led_contratistas on led_compliance.contratista = led_contratistas.contratista
inner join led_contratista_periodo on (led_contratistas.contratista = led_contratista_periodo.contratista
and led_compliance.periodo = led_contratista_periodo.periodo)
where
led_compliance.periodo = @viejo
and
led_compliance.led_seccion = 'C'
and
led_compliance.estado_compliance = 'R'
and
led_contratistas.cliente = @p_cliente
and
led_contratistas.estado_contratista = 'A'
group by led_compliance.periodo, led_compliance.led_seccion, led_compliance.estado_compliance
END
IF (@accion = 'GRAPH_SUBCONTRATISTAS')
BEGIN
select led_compliance.periodo, 'S' as led_seccion, led_compliance.estado_compliance,
case
when led_compliance.estado_compliance = 'R' then 'ROJO'
when led_compliance.estado_compliance = 'A' then 'AMARILLO'
when led_compliance.estado_compliance = 'V' then 'VERDE'
else null
end as etiqueta,
case
when led_compliance.estado_compliance = 'R' then 'A72B2A'
when led_compliance.estado_compliance = 'A' then 'FFB81C'
when led_compliance.estado_compliance = 'V' then '63b68c'
else null
end as color,
COUNT(*) as total
from led_compliance
inner join led_contratistas on led_compliance.contratista = led_contratistas.contratista
inner join led_subcontratista_periodo on (led_contratistas.contratista = led_subcontratista_periodo.subcontratista
and led_compliance.periodo = led_subcontratista_periodo.periodo)
inner join led_contratistas contratistas_1 on led_contratistas.contratista_1 = contratistas_1.contratista
inner join led_contratista_periodo on (contratistas_1.contratista = led_contratista_periodo.contratista
and led_compliance.periodo = led_contratista_periodo.periodo)
where
led_compliance.periodo = @viejo
and
led_compliance.led_seccion = 'C'
and
led_compliance.estado_compliance = 'V'
and
led_contratistas.cliente = @p_cliente
and
led_contratistas.estado_contratista = 'A'
AND contratistas_1.estado_contratista = 'A'
group by led_compliance.periodo, led_compliance.led_seccion, led_compliance.estado_compliance
union
select led_compliance.periodo, 'S' as led_seccion, led_compliance.estado_compliance,
case
when led_compliance.estado_compliance = 'R' then 'ROJO'
when led_compliance.estado_compliance = 'A' then 'AMARILLO'
when led_compliance.estado_compliance = 'V' then 'VERDE'
else null
end as etiqueta,
case
when led_compliance.estado_compliance = 'R' then 'A72B2A'
when led_compliance.estado_compliance = 'A' then 'FFB81C'
when led_compliance.estado_compliance = 'V' then '63b68c'
else null
end as color,
COUNT(*) as total
from led_compliance
inner join led_contratistas on led_compliance.contratista = led_contratistas.contratista
inner join led_subcontratista_periodo on (led_contratistas.contratista = led_subcontratista_periodo.subcontratista
and led_compliance.periodo = led_subcontratista_periodo.periodo)
inner join led_contratistas contratistas_1 on led_contratistas.contratista_1 = contratistas_1.contratista
inner join led_contratista_periodo on (contratistas_1.contratista = led_contratista_periodo.contratista
and led_compliance.periodo = led_contratista_periodo.periodo)
where
led_compliance.periodo = @viejo
and
led_compliance.led_seccion = 'C'
and
led_compliance.estado_compliance = 'A'
and
led_contratistas.cliente = @p_cliente
and
led_contratistas.estado_contratista = 'A'
AND contratistas_1.estado_contratista = 'A'
group by led_compliance.periodo, led_compliance.led_seccion, led_compliance.estado_compliance
union
select led_compliance.periodo, 'S' as led_seccion, led_compliance.estado_compliance,
case
when led_compliance.estado_compliance = 'R' then 'ROJO'
when led_compliance.estado_compliance = 'A' then 'AMARILLO'
when led_compliance.estado_compliance = 'V' then 'VERDE'
else null
end as etiqueta,
case
when led_compliance.estado_compliance = 'R' then 'A72B2A'
when led_compliance.estado_compliance = 'A' then 'FFB81C'
when led_compliance.estado_compliance = 'V' then '63b68c'
else null
end as color,
COUNT(*) as total
from led_compliance
inner join led_contratistas on led_compliance.contratista = led_contratistas.contratista
inner join led_subcontratista_periodo on (led_contratistas.contratista = led_subcontratista_periodo.subcontratista
and led_compliance.periodo = led_subcontratista_periodo.periodo)
inner join led_contratistas contratistas_1 on led_contratistas.contratista_1 = contratistas_1.contratista
inner join led_contratista_periodo on (contratistas_1.contratista = led_contratista_periodo.contratista
and led_compliance.periodo = led_contratista_periodo.periodo)
where
led_compliance.periodo = @viejo
and
led_compliance.led_seccion = 'C'
and
led_compliance.estado_compliance = 'R'
and
led_contratistas.cliente = @p_cliente
and
led_contratistas.estado_contratista = 'A'
AND contratistas_1.estado_contratista = 'A'
group by led_compliance.periodo, led_compliance.led_seccion, led_compliance.estado_compliance
END
IF (@accion = 'GRAPH_EMPLEADOS')
BEGIN
select led_compliance.periodo, led_compliance.led_seccion, led_compliance.estado_compliance,
case
when led_compliance.estado_compliance = 'R' then 'ROJO'
when led_compliance.estado_compliance = 'A' then 'AMARILLO'
when led_compliance.estado_compliance = 'V' then 'VERDE'
else null
end as etiqueta,
case
when led_compliance.estado_compliance = 'R' then 'A72B2A'
when led_compliance.estado_compliance = 'A' then 'FFB81C'
when led_compliance.estado_compliance = 'V' then '63b68c'
else null
end as color,
COUNT(*) as total
from led_compliance
inner join led_contratistas on led_compliance.contratista = led_contratistas.contratista
inner join led_contratista_periodo on (led_contratistas.contratista = led_contratista_periodo.contratista
and led_compliance.periodo = led_contratista_periodo.periodo)
where
led_compliance.periodo = @viejo
and
led_compliance.led_seccion = 'E'
and
led_compliance.estado_compliance = 'V'
and
led_contratistas.cliente = @p_cliente
and
led_contratistas.estado_contratista = 'A'
group by led_compliance.periodo, led_compliance.led_seccion, led_compliance.estado_compliance
union
select led_compliance.periodo, led_compliance.led_seccion, led_compliance.estado_compliance,
case
when led_compliance.estado_compliance = 'R' then 'ROJO'
when led_compliance.estado_compliance = 'A' then 'AMARILLO'
when led_compliance.estado_compliance = 'V' then 'VERDE'
else null
end as etiqueta,
case
when led_compliance.estado_compliance = 'R' then 'A72B2A'
when led_compliance.estado_compliance = 'A' then 'FFB81C'
when led_compliance.estado_compliance = 'V' then '63b68c'
else null
end as color,
COUNT(*) as total
from led_compliance
inner join led_contratistas on led_compliance.contratista = led_contratistas.contratista
inner join led_contratista_periodo on (led_contratistas.contratista = led_contratista_periodo.contratista
and led_compliance.periodo = led_contratista_periodo.periodo)
where
led_compliance.periodo = @viejo
and
led_compliance.led_seccion = 'E'
and
led_compliance.estado_compliance = 'A'
and
led_contratistas.cliente = @p_cliente
and
led_contratistas.estado_contratista = 'A'
group by led_compliance.periodo, led_compliance.led_seccion, led_compliance.estado_compliance
union
select led_compliance.periodo, led_compliance.led_seccion, led_compliance.estado_compliance,
case
when led_compliance.estado_compliance = 'R' then 'ROJO'
when led_compliance.estado_compliance = 'A' then 'AMARILLO'
when led_compliance.estado_compliance = 'V' then 'VERDE'
else null
end as etiqueta,
case
when led_compliance.estado_compliance = 'R' then 'A72B2A'
when led_compliance.estado_compliance = 'A' then 'FFB81C'
when led_compliance.estado_compliance = 'V' then '63b68c'
else null
end as color,
COUNT(*) as total
from led_compliance
inner join led_contratistas on led_compliance.contratista = led_contratistas.contratista
inner join led_contratista_periodo on (led_contratistas.contratista = led_contratista_periodo.contratista
and led_compliance.periodo = led_contratista_periodo.periodo)
where
led_compliance.periodo = @viejo
and
led_compliance.led_seccion = 'E'
and
led_compliance.estado_compliance = 'R'
and
led_contratistas.cliente = @p_cliente
and
led_contratistas.estado_contratista = 'A'
group by led_compliance.periodo, led_compliance.led_seccion, led_compliance.estado_compliance
END
IF (@accion = 'GRAPH_VEHICULOS')
BEGIN
select led_compliance.periodo, led_compliance.led_seccion, led_compliance.estado_compliance,
case
when led_compliance.estado_compliance = 'R' then 'ROJO'
when led_compliance.estado_compliance = 'A' then 'AMARILLO'
when led_compliance.estado_compliance = 'V' then 'VERDE'
else null
end as etiqueta,
case
when led_compliance.estado_compliance = 'R' then 'A72B2A'
when led_compliance.estado_compliance = 'A' then 'FFB81C'
when led_compliance.estado_compliance = 'V' then '63b68c'
else null
end as color,
COUNT(*) as total
from led_compliance
inner join led_contratistas on led_compliance.contratista = led_contratistas.contratista
inner join led_contratista_periodo on (led_contratistas.contratista = led_contratista_periodo.contratista
and led_compliance.periodo = led_contratista_periodo.periodo)
where
led_compliance.periodo = @viejo
and
led_compliance.led_seccion = 'V'
and
led_compliance.estado_compliance = 'V'
and
led_contratistas.cliente = @p_cliente
and
led_contratistas.estado_contratista = 'A'
group by led_compliance.periodo, led_compliance.led_seccion, led_compliance.estado_compliance
union
select led_compliance.periodo, led_compliance.led_seccion, led_compliance.estado_compliance,
case
when led_compliance.estado_compliance = 'R' then 'ROJO'
when led_compliance.estado_compliance = 'A' then 'AMARILLO'
when led_compliance.estado_compliance = 'V' then 'VERDE'
else null
end as etiqueta,
case
when led_compliance.estado_compliance = 'R' then 'A72B2A'
when led_compliance.estado_compliance = 'A' then 'FFB81C'
when led_compliance.estado_compliance = 'V' then '63b68c'
else null
end as color,
COUNT(*) as total
from led_compliance
inner join led_contratistas on led_compliance.contratista = led_contratistas.contratista
inner join led_contratista_periodo on (led_contratistas.contratista = led_contratista_periodo.contratista
and led_compliance.periodo = led_contratista_periodo.periodo)
where
led_compliance.periodo = @viejo
and
led_compliance.led_seccion = 'V'
and
led_compliance.estado_compliance = 'A'
and
led_contratistas.cliente = @p_cliente
and
led_contratistas.estado_contratista = 'A'
group by led_compliance.periodo, led_compliance.led_seccion, led_compliance.estado_compliance
union
select led_compliance.periodo, led_compliance.led_seccion, led_compliance.estado_compliance,
case
when led_compliance.estado_compliance = 'R' then 'ROJO'
when led_compliance.estado_compliance = 'A' then 'AMARILLO'
when led_compliance.estado_compliance = 'V' then 'VERDE'
else null
end as etiqueta,
case
when led_compliance.estado_compliance = 'R' then 'A72B2A'
when led_compliance.estado_compliance = 'A' then 'FFB81C'
when led_compliance.estado_compliance = 'V' then '63b68c'
else null
end as color,
COUNT(*) as total
from led_compliance
inner join led_contratistas on led_compliance.contratista = led_contratistas.contratista
inner join led_contratista_periodo on (led_contratistas.contratista = led_contratista_periodo.contratista
and led_compliance.periodo = led_contratista_periodo.periodo)
where
led_compliance.periodo = @viejo
and
led_compliance.led_seccion = 'V'
and
led_compliance.estado_compliance = 'R'
and
led_contratistas.cliente = @p_cliente
and
led_contratistas.estado_contratista = 'A'
group by led_compliance.periodo, led_compliance.led_seccion, led_compliance.estado_compliance
END
declare @clave_indicador varchar(100)
create table #rangos (
rango varchar(2),
etiqueta varchar(20),
etiqueta_texto varchar(100) NULL,
color varchar(6),
total int,
desde float,
hasta float)
IF (@accion = 'GRAPH_IMPE_STATUS') BEGIN set @clave_indicador = 'IMPE_STATUS' END
IF (@accion = 'GRAPH_IMPE_STATUS')
BEGIN
-- Si tiene rangos definidos en ln_cliente_nivel
if (select COUNT(*) from LN_cliente_nivel where cliente = @p_cliente
and desde >= -100
and indicador in (
select distinct LN_indicadores.indicador from ln_cliente_indicadores
inner join LN_indicadores on LN_indicadores.indicador = LN_cliente_indicadores.indicador
where clave_indicador = @clave_indicador
and cliente = @p_cliente
union
select distinct LN_indicadores.indicador from LN_indicadores
inner join LN_productos on LN_productos.producto = LN_indicadores.producto
inner join LN_cliente_productos on LN_cliente_productos.producto = LN_indicadores.producto
where LN_productos.suscribe_indicadores = 0
and clave_indicador = @clave_indicador
and LN_cliente_productos.cliente = @p_cliente
)) > 0
begin
-- Si tiene textos muestra en los pies de los graficos ese texto
if (select COUNT(*) from LN_cliente_nivel where cliente = @p_cliente
and desde >= -100
and texto is not null
and indicador in (
select distinct LN_indicadores.indicador from ln_cliente_indicadores
inner join LN_indicadores on LN_indicadores.indicador = LN_cliente_indicadores.indicador
where clave_indicador = @clave_indicador
and cliente = @p_cliente
union
select distinct LN_indicadores.indicador from LN_indicadores
inner join LN_productos on LN_productos.producto = LN_indicadores.producto
inner join LN_cliente_productos on LN_cliente_productos.producto = LN_indicadores.producto
where LN_productos.suscribe_indicadores = 0
and clave_indicador = @clave_indicador
and LN_cliente_productos.cliente = @p_cliente
)) > 0
begin
insert into #rangos
select 'R'+convert(varchar,ROW_NUMBER() OVER(ORDER BY desde desc)) AS Row,
texto, texto, color_fondo, 0, desde, hasta
from LN_cliente_nivel where cliente = @p_cliente
and desde >= -100
and indicador in (
select distinct LN_indicadores.indicador from ln_cliente_indicadores
inner join LN_indicadores on LN_indicadores.indicador = LN_cliente_indicadores.indicador
where clave_indicador = @clave_indicador
and cliente = @p_cliente
union
select distinct LN_indicadores.indicador from LN_indicadores
inner join LN_productos on LN_productos.producto = LN_indicadores.producto
inner join LN_cliente_productos on LN_cliente_productos.producto = LN_indicadores.producto
where LN_productos.suscribe_indicadores = 0
and clave_indicador = @clave_indicador
and LN_cliente_productos.cliente = @p_cliente
)
order by desde desc
end
else
begin
-- Si no tiene texto arma el texto con el desde-hasta para mostrar como pie
insert into #rangos
select 'R'+convert(varchar,ROW_NUMBER() OVER(ORDER BY desde desc)) AS Row,
convert(varchar,desde) + '-' + convert(varchar,hasta) as texto,
convert(varchar,desde) + '-' + convert(varchar,hasta) as texto2,
color_fondo, 0, desde, hasta
from LN_cliente_nivel where cliente = @p_cliente
and desde >= -100
and indicador in (
select distinct LN_indicadores.indicador from ln_cliente_indicadores
inner join LN_indicadores on LN_indicadores.indicador = LN_cliente_indicadores.indicador
where clave_indicador = @clave_indicador
and cliente = @p_cliente
union
select distinct LN_indicadores.indicador from LN_indicadores
inner join LN_productos on LN_productos.producto = LN_indicadores.producto
inner join LN_cliente_productos on LN_cliente_productos.producto = LN_indicadores.producto
where LN_productos.suscribe_indicadores = 0
and clave_indicador = @clave_indicador
and LN_cliente_productos.cliente = @p_cliente
)
order by desde desc
end
end
END
if (@accion = 'GRAPH_IMPE_STATUS' )
BEGIN
if ((select top 1 tipo_dato from LN_indicadores
inner join LN_cliente_productos on LN_cliente_productos.producto = LN_indicadores.producto
where clave_indicador = @clave_indicador
and LN_cliente_productos.cliente = @p_cliente) = 'F')
begin
SELECT distinct ISNULL(totales.clave_indicador,@clave_indicador) as clave_indicador,
#rangos.rango, #rangos.etiqueta,
#rangos.etiqueta_texto, #rangos.color,
#rangos.desde, #rangos.hasta, ISNULL(totales.total,0) as total, lista.lista as lista
FROM #rangos
LEFT OUTER JOIN (
SELECT LN_indicadores.clave_indicador, #rangos.rango, COUNT(*) AS total
from LN_contraparte_indicadores
/*inner join #rangos on (format(LN_contraparte_indicadores.valor_numerico,'##0') >= #rangos.desde
and format(LN_contraparte_indicadores.valor_numerico,'##0') < #rangos.hasta)*/
inner join #rangos on (LN_contraparte_indicadores.valor_numerico >= #rangos.desde
and LN_contraparte_indicadores.valor_numerico < #rangos.hasta)
inner join LN_contrapartes on LN_contraparte_indicadores.contraparte = LN_contrapartes.contraparte
inner join LN_gestiones on LN_contrapartes.contraparte = LN_gestiones.contraparte
inner join LN_cliente_productos on LN_contrapartes.cliente = LN_cliente_productos.cliente
inner join LN_indicadores ON
(LN_cliente_productos.producto = LN_indicadores.producto
AND LN_contraparte_indicadores.indicador = LN_indicadores.indicador)
inner join LN_productos on LN_productos.producto = LN_indicadores.producto
inner join LN_contraparte_familias on LN_contrapartes.contraparte = LN_contraparte_familias.contraparte
inner join LN_familias on LN_familias.familia = LN_contraparte_familias.familia
inner join LN_familia_productos on (LN_contraparte_familias.familia = LN_familia_productos.familia
and LN_indicadores.producto = LN_familia_productos.producto)
where LN_contrapartes.cliente = @p_cliente
and LN_indicadores.clave_indicador = @clave_indicador
and LN_contraparte_indicadores.visible = 1
and LN_indicadores.visible = 1
and LN_familias.visible = 1
and LN_productos.visible = 1
and LN_gestiones.desde <= getdate() and LN_gestiones.hasta >= getdate()
and LN_contrapartes.activo = 1
and isnull(ln_contrapartes.servicio_contratado,47)=@servicio_contratado
and LN_familia_productos.activo = 1
and LN_cliente_productos.activo = 1
AND LN_contrapartes.subcontratista = 0
and LN_contraparte_indicadores.gestion = ln_gestiones.gestion
/*
and ((LN_indicadores.clave_indicador = 'SCORE_IC' and
(LN_contrapartes.country_code = 'AR' and LN_productos.country_code = 'AR')
or
(LN_contrapartes.country_code != 'AR' and LN_productos.country_code is null)
) or (LN_indicadores.clave_indicador != 'SCORE_IC') )
*/
GROUP BY LN_indicadores.clave_indicador, #rangos.rango
) totales ON totales.rango = #rangos.rango
LEFT OUTER JOIN (
SELECT R1.rango, STUFF((
SELECT ',' + convert(varchar,T.contraparte)
from LN_contraparte_indicadores T
/*inner join #rangos on (format(LN_contraparte_indicadores.valor_numerico,'##0') >= #rangos.desde
and format(LN_contraparte_indicadores.valor_numerico,'##0') < #rangos.hasta)*/
inner join #rangos R on (T.valor_numerico >= R.desde
and T.valor_numerico < R.hasta)
inner join LN_contrapartes on T.contraparte = LN_contrapartes.contraparte
inner join LN_gestiones on LN_contrapartes.contraparte = LN_gestiones.contraparte
inner join LN_cliente_productos on LN_contrapartes.cliente = LN_cliente_productos.cliente
inner join LN_indicadores ON
(LN_cliente_productos.producto = LN_indicadores.producto
AND T.indicador = LN_indicadores.indicador)
inner join LN_productos on LN_productos.producto = LN_indicadores.producto
inner join LN_contraparte_familias on LN_contrapartes.contraparte = LN_contraparte_familias.contraparte
inner join LN_familias on LN_familias.familia = LN_contraparte_familias.familia
inner join LN_familia_productos on (LN_contraparte_familias.familia = LN_familia_productos.familia
and LN_indicadores.producto = LN_familia_productos.producto)
where LN_contrapartes.cliente = @p_cliente
and LN_indicadores.clave_indicador = @clave_indicador
and T.visible = 1
and LN_indicadores.visible = 1
and LN_familias.visible = 1
and LN_productos.visible = 1
and LN_gestiones.desde <= getdate() and LN_gestiones.hasta >= getdate()
and LN_contrapartes.activo = 1
and isnull(ln_contrapartes.servicio_contratado,47)=@servicio_contratado
and LN_familia_productos.activo = 1
and LN_cliente_productos.activo = 1
AND LN_contrapartes.subcontratista = 0
and T.gestion = ln_gestiones.gestion
and R1.rango = R.rango
FOR XML PATH('')
), 1, 1, '') AS lista
from LN_contraparte_indicadores T1
/*inner join #rangos on (format(LN_contraparte_indicadores.valor_numerico,'##0') >= #rangos.desde
and format(LN_contraparte_indicadores.valor_numerico,'##0') < #rangos.hasta)*/
inner join #rangos R1 on (T1.valor_numerico >= R1.desde
and T1.valor_numerico < R1.hasta)
inner join LN_contrapartes on T1.contraparte = LN_contrapartes.contraparte
inner join LN_gestiones on LN_contrapartes.contraparte = LN_gestiones.contraparte
inner join LN_cliente_productos on LN_contrapartes.cliente = LN_cliente_productos.cliente
inner join LN_indicadores ON
(LN_cliente_productos.producto = LN_indicadores.producto
AND T1.indicador = LN_indicadores.indicador)
inner join LN_productos on LN_productos.producto = LN_indicadores.producto
inner join LN_contraparte_familias on LN_contrapartes.contraparte = LN_contraparte_familias.contraparte
inner join LN_familias on LN_familias.familia = LN_contraparte_familias.familia
inner join LN_familia_productos on (LN_contraparte_familias.familia = LN_familia_productos.familia
and LN_indicadores.producto = LN_familia_productos.producto)
where LN_contrapartes.cliente = @p_cliente
and LN_indicadores.clave_indicador = @clave_indicador
and T1.visible = 1
and LN_indicadores.visible = 1
and LN_familias.visible = 1
and LN_productos.visible = 1
and LN_gestiones.desde <= getdate() and LN_gestiones.hasta >= getdate()
and LN_contrapartes.activo = 1
and isnull(ln_contrapartes.servicio_contratado,47)=@servicio_contratado
and LN_familia_productos.activo = 1
and LN_cliente_productos.activo = 1
AND LN_contrapartes.subcontratista = 0
and T1.gestion = ln_gestiones.gestion
) lista ON lista.rango = #rangos.rango
ORDER BY #rangos.rango
end
else
begin
SELECT distinct ISNULL(totales.clave_indicador,@clave_indicador) as clave_indicador,
#rangos.rango, #rangos.etiqueta,
#rangos.etiqueta_texto, #rangos.color,
#rangos.desde, #rangos.hasta, ISNULL(totales.total,0) as total, lista.lista as lista
FROM #rangos
LEFT OUTER JOIN (
SELECT LN_indicadores.clave_indicador, #rangos.rango, COUNT(*) AS total
from LN_contraparte_indicadores
inner join #rangos on (format(LN_contraparte_indicadores.valor_numerico,'##0') >= #rangos.desde
and format(LN_contraparte_indicadores.valor_numerico,'##0') < #rangos.hasta)
/*inner join #rangos on (LN_contraparte_indicadores.valor_numerico >= #rangos.desde
and LN_contraparte_indicadores.valor_numerico < #rangos.hasta)*/
inner join LN_contrapartes on LN_contraparte_indicadores.contraparte = LN_contrapartes.contraparte
inner join LN_gestiones on LN_contrapartes.contraparte = LN_gestiones.contraparte
inner join LN_cliente_productos on LN_contrapartes.cliente = LN_cliente_productos.cliente
inner join LN_indicadores ON
(LN_cliente_productos.producto = LN_indicadores.producto
AND LN_contraparte_indicadores.indicador = LN_indicadores.indicador)
inner join LN_productos on LN_productos.producto = LN_indicadores.producto
inner join LN_contraparte_familias on LN_contrapartes.contraparte = LN_contraparte_familias.contraparte
inner join LN_familias on LN_familias.familia = LN_contraparte_familias.familia
inner join LN_familia_productos on (LN_contraparte_familias.familia = LN_familia_productos.familia
and LN_indicadores.producto = LN_familia_productos.producto)
where LN_contrapartes.cliente = @p_cliente
and LN_indicadores.clave_indicador = @clave_indicador
and LN_contraparte_indicadores.visible = 1
and LN_indicadores.visible = 1
and LN_familias.visible = 1
and LN_productos.visible = 1
and LN_gestiones.desde <= getdate() and LN_gestiones.hasta >= getdate()
and LN_contrapartes.activo = 1
and isnull(ln_contrapartes.servicio_contratado,47)=@servicio_contratado
and LN_familia_productos.activo = 1
and LN_cliente_productos.activo = 1
AND LN_contrapartes.subcontratista = 0
and LN_contraparte_indicadores.gestion = ln_gestiones.gestion
/*
and ((LN_indicadores.clave_indicador = 'SCORE_IC' and
(LN_contrapartes.country_code = 'AR' and LN_productos.country_code = 'AR')
or
(LN_contrapartes.country_code != 'AR' and LN_productos.country_code is null)
) or (LN_indicadores.clave_indicador != 'SCORE_IC') )
*/
GROUP BY LN_indicadores.clave_indicador, #rangos.rango
) totales ON totales.rango = #rangos.rango
LEFT OUTER JOIN (
SELECT R1.rango, STUFF((
SELECT ',' + convert(varchar,T.contraparte)
from LN_contraparte_indicadores T
/*inner join #rangos on (format(LN_contraparte_indicadores.valor_numerico,'##0') >= #rangos.desde
and format(LN_contraparte_indicadores.valor_numerico,'##0') < #rangos.hasta)*/
inner join #rangos R on (T.valor_numerico >= R.desde
and T.valor_numerico < R.hasta)
inner join LN_contrapartes on T.contraparte = LN_contrapartes.contraparte
inner join LN_gestiones on LN_contrapartes.contraparte = LN_gestiones.contraparte
inner join LN_cliente_productos on LN_contrapartes.cliente = LN_cliente_productos.cliente
inner join LN_indicadores ON
(LN_cliente_productos.producto = LN_indicadores.producto
AND T.indicador = LN_indicadores.indicador)
inner join LN_productos on LN_productos.producto = LN_indicadores.producto
inner join LN_contraparte_familias on LN_contrapartes.contraparte = LN_contraparte_familias.contraparte
inner join LN_familias on LN_familias.familia = LN_contraparte_familias.familia
inner join LN_familia_productos on (LN_contraparte_familias.familia = LN_familia_productos.familia
and LN_indicadores.producto = LN_familia_productos.producto)
where LN_contrapartes.cliente = @p_cliente
and LN_indicadores.clave_indicador = @clave_indicador
and T.visible = 1
and LN_indicadores.visible = 1
and LN_familias.visible = 1
and LN_productos.visible = 1
and LN_gestiones.desde <= getdate() and LN_gestiones.hasta >= getdate()
and LN_contrapartes.activo = 1
and isnull(ln_contrapartes.servicio_contratado,47)=@servicio_contratado
and LN_familia_productos.activo = 1
and LN_cliente_productos.activo = 1
AND LN_contrapartes.subcontratista = 0
and T.gestion = ln_gestiones.gestion
and R1.rango = R.rango
FOR XML PATH('')
), 1, 1, '') AS lista
from LN_contraparte_indicadores T1
/*inner join #rangos on (format(LN_contraparte_indicadores.valor_numerico,'##0') >= #rangos.desde
and format(LN_contraparte_indicadores.valor_numerico,'##0') < #rangos.hasta)*/
inner join #rangos R1 on (T1.valor_numerico >= R1.desde
and T1.valor_numerico < R1.hasta)
inner join LN_contrapartes on T1.contraparte = LN_contrapartes.contraparte
inner join LN_gestiones on LN_contrapartes.contraparte = LN_gestiones.contraparte
inner join LN_cliente_productos on LN_contrapartes.cliente = LN_cliente_productos.cliente
inner join LN_indicadores ON
(LN_cliente_productos.producto = LN_indicadores.producto
AND T1.indicador = LN_indicadores.indicador)
inner join LN_productos on LN_productos.producto = LN_indicadores.producto
inner join LN_contraparte_familias on LN_contrapartes.contraparte = LN_contraparte_familias.contraparte
inner join LN_familias on LN_familias.familia = LN_contraparte_familias.familia
inner join LN_familia_productos on (LN_contraparte_familias.familia = LN_familia_productos.familia
and LN_indicadores.producto = LN_familia_productos.producto)
where LN_contrapartes.cliente = @p_cliente
and LN_indicadores.clave_indicador = @clave_indicador
and T1.visible = 1
and LN_indicadores.visible = 1
and LN_familias.visible = 1
and LN_productos.visible = 1
and LN_gestiones.desde <= getdate() and LN_gestiones.hasta >= getdate()
and LN_contrapartes.activo = 1
and isnull(ln_contrapartes.servicio_contratado,47)=@servicio_contratado
and LN_familia_productos.activo = 1
and LN_cliente_productos.activo = 1
AND LN_contrapartes.subcontratista = 0
and T1.gestion = ln_gestiones.gestion
) lista ON lista.rango = #rangos.rango
ORDER BY #rangos.rango
end
END
END
GO
Depends On
33- dbo.Imperium_vista_contratista_Cumplimiento_Mensual_todos
- dbo.LN_dashboard_graficos_filtrado
- dbo.LN_dashboard_graficos_segun_servicio
- dbo.PeriodoAdelantado
- dbo.PeriodoMenosDos
- dbo.PeriodoVencido
- dbo.clientes
- dbo.docs
- dbo.empleados
- dbo.led_cliente_contratista
- dbo.led_cliente_empleado
- dbo.led_cliente_vehiculo
- dbo.led_compliance
- dbo.led_contratista_periodo
- dbo.led_contratistas
- dbo.led_contratos
- dbo.led_docs
- dbo.led_empleados
- dbo.led_empleados_periodo
- dbo.led_subcontratista_periodo
- dbo.led_vehiculos
- dbo.led_vehiculos_periodo
- dbo.LN_cliente_indicadores
- dbo.LN_cliente_nivel
- dbo.LN_cliente_productos
- dbo.LN_contraparte_familias
- dbo.LN_contraparte_indicadores
- dbo.LN_contrapartes
- dbo.LN_familia_productos
- dbo.LN_familias
- dbo.LN_gestiones
- dbo.LN_indicadores
- dbo.LN_productos
Used By
No items found