Sei sulla pagina 1di 3

set ANSI_NULLS ON set QUOTED_IDENTIFIER ON go

ALTER PROCEDURE [dbo].[mod_Enf_Domicilios_BuscarDomicilioAlta] ( @Prs_ID bigint, @Dom_SUCA varchar(20), @Dom_CMUN varchar(5), @Dom_Calle varchar(80), @Dom_Numero varchar(15), @Dom_CP varchar(5), @Dom_Resto varchar(40) ) AS SET TRANSACTION ISOLATION LEVEL READ UNCOMMITTED SET ANSI_NULLS ON SET QUOTED_IDENTIFIER ON DECLARE @Prv_ID bigint DECLARE @Mun_ID bigint DECLARE @Mun_Codigo varchar(3) IF @Dom_SUCA IS NOT NULL SELECT @Mun_Codigo = SUBSTRING(@Dom_SUCA, 1, 3) ELSE SELECT @Mun_Codigo = SUBSTRING(@Dom_CMUN, 3, 3) SELECT @Prv_ID = Prv_ID, @Mun_ID = Mun_ID FROM Callejero.dbo.Cll_Municipios (NO LOCK) WHERE [Prv_ID] = 28 AND [Mun_Codigo] = @Mun_Codigo SELECT @Prv_ID AS Prv_ID, @Mun_ID AS Mun_ID DECLARE @Via_ID bigint DECLARE @Via_CSUCA varchar(5) SELECT @Via_CSUCA = SUBSTRING(@Dom_SUCA, 4, 5) SELECT @Via_ID = Via_ID FROM Callejero.dbo.Cll_Vias (NOLOCK) WHERE [Mun_ID] = @ Mun_ID AND [Via_CSUCA] = @Via_CSUCA IF @Via_ID IS NULL SELECT @Via_ID = Via_ID FROM Callejero.dbo.Cll_Vias (NOLOCK) WHERE [Mun _ID] = @Mun_ID AND [Via_Calle] = @Dom_Calle SELECT @Via_ID AS Via_ID DECLARE @Cll_ID bigint DECLARE @Cll_Numero varchar(6) SELECT @Cll_Numero = SUBSTRING(@Dom_SUCA, 10, 6) IF @Cll_Numero IS NULL SELECT @Cll_Numero = @Dom_Numero SELECT @Cll_ID = Cll_ID FROM Callejero.dbo.Cll_Callejero (NOLOCK) WHERE [Via_ID] = @Via_ID AND [Cll_Numero] = @Cll_Numero IF @Cll_ID IS NULL BEGIN DECLARE @Cll_Numero_Cop varchar(8) SELECT @Cll_Numero_Cop = @Cll_Numero WHILE SUBSTRING(@Cll_Numero_Cop,1,1) = '0' AND LEN(@Cll_Numero_Cop) > 1 BEGIN

SELECT @Cll_Numero_Cop = SUBSTRING(@Cll_Numero_Cop, 2, 20) END SELECT @Cll_ID = Cll_ID FROM Callejero.dbo.Cll_Callejero (NOLOCK) WHERE [Via_ID] = @Via_ID AND [Cll_Numero] = @Cll_Numero_Cop END SELECT @Cll_ID AS Cll_ID, @Cll_Numero AS Cll_Numero, @Cll_Numero_Cop AS Cll_Nume ro_Cop DECLARE DECLARE DECLARE DECLARE DECLARE DECLARE DECLARE @TNum_ID bigint @TVial_ID bigint @Clf_ID bigint @Are_ID bigint @Dis_ID bigint @Zon_ID bigint @Dom_ID bigint

SELECT @Dom_ID = NULL IF @Cll_ID IS NOT NULL BEGIN SELECT @TVial_ID = TVial_ID, @TNum_ID = TNum_ID, @Clf_ID = Clf_ID, @Are_ ID = Are_ID, @Dis_ID = Dis_ID, @Zon_ID = Zon_ID FROM Callejero.dbo.vis_Cll_Calle jero (NOLOCK) WHERE Cll_ID = @Cll_ID SELECT TOP 1 @Dom_ID = Dom_ID FROM Enf_Domicilios (NOLOCK) WHERE Prs_ID = @Prs_ID AND Cll_ID = @Cll_ID END IF @Dom_ID IS NULL BEGIN SELECT TOP 1 @Dom_ID = Dom_ID FROM Enf_Domicilios (NOLOCK) WHERE Prs_ID = @Prs_ID AND Via_ID = @Via_ID AND Dom_Numero = @Dom_Numero END IF @Dom_ID IS NULL BEGIN SELECT TOP 1 @Dom_ID = Dom_ID FROM Enf_Domicilios (NOLOCK) WHERE Prs_ID = @Prs_ID AND Dom_Calle = @Dom_Calle AND Dom_Numero = @Dom_Numero END IF @Dom_ID IS NULL BEGIN WHILE LEN(@Dom_Numero) < 6 BEGIN SELECT @Dom_Numero = '0' + @Dom_Numero END SELECT TOP 1 @Dom_ID = Dom_ID FROM Enf_Domicilios (NOLOCK) WHERE Prs_ID = @Prs_ID AND Dom_Calle = @Dom_Calle AND Dom_Numero = @Dom_Numero END IF @Dom_ID IS NULL BEGIN SELECT @Dom_ID = MAX(Dom_ID) + 1 FROM Enf_Domicilios (NOLOCK) EXEC prc_Enf_Domicilios_Alta @Dom_ID, 1, @Prs_ID, @Via_ID, @Cll_ID, @Zon _ID, NULL, @Prv_ID, @Mun_ID, @TVial_ID, @Dom_Calle, @TNum_ID, @Dom_Numero, @Dom_ CP, @Dom_Resto, @Clf_ID, @Dis_ID, @Are_ID, NULL, @Dom_Resto END ELSE BEGIN UPDATE Enf_Domicilios SET Are_ID = @Are_ID, Dis_ID = @Dis_ID, Zon_ID = @

Zon_ID, Mun_ID = @Mun_ID, TNum_ID = @TNum_ID, TVial_ID = @TVial_ID, Clf_ID = @Cl f_ID, Cll_ID = @Cll_ID, Via_ID = @Via_ID WHERE Dom_ID = @Dom_ID END SELECT @Dom_ID AS Dom_ID

Potrebbero piacerti anche