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 (~) | 67 |
| Created | 7/6/2023 10:15:52 AM |
| Last Modified | 7/10/2023 9:38:40 AM |
Columns
23| 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 |
Triggers
3| Name | ANSI Nulls ON | Quoted Identifier ON | On | Not For Replication | Description |
|---|---|---|---|---|---|
| TD_socios_mis | True |
True |
AFTER DELETE | False |
|
| TI_socios_mis | True |
True |
AFTER INSERT | False |
|
| TU_socios_mis | True |
True |
AFTER UPDATE | False |
SQL Script
Copy
CREATE TABLE dbo.socios_mis (
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
)
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
CREATE TABLE [dbo].[codigo_accion_trazabilidad](
[id] [int] IDENTITY(1,1) NOT NULL,
accion varchar(1000) null
)
insert into codigo_accion_trazabilidad(accion) values ('Socios: Cambio CUIT de la sociedad')
insert into codigo_accion_trazabilidad(accion) values ('Socios: Cambio CUIT del socio')
insert into codigo_accion_trazabilidad(accion) values ('Socios: Cambio cargo')
insert into codigo_accion_trazabilidad(accion) values ('Socios: Cambio Esta en el Ultimo directorio')
insert into codigo_accion_trazabilidad(accion) values ('Socios: Cambio Período')
insert into codigo_accion_trazabilidad(accion) values ('Socios: Cambio Período desde')
insert into codigo_accion_trazabilidad(accion) values ('Socios: Cambio Período hasta')
insert into codigo_accion_trazabilidad(accion) values ('Socios: Cambio Visible')
insert into codigo_accion_trazabilidad(accion) values ('Socios: Cambio id_padron de la sociedad')
insert into codigo_accion_trazabilidad(accion) values ('Socios: id_padron del socio')
select * from trazabilidad_id_padron
select * from socios_mis
delete from socios_mis where id_socios = 404710
*/
CREATE OR ALTER trigger dbo.TD_socios_mis on dbo.socios_mis
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_mis',
@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 1 c01_cuit, c01_cuit_soc, car_codigo, c04_ultimo, visible from socios order by created desc
select * from socios_mis
*/
CREATE OR ALTER trigger dbo.TI_socios_mis on dbo.socios_mis
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_mis set id_padron = @buscado_id_padron_empresa_new where id_socios = @id_socios
end
if (isnull(@buscado_id_padron_socio_new,0) != isnull(@id_padron_soc_new,0)) begin
update socios_mis set id_padron_socio = @buscado_id_padron_socio_new where id_socios = @id_socios
end
-- Si visible es null, le pone 1
if @visible_new is null begin
update socios_mis set visible = 1 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_mis',
@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
CREATE TABLE [dbo].[codigo_accion_trazabilidad](
[id] [int] IDENTITY(1,1) NOT NULL,
accion varchar(1000) null
)
insert into codigo_accion_trazabilidad(accion) values ('Socios: Cambio CUIT de la sociedad')
insert into codigo_accion_trazabilidad(accion) values ('Socios: Cambio CUIT del socio')
insert into codigo_accion_trazabilidad(accion) values ('Socios: Cambio cargo')
insert into codigo_accion_trazabilidad(accion) values ('Socios: Cambio Esta en el Ultimo directorio')
insert into codigo_accion_trazabilidad(accion) values ('Socios: Cambio Período')
insert into codigo_accion_trazabilidad(accion) values ('Socios: Cambio Período desde')
insert into codigo_accion_trazabilidad(accion) values ('Socios: Cambio Período hasta')
insert into codigo_accion_trazabilidad(accion) values ('Socios: Cambio Visible')
insert into codigo_accion_trazabilidad(accion) values ('Socios: Cambio id_padron de la sociedad')
insert into codigo_accion_trazabilidad(accion) values ('Socios: id_padron del socio')
select * from trazabilidad_id_padron
*/
CREATE OR ALTER trigger dbo.TU_socios_mis on dbo.socios_mis
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_mis set id_padron = @buscado_id_padron_empresa_new where id_socios = @id_socios
end
if (isnull(@buscado_id_padron_socio_new,0) != isnull(@id_padron_soc_new,0)) begin
update socios_mis set id_padron_socio = @buscado_id_padron_socio_new where id_socios = @id_socios
end
-- Si visible es null, le pone 1
if @visible_new is null begin
update socios_mis set visible = 1 where id_socios = @id_socios
set @visible_new = 1
end
/*
select * from codigo_accion_trazabilidad
1 Socios: Cambio CUIT de la sociedad
2 Socios: Cambio CUIT del socio
3 Socios: Cambio cargo
4 Socios: Cambio Último directorio (S/N)
5 Socios: Cambio Período
6 Socios: Cambio Período desde
7 Socios: Cambio Período hasta
8 Socios: Cambio Visible
9 Socios: Cambio id_padron de la sociedad
10 Socios: Cambio id_padron del socio
*/
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)'
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'
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_mis',
@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
)
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
CREATE TABLE [dbo].[codigo_accion_trazabilidad](
[id] [int] IDENTITY(1,1) NOT NULL,
accion varchar(1000) null
)
insert into codigo_accion_trazabilidad(accion) values ('Socios: Cambio CUIT de la sociedad')
insert into codigo_accion_trazabilidad(accion) values ('Socios: Cambio CUIT del socio')
insert into codigo_accion_trazabilidad(accion) values ('Socios: Cambio cargo')
insert into codigo_accion_trazabilidad(accion) values ('Socios: Cambio Esta en el Ultimo directorio')
insert into codigo_accion_trazabilidad(accion) values ('Socios: Cambio Período')
insert into codigo_accion_trazabilidad(accion) values ('Socios: Cambio Período desde')
insert into codigo_accion_trazabilidad(accion) values ('Socios: Cambio Período hasta')
insert into codigo_accion_trazabilidad(accion) values ('Socios: Cambio Visible')
insert into codigo_accion_trazabilidad(accion) values ('Socios: Cambio id_padron de la sociedad')
insert into codigo_accion_trazabilidad(accion) values ('Socios: id_padron del socio')
select * from trazabilidad_id_padron
select * from socios_mis
delete from socios_mis where id_socios = 404710
*/
CREATE OR ALTER trigger dbo.TD_socios_mis on dbo.socios_mis
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_mis',
@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 1 c01_cuit, c01_cuit_soc, car_codigo, c04_ultimo, visible from socios order by created desc
select * from socios_mis
*/
CREATE OR ALTER trigger dbo.TI_socios_mis on dbo.socios_mis
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_mis set id_padron = @buscado_id_padron_empresa_new where id_socios = @id_socios
end
if (isnull(@buscado_id_padron_socio_new,0) != isnull(@id_padron_soc_new,0)) begin
update socios_mis set id_padron_socio = @buscado_id_padron_socio_new where id_socios = @id_socios
end
-- Si visible es null, le pone 1
if @visible_new is null begin
update socios_mis set visible = 1 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_mis',
@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
CREATE TABLE [dbo].[codigo_accion_trazabilidad](
[id] [int] IDENTITY(1,1) NOT NULL,
accion varchar(1000) null
)
insert into codigo_accion_trazabilidad(accion) values ('Socios: Cambio CUIT de la sociedad')
insert into codigo_accion_trazabilidad(accion) values ('Socios: Cambio CUIT del socio')
insert into codigo_accion_trazabilidad(accion) values ('Socios: Cambio cargo')
insert into codigo_accion_trazabilidad(accion) values ('Socios: Cambio Esta en el Ultimo directorio')
insert into codigo_accion_trazabilidad(accion) values ('Socios: Cambio Período')
insert into codigo_accion_trazabilidad(accion) values ('Socios: Cambio Período desde')
insert into codigo_accion_trazabilidad(accion) values ('Socios: Cambio Período hasta')
insert into codigo_accion_trazabilidad(accion) values ('Socios: Cambio Visible')
insert into codigo_accion_trazabilidad(accion) values ('Socios: Cambio id_padron de la sociedad')
insert into codigo_accion_trazabilidad(accion) values ('Socios: id_padron del socio')
select * from trazabilidad_id_padron
*/
CREATE OR ALTER trigger dbo.TU_socios_mis on dbo.socios_mis
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_mis set id_padron = @buscado_id_padron_empresa_new where id_socios = @id_socios
end
if (isnull(@buscado_id_padron_socio_new,0) != isnull(@id_padron_soc_new,0)) begin
update socios_mis set id_padron_socio = @buscado_id_padron_socio_new where id_socios = @id_socios
end
-- Si visible es null, le pone 1
if @visible_new is null begin
update socios_mis set visible = 1 where id_socios = @id_socios
set @visible_new = 1
end
/*
select * from codigo_accion_trazabilidad
1 Socios: Cambio CUIT de la sociedad
2 Socios: Cambio CUIT del socio
3 Socios: Cambio cargo
4 Socios: Cambio Último directorio (S/N)
5 Socios: Cambio Período
6 Socios: Cambio Período desde
7 Socios: Cambio Período hasta
8 Socios: Cambio Visible
9 Socios: Cambio id_padron de la sociedad
10 Socios: Cambio id_padron del socio
*/
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)'
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'
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_mis',
@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
No items found