dbo.ARBA_actualizar_insertar_2024

Description

Properties

Name Value
ANSI Nulls ON

True

Quoted Identifier ON

True

Encrypted

False

Execute As
Assembly

Parameters

29
Name Data Type Length Description
@p_tipo_movimiento varchar 1
@p_motivo_baja varchar 1
@p_nro_identificacion_arba varchar 10
@p_razon_social varchar 80
@p_cuit varchar 11
@p_tipo_documento varchar 4
@p_numero_documento varchar 10
@p_impuesto varchar 2
@p_objeto varchar 16
@p_numero_interno_de_juicio varchar 10
@p_fecha_de_inicio_de_juicio date 3
@p_importe_deuda_del_juicio decimal 9
@p_departamento_judicial varchar 2
@p_numero_de_juzgado varchar 2
@p_secretaria varchar 2
@p_domicilio_calle varchar 35
@p_domicilio_numero varchar 6
@p_domicilio_sin_numero varchar 3
@p_domicilio_piso varchar 3
@p_domicilio_departamento varchar 4
@p_domicilio_localidad varchar 35
@p_domicilio_codigo_postal varchar 8
@p_estado_de_medida_cautelar varchar 1
@p_estado_de_plan_de_pagos varchar 1
@p_fecha_de_plan_de_pagos date 3
@p_cancelacion_del_juicio varchar 1
@p_fecha_de_cancelacion date 3
@p_fecha_de_proceso_arba smalldatetime 4
@p_nombre_file varchar 200

SQL Script

Copy
SET QUOTED_IDENTIFIER, ANSI_NULLS ON
GO
-- Despues que se termina de procesar el archivo de Arba hay que correr el control de bajas automáticas

CREATE OR ALTER PROCEDURE dbo.ARBA_actualizar_insertar_2024
--@out_error_number INT = 0 OUTPUT,
@p_tipo_movimiento varchar(1),
@p_motivo_baja varchar(1),
@p_nro_identificacion_arba varchar(10),
@p_razon_social varchar(80),
@p_cuit varchar(11),
@p_tipo_documento varchar(4),
@p_numero_documento varchar(10),
@p_impuesto varchar(2),
@p_objeto varchar(16),
@p_numero_interno_de_juicio varchar(10),
@p_fecha_de_inicio_de_juicio date,
@p_importe_deuda_del_juicio decimal(15,2),
@p_departamento_judicial varchar(2),
@p_numero_de_juzgado varchar(2),
@p_secretaria varchar(2),
@p_domicilio_calle varchar(35),
@p_domicilio_numero varchar(6),
@p_domicilio_sin_numero varchar(3),
@p_domicilio_piso varchar(3),
@p_domicilio_departamento varchar(4),
@p_domicilio_localidad varchar(35),
@p_domicilio_codigo_postal varchar(8),
@p_estado_de_medida_cautelar varchar(1),
@p_estado_de_plan_de_pagos varchar(1),
@p_fecha_de_plan_de_pagos date,
@p_cancelacion_del_juicio varchar(1),
@p_fecha_de_cancelacion date,
@p_fecha_de_proceso_arba smalldatetime,
@p_nombre_file varchar(200)
AS

