dbo.insertar_domicilio_afip

Description

Properties

Name Value
ANSI Nulls ON

True

Quoted Identifier ON

True

Encrypted

False

Execute As
Assembly

Parameters

7
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

SQL Script

Copy
SET QUOTED_IDENTIFIER, ANSI_NULLS ON
GO

CREATE OR 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)

AS

BEGIN
    SET NOCOUNT ON;

 IF ((select COUNT (*) from domicilios_todos 
            where (cuit = @p_cuit) 
            and ((codpos is null and @p_codpos is null) or (codpos = @p_codpos))
            and ((domicilio is null and @p_domicilio is null) or (domicilio = @p_domicilio))
            and ((loc_nombre is null and @p_loc_nombre is null) or (loc_nombre = @p_loc_nombre)) 
            and ((prv_codigo is null and @p_prv_codigo is null) or (prv_codigo = @p_prv_codigo))
            and ((prv_nombre is null and @p_prv_codigo is null) or (prv_nombre = @p_prv_nombre))
            and ((tipo_domicilio is null and @p_tipo_domicilio is null) or (tipo_domicilio = @p_tipo_domicilio))
            and (visible = 1)) = 0)
 BEGIN
        begin try
   IF (@p_tipo_domicilio != 'O') -- Cambiar tipos repetidos
      BEGIN
       UPDATE domicilios_todos
       SET  
        tipo_domicilio = 'O',
        modified = GETDATE()
       WHERE (cuit = @p_cuit) AND (tipo_domicilio = @p_tipo_domicilio) and (visible = 1)
      END
      INSERT INTO domicilios_todos 
       (codpos, cuit, domicilio, loc_nombre, 
       prv_codigo, prv_nombre, 
    pai_codigo, pai_nombre,
    tipo_domicilio, created, visible,nombre_fuente)
      VALUES
       (@p_codpos, @p_cuit, @p_domicilio, @p_loc_nombre, 
                @p_prv_codigo, @p_prv_nombre, 
    '54','ARGENTINA',
    @p_tipo_domicilio, GETDATE(), 1, 'AFIP')
           
      select 'ok' as ok -- Para verificar que se pudo ejecutar el insert
        end try
        begin catch
            select ERROR_MESSAGE() as error
        end catch
 END
 ELSE
 BEGIN
   update  domicilios_todos 
   set nombre_fuente = 'AFIP', modified = getdate()
            where (cuit = @p_cuit) 
            and ((codpos is null and @p_codpos is null) or (codpos = @p_codpos))
            and ((domicilio is null and @p_domicilio is null) or (domicilio = @p_domicilio))
            and ((loc_nombre is null and @p_loc_nombre is null) or (loc_nombre = @p_loc_nombre)) 
            and ((prv_codigo is null and @p_prv_codigo is null) or (prv_codigo = @p_prv_codigo))
            and ((prv_nombre is null and @p_prv_codigo is null) or (prv_nombre = @p_prv_nombre))
            and ((tipo_domicilio is null and @p_tipo_domicilio is null) or (tipo_domicilio = @p_tipo_domicilio))
            and (visible = 1)
   AND nombre_fuente != 'AFIP'
 END 
END 

GO

Depends On

1

Used By

No items found