Description

Properties

Name Value
File Collation
File Group
Filestream File Group
Is Partitioned

False

Partitioned Column
Partition Scheme
File Groups
Filestream Partition Scheme
Filestream File Groups
Heap

True

Full Text Catalog
Full Text
Compression NONE
Row Count (~) 4166930
Created 8/2/2016 9:03:49 PM
Last Modified 11/14/2023 11:30:01 AM

Columns

24
Key Name Data Type Length Precision Scale Not Null Identity Rule Default Computed Persisted Description
c01_codigo varchar 50 0 0

False

False

False

c01_cuit varchar 50 0 0

False

False

False

c01_codigo_soc varchar 50 0 0

False

False

False

c01_cuit_soc varchar 50 0 0

False

False

False

car_codigo varchar 50 0 0

False

False

False

c04_porcentaje varchar 50 0 0

False

False

False

c04_periodo_mes varchar 50 0 0

False

False

False

c04_periodo_ano varchar 50 0 0

False

False

False

c04_ultimo varchar 50 0 0

False

False

False

c04_periodo_desde varchar 50 0 0

False

False

False

c04_periodo_hasta varchar 50 0 0

False

False

False

c04_fecha_act varchar 50 0 0

False

False

False

c04_usuario varchar 50 0 0

False

False

False

id varchar 50 0 0

False

False

False

visible bit 1 1 0

False

False

False

created datetime 8 23 3

False

False

False

created_by int 4 10 0

False

False

False

modified datetime 8 23 3

False

False

False

modified_by int 4 10 0

False

False

False

id_padron int 4 10 0

False

False

False

id_socios int 4 10 0

True

1 - 1

False

False

fuente varchar 30 0 0

False

False

False

id_padron_socio int 4 10 0

False

False

False

ids_sociedades_constituciones varchar 0 0

False

False

False

Indexes

5
Key Name Columns Unique Type Description
idx_relaciones_socios1 visible, c01_cuit

False

idx_socios_cuit_soc_visible_includes c01_cuit_soc, visible

False

idx_socios_cuit_ultimo_visible c01_cuit_soc, c04_ultimo, visible

False

idx_socios_cuit0 c01_cuit

False

idx_socios_id id_socios

False

Triggers

3
Name ANSI Nulls ON Quoted Identifier ON On Not For Replication Description
TD_socios

True

True

AFTER DELETE

False

TI_socios

True

True

AFTER INSERT

False

TU_socios

True

True

AFTER UPDATE

False

SQL Script

Copy
CREATE TABLE dbo.socios (
  c01_codigo varchar(50) NULL,
  c01_cuit varchar(50) NULL,
  c01_codigo_soc varchar(50) NULL,
  c01_cuit_soc varchar(50) NULL,
  car_codigo varchar(50) NULL,
  c04_porcentaje varchar(50) NULL,
  c04_periodo_mes varchar(50) NULL,
  c04_periodo_ano varchar(50) NULL,
  c04_ultimo varchar(50) NULL,
  c04_periodo_desde varchar(50) NULL,
  c04_periodo_hasta varchar(50) NULL,
  c04_fecha_act varchar(50) NULL,
  c04_usuario varchar(50) NULL,
  id varchar(50) NULL,
  visible bit NULL,
  created datetime NULL,
  created_by int NULL,
  modified datetime NULL,
  modified_by int NULL,
  id_padron int NULL,
  id_socios int IDENTITY,
  fuente varchar(30) NULL,
  id_padron_socio int NULL,
  ids_sociedades_constituciones varchar(max) NULL
)
ON [PRIMARY]
TEXTIMAGE_ON [PRIMARY]
GO

CREATE INDEX idx_relaciones_socios1
  ON dbo.socios (visible, c01_cuit)
  INCLUDE (c01_cuit_soc, car_codigo, c04_ultimo, c04_periodo_desde, c04_periodo_hasta)
  WITH (FILLFACTOR = 80)
  ON [PRIMARY]
GO

CREATE INDEX idx_socios_cuit_soc_visible_includes
  ON dbo.socios (c01_cuit_soc, visible)
  INCLUDE (c01_cuit, car_codigo, c04_ultimo, c04_periodo_desde, c04_periodo_hasta)
  WITH (FILLFACTOR = 80)
  ON [PRIMARY]
GO