BEGIN
BEGIN TRY

    SET NOCOUNT ON;

 
 declare @Arba_razon_social char(80) = isnull(@p_razon_social,'')
 declare @Arba_cuit char(13) = isnull(@p_cuit,'')
 declare @Arba_nro_identificacion_arba char(10) = right('0000000000'+isnull(@p_nro_identificacion_arba,0),10) 
 declare @Arba_numero_cuit char(11) = isnull(@p_cuit,'')
 declare @Arba_tipo_documento char(1) =  isnull(@p_tipo_documento,'')
 declare @Arba_numero_documento char(8) =  isnull(@p_numero_documento,'') 
 declare @Arba_impuesto char(2) = isnull(@p_impuesto,'') 
 declare @Arba_objeto char(16) = isnull(@p_objeto,'') 
 declare @Arba_numero_interno_de_juicio char(10) = right('0000000000'+isnull(@p_numero_interno_de_juicio,0),10)
 declare @Arba_fecha_de_inicio_de_juicio char(8) = iif(@p_fecha_de_inicio_de_juicio is null,'00000000',format(@p_fecha_de_inicio_de_juicio,'yyyyMMdd'))
 declare @Arba_importe_deuda_del_juicio char(15) = format(isnull(@p_importe_deuda_del_juicio,0)*100,'000000000000000')
 declare @Arba_departamento_judicial  char(2) = right('00'+isnull(@p_departamento_judicial,0),2)
 declare @Arba_numero_de_juzgado char(2) = right('00'+isnull(@p_numero_de_juzgado,0),2)
 declare @Arba_secretaria char(2) = right('00'+isnull(@p_secretaria,0),2)
 declare @Arba_estado_de_medida_cautelar char(1) = isnull(@p_estado_de_medida_cautelar,'')
 declare @Arba_estado_de_plan_de_pagos char(1) = isnull(@p_estado_de_plan_de_pagos,'')
 declare @Arba_fecha_de_plan_de_pagos char(8) = iif(@p_fecha_de_plan_de_pagos is null,'00000000',format(@p_fecha_de_plan_de_pagos,'yyyyMMdd'))
 declare @Arba_cancelacion_del_juicio char(1) = isnull(@p_cancelacion_del_juicio,'')
 declare @Arba_fecha_de_cancelacion char(8) = iif(@p_fecha_de_cancelacion is null, '00000000', format(@p_fecha_de_cancelacion,'yyyyMMdd'))
 declare @Arba_fecha_de_proceso char(8) = iif(@p_fecha_de_proceso_arba is null,'00000000',format(@p_fecha_de_proceso_arba,'yyyyMMdd'))
 declare @Arba_tipo_movimiento_fide char(1) = '5'
 declare @Arba_motivo_baja_fide char(1) = ' ' 
 declare @Arba_fecha_proceso_fide char(8) = format(getdate(),'yyyyMMdd')
 declare @Arba_codigos_error_fide char(20) = '' 

 declare @linea varchar(500) = null

 declare @Cant int = 0
 declare @Error char(1) = 'N'

 SET @Arba_Tipo_Movimiento_fide = '5' -- MOVIMIENTO ASENTADO
 SET @Arba_Motivo_Baja_fide   = ' ' 
 SET @Arba_Codigos_error_fide  = ''

 SELECT @Cant = COUNT(*)  
        FROM Arba
       WHERE Nro_Identificacion_Arba = @p_nro_identificacion_arba and visible = 1 

 IF @p_tipo_movimiento = '1' AND @Cant > 0 -- ALTA A REG EXISTENTE
 BEGIN 
  SET @Arba_Codigos_error_fide = '05'
     SET @Error = 'S'
 end 
 IF @p_tipo_movimiento = '2' AND @Cant = 0 -- MODIFICACION A REG INEXISTENTE       
 BEGIN
  SET @Arba_Codigos_error_fide = '06'
  SET @Error = 'S' 
 END
 IF @p_tipo_movimiento = '4' AND @Cant = 0 -- BAJA A REG INEXISTENTE     
 BEGIN
  SET @Arba_Codigos_error_fide = '07'
  SET @Error = 'S' 
 END
 IF @p_tipo_movimiento not in ('1','2','4')
 BEGIN
  SET @Arba_Codigos_error_fide = '04'
  SET @Error = 'S' 
 END
    
     
 IF (@Error = 'N') 
 BEGIN

  IF (@p_tipo_movimiento in ('1','2')) -- Alta o Modificacion: valida campos 
  BEGIN

   set @p_cuit = LTRIM(RTRIM(@p_cuit))
   set @p_numero_documento = LTRIM(RTRIM(@p_numero_documento))
   set @p_numero_documento = LTRIM(RTRIM(@p_numero_documento))
   if isnull(@p_cuit,'') = '' and isnull(@p_numero_documento,'') = '' 
   begin
    SET @Arba_Codigos_error_fide = '01'
   end
   declare @cuit_valido bit = 1
   exec sp_validar_cuit @p_cuit, @cuit_valido output
   if @cuit_valido = 0
   begin
    SET @Arba_Codigos_error_fide = '02'
   end

   set @p_razon_social = UPPER(@p_razon_social)
   set @p_razon_social = LTRIM(RTRIM(@p_razon_social))
   set @p_razon_social = REPLACE(@p_razon_social,char(39),' ') 
   set @p_razon_social = REPLACE(@p_razon_social,',',' ') 
   set @p_razon_social = REPLACE(@p_razon_social,'  ',' ') 
   set @p_razon_social = REPLACE(@p_razon_social,'#','Ñ') 
   set @p_razon_social = REPLACE(@p_razon_social,'¥','Ñ') 
   if ISNULL(@p_razon_social,'') = ''
   begin
    SET @Arba_Codigos_error_fide = '03'
   end

   IF ISNULL(@Arba_Codigos_error_fide,'') != ''
   begin
    SET @Arba_tipo_movimiento_fide = '6' -- MOVIMIENTO RECHAZADO POR ERROR
   end
  END

  /* update registros con modificacion (tipo_movimiento=2) o baja (tipo_movimiento=4) */
  IF (@p_tipo_movimiento in ('2','4'))
  BEGIN
   UPDATE Arba SET visible=0, modified=GETDATE(), modified_by=0 WHERE nro_identificacion_arba = @p_nro_identificacion_arba AND cuit = @p_cuit and visible = 1
  END

  -- Si es baja: Ya se marco como no visible el registro, no se graba la baja
  IF (@p_tipo_movimiento != '4') 
  BEGIN
   INSERT INTO Arba 
    (tipo_movimiento, motivo_baja, nro_identificacion_arba, razon_social, cuit, tipo_documento, numero_documento, 
    impuesto, objeto, numero_interno_de_juicio, fecha_de_inicio_de_juicio, importe_deuda_del_juicio, departamento_judicial, 
    numero_de_juzgado, secretaria, domicilio_calle, domicilio_numero, domicilio_sin_numero, domicilio_piso, 
    domicilio_departamento, domicilio_localidad, domicilio_codigo_postal, estado_de_medida_cautelar, estado_de_plan_de_pagos, 
    fecha_de_plan_de_pagos, cancelacion_del_juicio, fecha_de_cancelacion, fecha_de_proceso_arba, nombre_file, created_by, modified_by)
   VALUES 
    (@p_tipo_movimiento, @p_motivo_baja, @p_nro_identificacion_arba, @p_razon_social, @p_cuit, @p_tipo_documento, @p_numero_documento, 
    @p_impuesto, @p_objeto, @p_numero_interno_de_juicio, @p_fecha_de_inicio_de_juicio, @p_importe_deuda_del_juicio, @p_departamento_judicial, 
    @p_numero_de_juzgado, @p_secretaria, @p_domicilio_calle, @p_domicilio_numero, @p_domicilio_sin_numero, @p_domicilio_piso, 
    @p_domicilio_departamento, @p_domicilio_localidad, @p_domicilio_codigo_postal, @p_estado_de_medida_cautelar, @p_estado_de_plan_de_pagos, 
    @p_fecha_de_plan_de_pagos, @p_cancelacion_del_juicio, @p_fecha_de_cancelacion, @p_fecha_de_proceso_arba, @p_nombre_file, 0, 0)
  END 

 END
 ELSE
 BEGIN
         SET @Arba_tipo_movimiento_fide = '6' -- MOVIMIENTO RECHAZADO POR ERROR
    END 

 set @linea = 
     '03' + -- 03 es el codigo de Fidelitas
     @Arba_tipo_movimiento_fide + 
     @Arba_Motivo_baja_fide + 
           @p_Tipo_Movimiento + 
     @Arba_nro_identificacion_arba +
     @Arba_razon_social +
     @Arba_numero_cuit + 
     @Arba_tipo_documento + 
     @Arba_numero_documento + 
     @Arba_impuesto + 
     @Arba_objeto + 
     @Arba_numero_interno_de_juicio + 
     @Arba_fecha_de_inicio_de_juicio + 
     @Arba_importe_deuda_del_juicio + 
     @Arba_departamento_judicial + 
     @Arba_numero_de_juzgado + 
     @Arba_secretaria +
     @Arba_estado_de_medida_cautelar +
     @Arba_estado_de_plan_de_pagos +
     @Arba_fecha_de_plan_de_pagos + 
     @Arba_cancelacion_del_juicio + 
     @Arba_fecha_de_cancelacion +
        @Arba_fecha_de_proceso + 
     @Arba_fecha_proceso_fide + 
     @Arba_Codigos_error_fide
   
 insert into arba_respuesta(fecha_proceso_arba, detalle) values (@p_fecha_de_proceso_arba, @linea) 


 IF (@Arba_tipo_movimiento_fide = '5') 
 -- Movimiento asentado, veo si se dara baja automatica por tiempos 
 begin
  
  if @p_fecha_de_inicio_de_juicio IS NOT NULL AND @p_fecha_de_inicio_de_juicio < getdate() - (365*5) 
  begin
   set @Arba_tipo_movimiento_fide = '7' -- BAJA AUTOMATICA
   set @Arba_Motivo_baja_fide = '1'     -- BAJA x tiempo + 5 años
  end
  else 
  begin 
   if (@p_fecha_de_inicio_de_juicio IS NOT NULL AND @p_fecha_de_inicio_de_juicio < getdate() - (365*2)) 
   begin
    if (@p_estado_de_plan_de_pagos = '2')
    begin
     set @Arba_tipo_movimiento_fide = '7' -- BAJA AUTOMATICA
     set @Arba_Motivo_baja_fide = '4'     -- BAJA x tiempo + 5 años
    end

                if @p_cancelacion_del_juicio = 'S' or @p_cancelacion_del_juicio = 'T' or 
       @p_estado_de_plan_de_pagos = '4' or @p_fecha_de_cancelacion IS NOT NULL 
    begin
     set @Arba_tipo_movimiento_fide = '7' -- BAJA AUTOMATICA
     set @Arba_Motivo_baja_fide = '3'      -- CON CANCELACION x tiempo + 2 a¤os
    end
       end
  end
     
  if  (@Arba_tipo_movimiento_fide = '7')
  begin
      -- Si se dio baja automatica ==> publica un segundo registro, diciendo esta situacion
   set @linea = 
      '03' + -- 03 es el codigo de Fidelitas
      @Arba_tipo_movimiento_fide + 
      @Arba_Motivo_baja_fide + 
      '0' + --@p_Tipo_Movimiento   
      @Arba_nro_identificacion_arba +
      @Arba_razon_social +
      @Arba_numero_cuit + 
      @Arba_tipo_documento + 
      @Arba_numero_documento + 
      @Arba_impuesto + 
      @Arba_objeto + 
      @Arba_numero_interno_de_juicio + 
      @Arba_fecha_de_inicio_de_juicio + 
      @Arba_importe_deuda_del_juicio + 
      @Arba_departamento_judicial + 
      @Arba_numero_de_juzgado + 
      @Arba_secretaria +
      @Arba_estado_de_medida_cautelar +
      @Arba_estado_de_plan_de_pagos +
      @Arba_fecha_de_plan_de_pagos + 
      @Arba_cancelacion_del_juicio + 
      @Arba_fecha_de_cancelacion +
      @Arba_fecha_de_proceso + 
      @Arba_fecha_proceso_fide + 
