Description
Properties
| Name | Value |
|---|---|
| ANSI Nulls ON | True |
| Quoted Identifier ON | True |
| Encrypted | False |
| Execute As | |
| Assembly |
Parameters
4| Name | Data Type | Length | Description |
|---|---|---|---|
| @p_cuit | varchar | 13 | |
| @p_cuit_empleador | varchar | 13 | |
| @p_periodos | int | 4 | |
| @p_filtro_60 | tinyint | 1 |
SQL Script
Copy
SET QUOTED_IDENTIFIER, ANSI_NULLS ON
GO
-- =============================================
-- Author: <Author,,Name>
-- Create date: <Create Date,,>
-- Description: <Description,,>
-- =============================================
/*
exec backend_mis_aportes '20335754655','30641368977'
select * from mis_aportes where cuit='20335754655'
and cuit_empleador= '30641368977'
exec backend_mis_aportes '20628151440',null,12,1
SELECT padrones.id_padron, padrones.identificador, padrones.numero,
padrones.nombre_persona, padrones.tipo_persona, padrones.habilitado,
mis_aportes.ddjj, mis_aportes.aportes_ss, mis_aportes.aportes_os,
mis_aportes.contr_patronal, mis_aportes.periodo, mis_aportes.cuit_empleador,
empleador.nombre_persona as nombre_empleador
from padrones inner join mis_aportes on padrones.identificacion = mis_aportes.cuit
inner join padrones empleador on mis_aportes.cuit_empleador = empleador.identificacion
inner join
(select cuit, cuit_empleador, periodo, max(inserted) as ultimo
from mis_aportes
where cuit = '20335754655'
and cuit_empleador = '30641368977'
group by cuit, cuit_empleador, periodo) per_last
ON (mis_aportes.cuit = per_last.cuit
AND mis_aportes.cuit_empleador = per_last.cuit_empleador
AND mis_aportes.periodo = per_last.periodo
AND mis_aportes.inserted = per_last.ultimo)
WHERE mis_aportes.periodo BETWEEN 201709 AND 201808
ORDER BY mis_aportes.periodo, empleador.nombre_persona
exec backend_mis_aportes_AGB null,'30709308242'
exec backend_mis_aportes_AGB '30709308242',null,12,1
*/
CREATE OR ALTER PROCEDURE dbo.backend_mis_aportes_agb
-- Add the parameters for the stored procedure here
@p_cuit varchar(13),
@p_cuit_empleador varchar(13) = NULL,
@p_periodos int = 12,
@p_filtro_60 tinyint = 0
AS
BEGIN
-- SET NOCOUNT ON added to prevent extra result sets from
-- interfering with SELECT statements.
SET NOCOUNT ON;
-- Insert statements for procedure here
DECLARE @p1 INT
DECLARE @p2 INT
DECLARE @d1 DATETIME
DECLARE @d2 DATETIME
DECLARE @meses int = (@p_periodos - 1) * (-1)
/* 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))
/* máximo período encontrado en mis aportes para el cuit - en caso de estar vacío es el período de hoy */
SELECT @p2 = ISNULL(MAX(periodo), @m1) FROM mis_aportes WHERE cuit = @p_cuit
/* el rango de la consulta son los últimos 12 meses registrados */
SET @d2 = DATETIMEFROMPARTS(CONVERT(INT, @p2/100), CONVERT(INT, RIGHT(CONVERT(varchar,@p2),2)),1,0,0,0,0)
SET @d1 = DATEADD(MONTH,@meses,@d2)
SET @p1 = CONVERT(INT, CONVERT(varchar,Year(@d1)) + RIGHT('00' + CONVERT(varchar, Month(@d1)), 2))
IF (@p_filtro_60 = 0) BEGIN
IF (@p_cuit_empleador IS NOT NULL)
SELECT padrones.id_padron, padrones.identificador, padrones.numero,
padrones.nombre_persona, padrones.tipo_persona, padrones.habilitado,
mis_aportes.ddjj, mis_aportes.aportes_ss, mis_aportes.aportes_os,
mis_aportes.contr_patronal, mis_aportes.periodo, mis_aportes.cuit_empleador,
empleador.nombre_persona as nombre_empleador, empleador.identificador as identificador_empleador,
substring(convert(varchar(6), mis_aportes.periodo),5,2) + '-' + left(convert(varchar(6), mis_aportes.periodo), 4) AS periodo_str
from padrones inner join mis_aportes on padrones.identificacion = mis_aportes.cuit
inner join padrones empleador on mis_aportes.cuit_empleador = empleador.identificacion
inner join
(select cuit, cuit_empleador, periodo, max(inserted) as ultimo
from mis_aportes
where cuit = @p_cuit
and cuit_empleador = @p_cuit_empleador
group by cuit, cuit_empleador, periodo) per_last
ON (mis_aportes.cuit = per_last.cuit
AND mis_aportes.cuit_empleador = per_last.cuit_empleador
AND mis_aportes.periodo = per_last.periodo
AND mis_aportes.inserted = per_last.ultimo)
WHERE mis_aportes.periodo BETWEEN @p1 AND @p2
ORDER BY mis_aportes.periodo, empleador.nombre_persona
ELSE
SELECT padrones.id_padron, padrones.identificador, padrones.numero,
padrones.nombre_persona, padrones.tipo_persona, padrones.habilitado,
mis_aportes.ddjj, mis_aportes.aportes_ss, mis_aportes.aportes_os,
mis_aportes.contr_patronal, mis_aportes.periodo, mis_aportes.cuit_empleador,
empleador.nombre_persona as nombre_empleador, empleador.identificador as identificador_empleador,
substring(convert(varchar(6), mis_aportes.periodo),5,2) + '-' + left(convert(varchar(6), mis_aportes.periodo), 4) AS periodo_str
from padrones inner join mis_aportes on padrones.identificacion = mis_aportes.cuit
inner join padrones empleador on mis_aportes.cuit_empleador = empleador.identificacion
inner join
(select cuit, cuit_empleador, periodo, max(inserted) as ultimo
from mis_aportes
where cuit = @p_cuit
group by cuit, cuit_empleador, periodo) per_last
ON (mis_aportes.cuit = per_last.cuit
AND mis_aportes.cuit_empleador = per_last.cuit_empleador
AND mis_aportes.periodo = per_last.periodo
AND mis_aportes.inserted = per_last.ultimo)
WHERE mis_aportes.periodo BETWEEN @p1 AND @p2
ORDER BY empleador.nombre_persona, mis_aportes.periodo
END ELSE BEGIN
/* con filtro a 60 días */
IF (@p_cuit_empleador IS NOT NULL) BEGIN
if exists(select cuit, cuit_empleador, periodo
from mis_aportes
where cuit = @p_cuit
and cuit_empleador = @p_cuit_empleador
and inserted >= (GETDATE() - 60))
SELECT padrones.id_padron, padrones.identificador, padrones.numero,
padrones.nombre_persona, padrones.tipo_persona, padrones.habilitado,
mis_aportes.ddjj, mis_aportes.aportes_ss, mis_aportes.aportes_os,
mis_aportes.contr_patronal, mis_aportes.periodo, mis_aportes.cuit_empleador,
empleador.nombre_persona as nombre_empleador, empleador.identificador as identificador_empleador,
substring(convert(varchar(6), mis_aportes.periodo),5,2) + '-' + left(convert(varchar(6), mis_aportes.periodo), 4) AS periodo_str
from padrones inner join mis_aportes on padrones.identificacion = mis_aportes.cuit
inner join padrones empleador on mis_aportes.cuit_empleador = empleador.identificacion
inner join
(select cuit, cuit_empleador, periodo, max(inserted) as ultimo
from mis_aportes
where cuit = @p_cuit
and cuit_empleador = @p_cuit_empleador
--and inserted >= (GETDATE() - 60)
group by cuit, cuit_empleador, periodo) per_last
ON (mis_aportes.cuit = per_last.cuit
AND mis_aportes.cuit_empleador = per_last.cuit_empleador
AND mis_aportes.periodo = per_last.periodo
AND mis_aportes.inserted = per_last.ultimo)
WHERE mis_aportes.periodo BETWEEN @p1 AND @p2
ORDER BY mis_aportes.periodo, empleador.nombre_persona
END ELSE BEGIN
if exists(select cuit, cuit_empleador, periodo
from mis_aportes
where cuit = @p_cuit
and inserted >= (GETDATE() - 60))
SELECT padrones.id_padron, padrones.identificador, padrones.numero,
padrones.nombre_persona, padrones.tipo_persona, padrones.habilitado,
mis_aportes.ddjj, mis_aportes.aportes_ss, mis_aportes.aportes_os,
mis_aportes.contr_patronal, mis_aportes.periodo, mis_aportes.cuit_empleador,
empleador.nombre_persona as nombre_empleador, empleador.identificador as identificador_empleador,
substring(convert(varchar(6), mis_aportes.periodo),5,2) + '-' + left(convert(varchar(6), mis_aportes.periodo), 4) AS periodo_str
from padrones inner join mis_aportes on padrones.identificacion = mis_aportes.cuit
inner join padrones empleador on mis_aportes.cuit_empleador = empleador.identificacion
inner join
(select cuit, cuit_empleador, periodo, max(inserted) as ultimo
from mis_aportes
where cuit = @p_cuit
--and inserted >= (GETDATE() - 60)
group by cuit, cuit_empleador, periodo) per_last
ON (mis_aportes.cuit = per_last.cuit
AND mis_aportes.cuit_empleador = per_last.cuit_empleador
AND mis_aportes.periodo = per_last.periodo
AND mis_aportes.inserted = per_last.ultimo)
WHERE mis_aportes.periodo BETWEEN @p1 AND @p2
ORDER BY empleador.nombre_persona, mis_aportes.periodo
END
END
END
GO
GO
-- =============================================
-- Author: <Author,,Name>
-- Create date: <Create Date,,>
-- Description: <Description,,>
-- =============================================
/*
exec backend_mis_aportes '20335754655','30641368977'
select * from mis_aportes where cuit='20335754655'
and cuit_empleador= '30641368977'
exec backend_mis_aportes '20628151440',null,12,1
SELECT padrones.id_padron, padrones.identificador, padrones.numero,
padrones.nombre_persona, padrones.tipo_persona, padrones.habilitado,
mis_aportes.ddjj, mis_aportes.aportes_ss, mis_aportes.aportes_os,
mis_aportes.contr_patronal, mis_aportes.periodo, mis_aportes.cuit_empleador,
empleador.nombre_persona as nombre_empleador
from padrones inner join mis_aportes on padrones.identificacion = mis_aportes.cuit
inner join padrones empleador on mis_aportes.cuit_empleador = empleador.identificacion
inner join
(select cuit, cuit_empleador, periodo, max(inserted) as ultimo
from mis_aportes
where cuit = '20335754655'
and cuit_empleador = '30641368977'
group by cuit, cuit_empleador, periodo) per_last
ON (mis_aportes.cuit = per_last.cuit
AND mis_aportes.cuit_empleador = per_last.cuit_empleador
AND mis_aportes.periodo = per_last.periodo
AND mis_aportes.inserted = per_last.ultimo)
WHERE mis_aportes.periodo BETWEEN 201709 AND 201808
ORDER BY mis_aportes.periodo, empleador.nombre_persona
exec backend_mis_aportes_AGB null,'30709308242'
exec backend_mis_aportes_AGB '30709308242',null,12,1
*/
CREATE OR ALTER PROCEDURE dbo.backend_mis_aportes_agb
-- Add the parameters for the stored procedure here
@p_cuit varchar(13),
@p_cuit_empleador varchar(13) = NULL,
@p_periodos int = 12,
@p_filtro_60 tinyint = 0
AS
BEGIN
-- SET NOCOUNT ON added to prevent extra result sets from
-- interfering with SELECT statements.
SET NOCOUNT ON;
-- Insert statements for procedure here
DECLARE @p1 INT
DECLARE @p2 INT
DECLARE @d1 DATETIME
DECLARE @d2 DATETIME
DECLARE @meses int = (@p_periodos - 1) * (-1)
/* 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))
/* máximo período encontrado en mis aportes para el cuit - en caso de estar vacío es el período de hoy */
SELECT @p2 = ISNULL(MAX(periodo), @m1) FROM mis_aportes WHERE cuit = @p_cuit
/* el rango de la consulta son los últimos 12 meses registrados */
SET @d2 = DATETIMEFROMPARTS(CONVERT(INT, @p2/100), CONVERT(INT, RIGHT(CONVERT(varchar,@p2),2)),1,0,0,0,0)
SET @d1 = DATEADD(MONTH,@meses,@d2)
SET @p1 = CONVERT(INT, CONVERT(varchar,Year(@d1)) + RIGHT('00' + CONVERT(varchar, Month(@d1)), 2))
IF (@p_filtro_60 = 0) BEGIN
IF (@p_cuit_empleador IS NOT NULL)
SELECT padrones.id_padron, padrones.identificador, padrones.numero,
padrones.nombre_persona, padrones.tipo_persona, padrones.habilitado,
mis_aportes.ddjj, mis_aportes.aportes_ss, mis_aportes.aportes_os,
mis_aportes.contr_patronal, mis_aportes.periodo, mis_aportes.cuit_empleador,
empleador.nombre_persona as nombre_empleador, empleador.identificador as identificador_empleador,
substring(convert(varchar(6), mis_aportes.periodo),5,2) + '-' + left(convert(varchar(6), mis_aportes.periodo), 4) AS periodo_str
from padrones inner join mis_aportes on padrones.identificacion = mis_aportes.cuit
inner join padrones empleador on mis_aportes.cuit_empleador = empleador.identificacion
inner join
(select cuit, cuit_empleador, periodo, max(inserted) as ultimo
from mis_aportes
where cuit = @p_cuit
and cuit_empleador = @p_cuit_empleador
group by cuit, cuit_empleador, periodo) per_last
ON (mis_aportes.cuit = per_last.cuit
AND mis_aportes.cuit_empleador = per_last.cuit_empleador
AND mis_aportes.periodo = per_last.periodo
AND mis_aportes.inserted = per_last.ultimo)
WHERE mis_aportes.periodo BETWEEN @p1 AND @p2
ORDER BY mis_aportes.periodo, empleador.nombre_persona
ELSE
SELECT padrones.id_padron, padrones.identificador, padrones.numero,
padrones.nombre_persona, padrones.tipo_persona, padrones.habilitado,
mis_aportes.ddjj, mis_aportes.aportes_ss, mis_aportes.aportes_os,
mis_aportes.contr_patronal, mis_aportes.periodo, mis_aportes.cuit_empleador,
empleador.nombre_persona as nombre_empleador, empleador.identificador as identificador_empleador,
substring(convert(varchar(6), mis_aportes.periodo),5,2) + '-' + left(convert(varchar(6), mis_aportes.periodo), 4) AS periodo_str
from padrones inner join mis_aportes on padrones.identificacion = mis_aportes.cuit
inner join padrones empleador on mis_aportes.cuit_empleador = empleador.identificacion
inner join
(select cuit, cuit_empleador, periodo, max(inserted) as ultimo
from mis_aportes
where cuit = @p_cuit
group by cuit, cuit_empleador, periodo) per_last
ON (mis_aportes.cuit = per_last.cuit
AND mis_aportes.cuit_empleador = per_last.cuit_empleador
AND mis_aportes.periodo = per_last.periodo
AND mis_aportes.inserted = per_last.ultimo)
WHERE mis_aportes.periodo BETWEEN @p1 AND @p2
ORDER BY empleador.nombre_persona, mis_aportes.periodo
END ELSE BEGIN
/* con filtro a 60 días */
IF (@p_cuit_empleador IS NOT NULL) BEGIN
if exists(select cuit, cuit_empleador, periodo
from mis_aportes
where cuit = @p_cuit
and cuit_empleador = @p_cuit_empleador
and inserted >= (GETDATE() - 60))
SELECT padrones.id_padron, padrones.identificador, padrones.numero,
padrones.nombre_persona, padrones.tipo_persona, padrones.habilitado,
mis_aportes.ddjj, mis_aportes.aportes_ss, mis_aportes.aportes_os,
mis_aportes.contr_patronal, mis_aportes.periodo, mis_aportes.cuit_empleador,
empleador.nombre_persona as nombre_empleador, empleador.identificador as identificador_empleador,
substring(convert(varchar(6), mis_aportes.periodo),5,2) + '-' + left(convert(varchar(6), mis_aportes.periodo), 4) AS periodo_str
from padrones inner join mis_aportes on padrones.identificacion = mis_aportes.cuit
inner join padrones empleador on mis_aportes.cuit_empleador = empleador.identificacion
inner join
(select cuit, cuit_empleador, periodo, max(inserted) as ultimo
from mis_aportes
where cuit = @p_cuit
and cuit_empleador = @p_cuit_empleador
--and inserted >= (GETDATE() - 60)
group by cuit, cuit_empleador, periodo) per_last
ON (mis_aportes.cuit = per_last.cuit
AND mis_aportes.cuit_empleador = per_last.cuit_empleador
AND mis_aportes.periodo = per_last.periodo
AND mis_aportes.inserted = per_last.ultimo)
WHERE mis_aportes.periodo BETWEEN @p1 AND @p2
ORDER BY mis_aportes.periodo, empleador.nombre_persona
END ELSE BEGIN
if exists(select cuit, cuit_empleador, periodo
from mis_aportes
where cuit = @p_cuit
and inserted >= (GETDATE() - 60))
SELECT padrones.id_padron, padrones.identificador, padrones.numero,
padrones.nombre_persona, padrones.tipo_persona, padrones.habilitado,
mis_aportes.ddjj, mis_aportes.aportes_ss, mis_aportes.aportes_os,
mis_aportes.contr_patronal, mis_aportes.periodo, mis_aportes.cuit_empleador,
empleador.nombre_persona as nombre_empleador, empleador.identificador as identificador_empleador,
substring(convert(varchar(6), mis_aportes.periodo),5,2) + '-' + left(convert(varchar(6), mis_aportes.periodo), 4) AS periodo_str
from padrones inner join mis_aportes on padrones.identificacion = mis_aportes.cuit
inner join padrones empleador on mis_aportes.cuit_empleador = empleador.identificacion
inner join
(select cuit, cuit_empleador, periodo, max(inserted) as ultimo
from mis_aportes
where cuit = @p_cuit
--and inserted >= (GETDATE() - 60)
group by cuit, cuit_empleador, periodo) per_last
ON (mis_aportes.cuit = per_last.cuit
AND mis_aportes.cuit_empleador = per_last.cuit_empleador
AND mis_aportes.periodo = per_last.periodo
AND mis_aportes.inserted = per_last.ultimo)
WHERE mis_aportes.periodo BETWEEN @p1 AND @p2
ORDER BY empleador.nombre_persona, mis_aportes.periodo
END
END
END
GO
Depends On
2Used By
No items found