ALTER TABLE fco_traslados_eps ADD estado tinyint NOT NULL DEFAULT 0
go
ALTER TABLE fco_traslados_eps DROP CONSTRAINT pk_fco_traslados_eps
GO
ALTER TABLE fco_traslados_eps ALTER COLUMN fecha_cambio smalldatetime NOT NULL 
GO
ALTER TABLE fco_traslados_eps ADD CONSTRAINT pk_fco_traslados_eps
PRIMARY KEY CLUSTERED (compania, trabajador, fecha_cambio)
GO
ALTER TABLE fco_traslados_fpo ADD estado tinyint NOT NULL DEFAULT 0
GO
ALTER TABLE fco_traslados_fpo DROP CONSTRAINT pk_fco_traslados_fpo
GO
ALTER TABLE fco_traslados_fpo ALTER COLUMN fecha_cambio smalldatetime NOT NULL 
GO
ALTER TABLE fco_traslados_fpo ADD CONSTRAINT pk_fco_traslados_fpo
PRIMARY KEY CLUSTERED (compania, trabajador, fecha_cambio)
GO
IF EXISTS (SELECT 1 FROM dbo.sysobjects WHERE ID = OBJECT_ID(N'[dbo].[sp_fco_alta_traslados_eps]') 
AND OBJECTPROPERTY(id, N'IsProcedure') = 1)
   DROP PROCEDURE dbo.sp_fco_alta_traslados_eps
GO
CREATE PROCEDURE dbo.sp_fco_alta_traslados_eps(
@i_compania		char(4),
@i_trabajador		char(10),
@i_EPS_actual		char(10),
@i_EPS_nueva		char(10),
@i_fecha_cambio		smalldatetime
)
AS
BEGIN
DECLARE
@i_llave_foranea	TINYINT
	BEGIN TRANSACTION
	INSERT INTO fco_traslados_eps 
    (compania, trabajador, EPS_actual, EPS_nueva, fecha_cambio, estado)
    VALUES 
    (@i_compania,@i_trabajador, @i_EPS_actual, @i_EPS_nueva, @i_fecha_cambio, 0)
	IF @@error <> 0
	  BEGIN
	    ROLLBACK TRANSACTION 
	    RAISERROR 206800 'Error al tratar de insertar en la tabla [fco_traslados_eps]'  
	    RETURN 
	  END
	ELSE
	BEGIN
  		COMMIT TRANSACTION 
	END
END
GO
GRANT EXECUTE ON sp_fco_alta_traslados_eps TO Public
GO
IF EXISTS (SELECT 1 FROM dbo.sysobjects WHERE ID = OBJECT_ID(N'[dbo].[sp_fco_alta_traslados_fpo]') 
AND OBJECTPROPERTY(id, N'IsProcedure') = 1)
   DROP PROCEDURE dbo.sp_fco_alta_traslados_fpo
GO
CREATE PROCEDURE dbo.sp_fco_alta_traslados_fpo(
@i_compania		char(4),
@i_trabajador		char(10),
@i_fpo_actual		char(10),
@i_fpo_nueva		char(10),
@i_fecha_cambio		smalldatetime
)
AS
BEGIN
	BEGIN TRANSACTION
	INSERT INTO fco_traslados_fpo 
    (compania, trabajador, FPO_actual, FPO_nueva, fecha_cambio, estado)
    VALUES 
	(@i_compania, @i_trabajador, @i_fpo_actual, @i_fpo_nueva, @i_fecha_cambio, 0)
	IF @@error <> 0
	  BEGIN
	    ROLLBACK TRANSACTION 
	    RAISERROR 206800 'Error al tratar de insertar en la tabla [fco_traslados_fpo]'  
	    RETURN 
	  END
	ELSE
	BEGIN
  		COMMIT TRANSACTION 
	END
END
GO
GRANT EXECUTE ON sp_fco_alta_traslados_fpo TO Public
GO
IF EXISTS (SELECT 1 FROM dbo.sysobjects WHERE ID = OBJECT_ID(N'[dbo].[sp_fco_baja_traslados_eps]') 
AND OBJECTPROPERTY(id, N'IsProcedure') = 1)
   DROP PROCEDURE dbo.sp_fco_baja_traslados_eps
