dbo.sp_procesos_cuit_cruce_domicilios

Description

Properties

Name Value
ANSI Nulls ON

True

Quoted Identifier ON

True

Encrypted

False

Execute As
Assembly

Parameters

3
Name Data Type Length Description
@cliente int 4
@fecha1 date 3
@fecha2 date 3

SQL Script

Copy
SET QUOTED_IDENTIFIER, ANSI_NULLS ON
GO

/*
exec sp_procesos_cuit_cruce_domicilios 2046807993, '2022-06-20', '2022-06-24'

*/


CREATE OR ALTER PROCEDURE dbo.sp_procesos_cuit_cruce_domicilios 
@cliente int, 
@fecha1  date, 
@fecha2  date 

AS
BEGIN

 declare @cuit varchar(20)
 declare @domicilio_fiscal varchar(200)
 declare @pai_fiscal varchar(20)
 declare @prv_fiscal varchar(100)
 declare @loc_fiscal varchar(100)
 declare @codpos_fiscal varchar(10)
 declare @domicilio_legal varchar(200)
 declare @pai_legal varchar(20)
 declare @prv_legal varchar(100)
 declare @loc_legal varchar(100)
 declare @codpos_legal varchar(10)
 declare @domicilio_real varchar(200)
 declare @pai_real varchar(20)
 declare @prv_real varchar(100)
 declare @loc_real varchar(100)
 declare @codpos_real varchar(10)
 declare @domicilio_otro varchar(200)
 declare @pai_otro varchar(20)
 declare @prv_otro varchar(100)
 declare @loc_otro varchar(100)
 declare @codpos_otro varchar(10)

 declare @cuit_2 varchar(20)
 declare @domicilio_fiscal_2 varchar(200)
 declare @pai_fiscal_2 varchar(20)
 declare @prv_fiscal_2 varchar(100)
 declare @loc_fiscal_2 varchar(100)
 declare @codpos_fiscal_2 varchar(10)
 declare @domicilio_legal_2 varchar(200)
 declare @pai_legal_2 varchar(20)
 declare @prv_legal_2 varchar(100)
 declare @loc_legal_2 varchar(100)
 declare @codpos_legal_2 varchar(10)
 declare @domicilio_real_2 varchar(200)
 declare @pai_real_2 varchar(20)
 declare @prv_real_2 varchar(100)
 declare @loc_real_2 varchar(100)
 declare @codpos_real_2 varchar(10)
 declare @domicilio_otro_2 varchar(200)
 declare @pai_otro_2 varchar(20)
 declare @prv_otro_2 varchar(100)
 declare @loc_otro_2 varchar(100)
 declare @codpos_otro_2 varchar(10)

 declare @resp int, @vez int, @vez_2 int

 declare @domicilio_1 varchar(200)
 declare @pai_1 varchar(20)
 declare @prv_1 varchar(100)
 declare @loc_1 varchar(100)
 declare @codpos_1 varchar(10)

 declare @domicilio_2 varchar(200)
 declare @pai_2 varchar(20)
 declare @prv_2 varchar(100)
 declare @loc_2 varchar(100)
 declare @codpos_2 varchar(10)

 
 declare wc_1 cursor for
  select /*top 1*/ cuit, 
  domicilio_fiscal, pai_fiscal, prv_fiscal, loc_fiscal, codpos_fiscal,
  domicilio_legal, pai_legal, prv_legal, loc_legal, codpos_legal,
  domicilio_real,  pai_real, prv_real, loc_real, codpos_real,
  domicilio_otro,  pai_otro, prv_otro, loc_otro, codpos_otro
  from procesos_cuit_enrichment_domicilios_por_tipo
   where cliente = @cliente 
     and fecha = @fecha1
     and cuit >= (select isnull(max(cuit),'0') from procesos_cuit_cruce_domicilios_control where cliente = @cliente and fecha = @fecha1)
     order by cuit
    
 open wc_1
 Fetch next from wc_1 INTO @cuit, 
       @domicilio_fiscal, 
       @pai_fiscal, 
       @prv_fiscal, 
       @loc_fiscal, 
       @codpos_fiscal, 
       @domicilio_legal, 
       @pai_legal, 
       @prv_legal, 
       @loc_legal, 
       @codpos_legal, 
       @domicilio_real, 
       @pai_real, 
       @prv_real, 
       @loc_real, 
       @codpos_real, 
       @domicilio_otro, 
       @pai_otro, 
       @prv_otro, 
       @loc_otro, 
       @codpos_otro

 WHILE (@@FETCH_STATUS <> -1 )
 BEGIN -- Primer Cursor 
  set @vez = 0
  insert into procesos_cuit_cruce_domicilios_control (cliente,fecha,cuit) values ( @cliente, @fecha1, @cuit)
  WHILE (@vez < 4) 
  BEGIN -- Domicilios cuit 1 
   set @vez = @vez + 1 
   if (@vez = 1) 
   begin
    set @domicilio_1 = @domicilio_fiscal
    set @pai_1 = @pai_fiscal 
    set @prv_1 = @prv_fiscal
    set @loc_1 = @loc_fiscal
    set @codpos_1 = @codpos_fiscal
   end 
   if (@vez = 2) 
   begin
    set @domicilio_1 = @domicilio_legal
    set @pai_1 = @pai_legal
    set @prv_1 = @prv_legal
    set @loc_1 = @loc_legal
    set @codpos_1 = @codpos_legal
   end 
   if (@vez = 3) 
   begin
    set @domicilio_1 = @domicilio_real
    set @pai_1 = @pai_real
    set @prv_1 = @prv_real
    set @loc_1 = @loc_real
    set @codpos_1 = @codpos_real
   end 
   if (@vez = 4) 
   begin
    set @domicilio_1 = @domicilio_otro
    set @pai_1 = @pai_otro
    set @prv_1 = @prv_otro
    set @loc_1 = @loc_otro
    set @codpos_1 = @codpos_otro
   end 
   
   declare wc_2 cursor for
    select /*top 1*/ cuit, 
    domicilio_fiscal, pai_fiscal, prv_fiscal, loc_fiscal, codpos_fiscal,
    domicilio_legal, pai_legal, prv_legal, loc_legal, codpos_legal,
    domicilio_real,  pai_real, prv_real, loc_real, codpos_real,
    domicilio_otro,  pai_otro, prv_otro, loc_otro, codpos_otro
    from procesos_cuit_enrichment_domicilios_por_tipo
     where cliente = @cliente 
       and fecha = @fecha2
       
    
   open wc_2
   Fetch next from wc_2 INTO @cuit_2, 
          @domicilio_fiscal_2, 
          @pai_fiscal_2, 
          @prv_fiscal_2, 
          @loc_fiscal_2, 
          @codpos_fiscal_2, 
          @domicilio_legal_2, 
          @pai_legal_2, 
          @prv_legal_2, 
          @loc_legal_2, 
          @codpos_legal_2, 
          @domicilio_real_2, 
          @pai_real_2, 
          @prv_real_2, 
          @loc_real_2, 
          @codpos_real_2, 
          @domicilio_otro_2, 
          @pai_otro_2, 
          @prv_otro_2, 
          @loc_otro_2, 
          @codpos_otro_2 
   WHILE (@@FETCH_STATUS <> -1 )
   BEGIN -- Segundo Cursor 

    set @vez_2 = 0
    WHILE (@vez_2 < 4)  
    BEGIN -- Domicilios cuit 2 
     set @vez_2 = @vez_2 + 1
     if (@vez_2 = 1) 
     begin
      set @domicilio_2 = @domicilio_fiscal_2
      set @pai_2 = @pai_fiscal_2 
      set @prv_2 = @prv_fiscal_2
      set @loc_2 = @loc_fiscal_2
      set @codpos_2 = @codpos_fiscal_2
     end 
     if (@vez_2 = 2) 
     begin
      set @domicilio_2 = @domicilio_legal_2
      set @pai_2 = @pai_legal_2
      set @prv_2 = @prv_legal_2
      set @loc_2 = @loc_legal_2
      set @codpos_2 = @codpos_legal_2
     end 
     if (@vez_2 = 3) 
     begin
      set @domicilio_2 = @domicilio_real_2
      set @pai_2 = @pai_real_2
      set @prv_2 = @prv_real_2
      set @loc_2 = @loc_real_2
      set @codpos_2 = @codpos_real_2
     end 
     if (@vez_2 = 4) 
     begin
      set @domicilio_2 = @domicilio_otro_2
      set @pai_2 = @pai_otro_2
      set @prv_2 = @prv_otro_2
      set @loc_2 = @loc_otro_2
      set @codpos_2 = @codpos_otro_2
     end 

     set @resp = 0

     --select @cuit cuit, @vez vez_1, @domicilio_1 domicilio_1, @cuit_2 cuit_2, @vez_2 vez_2, @domicilio_2 domicilio_2
     exec @resp = [sp_comparo_domicilios] @domicilio_1, @domicilio_2
     if (@resp = 1) -- son iguales
     begin
      insert into procesos_cuit_cruce_domicilios (cliente,
                 fecha,
                 cuit,
                 domicilio,
                 pai,
                 prv,
                 loc,
                 codpos,
                 fecha_2,
                 cuit_2,
                 domicilio_2,
                 pai_2,
                 prv_2,
                 loc_2,
                 codpos_2)
      values ( @cliente, @fecha1, @cuit, 
             @domicilio_1, 
             @pai_1, 
             @prv_1, 
             @loc_1, 
             @codpos_1,
             @fecha2, 
             @cuit_2,
             @domicilio_2,
             @pai_2, 
             @prv_2, 
             @loc_2, 
             @codpos_2)
     end 
    END -- Domicilios cuit 2
   Fetch next from wc_2 INTO @cuit_2, 
     @domicilio_fiscal_2, 
     @pai_fiscal_2, 
     @prv_fiscal_2, 
     @loc_fiscal_2, 
     @codpos_fiscal_2, 
     @domicilio_legal_2, 
     @pai_legal_2, 
     @prv_legal_2, 
     @loc_legal_2, 
     @codpos_legal_2, 
     @domicilio_real_2, 
     @pai_real_2, 
     @prv_real_2, 
     @loc_real_2, 
     @codpos_real_2, 
     @domicilio_otro_2, 
     @pai_otro_2, 
     @prv_otro_2, 
     @loc_otro_2, 
     @codpos_otro_2 
     
  END -- Cursor 2
  CLOSE wc_2
  DEALLOCATE wc_2
 END -- Domicilios cuit 1
  Fetch next from wc_1 INTO @cuit, 
       @domicilio_fiscal, 
       @pai_fiscal, 
       @prv_fiscal, 
       @loc_fiscal, 
       @codpos_fiscal, 
       @domicilio_legal, 
       @pai_legal, 
       @prv_legal, 
       @loc_legal, 
       @codpos_legal, 
       @domicilio_real, 
       @pai_real, 
       @prv_real, 
       @loc_real, 
       @codpos_real, 
       @domicilio_otro, 
       @pai_otro, 
       @prv_otro, 
       @loc_otro, 
       @codpos_otro
 END -- Primer Cursor
 CLOSE wc_1
 DEALLOCATE wc_1

END
GO

Used By

No items found