alter procedure rrhh.sp_guardarMovimientoEmpleado
@numId int,
@numTipoPlanilla int,
@txtCodempleado varchar(15),
@txtNombreCompleto varchar(350),
@numSucursal int,
@numProyecto int,
@numDepartamento int,
@numPuesto int,
@numSucursalMovimiento int,
@numProyectoMovimiento int,
@numOficina int,
@numTipoMovimiento int,
@txtFechaEfectiva date,
@txtFechaRetorno date,
@txtComentarios text,
@numUsuario int,
@numSeguimiento int,
@dbRespuesta varchar(300) output,
@dbId int output
as
begin
	set nocount on;
	declare @dbError varchar(300);
	declare @dbSucursal int,@dbProyecto int,@dbSucursalMovimiento int,@dbProyectoMovimiento int;

	select top(1) @dbSucursal = codsucursal,@dbProyecto = codproyecto FROM [negocios_a].dbo.gen_empleado where codempleado = @txtCodempleado;

	if @dbSucursal = @numSucursalMovimiento and @dbProyecto = @numProyectoMovimiento set @dbError = 'ubicacionAsignada';

	select top(1) @dbSucursalMovimiento = codsucursalMovimiento, @dbProyectoMovimiento = codproyectoMovimiento FROM rrhh.datos_movimientosEmpleados where estado = 1 and codempleado = @txtCodempleado and id != @numId ORDER BY fechaEfectiva DESC;

	if @dbSucursalMovimiento is not null and @dbError is null
		begin
			set @dbSucursal = @dbSucursalMovimiento;
			set @dbProyecto = @dbProyectoMovimiento;
		end
		 
	if @dbSucursal = @numSucursalMovimiento and @dbProyecto = @numProyectoMovimiento set @dbError = 'mismaUbicacion';

	if @numId = 0 and @dbError is null
		begin
			insert into rrhh.datos_movimientosEmpleados(codtipoplanilla,codempleado,nombreCompleto,codsucursal,codproyecto,coddepartamento,codpuesto,codsucursalMovimiento,codproyectoMovimiento,idOficina,idTipoMovimiento,fechaEfectiva,fechaRetorno,comentarios,idUsuario,idSeguimiento) values(@numTipoPlanilla,@txtCodempleado,@txtNombreCompleto,@numSucursal,@numProyecto,@numDepartamento,@numPuesto,@numSucursalMovimiento,@numProyectoMovimiento,@numOficina,@numTipoMovimiento,@txtFechaEfectiva,@txtFechaRetorno,@txtComentarios,@numUsuario,@numSeguimiento);
			select @dbId = SCOPE_IDENTITY();
		end
	else if @numId > 0 and @dbError is null
		begin
			set @dbId = @numId;
			update rrhh.datos_movimientosEmpleados set codsucursalMovimiento = @numSucursalMovimiento,codproyectoMovimiento = @numProyectoMovimiento,idOficina = @numOficina,idTipoMovimiento = @numTipoMovimiento,fechaEfectiva = @txtFechaEfectiva,fechaRetorno = @txtFechaRetorno,comentarios = @txtComentarios where id = @dbId;
		end

	update rrhh.datos_movimientosEmpleados set estado = 3 where estado = 1 and codempleado = @txtCodempleado and id != @dbId;

	set @dbRespuesta = isnull(@dbError,'success');
end