dbo.insertar_domicilio_persona_fisica_afip

Description

Properties

Name Value
ANSI Nulls ON

True

Quoted Identifier ON

True

Encrypted

False

Execute As
Assembly

Parameters

13
Name Data Type Length Description
@p_cuit varchar 13
@p_codpos varchar 10
@p_domicilio varchar 70
@p_loc_nombre varchar 50
@p_prv_codigo varchar 2
@p_prv_nombre varchar 50
@p_tipo_domicilio varchar 1
@calle varchar 150
@alturacalle varchar 50
@piso varchar 10
@depto varchar 10
@xlong varchar 20
@ylat varchar 20

SQL Script

Copy
SET QUOTED_IDENTIFIER, ANSI_NULLS ON
GO

/*

exec insertar_domicilio_persona_fisica_afip '20177260909','1426','AV OLLEROS 1878 P 6 B','CABA',0,'CABA','O','AV JUAN JOSE OLLEROS','1878','06','B'
exec insertar_domicilio_persona_fisica_afip_copia '20177260909','1426','11 DE SEPT. DE 1 1437 P4','CABA',0,'CABA','O'

exec insertar_domicilio_persona_fisica_afip_copia '20177260909','1426','11 DE SEPT. DE 1 1437 P4','CIUDAD AUTONOMA BUENOS AIRES',0,'CIUDAD AUTONOMA BUENOS AIRES','F','11 DE SEPT. DE 1888','1437','04'

select * from domicilios_todos where cuit='20177260909'

delete domicilios_todos where id_domicilio in (158074196,155791983)

delete domicilios_todos where cuit='20177260909' and tipo_domicilio in ('L','F')


*/


/*
alter table domicilios_todos add geo_long varchar(20) null
alter table domicilios_todos add geo_lat varchar(20) null
*/


CREATE OR ALTER PROCEDURE dbo.insertar_domicilio_persona_fisica_afip
/*ALTER PROCEDURE [dbo].[insertar_domicilio_afip]*/
@p_cuit varchar(13),
@p_codpos varchar(10),
@p_domicilio varchar(70),
@p_loc_nombre varchar(50),
@p_prv_codigo varchar(2),
@p_prv_nombre varchar(50),
@p_tipo_domicilio varchar(1),
@calle varchar(150) = null,
@alturacalle varchar(50) = null,
@piso varchar(10) = null,
@depto varchar(10) = null,
@xlong varchar(20) = null,
@ylat varchar(20) = null


AS

