dbo.obtener_trazabilidad

Description

Properties

Name Value
ANSI Nulls ON

True

Quoted Identifier ON

True

Encrypted

False

Execute As
Assembly

Parameters

5
Name Data Type Length Description
@cliente int 4
@id_plataforma varchar 10
@dias int 4
@top int 4
@servicio_contratado int 4

SQL Script

Copy
SET QUOTED_IDENTIFIER, ANSI_NULLS ON
GO

/*
-- =============================================
-- Author: <Leonel Turchetto>
-- Create date: <17/12/2019>
-- Description: obtiene los registros de trazabilidad.
-- =============================================
obtener_trazabilidad 9936068,'LED'
obtener_trazabilidad 2254875,'IV',60,200,10
obtener_trazabilidad '861672084', 'LED', 60,  200,  '47'
obtener_trazabilidad '6343771', 'IV', 60,  200,  '10'

*/

/*
select top 100 * from trazabilidad where contraparte=193054 servicio_contratado=10 order by created desc

*/


/*select * from clientes where cli_codigo=8907
update trazabilidad set servicio_contratado=10 where contraparte in (
select contraparte from ln_contrapartes where servicio_contratado=10 and cliente != 2254875)
*/



CREATE OR ALTER PROCEDURE dbo.obtener_trazabilidad
@cliente int,
@id_plataforma varchar(10) = 'LED',
@dias int = 60,
@top int = 200,
@servicio_contratado int = 47

AS
BEGIN
 SET NOCOUNT ON;
 /* Si el cliente no tienen producto Documentos, solo se muestran las novedades de Monitoreo, no se muestra trazabilidad */
 if (select count(*) from LN_cliente_productos cp 
   inner join ln_productos p on p.producto = cp.producto 
   where cp.cliente = @cliente
     and p.nombre_producto like 'Documentos%'
     and cp.activo = 1) = 0  
  set @id_plataforma = 'LED-MAN'

 /* PROBAMOS CON AKAPOL LA TRAZABILIDAD EN IMPERIUM */
 if (@cliente=9936068 or @servicio_contratado = 73)
 begin
  set @id_plataforma = 'IMPERIUM'
 end

 
 
 if(@id_plataforma = 'IMPERIUM')
 begin
 select distinct top (@top) texto,trazabilidad.contraparte,padrones.nombre_persona,
  'fas fa-comments-dollar' as 'icono',
 convert(date,trazabilidad.created) as createdT, 
 convert(varchar(10),trazabilidad.created, 103) as fecha,LN_familias.familia as idFamilia,LN_familias.nombre_familia as nombre_familia 
 from trazabilidad
 left join ln_contrapartes on ln_contrapartes.contraparte = trazabilidad.contraparte
 left join padrones on (padrones.id_padron = ln_contrapartes.id_padron and  padrones.habilitado = 1)
 inner join plataformas on plataformas.id_plataforma = trazabilidad.id_plataforma
 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_familias.familia = LN_contraparte_familias.familia
 where trazabilidad.cliente = @cliente 
   and trazabilidad.created > getdate() - @dias  
   and LN_familias.visible = 1 
   and LN_gestiones.desde <= getdate() and LN_gestiones.hasta >= getdate()
   and LN_contrapartes.activo = 1
   and LN_contrapartes.subcontratista = 0
   and LN_contraparte_familias.activo = 1 
   and trazabilidad.servicio_contratado=@servicio_contratado 
 /*
  union
  select distinct top (@top) nov.tipo_novedad as texto, nov.contraparte as contraparte,padrones.nombre_persona,
  case   
  when (nov.tipo_novedad LIKE 'Cheques%')  then 'fa fa-money'
  when (nov.tipo_novedad LIKE 'Bancos%')   then 'fa fa-university'
  when (nov.tipo_novedad LIKE 'Fiscales%') then 'fa fa-briefcase '
  when (nov.tipo_novedad LIKE 'Legales%')  then 'fa fa-gavel'
  else 'fas fa-comments-dollar'
  end as 'icono',
  convert(date,nov.ultima_novedad) as createdT,
  convert(varchar(10),nov.ultima_novedad, 103) as fecha
 
  from padrones INNER JOIN 
  (select monitoreos_resultados.cuit, LN_contrapartes.contraparte,tipo_novedad, max(monitoreos_resultados.fecha) as ultima_novedad
  from monitoreos_resultados
  inner join padrones ON monitoreos_resultados.cuit = padrones.identificacion 
  inner join LN_contrapartes 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_familias.familia = LN_contraparte_familias.familia
  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_contrapartes.activo = 1
  and LN_contrapartes.subcontratista = 0
  and LN_contraparte_familias.activo = 1 
  and monitoreos_resultados.fecha > getdate() - @dias
  and monitoreos_resultados.seccion_mantenimiento <> 7
  group by monitoreos_resultados.cuit, LN_contrapartes.contraparte,tipo_novedad) nov ON padrones.identificacion = nov.cuit
 
  where padrones.habilitado = 1 
  */
 
   order by createdT desc, nombre_persona
 end
 
 if(@id_plataforma = 'IV')
 begin
 select distinct top (@top) texto,trazabilidad.contraparte,padrones.nombre_persona,
  'fas fa-comments-dollar' as 'icono',
 convert(date,trazabilidad.created) as createdT, 
 convert(varchar(10),trazabilidad.created, 103) as fecha,isnull(LN_demo.visible,0) as publicado,LN_familias.familia as idFamilia,LN_familias.nombre_familia as nombre_familia 
 from trazabilidad
 left join ln_contrapartes on ln_contrapartes.contraparte = trazabilidad.contraparte
 left join padrones on (padrones.id_padron = ln_contrapartes.id_padron and  padrones.habilitado = 1)