GO
CREATE PROCEDURE dbo.sp_fco_baja_traslados_eps(
@i_compania		char(4),
@i_trabajador	char(10),
@pdt_fecha smalldatetime
)
AS
BEGIN
	BEGIN TRANSACTION
	DELETE  fco_traslados_eps
		WHERE compania = @i_compania
		AND trabajador = @i_trabajador
        AND fecha_cambio = @pdt_fecha
	IF @@error <> 0
	   BEGIN
		ROLLBACK TRANSACTION
		RETURN
	END
	COMMIT TRANSACTION 
END 
GO
GRANT EXECUTE ON sp_fco_baja_traslados_eps TO Public
GO
IF EXISTS (SELECT 1 FROM dbo.sysobjects WHERE ID = OBJECT_ID(N'[dbo].[sp_fco_baja_traslados_fpo]') 
AND OBJECTPROPERTY(id, N'IsProcedure') = 1)
   DROP PROCEDURE dbo.sp_fco_baja_traslados_fpo
GO
CREATE PROCEDURE dbo.sp_fco_baja_traslados_fpo(
@i_compania		char(4),
@i_trabajador		char(10),
@pdt_fecha smalldatetime
)
AS
BEGIN
	BEGIN TRANSACTION
	DELETE  fco_traslados_fpo
		WHERE compania = @i_compania
		AND trabajador = @i_trabajador
        AND fecha_cambio = @pdt_fecha
	IF @@error <> 0
	   BEGIN
		ROLLBACK TRANSACTION
		RETURN
	END
	COMMIT TRANSACTION 
END 
GO
GRANT EXECUTE ON sp_fco_baja_traslados_fpo TO Public
GO
IF EXISTS (SELECT 1 FROM dbo.sysobjects WHERE ID = OBJECT_ID(N'[dbo].[sp_fco_cambio_traslados_eps]') 
AND OBJECTPROPERTY(id, N'IsProcedure') = 1)
   DROP PROCEDURE dbo.sp_fco_cambio_traslados_eps
GO
CREATE PROCEDURE dbo.sp_fco_cambio_traslados_eps(
@i_compania		char(4),
@i_trabajador		char(10),
@i_EPS_actual		char(10),
@i_EPS_nueva		char(10),
@i_fecha_cambio		smalldatetime)
AS
BEGIN
	BEGIN TRANSACTION
	UPDATE fco_traslados_eps
	SET 
        EPS_actual = @i_EPS_actual,	
    	EPS_nueva   = @i_EPS_nueva,
        estado = 2
	WHERE compania = @i_compania
	AND trabajador = @i_trabajador
	AND fecha_cambio  = @i_fecha_cambio
	
	IF @@error <> 0
	BEGIN
		ROLLBACK TRANSACTION
		RETURN
	END
	COMMIT TRANSACTION
END 

GO
GRANT EXECUTE ON sp_fco_cambio_traslados_eps TO Public
GO
IF EXISTS (SELECT 1 FROM dbo.sysobjects WHERE ID = OBJECT_ID(N'[dbo].[sp_fco_cambio_traslados_fpo]') 
AND OBJECTPROPERTY(id, N'IsProcedure') = 1)
   DROP PROCEDURE dbo.sp_fco_cambio_traslados_fpo
GO
CREATE PROCEDURE dbo.sp_fco_cambio_traslados_fpo(
@i_compania		char(4),
@i_trabajador		char(10),
@i_fpo_actual		char(10),
@i_fpo_nueva		char(10),
@i_fecha_cambio		smalldatetime)
AS
BEGIN
	BEGIN TRANSACTION
	UPDATE fco_traslados_fpo
	SET fpo_actual = @i_fpo_actual,	
	    fpo_nueva   = @i_fpo_nueva,
        estado = 2
	WHERE compania = @i_compania
	AND trabajador = @i_trabajador
	AND fecha_cambio  = @i_fecha_cambio
	IF @@error <> 0
	BEGIN
		ROLLBACK TRANSACTION
		RETURN
	END
	COMMIT TRANSACTION
END 
GO
GRANT EXECUTE ON sp_fco_cambio_traslados_fpo TO Public
GO
