dbo.sp_procesos_nivel_socio_economico_domicilios_todos

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
@fecha_proceso date 3
@retomar char 1

SQL Script

Copy
SET QUOTED_IDENTIFIER, ANSI_NULLS ON
GO
/*
[sp_procesos_nivel_socio_economico]   '263625984', '2018-08-06', 'N'
[sp_procesos_nivel_socio_economico]   '263625984', '2018-08-06', 'S'
*/

CREATE OR ALTER PROCEDURE dbo.sp_procesos_nivel_socio_economico_domicilios_todos  
@cliente int =  '263625984', 
@fecha_proceso date = '2018-08-06',
@retomar char(1) = 'S'

AS
BEGIN
    SET NOCOUNT ON;

 declare @id_padron      int, 
         @nombre         varchar(100),
         @identificador  varchar(10), 
   @cuit           varchar(20),
   @rango_desde    decimal(20,2),
   @rango_hasta    decimal(20,2),
   @comex_importaciones decimal(20,2),
   @comex_exportaciones decimal(20,2),
   @facturacion         decimal(20,2),
   @es_cliente          bit 

 declare @domicilios table (id int, domicilio varchar(200), pai_nombre varchar(20), prv_nombre varchar(100), loc_nombre varchar(100), codpos varchar(10), tipo_domicilio varchar(10), created datetime)

 declare @domicilio  varchar(200),
      @prv_nombre varchar(100), 
   @loc_nombre varchar(100),
   @codpos     varchar(10)

 declare @telefonos table (  cuit varchar(20),
        telefono varchar(max))


 declare @tel varchar(max),
      @cod_clae varchar(10), 
   @descripcion varchar(512),
   @principal bit,
   @formulario varchar(10),
   @cant_empleados int

 declare @empleados_cuit  table (
      hombres decimal(10,2),
    mujeres decimal(10,2),
    total   decimal(10,2),
    fecha   varchar(10))

 declare @ult_mes_bcra char(7)
 declare @ult_mes_bcra2 char(7)
 declare @cant_bcra int = 0
 declare @monto_bcra decimal(16,2)
 declare @monto decimal(16,2)
 declare @bcra_temp table (codigo_ent int)
 declare @p_codigo_ent int
 declare @cuil varchar(20)


 declare @fec_periodo_minimo varchar(11),
         @periodo_minimo varchar(7)

 set @fec_periodo_minimo = dateadd(MM, -23,getdate())
    set @periodo_minimo = convert(varchar(4),DATEPART(yyyy,@fec_periodo_minimo))+right('0'+convert(varchar(2),DATEPART(mm,@fec_periodo_minimo)),2)

--> Inicio 
    
 if (@retomar = 'N') 
 begin
  delete from procesos_nivel_socio_economico_domicilios_todos  where cliente = @cliente and fecha_proceso = @fecha_proceso
 end 

 DECLARE C_padron CURSOR FOR
   select distinct  -- top 10 
                      procesos_nivel_socio_economico.id_padron, 
                          padrones.nombre_persona,
          padrones.identificador,
          padrones.identificacion,
          procesos_nivel_socio_economico.rango_desde,
          procesos_nivel_socio_economico.rango_hasta,
          procesos_nivel_socio_economico.comex_importaciones,
          procesos_nivel_socio_economico.comex_exportaciones,
          procesos_nivel_socio_economico.facturacion,
          procesos_nivel_socio_economico.es_cliente 

   from procesos_nivel_socio_economico 
   inner join padrones on procesos_nivel_socio_economico.id_padron = padrones.id_padron
   where rango_desde > 30000000 and rango_hasta <= 600000000
   and cliente = @cliente
   and fecha_proceso = @fecha_proceso
   and not exists (select * from procesos_nivel_socio_economico_domicilios_todos
           where procesos_nivel_socio_economico_domicilios_todos.id_padron = procesos_nivel_socio_economico.id_padron
             and cliente = @cliente
                      and fecha_proceso = @fecha_proceso
       )
   order by padrones.nombre_persona asc

 OPEN C_Padron
 FETCH NEXT FROM C_Padron INTO   @id_padron,
                                 @nombre,
         @identificador, 
         @cuit,
         @rango_desde,
         @rango_hasta,
         @comex_importaciones,
         @comex_exportaciones,
         @facturacion,
         @es_cliente         
 WHILE @@fetch_status = 0
 BEGIN 

  --> Domicilios 
  insert into @domicilios
  exec sp_obtener_domicilios @cuit 
    
  --> Domicilios(F) y (D) de Buenos Aires a CABA
  insert into procesos_nivel_socio_economico_domicilios_todos
  select distinct @cliente, @fecha_proceso, @id_padron, @cuit,  
      domicilio,
      prv_nombre, 
      loc_nombre,
      codpos,
      'F'
    from @domicilios 
    where tipo_domicilio like '%F%' and prv_nombre like '%BUENOS AIRES%' 

  insert into procesos_nivel_socio_economico_domicilios_todos
  select distinct @cliente, @fecha_proceso, @id_padron, @cuit, 
      domicilio,
      prv_nombre, 
      loc_nombre,
      codpos,
      'D'
   from  @domicilios 
   where tipo_domicilio like '%D%' 
   /*and tipo_domicilio not like '%F%' */
   and prv_nombre like '%BUENOS AIRES%' 

  --> Otros Domicilio (O), o que no son de Buenos Aires y CABA

  insert into procesos_nivel_socio_economico_domicilios_todos
  select distinct @cliente, @fecha_proceso, @id_padron, @cuit, 
      domicilio,
      prv_nombre, 
      loc_nombre,
      codpos,
      'O'
   from  @domicilios 
   where (tipo_domicilio not like '%D%' and tipo_domicilio not like '%F%' ) or prv_nombre not like '%BUENOS AIRES%'
    ----

     delete from @domicilios


  FETCH NEXT FROM C_Padron INTO   @id_padron,
          @nombre,
          @identificador, 
          @cuit,
          @rango_desde,
          @rango_hasta,
          @comex_importaciones,
          @comex_exportaciones,
          @facturacion,
          @es_cliente 

 END  
 CLOSE C_Padron
 DEALLOCATE C_Padron
END
GO

Used By

No items found