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
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