dbo.LN_panel_vrm_cambios

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
@cliente int 4
@familias varchar 20

SQL Script

Copy
SET QUOTED_IDENTIFIER, ANSI_NULLS ON
GO
/*
exec [LN_panel_vrm_cambios] 'INDICADORES_PENDIENTES'
exec [LN_panel_vrm_cambios] 'SOLICITAR_DDR'
exec [LN_panel_vrm_cambios] 'WORLDCHECK'
exec [LN_panel_vrm_cambios] 'SOSTENIBILIDAD'


*/

/*
DICTAMEN_VRM: Busca contrapartes que no coindicide el Dictamen VRM con el Dictamen VRM automático 
SOLICITAR_DDR: Busca contapartes con Solicitar DDR PENDIENTE (por condiciones automáticas se debería solicitar DDR pero queda pendiente para que un usuario lo confirme)
*/

/*
select * from LN_indicadores where indicador = 384
select * from LN_indicadores where indicador = 452 
select * from ln_productos where producto = 2080
select * from LN_indicadores where producto = 2080


LN_indicadores_manual_cliente 188060,'INDICADOR',384

select * from LN_contraparte_indicadores where indicador = 454
select * from ln_contraparte_comentarios where contraparte = 162668
select * from trazabilidad where contraparte = 162668 order by id_trazabilidad desc

delete from ln_contraparte_comentarios where indicador = 454 
delete from ln_contraparte_indicadores where indicador = 454 


select * from padrones where identificacion = '30710077181'
select * from LN_contrapartes where contraparte =188060
select * from LN_gestiones where contraparte =188060
select * from LN_contraparte_familias where contraparte =188060
select * from ln_familias where familia = 518

LN_indicadores_manual_cliente 188060,'SELECT_PRUEBA'
LN_panel_vrm_cambios 'INDICADORES_PENDIENTES'
select * from ln_productos where producto = 2060
select * from ln_indicadores where indicador = 383
select * from ln_contraparte_indicadores where contraparte = 184552 and indicador = 383

*/


