"When will you have this done?" is accepted now, nothing is wrong with it.
I don't like the English translation for this. I prefer "When will you do this?" or "When will you complete this?"
'When will you do this?' is an acceptable translation, depending on context, as always. The verb form is perfective in Ukrainian (the use of з confirms this), which can be translated into either simple or perfect tense in English (broadly speaking).
'Зробите' can also be translated as make/have made. So other possibilities include 'when will you make this/it?' and 'when will you have made this/it?'.
'When will you have completed this?' isn't a good translation, despite it being understood as having the same meaning. The verb 'зробите' does not translate to this.
Apologies, I missed the 'will'! 'Зробите' can be translated as will make/will have made, as well as will do/will have done.
"When will you do this?" and "When will you finish this?" are both accepted since long ago. Will think about "complete". I think "finish" is better.
It's in present tense.
Present tense can mean future events in English, and in Ukrainian too most of the time. But present tense is still present tense, which is different from future tense grammatically. So we expect you to enter future tense when translating future tense, to make sure you learned and understood correctly which tense you're dealing with :) How would I know whether you're using present tense here because you know the Ukrainian sentence is in future tense, but you're simply using present because it can mean future events; or because you misunderstood and thought the Ukrainian sentence is in present tense? :)
But in general yes, feel free to interchange them in either language because people often use it this way.
Edit: note: in this case you can't really use it for yet another reason, because "зробите" means a finished action.