dbo.sp_procesos_nivel_socio_economico_salida

Description

Properties

Name Value
ANSI Nulls ON

True

Quoted Identifier ON

True

Encrypted

False

Execute As
Assembly

Parameters

2
Name Data Type Length Description
@cliente int 4
@fecha_proceso date 3

SQL Script

Copy
SET QUOTED_IDENTIFIER, ANSI_NULLS ON
GO
CREATE OR ALTER PROCEDURE dbo.sp_procesos_nivel_socio_economico_salida  
@cliente int = '263625984',
@fecha_proceso date = '2018-08-06'

AS
BEGIN
    SET NOCOUNT ON;

 
--> Bancos (los juntamos en una linea)
  
declare @cuit varchar(20)
declare @periodo varchar(10)
declare @cant int
declare @deuda varchar(max)
declare @deudas varchar(max)
declare @Tdeudas table (cuit varchar(20), periodo varchar(10), deudas varchar(max))
declare @monto decimal(20,2)
 DECLARE C_bancos CURSOR FOR
 select distinct cuit, periodo
     From procesos_nivel_socio_economico_bancos d
    where d.cliente = @cliente 
         and d.fecha_proceso = @fecha_proceso
   and d.visible = 1
 OPEN C_bancos 
 FETCH NEXT FROM C_bancos INTO @cuit,
          @periodo
 WHILE @@fetch_status = 0
 BEGIN
  DECLARE C_bancos2 CURSOR FOR
   select deuda as monto, banco + '|' + convert(varchar,situacion) + '|' + convert(varchar,deuda) as 'Deudas'
       From procesos_nivel_socio_economico_bancos d
      where d.cliente = @cliente 
     and d.fecha_proceso = @fecha_proceso
     and d.cuit = @cuit
     and d.periodo = @periodo
     and d.visible = 1
     order by deuda desc
      
  set @cant = 0
  set @deudas = ''
  OPEN C_bancos2 
  FETCH NEXT FROM C_bancos2 INTO @monto, @deuda
   WHILE @@fetch_status = 0
   BEGIN
    set @cant = @cant + 1 
    if (@cant = 1) 
     begin set @deudas = @periodo + '|' + @deuda end 
    else 
     begin set @deudas = @deudas + '|' + @deuda end 
    FETCH NEXT FROM C_bancos2 INTO @monto, @deuda
   END 
   CLOSE C_bancos2
   DEALLOCATE C_bancos2
  insert into @Tdeudas values (@cuit, @periodo, @deudas)
  FETCH NEXT FROM C_bancos INTO @cuit,
              @periodo
 END 
 CLOSE C_bancos
 DEALLOCATE C_bancos
 --select * from @Tdeudas
/*
--> Domicilio (juntamos dos en una linea)

declare @2domicilios varchar(max)
declare @1domicilios varchar(max)
declare @Tdom table (cuit varchar(20), domicilios varchar(max))


DECLARE C_Dom CURSOR FOR
select distinct cuit
   From procesos_nivel_socio_economico_domicilios d
  where d.cliente = @cliente 
        and d.fecha_proceso = @fecha_proceso
OPEN C_Dom
FETCH NEXT FROM C_Dom INTO @cuit
WHILE @@fetch_status = 0
BEGIN
DECLARE C_Dom2 CURSOR FOR
select  distinct top 2 
             isnull(replace(d.domicilio, '|',''),'')   + '|' +
                 isnull(replace(d.prv_nombre,'|',''),'')  + '|' +
             isnull(replace(d.loc_nombre,'|',''),'')  + '|' + 
             isnull(replace(d.codpos,'|',''),'')      as domicilios
      From procesos_nivel_socio_economico_domicilios d
 where d.cliente = @cliente 
   and d.fecha_proceso = @fecha_proceso
     and d.cuit = @cuit
   

set @cant = 0
set @2domicilios = ''
OPEN C_Dom2 
FETCH NEXT FROM C_Dom2 INTO @1domicilios
WHILE @@fetch_status = 0
BEGIN
set @cant = @cant + 1 
if (@cant = 1) 
begin set @2domicilios = @1domicilios end 
else 
begin set @2domicilios = @2domicilios + '|' + @1domicilios end 
FETCH NEXT FROM C_Dom2 INTO @1domicilios
END 
CLOSE C_Dom2
DEALLOCATE C_Dom2
if (@cant = 1)
begin
set @2domicilios = @2domicilios + '||||'
end 
insert into @Tdom values (@cuit, @2domicilios)
FETCH NEXT FROM C_Dom INTO @cuit
END 
CLOSE C_Dom
DEALLOCATE C_Dom
*/


--> Se muestra el domicilio F y el D siempre
--> Otros Domicilios (muestra maximo 3, en una sola celda del excel) 

declare @2domicilios varchar(max)
declare @1domicilios varchar(max)
declare @prv         varchar(50)
declare @Tdom table (cuit varchar(20), domicilios varchar(max))