CREATE OR ALTER PROCEDURE dbo.LN_panel_vrm_cambios   
@accion varchar(50) = 'DICTAMEN_VRM',
@cliente int = 1226057645, 
@familias varchar(20) = 'VRM'
AS 
BEGIN
    SET NOCOUNT ON;
 IF (@accion = 'DICTAMEN_VRM')
 select nombre_familia, ln_contrapartes.contraparte, padrones.nombre_persona, identificacion, 
 a.valor_texto as Dictamen_vrm, isnull(a.valor_memo,'Sin Cargar') as Dictamen_vrm_memo,
 iif(ut.last_name is not null, ut.first_name + ' ' + isnull(ut.last_name,''), isnull(ut.username,'-')) as usuario,
 b.valor_texto as Dictamen_vrm_automatico, b.valor_memo as Dictamen_vrm_automatico_memo, 
 d.detalle as detalle
   from LN_contrapartes 
  inner join padrones on padrones.id_padron = LN_contrapartes.id_padron 
  inner join LN_gestiones on LN_contrapartes.contraparte = LN_gestiones.contraparte
  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
  left join ln_contraparte_indicadores a on (a.contraparte = ln_contrapartes.contraparte and a.gestion = ln_gestiones.gestion  and a.indicador = 384) -- Dictamen VRM
  left join ln_contraparte_indicadores b on (b.contraparte = ln_contrapartes.contraparte and b.gestion = ln_gestiones.gestion  and b.indicador = 452) -- Dictamen VRM Automático 
  left join ln_dictamen_vrm_detalle d on (d.contraparte = b.contraparte and d.gestion = b.gestion and d.visible = 1 and d.indicador = 452) 
  left join trazabilidad t on (
         t.contraparte = a.contraparte and t.accion = 'CAMBIO_INDICADOR_384' and t.created = (select max(created) from trazabilidad t2 where t2.contraparte = a.contraparte and t2.accion = 'CAMBIO_INDICADOR_384') 
         )
  left join users ut on ut.user_id = t.user_id
   where LN_contrapartes.cliente = @cliente
    and LN_contrapartes.activo = 1
    and LN_familias.visible = 1
    and LN_gestiones.desde <= GETDATE()
    and LN_gestiones.hasta >= GETDATE()
    and ln_gestiones.vigente = 1 
    and ln_familias.nombre_familia like @familias + '%'
    -- Tienen calculado Dictamen automatico y no coincide con el Dictamen
    and b.valor_texto is not null 
       and isnull(a.valor_texto,'') != isnull(b.valor_texto,'')
    -- 1/7/2022: No comparamos los que aun no se calcularon o estan En Tolerancia (ET)
    and a.valor_texto != '' and a.valor_texto is not null and a.valor_texto != 'ET'
    -- 1/7/2022: Descarta los que están desestimados 
    and not exists (select * from LN_contraparte_indicadores ci 
                     where indicador = 454 
        and ci.contraparte = b.contraparte and ci.gestion = b.gestion 
        and ci.valor_fecha is not null and ci.visible = 1)
        
                    
 order by nombre_persona

 IF (@accion = 'WORLDCHECK')
 select nombre_familia, ln_contrapartes.contraparte, padrones.nombre_persona, identificacion, 
 a.valor_texto as Worldcheck, isnull(a.valor_memo,'Sin cargar') as Worldcheck_memo, 
 iif(ut.last_name is not null, ut.first_name + ' ' + isnull(ut.last_name,''), isnull(ut.username,'-')) as usuario,
 b.valor_texto as Worldcheck_automatico, b.valor_memo as Worldcheck_automatico_memo  
   from LN_contrapartes 
  inner join padrones on padrones.id_padron = LN_contrapartes.id_padron 
  inner join LN_gestiones on LN_contrapartes.contraparte = LN_gestiones.contraparte
  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
  left join ln_contraparte_indicadores a on (a.contraparte = ln_contrapartes.contraparte and a.gestion = ln_gestiones.gestion  and a.indicador = 383) -- Worldcheck
  left join ln_contraparte_indicadores b on (b.contraparte = ln_contrapartes.contraparte and b.gestion = ln_gestiones.gestion  and b.indicador = 491) -- Worldcheck Automático 
  left join trazabilidad t on (
         t.contraparte = a.contraparte and t.accion = 'CAMBIO_INDICADOR_383' and t.created = (select max(created) from trazabilidad t2 where t2.contraparte = a.contraparte and t2.accion = 'CAMBIO_INDICADOR_383') 
         )
  left join users ut on ut.user_id = t.user_id

   where LN_contrapartes.cliente = @cliente
    and LN_contrapartes.activo = 1
    and LN_familias.visible = 1
    and LN_gestiones.desde <= GETDATE()
    and LN_gestiones.hasta >= GETDATE()
    and ln_gestiones.vigente = 1 
    and ln_familias.nombre_familia like @familias + '%'
    -- Tienen calculado worldcheck automatico y no coincide con el worldcheck manual 
    and b.valor_texto is not null 
       and isnull(a.valor_texto,'') != isnull(b.valor_texto,'')

    -- 1/7/2022: Descarta los que están desestimados 
    and not exists (select * from LN_contraparte_indicadores ci 
                     where indicador = 492
        and ci.contraparte = b.contraparte and ci.gestion = b.gestion 
        and ci.valor_fecha is not null and ci.visible = 1)
        
                    
 order by nombre_persona



 IF (@accion = 'SOSTENIBILIDAD')
 select nombre_familia, ln_contrapartes.contraparte, padrones.nombre_persona, identificacion, 
 a.valor_texto as Sostenibilidad, isnull(a.valor_memo,'Sin cargar') as Sostenibilidad_memo, 
 iif(ut.last_name is not null, ut.first_name + ' ' + isnull(ut.last_name,''), isnull(ut.username,'-')) as usuario,
 b.valor_texto as Sostenibilidad_automatico, isnull(b.valor_memo,'Sin datos para calcular') as Sostenibilidad_automatico_memo  
   from LN_contrapartes 
  inner join padrones on padrones.id_padron = LN_contrapartes.id_padron 
  inner join LN_gestiones on LN_contrapartes.contraparte = LN_gestiones.contraparte
  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
  left join ln_contraparte_indicadores a on (a.contraparte = ln_contrapartes.contraparte and a.gestion = ln_gestiones.gestion  and a.indicador = 495) -- Tipo Empresa Sostenibilidad
  left join ln_contraparte_indicadores b on (b.contraparte = ln_contrapartes.contraparte and b.gestion = ln_gestiones.gestion  and b.indicador = 496) -- Tipo Empresa Sostenibilidad Automático 
  left join trazabilidad t on (
         t.contraparte = a.contraparte and t.accion = 'CAMBIO_INDICADOR_495' and t.created = (select max(created) from trazabilidad t2 where t2.contraparte = a.contraparte and t2.accion = 'CAMBIO_INDICADOR_383') 
         )
  left join users ut on ut.user_id = t.user_id

   where LN_contrapartes.cliente = @cliente
    and LN_contrapartes.activo = 1
    and LN_familias.visible = 1
    and LN_gestiones.desde <= GETDATE()
    and LN_gestiones.hasta >= GETDATE()
    and ln_gestiones.vigente = 1 
    and ln_familias.nombre_familia like @familias + '%'
    -- Tienen calculado Tipo Empresa automatico y no coincide con el Tipo Empresa manual 
    --and b.valor_texto is not null 
       and ( a.valor_texto !=  b.valor_texto 
         OR (a.valor_texto is null and b.valor_texto is not null)
   OR (a.valor_texto is null and b.valor_texto is null)
   ) 

    -- 1/7/2022: Descarta los que están desestimados 
    and not exists (select * from LN_contraparte_indicadores ci 
                     where indicador = 503
        and ci.contraparte = b.contraparte and ci.gestion = b.gestion 
        and ci.valor_fecha is not null and ci.visible = 1)
        
                    
 order by nombre_persona







 IF (@accion = 'SOLICITAR_DDR')
 select nombre_familia, ln_contrapartes.contraparte, padrones.nombre_persona, identificacion, 
 c.valor_texto as solicitar_ddr, d.detalle as detalle

   from LN_contrapartes 
  inner join padrones on padrones.id_padron = LN_contrapartes.id_padron 
  inner join LN_gestiones on LN_contrapartes.contraparte = LN_gestiones.contraparte
  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
  left join ln_contraparte_indicadores c on (c.contraparte = ln_contrapartes.contraparte and c.gestion = ln_gestiones.gestion  and c.indicador = 396) -- Solicitar DDR
  left join ln_dictamen_vrm_detalle d on (d.contraparte = c.contraparte and d.gestion = c.gestion and d.visible = 1 and d.indicador = 396) 

   where LN_contrapartes.cliente = @cliente
    and LN_contrapartes.activo = 1
    and LN_familias.visible = 1
    and LN_gestiones.desde <= GETDATE()
    and LN_gestiones.hasta >= GETDATE()
    and ln_gestiones.vigente = 1 
    and ln_familias.nombre_familia like @familias + '%'
    -- Tiene solicitar ddr pendiente por alguna razón 
    and c.valor_texto = 'PENDIENTE'
 order by nombre_persona



 IF (@accion = 'INDICADORES_PENDIENTES')

    select distinct padrones.nombre_persona, padrones.identificacion, ln_familias.nombre_familia, ln_productos.producto, 
    ln_productos.nombre_producto as nombre_producto1, upper(ln_productos.etiqueta) as nombre_producto, ln_indicadores.indicador, ln_indicadores.clave_indicador, nombre_indicador, ln_contrapartes.contraparte 
    
    from ln_indicadores 
    inner join ln_productos on ln_productos.producto = ln_indicadores.producto
    inner join LN_familia_productos on (ln_productos.producto = LN_familia_productos.producto and LN_familia_productos.activo = 1) 
    inner join ln_familias on (ln_familias.familia = LN_familia_productos.familia and ln_familias.cliente = @cliente and ln_familias.nombre_familia like @familias + '%')
    inner join ln_contraparte_familias on (ln_contraparte_familias.familia = LN_familia_productos.familia)
    inner join ln_contrapartes on (ln_contrapartes.contraparte = ln_contraparte_familias.contraparte and ln_contrapartes.activo = 1)
    inner join ln_gestiones on (ln_contrapartes.contraparte = ln_gestiones.contraparte and ln_gestiones.vigente = 1 and ln_gestiones.desde <= getdate() and ln_gestiones.hasta >= getdate())
    inner join padrones on padrones.id_padron = ln_contrapartes.id_padron 
    inner join ln_cliente_indicadores on (ln_cliente_indicadores.cliente = @cliente and LN_cliente_indicadores.indicador = ln_indicadores.indicador and LN_cliente_indicadores.activo = 1)

    where  LN_indicadores.valoracion = 'C'
    and (LN_productos.visible_home = 1 or LN_productos.producto in ( 2080,2082,2084,2085,2060,2079)) 
    and not exists (select * from LN_contraparte_indicadores where LN_contraparte_indicadores.contraparte = ln_contrapartes.contraparte and LN_contraparte_indicadores.gestion = ln_gestiones.gestion and LN_contraparte_indicadores.indicador = ln_indicadores.indicador 
    and (LN_contraparte_indicadores.valor_numerico is not null or LN_contraparte_indicadores.valor_texto is not null or LN_contraparte_indicadores.valor_fecha is not null or LN_contraparte_indicadores.valor_memo is not null))
    and ln_indicadores.indicador not in (408,396) 
    order by nombre_persona,contraparte, nombre_producto



   IF (@accion = 'DOCUMENTOS_PENDIENTES')

    select distinct ln_contrapartes.contraparte, padrones.nombre_persona, padrones.identificacion, ln_familias.nombre_familia, ln_tipos_doc.nombre_tipo_doc , 
    (select convert(varchar, MAX(created),103) from trazabilidad where contraparte = LN_contrapartes.contraparte and accion = 'ENVIO_LINK_CONTRAPARTE') as mail_enviado

    from ln_contrapartes
    inner join ln_gestiones on (ln_contrapartes.contraparte = ln_gestiones.contraparte and ln_gestiones.vigente = 1 and ln_gestiones.desde <= getdate() and ln_gestiones.hasta >= getdate())
    inner join ln_docs on (ln_contrapartes.contraparte = ln_docs.contraparte and ln_docs.gestion = ln_gestiones.gestion)
    inner join ln_contraparte_familias on (ln_contraparte_familias.contraparte = ln_contrapartes.contraparte)
    inner join ln_familias on (ln_familias.familia = ln_contraparte_familias.familia)
    inner join padrones on padrones.id_padron = ln_contrapartes.id_padron 
    inner join LN_tipos_doc ON LN_docs.tipo_doc = LN_tipos_doc.tipo_doc

    where ln_contrapartes.cliente = @cliente 
      and ln_familias.nombre_familia like @familias + '%' 
      and ln_docs.estado_doc = 'N'
      and LN_docs.aplica = 1

    order by nombre_persona,ln_contrapartes.contraparte, nombre_tipo_doc




END 

GO

Used By

No items found