Thoughtworks interview question

Coding assignment. Invoice Processing and Invoice Generation System