34 lines
938 B
JavaScript
34 lines
938 B
JavaScript
const {Report, Email} = require('vn-print');
|
|
|
|
module.exports = Self => {
|
|
Self.printPdf = async function(ctx, id, reportName) {
|
|
const args = Object.assign({}, ctx.args);
|
|
const params = {lang: ctx.req.getLocale()};
|
|
|
|
delete args.ctx;
|
|
for (const param in args)
|
|
params[param] = args[param];
|
|
|
|
const report = new Report(reportName, params);
|
|
const stream = await report.toPdfStream();
|
|
|
|
return [stream, 'application/pdf', `filename="doc-${id}.pdf"`];
|
|
};
|
|
|
|
Self.sendTemplate = async function(ctx, reportName) {
|
|
const args = Object.assign({}, ctx.args);
|
|
const params = {
|
|
recipient: args.recipient,
|
|
lang: ctx.req.getLocale()
|
|
};
|
|
|
|
delete args.ctx;
|
|
for (const param in args)
|
|
params[param] = args[param];
|
|
|
|
const email = new Email(reportName, params);
|
|
|
|
return email.send();
|
|
};
|
|
};
|