/* inner join plataformas on plataformas.id_plataforma = trazabilidad.id_plataforma*/
 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_familias.familia = LN_contraparte_familias.familia
 INNER JOIN LN_DEMO on (ln_demo.contraparte = trazabilidad.contraparte) 
 where trazabilidad.cliente = @cliente 
   and trazabilidad.created > getdate() - @dias  
   and LN_familias.visible = 1 
   and LN_gestiones.desde <= getdate() and LN_gestiones.hasta >= getdate()
   and LN_contrapartes.activo = 1
   and LN_contrapartes.subcontratista = 0
   and LN_contraparte_familias.activo = 1 
   and trazabilidad.servicio_contratado=@servicio_contratado 
and trazabilidad.accion in (
'AGREGA_CONTRAPARTE',
'ENVIO_LINK_CONTRAPARTE',
'CLOSE_PUB_IV_REPORT',
'RECHAZA_DOCUMENTO')
/*
union
select distinct top (@top) nov.tipo_novedad as texto, nov.contraparte as contraparte,padrones.nombre_persona,
case   
when (nov.tipo_novedad LIKE 'Cheques%')  then 'fa fa-money'
when (nov.tipo_novedad LIKE 'Bancos%')   then 'fa fa-university'
when (nov.tipo_novedad LIKE 'Fiscales%') then 'fa fa-briefcase '
when (nov.tipo_novedad LIKE 'Legales%')  then 'fa fa-gavel'
else 'fas fa-comments-dollar'
end as 'icono',
convert(date,nov.ultima_novedad) as createdT,
convert(varchar(10),nov.ultima_novedad, 103) as fecha,isnull(nov.publicado,0) as publicado,0 as idFamilia,'' as nombre_familia 

from padrones INNER JOIN 
(select monitoreos_resultados.cuit, LN_contrapartes.contraparte,tipo_novedad, max(monitoreos_resultados.fecha) as ultima_novedad,ln_demo.visible as publicado
from monitoreos_resultados
inner join padrones ON monitoreos_resultados.cuit = padrones.identificacion 
inner join LN_contrapartes 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_familias.familia = LN_contraparte_familias.familia
INNER JOIN LN_DEMO on (ln_demo.contraparte = LN_contrapartes.contraparte) 

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_contrapartes.activo = 1
and LN_contrapartes.subcontratista = 0
and LN_contraparte_familias.activo = 1 
and monitoreos_resultados.fecha > getdate() - @dias
and monitoreos_resultados.seccion_mantenimiento <> 7
and ln_contrapartes.servicio_contratado=@servicio_contratado
group by monitoreos_resultados.cuit, LN_contrapartes.contraparte,tipo_novedad,LN_DEMO.visible) nov ON padrones.identificacion = nov.cuit

where padrones.habilitado = 1 
*/
  
   order by createdT desc, nombre_persona
 end
 

 
 if(@id_plataforma = 'LED')
 begin
 select distinct top (@top) texto,trazabilidad.contraparte,padrones.nombre_persona,
  'fas fa-comments-dollar' as 'icono',
 convert(date,trazabilidad.created) as createdT, 
 convert(varchar(10),trazabilidad.created, 103) as fecha,LN_familias.familia as idFamilia,LN_familias.nombre_familia as nombre_familia 
 from trazabilidad
 left join ln_contrapartes on ln_contrapartes.contraparte = trazabilidad.contraparte
 left join padrones on (padrones.id_padron = ln_contrapartes.id_padron and  padrones.habilitado = 1)
 inner join plataformas on plataformas.id_plataforma = trazabilidad.id_plataforma
 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_familias.familia = LN_contraparte_familias.familia
 where trazabilidad.cliente = @cliente 
   and trazabilidad.created > getdate() - @dias  
   and LN_familias.visible = 1 
   and LN_gestiones.desde <= getdate() and LN_gestiones.hasta >= getdate()
   and LN_contrapartes.activo = 1
   and LN_contrapartes.subcontratista = 0
   and LN_contraparte_familias.activo = 1 
   

 union
 select distinct top (@top) nov.tipo_novedad as texto, nov.contraparte as contraparte,padrones.nombre_persona,
 case   
  when (nov.tipo_novedad LIKE 'Cheques%')  then 'fa fa-money'
  when (nov.tipo_novedad LIKE 'Bancos%')   then 'fa fa-university'
  when (nov.tipo_novedad LIKE 'Fiscales%') then 'fa fa-briefcase '
  when (nov.tipo_novedad LIKE 'Legales%')  then 'fa fa-gavel'
  else 'fas fa-comments-dollar'
 end as 'icono',
 convert(date,nov.ultima_novedad) as createdT,
 convert(varchar(10),nov.ultima_novedad, 103) as fecha,0 as idFamilia,'' as nombre_familia 

  from padrones INNER JOIN 
   (select monitoreos_resultados.cuit, LN_contrapartes.contraparte,tipo_novedad, max(monitoreos_resultados.fecha) as ultima_novedad
   from monitoreos_resultados
   inner join padrones ON monitoreos_resultados.cuit = padrones.identificacion 
   inner join LN_contrapartes 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_familias.familia = LN_contraparte_familias.familia
   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_contrapartes.activo = 1
   and LN_contrapartes.subcontratista = 0
   and LN_contraparte_familias.activo = 1 
   and monitoreos_resultados.fecha > getdate() - @dias
   and monitoreos_resultados.seccion_mantenimiento <> 7
   group by monitoreos_resultados.cuit, LN_contrapartes.contraparte,tipo_novedad) nov ON padrones.identificacion = nov.cuit
   
   where padrones.habilitado = 1 
   
   order by createdT desc, nombre_persona
 end


 if(@id_plataforma = 'LED-PANEL')
 begin
 select nov.contraparte as contraparte,padrones.nombre_persona
  from padrones INNER JOIN 
   (select monitoreos_resultados.cuit, LN_contrapartes.contraparte
   from monitoreos_resultados
   inner join padrones ON monitoreos_resultados.cuit = padrones.identificacion 
   inner join LN_contrapartes 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_familias.familia = LN_contraparte_familias.familia
   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_contrapartes.activo = 1
   and LN_contrapartes.subcontratista = 0
   and LN_contraparte_familias.activo = 1 
   and monitoreos_resultados.fecha > getdate() - @dias
   and monitoreos_resultados.seccion_mantenimiento <> 7
   group by monitoreos_resultados.cuit, LN_contrapartes.contraparte) nov ON padrones.identificacion = nov.cuit
   where padrones.habilitado = 1 
 end

 if(@id_plataforma = 'LED-MAN')
 begin
  select distinct top (@top) nov.tipo_novedad as texto, 
         nov.contraparte as contraparte,
      padrones.nombre_persona,
      case   
       when (nov.tipo_novedad LIKE 'Cheques%')  then 'fa fa-money'
       when (nov.tipo_novedad LIKE 'Bancos%')   then 'fa fa-university'
       when (nov.tipo_novedad LIKE 'Fiscales%') then 'fa fa-briefcase '
       when (nov.tipo_novedad LIKE 'Legales%')  then 'fa fa-gavel'
       else 'fas fa-comments-dollar'
      end as 'icono',
      convert(date,nov.ultima_novedad) as createdT,
      convert(varchar(10),nov.ultima_novedad, 103) as fecha,
      nov.idFamilia, nov.nombre_familia
       


  from padrones 
  INNER JOIN 
   (select monitoreos_resultados.cuit, LN_contrapartes.contraparte,tipo_novedad, 
           max(monitoreos_resultados.fecha) as ultima_novedad, 
     LN_familias.familia as idFamilia, LN_familias.nombre_familia as nombre_familia 
   from monitoreos_resultados
   inner join padrones ON monitoreos_resultados.cuit = padrones.identificacion 
   inner join LN_contrapartes 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_familias.familia = LN_contraparte_familias.familia
   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_contrapartes.activo = 1
   and LN_contrapartes.subcontratista = 0
   and LN_contraparte_familias.activo = 1 
   and monitoreos_resultados.fecha > getdate() - @dias
   and monitoreos_resultados.seccion_mantenimiento <> 7
   group by monitoreos_resultados.cuit, LN_contrapartes.contraparte,tipo_novedad,LN_familias.familia,LN_familias.nombre_familia) nov 
   ON padrones.identificacion = nov.cuit
   where padrones.habilitado = 1 
   order by createdT desc, nombre_persona 
  

 end

END
GO