dbo.LN_carga_documentacion_societaria

Description

Properties

Name Value
ANSI Nulls ON

True

Quoted Identifier ON

True

Encrypted

False

Execute As
Assembly

Parameters

2
Name Data Type Length Description
@contraparte int 4
@cliente int 4

SQL Script

Copy
SET QUOTED_IDENTIFIER, ANSI_NULLS ON
GO
--
-- [LN_carga_documentacion_societaria] 31279, null
-- [LN_carga_documentacion_societaria] null,5546348
-- [LN_carga_documentacion_societaria] null,null


CREATE OR ALTER PROCEDURE dbo.LN_carga_documentacion_societaria 
@contraparte int = null, 
@cliente int = null 

AS
BEGIN
 SET NOCOUNT ON;
 declare @cont int
 declare @cuit varchar(20)
 declare @nombre varchar(200)
 declare @valores table (contraparte int, gestion int, doc_id int, seccion int, campo int, tipo_campo varchar(1), nombre_campo varchar(200), etiqueta varchar(300),fila int, col int, valor_numerico float, valor_texto varchar(max), valor_fecha smalldatetime, valor_fecha_srt varchar(200))
 if (@contraparte is not null) 
 begin
  DECLARE contraparte_c CURSOR FOR
   select contraparte, identificacion, nombre_persona
     from ln_contrapartes 
     inner join padrones on padrones.id_padron = LN_contrapartes.id_padron 
     where contraparte =  @contraparte order by contraparte
 end 
 else
 begin
  if (@cliente is not null) 
  begin
   DECLARE contraparte_c CURSOR FOR
    select contraparte, identificacion, nombre_persona
    from ln_contrapartes 
    inner join padrones on padrones.id_padron = LN_contrapartes.id_padron 
    where cliente =  @cliente order by contraparte
  end 
  else
  begin
   DECLARE contraparte_c CURSOR FOR
    select contraparte, identificacion, nombre_persona
    from ln_contrapartes 
    inner join padrones on padrones.id_padron = LN_contrapartes.id_padron  
    where cliente not in (2254875,3920694/*,5546348*/) -- saco Fidelitas y Cliente Demo
    and exists (select * from LN_docs 
                  where LN_docs.contraparte = LN_contrapartes.contraparte 
         and tipo_doc in (select tipo_doc from LN_tipo_doc_campos where campo_id in ('DIRECTORES','SOCIOS-ACCIONISTAS')))
    order by ln_contrapartes.contraparte

  end 
 end 
 /*
  select * from LN_campos_col where campo = 175
  col etiqueta
  1 Nombre y Apellido / Razón Social T
  2 Nacionalidad o País de Origen    T
  3 ID Fiscal (TAX-ID)               T
  4 Cargo                            T
  5 Fecha inicio de cargo            D   
  */

   declare @directores table (contraparte int, nombre_contraparte varchar(200), cuit varchar(20), 
                              nombre varchar(200), 
         nacionalidad varchar(100), 
         cuit_socio varchar(20), 
         cargo varchar(200),  
         fecha date)

 /*
  select * from LN_campos_col where campo = 176
  1 Nombre y Apellido / Razón Social T
  2 Nacionalidad o País de Origen    T
  3 ID Fiscal (TAX-ID)               T
  4 % societario                     N(3,2)
  5 Cargo                            T
  6 Fecha inicio de cargo            D
  */

   declare @socios_accionistas table (contraparte int, nombre_contraparte varchar(200), cuit varchar(20), 
                              nombre varchar(200), 
         nacionalidad varchar(100), 
         cuit_socio varchar(20), 
         porcentaje float, 
         cargo varchar(200),  
         fecha date)

 OPEN contraparte_c
 FETCH NEXT FROM contraparte_c INTO @cont,@cuit,@nombre
 WHILE @@FETCH_STATUS = 0 BEGIN
    
    delete from @valores
    insert into @valores exec ln_docs_valores @cont, 'DIRECTORES'
    insert into @directores
    select @cont, @nombre, @cuit, 
    col1.valor_texto, 
    col2.valor_texto,
    iif(col3.valor_texto is not null, replace(col3.valor_texto,'-',''), col3.valor_numerico) as valor_texto, 
    col4.valor_texto,
    col5.valor_fecha 
    from @valores col1 
    inner join @valores col2 on col2.fila = col1.fila and col2.col = 2
    inner join @valores col3 on col3.fila = col1.fila and col3.col = 3
    inner join @valores col4 on col4.fila = col1.fila and col4.col = 4
    LEFT join @valores col5 on col5.fila = col1.fila and col5.col = 5
    where col1.col = 1 
    and     (
    isnull(col1.valor_texto,'') != '' or 
    isnull(col3.valor_texto,'') != '')

    delete from @valores
    insert into @valores exec ln_docs_valores @cont, 'SOCIOS-ACCIONISTAS'
    insert into @socios_accionistas  
    select @cont, @nombre, @cuit, 
    col1.valor_texto, 
    col2.valor_texto,
    iif(col3.valor_texto is not null, replace(col3.valor_texto,'-',''), col3.valor_numerico) as valor_texto, 
    col4.valor_numerico, 
    col5.valor_texto,
    col6.valor_fecha 
    from @valores col1 
    inner join @valores col2 on col2.fila = col1.fila and col2.col = 2
    inner join @valores col3 on col3.fila = col1.fila and col3.col = 3
    inner join @valores col4 on col4.fila = col1.fila and col4.col = 4
    LEFT join @valores col5 on col5.fila = col1.fila and col5.col = 5
    LEFT join @valores col6 on col6.fila = col1.fila and col6.col = 6
    where col1.col = 1 
    and     (
    isnull(col1.valor_texto,'') != '' or 
    isnull(col3.valor_texto,'') != '') 

      FETCH NEXT FROM contraparte_c INTO @cont,@cuit,@nombre
 END 
 CLOSE contraparte_c
 DEALLOCATE contraparte_c
 update  @directores         set cuit_socio = (ltrim(rtrim(dbo.fn_StripCharacters(cuit_socio,'^0-9/'))))
 update  @socios_accionistas set cuit_socio = (ltrim(rtrim(dbo.fn_StripCharacters(cuit_socio,'^0-9/'))))
 
 --insert into ln_proceso_documentacion_societaria
    select clientes.nombre_cliente, 
           'Directivos' as tabla,
           dir.contraparte, 
        dir.nombre_contraparte, 
        dir.cuit, 
        dir.nombre, 
        dir.cuit_socio, 
        dir.cargo, 
        null as porcentaje, 
        dir.fecha, 
        c01_cuit_soc, 
        padrones.nombre_persona, 
        cargos.car_codigo, CARGOS.car_nombre, 
        socios.c04_periodo_desde, 
        socios.c04_ultimo, 
        iif(socios.car_codigo is not null,
            (iif(REPLACE(dir.cargo,'-',' ') in (
         replace(cargos.car_nombre,'-',' '),
         replace(cargos.car_nombre_2,'-',' '),
         replace(cargos.car_nombre_3,'-',' '),
         replace(cargos.car_nombre_4,'-',' '),
         replace(cargos.car_nombre_5,'-',' ')),
        'ok','otro cargo')),'no esta') as caso
         from @directores dir
    left join socios on socios.c01_cuit = dir.cuit 
              and socios.c01_cuit_soc like dir.cuit_socio + '%'
        and socios.visible = 1
    left join padrones on padrones.identificacion = c01_cuit_soc
    left join cargos on cargos.car_codigo = socios.car_codigo
    left join clientes on clientes.cliente = (select cliente from LN_contrapartes where contraparte = dir.contraparte)
    where isnull(dir.cuit_socio,'') != ''

    union all 

    select clientes.nombre_cliente, 
           'Socios/Accionistas' as tabla, 
           dir.contraparte, 
        dir.nombre_contraparte, 
        dir.cuit, 
        dir.nombre, 
          (ltrim(rtrim(dbo.fn_StripCharacters(dir.cuit_socio,'^0-9/')))) as cuit_socio, 
        dir.cargo, 
        dir.porcentaje, 
        dir.fecha, 
        c01_cuit_soc, 
        padrones.nombre_persona, 
        cargos.car_codigo, CARGOS.car_nombre, 
        socios.c04_periodo_desde, 
        socios.c04_ultimo, 
       iif(socios.car_codigo is not null,
            (iif(REPLACE(dir.cargo,'-',' ') in (
         replace(cargos.car_nombre,'-',' '),
         replace(cargos.car_nombre_2,'-',' '),
         replace(cargos.car_nombre_3,'-',' '),
         replace(cargos.car_nombre_4,'-',' '),
         replace(cargos.car_nombre_5,'-',' ')),
        'ok','otro cargo')),'no esta') as caso
         from @socios_accionistas dir
    left join socios on socios.c01_cuit = dir.cuit 
        and socios.c01_cuit_soc like dir.cuit_socio + '%'
        and socios.visible = 1 
    left join padrones on padrones.identificacion = c01_cuit_soc
    left join cargos on cargos.car_codigo = socios.car_codigo
    left join clientes on clientes.cliente = (select cliente from LN_contrapartes where contraparte = dir.contraparte)
    where isnull(dir.cuit_socio,'') != ''

    union all 

    select clientes.nombre_cliente, 
           'Directivos' as tabla,
           dir.contraparte, 
        dir.nombre_contraparte, 
        dir.cuit, 
        dir.nombre, 
        dir.cuit_socio, 
        dir.cargo, 
        null as porcentaje, 
        dir.fecha, 
        padrones.identificacion, 
        padrones.nombre_persona, 
        cargos.car_codigo, CARGOS.car_nombre, 
        socios.c04_periodo_desde, 
        socios.c04_ultimo, 
        iif(socios.car_codigo is not null,
            (iif(REPLACE(dir.cargo,'-',' ') in (
         replace(cargos.car_nombre,'-',' '),
         replace(cargos.car_nombre_2,'-',' '),
         replace(cargos.car_nombre_3,'-',' '),
         replace(cargos.car_nombre_4,'-',' '),
         replace(cargos.car_nombre_5,'-',' ')),
        'ok','otro cargo')),'no esta') as caso
         from @directores dir
    left join socios on socios.c01_cuit = 'nada'
    left join padrones on padrones.identificacion = 'nada'
    left join cargos on cargos.car_codigo = 'nada'
    left join clientes on clientes.cliente = (select cliente from LN_contrapartes where contraparte = dir.contraparte)
    where isnull(dir.cuit_socio,'') = ''

    union all 

    select clientes.nombre_cliente, 
        'Socios/Accionistas' as tabla, 
           dir.contraparte, 
        dir.nombre_contraparte, 
        dir.cuit, 
        dir.nombre, 
          (ltrim(rtrim(dbo.fn_StripCharacters(dir.cuit_socio,'^0-9/')))) as cuit_socio, 
        dir.cargo, 
        dir.porcentaje, 
        dir.fecha, 
        padrones.identificacion, 
        padrones.nombre_persona, 
        cargos.car_codigo, CARGOS.car_nombre, 
        socios.c04_periodo_desde, 
        socios.c04_ultimo, 
        iif(socios.car_codigo is not null,
            (iif(REPLACE(dir.cargo,'-',' ') in (
         replace(cargos.car_nombre,'-',' '),
         replace(cargos.car_nombre_2,'-',' '),
         replace(cargos.car_nombre_3,'-',' '),
         replace(cargos.car_nombre_4,'-',' '),
         replace(cargos.car_nombre_5,'-',' ')),
        'ok','otro cargo')),'no esta') as caso
         from @socios_accionistas dir
    left join socios on socios.c01_cuit = 'nada'
    left join padrones on padrones.identificacion = 'nada'
    left join cargos on cargos.car_codigo = 'nada'
    left join clientes on clientes.cliente = (select cliente from LN_contrapartes where contraparte = dir.contraparte)
    where isnull(dir.cuit_socio,'') = ''

    union all 

    select null as nombre_cliente, 
           'Tabla Socios' as tabla, 
           null as contraparte, 
        null as nombre_contraparte, 
        socios.c01_cuit, 
        null as nombre, 
        null as cuit_socio, 
        null as cargo, 
        null as porcentaje, 
        null as fecha, 
        c01_cuit_soc, 
        padrones.nombre_persona, 
        cargos.car_codigo, CARGOS.car_nombre, 
        socios.c04_periodo_desde, 
        socios.c04_ultimo,
        'otro en la tabla de socios' as caso
         from socios
    left join padrones on padrones.identificacion = c01_cuit_soc
    left join cargos on cargos.car_codigo = socios.car_codigo
    where socios.c01_cuit in (select distinct cuit from @directores union select cuit from @socios_accionistas) 
      and socios.visible = 1 and c04_ultimo = 'S'
      and isnull(socios.c01_cuit_soc,'') != '' 
      and not exists (select * from @directores         dir where dir.cuit = socios.c01_cuit and socios.c01_cuit_soc like dir.cuit_socio + '%' )
      and not exists (select * from @socios_accionistas dir where dir.cuit = socios.c01_cuit and socios.c01_cuit_soc like dir.cuit_socio + '%' )

    
    order by 5, 2, 7

   
 
END 


--select * from socios where c01_cuit = '210194590011'
GO

Used By

No items found