CREATE INDEX idx_socios_cuit_ultimo_visible
  ON dbo.socios (c01_cuit_soc, c04_ultimo, visible)
  WITH (FILLFACTOR = 80)
  ON [PRIMARY]
GO

CREATE INDEX idx_socios_cuit0
  ON dbo.socios (c01_cuit)
  WITH (FILLFACTOR = 80)
  ON [PRIMARY]
GO

CREATE INDEX idx_socios_id
  ON dbo.socios (id_socios)
  WITH (FILLFACTOR = 80)
  ON [PRIMARY]
GO

SET QUOTED_IDENTIFIER, ANSI_NULLS ON
GO
/*
En la tabla [codigo_accion_trazabilidad] están los códigos de distintas cosas que pasan

select * from trazabilidad_id_padron  
*/


create OR ALTER trigger dbo.TD_socios on dbo.socios 
FOR DELETE as
BEGIN

 DECLARE
 @c01_cuit_old   varchar(50) = NULL,
 @c01_cuit_soc_old  varchar(50) = NULL,
 @car_codigo_old         varchar(50) = NULL,
 @c04_periodo_mes_old varchar(50) = NULL,
 @c04_periodo_ano_old varchar(50) = NULL,
 @c04_ultimo_old   varchar(50) = NULL,
 @c04_periodo_desde_old varchar(50) = NULL,
 @c04_periodo_hasta_old varchar(50) = NULL,
 @visible_old   bit = NULL,
 @id_padron_old   int = NULL,
 @id_padron_soc_old   int = NULL,
 @buscado_id_padron_empresa_old int = NULL,
 @buscado_id_padron_socio_old int = NULL,

 @id_socios int = NULL,
 @user_id int = NULL, 
 @detalle varchar(max) = NULL
 
 DECLARE C_DELETE CURSOR FOR
   select
     deleted.c01_cuit,
     deleted.c01_cuit_soc,
     deleted.car_codigo,
     deleted.c04_periodo_mes,
     deleted.c04_periodo_ano,
     deleted.c04_ultimo,
     deleted.c04_periodo_desde,
     deleted.c04_periodo_hasta,
     deleted.visible,
     deleted.id_padron,
     deleted.id_padron_socio,
     deleted.id_socios, 
     deleted.modified_by
  from deleted 
 OPEN C_DELETE
 FETCH NEXT FROM C_DELETE INTO 
         @c01_cuit_old,
         @c01_cuit_soc_old,
         @car_codigo_old,
         @c04_periodo_mes_old,
         @c04_periodo_ano_old,
         @c04_ultimo_old,
         @c04_periodo_desde_old,
         @c04_periodo_hasta_old,
         @visible_old,
         @id_padron_old,
         @id_padron_soc_old,
         @id_socios,
         @user_id
 WHILE @@fetch_status = 0
 BEGIN 
  -- empresa
  set @buscado_id_padron_empresa_old = null 
  if (@id_padron_old is not null and (select identificacion from padrones where id_padron = @id_padron_old) = @c01_cuit_old)
  begin
   set @buscado_id_padron_empresa_old = @id_padron_old
  end 
  else 
  begin
   if (select count(*) from padrones where identificacion = @c01_cuit_old and habilitado = 1) = 1
    select @buscado_id_padron_empresa_old = id_padron
      from padrones 
     where identificacion = @c01_cuit_old 
       and habilitado = 1 
   if (select count(*) from padrones where identificacion = @c01_cuit_old and habilitado = 1) > 1 and len(@c01_cuit_old) = 11
    select @buscado_id_padron_empresa_old = id_padron 
     from padrones 
     where identificacion = @c01_cuit_old 
     and habilitado = 1 
     and identificador in (select identificador from identificadores where country_code = 'AR') 
  end
  
  -- socio
  set @buscado_id_padron_socio_old = null 
  if (@id_padron_soc_old is not null and (select identificacion from padrones where id_padron = @id_padron_soc_old) = @c01_cuit_soc_old)
  begin
   set @buscado_id_padron_socio_old = @id_padron_soc_old
  end 
  else 
  begin
   if (select count(*) from padrones where identificacion = @c01_cuit_soc_old and habilitado = 1) = 1
    select @buscado_id_padron_socio_old = id_padron
     from padrones 
     where identificacion = @c01_cuit_soc_old 
     and habilitado = 1 
   if (select count(*) from padrones where identificacion = @c01_cuit_soc_old and habilitado = 1) > 1 and len(@c01_cuit_soc_old) = 11
    select @buscado_id_padron_socio_old = id_padron 
     from padrones 
     where identificacion = @c01_cuit_soc_old 
     and habilitado = 1 
     and identificador in (select identificador from identificadores where country_code = 'AR') 
  end 
  /*
   select * from codigo_accion_trazabilidad
   12 Socios: Baja del registro directorio
   */

  set @detalle = 'Baja de registro de un directivo' 
  declare @codigos_accion varchar(max) = '12'
  -- Guarda la trazabilidad de la empresa 
  insert into trazabilidad_id_padron
  ( 
   tabla,
   id_registro_tabla,
   created,
   [user_id],
   accion,
   codigos_accion,
   detalle,
   cuit_old, id_padron_old, cuit_new, id_padron_new,
   cuit_relacionado_old, id_padron_relacionado_old, cuit_relacionado_new, id_padron_relacionado_new,
   cargo_old, cargo_new,
   ultimo_directorio_old,ultimo_directorio_new,
   periodo_periodo_old,  periodo_periodo_new,
   periodo_desde_old,    periodo_desde_new,
   periodo_hasta_old,   periodo_hasta_new,
   visible_old,        visible_new)
  values 
  (
   'socios',
   @id_socios,
   getdate(), 
   @user_id, 
   'DELETE',
   @codigos_accion,
   @detalle,
   @c01_cuit_old,     @buscado_id_padron_empresa_old, null, null,   
   @c01_cuit_soc_old, @buscado_id_padron_socio_old,   null, null,
   @car_codigo_old,   null , 
   @c04_ultimo_old,   null,
   isnull(convert(varchar(10),@c04_periodo_mes_old),'') + '-' + isnull(convert(varchar(10),@c04_periodo_ano_old),''), 
   null, 
   @c04_periodo_desde_old, null,
   @c04_periodo_hasta_old, null,
   @visible_old,   null
  )
 

  FETCH NEXT FROM C_DELETE INTO 
         @c01_cuit_old,
         @c01_cuit_soc_old,
         @car_codigo_old,
         @c04_periodo_mes_old,
         @c04_periodo_ano_old,
         @c04_ultimo_old,
         @c04_periodo_desde_old,
         @c04_periodo_hasta_old,
         @visible_old,
         @id_padron_old,
         @id_padron_soc_old,
         @id_socios,
         @user_id


 END
 CLOSE C_DELETE
 DEALLOCATE C_DELETE 
