Export Email and Report classes
gitea/salix/pipeline/head This commit looks good
Details
gitea/salix/pipeline/head This commit looks good
Details
This commit is contained in:
parent
fe71e485aa
commit
18ac0a0b61
|
@ -1,3 +1,3 @@
|
||||||
module.exports = function(app) {
|
module.exports = function(app) {
|
||||||
require('../../../print/boot.js')(app);
|
require('vn-print').boot(app);
|
||||||
};
|
};
|
|
@ -0,0 +1,47 @@
|
||||||
|
const {Report, smtp} = require('vn-print');
|
||||||
|
|
||||||
|
module.exports = Self => {
|
||||||
|
Self.remoteMethod('deliveryNote', {
|
||||||
|
description: '',
|
||||||
|
accepts: [
|
||||||
|
],
|
||||||
|
returns: [
|
||||||
|
{
|
||||||
|
arg: 'body',
|
||||||
|
type: 'file',
|
||||||
|
root: true
|
||||||
|
}, {
|
||||||
|
arg: 'Content-Type',
|
||||||
|
type: 'String',
|
||||||
|
http: {target: 'header'}
|
||||||
|
}, {
|
||||||
|
arg: 'Content-Disposition',
|
||||||
|
type: 'String',
|
||||||
|
http: {target: 'header'}
|
||||||
|
}
|
||||||
|
],
|
||||||
|
http: {
|
||||||
|
path: '/delivery-note',
|
||||||
|
verb: 'GET'
|
||||||
|
}
|
||||||
|
});
|
||||||
|
|
||||||
|
Self.deliveryNote = async() => {
|
||||||
|
const params = {ticketId: 1};
|
||||||
|
const rpt = new Report('delivery-note', params, {
|
||||||
|
module: 'ticket',
|
||||||
|
lang: 'es'
|
||||||
|
});
|
||||||
|
|
||||||
|
const stream = await rpt.render();
|
||||||
|
|
||||||
|
// await smtp.send({
|
||||||
|
// from: 'joan@verdnatura.es',
|
||||||
|
// to: 'joan@verdnatura.es',
|
||||||
|
// subject: 'test123',
|
||||||
|
// body: rptTpl
|
||||||
|
// });
|
||||||
|
|
||||||
|
return [stream, 'text/html', `filename="test.pdf"`];
|
||||||
|
};
|
||||||
|
};
|
|
@ -28,6 +28,7 @@ module.exports = Self => {
|
||||||
require('../methods/ticket/freightCost')(Self);
|
require('../methods/ticket/freightCost')(Self);
|
||||||
require('../methods/ticket/getComponentsSum')(Self);
|
require('../methods/ticket/getComponentsSum')(Self);
|
||||||
require('../methods/ticket/refund')(Self);
|
require('../methods/ticket/refund')(Self);
|
||||||
|
require('../methods/ticket/deliveryNote')(Self);
|
||||||
|
|
||||||
Self.observe('before save', async function(ctx) {
|
Self.observe('before save', async function(ctx) {
|
||||||
const loopBackContext = LoopBackContext.getCurrentContext();
|
const loopBackContext = LoopBackContext.getCurrentContext();
|
||||||
|
|
|
@ -1,8 +1,11 @@
|
||||||
const Stylesheet = require(`${appPath}/core/stylesheet`);
|
const Stylesheet = require(`vn-print/core/stylesheet`);
|
||||||
|
|
||||||
|
const path = require('path');
|
||||||
|
const vnPrintPath = path.resolve('print');
|
||||||
|
|
||||||
module.exports = new Stylesheet([
|
module.exports = new Stylesheet([
|
||||||
`${appPath}/common/css/layout.css`,
|
`${vnPrintPath}/common/css/layout.css`,
|
||||||
`${appPath}/common/css/report.css`,
|
`${vnPrintPath}/common/css/report.css`,
|
||||||
`${appPath}/common/css/misc.css`,
|
`${vnPrintPath}/common/css/misc.css`,
|
||||||
`${__dirname}/style.css`])
|
`${__dirname}/style.css`])
|
||||||
.mergeStyles();
|
.mergeStyles();
|
|
@ -1,8 +1,11 @@
|
||||||
const Stylesheet = require(`${appPath}/core/stylesheet`);
|
const Stylesheet = require(`vn-print/core/stylesheet`);
|
||||||
|
|
||||||
|
const path = require('path');
|
||||||
|
const vnPrintPath = path.resolve('print');
|
||||||
|
|
||||||
module.exports = new Stylesheet([
|
module.exports = new Stylesheet([
|
||||||
`${appPath}/common/css/layout.css`,
|
`${vnPrintPath}/common/css/layout.css`,
|
||||||
`${appPath}/common/css/report.css`,
|
`${vnPrintPath}/common/css/report.css`,
|
||||||
`${appPath}/common/css/misc.css`,
|
`${vnPrintPath}/common/css/misc.css`,
|
||||||
`${__dirname}/style.css`])
|
`${__dirname}/style.css`])
|
||||||
.mergeStyles();
|
.mergeStyles();
|
||||||
|
|
|
@ -1,16 +1,17 @@
|
||||||
const mysql = require('mysql2');
|
const mysql = require('mysql2');
|
||||||
const config = require('./config.js');
|
const config = require('./config.js');
|
||||||
const fs = require('fs-extra');
|
const fs = require('fs-extra');
|
||||||
|
const path = require('path');
|
||||||
const PoolConnection = mysql.PoolConnection;
|
const PoolConnection = mysql.PoolConnection;
|
||||||
|
|
||||||
module.exports = {
|
module.exports = {
|
||||||
init() {
|
init(pool) {
|
||||||
if (!this.pool) {
|
if (!this.pool) {
|
||||||
const datasources = config.datasources;
|
// const datasources = config.datasources;
|
||||||
const pool = mysql.createPoolCluster();
|
// const pool = mysql.createPoolCluster();
|
||||||
|
|
||||||
for (let datasource of datasources)
|
// for (let datasource of datasources)
|
||||||
pool.add(datasource.name, datasource.options);
|
// pool.add(datasource.name, datasource.options);
|
||||||
|
|
||||||
this.pool = pool;
|
this.pool = pool;
|
||||||
}
|
}
|
||||||
|
@ -43,29 +44,12 @@ module.exports = {
|
||||||
*
|
*
|
||||||
* @return {Object} - Result promise
|
* @return {Object} - Result promise
|
||||||
*/
|
*/
|
||||||
rawSql(query, params, connection) {
|
rawSql(query, params) {
|
||||||
let pool = this.pool;
|
|
||||||
if (params instanceof PoolConnection)
|
|
||||||
connection = params;
|
|
||||||
if (connection) pool = connection;
|
|
||||||
|
|
||||||
return new Promise((resolve, reject) => {
|
return new Promise((resolve, reject) => {
|
||||||
if (!connection) {
|
this.pool.query(query, params, (error, rows) => {
|
||||||
pool.getConnection('default', function(error, conn) {
|
|
||||||
if (error) return reject(error);
|
|
||||||
|
|
||||||
conn.query(query, params, (error, rows) => {
|
|
||||||
if (error) return reject(error);
|
|
||||||
conn.release();
|
|
||||||
resolve(rows);
|
|
||||||
});
|
|
||||||
});
|
|
||||||
} else {
|
|
||||||
connection.query(query, params, (error, rows) => {
|
|
||||||
if (error) return reject(error);
|
if (error) return reject(error);
|
||||||
resolve(rows);
|
resolve(rows);
|
||||||
});
|
});
|
||||||
}
|
|
||||||
});
|
});
|
||||||
},
|
},
|
||||||
|
|
||||||
|
@ -102,6 +86,7 @@ module.exports = {
|
||||||
* @return {Object} - Result promise
|
* @return {Object} - Result promise
|
||||||
*/
|
*/
|
||||||
findOneFromDef(queryName, params) {
|
findOneFromDef(queryName, params) {
|
||||||
|
console.log(path.resolve('queryName'));
|
||||||
return this.rawSqlFromDef(queryName, params)
|
return this.rawSqlFromDef(queryName, params)
|
||||||
.then(([row]) => row);
|
.then(([row]) => row);
|
||||||
},
|
},
|
||||||
|
|
|
@ -1,4 +1,5 @@
|
||||||
const fs = require('fs-extra');
|
const fs = require('fs-extra');
|
||||||
|
const path = require('path');
|
||||||
|
|
||||||
class Stylesheet {
|
class Stylesheet {
|
||||||
constructor(files) {
|
constructor(files) {
|
||||||
|
@ -7,8 +8,9 @@ class Stylesheet {
|
||||||
}
|
}
|
||||||
|
|
||||||
mergeStyles() {
|
mergeStyles() {
|
||||||
for (const file of this.files)
|
for (const file of this.files) {
|
||||||
this.css.push(fs.readFileSync(file));
|
this.css.push(fs.readFileSync(file));
|
||||||
|
}
|
||||||
|
|
||||||
return this.css.join('\n');
|
return this.css.join('\n');
|
||||||
}
|
}
|
||||||
|
|
|
@ -0,0 +1,53 @@
|
||||||
|
const express = require('express');
|
||||||
|
const path = require('path');
|
||||||
|
const fs = require('fs');
|
||||||
|
|
||||||
|
const templatesPath = path.resolve(__dirname, './templates');
|
||||||
|
const componentsPath = path.resolve(__dirname, './core/components');
|
||||||
|
|
||||||
|
module.exports = {
|
||||||
|
async boot(app) {
|
||||||
|
// Init database instance
|
||||||
|
const conn = app.dataSources.vn.connector.client;
|
||||||
|
conn.query('SELECT 1', function(error, rows) {
|
||||||
|
if (error) return error;
|
||||||
|
console.log(rows);
|
||||||
|
});
|
||||||
|
// console.log(app.dataSource.vn.connector.executeStmt('SELECT 1'));
|
||||||
|
require('./core/database').init(conn);
|
||||||
|
require('./core/smtp').init();
|
||||||
|
require('./core/mixins');
|
||||||
|
require('./core/filters');
|
||||||
|
require('./core/directives');
|
||||||
|
|
||||||
|
const componentsDir = fs.readdirSync(componentsPath);
|
||||||
|
componentsDir.forEach(componentName => {
|
||||||
|
const componentDir = path.join(componentsPath, '/', componentName);
|
||||||
|
const assetsDir = `${componentDir}/assets`;
|
||||||
|
|
||||||
|
app.use(`/api/${componentName}/assets`, express.static(assetsDir));
|
||||||
|
});
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Serve static files
|
||||||
|
*/
|
||||||
|
const templatesDir = fs.readdirSync(templatesPath);
|
||||||
|
templatesDir.forEach(directory => {
|
||||||
|
const templateTypeDir = path.join(templatesPath, '/', directory);
|
||||||
|
const templates = fs.readdirSync(templateTypeDir);
|
||||||
|
|
||||||
|
templates.forEach(templateName => {
|
||||||
|
const templateDir = path.join(templatesPath, '/', directory, '/', templateName);
|
||||||
|
const assetsDir = `${templateDir}/assets`;
|
||||||
|
|
||||||
|
app.use(`/api/${templateName}/assets`, express.static(assetsDir));
|
||||||
|
});
|
||||||
|
});
|
||||||
|
|
||||||
|
return true;
|
||||||
|
},
|
||||||
|
smtp: require('./core/smtp'),
|
||||||
|
db: require('./core/database'),
|
||||||
|
Email: require('./core/email'),
|
||||||
|
Report: require('./core/report')
|
||||||
|
};
|
|
@ -1,9 +1,12 @@
|
||||||
const Stylesheet = require(`${appPath}/core/stylesheet`);
|
const Stylesheet = require(`vn-print/core/stylesheet`);
|
||||||
|
|
||||||
|
const path = require('path');
|
||||||
|
const vnPrintPath = path.resolve('print');
|
||||||
|
|
||||||
module.exports = new Stylesheet([
|
module.exports = new Stylesheet([
|
||||||
`${appPath}/common/css/spacing.css`,
|
`${vnPrintPath}/common/css/spacing.css`,
|
||||||
`${appPath}/common/css/misc.css`,
|
`${vnPrintPath}/common/css/misc.css`,
|
||||||
`${appPath}/common/css/layout.css`,
|
`${vnPrintPath}/common/css/layout.css`,
|
||||||
`${appPath}/common/css/report.css`,
|
`${vnPrintPath}/common/css/report.css`,
|
||||||
`${__dirname}/style.css`])
|
`${__dirname}/style.css`])
|
||||||
.mergeStyles();
|
.mergeStyles();
|
||||||
|
|
|
@ -1,5 +1,5 @@
|
||||||
const config = require(`${appPath}/core/config`);
|
const config = require(`vn-print/core/config`);
|
||||||
const Component = require(`${appPath}/core/component`);
|
const Component = require(`vn-print/core/component`);
|
||||||
const reportHeader = new Component('report-header');
|
const reportHeader = new Component('report-header');
|
||||||
const reportFooter = new Component('report-footer');
|
const reportFooter = new Component('report-footer');
|
||||||
const md5 = require('md5');
|
const md5 = require('md5');
|
||||||
|
|
Loading…
Reference in New Issue