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
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
Depends On
2Used By
No items found