dbo.Alta_Padron_Automatico_MARITA

Description

Properties

Name Value
ANSI Nulls ON

True

Quoted Identifier ON

True

Encrypted

False

Execute As
Assembly

Parameters

7
Name Data Type Length Description
@numero varchar 50
@nombre_persona varchar 200
@p_identificador varchar 10
@p_tipo_persona varchar 1
@p_apellidos varchar 100
@p_nombres varchar 100
@p_sexo varchar 1

SQL Script

Copy
SET QUOTED_IDENTIFIER, ANSI_NULLS ON
GO
-- =============================================
-- Author: <Author,,Name>
-- Create date: <Create Date,,>
-- Description: <Description,,>
-- =============================================

CREATE OR ALTER PROCEDURE dbo.Alta_Padron_Automatico_MARITA 
 -- Add the parameters for the stored procedure here
 @numero        varchar(50),
 @nombre_persona      varchar(200),
 @p_identificador varchar(10),
 @p_tipo_persona varchar(1), 
 @p_apellidos varchar(100) = null,
 @p_nombres   varchar(100) = null,
 @p_sexo varchar(1) = null


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 @numero = '20501961869' return


 set @nombre_persona = REPLACE(@nombre_persona, '''',' ')
 set @p_nombres      = REPLACE(@p_nombres, '''',' ')
 /*set @p_apellidos    = REPLACE(@nombre_persona, '''',' ')*/




DECLARE @identificador varchar(10) = null 
/* 29/06/2021: Si lo que viene como identificador no existe en la tabla identificadores, le pone de prepo 'CUIT'*/
if (select count(*) from identificadores where identificador = isnull(@p_identificador,'') and country_code = 'AR') = 0 
set @p_identificador = 'CUIT'
/* */ 

if (isnull(@p_identificador,'') != '') set @identificador = @p_identificador

DECLARE @tipo_persona varchar(1) = null
if (isnull(@p_tipo_persona,'') != '') set @tipo_persona = @p_tipo_persona

DECLARE @sexo varchar(1) = null
if (isnull(@p_sexo,'')!= '') set @sexo = @p_sexo

DECLARE @apellidos varchar(100) = null
if (isnull(@p_apellidos,'')!= '') set @apellidos = @p_apellidos

DECLARE @nombres varchar(100) = null
if (isnull(@p_nombres,'')!= '') set @nombres = @p_nombres

DECLARE @habilitado bit=1
DECLARE @pre_clave varchar(4) = NULL
DECLARE @cuerpo_clave varchar(40) = NULL
DECLARE @suf_clave varchar(4) = NULL
DECLARE @idPadron  INT = 0
DECLARE @idPadron1 INT = 0
DECLARE @idPadron0 INT = 0

set @nombre_persona = ltrim(rtrim(@nombre_persona))

if (isnull(@nombre_persona,'') !='') 
begin
 

SET @pre_clave = SUBSTRING(@numero,1,2)
SET @cuerpo_clave = SUBSTRING(@numero,3,8)
SET @suf_clave = SUBSTRING(@numero,11,1)

--select @idPadron = id_padron from padrones where /* habilitado = 1 and*/ identificacion = @numero
select @idpadron1 = (select top 1 id_padron 
                       from padrones 
                   inner join identificadores on identificadores.identificador = padrones.identificador
                      where identificacion = @numero and habilitado = 1 and country_code in ('AR')
                      order by id_padron)
select @idpadron0 = (select top 1 id_padron 
                        from padrones 
                       where identificacion = @numero 
      and habilitado = 0 
      order by id_padron)


 -- No hay registros ni Habilitado = 1, ni habilitado = 0
 IF(isnull(@idPadron1,0) = 0 and isnull(@idPadron0,0) = 0) 
 BEGIN
  INSERT INTO padrones
  (identificador, numero, nombre_persona, tipo_persona,/* sexo,*/ pre_clave, cuerpo_clave,
  suf_clave, habilitado, identificacion, afip_activo, iscreated,apellidos, nombres)

  VALUES
  (@identificador, @numero, @nombre_persona, @tipo_persona,/* @sexo,*/ @pre_clave, @cuerpo_clave,
  @suf_clave, @habilitado, @numero, 1, GETDATE(),@p_apellidos, @p_nombres);
  
  SELECT @idPadron = @@IDENTITY
 END

 -- Hay un registro Habilitado = 1
    IF(isnull(@idPadron1,0) != 0) 
 BEGIN
  update padrones 
    set  identificador  = @identificador,
         numero         = @numero,
      tipo_persona   = @tipo_persona,
   /*
    nombre_persona = @nombre_persona,
        -- sexo           = @sexo,
    apellidos      = @apellidos,
    nombres        = @nombres,
    */

   -- 19/09/2024: Solo cambia los datos nombre_persona, sexo, apellidos, nombres 
   --             si están vací­os o si no fue cargado por Renaper
   nombre_persona = iif((isnull(modificado_por,'') != 'R' or isnull(nombre_persona,'') = '') and isnull(@nombre_persona,'') != '',
                    @nombre_persona,nombre_persona),
      sexo           = iif((isnull(modificado_por,'') != 'R' or isnull(sexo,'') = '') and isnull(@sexo,'') != '',
                    @sexo,sexo),
   apellidos      = iif((isnull(modificado_por,'') != 'R' or isnull(apellidos,'') = '') and isnull(@apellidos,'') != '',
                    @apellidos,apellidos),
   nombres        = iif((isnull(modificado_por,'') != 'R' or isnull(nombres,'') = '') and isnull(@nombres,'')   != '',
                    @nombres,nombres),  
   modificado_por = 
   iif(
   (
   ((isnull(modificado_por,'') != 'R' or isnull(nombres,'') = '') and isnull(@nombres,'') !=  '') or 
   ((isnull(modificado_por,'') != 'R' or isnull(apellidos,'') = '') and isnull(@apellidos,'') != '') or 
   ((isnull(modificado_por,'') != 'R' or isnull(sexo,'') = '') and isnull(@sexo,'') != '') or
   ((isnull(modificado_por,'') != 'R' or isnull(nombre_persona,'') = '') and isnull(@nombre_persona,'') != '')
   ),
   'A',modificado_por),

   fecha_modificado_por = 
   iif(
   (
   ((isnull(modificado_por,'') != 'R' or isnull(nombres,'') = '') and isnull(@nombres,'')  != '') or 
   ((isnull(modificado_por,'') != 'R' or isnull(apellidos,'') = '') and isnull(@apellidos,'') != '') or 
   ((isnull(modificado_por,'') != 'R' or isnull(sexo,'') = '') and isnull(@sexo,'') != '') or
   ((isnull(modificado_por,'') != 'R' or isnull(nombre_persona,'') = '') and isnull(@nombre_persona,'') != '')
   ),
   getdate(),fecha_modificado_por),
   --
      pre_clave      = @pre_clave, 
   cuerpo_clave   = @cuerpo_clave,
      suf_clave      = @suf_clave, 
   habilitado     = @habilitado, 
   identificacion = @numero, 
   afip_activo    = 1, 
   ismodified     = getdate()
  where id_padron = @idpadron1

  SET @idpadron = @idpadron1
 END 

 -- Hay un registro Habilitado = 0, no ha ninguno habilitado = 1
 IF(isnull(@idPadron1,0) = 0 and isnull(@idPadron0,0) != 0) 
 BEGIN 
    update padrones 
    set  identificador  = @identificador,
         numero         = @numero,
      tipo_persona   = @tipo_persona,
      /*
       nombre_persona = @nombre_persona,
           -- sexo           = @sexo,
       apellidos      = @apellidos,
       nombres        = @nombres,
       */

   -- 19/09/2024: Solo cambia los datos nombre_persona, sexo, apellidos, nombres 
   --             si están vací­os o si no fue cargado por Renaper
   nombre_persona = iif((isnull(modificado_por,'') != 'R' or isnull(nombre_persona,'') = '') and isnull(@nombre_persona,'') != '',
                    @nombre_persona,nombre_persona),
      sexo           = iif((isnull(modificado_por,'') != 'R' or isnull(sexo,'') = '') and isnull(@sexo,'') != '',
                    @sexo,sexo),
   apellidos      = iif((isnull(modificado_por,'') != 'R' or isnull(apellidos,'') = '') and isnull(@apellidos,'') != '',
                    @apellidos,apellidos),
   nombres        = iif((isnull(modificado_por,'') != 'R' or isnull(nombres,'') = '') and isnull(@nombres,'')   != '',
                    @nombres,nombres),
   
   modificado_por = 
   iif(
   (
   ((isnull(modificado_por,'') != 'R' or isnull(nombres,'') = '') and isnull(@nombres,'') != '') or 
   ((isnull(modificado_por,'') != 'R' or isnull(apellidos,'') = '') and isnull(@apellidos,'') != '') or 
   ((isnull(modificado_por,'') != 'R' or isnull(sexo,'') = '') and isnull(@sexo,'') != '') or
   ((isnull(modificado_por,'') != 'R' or isnull(nombre_persona,'') = '') and isnull(@nombre_persona,'') != '')
   ),
   'A',modificado_por),

   fecha_modificado_por = 
   iif(
   (
   ((isnull(modificado_por,'') != 'R' or isnull(nombres,'') = '') and isnull(@nombres,'')  != '') or 
   ((isnull(modificado_por,'') != 'R' or isnull(apellidos,'') = '') and isnull(@apellidos,'') != '') or 
   ((isnull(modificado_por,'') != 'R' or isnull(sexo,'') = '') and isnull(@sexo,'') != '') or
   ((isnull(modificado_por,'') != 'R' or isnull(nombre_persona,'') = '') and isnull(@nombre_persona,'') != '')
   ),
   getdate(),fecha_modificado_por),
   --
      pre_clave      = @pre_clave, 
   cuerpo_clave   = @cuerpo_clave,
      suf_clave      = @suf_clave, 
   habilitado     = @habilitado, 
   identificacion = @numero, 
   afip_activo    = 1, 
   ismodified     = getdate()
  where id_padron = @idpadron0

     SET @idpadron = @idpadron0

 END 
end

SELECT @idPadron AS idPadron

END
GO

Used By

No items found