Option A is incorrect. 'has' is in the present perfect tense and not future perfect tense. Thus, using it will make the tense of the sentence inconsistent.
Option B is incorrect. 'will' is in the simple future tense and not future perfect tense. Thus, using it will make the tense of the sentence inconsistent.
Option C is incorrect. 'have' is in the present perfect tense and not future perfect tense. Thus, using it will make the tense of the sentence inconsistent.
Option D is correct. 'will have' is in the future perfect tense. Thus, it has the correct tense and is the correct answer.