BEGIN
    SET NOCOUNT ON;

     /*
      if (@p_cuit='20177260909')
      begin
      delete domicilios_todos where cuit=@p_cuit and tipo_domicilio in ('L','F')
      end
      */




    IF ((select COUNT (*) from domicilios_todos 
            where (cuit = @p_cuit) 
            and   (isnull(codpos,'') = isnull(@p_codpos,''))
            and   (isnull(domicilio,'') = isnull(@p_domicilio,''))
            and   (isnull(loc_nombre,'') = isnull(@p_loc_nombre,''))
            and   (isnull(prv_codigo,'') = isnull(@p_prv_codigo,''))
            and   (isnull(prv_nombre,'') = isnull(@p_prv_nombre,''))
            and   (isnull(tipo_domicilio,'') = isnull(@p_tipo_domicilio,''))
            and   (visible = 1)) = 0)
    BEGIN
        begin try
            
            IF ((@p_tipo_domicilio = 'D')
                and ((select COUNT (*) from domicilios_todos 
                    where (cuit = @p_cuit) 
                    and (tipo_domicilio = 'D')
                    and (visible = 1)) > 0))
            BEGIN
                SET @p_tipo_domicilio = 'O'
            END
   

            IF (@p_tipo_domicilio != 'O') -- Cambiar tipos repetidos
            BEGIN
                UPDATE domicilios_todos
                SET  
                    tipo_domicilio = 'O',
                    modified = GETDATE()/*,calle = @calle,
                     altura=@alturacalle,
                     piso=@piso,
                     depto=@depto,
                     geo_long=@xlong,
                     geo_lat=@ylat  */
 
       -- 18/01/2022 no esta bien que actalice esos campos si lo unico que se quiere es pasa al Tipo OTRO los que estan en la tabla
                WHERE (cuit = @p_cuit) AND (tipo_domicilio = @p_tipo_domicilio) and (visible = 1)
            END

            IF ((@p_tipo_domicilio != 'O') 
                OR ((@p_tipo_domicilio = 'O') and ((select COUNT (*) from domicilios_todos 
                        where (cuit = @p_cuit) 
                            and   (isnull(codpos,'') = isnull(@p_codpos,''))
                            and   (isnull(domicilio,'') = isnull(@p_domicilio,''))
                            and   (isnull(loc_nombre,'') = isnull(@p_loc_nombre,''))
                            and   (isnull(prv_codigo,'') = isnull(@p_prv_codigo,''))
                            and   (isnull(prv_nombre,'') = isnull(@p_prv_nombre,''))
                            and   (tipo_domicilio = 'O')
                            and   (visible = 1)) = 0)))
     BEGIN
      INSERT INTO domicilios_todos 
       (codpos, cuit, domicilio, loc_nombre, 
       prv_codigo, prv_nombre, 
       pai_codigo, pai_nombre, 
       tipo_domicilio, created, visible,nombre_fuente,
       calle,altura,piso,depto,geo_long,geo_lat)
      VALUES
       (@p_codpos, @p_cuit, @p_domicilio, @p_loc_nombre, 
        @p_prv_codigo, @p_prv_nombre, 
       '54','ARGENTINA',
        @p_tipo_domicilio, GETDATE(), 1,'AFIP',
        @calle,@alturacalle,@piso,@depto,
        @xlong,@ylat)
     END
     select 'ok' as ok -- Para verificar que se pudo ejecutar el insert
   IF ((@p_tipo_domicilio != 'O') 
                OR ((@p_tipo_domicilio = 'O') and ((select COUNT (*) from domicilios_todos 
                        where (cuit = @p_cuit) 
                            and   (isnull(codpos,'') = isnull(@p_codpos,''))
                            and   (isnull(domicilio,'') = isnull(@p_domicilio,''))
                            and   (isnull(loc_nombre,'') = isnull(@p_loc_nombre,''))
                            and   (isnull(prv_codigo,'') = isnull(@p_prv_codigo,''))
                            and   (isnull(prv_nombre,'') = isnull(@p_prv_nombre,''))
                            and   (tipo_domicilio = 'O')
                            and   (visible = 1)) > 0)))
     BEGIN
             update domicilios_todos 
                set nombre_fuente = 'AFIP', modified = getdate(),calle = @calle,
       altura=@alturacalle,
       piso=@piso,
       depto=@depto,
       geo_long=@xlong,
       geo_lat=@ylat  
                            where (cuit = @p_cuit) 
                            and   (isnull(codpos,'') = isnull(@p_codpos,''))
                            and   (isnull(domicilio,'') = isnull(@p_domicilio,''))
                            and   (isnull(loc_nombre,'') = isnull(@p_loc_nombre,''))
                            and   (isnull(prv_codigo,'') = isnull(@p_prv_codigo,''))
                            and   (isnull(prv_nombre,'') = isnull(@p_prv_nombre,''))
                            and   (isnull(tipo_domicilio,'') = isnull(@p_tipo_domicilio,''))
                            and   (visible = 1) 
                            --AND nombre_fuente != 'AFIP' /* 18/01/2022 No se por que tenia esta condicion, Se la saque porque sino no completaba calle altura piso depto de los que se habian grabado antes de AFIP sin la apertura
     END
            
   
        end try
        begin catch
            select ERROR_MESSAGE() as error 
        end catch
    END
    else 
    BEGIN
        update domicilios_todos 
            set nombre_fuente = 'AFIP', modified = getdate(),calle = @calle,
       altura=@alturacalle,
       piso=@piso,
       depto=@depto,
       geo_long=@xlong,
       geo_lat=@ylat  
                            where (cuit = @p_cuit) 
                            and   (isnull(codpos,'') = isnull(@p_codpos,''))
                            and   (isnull(domicilio,'') = isnull(@p_domicilio,''))
                            and   (isnull(loc_nombre,'') = isnull(@p_loc_nombre,''))
                            and   (isnull(prv_codigo,'') = isnull(@p_prv_codigo,''))
                            and   (isnull(prv_nombre,'') = isnull(@p_prv_nombre,''))
                            and   (isnull(tipo_domicilio,'') = isnull(@p_tipo_domicilio,''))
                            and   (visible = 1) 
                            --AND nombre_fuente != 'AFIP' /* 18/01/2022 No se por que tenia esta condicion, Se la saque porque sino no completaba calle altura piso depto de los que se habian grabado antes de AFIP sin la apertura

       select 'ok' as ok -- Para verificar que se pudo ejecutar el insert
    END 
END 

GO

Depends On

1

Used By

No items found