/*               '00000000' + -- @Arba_fecha_proceso_fide  */
      '                    ' -- @Arba_Codigos_error_fide
   insert into arba_respuesta(fecha_proceso_arba, detalle) values (@p_fecha_de_proceso_arba, @linea) 
  end 
 end

 IF (@p_Tipo_Movimiento = '1' and isnull(@Arba_numero_cuit,'') != '' and @Arba_tipo_movimiento_fide = '5') -- Para las altas procesadas

 begin
  /* Domicilios */ 
  declare @domicilios table (id int, domicilio varchar(200), pai_nombre varchar(50), prv_nombre varchar(100), loc_nombre varchar(100), codpos varchar(10), tipo_domicilio varchar(10), created datetime)
  declare @domicilio char(72) = ' ',
         @localidad char(36) = ' ',
   @provincia char(36) = ' ',
   @codpos char(8) = ' ',
   @tipo_domicilio varchar(10) 
  insert into @domicilios exec sp_obtener_domicilios @Arba_numero_cuit, 0

/*        exec sp_obtener_domicilios '27940368656', 0*/

  DECLARE C_cursor_DOM CURSOR FOR
   select domicilio, loc_nombre, prv_nombre, codpos from @domicilios
  OPEN C_cursor_DOM 
   FETCH next from C_cursor_DOM INTO @domicilio, @localidad, @provincia, @codpos
   WHILE (@@FETCH_STATUS <> -1 )
   BEGIN
    if isnull(@domicilio,' ') !=  ' '
    begin
     if @localidad is null begin set @localidad = @provincia end
     if @localidad is null begin set @localidad = ' ' end
     if @codpos is null    begin set @codpos = ' ' end

     set @linea = 
        '03' + -- 03 es el codigo de Fidelitas
        @Arba_nro_identificacion_arba + 
        @Arba_numero_cuit + 
        @Arba_tipo_documento + 
        @Arba_numero_documento +
        @domicilio + 
        '     '      +     -- Numero
        '          ' + -- Sin Numero
        '   '        +        -- Piso
        '    '       +      -- Departamento
        @localidad +
        @codpos
                   insert into arba_domicilios(fecha_proceso_arba, domicilio) values (@p_fecha_de_proceso_arba, @linea) 
    end
    FETCH next from C_cursor_DOM INTO @domicilio, @localidad, @provincia, @codpos
   END
   delete from @domicilios
   CLOSE C_cursor_DOM
   DEALLOCATE C_cursor_DOM 
   
   /* Telefonos */
   DECLARE C_Cursor_TEL CURSOR
   FOR
       SELECT distinct d.tipo, rtrim(ltrim(d.telefono))
    FROM telefonos AS d
         inner join padrones on padrones.id_padron = d.id_padron 
      WHERE padrones.identificacion = @Arba_numero_cuit
  
   OPEN C_Cursor_TEL 
   declare @tel varchar(50), @tipo varchar(50)

   FETCH next from C_Cursor_TEL INTO @tipo, @tel
   WHILE (@@FETCH_STATUS <> -1 )
    BEGIN
     if (ISNULL(@tel,' ') != ' ')
     begin
     
         set @tel = right(space(12) + ltrim(rtrim(dbo.fn_StripCharacters(@tel, '^0-9/'))), 12)
   
      set @linea = 
        '03' + -- 03 es el codigo de Fidelitas
        @Arba_nro_identificacion_arba + 
        @Arba_numero_cuit + 
        @Arba_tipo_documento + 
        @Arba_numero_documento +
        IIF(@tipo = 'MOVIL','M','F') +    -- Telefono fijo / movil
                       '      ' + -- Codigo de area
        @tel

        insert into arba_telefonos(fecha_proceso_arba, telefono) values (@p_fecha_de_proceso_arba, @linea) 
     end
     FETCH next from C_Cursor_TEL INTO @tipo, @tel
    END
   CLOSE C_Cursor_TEL
   DEALLOCATE C_Cursor_TEL 
   
 end



END TRY
BEGIN CATCH
 --SELECT @out_error_number=ERROR_NUMBER()
END CATCH
END

GO

Used By

No items found