Description
Properties
| Name | Value |
|---|---|
| ANSI Nulls ON | True |
| Quoted Identifier ON | True |
| Encrypted | False |
| Execute As | |
| Assembly |
Parameters
13| Name | Data Type | Length | Description |
|---|---|---|---|
| @p_cuit | varchar | 13 | |
| @p_codpos | varchar | 10 | |
| @p_domicilio | varchar | 70 | |
| @p_loc_nombre | varchar | 50 | |
| @p_prv_codigo | varchar | 2 | |
| @p_prv_nombre | varchar | 50 | |
| @p_tipo_domicilio | varchar | 1 | |
| @calle | varchar | 150 | |
| @alturacalle | varchar | 50 | |
| @piso | varchar | 10 | |
| @depto | varchar | 10 | |
| @xlong | varchar | 20 | |
| @ylat | varchar | 20 |
SQL Script
Copy
SET QUOTED_IDENTIFIER, ANSI_NULLS ON
GO
/*
exec insertar_domicilio_persona_fisica_afip '20177260909','1426','AV OLLEROS 1878 P 6 B','CABA',0,'CABA','O','AV JUAN JOSE OLLEROS','1878','06','B'
exec insertar_domicilio_persona_fisica_afip_copia '20177260909','1426','11 DE SEPT. DE 1 1437 P4','CABA',0,'CABA','O'
exec insertar_domicilio_persona_fisica_afip_copia '20177260909','1426','11 DE SEPT. DE 1 1437 P4','CIUDAD AUTONOMA BUENOS AIRES',0,'CIUDAD AUTONOMA BUENOS AIRES','F','11 DE SEPT. DE 1888','1437','04'
select * from domicilios_todos where cuit='20177260909'
delete domicilios_todos where id_domicilio in (158074196,155791983)
delete domicilios_todos where cuit='20177260909' and tipo_domicilio in ('L','F')
*/
/*
alter table domicilios_todos add geo_long varchar(20) null
alter table domicilios_todos add geo_lat varchar(20) null
*/
CREATE OR ALTER PROCEDURE dbo.insertar_domicilio_persona_fisica_afip
/*ALTER PROCEDURE [dbo].[insertar_domicilio_afip]*/
@p_cuit varchar(13),
@p_codpos varchar(10),
@p_domicilio varchar(70),
@p_loc_nombre varchar(50),
@p_prv_codigo varchar(2),
@p_prv_nombre varchar(50),
@p_tipo_domicilio varchar(1),
@calle varchar(150) = null,
@alturacalle varchar(50) = null,
@piso varchar(10) = null,
@depto varchar(10) = null,
@xlong varchar(20) = null,
@ylat varchar(20) = null
AS
BEGIN
SET NOCOUNT ON;
/*
if (@p_cuit='20177260909')
begin
delete domicilios_todos where cuit=@p_cuit and tipo_domicilio in ('L','F')
end
*/
IF ((select COUNT (*) from domicilios_todos
where (cuit = @p_cuit)
and (isnull(codpos,'') = isnull(@p_codpos,''))
and (isnull(domicilio,'') = isnull(@p_domicilio,''))
and (isnull(loc_nombre,'') = isnull(@p_loc_nombre,''))
and (isnull(prv_codigo,'') = isnull(@p_prv_codigo,''))
and (isnull(prv_nombre,'') = isnull(@p_prv_nombre,''))
and (isnull(tipo_domicilio,'') = isnull(@p_tipo_domicilio,''))
and (visible = 1)) = 0)
BEGIN
begin try
IF ((@p_tipo_domicilio = 'D')
and ((select COUNT (*) from domicilios_todos
where (cuit = @p_cuit)
and (tipo_domicilio = 'D')
and (visible = 1)) > 0))
BEGIN
SET @p_tipo_domicilio = 'O'
END
IF (@p_tipo_domicilio != 'O') -- Cambiar tipos repetidos
BEGIN
UPDATE domicilios_todos
SET
tipo_domicilio = 'O',
modified = GETDATE()/*,calle = @calle,
altura=@alturacalle,
piso=@piso,
depto=@depto,
geo_long=@xlong,
geo_lat=@ylat */
-- 18/01/2022 no esta bien que actalice esos campos si lo unico que se quiere es pasa al Tipo OTRO los que estan en la tabla
WHERE (cuit = @p_cuit) AND (tipo_domicilio = @p_tipo_domicilio) and (visible = 1)
END
IF ((@p_tipo_domicilio != 'O')
OR ((@p_tipo_domicilio = 'O') and ((select COUNT (*) from domicilios_todos
where (cuit = @p_cuit)
and (isnull(codpos,'') = isnull(@p_codpos,''))
and (isnull(domicilio,'') = isnull(@p_domicilio,''))
and (isnull(loc_nombre,'') = isnull(@p_loc_nombre,''))
and (isnull(prv_codigo,'') = isnull(@p_prv_codigo,''))
and (isnull(prv_nombre,'') = isnull(@p_prv_nombre,''))
and (tipo_domicilio = 'O')
and (visible = 1)) = 0)))
BEGIN
INSERT INTO domicilios_todos
(codpos, cuit, domicilio, loc_nombre,
prv_codigo, prv_nombre,
pai_codigo, pai_nombre,
tipo_domicilio, created, visible,nombre_fuente,
calle,altura,piso,depto,geo_long,geo_lat)
VALUES
(@p_codpos, @p_cuit, @p_domicilio, @p_loc_nombre,
@p_prv_codigo, @p_prv_nombre,
'54','ARGENTINA',
@p_tipo_domicilio, GETDATE(), 1,'AFIP',
@calle,@alturacalle,@piso,@depto,
@xlong,@ylat)
END
select 'ok' as ok -- Para verificar que se pudo ejecutar el insert
IF ((@p_tipo_domicilio != 'O')
OR ((@p_tipo_domicilio = 'O') and ((select COUNT (*) from domicilios_todos
where (cuit = @p_cuit)
and (isnull(codpos,'') = isnull(@p_codpos,''))
and (isnull(domicilio,'') = isnull(@p_domicilio,''))
and (isnull(loc_nombre,'') = isnull(@p_loc_nombre,''))
and (isnull(prv_codigo,'') = isnull(@p_prv_codigo,''))
and (isnull(prv_nombre,'') = isnull(@p_prv_nombre,''))
and (tipo_domicilio = 'O')
and (visible = 1)) > 0)))
BEGIN
update domicilios_todos
set nombre_fuente = 'AFIP', modified = getdate(),calle = @calle,
altura=@alturacalle,
piso=@piso,
depto=@depto,
geo_long=@xlong,
geo_lat=@ylat
where (cuit = @p_cuit)
and (isnull(codpos,'') = isnull(@p_codpos,''))
and (isnull(domicilio,'') = isnull(@p_domicilio,''))
and (isnull(loc_nombre,'') = isnull(@p_loc_nombre,''))
and (isnull(prv_codigo,'') = isnull(@p_prv_codigo,''))
and (isnull(prv_nombre,'') = isnull(@p_prv_nombre,''))
and (isnull(tipo_domicilio,'') = isnull(@p_tipo_domicilio,''))
and (visible = 1)
--AND nombre_fuente != 'AFIP' /* 18/01/2022 No se por que tenia esta condicion, Se la saque porque sino no completaba calle altura piso depto de los que se habian grabado antes de AFIP sin la apertura
END
end try
begin catch
select ERROR_MESSAGE() as error
end catch
END
else
BEGIN
update domicilios_todos
set nombre_fuente = 'AFIP', modified = getdate(),calle = @calle,
altura=@alturacalle,
piso=@piso,
depto=@depto,
geo_long=@xlong,
geo_lat=@ylat
where (cuit = @p_cuit)
and (isnull(codpos,'') = isnull(@p_codpos,''))
and (isnull(domicilio,'') = isnull(@p_domicilio,''))
and (isnull(loc_nombre,'') = isnull(@p_loc_nombre,''))
and (isnull(prv_codigo,'') = isnull(@p_prv_codigo,''))
and (isnull(prv_nombre,'') = isnull(@p_prv_nombre,''))
and (isnull(tipo_domicilio,'') = isnull(@p_tipo_domicilio,''))
and (visible = 1)
--AND nombre_fuente != 'AFIP' /* 18/01/2022 No se por que tenia esta condicion, Se la saque porque sino no completaba calle altura piso depto de los que se habian grabado antes de AFIP sin la apertura
select 'ok' as ok -- Para verificar que se pudo ejecutar el insert
END
END
GO
GO
/*
exec insertar_domicilio_persona_fisica_afip '20177260909','1426','AV OLLEROS 1878 P 6 B','CABA',0,'CABA','O','AV JUAN JOSE OLLEROS','1878','06','B'
exec insertar_domicilio_persona_fisica_afip_copia '20177260909','1426','11 DE SEPT. DE 1 1437 P4','CABA',0,'CABA','O'
exec insertar_domicilio_persona_fisica_afip_copia '20177260909','1426','11 DE SEPT. DE 1 1437 P4','CIUDAD AUTONOMA BUENOS AIRES',0,'CIUDAD AUTONOMA BUENOS AIRES','F','11 DE SEPT. DE 1888','1437','04'
select * from domicilios_todos where cuit='20177260909'
delete domicilios_todos where id_domicilio in (158074196,155791983)
delete domicilios_todos where cuit='20177260909' and tipo_domicilio in ('L','F')
*/
/*
alter table domicilios_todos add geo_long varchar(20) null
alter table domicilios_todos add geo_lat varchar(20) null
*/
CREATE OR ALTER PROCEDURE dbo.insertar_domicilio_persona_fisica_afip
/*ALTER PROCEDURE [dbo].[insertar_domicilio_afip]*/
@p_cuit varchar(13),
@p_codpos varchar(10),
@p_domicilio varchar(70),
@p_loc_nombre varchar(50),
@p_prv_codigo varchar(2),
@p_prv_nombre varchar(50),
@p_tipo_domicilio varchar(1),
@calle varchar(150) = null,
@alturacalle varchar(50) = null,
@piso varchar(10) = null,
@depto varchar(10) = null,
@xlong varchar(20) = null,
@ylat varchar(20) = null
AS
BEGIN
SET NOCOUNT ON;
/*
if (@p_cuit='20177260909')
begin
delete domicilios_todos where cuit=@p_cuit and tipo_domicilio in ('L','F')
end
*/
IF ((select COUNT (*) from domicilios_todos
where (cuit = @p_cuit)
and (isnull(codpos,'') = isnull(@p_codpos,''))
and (isnull(domicilio,'') = isnull(@p_domicilio,''))
and (isnull(loc_nombre,'') = isnull(@p_loc_nombre,''))
and (isnull(prv_codigo,'') = isnull(@p_prv_codigo,''))
and (isnull(prv_nombre,'') = isnull(@p_prv_nombre,''))
and (isnull(tipo_domicilio,'') = isnull(@p_tipo_domicilio,''))
and (visible = 1)) = 0)
BEGIN
begin try
IF ((@p_tipo_domicilio = 'D')
and ((select COUNT (*) from domicilios_todos
where (cuit = @p_cuit)
and (tipo_domicilio = 'D')
and (visible = 1)) > 0))
BEGIN
SET @p_tipo_domicilio = 'O'
END
IF (@p_tipo_domicilio != 'O') -- Cambiar tipos repetidos
BEGIN
UPDATE domicilios_todos
SET
tipo_domicilio = 'O',
modified = GETDATE()/*,calle = @calle,
altura=@alturacalle,
piso=@piso,
depto=@depto,
geo_long=@xlong,
geo_lat=@ylat */
-- 18/01/2022 no esta bien que actalice esos campos si lo unico que se quiere es pasa al Tipo OTRO los que estan en la tabla
WHERE (cuit = @p_cuit) AND (tipo_domicilio = @p_tipo_domicilio) and (visible = 1)
END
IF ((@p_tipo_domicilio != 'O')
OR ((@p_tipo_domicilio = 'O') and ((select COUNT (*) from domicilios_todos
where (cuit = @p_cuit)
and (isnull(codpos,'') = isnull(@p_codpos,''))
and (isnull(domicilio,'') = isnull(@p_domicilio,''))
and (isnull(loc_nombre,'') = isnull(@p_loc_nombre,''))
and (isnull(prv_codigo,'') = isnull(@p_prv_codigo,''))
and (isnull(prv_nombre,'') = isnull(@p_prv_nombre,''))
and (tipo_domicilio = 'O')
and (visible = 1)) = 0)))
BEGIN
INSERT INTO domicilios_todos
(codpos, cuit, domicilio, loc_nombre,
prv_codigo, prv_nombre,
pai_codigo, pai_nombre,
tipo_domicilio, created, visible,nombre_fuente,
calle,altura,piso,depto,geo_long,geo_lat)
VALUES
(@p_codpos, @p_cuit, @p_domicilio, @p_loc_nombre,
@p_prv_codigo, @p_prv_nombre,
'54','ARGENTINA',
@p_tipo_domicilio, GETDATE(), 1,'AFIP',
@calle,@alturacalle,@piso,@depto,
@xlong,@ylat)
END
select 'ok' as ok -- Para verificar que se pudo ejecutar el insert
IF ((@p_tipo_domicilio != 'O')
OR ((@p_tipo_domicilio = 'O') and ((select COUNT (*) from domicilios_todos
where (cuit = @p_cuit)
and (isnull(codpos,'') = isnull(@p_codpos,''))
and (isnull(domicilio,'') = isnull(@p_domicilio,''))
and (isnull(loc_nombre,'') = isnull(@p_loc_nombre,''))
and (isnull(prv_codigo,'') = isnull(@p_prv_codigo,''))
and (isnull(prv_nombre,'') = isnull(@p_prv_nombre,''))
and (tipo_domicilio = 'O')
and (visible = 1)) > 0)))
BEGIN
update domicilios_todos
set nombre_fuente = 'AFIP', modified = getdate(),calle = @calle,
altura=@alturacalle,
piso=@piso,
depto=@depto,
geo_long=@xlong,
geo_lat=@ylat
where (cuit = @p_cuit)
and (isnull(codpos,'') = isnull(@p_codpos,''))
and (isnull(domicilio,'') = isnull(@p_domicilio,''))
and (isnull(loc_nombre,'') = isnull(@p_loc_nombre,''))
and (isnull(prv_codigo,'') = isnull(@p_prv_codigo,''))
and (isnull(prv_nombre,'') = isnull(@p_prv_nombre,''))
and (isnull(tipo_domicilio,'') = isnull(@p_tipo_domicilio,''))
and (visible = 1)
--AND nombre_fuente != 'AFIP' /* 18/01/2022 No se por que tenia esta condicion, Se la saque porque sino no completaba calle altura piso depto de los que se habian grabado antes de AFIP sin la apertura
END
end try
begin catch
select ERROR_MESSAGE() as error
end catch
END
else
BEGIN
update domicilios_todos
set nombre_fuente = 'AFIP', modified = getdate(),calle = @calle,
altura=@alturacalle,
piso=@piso,
depto=@depto,
geo_long=@xlong,
geo_lat=@ylat
where (cuit = @p_cuit)
and (isnull(codpos,'') = isnull(@p_codpos,''))
and (isnull(domicilio,'') = isnull(@p_domicilio,''))
and (isnull(loc_nombre,'') = isnull(@p_loc_nombre,''))
and (isnull(prv_codigo,'') = isnull(@p_prv_codigo,''))
and (isnull(prv_nombre,'') = isnull(@p_prv_nombre,''))
and (isnull(tipo_domicilio,'') = isnull(@p_tipo_domicilio,''))
and (visible = 1)
--AND nombre_fuente != 'AFIP' /* 18/01/2022 No se por que tenia esta condicion, Se la saque porque sino no completaba calle altura piso depto de los que se habian grabado antes de AFIP sin la apertura
select 'ok' as ok -- Para verificar que se pudo ejecutar el insert
END
END
GO
Depends On
1Used By
No items found