dbo.mis_aportes_empresa_SCORE

Description

Properties

Name Value
ANSI Nulls ON

True

Quoted Identifier ON

True

Encrypted

False

Execute As
Assembly

Parameters

1
Name Data Type Length Description
@p_cuit varchar 13

SQL Script

Copy
SET QUOTED_IDENTIFIER, ANSI_NULLS ON
GO
-- =============================================
-- Author: <Author,,Name>
-- Create date: <Create Date,,>
-- Description: <Description,,>
-- =============================================
/*
exec mis_aportes_empresa_score   '33690244239'
exec mis_aportes_empresa  '33690244239',null,11
*/

CREATE OR ALTER PROCEDURE dbo.mis_aportes_empresa_SCORE
 @p_cuit varchar(13) 
AS
BEGIN

 SET NOCOUNT ON;


 declare @resultado table (periodo int,ddjj varchar(20), aportes_ss varchar(20), aportes_os varchar(20), contr_patronal varchar(20),
         periodo2 int, cuit_empleador varchar(20), nombre_empleador varchar(200), periodo_str varchar(20), cuit varchar(20))
 declare @periodo int,
   @ddjj varchar(20),
   @aportes_ss varchar(20),
   @aportes_os varchar(20),
   @contr_patronal varchar(20),
   @periodo2 int,
   @cuit_empleador varchar(20),
   @nombre_empleador varchar(200),
   @periodo_str varchar(20),
   @cuit varchar(20)
 declare @meses_para_atras int 

 DECLARE @p1 INT
 DECLARE @p2 INT
 DECLARE @d1 DATETIME
 DECLARE @d2 DATETIME
 /* VALOR yyyymm  del perĂ­odo correspondiente a la fecha actual - preset por si no hay datos */ 
 DECLARE @m1 INT = CONVERT(INT, CONVERT(varchar, Year(GETDATE())) +  RIGHT('00' + CONVERT(varchar, Month(GETDATE())), 2))

 
 if @p_cuit is not null 
 begin
 
  insert into @resultado exec mis_aportes_empresa  @p_cuit,null,11
  SELECT @p2 = ISNULL(MAX(periodo), @m1) FROM @resultado  
  SET @d2 = DATETIMEFROMPARTS(CONVERT(INT, @p2/100), CONVERT(INT, RIGHT(CONVERT(varchar,@p2),2)),1,0,0,0,0)
  declare @ultimo_mes datetime = @d2

  declare @score_final decimal(5,2) = 0
  declare @score1 decimal(5,2) = 0
  declare @score2 decimal(5,2) = 0
  declare @score3 decimal(5,2) = 0
  declare @score4 decimal(5,2) = 0

  DECLARE C_cursor CURSOR FOR
   select periodo,ddjj,aportes_ss,aportes_os,contr_patronal,periodo2,cuit_empleador,nombre_empleador,periodo_str, cuit
   from @resultado
   order by periodo
  OPEN C_cursor
  FETCH NEXT FROM C_cursor INTO @periodo,
          @ddjj,
          @aportes_ss,
          @aportes_os,
          @contr_patronal,
          @periodo2,
          @cuit_empleador,
          @nombre_empleador,
          @periodo_str,
          @cuit
  WHILE @@fetch_status = 0
  BEGIN  
   SET @d2 = DATETIMEFROMPARTS(CONVERT(INT, @periodo/100), CONVERT(INT, RIGHT(CONVERT(varchar,@periodo),2)),1,0,0,0,0)
   set @meses_para_atras = datediff(m,@ultimo_mes,@d2) * (-1)
   set @score1  = 0
   set @score2  = 0
   set @score3  = 0
   set @score4  = 0
   set @score1 = (select isnull(valor ,0)
       from score_aportes 
       where mes_para_atras = @meses_para_atras 
       and campo =  'ddjj'
       and resultado = @ddjj)
   set @score2 = (select isnull(valor ,0)
       from score_aportes where mes_para_atras = @meses_para_atras 
       and campo =  'aportes_ss'
       and resultado = @aportes_ss)
   set @score3 = (select isnull(valor ,0)
       from score_aportes where mes_para_atras = @meses_para_atras 
       and campo =  'aportes_os'
       and resultado = @aportes_os)
   set @score4 = (select isnull(valor ,0)
       from score_aportes where mes_para_atras = @meses_para_atras 
       and campo =  'contr_patronal'
       and resultado = @contr_patronal)
   /*select @meses_para_atras as meses_para_atras,
     @ddjj as ddjj, @score1,
     @aportes_ss as aportes_ss, @score2,
     @aportes_os as aportes_os, @score3,
     @contr_patronal as contr_patronal, @score4*/

   set @score_final = isnull(@score_final,0) + isnull(@score1,0) + isnull(@score2,0) + isnull(@score3,0) + isnull(@score4,0)

   FETCH NEXT FROM C_cursor INTO @periodo,
          @ddjj,
          @aportes_ss,
          @aportes_os,
          @contr_patronal,
          @periodo2,
          @cuit_empleador,
          @nombre_empleador,
          @periodo_str,
          @cuit
  end
  close C_cursor 
  deallocate C_Cursor 

 end 

 select @score_final * (-1) as score
END
/*
select * from score_aportes order by id_score
*/

GO

Used By

No items found