I've been taught that 〜てある is used to express that something has been done already in preparation for something, similar to 〜ておく (with a lot of nuance that I'm going to ignore here). However, just from my own observations (mainly from anime, manga, etc.) it seems to me that at least colloquially, 〜てある is used more as a future tense.
Forgive this crude example, but the first thing that pops into my head when I think of this is when an angry anime character may want to kill an opponent, he may say 「殺してある！」. In this context, he means "I will kill you", but that goes against that traditional definition that I have been taught. Is this a colloquial sort of thing, or am I just greatly misunderstanding what 〜てある means?