Issue #22059: print invoice

- hooked up invoice printing
- moved client-side reporting API to model layer
- integration tests for generate-report route