dbo.chequesBCRA_altas_parseo

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