dbo.obtener_card_fiscales_PF

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 20

SQL Script

Copy
SET QUOTED_IDENTIFIER, ANSI_NULLS ON
GO

-- [obtener_card_fiscales_PF] '20376645380'
-- [obtener_card_fiscales_PF_ant] '23294800484'
CREATE OR ALTER PROCEDURE dbo.obtener_card_fiscales_PF 
@p_Cuit varchar(20)
AS

BEGIN
        SET NOCOUNT ON;
  

  declare @ultimo_mes_empleados date
  declare @mes_empleados date
  declare @periodo_empleados_desde int 
  declare @periodo_empleados_hasta int 
  set @ultimo_mes_empleados = (select max(fuentes_procesadas.fecha_informacion) from fuentes_procesadas where fuente = 'empleados')
  set @periodo_empleados_hasta = convert(int,substring(convert(char,@ultimo_mes_empleados),3,2)+substring(convert(char,@ultimo_mes_empleados),6,2))
  -- set @mes_empleados = '2018-06-01'--DATEADD(M,-2,@ultimo_mes_empleados)
  -- hasta 12/11/2024: periodo_desde = 12 meses para atras del ultimo mes procesado: 
     -- set @mes_empleados = DATEADD(M,-12,@ultimo_mes_empleados) 
     -- 12/11/2024: periodo_desde = 12 meses para atras de hoy
  -- set @mes_empleados = DATEADD(M,-12,getdate())
  -- 13/12/2024: periodo_desde = 8 meses para atras de hoy
  set @mes_empleados = DATEADD(M,-8,getdate())

  set @periodo_empleados_desde = convert(int,substring(convert(char,@mes_empleados),3,2)+substring(convert(char,@mes_empleados),6,2))

/*
declare @periodo_cuil int  = (select max(periodo) from empleados b where b.cuil = @p_cuit and b.visible = 1 )
if (@periodo_cuil > @periodo_empleados_hasta and @periodo_cuil is not null) 
begin
   set @periodo_empleados_hasta = @periodo_cuil
   set @periodo_empleados_desde = @periodo_cuil - 100 + 1
end 
else
begin
   set @periodo_empleados_hasta = 2407
   set @periodo_empleados_desde = 2207
end
*/

  declare @fecha_inicio_actividad varchar(10)
  declare @cod_clae varchar(6)
  declare @clae     varchar(500)
  declare @principal int 
  declare @monotributo varchar(50)

  /*select @fecha_inicio_actividad = convert(varchar(10),convert(date,min(fecha_inscripcion)),103)*/
  select @fecha_inicio_actividad = convert(varchar(10),convert(date,substring(min(fecha_inscripcion),1,10)),103)
    from padron_impuestos
   where id_padron = (select id_padron from padrones where identificacion = @p_Cuit and habilitado = 1) 
   and fecha_inscripcion != '1901-01-01'
 

  select top 1 
      @cod_clae = right('000000' + rtrim(replace(clae.cod_clae,'"','')),6),   
      @clae = clae.descripcion, 
      @principal = clae.principal
    from clae
     where clae.cuit = @p_cuit
     and clae.visible = 1
     and clae.descripcion is not null
     and clae.formulario is not null -- son las que se cargaron actualizadas de afip  
      order by principal desc

  select top 1 @monotributo = persona_categoria_afip.descripcion_categoria
    from persona_categoria_afip
    where persona_categoria_afip.id_padron = (select top 1 id_padron from padrones
                WHERE padrones.identificacion = @p_Cuit
                 and habilitado = 1)
     and persona_categoria_afip.id_impuesto = 20 -- in  (20,21,22,23)
     and upper(persona_categoria_afip.estado) = 'ACTIVO'   
   order by created desc
   
select titulo = 'MONOTRIBUTO',
  valor = @monotributo
  where  @monotributo is not null
union all

select distinct titulo = 'EMPLEO DETECTADO',
     valor = isnull(pf.nombre_persona,'') + 
       ' (' + substring(convert(char(10),periodo),3,2) +'/' + '20'+substring(convert(char(10),periodo),1,2) + ')'
 from empleados
 left join padrones AS pf ON (pf.identificacion = cuit) 
where cuil = @p_Cuit
 and empleados.visible = 1
 and periodo = (select max(periodo) from empleados b
              where b.cuil = @p_cuit 
     and b.visible = 1 
              and b.periodo between @periodo_empleados_desde and @periodo_empleados_hasta)

union all

select titulo = 'CLAE',
--valor = @cod_clae + ' ' + @clae
valor = @clae
where @clae is not null

union all 

select titulo = 'INICIO ACTIVIDAD',
  valor  = @fecha_inicio_actividad
where @fecha_inicio_actividad is not null
END

