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
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- Fidelitas
- dbo.identificadores
- dbo.padrones
Used By
95- dbo.AMX_Documentacion_societaria
- dbo.api_buscar_vinculaciones
- dbo.backend_abm_socios
- dbo.backend_busqueda_asociativa_para_ABM
- dbo.backend_busqueda_padron_asociativa
- dbo.backend_busqueda_padron_asociativa_2da_fase
- dbo.backend_obtener_socios
- dbo.backend_procesar_socio
- dbo.backend_procesar_socio_20072023
- dbo.backend_procesar_socio_2024
- dbo.backend_procesar_socio_finalizar
- dbo.backend_procesar_socio_mis
- dbo.backend_socios
- dbo.backend_status_socio
- dbo.backend_visible_socios
- dbo.CLAE_JUJUY_
- dbo.Cruce_Socios_AMX
- dbo.grafo_sociedades
- dbo.grafo_sociedades_claudio
- dbo.igj_insertar
- dbo.igj_insertar_completo-NOUSAR-HABLARCON ALEJANDRO
- dbo.igj_socios_duplicados
- dbo.LN_carga_documentacion_societaria
- dbo.ln_completa_fidecheck
- dbo.ln_completa_fidecheck_check
- dbo.LN_control_calidad
- dbo.LN_control_calidad_31052022
- dbo.LN_control_calidad_por_cuit
- dbo.LN_control_calidad_por_cuit_31052022
- dbo.LN_control_etica
- dbo.LN_control_etica_por_cuit
- dbo.LN_control_etica_por_cuit_01062022
- dbo.LN_control_etica_por_cuit_31052022
- dbo.LN_dashboard_cliente_13052020
- dbo.LN_dashboard_cliente_2020
- dbo.LN_dashboard_cliente_20200403
- dbo.LN_dashboard_cliente_A_BORRAR
- dbo.LN_dashboard_cliente_AB
- dbo.LN_dashboard_cliente_ant
- dbo.LN_dashboard_cliente_BACKUP_12062019_2006HORAS
- dbo.LN_dashboard_cliente_DEV
- dbo.LN_dashboard_cliente_MIS
- dbo.LN_dashboard_cliente_MS
- dbo.LN_mapa_relaciones
- dbo.LN_panel_control_excel2
- dbo.obtener_card_score
- dbo.obtener_nivel_socioeconomico
- dbo.obtener_nivel_socioeconomico_10052021
- dbo.obtener_nivel_socioeconomico_2021
- dbo.obtener_nivel_socioeconomico_2021_ant
- dbo.obtener_nivel_socioeconomico_2021_bkp30052022
- dbo.obtener_nivel_socioeconomico_2021_MIS
- dbo.obtener_nivel_socioeconomico_2021_new
- dbo.obtener_nivel_socioeconomico_2021AGB
- dbo.obtener_nivel_socioeconomico_dev
- dbo.obtener_nivel_socioeconomico_nuevo
- dbo.obtener_nivel_socioeconomico_old
- dbo.obtener_nivel_socioeconomico_old_2
- dbo.obtener_nivel_socioeconomico_pruebas
- dbo.obtener_participacion_socios_directores
- dbo.obtener_participacion_socios_directores_mis
- dbo.obtener_personas_relacionadas
- dbo.obtener_socios_directores
- dbo.obtener_socios_directores_test
- dbo.obtener_vinculaciones
- dbo.pe_obtener_nivel_socioeconomico
- dbo.prensa_economica
- dbo.procesar_cargo
- dbo.proceso_socios_sociedades_constituciones
- dbo.proceso_socios_sociedades_constituciones_dni
- dbo.proceso_socios_sociedades_constituciones_renuncias
- dbo.proceso_socios_sociedades_constituciones_renuncias_dni
- dbo.screening_empleados_2018_DEV
- dbo.screening_empleados_dev
- dbo.screening_empleados_new
- dbo.screening_empleados_ok
- dbo.screening_empleados_SP
- dbo.screening_proveedores
- dbo.screening_proveedores_2018
- dbo.screening_proveedores_2018_new
- dbo.screening_proveedores_junio_2018
- dbo.screening_proveedores_new
- dbo.screening_proveedores_ok
- dbo.sociedades_edictos_insertar
- dbo.socios_a_informix
- dbo.socios_enriquecer
- dbo.socios_enriquecer_08082024
- dbo.socios_enriquecer_2024
- dbo.socios_enriquecer_mis
- dbo.socios_enriquecer27052024
- dbo.sp_procesos_cuit_enrichment_personas_relacionadas
- dbo.sp_procesos_cuit_enrichment_simples_sociedades
- dbo.sp_procesos_cuit_enrichment_simples_socios
- dbo.ultima_revision_socios_
- dbo.ws_estructura_societaria