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