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
/*Esto es parte de tab Formales
[obtener_empleado_de] '20376645380'
[obtener_empleado_de] '20279424108'
select * from empleados where cuil = '20279424108' order by periodo desc
*/
CREATE OR ALTER PROCEDURE dbo.obtener_empleado_de
@p_Cuit varchar(20)
AS
BEGIN
SET NOCOUNT ON;
/*
declare @periodo date
set @periodo = (select max(fuentes_procesadas.fecha_informacion) from fuentes_procesadas where fuente = 'empleados')
select @periodo as ultimo_periodo_procesado,
empleados.cuit as cuit_empleador,
pf.nombre_persona as nombre_empleador,
substring(convert(char,@periodo),6,2) +'/20' + substring(convert(char,@periodo),3,2) as periodo
from empleados
left join padrones AS pf ON (pf.identificacion = cuit)
where cuil = @p_Cuit
and visible = '1'
and periodo = convert(int,substring(convert(char,@periodo),3,2)+substring(convert(char,@periodo),6,2))
GROUP BY empleados.cuit, pf.nombre_persona
order by 3 desc
*/
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,-6,@ultimo_mes_empleados) -- antes decia -2
-- 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
begin
set @periodo_empleados_hasta = @periodo_cuil
set @periodo_empleados_desde = @periodo_cuil - 100 + 1
end
-- si hay un mes posterior al que indica en fuentes_procesadas no se toma
select distinct @ultimo_mes_empleados as ultimo_periodo_procesado,
empleados.cuit as cuit_empleador,
pf.nombre_persona as nombre_empleador,
substring(convert(char,empleados.periodo),3,2) +'/20' + substring(convert(char,empleados.periodo),1,2) as periodo
from empleados
left join padrones AS pf ON (pf.identificacion = empleados.cuit)
where cuil = @p_Cuit
and 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)
order by 3 desc
END
GO
GO
/*Esto es parte de tab Formales
[obtener_empleado_de] '20376645380'
[obtener_empleado_de] '20279424108'
select * from empleados where cuil = '20279424108' order by periodo desc
*/
CREATE OR ALTER PROCEDURE dbo.obtener_empleado_de
@p_Cuit varchar(20)
AS
BEGIN
SET NOCOUNT ON;
/*
declare @periodo date
set @periodo = (select max(fuentes_procesadas.fecha_informacion) from fuentes_procesadas where fuente = 'empleados')
select @periodo as ultimo_periodo_procesado,
empleados.cuit as cuit_empleador,
pf.nombre_persona as nombre_empleador,
substring(convert(char,@periodo),6,2) +'/20' + substring(convert(char,@periodo),3,2) as periodo
from empleados
left join padrones AS pf ON (pf.identificacion = cuit)
where cuil = @p_Cuit
and visible = '1'
and periodo = convert(int,substring(convert(char,@periodo),3,2)+substring(convert(char,@periodo),6,2))
GROUP BY empleados.cuit, pf.nombre_persona
order by 3 desc
*/
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,-6,@ultimo_mes_empleados) -- antes decia -2
-- 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
begin
set @periodo_empleados_hasta = @periodo_cuil
set @periodo_empleados_desde = @periodo_cuil - 100 + 1
end
-- si hay un mes posterior al que indica en fuentes_procesadas no se toma
select distinct @ultimo_mes_empleados as ultimo_periodo_procesado,
empleados.cuit as cuit_empleador,
pf.nombre_persona as nombre_empleador,
substring(convert(char,empleados.periodo),3,2) +'/20' + substring(convert(char,empleados.periodo),1,2) as periodo
from empleados
left join padrones AS pf ON (pf.identificacion = empleados.cuit)
where cuil = @p_Cuit
and 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)
order by 3 desc
END
GO
Depends On
3Used By
No items found