Hook point to prevent invoice generation for certain payment gateway types
Since we cannot currently set different payment options per gateway in terms of payment terms, then the alternative is to have a hook to prevent invoices being created (Not the hook that stops emails being sent, that's no use here) for specific payment gateways.
Payment terms set to 30 days
If gateway is Cash, then continue as normal and create invoice on cron run for 30 days time.
If gateway is Credit Card, then 'escape' and do not generate invoice on cron. We can then build our own logic to check each day, and when we get to the due date .. generate the invoice and charge the credit card on the same day.
This is a work around since there is not flexibility to define payment terms per gateway but this hook call could have other uses too.