SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO

IF EXISTS (SELECT * FROM sys.objects WHERE object_id = OBJECT_ID(N'WMAN_EnlaceDatos_GetInfo') )
DROP PROCEDURE WMAN_EnlaceDatos_GetInfo
GO

CREATE PROCEDURE WMAN_EnlaceDatos_GetInfo
	@id_enla_datos  INT,
	@vEliminado BIT
AS
BEGIN

	SELECT EN.id_enla_datos, EN.id_datos_origen, EN.id_datos_destino
	FROM Enlace_Datos EN
	INNER JOIN Datos DA ON EN.id_datos_origen = DA.id_datos
	INNER JOIN Datos DAA ON EN.id_datos_destino = DAA.id_datos

END
GO

---------------------------------------------------------------------------------
---------------------------------------------------------------------------------

SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO

IF EXISTS (SELECT * FROM sys.objects WHERE object_id = OBJECT_ID(N'WMAN_EnlaceDatos_RepInfo') )
DROP PROCEDURE WMAN_EnlaceDatos_RepInfo
GO

CREATE PROCEDURE WMAN_EnlaceDatos_RepInfo
		@Eliminado BIT
AS
BEGIN

	SELECT EN.id_enla_datos, EN.id_datos_origen, DA.descripcion descripcion_origen, EN.id_datos_destino, DAA.descripcion descripcion_destino
	FROM Enlace_Datos EN
	INNER JOIN Datos DA ON EN.id_datos_origen = DA.id_datos
	INNER JOIN Datos DAA ON EN.id_datos_destino = DAA.id_datos

END
GO

---------------------------------------------------------------------------------
---------------------------------------------------------------------------------

SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO

IF EXISTS (SELECT * FROM sys.objects WHERE object_id = OBJECT_ID(N'WMAN_EnlaceDatos_PutInfo') )
DROP PROCEDURE WMAN_EnlaceDatos_PutInfo
GO

CREATE PROCEDURE WMAN_EnlaceDatos_PutInfo
	@id_enla_datos INT,
	@id_datos_origen INT,
	@id_datos_destino INT,
	@eliminado INT
AS
BEGIN
	DECLARE @MensajeError VARCHAR(255) = '',
			@cbase_datos nVARCHAR(100),
			@cbase_datos_O nVARCHAR(100),
			@cserver nVARCHAR(100),
			@id_modulo_origen nVARCHAR(25),
			@id_modulo_destino nVARCHAR(25),
			@sql nVARCHAR(4000)

	IF @eliminado = 0
	BEGIN
	
			IF (@id_datos_origen = @id_datos_destino)
			BEGIN
				SET @MensajeError = 'ERR_EEM_ID_IGU'
				--ID iguales
				GOTO ERROR
			END
			
			IF EXISTS(select id_datos_origen, id_datos_destino from Enlace_Datos where id_datos_origen=@id_datos_origen AND id_datos_destino=@id_datos_destino)
			BEGIN
				SET @MensajeError = 'ERR_EEM_ID_DUP'
				--ID repetidos
				GOTO ERROR
			END

		IF @id_enla_datos = 0
		BEGIN
			-- Crear
		
			INSERT INTO Enlace_Datos
			(
				id_datos_origen, id_datos_destino
			)
			VALUES
			(
				@id_datos_origen, @id_datos_destino
			)

			SET @id_enla_datos = @@IDENTITY

		END
		ELSE
		BEGIN
		
			-- Editar
		
			UPDATE Enlace_Datos
			SET id_datos_origen = @id_datos_origen,
			    id_datos_destino = @id_datos_destino
			WHERE id_enla_datos = @id_enla_datos
			
		END

	END
	ELSE
	BEGIN

			DELETE FROM Enlace_Datos WHERE id_enla_datos = @id_enla_datos
		
	END

	SELECT @id_enla_datos AS Id
	
	RETURN

	ERROR:
		RAISERROR (@MensajeError, 16, 1)

END
GO
