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
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
Depends On
4Used By
No items found