dbo.ARBA_Bajas_Automaticas

Description

Properties

Name Value
ANSI Nulls ON

True

Quoted Identifier ON

True

Encrypted

False

Execute As
Assembly

Parameters

1
Name Data Type Length Description
@p_fecha_de_proceso_arba smalldatetime 4

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_Bajas_Automaticas
@p_fecha_de_proceso_arba smalldatetime

AS
BEGIN

    SET NOCOUNT ON;

    declare @Total int = 0
 declare @Proc  int = 0
    declare @Fecha_desde date
    declare @Fecha_hasta date
 declare
 @id_arba int = NULL,
 @tipo_movimiento varchar(1) = NULL,
 @motivo_baja varchar(1) = NULL,
 @nro_identificacion_arba varchar(10) = NULL,
 @razon_social varchar(80) = NULL,
 @cuit varchar(11) = NULL,
 @id_padron int = NULL,
 @tipo_documento varchar(4) = NULL,
 @numero_documento varchar(10) = NULL,
 @impuesto varchar(2) = NULL,
 @objeto varchar(16) = NULL,
 @numero_interno_de_juicio varchar(10) = NULL,
 @fecha_de_inicio_de_juicio date = NULL,
 @importe_deuda_del_juicio decimal(15, 2) = NULL,
 @departamento_judicial varchar(2) = NULL,
 @numero_de_juzgado varchar(2) = NULL,
 @secretaria varchar(2) = NULL,
 @domicilio_calle varchar(35) = NULL,
 @domicilio_numero varchar(6) = NULL,
 @domicilio_sin_numero varchar(3) = NULL,
 @domicilio_piso varchar(3) = NULL,
 @domicilio_departamento varchar(4) = NULL,
 @domicilio_localidad varchar(35) = NULL,
 @domicilio_codigo_postal varchar(8) = NULL,
 @estado_de_medida_cautelar varchar(1) = NULL,
 @estado_de_plan_de_pagos varchar(1) = NULL,
 @fecha_de_plan_de_pagos date = NULL,
 @cancelacion_del_juicio varchar(1) = NULL,
 @fecha_de_cancelacion date = NULL,
 @fecha_de_proceso_arba smalldatetime = NULL,
 @created smalldatetime = NULL,
 @created_by int = NULL,
 @modified smalldatetime = NULL,
 @modified_by int = NULL,
 @visible bit = NULL,
 @nombre_file varchar(200) = NULL


 declare @Motivo_Baja_fide char(1) = ' ' 
 declare @Fecha_Proceso_fide date = GETDATE()
 declare @Codigos_error_fide char(20) = '' 
 declare @Tipo_Movimiento_fide char(1) = ''

 declare @linea varchar(500) = null



    SELECT @Fecha_desde = MAX(fecha_de_proceso_arba)  
        FROM Arba
        WHERE fecha_de_proceso_arba < @p_fecha_de_proceso_arba and visible = 1

    set @fecha_hasta = @p_fecha_de_proceso_arba

    DECLARE C_cursor_BAJAS CURSOR FOR
        SELECT tipo_movimiento,
    motivo_baja,
    nro_identificacion_arba,
    razon_social,
    cuit,
    id_padron,
    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
  FROM Arba
  WHERE fecha_de_proceso_arba < @p_fecha_de_proceso_arba and visible = 1
        ORDER BY fecha_de_proceso_arba asc

 OPEN C_cursor_BAJAS
 FETCH next from C_cursor_BAJAS INTO 
          @tipo_movimiento,
          @motivo_baja,
          @nro_identificacion_arba,
          @razon_social,
          @cuit,
          @id_padron,
          @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

 WHILE (@@FETCH_STATUS <> -1 )
 BEGIN
              
                set @Motivo_Baja_fide     = ' '
                set @Fecha_Proceso_fide   = GETDATE()
                set @Codigos_error_fide   = ''
                set @Tipo_Movimiento_fide = ''

                -- veo si se dio baja automatica por tiempos
                IF (@fecha_de_inicio_de_juicio IS NOT NULL AND
                   @fecha_de_inicio_de_juicio <  dateadd(dd,-(365*5),@Fecha_hasta) AND
                   @fecha_de_inicio_de_juicio >=  dateadd(dd,-(365*5),@Fecha_desde))
    BEGIN
                   set @Tipo_Movimiento_fide = '7' -- BAJA AUTOMATICA
                   set @Motivo_baja_fide = '1'     -- BAJA x tiempo + 5 años
    END
                ELSE
    BEGIN
                   IF (@fecha_de_inicio_de_juicio IS NOT NULL AND
                       @fecha_de_inicio_de_juicio <  dateadd(dd,-(365*2),@Fecha_hasta) AND
                       @fecha_de_inicio_de_juicio >= dateadd(dd,-(365*2),@Fecha_desde))
       BEGIN
                      IF @Estado_de_Plan_de_Pagos = '2' 
       begin
                         set @Tipo_Movimiento_fide = '7' -- BAJA AUTOMATICA
                         set @Tipo_Movimiento_fide = '4'     -- CON PLAN DE PAGOS x tiempo + 2 años
                      END
                      IF (@cancelacion_del_juicio  = 'S' OR
                          @cancelacion_del_juicio  = 'T' OR
                          @Estado_de_Plan_de_Pagos = '4' OR
                          @fecha_de_cancelacion IS NOT NULL)
       BEGIN
       set @Tipo_Movimiento_fide = '7' -- BAJA AUTOMATICA
          set @Motivo_baja_fide = '3'     -- CON CANCELACION x tiempo + 2 años
                      END
                   END
                END
    
                IF (@Tipo_Movimiento_fide = '7')
    BEGIN

     --declare @Arba_razon_social char(120) = @razon_social
     declare @Arba_razon_social char(80) = CONVERT(char(80),@razon_social)
     declare @Arba_cuit char(13) = @cuit
     declare @Arba_nro_identificacion_arba char(10) = right('0000000000'+@nro_identificacion_arba,10) 
     declare @Arba_razon_social_fide varchar(80) = null 
     declare @Arba_numero_cuit char(11) = @cuit
     declare @Arba_tipo_documento char(1) = @tipo_documento
     declare @Arba_numero_documento char(8) = @numero_documento 
     declare @Arba_numero_documento_fide integer = null 
     declare @Arba_impuesto char(2) = @impuesto
     declare @Arba_objeto char(16) = @objeto 
     declare @Arba_numero_interno_de_juicio char(10) = right('0000000000'+@numero_interno_de_juicio,10)
     declare @Arba_fecha_de_inicio_de_juicio char(8) = iif(@fecha_de_inicio_de_juicio is null,'00000000',format(@fecha_de_inicio_de_juicio,'yyyyMMdd'))
     declare @Arba_importe_deuda_del_juicio char(15) = format(@importe_deuda_del_juicio*100,'000000000000000')
     declare @Arba_importe_deuda_del_juicio_fide decimal(17,2) = null 
     declare @Arba_departamento_judicial  char(2) = right('00'+@departamento_judicial,2)
     declare @Arba_numero_de_juzgado char(2) = right('00'+@numero_de_juzgado,2)
     declare @Arba_secretaria char(2) = right('00'+@secretaria,2)
     declare @Arba_estado_de_medida_cautelar char(1) = @estado_de_medida_cautelar  
     declare @Arba_estado_de_plan_de_pagos char(1) = @estado_de_plan_de_pagos
     declare @Arba_fecha_de_plan_de_pagos char(8) = iif(@fecha_de_plan_de_pagos is null,'00000000',format(@fecha_de_plan_de_pagos,'yyyyMMdd'))
     declare @Arba_cancelacion_del_juicio char(1) = @cancelacion_del_juicio
     declare @Arba_fecha_de_cancelacion char(8) = iif(@fecha_de_cancelacion is null, '00000000', format(@fecha_de_cancelacion,'yyyyMMdd'))
     declare @Arba_fecha_de_proceso char(8) = iif(@fecha_de_proceso_arba is null,'00000000',format(@fecha_de_proceso_arba,'yyyyMMdd'))

 
                   -- Si se dio baja automatica ==> publica un segundo registro, diciendo esta situacion
       set @linea = '03' + -- 03 es el codigo de Fidelitas
           @Tipo_Movimiento_fide + 
           @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 +
          '00000000' +       
        format(@Fecha_Proceso_fide,'yyyyMMdd') + 
        @Codigos_error_fide
   
     insert into arba_respuesta(fecha_proceso_arba, detalle) values (@p_fecha_de_proceso_arba, @linea)

                END
   
    FETCH next from C_cursor_BAJAS INTO 
          @tipo_movimiento,
          @motivo_baja,
          @nro_identificacion_arba,
          @razon_social,
          @cuit,
          @id_padron,
          @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

 END 
    CLOSE C_cursor_BAJAS
 DEALLOCATE C_cursor_BAJAS 
END

             

GO

Depends On

1