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
/*
exec obtener_vinculaciones '20248728745'
select * from viculaciones
*/
CREATE OR ALTER PROCEDURE dbo.obtener_vinculaciones
@p_cuit varchar(20)
AS
BEGIN
SET NOCOUNT ON;
-- select * from socios where c01_cuit = '33596683679'
-- declare @p_cuit varchar(20) = '30569183118'
declare @tipo_persona varchar(1)
set @tipo_persona = iif(((LEFT(@p_cuit, 1)) = '3'), 'j', 'f')
if (@tipo_persona = 'j') -- PERSONA JURIDICA =================================================================
begin
select -- Socios con cargos RLL-----------------------------------------------------------------------------------------
distinct
socios.c01_cuit_soc as cuit_vinculada,
pf.nombre_persona as nombre_persona,
'' as nombre,
socios.c04_periodo_desde as desde,
socios.c04_periodo_hasta as hasta,
detalle = 'OTRAS VICULACIONES' /* + cargos.car_nombre, */,
socios.car_codigo,
pf.identificador as identificador_vinculada
from socios
inner join padrones as pf
on pf.identificacion = socios.c01_cuit_soc
left join cargos
on cargos.car_codigo = socios.car_codigo
where (c01_cuit = @p_cuit) and (socios.visible = 1)
and socios.car_codigo='RLL'
UNION ALL
select -- Socios -----------------------------------------------------------------------------------------
distinct
socios.c01_cuit_soc as cuit_vinculada,
pf.nombre_persona as nombre_persona,
'' as nombre,
socios.c04_periodo_desde as desde,
socios.c04_periodo_hasta as hasta,
detalle = 'EX-' + cargos.car_nombre,
socios.car_codigo,
pf.identificador as identificador_vinculada
from socios
inner join padrones as pf
on pf.identificacion = socios.c01_cuit_soc
left join cargos
on cargos.car_codigo = socios.car_codigo
where (c01_cuit = @p_cuit) and (socios.visible = 1) and (socios.c04_ultimo = 'N')
And socios.car_codigo !='IGJ'
union all
select -- Socios igj ---- las autoridad IGJ solo las muestra, si no estan con otro cargo, y una sola vez (por si estan cargadas varias veces)
distinct
socios.c01_cuit_soc as cuit_vinculada,
pf.nombre_persona as nombre_persona,
'' as nombre,
max(c04_periodo_desde) as desde,
null as hasta,
detalle = cargos.car_nombre,
socios.car_codigo,
pf.identificador as identificador_vinculada
from socios
inner join padrones as pf
on pf.identificacion = socios.c01_cuit_soc
left join cargos
on cargos.car_codigo = socios.car_codigo
where (c01_cuit = @p_cuit) and (socios.visible = 1) --and (socios.c04_ultimo = 'N')
And socios.car_codigo ='IGJ'
-- and not exists (select * from socios socios2 where socios2.c01_cuit = socios.c01_cuit and socios2.c01_cuit_soc = socios.c01_cuit_soc and socios2.car_codigo != 'IGJ' and socios2.visible = 1)
group by socios.c01_cuit_soc,
pf.nombre_persona,
cargos.car_nombre,
socios.car_codigo,
pf.identificador
union all -- vinculaciones --------------------------------------------------------------------------------
select
distinct
cuit_vinculada as cuit_vinculada,
nombre_persona,
nombre,
'' as desde,
'' as hasta,
vinculaciones.detalle,
null as car_codigo,
PADRONES.identificador as identificador_vinculada
from vinculaciones
right join tipo_vinculaciones
on id_tipo_vinculacion = cod_vinculacion
INNER JOIN PADRONES
ON PADRONES.identificacion = cuit_vinculada
where (cuit_sociedad = @p_cuit) and (vinculaciones.visible = 1)
and (tipo_vinculaciones.id_tipo_vinculacion < 18)
union all -------------------------------------------------------------------------------------------------
select distinct
cuit_sociedad as cuit_vinculada,
nombre_persona,
CASE nombre
WHEN 'CONTROLADA' THEN 'CONTROLANTE'
WHEN 'CONTROLANTE' THEN 'CONTROLADA'
ELSE nombre
END as nombre,
'' as desde,
'' as hasta,
vinculaciones.detalle as detalle,
null as car_codigo,
PADRONES.identificador as identificador_vinculada
from vinculaciones
right join tipo_vinculaciones
on id_tipo_vinculacion = cod_vinculacion
INNER JOIN PADRONES
ON PADRONES.identificacion = cuit_sociedad
where (cuit_vinculada = @p_cuit) and (vinculaciones.visible = 1)
and (tipo_vinculaciones.id_tipo_vinculacion < 18)
end
else -- PERSONA FISICA =======================================================================================
begin
select -- Socios con cargos RLL-----------------------------------------------------------------------------------------
distinct
socios.c01_cuit_soc as cuit_vinculada,
pf.nombre_persona as nombre_persona,
'' as nombre,
socios.c04_periodo_desde as desde,
socios.c04_periodo_hasta as hasta,
detalle = 'OTRAS VICULACIONES' /* + cargos.car_nombre, */,
socios.car_codigo,
pf.identificador as identificador_vinculada
from socios
inner join padrones as pf
on pf.identificacion = socios.c01_cuit
left join cargos
on cargos.car_codigo = socios.car_codigo
where (c01_cuit_SOC = @p_cuit) and (socios.visible = 1)
and socios.car_codigo='RLL'
UNION ALL
select -- Socios -----------------------------------------------------------------------------------------
distinct
socios.c01_cuit as cuit_vinculada,
pf.nombre_persona as nombre_persona,
'' as nombre,
max(socios.c04_periodo_desde) as desde,
max(socios.c04_periodo_hasta) as hasta,
detalle = 'EX-' + cargos.car_nombre,
socios.car_codigo,
pf.identificador as identificador_vinculada
from socios
inner join padrones as pf
on pf.identificacion = socios.c01_cuit
left join cargos
on cargos.car_codigo = socios.car_codigo
where (c01_cuit_soc = @p_cuit) and (socios.visible = 1) and (socios.c04_ultimo = 'N')
And socios.car_codigo !='IGJ'
group by socios.c01_cuit,
pf.nombre_persona,
cargos.car_nombre,
socios.car_codigo,
pf.identificador
union all
select -- Autoridad IGJ -----------------------------------------------------------------------------------------
distinct
socios.c01_cuit as cuit_vinculada,
pf.nombre_persona as nombre_persona,
'' as nombre,
max(socios.c04_periodo_desde) as desde,
max(socios.c04_periodo_hasta) as hasta,
detalle = cargos.car_nombre,
socios.car_codigo,
pf.identificador as identificador_vinculada
from socios
inner join padrones as pf
on pf.identificacion = socios.c01_cuit
left join cargos
on cargos.car_codigo = socios.car_codigo
where (c01_cuit_soc = @p_cuit) and (socios.visible = 1) --and (socios.c04_ultimo = 'N')
And socios.car_codigo ='IGJ'
--and not exists (select * from socios socios2 where socios2.c01_cuit = socios.c01_cuit and socios2.c01_cuit_soc = socios.c01_cuit_soc and socios2.car_codigo != 'IGJ' and socios2.visible = 1)
group by socios.c01_cuit,
pf.nombre_persona,
cargos.car_nombre,
socios.car_codigo,
pf.identificador
union all -- vinculaciones --------------------------------------------------------------------------------
select
cuit_vinculada as cuit_vinculada,
nombre_persona,
nombre,
'' as desde,
'' as hasta,
vinculaciones.detalle,
null as car_codigo,
PADRONES.identificador as identificador_vinculada
from vinculaciones
right join tipo_vinculaciones
on id_tipo_vinculacion = cod_vinculacion
INNER JOIN PADRONES
ON PADRONES.identificacion = cuit_vinculada
where (cuit_sociedad = @p_cuit) and (vinculaciones.visible = 1)
and (tipo_vinculaciones.id_tipo_vinculacion < 18)
union all -------------------------------------------------------------------------------------------------
select
cuit_sociedad as cuit_vinculada,
nombre_persona,
CASE nombre
WHEN 'CONTROLADA' THEN 'CONTROLANTE'
WHEN 'CONTROLANTE' THEN 'CONTROLADA'
ELSE nombre
END as nombre,
'' as desde,
'' as hasta,
vinculaciones.detalle,
null as car_codigo,
PADRONES.identificador as identificador_vinculada
from vinculaciones
right join tipo_vinculaciones
on id_tipo_vinculacion = cod_vinculacion
INNER JOIN PADRONES
ON PADRONES.identificacion = cuit_sociedad
where (cuit_vinculada = @p_cuit) and (vinculaciones.visible = 1)
and (tipo_vinculaciones.id_tipo_vinculacion < 18)
end
END
GO
GO
/*
exec obtener_vinculaciones '20248728745'
select * from viculaciones
*/
CREATE OR ALTER PROCEDURE dbo.obtener_vinculaciones
@p_cuit varchar(20)
AS
BEGIN
SET NOCOUNT ON;
-- select * from socios where c01_cuit = '33596683679'
-- declare @p_cuit varchar(20) = '30569183118'
declare @tipo_persona varchar(1)
set @tipo_persona = iif(((LEFT(@p_cuit, 1)) = '3'), 'j', 'f')
if (@tipo_persona = 'j') -- PERSONA JURIDICA =================================================================
begin
select -- Socios con cargos RLL-----------------------------------------------------------------------------------------
distinct
socios.c01_cuit_soc as cuit_vinculada,
pf.nombre_persona as nombre_persona,
'' as nombre,
socios.c04_periodo_desde as desde,
socios.c04_periodo_hasta as hasta,
detalle = 'OTRAS VICULACIONES' /* + cargos.car_nombre, */,
socios.car_codigo,
pf.identificador as identificador_vinculada
from socios
inner join padrones as pf
on pf.identificacion = socios.c01_cuit_soc
left join cargos
on cargos.car_codigo = socios.car_codigo
where (c01_cuit = @p_cuit) and (socios.visible = 1)
and socios.car_codigo='RLL'
UNION ALL
select -- Socios -----------------------------------------------------------------------------------------
distinct
socios.c01_cuit_soc as cuit_vinculada,
pf.nombre_persona as nombre_persona,
'' as nombre,
socios.c04_periodo_desde as desde,
socios.c04_periodo_hasta as hasta,
detalle = 'EX-' + cargos.car_nombre,
socios.car_codigo,
pf.identificador as identificador_vinculada
from socios
inner join padrones as pf
on pf.identificacion = socios.c01_cuit_soc
left join cargos
on cargos.car_codigo = socios.car_codigo
where (c01_cuit = @p_cuit) and (socios.visible = 1) and (socios.c04_ultimo = 'N')
And socios.car_codigo !='IGJ'
union all
select -- Socios igj ---- las autoridad IGJ solo las muestra, si no estan con otro cargo, y una sola vez (por si estan cargadas varias veces)
distinct
socios.c01_cuit_soc as cuit_vinculada,
pf.nombre_persona as nombre_persona,
'' as nombre,
max(c04_periodo_desde) as desde,
null as hasta,
detalle = cargos.car_nombre,
socios.car_codigo,
pf.identificador as identificador_vinculada
from socios
inner join padrones as pf
on pf.identificacion = socios.c01_cuit_soc
left join cargos
on cargos.car_codigo = socios.car_codigo
where (c01_cuit = @p_cuit) and (socios.visible = 1) --and (socios.c04_ultimo = 'N')
And socios.car_codigo ='IGJ'
-- and not exists (select * from socios socios2 where socios2.c01_cuit = socios.c01_cuit and socios2.c01_cuit_soc = socios.c01_cuit_soc and socios2.car_codigo != 'IGJ' and socios2.visible = 1)
group by socios.c01_cuit_soc,
pf.nombre_persona,
cargos.car_nombre,
socios.car_codigo,
pf.identificador
union all -- vinculaciones --------------------------------------------------------------------------------
select
distinct
cuit_vinculada as cuit_vinculada,
nombre_persona,
nombre,
'' as desde,
'' as hasta,
vinculaciones.detalle,
null as car_codigo,
PADRONES.identificador as identificador_vinculada
from vinculaciones
right join tipo_vinculaciones
on id_tipo_vinculacion = cod_vinculacion
INNER JOIN PADRONES
ON PADRONES.identificacion = cuit_vinculada
where (cuit_sociedad = @p_cuit) and (vinculaciones.visible = 1)
and (tipo_vinculaciones.id_tipo_vinculacion < 18)
union all -------------------------------------------------------------------------------------------------
select distinct
cuit_sociedad as cuit_vinculada,
nombre_persona,
CASE nombre
WHEN 'CONTROLADA' THEN 'CONTROLANTE'
WHEN 'CONTROLANTE' THEN 'CONTROLADA'
ELSE nombre
END as nombre,
'' as desde,
'' as hasta,
vinculaciones.detalle as detalle,
null as car_codigo,
PADRONES.identificador as identificador_vinculada
from vinculaciones
right join tipo_vinculaciones
on id_tipo_vinculacion = cod_vinculacion
INNER JOIN PADRONES
ON PADRONES.identificacion = cuit_sociedad
where (cuit_vinculada = @p_cuit) and (vinculaciones.visible = 1)
and (tipo_vinculaciones.id_tipo_vinculacion < 18)
end
else -- PERSONA FISICA =======================================================================================
begin
select -- Socios con cargos RLL-----------------------------------------------------------------------------------------
distinct
socios.c01_cuit_soc as cuit_vinculada,
pf.nombre_persona as nombre_persona,
'' as nombre,
socios.c04_periodo_desde as desde,
socios.c04_periodo_hasta as hasta,
detalle = 'OTRAS VICULACIONES' /* + cargos.car_nombre, */,
socios.car_codigo,
pf.identificador as identificador_vinculada
from socios
inner join padrones as pf
on pf.identificacion = socios.c01_cuit
left join cargos
on cargos.car_codigo = socios.car_codigo
where (c01_cuit_SOC = @p_cuit) and (socios.visible = 1)
and socios.car_codigo='RLL'
UNION ALL
select -- Socios -----------------------------------------------------------------------------------------
distinct
socios.c01_cuit as cuit_vinculada,
pf.nombre_persona as nombre_persona,
'' as nombre,
max(socios.c04_periodo_desde) as desde,
max(socios.c04_periodo_hasta) as hasta,
detalle = 'EX-' + cargos.car_nombre,
socios.car_codigo,
pf.identificador as identificador_vinculada
from socios
inner join padrones as pf
on pf.identificacion = socios.c01_cuit
left join cargos
on cargos.car_codigo = socios.car_codigo
where (c01_cuit_soc = @p_cuit) and (socios.visible = 1) and (socios.c04_ultimo = 'N')
And socios.car_codigo !='IGJ'
group by socios.c01_cuit,
pf.nombre_persona,
cargos.car_nombre,
socios.car_codigo,
pf.identificador
union all
select -- Autoridad IGJ -----------------------------------------------------------------------------------------
distinct
socios.c01_cuit as cuit_vinculada,
pf.nombre_persona as nombre_persona,
'' as nombre,
max(socios.c04_periodo_desde) as desde,
max(socios.c04_periodo_hasta) as hasta,
detalle = cargos.car_nombre,
socios.car_codigo,
pf.identificador as identificador_vinculada
from socios
inner join padrones as pf
on pf.identificacion = socios.c01_cuit
left join cargos
on cargos.car_codigo = socios.car_codigo
where (c01_cuit_soc = @p_cuit) and (socios.visible = 1) --and (socios.c04_ultimo = 'N')
And socios.car_codigo ='IGJ'
--and not exists (select * from socios socios2 where socios2.c01_cuit = socios.c01_cuit and socios2.c01_cuit_soc = socios.c01_cuit_soc and socios2.car_codigo != 'IGJ' and socios2.visible = 1)
group by socios.c01_cuit,
pf.nombre_persona,
cargos.car_nombre,
socios.car_codigo,
pf.identificador
union all -- vinculaciones --------------------------------------------------------------------------------
select
cuit_vinculada as cuit_vinculada,
nombre_persona,
nombre,
'' as desde,
'' as hasta,
vinculaciones.detalle,
null as car_codigo,
PADRONES.identificador as identificador_vinculada
from vinculaciones
right join tipo_vinculaciones
on id_tipo_vinculacion = cod_vinculacion
INNER JOIN PADRONES
ON PADRONES.identificacion = cuit_vinculada
where (cuit_sociedad = @p_cuit) and (vinculaciones.visible = 1)
and (tipo_vinculaciones.id_tipo_vinculacion < 18)
union all -------------------------------------------------------------------------------------------------
select
cuit_sociedad as cuit_vinculada,
nombre_persona,
CASE nombre
WHEN 'CONTROLADA' THEN 'CONTROLANTE'
WHEN 'CONTROLANTE' THEN 'CONTROLADA'
ELSE nombre
END as nombre,
'' as desde,
'' as hasta,
vinculaciones.detalle,
null as car_codigo,
PADRONES.identificador as identificador_vinculada
from vinculaciones
right join tipo_vinculaciones
on id_tipo_vinculacion = cod_vinculacion
INNER JOIN PADRONES
ON PADRONES.identificacion = cuit_sociedad
where (cuit_vinculada = @p_cuit) and (vinculaciones.visible = 1)
and (tipo_vinculaciones.id_tipo_vinculacion < 18)
end
END
GO