const database = require(`${appPath}/lib/database`); const reportEngine = require(`${appPath}/lib/reportEngine.js`); const UserException = require(`${appPath}/lib/exceptions/userException`); module.exports = { name: 'client-lcr', async asyncData(ctx, params) { const promises = []; const data = { isPreview: ctx.method === 'GET', }; if (!params.clientFk) throw new UserException('No client id specified'); promises.push(reportEngine.toPdf('rpt-lcr', ctx)); promises.push(this.methods.fetchClient(params.clientFk)); return Promise.all(promises).then(result => { const stream = result[0]; const [[client]] = result[1]; Object.assign(data, client); Object.assign(data, {attachments: [{filename: 'rpt-lcr.pdf', content: stream}]}); return data; }); }, created() { if (this.locale) this.$i18n.locale = this.locale; }, methods: { fetchClient(clientFk) { return database.pool.query(` SELECT u.lang locale, c.email recipient FROM client c JOIN account.user u ON u.id = c.id WHERE c.id = ?`, [clientFk]); }, }, components: { 'email-header': require('../email-header'), 'email-footer': require('../email-footer'), }, };