dbo.obtener_participacion_socios_directores

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_participacion_socios_directores] '30556399898'
*/

CREATE OR ALTER PROCEDURE dbo.obtener_participacion_socios_directores
@p_Cuit varchar(20)
AS
BEGIN
    SET NOCOUNT ON;
 -- Socios
 select distinct socios.c01_cuit_soc            as cuit_socio, 
        pf.nombre_persona              as nombre_socio, 
     cargo = iif(socios.c04_ultimo='N','EX-'+cargos.car_nombre,cargos.car_nombre),
     socios.c01_cuit                as cuit_sociedad,
     pj.nombre_persona              as nombre_sociedad, 
     c04_periodo_desde        as desde, 
     c04_periodo_hasta        as hasta
  
     ,pf.identificador as identificador_socio, 
     pj.identificador as identificador_sociedad
   from socios
        inner join padrones as pf 
            on pf.identificacion = socios.c01_cuit_soc
     inner join padrones as pj
            on pj.identificacion = socios.c01_cuit
     left join cargos 
            on cargos.car_codigo = socios.car_codigo 
    
  where c01_cuit_soc in (select c01_cuit_soc 
                     from socios b
                    where b.c01_cuit = @p_Cuit and b.visible = 1 and b.c04_ultimo = 'S')
    and socios.visible = 1
    and socios.c01_cuit != @p_Cuit
    and pf.habilitado = 1 and pj.habilitado = 1 
    And socios.car_codigo !='IGJ'
 
 union 
 /* los cargos autoridad IGJ lo mostramos una sola vez, y siempre y cuando no tengamos otro registro con el cargo correspondiente */
   select distinct socios.c01_cuit_soc            as cuit_socio, 
        pf.nombre_persona              as nombre_socio, 
     cargos.car_nombre as cargo,
     socios.c01_cuit                as cuit_sociedad,
     pj.nombre_persona              as nombre_sociedad, 
     max(c04_periodo_desde)     as desde, 
     null        as hasta
  
     ,pf.identificador as identificador_socio, 
     pj.identificador as identificador_sociedad
   from socios
        inner join padrones as pf 
            on pf.identificacion = socios.c01_cuit_soc
     inner join padrones as pj
            on pj.identificacion = socios.c01_cuit
     left join cargos 
            on cargos.car_codigo = socios.car_codigo 
    
  where c01_cuit_soc in (select c01_cuit_soc 
                     from socios b
                    where b.c01_cuit = @p_Cuit and b.visible = 1 and b.c04_ultimo = 'S')
    and socios.visible = 1
    and socios.c01_cuit != @p_Cuit
    and pf.habilitado = 1 and pj.habilitado = 1 
    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.c01_cuit ,
     pj.nombre_persona,
     pf.identificador,
     pj.identificador



  union all

  -- Accionistas
 select distinct accionistas.cuit_acc as cuit_socio, 
        pf.nombre_persona as nombre_socio, 
     cargo = 'ACCIONISTA',
     accionistas.cuit_sociedad as cuit_sociedad,
     pj.nombre_persona as nombre_sociedad, 
     null as desde, 
     null as hasta 

     /*,
         datos_sociedades.actividad as actividad,
             datos_sociedades.fecha_cons as fecha_cons, 
         datos_sociedades.fecha_ins_rpc as fecha_ins_rp,
         domicilios_todos.domicilio as domicilio_sociedad,
         domicilios_todos.loc_nombre as localidad_sociedad, 
         domicilios_todos.prv_nombre as provincia_sociedad,
         domicilios_todos.pai_nombre as pais_sociedad
         */

      ,pf.identificador as identificador_socio, 
     pj.identificador as identificador_sociedad
   from accionistas
        inner join padrones as pf 
            on pf.identificacion = accionistas.cuit_acc
     inner join padrones as pj
            on pj.identificacion = accionistas.cuit_sociedad
        /*
            left join datos_sociedades
                   on datos_sociedades.cuit = accionistas.cuit_sociedad
            left join domicilios_todos 
                   on domicilios_todos.cuit = accionistas.cuit_sociedad
            */

   where cuit_acc in (select c01_cuit_soc 
                     from socios b
                    where b.c01_cuit = @p_Cuit and b.visible = 1 and b.c04_ultimo = 'S')
    and accionistas.visible = 1
    and accionistas.cuit_sociedad != @p_Cuit
    and pj.habilitado = 1 and pf.habilitado = 1 
    
  order by cuit_socio

END

GO

Used By

No items found