dbo.actualizar_datos_con_padron

Description

Properties

Name Value
ANSI Nulls ON

True

Quoted Identifier ON

True

Encrypted

False

Execute As
Assembly

Parameters

2
Name Data Type Length Description
@p_cuit varchar 20
@p_userid int 4

SQL Script

Copy
SET QUOTED_IDENTIFIER, ANSI_NULLS ON
GO
/*
select * from domicilios_todos where cuit = '20225157937' and tipo_domicilio = 'E'
exec [actualizar_datos_con_padron] '20288662682'
select * from domicilios_todos where cuit = '20225157937' and tipo_domicilio = 'E'
select * from padron_electoral where documento = '22515793'
*/

CREATE OR ALTER PROCEDURE dbo.actualizar_datos_con_padron  
@p_cuit varchar(20),
@p_userid int = 0
AS
BEGIN
    SET NOCOUNT ON;
 
-- CHANCHADA: AGB - 5/2/2024 Porque es un tax-id extranjero y no queremos que lo pise con los datos de la persona que tiene ese CUIT en argentina
 if @p_cuit = '20501961869' return

/*
declare @documento varchar(20),
        @apellidos varchar(200), 
@nombres varchar(200), 
@codigo_provincia int, 
@direccion varchar(150), 
@comuna varchar(10),
@circuito_electoral varchar(10),
@mesa int,
@identificacion varchar(20),
@nombre varchar(200), 
@dni varchar(10),
@anio int, 
@cant int,
@id_padron int, 
@localidad varchar(100), 
@provincia varchar(100),
@cod_provincia varchar(2),
@cp varchar(50),
@respuesta varchar(10) = 'no',
@id_ele int

DECLARE @domicilio varchar(150), 
        @pai varchar(100), 
@prv varchar(100), 
@prv_codigo varchar(2),
@loc varchar(150), 
@codpos varchar(10), 
@id int, 
@resp bit, 
@domicilio_esta char(1)

DECLARE C_padron CURSOR FOR
select id_padron, 
   nombre_persona, 
   cuerpo_clave 
  from padrones 
 where identificacion = @p_cuit
   and habilitado = 1
   and tipo_persona = 'F' -- Solo lo hace para personas físicas.

OPEN C_Padron
FETCH NEXT FROM C_Padron INTO @id_padron, @nombre, @dni
WHILE @@fetch_status = 0
BEGIN 
--
-- select 'Padrones', @id_padron, @nombre, @dni
    --
DECLARE ProdInfo CURSOR FOR
select documento, apellidos, nombres, provincia, ltrim(rtrim(direccion)) direccion, comuna, circuito_electoral, mesa, anio_nacimiento, id_electoral
  from padron_electoral
 where documento = @dni
   and @nombre like '%'+apellidos+'%'
   and procesado is null
   -- Si procesado = 1 ya paso por acá.
OPEN ProdInfo
FETCH NEXT FROM ProdInfo INTO @documento, @apellidos, @nombres, @codigo_provincia, @direccion, @comuna, @circuito_electoral, @mesa, @anio, @id_ele

WHILE @@fetch_status = 0
BEGIN
-- 
-- select 'Padron_Electoral', @documento, @apellidos, @nombres, @codigo_provincia, @direccion, @comuna, @circuito_electoral, @mesa, @anio
--
-- En padrones actualizo los campos apellidos, nombres si alguno esta vacio 
if (isnull(@apellidos,'') != '' AND isnull(@nombres,'') != '')
begin

update padrones 
   set apellidos = @apellidos, nombres = @nombres
 where id_padron = @id_padron 
   and (isnull(apellidos,'') = '' or isnull(nombres,'') = '')
end 

--En la tabla datos_personas, actualizo el año de nacimiento 
if (isnull(@anio,0) > 0)
begin
set @respuesta = 'ok'
if ((select count(*)  
 from datos_personas 
 where c01_cuit = @p_cuit) = 0)
    begin
insert into datos_personas (c01_cuit, c02_anio_nac, created,   created_by) 
     values (@p_cuit,  @anio,        getdate(), @p_userid)
end 
else
begin
if ((select isnull(c02_anio_nac,'0') from datos_personas where c01_cuit = @p_cuit) != @anio)
begin
update datos_personas 
   set c02_anio_nac = @anio, modified = getdate()
   --, modified_by = @p_userid
 where c01_cuit = @p_cuit
end 
end
end 

-- En domicilios_todos guardo la dirección del padron electoral, si no tengo un registro con esa dirección

set @provincia = null
set @localidad = null 
set @cp = null
set @cod_provincia = null
select @provincia = UPPER(prv_nombre),
       @cod_provincia = codigo_afip
from provincias
where codigo_electoral = convert(int,@codigo_provincia)
and (country_code = 'AR'or pai_codigo_ifx = 54)

if (@cod_provincia = '0')
begin
set @localidad = null
end
else 
begin
select @localidad = UPPER(localidad),
       @cp = cp
  from padron_electoral_relacion 
 where convert(int,distrito) = @codigo_provincia
   and right('000'+padron_electoral_relacion.SECCION,3) = right('000'+@comuna,3) 
   and upper(right('00000'+CIRCUITO,5))  = upper(right('00000'+@circuito_electoral,5))
   and @mesa between MESADESDE and MESAHASTA
   and visible = 1 
end 


if (isnull(@direccion,'') != '' and isnull(@provincia, '') != '')

begin
declare wc cursor for
select replace(domicilio,'?','') as domicilio,
 pai_nombre,
 prv_nombre,
 prv_codigo, 
 loc_nombre,
 replace(codpos,'.','') as codpos, 
 id_domicilio as id
 from domicilios_todos
where cuit = @p_cuit 
  and tipo_domicilio = 'E'
  and visible = 1 
open wc
set @domicilio_esta = 'N'
Fetch next from wc INTO @domicilio, @pai, @prv, @prv_codigo, @loc, @codpos, @id
WHILE @@fetch_status = 0
BEGIN
exec @resp = [sp_comparo_domicilios] @domicilio -- el de domicilios_todos
                                , @direccion -- el de padron
if (@resp = 1) -- son iguales, veo si el de padrón está mejor. 
               -- Si es así corrige el de domicilios_todos
begin
set @pai = 'ARGENTINA'
set @prv = @provincia
set @prv_codigo = @cod_provincia

if (len(@direccion) > len(@domicilio) or @domicilio is null)
set @domicilio = @direccion

if (len(@localidad) > len(@loc) or @loc is null)
set @loc = @localidad

if ((select isnumeric(@codpos)) = 1 and len(@codpos) > 4)
set @codpos = null
if (@cp is not null)
begin
if ((select isnumeric(@cp)) = 1 and len(@cp) > 4)
set @cp = null
if (len(@cp) > len(@codpos) or @codpos is null) 
set @codpos = @cp
end 
if (@prv = 'CIUDAD DE BUENOS AIRES' or
@prv = 'CIUDAD AUTONOMA DE BUENOS AIRES' or
@prv = 'CIUDAD AUTONOMA BUENOS AIRES' or
@prv = 'C.A.B.A.' or
@prv = 'CAPITAL FEDERAL' or
@prv = 'CABA' or 
@prv_codigo = '0') 
begin
set @loc = null
end 
if (rtrim(ltrim(@loc)) = '') set @loc = null
if (rtrim(ltrim(@prv)) = '') set @prv = null
if (rtrim(ltrim(@pai)) = '') set @pai = null
set @domicilio_esta = 'S'
update domicilios_todos 
set domicilio  = @domicilio,
pai_nombre = @pai,
pai_codigo = 54,
loc_nombre = @loc,
prv_codigo = @prv_codigo, 
prv_nombre = @prv, 
codpos     = @codpos, 
created    = getdate()
where id_domicilio = @id
end
Fetch next from wc INTO @domicilio, @pai, @prv, @prv_codigo, @loc, @codpos, @id
END 
CLOSE wc
DEALLOCATE wc

if (@domicilio_esta = 'N') 
begin
insert into domicilios_todos (cuit, domicilio, pai_codigo, pai_nombre, prv_codigo, prv_nombre, loc_nombre, codpos,tipo_domicilio,created,created_by)
values (@p_cuit, UPPER(@direccion), '54','ARGENTINA', @prv_codigo, @provincia, @localidad, @cp,'E', GETDATE(), @p_userid)
end 
    end 
update padron_electoral set procesado = 1 where id_electoral = @id_ele                   
FETCH NEXT FROM ProdInfo INTO @documento, @apellidos, @nombres, @codigo_provincia, @direccion, @comuna, @circuito_electoral, @mesa, @anio, @id_ele

END
CLOSE ProdInfo
DEALLOCATE ProdInfo
FETCH NEXT FROM C_Padron INTO @id_padron, @nombre, @dni

END  
CLOSE C_Padron
DEALLOCATE C_Padron
select @respuesta as respuesta -- Si la respuesta es OK, es que encontro año de nacimiento */

END
GO

Depends On

No items found

Used By

No items found