Merge branch 'test' of https://gitea.verdnatura.es/verdnatura/salix into dev
This commit is contained in:
commit
c80457142f
|
@ -28,7 +28,7 @@ module.exports = Self => {
|
||||||
Self.createPdf = async function(ctx, id, options) {
|
Self.createPdf = async function(ctx, id, options) {
|
||||||
const models = Self.app.models;
|
const models = Self.app.models;
|
||||||
const headers = ctx.req.headers;
|
const headers = ctx.req.headers;
|
||||||
const origin = headers.origin || headers.referer;
|
const origin = headers.origin;
|
||||||
const authorization = ctx.req.accessToken.id;
|
const authorization = ctx.req.accessToken.id;
|
||||||
|
|
||||||
if (process.env.NODE_ENV == 'test')
|
if (process.env.NODE_ENV == 'test')
|
||||||
|
@ -61,12 +61,12 @@ module.exports = Self => {
|
||||||
|
|
||||||
const created = invoiceOut.created;
|
const created = invoiceOut.created;
|
||||||
const year = created.getFullYear().toString();
|
const year = created.getFullYear().toString();
|
||||||
const month = created.getMonth().toString();
|
const month = (created.getMonth() + 1).toString();
|
||||||
const day = created.getDate().toString();
|
const day = created.getDate().toString();
|
||||||
|
|
||||||
const container = await models.InvoiceContainer.container(year);
|
const container = await models.InvoiceContainer.container(year);
|
||||||
const rootPath = container.client.root;
|
const rootPath = container.client.root;
|
||||||
const fileName = `${invoiceOut.ref}.pdf`;
|
const fileName = `${year}${invoiceOut.ref}.pdf`;
|
||||||
const src = path.join(rootPath, year, month, day);
|
const src = path.join(rootPath, year, month, day);
|
||||||
fileSrc = path.join(src, fileName);
|
fileSrc = path.join(src, fileName);
|
||||||
|
|
||||||
|
@ -75,16 +75,11 @@ module.exports = Self => {
|
||||||
if (tx) await tx.commit();
|
if (tx) await tx.commit();
|
||||||
|
|
||||||
const writeStream = fs.createWriteStream(fileSrc);
|
const writeStream = fs.createWriteStream(fileSrc);
|
||||||
writeStream.on('open', () => {
|
writeStream.on('open', () => response.pipe(writeStream));
|
||||||
response.pipe(writeStream);
|
writeStream.on('finish', () => writeStream.end());
|
||||||
});
|
|
||||||
|
|
||||||
return new Promise(resolve => {
|
return new Promise(resolve => {
|
||||||
writeStream.on('finish', () => {
|
writeStream.on('close', () => resolve(invoiceOut));
|
||||||
writeStream.end();
|
|
||||||
|
|
||||||
resolve(invoiceOut);
|
|
||||||
});
|
|
||||||
});
|
});
|
||||||
} catch (e) {
|
} catch (e) {
|
||||||
if (tx) await tx.rollback();
|
if (tx) await tx.rollback();
|
||||||
|
|
|
@ -47,23 +47,19 @@ module.exports = Self => {
|
||||||
|
|
||||||
const created = invoiceOut.created;
|
const created = invoiceOut.created;
|
||||||
const year = created.getFullYear().toString();
|
const year = created.getFullYear().toString();
|
||||||
const month = created.getMonth().toString();
|
const month = (created.getMonth() + 1).toString();
|
||||||
const day = created.getDate().toString();
|
const day = created.getDate().toString();
|
||||||
|
|
||||||
const container = await models.InvoiceContainer.container(year);
|
const container = await models.InvoiceContainer.container(year);
|
||||||
const rootPath = container.client.root;
|
const rootPath = container.client.root;
|
||||||
const src = path.join(rootPath, year, month, day);
|
const src = path.join(rootPath, year, month, day);
|
||||||
const fileName = `${invoiceOut.ref}.pdf`;
|
const fileName = `${year}${invoiceOut.ref}.pdf`;
|
||||||
const fileSrc = path.join(src, fileName);
|
const fileSrc = path.join(src, fileName);
|
||||||
|
|
||||||
// Creates PDF document if it has not been created
|
|
||||||
if (!invoiceOut.hasPdf || !fs.existsSync(fileSrc))
|
|
||||||
await Self.createPdf(ctx, invoiceOut.id, myOptions);
|
|
||||||
|
|
||||||
const file = {
|
const file = {
|
||||||
path: fileSrc,
|
path: fileSrc,
|
||||||
contentType: 'application/pdf',
|
contentType: 'application/pdf',
|
||||||
name: `${id}.pdf`
|
name: fileName
|
||||||
};
|
};
|
||||||
|
|
||||||
await fs.access(file.path);
|
await fs.access(file.path);
|
||||||
|
|
|
@ -23,6 +23,6 @@ describe('InvoiceOut download()', () => {
|
||||||
const result = await models.InvoiceOut.download(ctx, invoiceId);
|
const result = await models.InvoiceOut.download(ctx, invoiceId);
|
||||||
|
|
||||||
expect(result[1]).toEqual('application/pdf');
|
expect(result[1]).toEqual('application/pdf');
|
||||||
expect(result[2]).toEqual('filename="1.pdf"');
|
expect(result[2]).toEqual('filename="2021T1111111.pdf"');
|
||||||
});
|
});
|
||||||
});
|
});
|
||||||
|
|
Loading…
Reference in New Issue