DECLARE C_Dom CURSOR FOR
 select distinct cuit
     From procesos_nivel_socio_economico_domicilios_todos d
    where d.cliente = @cliente 
         and d.fecha_proceso = @fecha_proceso
   and d.visible = 1
 OPEN C_Dom
 FETCH NEXT FROM C_Dom INTO @cuit
 WHILE @@fetch_status = 0
 BEGIN
  DECLARE C_Dom2 CURSOR FOR
   select  distinct top 3
                isnull(replace(replace(d.domicilio, ',',' '),'/',' '),'')  + ', ' +
                   isnull(replace(replace(d.prv_nombre,',',' '),'/',' '),'')  + ', ' +
                isnull(replace(replace(d.loc_nombre,',',' '),'/',' '),'')  + ' (' + 
                isnull(replace(replace(d.codpos,',',''),'/',''),'')      + ')'as domicilios,
       prv_nombre
          From procesos_nivel_socio_economico_domicilios_todos d
      where d.cliente = @cliente 
        and d.fecha_proceso = @fecha_proceso
         and d.cuit = @cuit
        and d.tipo_domicilio = 'O'
        and d.visible = 1
        order by prv_nombre desc /* (para que deje ultimos los registros que tienen provincia vacia) */

  set @cant = 0
  set @2domicilios = ''
  OPEN C_Dom2 
  FETCH NEXT FROM C_Dom2 INTO @1domicilios,@prv
   WHILE @@fetch_status = 0
   BEGIN
    while (@1domicilios like '%, ,%')
    begin
     set @1domicilios = (select replace(@1domicilios,', ,', ','))
    end
    while (@1domicilios like '%  %')
    begin
     set @1domicilios = (select replace(@1domicilios,'  ', ' '))
    end 
    set @1domicilios = (select replace(@1domicilios,'()', ''))
    set @cant = @cant + 1 
    if (@cant = 1) 
     begin set @2domicilios = @1domicilios end 
    else 
     begin set @2domicilios = @2domicilios + ' / ' + @1domicilios end 
    FETCH NEXT FROM C_Dom2 INTO @1domicilios,@prv
   END 
   CLOSE C_Dom2
   DEALLOCATE C_Dom2
  insert into @Tdom values (@cuit, @2domicilios)
  FETCH NEXT FROM C_Dom INTO @cuit
 END 
 CLOSE C_Dom
 DEALLOCATE C_Dom


--> Salida:
 select  
   iif(r.es_cliente=1,'SI','NO') as 'Es cliente de Macro?',
   r.score as 'Score',
         isnull(nombre,'')         as 'Razón Social',
      isnull(identificador, '') as 'Identificador',
      isnull(r.cuit,'')           as 'CUIT',
      convert(varchar,isnull(rango_desde,0))     as 'Rango desde', 
      convert(varchar,isnull(rango_hasta,0))    as 'Rango hasta', 
   --isnull(telefonos,'')      as 'Teléfonos',
   isnull(iif (len(telefonos) > 32000, substring(telefonos, 1, CHARINDEX ('/', telefonos, 32000)),telefonos),'') as 'Teléfonos',
   isnull(cod_clae,'')       as 'Cod CIUU', 
   isnull(descripcion,'')    as 'CIUU',
   /*isnull(formulario,'')     as 'Formulario',*/
   convert(varchar,isnull(cant_empleados,0))  as 'Cant. Empleados',
   
   isnull(fiscal.domicilio,'')  as 'Domicilio Fiscal',
   isnull(fiscal.prv_nombre,'') as 'Provincia',
   isnull(fiscal.loc_nombre,'') as 'Localidad',
   isnull(fiscal.codpos,'')     as 'CP',
  
   isnull(legal.domicilio,'')  as 'Domicilio Legal',
   isnull(legal.prv_nombre,'') as 'Provincia',
   isnull(legal.loc_nombre,'') as 'Localidad',
   isnull(legal.codpos,'')     as 'CP',

   isnull(d.domicilios,'') as 'Otros Domicilios', 

   /*
    '' as 'Tipo Domicilio',
    */

   /*
    '' as 'Período',
    '' as 'Banco',
    '' as 'Situación',
    '' as 'Deuda',
    */

   '' as 'CUIL',
   '' as 'Nombre Empleado',
   '' as 'Período',
   '' as 'Sueldo',
   '' as 'Teléfonos Empleado',
   deudas as 'Deudas'
  from procesos_nivel_socio_economico_respuesta r
  left join @Tdeudas t on t.cuit = r.cuit
  left join @Tdom    d on d.cuit = r.cuit
  OUTER APPLY (select top 1 domicilio, prv_nombre, loc_nombre, codpos
               from procesos_nivel_socio_economico_domicilios_todos df where df.cuit = r.cuit and df.tipo_domicilio = 'F' and df.visible = 1) as fiscal
  OUTER APPLY (select top 1 domicilio, prv_nombre, loc_nombre, codpos
               from procesos_nivel_socio_economico_domicilios_todos dl where dl.cuit = r.cuit and dl.tipo_domicilio = 'D' and dl.visible = 1) as legal
  where r.cliente = @cliente 
    and r.fecha_proceso = @fecha_proceso
    and r.visible = 1
    
