dbo.mis_aportes_empresa

Description

Properties

Name Value
ANSI Nulls ON

True

Quoted Identifier ON

True

Encrypted

False

Execute As
Assembly

Parameters

3
Name Data Type Length Description
@p_cuit varchar 13
@dias int 4
@meses int 4

SQL Script

Copy
SET QUOTED_IDENTIFIER, ANSI_NULLS ON
GO
-- =============================================
-- Author: <Author,,Name>
-- Create date: <Create Date,,>
-- Description: <Description,,>
-- =============================================

-- exec mis_aportes_empresa  '30559991089',null,2

CREATE OR ALTER PROCEDURE dbo.mis_aportes_empresa
 -- Add the parameters for the stored procedure here

 @p_cuit varchar(13) = null, 
 @dias   int = 720, -- cuantos dias maximo el inserted
 @meses  int = 11 -- ultimo mes y cuantos meses para atras mostrar
 
AS
BEGIN
 -- SET NOCOUNT ON added to prevent extra result sets from
 -- interfering with SELECT statements.
 SET NOCOUNT ON;

    -- Insert statements for procedure here
 -- set @dias=120 dejamos lo que manden por parametro 27/07/2021
 DECLARE @p1 INT
 DECLARE @p2 INT
 DECLARE @d1 DATETIME
 DECLARE @d2 DATETIME

 if (@dias is null or @dias > 720) set @dias = 720

 if (@meses is null or @meses > 11) set @meses = 11
 set @meses = @meses * (-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_empleador = @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_cuit is not null) begin

  /*SELECT
   mis_aportes.ddjj, mis_aportes.aportes_ss, mis_aportes.aportes_os,
   mis_aportes.contr_patronal, mis_aportes.periodo, mis_aportes.cuit_empleador,
   substring(convert(varchar(6), mis_aportes.periodo),5,2) + '-' + left(convert(varchar(6), mis_aportes.periodo), 4) AS periodo_str
   FROM mis_aportes
  
   inner join
   (select cuit_empleador, periodo, max(inserted) as ultimo
   from mis_aportes
   where cuit_empleador = @p_cuit
   group by cuit_empleador, periodo) per_last 
   ON (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*/


 /* AGB COMENTADO Y MODIFICADO 16/08/2022 
  select mis_aportes.periodo,mis_aportes.ddjj,mis_aportes.aportes_ss,mis_aportes.aportes_os,mis_aportes.contr_patronal,
  mis_aportes.periodo, mis_aportes.cuit_empleador,
  substring(convert(varchar(6), mis_aportes.periodo),5,2) + '-' + left(convert(varchar(6), mis_aportes.periodo), 4) AS periodo_str,max(id_aportes) as IDAporte
  from mis_aportes 
  where -- mis_aportes.ddjj!='NO PRESENTADA' and 
  mis_aportes.periodo BETWEEN @p1 AND @p2
  and mis_aportes.cuit_empleador = @p_cuit
  and mis_aportes.inserted >= ( GETDATE() - @dias )
 
  group by mis_aportes.periodo,mis_aportes.ddjj,mis_aportes.aportes_ss,mis_aportes.aportes_os,mis_aportes.contr_patronal,
  mis_aportes.periodo, mis_aportes.cuit_empleador
 
  order by mis_aportes.periodo
 */


  select mis_aportes.periodo,mis_aportes.ddjj,mis_aportes.aportes_ss,mis_aportes.aportes_os,mis_aportes.contr_patronal,
  mis_aportes.periodo, mis_aportes.cuit_empleador,padrones.nombre_persona as nombre_empleador,
  substring(convert(varchar(6), mis_aportes.periodo),5,2) + '-' + left(convert(varchar(6), mis_aportes.periodo), 4) AS periodo_str, mis_aportes.cuit
  from mis_aportes 
  inner join padrones on (padrones.identificacion = mis_aportes.cuit_empleador and padrones.habilitado = 1 and padrones.identificador in 
        (select identificador from identificadores where country_code = 'AR'))
  inner join (select MISAP.periodo,max(id_aportes) as IDAporte
  from mis_aportes MISAP
  where 
  /* MIS 27/02/2024 se agregaron estas condiciones */
  (
  (MISAP.aportes_os != '-' and MISAP.aportes_ss != '-') 
  or 
  --(MISAP.aportes_os = '-' and MISAP.aportes_ss = '-' and not exists (select * from mis_aportes MISAP2 where MISAP2.ddjj != 'NO PRESENTADA' and MISAP2.cuit_empleador = MISAP.cuit_empleador and MISAP2.periodo = MISAP.periodo and (MISAP2.aportes_os != '-' and MISAP2.aportes_ss != '')))
  -- se cambio el 11/06/2024 por:
  ((MISAP.aportes_os = '-' or MISAP.aportes_ss = '-') and not exists (select * from mis_aportes MISAP2 where MISAP2.ddjj != 'NO PRESENTADA' and MISAP2.cuit_empleador = MISAP.cuit_empleador and MISAP2.periodo = MISAP.periodo and (MISAP2.aportes_os != '-' and MISAP2.aportes_ss != '')))
  )
  and MISAP.ddjj != 'NO PRESENTADA' and 
  /**/
  MISAP.periodo BETWEEN @p1 AND @p2
  and MISAP.cuit_empleador = @p_cuit
  and MISAP.inserted >= ( GETDATE() - @dias ) group by MISAP.periodo) IDS on mis_aportes.id_aportes=IDS.IDAporte
/* where -- mis_aportes.ddjj!='NO PRESENTADA' and 
mis_aportes.periodo BETWEEN @p1 AND @p2
and mis_aportes.cuit_empleador = @p_cuit
and mis_aportes.inserted >= ( GETDATE() - @dias )

group by mis_aportes.periodo,mis_aportes.ddjj,mis_aportes.aportes_ss,mis_aportes.aportes_os,mis_aportes.contr_patronal,
mis_aportes.periodo, mis_aportes.cuit_empleador
*/
 
  order by mis_aportes.periodo




-- exec mis_aportes_empresa_AGB '30709308242'

 end
 
END
GO