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();
|
||
|
};
|
||
|
};
|