create procedure sistema.sp_guardarSolicitudRestablecimiento
@txtUsername varchar(50),
@txtEmail nvarchar(300),
@txtContrasenia nvarchar(300),
@dbResponse varchar(300) output,
@dbRequest int output,
@dbNombreCompleto varchar(600) output
as
begin
	set nocount on;
	declare @dbError varchar(300);
	declare @dbCnt int,@dbId int;
	declare @dbEmail nvarchar(300);
	begin tran guardarSolicitud
	begin try
		select @dbCnt = COUNT(*) from sistema.datos_usuarios where username = @txtUsername and estado = 1;

		if @dbCnt > 0
			begin
				select top(1) @dbId = id,@dbEmail = email,@dbNombreCompleto = (nombres+' '+apellidos) from sistema.datos_usuarios where username = @txtUsername and estado = 1;

				if @dbEmail = @txtEmail
					begin
						update sistema.datos_restablecimientosContrasenia set estado = 0 where idUsuario = @dbId and estado = 1 and fechaUso is null;
						insert into sistema.datos_restablecimientosContrasenia(idUsuario,email,contrasenia) values(@dbId,@txtEmail,@txtContrasenia);
						select @dbRequest = SCOPE_IDENTITY();
						update sistema.datos_usuarios set cambioContrasenia = 1 where id = @dbId;
					end
				else
					begin
						set @dbError = 'correoIncorrecto';
					end
			end
		else
			begin
				set @dbError = 'noEncontrado';
			end

		set @dbResponse = ISNULL(@dbError,'success');
		commit tran guardarSolicitud
	end try
	begin catch
		SET @dbResponse = 'Ocurrió el siguiente error: '+ERROR_MESSAGE()+', en la línea '+ CONVERT ( NVARCHAR ( 255 ), ERROR_LINE( ) );
		rollback tran guardarSolicitud
	end catch
end