You use has, have, and had if you do not care about the “time” and if the time is not definite. For example, It hasn’t rained this week. < I use has because the date or day is not definite and don’t care about the day/time. And now, I’m going to use “did”, here it goes: It didn’t rain LAST WEEK. Meaning, you have a definite time here, because you are pertaining to the whole week.
Secondly, you use HAS, HAVE if you are still doing the things you do in the past until the present. But when you use Had, it means that you are already DONE with it in the past. There’s also the use of “Had Had”, I’m going to give you an example, “I had had a girlfriend before her”, here, it means you had 2 girlfriends before your present girlfriend, 1st girlfriend broke up, and then here comes the 2nd, and finally your present girlfriend.
Has done is not a future perfect, it’s a present perfect. Just like what I said, you use has if you are still doing the things you do in the past until the present. Bob has done, is present, so it means that he JUST finished his homework recently. You use “had done” if BOB finished his homework a day before, or an hours before.
Has had, have had, have had. “Has had and have had” have the same explanation because, has is for singular and have is for plural. You use them, if you are referring to unfinished time/ or let’s say an unfinished time of event. Meaning, its telling about the action began in the past, but not reached its end. You use that if you are about to feel something, but you already decided to do that before reaching the 100% of doing that particular activity(you get it?, quite confusing is it not?). Ok, I’m just going to give you an example, here’s the sentence: “I HAVE HAD enough of you!”. In this sentence you are angry, then you’re just holding your anger for about an hour, so in your mind, before you reach your maximum ANGER(before it reaches a 100%), you’ll just say that you have had enough of this person.
Hope you understand. 