END 
GO
/*
En la tabla [codigo_accion_trazabilidad] están los códigos de distintas cosas que pasan
select * from trazabilidad_id_padron  

insert into socios_mis(c01_cuit, c01_cuit_soc, car_codigo, c04_ultimo, visible)
select top 5 c01_cuit, c01_cuit_soc, car_codigo, c04_ultimo, 1 from socios order by created desc

select * from socios_mis
*/


CREATE OR ALTER trigger dbo.TI_socios on dbo.socios 
FOR insert as
BEGIN

 DECLARE
 
 @c01_cuit_new   varchar(50) = NULL,
 @c01_cuit_soc_new  varchar(50) = NULL,
 @car_codigo_new         varchar(50) = NULL,
 @c04_periodo_mes_new varchar(50) = NULL,
 @c04_periodo_ano_new varchar(50) = NULL,
 @c04_ultimo_new   varchar(50) = NULL,
 @c04_periodo_desde_new varchar(50) = NULL,
 @c04_periodo_hasta_new varchar(50) = NULL,
 @visible_new   bit = NULL,
 @id_padron_new   int = NULL,
 @id_padron_soc_new       int = NULL,
 @buscado_id_padron_empresa_new int = NULL,
 @buscado_id_padron_socio_new int = NULL, 

 @id_socios int = NULL,
 @user_id   int = NULL
 
 DECLARE C_ALTA CURSOR FOR
   select
   inserted.c01_cuit,
   inserted.c01_cuit_soc,
   inserted.car_codigo,
   inserted.c04_periodo_mes,
   inserted.c04_periodo_ano,
   inserted.c04_ultimo,
   inserted.c04_periodo_desde,
   inserted.c04_periodo_hasta,
   inserted.visible, 
   inserted.id_padron,
   inserted.id_padron_socio,
   inserted.id_socios, 
   inserted.created_by
    from inserted 
 OPEN C_ALTA
 FETCH NEXT FROM C_ALTA INTO  @c01_cuit_new,
         @c01_cuit_soc_new,
         @car_codigo_new,
         @c04_periodo_mes_new,
         @c04_periodo_ano_new,
         @c04_ultimo_new,
         @c04_periodo_desde_new,
         @c04_periodo_hasta_new,
         @visible_new,
         @id_padron_new,
         @id_padron_soc_new,
         @id_socios,
         @user_id

 WHILE @@fetch_status = 0
 BEGIN 
  /* Buscamos id_padron de la empresa y del socio (muy pocos registros tienen el id_padron y muchas veces no es el correcto) */
    -- empresa
  
  set @buscado_id_padron_empresa_new = null 
  if (@id_padron_new is not null and (select identificacion from padrones where id_padron = @id_padron_new) = @c01_cuit_new)
  begin
   set @buscado_id_padron_empresa_new = @id_padron_new
  end 
  else 
  begin
   if (select count(*) from padrones where identificacion = @c01_cuit_new and habilitado = 1) = 1
    select @buscado_id_padron_empresa_new = id_padron
     from padrones 
     where identificacion = @c01_cuit_new
     and habilitado = 1 
   if (select count(*) from padrones where identificacion = @c01_cuit_new and habilitado = 1) > 1 and len(@c01_cuit_new) = 11
    select @buscado_id_padron_empresa_new = id_padron
     from padrones 
     where identificacion = @c01_cuit_new
     and habilitado = 1 
     and identificador in (select identificador from identificadores where country_code = 'AR')
  end 

  -- socio
  
  set @buscado_id_padron_socio_new = null 
  if (@id_padron_soc_new is not null and (select identificacion from padrones where id_padron = @id_padron_soc_new) = @c01_cuit_soc_new)
  begin
   set @buscado_id_padron_socio_new = @id_padron_soc_new
  end 
  else 
  begin
   if (select count(*) from padrones where identificacion = @c01_cuit_soc_new and habilitado = 1) = 1
    select @buscado_id_padron_socio_new = id_padron
     from padrones 
     where identificacion = @c01_cuit_soc_new
     and habilitado = 1 
   if (select count(*) from padrones where identificacion = @c01_cuit_soc_new and habilitado = 1) > 1 and len(@c01_cuit_soc_new) = 11
    select @buscado_id_padron_socio_new = id_padron
     from padrones 
     where identificacion = @c01_cuit_soc_new
     and habilitado = 1 
     and identificador in (select identificador from identificadores where country_code = 'AR') 
  end 

  -- Hacemos el update en la tabla socios con los id_padron que corresponden 
  if (isnull(@buscado_id_padron_empresa_new,0) != isnull(@id_padron_new,0)) begin
   update socios set id_padron = @buscado_id_padron_empresa_new, modified = getdate(), modified_by = @user_id where id_socios = @id_socios
  end

  if (isnull(@buscado_id_padron_socio_new,0) != isnull(@id_padron_soc_new,0)) begin
   update socios set id_padron_socio = @buscado_id_padron_socio_new,  modified = getdate(), modified_by = @user_id where id_socios = @id_socios
  end

  -- Si visible es null, le pone 1
  if @visible_new is null begin
   update socios set visible = 1, modified = getdate(), modified_by = @user_id where id_socios = @id_socios
   set @visible_new = 1 
  end

  /*
   select * from codigo_accion_trazabilidad
   11 Socios: Alta de un nuevo registro directivo
   */


  declare @codigos_accion varchar(10) = '11'
  declare @detalle varchar(100) = 'Alta de un nuevo registro directivo'

 -- Guarda la trazabilidad de la empresa 
  insert into trazabilidad_id_padron
  ( 
   tabla,
   id_registro_tabla,
   created,
   [user_id],
   accion,
   codigos_accion,
   detalle,
   cuit_old, id_padron_old, cuit_new, id_padron_new,
   cuit_relacionado_old, id_padron_relacionado_old, cuit_relacionado_new, id_padron_relacionado_new,
   cargo_old, cargo_new,
   ultimo_directorio_old,ultimo_directorio_new,
   periodo_periodo_old,  periodo_periodo_new,
   periodo_desde_old,    periodo_desde_new,
   periodo_hasta_old,   periodo_hasta_new,
   visible_old,        visible_new)
  values 
  (
   'socios',
   @id_socios,
   getdate(), 
   @user_id, 
   'INSERT',
   @codigos_accion,
   @detalle,
   null, null, @c01_cuit_new,     @buscado_id_padron_empresa_new,   
   null, null, @c01_cuit_soc_new, @buscado_id_padron_socio_new,
   null, @car_codigo_new , 
   null, @c04_ultimo_new,
   null, 
   isnull(convert(varchar(10),@c04_periodo_mes_new),'') + '-' + isnull(convert(varchar(10),@c04_periodo_ano_new),''), 
   null, @c04_periodo_desde_new,
   null, @c04_periodo_hasta_new,
   null, @visible_new
  )

  FETCH NEXT FROM C_ALTA INTO  @c01_cuit_new,
          @c01_cuit_soc_new,
          @car_codigo_new,
          @c04_periodo_mes_new,
          @c04_periodo_ano_new,
          @c04_ultimo_new,
          @c04_periodo_desde_new,
          @c04_periodo_hasta_new,
          @visible_new,
          @id_padron_new,
          @id_padron_soc_new,
          @id_socios,
          @user_id


 END
 CLOSE C_ALTA
 DEALLOCATE C_ALTA 
