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', 9936068,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_VEHICULOS',9936068,73
exec LN_dashboard_graficos_segun_servicio 'GRAPH_CUMPLIMIENTO_MENSUAL',9936068,73
exec LN_dashboard_graficos_segun_servicio 'ENRIESGO',3920694,47
*/
CREATE OR ALTER PROCEDURE dbo.LN_dashboard_graficos_segun_servicio_14012021
@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 = 'GRAFICOS_INDICADORES') 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
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 = @servicio_contratado
and lni.activo = 1
order by ln.orden asc
END
declare @estado_rec varchar(1) = 'A'
IF (@accion = 'COUNT_CONTRATISTAS')
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
*/
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
END
IF (@accion = 'COUNT_SUBCONTRATISTAS')
BEGIN
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
order by clientes.nombre_cliente
END
IF (@accion = 'COUNT_EMPLEADOS')
BEGIN
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
order by clientes.nombre_cliente
END
IF (@accion = 'COUNT_VEHICULOS')
BEGIN
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
order by clientes.nombre_cliente
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)
insert into @totales(total)
exec [LN_dashboard_graficos_segun_servicio] 'COUNT_CONTRATISTAS', @p_cliente, @servicio_contratado
insert into @totales(total)
exec [LN_dashboard_graficos_segun_servicio] 'COUNT_SUBCONTRATISTAS', @p_cliente, @servicio_contratado
insert into @totales(total)
exec [LN_dashboard_graficos_segun_servicio] 'COUNT_EMPLEADOS', @p_cliente, @servicio_contratado
insert into @totales(total)
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
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', 9936068,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_VEHICULOS',9936068,73
exec LN_dashboard_graficos_segun_servicio 'GRAPH_CUMPLIMIENTO_MENSUAL',9936068,73
exec LN_dashboard_graficos_segun_servicio 'ENRIESGO',3920694,47
*/
CREATE OR ALTER PROCEDURE dbo.LN_dashboard_graficos_segun_servicio_14012021
@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 = 'GRAFICOS_INDICADORES') 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
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 = @servicio_contratado
and lni.activo = 1
order by ln.orden asc
END
declare @estado_rec varchar(1) = 'A'
IF (@accion = 'COUNT_CONTRATISTAS')
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
*/
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
END
IF (@accion = 'COUNT_SUBCONTRATISTAS')
BEGIN
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
order by clientes.nombre_cliente
END
IF (@accion = 'COUNT_EMPLEADOS')
BEGIN
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
order by clientes.nombre_cliente
END
IF (@accion = 'COUNT_VEHICULOS')
BEGIN
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
order by clientes.nombre_cliente
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)
insert into @totales(total)
exec [LN_dashboard_graficos_segun_servicio] 'COUNT_CONTRATISTAS', @p_cliente, @servicio_contratado
insert into @totales(total)
exec [LN_dashboard_graficos_segun_servicio] 'COUNT_SUBCONTRATISTAS', @p_cliente, @servicio_contratado
insert into @totales(total)
exec [LN_dashboard_graficos_segun_servicio] 'COUNT_EMPLEADOS', @p_cliente, @servicio_contratado
insert into @totales(total)
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
END
GO
Depends On
31- dbo.Imperium_vista_contratista_Cumplimiento_Mensual_todos
- 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_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