/*
union all
  select  
        isnull(r.nombre,'')         as 'Razón Social',
    isnull(r.identificador, '') as 'Identificador',
    isnull(r.cuit,'')           as 'CUIT',
    '' as 'Rango desde', 
    '' as 'Rango hasta', 
'' as 'Teléfonos',
'' as 'Cod CIUU', 
'' as 'CIUU',
'' as 'Formulario',
'' as 'Cant. Empleados',
    isnull(d.domicilio,'')      as 'Domicilio', 
    isnull(d.prv_nombre,'')     as 'Provincia',
isnull(d.loc_nombre,'')     as 'Localidad',
isnull(d.codpos,'')         as 'CP',
d.tipo_domicilio as 'Tipo Domicilio',
/*
'' as 'Período',
'' as 'Banco',
'' as 'Situación',
'' as 'Deuda',
*/

'' as 'CUIL',
'' as 'Nombre_Empleado',
'' as 'Período',
'' as 'Sueldo',
'' as 'Teléfonos Empleado',
'' as 'Deudas'

 from procesos_nivel_socio_economico_domicilios d
 inner join procesos_nivel_socio_economico_respuesta r on r.id_padron = d.id_padron
 where d.cliente = @cliente 
   and d.fecha_proceso = @fecha_proceso
   */

    /*
    union all 
       select  
             isnull(r.nombre,'')         as 'Razón Social',
         isnull(r.identificador, '') as 'Identificador',
         isnull(r.cuit,'')           as 'CUIT',
         '' as 'Rango desde', 
         '' as 'Rango hasta', 
     '' as 'Teléfonos',
     '' as 'Cod CIUU', 
     '' as 'CIUU',
     '' as 'Formulario',
     '' as 'Cant. Empleados',
         '' as 'Domicilio', 
         '' as 'Provincia',
     '' as 'Localidad',
     '' as 'CP',
     '' as 'Tipo Domicilio',
     periodo as 'Período',
     banco as 'Banco',
     situacion as 'Situación',
     convert(varchar,deuda) as 'Deuda',
     '' as 'CUIL',
     '' as 'Nombre Empleado',
     '' as 'Período',
     '' as 'Sueldo',
     '' as 'Teléfonos Empleado'
            
       from procesos_nivel_socio_economico_bancos d
        inner join procesos_nivel_socio_economico_respuesta r on r.id_padron = d.id_padron
      where d.cliente = @cliente 
        and d.fecha_proceso = @fecha_proceso
        */

union all
 select  distinct
   iif(r.es_cliente=1,'SI','NO') as 'Es cliente de Macro?',
   r.score as 'Score',
   isnull(r.nombre,'')         as 'Razón Social',
      isnull(r.identificador, '') as 'Identificador',
      isnull(r.cuit,'')           as 'CUIT',
      '' as 'Rango desde', 
      '' as 'Rango hasta', 
   '' as 'Teléfonos',
   '' as 'Cod CIUU', 
   '' as 'CIUU',
   /*'' as 'Formulario',*/
   '' as 'Cant. Empleados',

   '' as 'Domicilio Fiscal',
   '' as 'Provincia',
   '' as 'Localidad',
   '' as 'CP',
  
   '' as 'Domicilio Legal',
   '' as 'Provincia',
   '' as 'Localidad',
   '' as 'CP',

   '' as 'Otros Domicilios', 

      /*'' as 'Domicilio', 
           '' as 'Provincia',
       '' as 'Localidad',
       '' as 'CP',
       '' as 'Tipo Domicilio',*/

   /*
    '' as 'Período',
    '' as 'Banco',
    '' as 'Situación',
    '' as 'Deuda',
    */

      cuil as 'CUIL', 
      nombre_empleado as 'Nombre Empleado',
      periodo as 'Período',
        convert(varchar,sueldo) as 'Sueldo',
   isnull(iif (len(telefono) > 32000, substring(telefono, 1, CHARINDEX ('/', telefono, 32000)),telefono),'') as 'Teléfonos Empleado',

   '' as 'Deudas'

   from procesos_nivel_socio_economico_empleados d
   inner join procesos_nivel_socio_economico_respuesta r on r.id_padron = d.id_padron and isnull(r.cant_empleados,0) > 0
  where d.cliente = @cliente 
    and d.fecha_proceso = @fecha_proceso
    and d.visible = 1

    order by 5, 6 desc, 13 desc, 18 --desc, 24 desc

 
   
END 
GO

Used By

No items found