/*

ALTER PROCEDURE [dbo].[obtener_card_fiscales_PF] 
@p_Cuit varchar(20)
AS

BEGIN
        SET NOCOUNT ON;

declare @ultimo_mes_empleados date
declare @mes_empleados date
declare @periodo_empleados_desde int 
declare @periodo_empleados_hasta int 
    
set @ultimo_mes_empleados = (select max(fuentes_procesadas.fecha_informacion) from fuentes_procesadas where fuente = 'empleados')
set @periodo_empleados_hasta = convert(int,substring(convert(char,@ultimo_mes_empleados),3,2)+substring(convert(char,@ultimo_mes_empleados),6,2))
set @mes_empleados = DATEADD(M,-2,@ultimo_mes_empleados)
set @periodo_empleados_desde = convert(int,substring(convert(char,@mes_empleados),3,2)+substring(convert(char,@mes_empleados),6,2))


select titulo = 'GANANCIAS',
CASE imp_ganancias
WHEN 'NI' THEN 'NO INSCRIPTO'
WHEN 'N'  THEN 'NO INSCRIPTO'
WHEN 'AC' THEN 'ACTIVO'
WHEN 'S'  THEN 'ACTIVO'
WHEN 'EX' THEN 'EXENTO'
WHEN 'NA' THEN 'NO ALCANZADO'
WHEN 'XN' THEN 'EXENTO NO ALCANZADO'
WHEN 'AN' THEN 'ACTIVO NO ALCANZADO'
WHEN 'NC' THEN 'NO CORRESPONDE'
ELSE null
END as valor
from inscripciones  
where inscripciones.cuit = @p_Cuit 
   and inscripciones.visible = 1
   and inscripciones.id_inscripcion = (select max(b.id_inscripcion) from inscripciones b where b.cuit = @p_Cuit and b.visible = 1)
 
union all
select titulo = 'IVA',
CASE imp_iva
WHEN 'NI' THEN 'NO INSCRIPTO'
WHEN 'N'  THEN 'NO INSCRIPTO'
WHEN 'AC' THEN 'ACTIVO'
WHEN 'S'  THEN 'ACTIVO'
WHEN 'EX' THEN 'EXENTO'
WHEN 'NA' THEN 'NO ALCANZADO'
WHEN 'XN' THEN 'EXENTO NO ALCANZADO'
WHEN 'AN' THEN 'ACTIVO NO ALCANZADO'
WHEN 'NC' THEN 'NO CORRESPONDE'
ELSE null
END as valor
from inscripciones  
where inscripciones.cuit = @p_Cuit 
   and inscripciones.visible = 1
   and inscripciones.id_inscripcion = (select max(b.id_inscripcion) from inscripciones b where b.cuit = @p_Cuit and b.visible = 1)
     
union all
select titulo = 'MONOTRIBUTO', 
  CASE monotributo
WHEN 'NI' THEN 'NO INSCRIPTO'
WHEN 'N'  THEN 'NO INSCRIPTO'
WHEN 'AC' THEN 'ACTIVO'
WHEN 'S'  THEN 'ACTIVO'
WHEN 'EX' THEN 'EXENTO'
WHEN 'NA' THEN 'NO ALCANZADO'
WHEN 'XN' THEN 'EXENTO NO ALCANZADO'
WHEN 'AN' THEN 'ACTIVO NO ALCANZADO'
WHEN 'NC' THEN 'NO CORRESPONDE'
ELSE substring(monotributo,1,1)
END as valor
from inscripciones  
where inscripciones.cuit = @p_Cuit 
   and inscripciones.visible = 1
   and inscripciones.id_inscripcion = (select max(b.id_inscripcion) from inscripciones b where b.cuit = @p_Cuit and b.visible = 1)
     
union all

select titulo = 'INTEGRANTE SOCIEDAD', 

CASE integrante_soc
WHEN 'S' THEN 'SI'
ELSE 'NO'
    END as valor
from inscripciones  
where inscripciones.cuit = @p_Cuit 
   and inscripciones.visible = 1
   and inscripciones.id_inscripcion = (select max(b.id_inscripcion) from inscripciones b where b.cuit = @p_Cuit and b.visible = 1)
 
union all

select titulo = 'EMPLEADOR', 
CASE empleador
WHEN 'S' THEN 'SI'
ELSE 'NO'
END empleador
from inscripciones  
where inscripciones.cuit = @p_Cuit 
   and inscripciones.visible = 1
   and inscripciones.id_inscripcion = (select max(b.id_inscripcion) from inscripciones b where b.cuit = @p_Cuit and b.visible = 1)

   union all
   -- EMPLEADO DE: el ultimo que haya venido informado en los ultimos 3 meses, si es mas viejo no lo muestra
   --              y si hay un mes posterior al que indica en fuentes_procesadas no se toma

   select distinct titulo = 'EMPLEADO DE',
          valor = isnull(pf.nombre_persona,'') + '(' + substring(convert(char,periodo),3,2) +'/' + '20'+substring(convert(char,periodo),1,2) + ')'
   
  from empleados
left join padrones AS pf ON (pf.identificacion = cuit) 

where cuil = @p_Cuit
  and empleados.visible = 1
  and periodo = (select max(periodo) from empleados b
                  where b.cuil = @p_cuit 
    and b.visible = 1 
                    and b.periodo between @periodo_empleados_desde and @periodo_empleados_hasta)

union all

 select distinct titulo = 'CLAE',
        valor = clae.cod_clae + ' ' + clae.descripcion
  from clae
 where clae.cuit = @p_cuit  
   and clae.visible = 1 
   
union all
 select distinct titulo = 'FECHA INICIO ACTIVIDAD',
        valor  = convert(varchar(10),clae.fecha_inicio_actividad,103) 
  from clae
 where clae.cuit = @p_cuit 
   and clae.visible = 1 
   and clae.fecha_inicio_actividad is not null
 

END
*/


GO

Used By

No items found