dbo.LN_CUMPLIMIENTO_ART_VIDA_931

Description

Properties

Name Value
ANSI Nulls ON

True

Quoted Identifier ON

True

Encrypted

False

Execute As
Assembly

Parameters

6
Name Data Type Length Description
@p_contraparte int 4
@p_contratista int 4
@p_puntos int 4
@p_estado char 1
@p_estado_txt varchar 500
@p_color varchar 20

SQL Script

Copy
SET QUOTED_IDENTIFIER, ANSI_NULLS ON
GO
-- ===============================================================
-- Author: Marita Soria
-- Create date: 30/09/2021
-- Description:
/*
BBVA IMPERIUM nuevo indicador

Nuevo semáforo en la plataforma, en donde se mida la presentación de estos 3 documentos (considerados indispensables):
Constancia de ART con clausula de no repetición
Seguro de vida
F. 931

Solicitamos que el color del semáforo sea como los otros:
Verde: al día
Amarillo: Con una demora de entre 30 y 60 días
Rojo: Más de 60 días
*/


-- ===============================================================
/*
declare @p_puntos_cum int = null, 
@p_estado_cum char(1) = null , 
@p_estado_txt_cum varchar(500) = null , 
@p_color_cum varchar(20) = null 
exec [LN_CUMPLIMIENTO_ART_VIDA_931]   199280, 
null,
@p_puntos_cum output, 
@p_estado_cum output, 
@p_estado_txt_cum output, 
@p_color_cum output
select  @p_puntos_cum , 
@p_estado_cum, 
@p_estado_txt_cum,
@p_color_cum 

*/


CREATE OR ALTER PROCEDUREdbo.LN_CUMPLIMIENTO_ART_VIDA_931 -- Hay que mandar como parametro contraparte, o contratista 
 @p_contraparte int, 
 @p_contratista int = null, 
 @p_puntos int = null output, 
 @p_estado char(1) = null output, 
 @p_estado_txt varchar(500) = null output, 
 @p_color varchar(20) = null output
AS
BEGIN
 SET NOCOUNT ON;

 declare @p_cliente int 

 --declare @periodo1 int = (select dbo.PeriodoVencido())
 --declare @periodo2 int = (select dbo.PeriodoMenosDos())

 /* Porque a principio de mes nunca va a tener verificados los documentos del periodo vencido */
 declare @periodo1 int =  (select dbo.PeriodoMenosDos())
 declare @periodo2 int =  (select dbo.PeriodoMenosTres())

 declare @indicador int = (select indicador from ln_indicadores where clave_indicador = 'CUMPLIMIENTO_ART_VIDA_931') 

 
 if (@p_contraparte is null) 
  select @p_contraparte = contraparte, 
      @p_cliente = cliente 
    from ln_contrapartes 
   where id_imperium = @p_contratista
     and activo = 1 

 select @p_contratista = id_imperium, 
     @p_cliente = cliente 
     from ln_contrapartes 
 where contraparte = @p_contraparte
 
 --select @p_contraparte as contraparte, @p_contratista as contratista, @p_cliente as cliente, /* dbo.PeriodoVencido() */ @periodo_hasta as periodo 
 set @p_puntos = null
 set @p_estado = null
 set @p_estado_txt = null 
 set @p_color = null 

 -- Si no tiene documentos en el periodo1, el indicador debe quedar vacio
 IF (select count(*) from led_docs where contratista = @p_contratista and periodo = @periodo1 and tipo_doc in (649,650,1033)) = 0 
 begin
  set @p_puntos = null
  set @p_estado = null
  set @p_estado_txt = null 
  set @p_color = null 
  return 
 end 

/*
Documentos
649 A.R.T.: Certificado de Cobertura con nómina, Cláusula de no repetición a favor del Cliente
650 Seguro de Vida Obligatorio (Dec.1567/74): Certificado de Cobertura con nómina.
1033 AFIP F.931 y Pago c/detalle de período y conceptos abonados. Presentación/ Acuse de Recibo DJ
*/


--select * from led_tipos_doc where tipo_doc in (649,650,1033)

 if exists (select * from led_docs 
             where contratista = @p_contratista and tipo_doc in (649,650,1033) and estado_doc not in ('X','V') 
         and periodo < @periodo2)
  begin 
   set @p_estado = 'R'
  end 
 else 
  begin
   if exists (select * from led_docs 
               where contratista = @p_contratista and tipo_doc in (649,650,1033) and estado_doc not in ('X','V') 
                 and periodo = @periodo2)
   begin 
    set @p_estado = 'A'
   end
   else 
   begin 
    set @p_estado = 'V'
   end 
  end 
 

 if not exists(select *
     from ln_cliente_nivel 
     where indicador = @indicador and cliente = @p_cliente and texto = @p_estado)
 begin
  set @p_estado_txt  =  case @p_estado
         when 'R' then 'Demora más de 60 días'
         when 'A' then 'Demora de entre 30 y 60 días'
         when 'V' then 'Al día'
         else NULL
         end
  set @p_color       =  case @p_estado
         when 'R' then 'A72B2A'
         when 'A' then 'FFB81C'
         when 'V' then '63b68c'
         else NULL
         end
  set @p_puntos      =  case @p_estado
         when 'R' then 4
         when 'A' then 2
         when 'V' then 1
         else NULL
         end
 end 
 else 
 begin
  select @p_puntos = desde, @p_estado = texto, @p_estado_txt = texto_largo, @p_color = color_fondo
    from ln_cliente_nivel 
    where indicador = @indicador and cliente = @p_cliente and texto = @p_estado 
 end 
 

END
/*
select * from ln_indicadores where clave_indicador = 'CUMPLIMIENTO_ART_VIDA_931'
select * from ln_cliente_nivel where indicador = 544  and cliente = 1226057645
update ln_cliente_nivel set desde = 3, hasta = 4 where id = 613
update ln_cliente_nivel set desde = 2, hasta = 3 where id = 612

*/


GO