END 
GO
/*
En la tabla [codigo_accion_trazabilidad] están los códigos de distintas cosas que pasan

select * from [codigo_accion_trazabilidad] 
select * from trazabilidad_id_padron 

*/


CREATE OR ALTER trigger dbo.TU_socios on dbo.socios 
FOR UPDATE as
BEGIN

 DECLARE
 @c01_cuit_old   varchar(50) = NULL,
 @c01_cuit_soc_old  varchar(50) = NULL,
 @car_codigo_old         varchar(50) = NULL,
 @c04_periodo_mes_old varchar(50) = NULL,
 @c04_periodo_ano_old varchar(50) = NULL,
 @c04_ultimo_old   varchar(50) = NULL,
 @c04_periodo_desde_old varchar(50) = NULL,
 @c04_periodo_hasta_old varchar(50) = NULL,
 @visible_old   bit = NULL,
 @id_padron_old   int = NULL,
 @id_padron_soc_old   int = NULL,
 @buscado_id_padron_empresa_old int = NULL,
 @buscado_id_padron_socio_old int = NULL,

 @c01_cuit_new   varchar(50) = NULL,
 @c01_cuit_soc_new  varchar(50) = NULL,
 @car_codigo_new         varchar(50) = NULL,
 @c04_periodo_mes_new varchar(50) = NULL,
 @c04_periodo_ano_new varchar(50) = NULL,
 @c04_ultimo_new   varchar(50) = NULL,
 @c04_periodo_desde_new varchar(50) = NULL,
 @c04_periodo_hasta_new varchar(50) = NULL,
 @visible_new   bit = NULL,
 @id_padron_new   int = NULL,
 @id_padron_soc_new   int = NULL,
 @buscado_id_padron_empresa_new int = NULL,
 @buscado_id_padron_socio_new int = NULL, 

 @id_socios int = NULL,
 @user_id int = NULL, 
 @detalle varchar(max) = NULL
 
 DECLARE C_Cursor CURSOR FOR
   select
     deleted.c01_cuit,
     deleted.c01_cuit_soc,
     deleted.car_codigo,
     deleted.c04_periodo_mes,
     deleted.c04_periodo_ano,
     deleted.c04_ultimo,
     deleted.c04_periodo_desde,
     deleted.c04_periodo_hasta,
     deleted.visible,
     deleted.id_padron,
     deleted.id_padron_socio,
     inserted.c01_cuit,
     inserted.c01_cuit_soc,
     inserted.car_codigo,
     inserted.c04_periodo_mes,
     inserted.c04_periodo_ano,
     inserted.c04_ultimo,
     inserted.c04_periodo_desde,
     inserted.c04_periodo_hasta,
     inserted.visible, 
     inserted.id_padron,
     inserted.id_padron_socio,
     inserted.id_socios, 
     inserted.modified_by

  from inserted 
  inner join deleted on inserted.id_socios = deleted.id_socios
 OPEN C_Cursor
 FETCH NEXT FROM C_Cursor INTO 
         @c01_cuit_old,
         @c01_cuit_soc_old,
         @car_codigo_old,
         @c04_periodo_mes_old,
         @c04_periodo_ano_old,
         @c04_ultimo_old,
         @c04_periodo_desde_old,
         @c04_periodo_hasta_old,
         @visible_old,
         @id_padron_old,
         @id_padron_soc_old,
         @c01_cuit_new,
         @c01_cuit_soc_new,
         @car_codigo_new,
         @c04_periodo_mes_new,
         @c04_periodo_ano_new,
         @c04_ultimo_new,
         @c04_periodo_desde_new,
         @c04_periodo_hasta_new,
         @visible_new,
         @id_padron_new,
         @id_padron_soc_new,
         @id_socios,
         @user_id


 WHILE @@fetch_status = 0
 BEGIN 
  /* Buscamos id_padron de la empresa y del socio (muy pocos registros tienen el id_padron y muchas veces no es el correcto) */
    -- empresa
  set @buscado_id_padron_empresa_old = null 
  if (@id_padron_old is not null and (select identificacion from padrones where id_padron = @id_padron_old) = @c01_cuit_old)
  begin
   set @buscado_id_padron_empresa_old = @id_padron_old
  end 
  else 
  begin
   if (select count(*) from padrones where identificacion = @c01_cuit_old and habilitado = 1) = 1
    select @buscado_id_padron_empresa_old = id_padron
      from padrones 
     where identificacion = @c01_cuit_old 
       and habilitado = 1 
   if (select count(*) from padrones where identificacion = @c01_cuit_old and habilitado = 1) > 1 and len(@c01_cuit_old) = 11
    select @buscado_id_padron_empresa_old = id_padron 
     from padrones 
     where identificacion = @c01_cuit_old 
     and habilitado = 1 
     and identificador in (select identificador from identificadores where country_code = 'AR') 
  end

  set @buscado_id_padron_empresa_new = null 
  if (@id_padron_new is not null and (select identificacion from padrones where id_padron = @id_padron_new) = @c01_cuit_new)
  begin
   set @buscado_id_padron_empresa_new = @id_padron_new
  end 
  else 
  begin
   if (select count(*) from padrones where identificacion = @c01_cuit_new and habilitado = 1) = 1
    select @buscado_id_padron_empresa_new = id_padron
     from padrones 
     where identificacion = @c01_cuit_new
     and habilitado = 1 
   if (select count(*) from padrones where identificacion = @c01_cuit_new and habilitado = 1) > 1 and len(@c01_cuit_new) = 11
    select @buscado_id_padron_empresa_new = id_padron
     from padrones 
     where identificacion = @c01_cuit_new
     and habilitado = 1 
     and identificador in (select identificador from identificadores where country_code = 'AR')
  end 

  -- socio
  set @buscado_id_padron_socio_old = null 
  if (@id_padron_soc_old is not null and (select identificacion from padrones where id_padron = @id_padron_soc_old) = @c01_cuit_soc_old)
  begin
   set @buscado_id_padron_socio_old = @id_padron_soc_old
  end 
  else 
  begin
   if (select count(*) from padrones where identificacion = @c01_cuit_soc_old and habilitado = 1) = 1
    select @buscado_id_padron_socio_old = id_padron
     from padrones 
     where identificacion = @c01_cuit_soc_old 
     and habilitado = 1 
   if (select count(*) from padrones where identificacion = @c01_cuit_soc_old and habilitado = 1) > 1 and len(@c01_cuit_soc_old) = 11
    select @buscado_id_padron_socio_old = id_padron 
     from padrones 
     where identificacion = @c01_cuit_soc_old 
     and habilitado = 1 
     and identificador in (select identificador from identificadores where country_code = 'AR') 
  end 

  set @buscado_id_padron_socio_new = null 
  if (@id_padron_soc_new is not null and (select identificacion from padrones where id_padron = @id_padron_soc_new) = @c01_cuit_soc_new)
  begin
   set @buscado_id_padron_socio_new = @id_padron_soc_new
  end 
  else 
  begin
   if (select count(*) from padrones where identificacion = @c01_cuit_soc_new and habilitado = 1) = 1
    select @buscado_id_padron_socio_new = id_padron
     from padrones 
     where identificacion = @c01_cuit_soc_new
     and habilitado = 1 
   if (select count(*) from padrones where identificacion = @c01_cuit_soc_new and habilitado = 1) > 1 and len(@c01_cuit_soc_new) = 11
    select @buscado_id_padron_socio_new = id_padron
     from padrones 
     where identificacion = @c01_cuit_soc_new
     and habilitado = 1 
     and identificador in (select identificador from identificadores where country_code = 'AR') 
  end 

  -- Hacemos el update en la tabla socios con los id_padron que corresponden 
  if (isnull(@buscado_id_padron_empresa_new,0) != isnull(@id_padron_new,0)) begin
   update socios set id_padron = @buscado_id_padron_empresa_new, modified = GETDATE(), modified_by = @user_id where id_socios = @id_socios
  end

  if (isnull(@buscado_id_padron_socio_new,0) != isnull(@id_padron_soc_new,0)) begin
   update socios set id_padron_socio = @buscado_id_padron_socio_new, modified = GETDATE(), modified_by = @user_id where id_socios = @id_socios
  end

  -- Si visible es null, le pone 1
  if @visible_new is null begin
   update socios set visible = 1, modified = GETDATE(), modified_by = @user_id where id_socios = @id_socios
   set @visible_new = 1 
  end

  /*
   select * from codigo_accion_trazabilidad
   1 Socios/Directores: Cambio CUIT de la sociedad
   2 Socios/Directores: Cambio CUIT del socio
   3 Socios/Directores: Cambio cargo
   4 Socios/Directores: Cambio Último directorio (S/N) -- No se usa mas, se cambio por 13 y 14
   5 Socios/Directores: Cambio Período
   6 Socios/Directores: Cambio Período desde
   7 Socios/Directores: Cambio Período hasta
   8 Socios/Directores: Cambio Visible -- No se usa mas, se cambio por 11 y 12 
   9 Socios/Directores: Cambio id_padron de la sociedad
   10 Socios/Directores: Cambio id_padron del socio
   11 Socios/Directores: Alta de un nuevo registro directivo
   12 Socios/Directores: Baja del registro directorio
   13 Socios/Directores: Está en el último directorio
   14 Socios/Directores: No está en el último directorio
   */


  set @detalle = 'Se modificó:' 
  declare @codigos_accion varchar(max) = ''
  declare @hay_cambios bit = 0

  if (isnull(@buscado_id_padron_empresa_new,0) != isnull(@id_padron_new,0)) 
   or (isnull(@buscado_id_padron_empresa_new,0) != isnull(@buscado_id_padron_empresa_old,0))
  begin
   set @detalle = @detalle + ' - id_padron de la sociedad'
   set @codigos_accion = @codigos_accion + ',9'
   set @hay_cambios = 1 
  end

  if (isnull(@buscado_id_padron_socio_new,0) != isnull(@id_padron_soc_new,0)) 
   or (isnull(@buscado_id_padron_socio_new,0) != isnull(@buscado_id_padron_socio_old,0)) 
  begin
   set @detalle = @detalle + ' - id_padron del socio'
   set @codigos_accion = @codigos_accion + ',10'
   set @hay_cambios = 1 
  end


  if (isnull(@c01_cuit_old,'') != isnull(@c01_cuit_new,'')) begin
     set @detalle = @detalle + ' - CUIT de la sociedad'
     set @codigos_accion = @codigos_accion + ',1'
     set @hay_cambios = 1 end
  if (isnull(@c01_cuit_soc_old,'') != isnull(@c01_cuit_soc_new,'')) begin
     set @detalle = @detalle + ' - CUIT del socio'
     set @codigos_accion = @codigos_accion + ',2'
     set @hay_cambios = 1 end
  if (isnull(@car_codigo_old,'') != isnull(@car_codigo_new,'')) begin
     set @detalle = @detalle + ' - cargo'
     set @codigos_accion = @codigos_accion + ',3'
     set @hay_cambios = 1 end
  if (isnull(@c04_ultimo_old,'') != isnull(@c04_ultimo_new,'')) begin
     set @detalle = @detalle + ' - último directorio (S/N): ' + @c04_ultimo_new
     if (@c04_ultimo_new = 'S')  set @codigos_accion = @codigos_accion + ',13' -- Esta en el ultimo directorio
     if (@c04_ultimo_new = 'N')  set @codigos_accion = @codigos_accion + ',14' -- No esta en el ultimo directorio 
     --set @codigos_accion = @codigos_accion + ',4'
     set @hay_cambios = 1 end
  if (isnull(@c04_periodo_mes_old,'') != isnull(@c04_periodo_mes_new,'') or isnull(@c04_periodo_ano_old,'') != isnull(@c04_periodo_ano_new,'')) begin
     set @codigos_accion = @codigos_accion + ',5'
     set @detalle = @detalle + ' - período'
     set @hay_cambios = 1 end
  if (isnull(@c04_periodo_desde_old,'') != isnull(@c04_periodo_desde_new,'')) begin
     set @detalle = @detalle + ' - período desde'
     set @codigos_accion = @codigos_accion + ',6'
     set @hay_cambios = 1 end
  if (isnull(@c04_periodo_hasta_old,'') != isnull(@c04_periodo_hasta_new,'')) begin
     set @detalle = @detalle + ' - período hasta'
     set @codigos_accion = @codigos_accion + ',7'
     set @hay_cambios = 1 end
  if (@visible_old is null or @visible_old != @visible_new) begin
     set @detalle = @detalle + ' - visible: ' + CONVERT(char(1),@visible_new) 
     if (@visible_new = 1)  set @codigos_accion = @codigos_accion + ',11' -- Alta resgistro
     if (@visible_new = 0)  set @codigos_accion = @codigos_accion + ',12' -- Baja resgistro
     --set @codigos_accion = @codigos_accion + ',8'
     set @hay_cambios = 1 end
    
 if (@hay_cambios = 1) --> Si no quiere decir que no se modificó nada
 begin
  set @codigos_accion = rtrim(SUBSTRING(@codigos_accion,2,1000)) -- elimina la coma del inicio
 -- Guarda la trazabilidad de la empresa 
  insert into trazabilidad_id_padron
  ( 
   tabla,
   id_registro_tabla,
   created,
   [user_id],
   accion,
   codigos_accion,
   detalle,
   cuit_old, id_padron_old, cuit_new, id_padron_new,
   cuit_relacionado_old, id_padron_relacionado_old, cuit_relacionado_new, id_padron_relacionado_new,
   cargo_old, cargo_new,
   ultimo_directorio_old,ultimo_directorio_new,
   periodo_periodo_old,  periodo_periodo_new,
   periodo_desde_old,    periodo_desde_new,
   periodo_hasta_old,   periodo_hasta_new,
   visible_old,        visible_new)
  values 
  (
   'socios',
   @id_socios,
   getdate(), 
   @user_id, 
   'UPDATE',
   @codigos_accion,
   @detalle,
   @c01_cuit_old,     @buscado_id_padron_empresa_old, @c01_cuit_new,     @buscado_id_padron_empresa_new,   
   @c01_cuit_soc_old, @buscado_id_padron_socio_old,   @c01_cuit_soc_new, @buscado_id_padron_socio_new,
   @car_codigo_old,   @car_codigo_new , 
   @c04_ultimo_old,   @c04_ultimo_new,
   isnull(convert(varchar(10),@c04_periodo_mes_old),'') + '-' + isnull(convert(varchar(10),@c04_periodo_ano_old),''), 
   isnull(convert(varchar(10),@c04_periodo_mes_new),'') + '-' + isnull(convert(varchar(10),@c04_periodo_ano_new),''), 
   @c04_periodo_desde_old, @c04_periodo_desde_new,
   @c04_periodo_hasta_old, @c04_periodo_hasta_new,
   @visible_old,   @visible_new
  )
 end

 FETCH NEXT FROM C_Cursor INTO 
         @c01_cuit_old,
         @c01_cuit_soc_old,
         @car_codigo_old,
         @c04_periodo_mes_old,
         @c04_periodo_ano_old,
         @c04_ultimo_old,
         @c04_periodo_desde_old,
         @c04_periodo_hasta_old,
         @visible_old,
         @id_padron_old,
         @id_padron_soc_old,
         @c01_cuit_new,
         @c01_cuit_soc_new,
         @car_codigo_new,
         @c04_periodo_mes_new,
         @c04_periodo_ano_new,
         @c04_ultimo_new,
         @c04_periodo_desde_new,
         @c04_periodo_hasta_new,
         @visible_new,
         @id_padron_new,
         @id_padron_soc_new,
         @id_socios,
         @user_id


 END
 CLOSE C_Cursor
 DEALLOCATE C_Cursor 
END 
GO

Depends On

3

Used By

95