dbo.actualizar_datos_con_padron_ant

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
-- exec [actualizar_datos_con_padron] '20203252553'
CREATE OR ALTER PROCEDURE dbo.actualizar_datos_con_padron_ant 
@p_cuit varchar(20),
@p_userid int = 0
AS
BEGIN
    SET NOCOUNT ON;
 
 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),
   @cp varchar(50),
   @respuesta varchar(10) = 'no',
   @id_ele int

 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 
   select @provincia = UPPER(descripcion)
    from padron_electoral_provincias
    where codigo = @codigo_provincia
   select @localidad = UPPER(localidad),
       @cp = cp
     from padron_electoral_relacion 
    where padron_electoral_relacion.SECCION =right('000'+@comuna,3) 
      and CIRCUITO = right('00000'+@circuito_electoral,5) 
      and @mesa between MESADESDE and MESAHASTA
   if (isnull(@direccion,'') != '' and isnull(@provincia, '') != '')
   begin
    if ((select count(*) 
       from domicilios_todos 
        where cuit = @p_cuit
        and ltrim(rtrim(domicilio)) = upper(@direccion)
        and isnull(prv_nombre,'') != ''
        and tipo_domicilio = 'E') = 0)
    begin
     insert into domicilios_todos (cuit, domicilio, pai_nombre, prv_nombre, loc_nombre, codpos,tipo_domicilio,created,created_by)
     values (@p_cuit, UPPER(@direccion), 'ARGENTINA', @provincia, @localidad, @cp,'E', GETDATE(), @p_userid)
    end 
    else 
    begin
        -- para que complete la fecha de created si estaba el mismo domicilio sin created, 
     -- y lo tome como actualizado
     update domicilios_todos 
        set created = getdate()
      where cuit = @p_cuit
        and ltrim(rtrim(domicilio)) = upper(@direccion)
        and isnull(prv_nombre,'') != ''
        and tipo_domicilio = 'E'
        and created is null  
    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

Used By

No items found