Description
Properties
| Name | Value |
|---|---|
| ANSI Nulls ON | True |
| Quoted Identifier ON | True |
| Encrypted | False |
| Execute As | |
| Assembly |
SQL Script
Copy
SET QUOTED_IDENTIFIER, ANSI_NULLS ON
GO
CREATE OR ALTER PROCEDURE dbo.chequesBCRA_altas_parseo
AS
BEGIN
SET NOCOUNT ON;
DECLARE
@total bigint = 0,
@contenido char(100),
@cuit_firmante varchar(11),
@nro_cheque varchar(10),
@fecha_rechazo varchar(10),
@importe varchar(16),
@id_causa varchar(1),
@fecha_levantamiento varchar(10),
@fecha_pago varchar(12),
@cuit_relacionado varchar(11),
@visible char(1),
@en_revision char(1),
@proc_judicial char(1),
@multa_no_aplica char(1),
@suspendido varchar(1),
@created date,
@usuarioifx varchar(10),
@idifx varchar(10)
/*
Pos 01-11 Cuit_Firmante
Pos 12-21 Nro_cheuque
Pos 22-29 Fecha_rechazo (viene en formato yyyymmdd)
Pos 30-44 Monto (30-42 parte entera, 43-44 decimales)
Pos 45-45 Causal
Pos 46-53 Fecha Levantamiento (viene en formato yyyymmdd)
Pos 54-54 Revision (si es distinto de S en revision)
Pos 55-55 Proc_judic (si es distinto de F en proceso judicial)
Pos 56-66 Cuit_relacionado
Pos 67-78 fecha_pago_multa (Viene en formato dd/mm/yyyy)
*/
DECLARE C_Cursor CURSOR FOR
select contenido
from chequesBCRA_txt_altas /*chequesBCRA_txt*/
FOR UPDATE
OPEN C_Cursor
FETCH NEXT FROM C_Cursor INTO @contenido
WHILE @@fetch_status = 0
BEGIN
set @total = @total + 1
set @cuit_firmante = SUBSTRING(@contenido,1,11)
set @nro_cheque = SUBSTRING(@contenido,12,10)
set @fecha_rechazo = SUBSTRING(@contenido,22,4) + '-' +
SUBSTRING(@contenido,26,2) + '-' +
SUBSTRING(@contenido,28,2)
if (@fecha_rechazo = ' - - ') set @fecha_rechazo = null
set @importe = SUBSTRING(@contenido,30,13) + '.' +
SUBSTRING(@contenido,43,2)
-- Si vienen blancos en el medio del numero los reemplazo por 0 (venia por ejemplo . 1)
-- Si solo tiene decimales, le agrega el cero delante del punto decimal
set @importe = ltrim(rtrim(@importe))
set @importe = (select replace(@importe,' ','0'))
if (@importe like '.%') set @importe = '0' + @importe
set @id_causa = SUBSTRING(@contenido,45,1)
set @fecha_levantamiento = SUBSTRING(@contenido,46,4) + '-' +
SUBSTRING(@contenido,50,2) + '-' +
SUBSTRING(@contenido,52,2)
if (@fecha_levantamiento = ' - - ') set @fecha_levantamiento = null
set @en_revision = SUBSTRING(@contenido,54,1)
if (@en_revision != 'S') set @en_revision = '1' else set @en_revision = '0'
set @proc_judicial = SUBSTRING(@contenido,54,1) -- No lo estamos cargando
if (@proc_judicial != 'F') set @proc_judicial = '1' else set @proc_judicial = '0'
set @cuit_relacionado = SUBSTRING(@contenido,56,11)
if (@cuit_relacionado = SPACE(11)) set @cuit_relacionado = null
set @suspendido = '0'
set @multa_no_aplica = '0'
set @fecha_pago = SUBSTRING(@contenido,67,12)
if (@fecha_pago = SPACE(12)) set @fecha_pago = null
if (@fecha_pago like 'SUSPEND%')
begin
set @fecha_pago = null
set @suspendido = '1'
end
if (@fecha_pago like 'I%PAG%')
begin
set @fecha_pago = null
end
if (@fecha_pago like 'NO%APLIC%')
begin
set @fecha_pago = null
set @multa_no_aplica = '1'
end
if (@fecha_pago like '%/%/%')
begin
set @fecha_pago = SUBSTRING(@fecha_pago,7,4) + '-' +
SUBSTRING(@fecha_pago,4,2) + '-' +
SUBSTRING(@fecha_pago,1,2)
end
if (@fecha_pago not like '____-__-__') set @fecha_pago = null
set @created = convert(date,getdate())
set @usuarioifx = null
set @idifx = null
set @visible = '1'
--select * from CHEQ_RECH_20180214
insert into CHEQ_RECH_20180214
(
cuit_firmante,
nro_cheque ,
fecha_rechazo ,
importe ,
id_causa ,
fecha_levantamiento ,
fecha_pago ,
cuit_relacionado ,
visible ,
en_revision ,
multa_no_aplica ,
suspendido ,
created ,
usuarioifx ,
idifx )
values (
ltrim(rtrim(@cuit_firmante)),
ltrim(rtrim(@nro_cheque)),
ltrim(rtrim(@fecha_rechazo)),
ltrim(rtrim(@importe)),
ltrim(rtrim(@id_causa)),
ltrim(rtrim(@fecha_levantamiento)),
ltrim(rtrim(@fecha_pago)),
ltrim(rtrim(@cuit_relacionado)),
ltrim(rtrim(@visible)),
ltrim(rtrim(@en_revision)),
ltrim(rtrim(@multa_no_aplica)),
ltrim(rtrim(@suspendido)),
@created ,
@usuarioifx ,
@idifx )
DELETE FROM chequesBCRA_txt_altas WHERE CURRENT OF C_Cursor /*chequesBCRA_txt*/
FETCH NEXT FROM C_Cursor INTO @contenido
END
CLOSE C_Cursor
DEALLOCATE C_Cursor
select @total as total
END
GO
GO
CREATE OR ALTER PROCEDURE dbo.chequesBCRA_altas_parseo
AS
BEGIN
SET NOCOUNT ON;
DECLARE
@total bigint = 0,
@contenido char(100),
@cuit_firmante varchar(11),
@nro_cheque varchar(10),
@fecha_rechazo varchar(10),
@importe varchar(16),
@id_causa varchar(1),
@fecha_levantamiento varchar(10),
@fecha_pago varchar(12),
@cuit_relacionado varchar(11),
@visible char(1),
@en_revision char(1),
@proc_judicial char(1),
@multa_no_aplica char(1),
@suspendido varchar(1),
@created date,
@usuarioifx varchar(10),
@idifx varchar(10)
/*
Pos 01-11 Cuit_Firmante
Pos 12-21 Nro_cheuque
Pos 22-29 Fecha_rechazo (viene en formato yyyymmdd)
Pos 30-44 Monto (30-42 parte entera, 43-44 decimales)
Pos 45-45 Causal
Pos 46-53 Fecha Levantamiento (viene en formato yyyymmdd)
Pos 54-54 Revision (si es distinto de S en revision)
Pos 55-55 Proc_judic (si es distinto de F en proceso judicial)
Pos 56-66 Cuit_relacionado
Pos 67-78 fecha_pago_multa (Viene en formato dd/mm/yyyy)
*/
DECLARE C_Cursor CURSOR FOR
select contenido
from chequesBCRA_txt_altas /*chequesBCRA_txt*/
FOR UPDATE
OPEN C_Cursor
FETCH NEXT FROM C_Cursor INTO @contenido
WHILE @@fetch_status = 0
BEGIN
set @total = @total + 1
set @cuit_firmante = SUBSTRING(@contenido,1,11)
set @nro_cheque = SUBSTRING(@contenido,12,10)
set @fecha_rechazo = SUBSTRING(@contenido,22,4) + '-' +
SUBSTRING(@contenido,26,2) + '-' +
SUBSTRING(@contenido,28,2)
if (@fecha_rechazo = ' - - ') set @fecha_rechazo = null
set @importe = SUBSTRING(@contenido,30,13) + '.' +
SUBSTRING(@contenido,43,2)
-- Si vienen blancos en el medio del numero los reemplazo por 0 (venia por ejemplo . 1)
-- Si solo tiene decimales, le agrega el cero delante del punto decimal
set @importe = ltrim(rtrim(@importe))
set @importe = (select replace(@importe,' ','0'))
if (@importe like '.%') set @importe = '0' + @importe
set @id_causa = SUBSTRING(@contenido,45,1)
set @fecha_levantamiento = SUBSTRING(@contenido,46,4) + '-' +
SUBSTRING(@contenido,50,2) + '-' +
SUBSTRING(@contenido,52,2)
if (@fecha_levantamiento = ' - - ') set @fecha_levantamiento = null
set @en_revision = SUBSTRING(@contenido,54,1)
if (@en_revision != 'S') set @en_revision = '1' else set @en_revision = '0'
set @proc_judicial = SUBSTRING(@contenido,54,1) -- No lo estamos cargando
if (@proc_judicial != 'F') set @proc_judicial = '1' else set @proc_judicial = '0'
set @cuit_relacionado = SUBSTRING(@contenido,56,11)
if (@cuit_relacionado = SPACE(11)) set @cuit_relacionado = null
set @suspendido = '0'
set @multa_no_aplica = '0'
set @fecha_pago = SUBSTRING(@contenido,67,12)
if (@fecha_pago = SPACE(12)) set @fecha_pago = null
if (@fecha_pago like 'SUSPEND%')
begin
set @fecha_pago = null
set @suspendido = '1'
end
if (@fecha_pago like 'I%PAG%')
begin
set @fecha_pago = null
end
if (@fecha_pago like 'NO%APLIC%')
begin
set @fecha_pago = null
set @multa_no_aplica = '1'
end
if (@fecha_pago like '%/%/%')
begin
set @fecha_pago = SUBSTRING(@fecha_pago,7,4) + '-' +
SUBSTRING(@fecha_pago,4,2) + '-' +
SUBSTRING(@fecha_pago,1,2)
end
if (@fecha_pago not like '____-__-__') set @fecha_pago = null
set @created = convert(date,getdate())
set @usuarioifx = null
set @idifx = null
set @visible = '1'
--select * from CHEQ_RECH_20180214
insert into CHEQ_RECH_20180214
(
cuit_firmante,
nro_cheque ,
fecha_rechazo ,
importe ,
id_causa ,
fecha_levantamiento ,
fecha_pago ,
cuit_relacionado ,
visible ,
en_revision ,
multa_no_aplica ,
suspendido ,
created ,
usuarioifx ,
idifx )
values (
ltrim(rtrim(@cuit_firmante)),
ltrim(rtrim(@nro_cheque)),
ltrim(rtrim(@fecha_rechazo)),
ltrim(rtrim(@importe)),
ltrim(rtrim(@id_causa)),
ltrim(rtrim(@fecha_levantamiento)),
ltrim(rtrim(@fecha_pago)),
ltrim(rtrim(@cuit_relacionado)),
ltrim(rtrim(@visible)),
ltrim(rtrim(@en_revision)),
ltrim(rtrim(@multa_no_aplica)),
ltrim(rtrim(@suspendido)),
@created ,
@usuarioifx ,
@idifx )
DELETE FROM chequesBCRA_txt_altas WHERE CURRENT OF C_Cursor /*chequesBCRA_txt*/
FETCH NEXT FROM C_Cursor INTO @contenido
END
CLOSE C_Cursor
DEALLOCATE C_Cursor
select @total as total
END
GO