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.
Using a class to store all data may force you to override this class if you override, for example, the invoice header which is not good.