Moved generate invoice method to receive a dto instead 6 parameters

I am trying to find a better way to pass the data to the invoice generator without breaking the possibility to override any class or method and force you to override the data dto also.