dbo.LN_dashboard_graficos_segun_servicio_2

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_2 
 @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
 */

  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_contrapartes


 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.contratista_1) 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
   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
   ) 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_contrapartes


 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.contratista_1) 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
   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
   ) 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_contrapartes
 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.contratista_1) 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
   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
   ) 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_contrapartes


 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

Used By

No items found