From 4d25fe88cf1be33cdf4545e8d51cb7d03d22b6c4 Mon Sep 17 00:00:00 2001 From: joan Date: Fri, 25 Sep 2020 14:45:00 +0200 Subject: [PATCH 1/3] Added functions to call sql from def --- modules/invoiceOut/front/locale/es.yml | 3 +- modules/invoiceOut/front/routes.json | 2 +- print/core/database.js | 70 ++++++++- .../email/client-welcome/client-welcome.js | 13 +- .../email/client-welcome/sql/client.sql | 11 ++ .../letter-debtor-nd/letter-debtor-nd.js | 12 +- .../email/letter-debtor-nd/sql/client.sql | 10 ++ .../letter-debtor-st/letter-debtor-st.js | 12 +- .../email/letter-debtor-st/sql/client.sql | 10 ++ .../email/payment-update/payment-update.js | 10 +- .../email/payment-update/sql/payMethod.sql | 8 + .../email/printer-setup/printer-setup.js | 15 +- .../email/printer-setup/sql/client.sql | 12 ++ .../campaign-metrics/campaign-metrics.js | 38 +---- .../reports/campaign-metrics/sql/client.sql | 13 ++ .../reports/campaign-metrics/sql/sales.sql | 20 +++ .../claim-pickup-order/claim-pickup-order.js | 31 +--- .../reports/claim-pickup-order/sql/client.sql | 19 +++ .../reports/claim-pickup-order/sql/sales.sql | 8 + .../delivery-note/assets/css/style.css | 4 + .../reports/delivery-note/delivery-note.html | 2 +- .../reports/delivery-note/delivery-note.js | 138 +++--------------- .../reports/delivery-note/sql/getAddress.sql | 11 ++ .../reports/delivery-note/sql/getClient.sql | 8 + .../delivery-note/sql/getPackagings.sql | 9 ++ .../reports/delivery-note/sql/getSales.sql | 53 +++++++ .../reports/delivery-note/sql/getServices.sql | 8 + .../delivery-note/sql/getSignature.sql | 8 + .../reports/delivery-note/sql/getTaxes.sql | 1 + .../reports/delivery-note/sql/getTicket.sql | 7 + .../reports/driver-route/driver-route.js | 54 +------ .../reports/driver-route/sql/routes.sql | 16 ++ .../reports/driver-route/sql/tickets.sql | 34 +++++ .../reports/entry-order/entry-order.js | 43 +----- .../reports/entry-order/sql/buys.sql | 16 ++ .../reports/entry-order/sql/entry.sql | 10 ++ .../reports/entry-order/sql/supplier.sql | 11 ++ .../reports/item-label/item-label.js | 20 +-- .../templates/reports/item-label/sql/item.sql | 11 ++ .../reports/item-label/sql/itemTags.sql | 4 + .../reports/letter-debtor/letter-debtor.js | 26 +--- .../reports/letter-debtor/sql/client.sql | 13 ++ .../reports/letter-debtor/sql/sales.sql | 1 + print/templates/reports/receipt/receipt.js | 21 +-- .../templates/reports/receipt/sql/client.sql | 8 + .../templates/reports/receipt/sql/receipt.sql | 9 ++ .../templates/reports/sepa-core/sepa-core.js | 40 +---- .../reports/sepa-core/sql/client.sql | 19 +++ .../reports/sepa-core/sql/supplier.sql | 17 +++ print/templates/reports/zone/sql/zone.sql | 9 ++ print/templates/reports/zone/zone.js | 11 +- 51 files changed, 514 insertions(+), 445 deletions(-) create mode 100644 print/templates/email/client-welcome/sql/client.sql create mode 100644 print/templates/email/letter-debtor-nd/sql/client.sql create mode 100644 print/templates/email/letter-debtor-st/sql/client.sql create mode 100644 print/templates/email/payment-update/sql/payMethod.sql create mode 100644 print/templates/email/printer-setup/sql/client.sql create mode 100644 print/templates/reports/campaign-metrics/sql/client.sql create mode 100644 print/templates/reports/campaign-metrics/sql/sales.sql create mode 100644 print/templates/reports/claim-pickup-order/sql/client.sql create mode 100644 print/templates/reports/claim-pickup-order/sql/sales.sql create mode 100644 print/templates/reports/delivery-note/sql/getAddress.sql create mode 100644 print/templates/reports/delivery-note/sql/getClient.sql create mode 100644 print/templates/reports/delivery-note/sql/getPackagings.sql create mode 100644 print/templates/reports/delivery-note/sql/getSales.sql create mode 100644 print/templates/reports/delivery-note/sql/getServices.sql create mode 100644 print/templates/reports/delivery-note/sql/getSignature.sql create mode 100644 print/templates/reports/delivery-note/sql/getTaxes.sql create mode 100644 print/templates/reports/delivery-note/sql/getTicket.sql create mode 100644 print/templates/reports/driver-route/sql/routes.sql create mode 100644 print/templates/reports/driver-route/sql/tickets.sql create mode 100644 print/templates/reports/entry-order/sql/buys.sql create mode 100644 print/templates/reports/entry-order/sql/entry.sql create mode 100644 print/templates/reports/entry-order/sql/supplier.sql create mode 100644 print/templates/reports/item-label/sql/item.sql create mode 100644 print/templates/reports/item-label/sql/itemTags.sql create mode 100644 print/templates/reports/letter-debtor/sql/client.sql create mode 100644 print/templates/reports/letter-debtor/sql/sales.sql create mode 100644 print/templates/reports/receipt/sql/client.sql create mode 100644 print/templates/reports/receipt/sql/receipt.sql create mode 100644 print/templates/reports/sepa-core/sql/client.sql create mode 100644 print/templates/reports/sepa-core/sql/supplier.sql create mode 100644 print/templates/reports/zone/sql/zone.sql diff --git a/modules/invoiceOut/front/locale/es.yml b/modules/invoiceOut/front/locale/es.yml index 9856dccfb3..d21c9c23c0 100644 --- a/modules/invoiceOut/front/locale/es.yml +++ b/modules/invoiceOut/front/locale/es.yml @@ -1,3 +1,2 @@ -Invoice out: Facturas -invoiceOut: factura +InvoiceOut: Facturas Search invoices by reference: Buscar facturas por referencia \ No newline at end of file diff --git a/modules/invoiceOut/front/routes.json b/modules/invoiceOut/front/routes.json index 8f828a634e..7b733e29bc 100644 --- a/modules/invoiceOut/front/routes.json +++ b/modules/invoiceOut/front/routes.json @@ -22,7 +22,7 @@ "url": "/index?q", "state": "invoiceOut.index", "component": "vn-invoice-out-index", - "description": "Invoice out" + "description": "InvoiceOut" }, { "url": "/summary", diff --git a/print/core/database.js b/print/core/database.js index a2e6e95733..578ae86d60 100644 --- a/print/core/database.js +++ b/print/core/database.js @@ -1,5 +1,7 @@ const mysql = require('mysql2/promise'); const config = require('./config.js'); +const fs = require('fs-extra'); +const path = require('path'); module.exports = { init() { @@ -10,6 +12,7 @@ module.exports = { }); } }, + /** * Makes a query from a raw sql * @param {String} query - The raw SQL query @@ -22,6 +25,22 @@ module.exports = { return rows; }); }, + + /** + * Makes a query from a SQL file + * @param {String} queryName - The SQL file name + * @param {Object} params - Parameterized values + * @param {Object} dirname - Referenced path + * + * @return {Object} - Result promise + */ + rawSqlFromDef(queryName, params, dirname = '.') { + const sqlPath = path.join(dirname, 'sql', `${queryName}.sql`); + const query = fs.readFileSync(sqlPath, 'utf8'); + + return this.rawSql(query, params); + }, + /** * Returns the first row from a given raw sql * @param {String} query - The raw SQL query @@ -32,6 +51,20 @@ module.exports = { findOne(query, params) { return this.rawSql(query, params).then(([row]) => row); }, + + /** + * Returns the first row from a given SQL file + * @param {String} queryName - The SQL file name + * @param {Object} params - Parameterized values + * @param {Object} dirname - Referenced path + * + * @return {Object} - Result promise + */ + findOneFromDef(queryName, params, dirname) { + return this.rawSqlFromDef(queryName, params, dirname) + .then(([row]) => row); + }, + /** * Returns the first property from a given raw sql * @param {String} query - The raw SQL query @@ -44,7 +77,42 @@ module.exports = { return Object.values(row)[0]; }); }, - findFromDef() { + /** + * Returns the first property from a given SQL file + * @param {String} queryName - The SQL file name + * @param {Object} params - Parameterized values + * @param {Object} dirname - Referenced path + * + * @return {Object} - Result promise + */ + findValueFromDef(queryName, params, dirname) { + return this.findOneFromDef(queryName, params, dirname).then(row => { + return Object.values(row)[0]; + }); + }, + + getCaller() { + let originalFunc = Error.prepareStackTrace; + let callerfile; + try { + const err = new Error(); + + Error.prepareStackTrace = function(err, stack) { + return stack; + }; + + const currentfile = err.stack.shift().getFileName(); + + while (err.stack.length) { + callerfile = err.stack.shift().getFileName(); + + if (currentfile !== callerfile) break; + } + } catch (e) {} + + Error.prepareStackTrace = originalFunc; + + return path.dirname(callerfile); } }; diff --git a/print/templates/email/client-welcome/client-welcome.js b/print/templates/email/client-welcome/client-welcome.js index 194c133bd6..1a0624548e 100755 --- a/print/templates/email/client-welcome/client-welcome.js +++ b/print/templates/email/client-welcome/client-welcome.js @@ -10,18 +10,7 @@ module.exports = { }, methods: { fetchClient(clientId) { - return db.findOne(` - SELECT - c.id, - u.name AS userName, - CONCAT(w.lastName, ' ', w.firstName) salesPersonName, - w.phone AS salesPersonPhone, - CONCAT(wu.name, '@verdnatura.es') AS salesPersonEmail - FROM client c - JOIN account.user u ON u.id = c.id - LEFT JOIN worker w ON w.id = c.salesPersonFk - LEFT JOIN account.user wu ON wu.id = w.userFk - WHERE c.id = ?`, [clientId]); + return db.findOneFromDef('client', [clientId], __dirname); }, }, components: { diff --git a/print/templates/email/client-welcome/sql/client.sql b/print/templates/email/client-welcome/sql/client.sql new file mode 100644 index 0000000000..49e1d4bf6e --- /dev/null +++ b/print/templates/email/client-welcome/sql/client.sql @@ -0,0 +1,11 @@ +SELECT + c.id, + u.name AS userName, + CONCAT(w.lastName, ' ', w.firstName) salesPersonName, + w.phone AS salesPersonPhone, + CONCAT(wu.name, '@verdnatura.es') AS salesPersonEmail +FROM client c + JOIN account.user u ON u.id = c.id + LEFT JOIN worker w ON w.id = c.salesPersonFk + LEFT JOIN account.user wu ON wu.id = w.userFk +WHERE c.id = ? \ No newline at end of file diff --git a/print/templates/email/letter-debtor-nd/letter-debtor-nd.js b/print/templates/email/letter-debtor-nd/letter-debtor-nd.js index be77686084..fa10eaaafe 100755 --- a/print/templates/email/letter-debtor-nd/letter-debtor-nd.js +++ b/print/templates/email/letter-debtor-nd/letter-debtor-nd.js @@ -18,17 +18,7 @@ module.exports = { }, methods: { fetchDebtor(clientId, companyId) { - return db.findOne(` - SELECT - c.dueDay, - c.iban, - sa.iban, - be.name AS bankName - FROM client c - JOIN company AS cny - JOIN supplierAccount AS sa ON sa.id = cny.supplierAccountFk - JOIN bankEntity be ON be.id = sa.bankEntityFk - WHERE c.id = ? AND cny.id = ?`, [clientId, companyId]); + return db.findOneFromDef('client', [clientId, companyId], __dirname); } }, components: { diff --git a/print/templates/email/letter-debtor-nd/sql/client.sql b/print/templates/email/letter-debtor-nd/sql/client.sql new file mode 100644 index 0000000000..1f672879b6 --- /dev/null +++ b/print/templates/email/letter-debtor-nd/sql/client.sql @@ -0,0 +1,10 @@ +SELECT + c.dueDay, + c.iban, + sa.iban, + be.name AS bankName +FROM client c + JOIN company AS cny + JOIN supplierAccount AS sa ON sa.id = cny.supplierAccountFk + JOIN bankEntity be ON be.id = sa.bankEntityFk +WHERE c.id = ? AND cny.id = ?` \ No newline at end of file diff --git a/print/templates/email/letter-debtor-st/letter-debtor-st.js b/print/templates/email/letter-debtor-st/letter-debtor-st.js index 51ed8b2ff8..3f9039d176 100755 --- a/print/templates/email/letter-debtor-st/letter-debtor-st.js +++ b/print/templates/email/letter-debtor-st/letter-debtor-st.js @@ -18,17 +18,7 @@ module.exports = { }, methods: { fetchDebtor(clientId, companyId) { - return db.findOne(` - SELECT - c.dueDay, - c.iban, - sa.iban, - be.name AS bankName - FROM client c - JOIN company AS cny - JOIN supplierAccount AS sa ON sa.id = cny.supplierAccountFk - JOIN bankEntity be ON be.id = sa.bankEntityFk - WHERE c.id = ? AND cny.id = ?`, [clientId, companyId]); + return db.findOneFromDef('client', [clientId, companyId], __dirname); } }, components: { diff --git a/print/templates/email/letter-debtor-st/sql/client.sql b/print/templates/email/letter-debtor-st/sql/client.sql new file mode 100644 index 0000000000..aad907a4b1 --- /dev/null +++ b/print/templates/email/letter-debtor-st/sql/client.sql @@ -0,0 +1,10 @@ +SELECT + c.dueDay, + c.iban, + sa.iban, + be.name AS bankName +FROM client c + JOIN company AS cny + JOIN supplierAccount AS sa ON sa.id = cny.supplierAccountFk + JOIN bankEntity be ON be.id = sa.bankEntityFk +WHERE c.id = ? AND cny.id = ? \ No newline at end of file diff --git a/print/templates/email/payment-update/payment-update.js b/print/templates/email/payment-update/payment-update.js index c74cf86940..249fb917f3 100755 --- a/print/templates/email/payment-update/payment-update.js +++ b/print/templates/email/payment-update/payment-update.js @@ -18,15 +18,7 @@ module.exports = { }, methods: { fetchPayMethod(clientId) { - return db.findOne( - `SELECT - c.dueDay, - c.iban, - pm.name, - pm.code - FROM client c - JOIN payMethod pm ON pm.id = c.payMethodFk - WHERE c.id = :clientId`, {clientId: clientId}); + return db.findOneFromDef('payMethod', {clientId: clientId}, __dirname); } }, components: { diff --git a/print/templates/email/payment-update/sql/payMethod.sql b/print/templates/email/payment-update/sql/payMethod.sql new file mode 100644 index 0000000000..775af01f16 --- /dev/null +++ b/print/templates/email/payment-update/sql/payMethod.sql @@ -0,0 +1,8 @@ +SELECT + c.dueDay, + c.iban, + pm.name, + pm.code +FROM client c + JOIN payMethod pm ON pm.id = c.payMethodFk +WHERE c.id = :clientId \ No newline at end of file diff --git a/print/templates/email/printer-setup/printer-setup.js b/print/templates/email/printer-setup/printer-setup.js index 4aa63587fa..b15e144741 100755 --- a/print/templates/email/printer-setup/printer-setup.js +++ b/print/templates/email/printer-setup/printer-setup.js @@ -15,20 +15,7 @@ module.exports = { }, methods: { fetchClient(clientId) { - return db.findOne(` - SELECT - c.id, - u.lang locale, - u.name AS userName, - c.email recipient, - CONCAT(w.lastName, ' ', w.firstName) salesPersonName, - w.phone AS salesPersonPhone, - CONCAT(wu.name, '@verdnatura.es') AS salesPersonEmail - FROM client c - JOIN account.user u ON u.id = c.id - LEFT JOIN worker w ON w.id = c.salesPersonFk - LEFT JOIN account.user wu ON wu.id = w.userFk - WHERE c.id = ?`, [clientId]); + return db.findOneFromDef('client', [clientId], __dirname); } }, components: { diff --git a/print/templates/email/printer-setup/sql/client.sql b/print/templates/email/printer-setup/sql/client.sql new file mode 100644 index 0000000000..2a8a751e09 --- /dev/null +++ b/print/templates/email/printer-setup/sql/client.sql @@ -0,0 +1,12 @@ +SELECT + c.id, + u.name AS userName, + c.email recipient, + CONCAT(w.lastName, ' ', w.firstName) salesPersonName, + w.phone AS salesPersonPhone, + CONCAT(wu.name, '@verdnatura.es') AS salesPersonEmail +FROM client c + JOIN account.user u ON u.id = c.id + LEFT JOIN worker w ON w.id = c.salesPersonFk + LEFT JOIN account.user wu ON wu.id = w.userFk +WHERE c.id = ? \ No newline at end of file diff --git a/print/templates/reports/campaign-metrics/campaign-metrics.js b/print/templates/reports/campaign-metrics/campaign-metrics.js index 420c1ffb1b..e8bd317e81 100755 --- a/print/templates/reports/campaign-metrics/campaign-metrics.js +++ b/print/templates/reports/campaign-metrics/campaign-metrics.js @@ -14,44 +14,10 @@ module.exports = { }, methods: { fetchClient(clientId) { - return db.findOne( - `SELECT - c.street, - c.socialName, - c.city, - c.postcode, - c.id, - c.name AS clientName, - p.name AS province, - co.country - FROM client c - JOIN province p ON c.provinceFk = p.id - JOIN country co ON c.countryFk = co.id - WHERE - c.id = ?`, [clientId]); + return db.findOneFromDef('client', [clientId], __dirname); }, fetchSales(clientId, from, to) { - return db.rawSql( - `SELECT - SUM(s.quantity) AS subtotal, - s.itemFk, - s.concept, - i.subName, - i.tag5, - i.value5, - i.tag6, - i.value6, - i.tag7, - i.value7 - FROM sale s - JOIN ticket t ON t.id = s.ticketFk - JOIN item i ON i.id = s.itemFk - JOIN itemType it ON it.id = i.typeFk - WHERE - t.clientFk = ? AND it.isPackaging = FALSE - AND DATE(t.shipped) BETWEEN ? AND ? - GROUP BY s.itemFk - ORDER BY i.typeFk , i.name`, [clientId, from, to]); + return db.rawSqlFromDef('sales', [clientId, from, to], __dirname); }, }, components: { diff --git a/print/templates/reports/campaign-metrics/sql/client.sql b/print/templates/reports/campaign-metrics/sql/client.sql new file mode 100644 index 0000000000..9f392c97eb --- /dev/null +++ b/print/templates/reports/campaign-metrics/sql/client.sql @@ -0,0 +1,13 @@ +SELECT + c.street, + c.socialName, + c.city, + c.postcode, + c.id, + c.name AS clientName, + p.name AS province, + co.country +FROM client c + JOIN province p ON c.provinceFk = p.id + JOIN country co ON c.countryFk = co.id +WHERE c.id = ? \ No newline at end of file diff --git a/print/templates/reports/campaign-metrics/sql/sales.sql b/print/templates/reports/campaign-metrics/sql/sales.sql new file mode 100644 index 0000000000..2daa72aaa6 --- /dev/null +++ b/print/templates/reports/campaign-metrics/sql/sales.sql @@ -0,0 +1,20 @@ +SELECT + SUM(s.quantity) AS subtotal, + s.itemFk, + s.concept, + i.subName, + i.tag5, + i.value5, + i.tag6, + i.value6, + i.tag7, + i.value7 +FROM sale s + JOIN ticket t ON t.id = s.ticketFk + JOIN item i ON i.id = s.itemFk + JOIN itemType it ON it.id = i.typeFk +WHERE + t.clientFk = ? AND it.isPackaging = FALSE + AND DATE(t.shipped) BETWEEN ? AND ? +GROUP BY s.itemFk +ORDER BY i.typeFk , i.name \ No newline at end of file diff --git a/print/templates/reports/claim-pickup-order/claim-pickup-order.js b/print/templates/reports/claim-pickup-order/claim-pickup-order.js index a18e6d0e0d..fc25db35f9 100755 --- a/print/templates/reports/claim-pickup-order/claim-pickup-order.js +++ b/print/templates/reports/claim-pickup-order/claim-pickup-order.js @@ -21,37 +21,10 @@ module.exports = { }, methods: { fetchClient(claimId) { - return db.findOne( - `SELECT - c.id, - c.socialName, - c.name, - c.fi, - a.city, - a.postalCode, - a.street, - a.nickname, - p.name AS province, - ct.country - FROM claim cl - JOIN client c ON c.id = cl.clientFk - JOIN account.user u ON u.id = c.id - JOIN country ct ON ct.id = c.countryFk - JOIN ticket t ON t.id = cl.ticketFk - JOIN address a ON a.id = t.addressFk - LEFT JOIN province p ON p.id = c.provinceFk - WHERE cl.id = ?`, [claimId]); + return db.findOneFromDef('client', [claimId], __dirname); }, fetchSales(claimId) { - return db.rawSql( - `SELECT - s.id, - s.quantity, - s.concept, - cb.quantity claimQuantity - FROM claimBeginning cb - JOIN sale s ON s.id = cb.saleFk - WHERE cb.claimFk = ?`, [claimId]); + return db.rawSqlFromDef('sales', [claimId], __dirname); }, }, components: { diff --git a/print/templates/reports/claim-pickup-order/sql/client.sql b/print/templates/reports/claim-pickup-order/sql/client.sql new file mode 100644 index 0000000000..2498574333 --- /dev/null +++ b/print/templates/reports/claim-pickup-order/sql/client.sql @@ -0,0 +1,19 @@ +SELECT + c.id, + c.socialName, + c.name, + c.fi, + a.city, + a.postalCode, + a.street, + a.nickname, + p.name AS province, + ct.country +FROM claim cl + JOIN client c ON c.id = cl.clientFk + JOIN account.user u ON u.id = c.id + JOIN country ct ON ct.id = c.countryFk + JOIN ticket t ON t.id = cl.ticketFk + JOIN address a ON a.id = t.addressFk + LEFT JOIN province p ON p.id = c.provinceFk +WHERE cl.id = ? \ No newline at end of file diff --git a/print/templates/reports/claim-pickup-order/sql/sales.sql b/print/templates/reports/claim-pickup-order/sql/sales.sql new file mode 100644 index 0000000000..3257a559c1 --- /dev/null +++ b/print/templates/reports/claim-pickup-order/sql/sales.sql @@ -0,0 +1,8 @@ +SELECT + s.id, + s.quantity, + s.concept, + cb.quantity claimQuantity +FROM claimBeginning cb + JOIN sale s ON s.id = cb.saleFk +WHERE cb.claimFk = ? \ No newline at end of file diff --git a/print/templates/reports/delivery-note/assets/css/style.css b/print/templates/reports/delivery-note/assets/css/style.css index 04474d4c88..c6d2ab2bf6 100644 --- a/print/templates/reports/delivery-note/assets/css/style.css +++ b/print/templates/reports/delivery-note/assets/css/style.css @@ -16,4 +16,8 @@ h3 { font-weight: 100; color: #555 +} + +.ticket-info { + font-size: 20px } \ No newline at end of file diff --git a/print/templates/reports/delivery-note/delivery-note.html b/print/templates/reports/delivery-note/delivery-note.html index 5c8dac8eb0..22ce0eaa8d 100644 --- a/print/templates/reports/delivery-note/delivery-note.html +++ b/print/templates/reports/delivery-note/delivery-note.html @@ -16,7 +16,7 @@

{{$t('title')}}

- +
diff --git a/print/templates/reports/delivery-note/delivery-note.js b/print/templates/reports/delivery-note/delivery-note.js index cdf355f60c..e4ef9e26e5 100755 --- a/print/templates/reports/delivery-note/delivery-note.js +++ b/print/templates/reports/delivery-note/delivery-note.js @@ -42,132 +42,30 @@ module.exports = { }, methods: { fetchClient(ticketId) { - return db.findOne( - `SELECT - c.id, - c.socialName, - c.street, - c.fi - FROM ticket t - JOIN client c ON c.id = t.clientFk - WHERE t.id = ?`, [ticketId]); + return db.findOneFromDef('getClient', [ticketId], __dirname); }, fetchTicket(ticketId) { - return db.findOne( - `SELECT - t.id, - t.shipped, - c.code companyCode - FROM ticket t - JOIN company c ON c.id = t.companyFk - WHERE t.id = ?`, [ticketId]); + return db.findOneFromDef('getTicket', [ticketId], __dirname); }, fetchAddress(ticketId) { - return db.findOne( - `SELECT - a.nickname, - a.street, - a.postalCode, - a.city, - p.name province - FROM ticket t - JOIN address a ON a.clientFk = t.clientFk - AND a.id = t.addressFk - LEFT JOIN province p ON p.id = a.provinceFk - WHERE t.id = ?`, [ticketId]); - }, - - fetchSales(ticketId) { - return db.rawSql( - `SELECT - s.id, - s.itemFk, - s.concept, - s.quantity, - s.price, - s.price - SUM(IF(ctr.id = 6, - sc.value, - 0)) netPrice, - s.discount, - i.size, - i.stems, - i.category, - it.id itemTypeId, - o.code AS origin, - i.inkFk, - s.ticketFk, - tcl.code vatType, - ibwg.ediBotanic, ppa.denomination, pp.number passportNumber, - be.isProtectedZone, c.code AS countryCode, - i.tag5, i.value5, - i.tag6, i.value6, i.tag7, i.value7 - FROM vn.sale s - LEFT JOIN saleComponent sc ON sc.saleFk = s.id - LEFT JOIN component cr ON cr.id = sc.componentFk - LEFT JOIN componentType ctr ON ctr.id = cr.typeFk - LEFT JOIN item i ON i.id = s.itemFk - LEFT JOIN ticket t ON t.id = s.ticketFk - LEFT JOIN origin o ON o.id = i.originFk - LEFT JOIN country c ON c.id = o.countryFk - LEFT JOIN supplier sp ON sp.id = t.companyFk - LEFT JOIN itemType it ON it.id = i.typeFk - LEFT JOIN itemTaxCountry itc ON itc.itemFk = i.id - AND itc.countryFk = sp.countryFk - LEFT JOIN taxClass tcl ON tcl.id = itc.taxClassFk - LEFT JOIN plantpassport pp ON pp.producerFk = i.producerFk - LEFT JOIN plantpassportAuthority ppa ON ppa.id = pp.plantpassportAuthorityFk - LEFT JOIN itemBotanicalWithGenus ibwg ON ibwg.itemFk = i.id - LEFT JOIN botanicExport be ON be.restriction = 'pasaporte fitosanitario' - LEFT JOIN ediGenus eg ON eg.id = be.ediGenusFk - LEFT JOIN ediSpecie es ON es.id = be.ediSpecieFk - AND ibwg.ediBotanic LIKE CONCAT( - IFNULL(eg.latinGenusName, ''), - IF(es.latinSpeciesName > '', - CONCAT(' ', es.latinSpeciesName), ''), - '%') - WHERE s.ticketFk = ? - GROUP BY s.id - ORDER BY (it.isPackaging), s.concept, s.itemFk`, [ticketId]); - }, - fetchTaxes(ticketId) { - return db.rawSql(`CALL vn.ticketGetTaxAdd(?)`, [ticketId]).then(rows => { - return rows[0]; - }); - }, - fetchPackagings(ticketId) { - return db.rawSql( - `SELECT - tp.quantity, - i.name, - p.itemFk - FROM ticketPackaging tp - JOIN packaging p ON p.id = tp.packagingFk - JOIN item i ON i.id = p.itemFk - WHERE tp.ticketFk = ? - ORDER BY itemFk`, [ticketId]); - }, - fetchServices(ticketId) { - return db.rawSql( - `SELECT - tc.description taxDescription, - ts.description, - ts.quantity, - ts.price - FROM ticketService ts - JOIN taxClass tc ON tc.id = ts.taxClassFk - WHERE ts.ticketFk = ?`, [ticketId]); + return db.findOneFromDef(`getAddress`, [ticketId], __dirname); }, fetchSignature(ticketId) { - return db.findOne( - `SELECT - d.id, - d.created - FROM ticket t - JOIN ticketDms dt ON dt.ticketFk = t.id - JOIN dms d ON d.id = dt.dmsFk - AND d.file LIKE '%.png' - WHERE t.id = ?`, [ticketId]); + return db.findOneFromDef('getSignature', [ticketId], __dirname); }, + fetchTaxes(ticketId) { + return db.findOneFromDef(`getTaxes`, [ticketId], __dirname); + }, + fetchSales(ticketId) { + return db.rawSqlFromDef('getSales', [ticketId], __dirname); + }, + fetchPackagings(ticketId) { + return db.rawSqlFromDef('getPackagings', [ticketId], __dirname); + }, + fetchServices(ticketId) { + return db.rawSqlFromDef('getServices', [ticketId], __dirname); + }, + getSubTotal() { let subTotal = 0.00; this.sales.forEach(sale => { @@ -194,7 +92,7 @@ module.exports = { }, getTotal() { return this.getTotalBase() + this.getTotalTax(); - }, + } }, components: { 'report-header': reportHeader.build(), diff --git a/print/templates/reports/delivery-note/sql/getAddress.sql b/print/templates/reports/delivery-note/sql/getAddress.sql new file mode 100644 index 0000000000..86414635ae --- /dev/null +++ b/print/templates/reports/delivery-note/sql/getAddress.sql @@ -0,0 +1,11 @@ +SELECT + a.nickname, + a.street, + a.postalCode, + a.city, + p.name province +FROM ticket t + JOIN address a ON a.clientFk = t.clientFk + AND a.id = t.addressFk + LEFT JOIN province p ON p.id = a.provinceFk +WHERE t.id = ? \ No newline at end of file diff --git a/print/templates/reports/delivery-note/sql/getClient.sql b/print/templates/reports/delivery-note/sql/getClient.sql new file mode 100644 index 0000000000..5318a98c79 --- /dev/null +++ b/print/templates/reports/delivery-note/sql/getClient.sql @@ -0,0 +1,8 @@ +SELECT + c.id, + c.socialName, + c.street, + c.fi +FROM ticket t + JOIN client c ON c.id = t.clientFk +WHERE t.id = ? \ No newline at end of file diff --git a/print/templates/reports/delivery-note/sql/getPackagings.sql b/print/templates/reports/delivery-note/sql/getPackagings.sql new file mode 100644 index 0000000000..75a82a0aad --- /dev/null +++ b/print/templates/reports/delivery-note/sql/getPackagings.sql @@ -0,0 +1,9 @@ +SELECT + tp.quantity, + i.name, + p.itemFk +FROM ticketPackaging tp + JOIN packaging p ON p.id = tp.packagingFk + JOIN item i ON i.id = p.itemFk +WHERE tp.ticketFk = ? +ORDER BY itemFk \ No newline at end of file diff --git a/print/templates/reports/delivery-note/sql/getSales.sql b/print/templates/reports/delivery-note/sql/getSales.sql new file mode 100644 index 0000000000..a563c19f07 --- /dev/null +++ b/print/templates/reports/delivery-note/sql/getSales.sql @@ -0,0 +1,53 @@ +SELECT + s.id, + s.itemFk, + s.concept, + s.quantity, + s.price, + s.price - SUM(IF(ctr.id = 6, sc.value, 0)) netPrice, + s.discount, + i.size, + i.stems, + i.category, + it.id itemTypeId, + o.code AS origin, + i.inkFk, + s.ticketFk, + tcl.code vatType, + ibwg.ediBotanic, + ppa.denomination, + pp.number passportNumber, + be.isProtectedZone, c.code AS countryCode, + i.tag5, + i.value5, + i.tag6, + i.value6, + i.tag7, + i.value7 +FROM vn.sale s + LEFT JOIN saleComponent sc ON sc.saleFk = s.id + LEFT JOIN component cr ON cr.id = sc.componentFk + LEFT JOIN componentType ctr ON ctr.id = cr.typeFk + LEFT JOIN item i ON i.id = s.itemFk + LEFT JOIN ticket t ON t.id = s.ticketFk + LEFT JOIN origin o ON o.id = i.originFk + LEFT JOIN country c ON c.id = o.countryFk + LEFT JOIN supplier sp ON sp.id = t.companyFk + LEFT JOIN itemType it ON it.id = i.typeFk + LEFT JOIN itemTaxCountry itc ON itc.itemFk = i.id + AND itc.countryFk = sp.countryFk + LEFT JOIN taxClass tcl ON tcl.id = itc.taxClassFk + LEFT JOIN plantpassport pp ON pp.producerFk = i.producerFk + LEFT JOIN plantpassportAuthority ppa ON ppa.id = pp.plantpassportAuthorityFk + LEFT JOIN itemBotanicalWithGenus ibwg ON ibwg.itemFk = i.id + LEFT JOIN botanicExport be ON be.restriction = 'pasaporte fitosanitario' + LEFT JOIN ediGenus eg ON eg.id = be.ediGenusFk + LEFT JOIN ediSpecie es ON es.id = be.ediSpecieFk + AND ibwg.ediBotanic LIKE CONCAT( + IFNULL(eg.latinGenusName, ''), + IF(es.latinSpeciesName > '', + CONCAT(' ', es.latinSpeciesName), ''), + '%') +WHERE s.ticketFk = ? +GROUP BY s.id +ORDER BY (it.isPackaging), s.concept, s.itemFk \ No newline at end of file diff --git a/print/templates/reports/delivery-note/sql/getServices.sql b/print/templates/reports/delivery-note/sql/getServices.sql new file mode 100644 index 0000000000..fbb4a53c45 --- /dev/null +++ b/print/templates/reports/delivery-note/sql/getServices.sql @@ -0,0 +1,8 @@ +SELECT + tc.description taxDescription, + ts.description, + ts.quantity, + ts.price +FROM ticketService ts + JOIN taxClass tc ON tc.id = ts.taxClassFk +WHERE ts.ticketFk = ? \ No newline at end of file diff --git a/print/templates/reports/delivery-note/sql/getSignature.sql b/print/templates/reports/delivery-note/sql/getSignature.sql new file mode 100644 index 0000000000..2eb83b3acd --- /dev/null +++ b/print/templates/reports/delivery-note/sql/getSignature.sql @@ -0,0 +1,8 @@ +SELECT + d.id, + d.created +FROM ticket t + JOIN ticketDms dt ON dt.ticketFk = t.id + JOIN dms d ON d.id = dt.dmsFk + AND d.file LIKE '%.png' +WHERE t.id = ? \ No newline at end of file diff --git a/print/templates/reports/delivery-note/sql/getTaxes.sql b/print/templates/reports/delivery-note/sql/getTaxes.sql new file mode 100644 index 0000000000..47e3b825f9 --- /dev/null +++ b/print/templates/reports/delivery-note/sql/getTaxes.sql @@ -0,0 +1 @@ +CALL vn.ticketGetTaxAdd(?) \ No newline at end of file diff --git a/print/templates/reports/delivery-note/sql/getTicket.sql b/print/templates/reports/delivery-note/sql/getTicket.sql new file mode 100644 index 0000000000..ccc3f9d25e --- /dev/null +++ b/print/templates/reports/delivery-note/sql/getTicket.sql @@ -0,0 +1,7 @@ +SELECT + t.id, + t.shipped, + c.code companyCode +FROM ticket t + JOIN company c ON c.id = t.companyFk +WHERE t.id = ? \ No newline at end of file diff --git a/print/templates/reports/driver-route/driver-route.js b/print/templates/reports/driver-route/driver-route.js index 0f84610460..a3f906864b 100755 --- a/print/templates/reports/driver-route/driver-route.js +++ b/print/templates/reports/driver-route/driver-route.js @@ -28,60 +28,10 @@ module.exports = { }, methods: { fetchRoutes(routesId) { - return db.rawSql( - `SELECT - r.id, - r.m3, - r.created, - r.time, - u.nickName userNickName, - v.tradeMark vehicleTradeMark, - v.model vehicleModel, - v.numberPlate plateNumber, - am.name agencyName - FROM route r - LEFT JOIN vehicle v ON v.id = r.vehicleFk - LEFT JOIN worker w ON w.id = r.workerFk - LEFT JOIN account.user u ON u.id = w.userFk - LEFT JOIN agencyMode am ON am.id = r.agencyModeFk - WHERE r.id IN(:routesId)`, {routesId}); + return db.rawSqlFromDef('routes', {routesId}, __dirname); }, fetchTickets(routesId) { - return db.rawSql( - `SELECT - t.nickname addressName, - t.packages, - t.priority, - t.id, - t.clientFk, - t.companyFk, - t.routeFk, - if(a.phone, a.phone, c.phone) AS phone, - if(a.mobile, a.mobile, c.mobile) AS mobile, - wh.name warehouseName, - a.city, - a.street, - a.postalCode, - LPAD(a.id, 5, '0') AS addressFk, - p.name province, - 0 AS import, - am.name ticketAgency, - tob.description, - s.shipFk, - u.nickName salesPersonName - FROM route r - LEFT JOIN ticket t ON t.routeFk = r.id - LEFT JOIN address a ON a.id = t.addressFk - LEFT JOIN client c ON c.id = t.clientFk - LEFT JOIN worker w ON w.id = client_getSalesPerson(t.clientFk, CURDATE()) - LEFT JOIN account.user u ON u.id = w.userFk - LEFT JOIN ticketObservation tob ON tob.ticketFk = t.id AND tob.observationTypeFk = 3 - LEFT JOIN province p ON a.provinceFk = p.id - LEFT JOIN warehouse wh ON wh.id = t.warehouseFk - LEFT JOIN agencyMode am ON am.id = t.agencyModeFk - LEFT JOIN stowaway s ON s.id = t.id - WHERE r.id IN(:routesId) - ORDER BY t.priority, t.id`, {routesId}); + return db.rawSqlFromDef('tickets', {routesId}, __dirname); } }, components: { diff --git a/print/templates/reports/driver-route/sql/routes.sql b/print/templates/reports/driver-route/sql/routes.sql new file mode 100644 index 0000000000..7c5278d013 --- /dev/null +++ b/print/templates/reports/driver-route/sql/routes.sql @@ -0,0 +1,16 @@ +SELECT + r.id, + r.m3, + r.created, + r.time, + u.nickName userNickName, + v.tradeMark vehicleTradeMark, + v.model vehicleModel, + v.numberPlate plateNumber, + am.name agencyName +FROM route r + LEFT JOIN vehicle v ON v.id = r.vehicleFk + LEFT JOIN worker w ON w.id = r.workerFk + LEFT JOIN account.user u ON u.id = w.userFk + LEFT JOIN agencyMode am ON am.id = r.agencyModeFk +WHERE r.id IN(:routesId) \ No newline at end of file diff --git a/print/templates/reports/driver-route/sql/tickets.sql b/print/templates/reports/driver-route/sql/tickets.sql new file mode 100644 index 0000000000..910a1ed556 --- /dev/null +++ b/print/templates/reports/driver-route/sql/tickets.sql @@ -0,0 +1,34 @@ +SELECT + t.nickname addressName, + t.packages, + t.priority, + t.id, + t.clientFk, + t.companyFk, + t.routeFk, + if(a.phone, a.phone, c.phone) AS phone, + if(a.mobile, a.mobile, c.mobile) AS mobile, + wh.name warehouseName, + a.city, + a.street, + a.postalCode, + LPAD(a.id, 5, '0') AS addressFk, + p.name province, + 0 AS import, + am.name ticketAgency, + tob.description, + s.shipFk, + u.nickName salesPersonName +FROM route r + LEFT JOIN ticket t ON t.routeFk = r.id + LEFT JOIN address a ON a.id = t.addressFk + LEFT JOIN client c ON c.id = t.clientFk + LEFT JOIN worker w ON w.id = client_getSalesPerson(t.clientFk, CURDATE()) + LEFT JOIN account.user u ON u.id = w.userFk + LEFT JOIN ticketObservation tob ON tob.ticketFk = t.id AND tob.observationTypeFk = 3 + LEFT JOIN province p ON a.provinceFk = p.id + LEFT JOIN warehouse wh ON wh.id = t.warehouseFk + LEFT JOIN agencyMode am ON am.id = t.agencyModeFk + LEFT JOIN stowaway s ON s.id = t.id +WHERE r.id IN(:routesId) +ORDER BY t.priority, t.id \ No newline at end of file diff --git a/print/templates/reports/entry-order/entry-order.js b/print/templates/reports/entry-order/entry-order.js index 55492fbafa..654ba3460f 100755 --- a/print/templates/reports/entry-order/entry-order.js +++ b/print/templates/reports/entry-order/entry-order.js @@ -18,50 +18,13 @@ module.exports = { }, methods: { fetchSupplier(entryId) { - return db.findOne( - `SELECT - s.name, - s.street, - s.nif, - s.postCode, - s.city, - p.name province - FROM supplier s - JOIN entry e ON e.supplierFk = s.id - LEFT JOIN province p ON p.id = s.provinceFk - WHERE e.id = ?`, [entryId]); + return db.findOneFromDef('supplier', [entryId], __dirname); }, fetchEntry(entryId) { - return db.findOne( - `SELECT - e.id, - e.ref, - e.notes, - c.code companyCode, - t.landed - FROM entry e - JOIN travel t ON t.id = e.travelFk - JOIN company c ON c.id = e.companyFk - WHERE e.id = ?`, [entryId]); + return db.findOneFromDef('entry', [entryId], __dirname); }, fetchBuys(entryId) { - return db.rawSql( - `SELECT - b.itemFk, - b.quantity, - b.buyingValue, - b.stickers box, - b.packing, - i.name itemName, - i.tag5, - i.value5, - i.tag6, - i.value6, - i.tag7, - i.value7 - FROM buy b - JOIN item i ON i.id = b.itemFk - WHERE b.entryFk = ?`, [entryId]); + return db.rawSqlFromDef('buys', [entryId], __dirname); }, getTotal() { let total = 0.00; diff --git a/print/templates/reports/entry-order/sql/buys.sql b/print/templates/reports/entry-order/sql/buys.sql new file mode 100644 index 0000000000..5bf9f2dfe8 --- /dev/null +++ b/print/templates/reports/entry-order/sql/buys.sql @@ -0,0 +1,16 @@ +SELECT + b.itemFk, + b.quantity, + b.buyingValue, + b.stickers box, + b.packing, + i.name itemName, + i.tag5, + i.value5, + i.tag6, + i.value6, + i.tag7, + i.value7 +FROM buy b + JOIN item i ON i.id = b.itemFk +WHERE b.entryFk = ? \ No newline at end of file diff --git a/print/templates/reports/entry-order/sql/entry.sql b/print/templates/reports/entry-order/sql/entry.sql new file mode 100644 index 0000000000..44feaae018 --- /dev/null +++ b/print/templates/reports/entry-order/sql/entry.sql @@ -0,0 +1,10 @@ +SELECT + e.id, + e.ref, + e.notes, + c.code companyCode, + t.landed +FROM entry e + JOIN travel t ON t.id = e.travelFk + JOIN company c ON c.id = e.companyFk +WHERE e.id = ? \ No newline at end of file diff --git a/print/templates/reports/entry-order/sql/supplier.sql b/print/templates/reports/entry-order/sql/supplier.sql new file mode 100644 index 0000000000..11a2bc602d --- /dev/null +++ b/print/templates/reports/entry-order/sql/supplier.sql @@ -0,0 +1,11 @@ +SELECT + s.name, + s.street, + s.nif, + s.postCode, + s.city, + p.name province +FROM supplier s + JOIN entry e ON e.supplierFk = s.id + LEFT JOIN province p ON p.id = s.provinceFk +WHERE e.id = ? \ No newline at end of file diff --git a/print/templates/reports/item-label/item-label.js b/print/templates/reports/item-label/item-label.js index 60139bbb28..111d5a4a03 100755 --- a/print/templates/reports/item-label/item-label.js +++ b/print/templates/reports/item-label/item-label.js @@ -30,26 +30,10 @@ module.exports = { }, methods: { fetchItem(id, warehouseId) { - return db.findOne( - `SELECT - i.id, - i.name, - i.stems, - i.size, - b.packing - FROM vn.item i - JOIN cache.last_buy clb ON clb.item_id = i.id - JOIN vn.buy b ON b.id = clb.buy_id - JOIN vn.entry e ON e.id = b.entryFk - WHERE i.id = ? AND clb.warehouse_id = ?`, [id, warehouseId]); + return db.findOneFromDef('item', [id, warehouseId], __dirname); }, fetchItemTags(itemId) { - return db.rawSql( - `SELECT t.code, t.name, it.value - FROM vn.itemTag it - JOIN vn.tag t ON t.id = it.tagFk - WHERE it.itemFk = ? - `, [itemId]).then(rows => { + return db.rawSqlFromDef('itemTags', [itemId], __dirname).then(rows => { const tags = {}; rows.forEach(row => tags[row.code] = row.value); diff --git a/print/templates/reports/item-label/sql/item.sql b/print/templates/reports/item-label/sql/item.sql new file mode 100644 index 0000000000..4b042c320e --- /dev/null +++ b/print/templates/reports/item-label/sql/item.sql @@ -0,0 +1,11 @@ +SELECT + i.id, + i.name, + i.stems, + i.size, + b.packing +FROM vn.item i + JOIN cache.last_buy clb ON clb.item_id = i.id + JOIN vn.buy b ON b.id = clb.buy_id + JOIN vn.entry e ON e.id = b.entryFk +WHERE i.id = ? AND clb.warehouse_id = ? \ No newline at end of file diff --git a/print/templates/reports/item-label/sql/itemTags.sql b/print/templates/reports/item-label/sql/itemTags.sql new file mode 100644 index 0000000000..3c20098a6f --- /dev/null +++ b/print/templates/reports/item-label/sql/itemTags.sql @@ -0,0 +1,4 @@ +SELECT t.code, t.name, it.value +FROM vn.itemTag it + JOIN vn.tag t ON t.id = it.tagFk +WHERE it.itemFk = ? \ No newline at end of file diff --git a/print/templates/reports/letter-debtor/letter-debtor.js b/print/templates/reports/letter-debtor/letter-debtor.js index 7da1b438c9..2afc96b467 100755 --- a/print/templates/reports/letter-debtor/letter-debtor.js +++ b/print/templates/reports/letter-debtor/letter-debtor.js @@ -24,29 +24,13 @@ module.exports = { }, methods: { fetchClient(clientId) { - return db.findOne( - `SELECT - c.id, - c.socialName, - c.street, - c.postcode, - c.city, - c.fi, - p.name AS province, - ct.country - FROM client c - JOIN country ct ON ct.id = c.countryFk - LEFT JOIN province p ON p.id = c.provinceFk - WHERE c.id = ?`, [clientId]); + return db.findOneFromDef('client', [clientId], __dirname); }, fetchSales(clientId, companyId) { - return db.rawSql( - `CALL vn.clientGetDebtDiary(:clientId, :companyId)`, { - clientId: clientId, - companyId: companyId, - }).then(rows => { - return rows[0]; - }); + return db.findOneFromDef('sales', { + clientId: clientId, + companyId: companyId, + }, __dirname); }, getBalance(sale) { if (sale.debtOut) diff --git a/print/templates/reports/letter-debtor/sql/client.sql b/print/templates/reports/letter-debtor/sql/client.sql new file mode 100644 index 0000000000..d675cf168d --- /dev/null +++ b/print/templates/reports/letter-debtor/sql/client.sql @@ -0,0 +1,13 @@ +SELECT + c.id, + c.socialName, + c.street, + c.postcode, + c.city, + c.fi, + p.name AS province, + ct.country +FROM client c + JOIN country ct ON ct.id = c.countryFk + LEFT JOIN province p ON p.id = c.provinceFk +WHERE c.id = ? \ No newline at end of file diff --git a/print/templates/reports/letter-debtor/sql/sales.sql b/print/templates/reports/letter-debtor/sql/sales.sql new file mode 100644 index 0000000000..3bf7db9655 --- /dev/null +++ b/print/templates/reports/letter-debtor/sql/sales.sql @@ -0,0 +1 @@ +CALL vn.clientGetDebtDiary(:clientId, :companyId) \ No newline at end of file diff --git a/print/templates/reports/receipt/receipt.js b/print/templates/reports/receipt/receipt.js index 1b220bddaf..7ba7f5afea 100755 --- a/print/templates/reports/receipt/receipt.js +++ b/print/templates/reports/receipt/receipt.js @@ -14,27 +14,10 @@ module.exports = { }, methods: { fetchClient(receiptId) { - return db.findOne( - `SELECT - c.id, - c.socialName, - u.lang locale - FROM receipt r - JOIN client c ON c.id = r.clientFk - JOIN account.user u ON u.id = c.id - WHERE r.id = ?`, [receiptId]); + return db.findOneFromDef('client', [receiptId], __dirname); }, fetchReceipt(receiptId) { - return db.findOne( - `SELECT - r.id, - r.amountPaid, - r.amountUnpaid, - r.payed, - r.companyFk - FROM receipt r - JOIN client c ON c.id = r.clientFk - WHERE r.id = ?`, [receiptId]); + return db.findOneFromDef('receipt', [receiptId], __dirname); } }, components: { diff --git a/print/templates/reports/receipt/sql/client.sql b/print/templates/reports/receipt/sql/client.sql new file mode 100644 index 0000000000..e4029170ef --- /dev/null +++ b/print/templates/reports/receipt/sql/client.sql @@ -0,0 +1,8 @@ +SELECT + c.id, + c.socialName, + u.lang locale +FROM receipt r + JOIN client c ON c.id = r.clientFk + JOIN account.user u ON u.id = c.id +WHERE r.id = ? \ No newline at end of file diff --git a/print/templates/reports/receipt/sql/receipt.sql b/print/templates/reports/receipt/sql/receipt.sql new file mode 100644 index 0000000000..9b39194958 --- /dev/null +++ b/print/templates/reports/receipt/sql/receipt.sql @@ -0,0 +1,9 @@ +SELECT + r.id, + r.amountPaid, + r.amountUnpaid, + r.payed, + r.companyFk +FROM receipt r + JOIN client c ON c.id = r.clientFk +WHERE r.id = ? \ No newline at end of file diff --git a/print/templates/reports/sepa-core/sepa-core.js b/print/templates/reports/sepa-core/sepa-core.js index 0c60202104..f315397c26 100755 --- a/print/templates/reports/sepa-core/sepa-core.js +++ b/print/templates/reports/sepa-core/sepa-core.js @@ -21,46 +21,10 @@ const rptSepaCore = { }, methods: { fetchClient(clientId, companyId) { - return db.findOne( - `SELECT - c.id, - m.code mandateCode, - c.socialName, - c.street, - c.postcode, - c.city, - c.fi, - p.name AS province, - ct.country, - ct.code AS countryCode, - ct.ibanLength AS ibanLength - FROM client c - JOIN country ct ON ct.id = c.countryFk - LEFT JOIN mandate m ON m.clientFk = c.id - AND m.companyFk = :companyId AND m.finished IS NULL - LEFT JOIN province p ON p.id = c.provinceFk - WHERE (m.companyFk = :companyId OR m.companyFk IS NULL) AND c.id = :clientId - ORDER BY m.created DESC LIMIT 1`, {companyId, clientId}); + return db.findOneFromDef('client', {companyId, clientId}, __dirname); }, fetchSupplier(clientId, companyId) { - return db.findOne( - `SELECT - m.code mandateCode, - s.name, - s.street, - sc.country, - s.postCode, - s.city, - sp.name province - FROM client c - LEFT JOIN mandate m ON m.clientFk = c.id - AND m.companyFk = :companyId AND m.finished IS NULL - LEFT JOIN supplier s ON s.id = m.companyFk - LEFT JOIN country sc ON sc.id = s.countryFk - LEFT JOIN province sp ON sp.id = s.provinceFk - LEFT JOIN province p ON p.id = c.provinceFk - WHERE (m.companyFk = :companyId OR m.companyFk IS NULL) AND c.id = :clientId - ORDER BY m.created DESC LIMIT 1`, {companyId, clientId}); + return db.findOneFromDef('supplier', {companyId, clientId}, __dirname); } }, components: { diff --git a/print/templates/reports/sepa-core/sql/client.sql b/print/templates/reports/sepa-core/sql/client.sql new file mode 100644 index 0000000000..d00120f899 --- /dev/null +++ b/print/templates/reports/sepa-core/sql/client.sql @@ -0,0 +1,19 @@ +SELECT + c.id, + m.code mandateCode, + c.socialName, + c.street, + c.postcode, + c.city, + c.fi, + p.name AS province, + ct.country, + ct.code AS countryCode, + ct.ibanLength AS ibanLength +FROM client c + JOIN country ct ON ct.id = c.countryFk + LEFT JOIN mandate m ON m.clientFk = c.id + AND m.companyFk = :companyId AND m.finished IS NULL + LEFT JOIN province p ON p.id = c.provinceFk +WHERE (m.companyFk = :companyId OR m.companyFk IS NULL) AND c.id = :clientId +ORDER BY m.created DESC LIMIT 1 \ No newline at end of file diff --git a/print/templates/reports/sepa-core/sql/supplier.sql b/print/templates/reports/sepa-core/sql/supplier.sql new file mode 100644 index 0000000000..390c3494a8 --- /dev/null +++ b/print/templates/reports/sepa-core/sql/supplier.sql @@ -0,0 +1,17 @@ +SELECT + m.code mandateCode, + s.name, + s.street, + sc.country, + s.postCode, + s.city, + sp.name province +FROM client c + LEFT JOIN mandate m ON m.clientFk = c.id + AND m.companyFk = :companyId AND m.finished IS NULL + LEFT JOIN supplier s ON s.id = m.companyFk + LEFT JOIN country sc ON sc.id = s.countryFk + LEFT JOIN province sp ON sp.id = s.provinceFk + LEFT JOIN province p ON p.id = c.provinceFk +WHERE (m.companyFk = :companyId OR m.companyFk IS NULL) AND c.id = :clientId +ORDER BY m.created DESC LIMIT 1 \ No newline at end of file diff --git a/print/templates/reports/zone/sql/zone.sql b/print/templates/reports/zone/sql/zone.sql new file mode 100644 index 0000000000..088438a8d5 --- /dev/null +++ b/print/templates/reports/zone/sql/zone.sql @@ -0,0 +1,9 @@ +SELECT + r.id, + r.time, + am.name agencyName, + v.numberPlate plateNumber +FROM route r + JOIN agencyMode am ON am.id = r.agencyModeFk + JOIN vehicle v ON v.id = r.vehicleFk +WHERE r.id = :routeId \ No newline at end of file diff --git a/print/templates/reports/zone/zone.js b/print/templates/reports/zone/zone.js index 4587625635..3bd0c473aa 100755 --- a/print/templates/reports/zone/zone.js +++ b/print/templates/reports/zone/zone.js @@ -10,16 +10,7 @@ module.exports = { }, methods: { fetchZone(routeId) { - return db.findOne( - `SELECT - r.id, - r.time, - am.name agencyName, - v.numberPlate plateNumber - FROM route r - JOIN agencyMode am ON am.id = r.agencyModeFk - JOIN vehicle v ON v.id = r.vehicleFk - WHERE r.id = :routeId`, {routeId}); + return db.findOneFromDef('zone', {routeId}, __dirname); } }, props: { From f17e9058b3eb14809ac645a85c29905e7668bd12 Mon Sep 17 00:00:00 2001 From: joan Date: Mon, 28 Sep 2020 13:54:02 +0200 Subject: [PATCH 2/3] Refactor --- print/core/component.js | 3 +- print/core/database.js | 30 +------- print/core/mixins/db-helper.js | 74 +++++++++++++++++++ print/core/mixins/index.js | 1 + .../email/client-welcome/client-welcome.js | 3 +- .../letter-debtor-nd/letter-debtor-nd.js | 3 +- .../letter-debtor-st/letter-debtor-st.js | 2 +- .../email/payment-update/payment-update.js | 3 +- .../email/printer-setup/printer-setup.js | 3 +- .../campaign-metrics/campaign-metrics.js | 5 +- .../claim-pickup-order/claim-pickup-order.js | 5 +- .../reports/delivery-note/delivery-note.js | 17 ++--- .../sql/{getAddress.sql => address.sql} | 0 .../sql/{getClient.sql => client.sql} | 0 .../sql/{getPackagings.sql => packagings.sql} | 0 .../sql/{getSales.sql => sales.sql} | 0 .../sql/{getServices.sql => services.sql} | 0 .../sql/{getSignature.sql => signature.sql} | 0 .../sql/{getTaxes.sql => taxes.sql} | 0 .../sql/{getTicket.sql => ticket.sql} | 0 .../reports/driver-route/driver-route.js | 5 +- .../reports/entry-order/entry-order.js | 7 +- .../reports/item-label/item-label.js | 5 +- .../reports/letter-debtor/letter-debtor.js | 7 +- print/templates/reports/receipt/receipt.js | 5 +- .../templates/reports/sepa-core/sepa-core.js | 5 +- .../reports/zone/assets/css/style.css | 5 +- print/templates/reports/zone/options.json | 4 + print/templates/reports/zone/zone.js | 4 +- 29 files changed, 118 insertions(+), 78 deletions(-) create mode 100644 print/core/mixins/db-helper.js rename print/templates/reports/delivery-note/sql/{getAddress.sql => address.sql} (100%) rename print/templates/reports/delivery-note/sql/{getClient.sql => client.sql} (100%) rename print/templates/reports/delivery-note/sql/{getPackagings.sql => packagings.sql} (100%) rename print/templates/reports/delivery-note/sql/{getSales.sql => sales.sql} (100%) rename print/templates/reports/delivery-note/sql/{getServices.sql => services.sql} (100%) rename print/templates/reports/delivery-note/sql/{getSignature.sql => signature.sql} (100%) rename print/templates/reports/delivery-note/sql/{getTaxes.sql => taxes.sql} (100%) rename print/templates/reports/delivery-note/sql/{getTicket.sql => ticket.sql} (100%) create mode 100644 print/templates/reports/zone/options.json diff --git a/print/core/component.js b/print/core/component.js index 4f439f1a92..4985cd061f 100644 --- a/print/core/component.js +++ b/print/core/component.js @@ -93,10 +93,11 @@ class Component { const component = this.build(); const i18n = new VueI18n(config.i18n); + const props = {tplPath: this.path, ...this.args}; this._component = new Vue({ i18n: i18n, render: h => h(component, { - props: this.args + props: props }) }); diff --git a/print/core/database.js b/print/core/database.js index 578ae86d60..f8bd098228 100644 --- a/print/core/database.js +++ b/print/core/database.js @@ -1,7 +1,6 @@ const mysql = require('mysql2/promise'); const config = require('./config.js'); const fs = require('fs-extra'); -const path = require('path'); module.exports = { init() { @@ -34,9 +33,8 @@ module.exports = { * * @return {Object} - Result promise */ - rawSqlFromDef(queryName, params, dirname = '.') { - const sqlPath = path.join(dirname, 'sql', `${queryName}.sql`); - const query = fs.readFileSync(sqlPath, 'utf8'); + rawSqlFromDef(queryName, params) { + const query = fs.readFileSync(`${queryName}.sql`, 'utf8'); return this.rawSql(query, params); }, @@ -90,29 +88,5 @@ module.exports = { return this.findOneFromDef(queryName, params, dirname).then(row => { return Object.values(row)[0]; }); - }, - - getCaller() { - let originalFunc = Error.prepareStackTrace; - let callerfile; - try { - const err = new Error(); - - Error.prepareStackTrace = function(err, stack) { - return stack; - }; - - const currentfile = err.stack.shift().getFileName(); - - while (err.stack.length) { - callerfile = err.stack.shift().getFileName(); - - if (currentfile !== callerfile) break; - } - } catch (e) {} - - Error.prepareStackTrace = originalFunc; - - return path.dirname(callerfile); } }; diff --git a/print/core/mixins/db-helper.js b/print/core/mixins/db-helper.js new file mode 100644 index 0000000000..06f4e196d0 --- /dev/null +++ b/print/core/mixins/db-helper.js @@ -0,0 +1,74 @@ +const Vue = require('vue'); +const path = require('path'); +const db = require('../database'); + +const dbHelper = { + methods: { + /** + * Makes a query from a raw sql + * @param {String} query - The raw SQL query + * @param {Object} params - Parameterized values + * + * @return {Object} - Result promise + */ + rawSql: db.rawSql, + + /** + * Makes a query from a SQL file + * @param {String} queryName - The SQL file name + * @param {Object} params - Parameterized values + * + * @return {Object} - Result promise + */ + rawSqlFromDef(queryName, params) { + const absolutePath = path.join(__dirname, '../', this.tplPath, 'sql', queryName); + return db.rawSqlFromDef(absolutePath, params); + }, + + /** + * Returns the first row from a given raw sql + * @param {String} query - The raw SQL query + * @param {Object} params - Parameterized values + * + * @return {Object} - Result promise + */ + findOne: db.findOne, + + /** + * Returns the first row from a given SQL file + * @param {String} queryName - The SQL file name + * @param {Object} params - Parameterized values + * + * @return {Object} - Result promise + */ + findOneFromDef(queryName, params) { + return this.rawSqlFromDef(queryName, params) + .then(([row]) => row); + }, + + /** + * Returns the first property from a given raw sql + * @param {String} query - The raw SQL query + * @param {Object} params - Parameterized values + * + * @return {Object} - Result promise + */ + findValue: db.findValue, + + /** + * Returns the first property from a given SQL file + * @param {String} queryName - The SQL file name + * @param {Object} params - Parameterized values + * + * @return {Object} - Result promise + */ + findValueFromDef(queryName, params) { + return this.findOneFromDef(queryName, params).then(row => { + return Object.values(row)[0]; + }); + } + }, + props: ['tplPath'] +}; + +Vue.mixin(dbHelper); diff --git a/print/core/mixins/index.js b/print/core/mixins/index.js index ea8205d750..ba9975a37b 100644 --- a/print/core/mixins/index.js +++ b/print/core/mixins/index.js @@ -2,3 +2,4 @@ require('./image-src'); require('./user-locale'); require('./prop-validator'); +require('./db-helper'); diff --git a/print/templates/email/client-welcome/client-welcome.js b/print/templates/email/client-welcome/client-welcome.js index 1a0624548e..f562339ccb 100755 --- a/print/templates/email/client-welcome/client-welcome.js +++ b/print/templates/email/client-welcome/client-welcome.js @@ -1,5 +1,4 @@ const Component = require(`${appPath}/core/component`); -const db = require(`${appPath}/core/database`); const emailHeader = new Component('email-header'); const emailFooter = new Component('email-footer'); @@ -10,7 +9,7 @@ module.exports = { }, methods: { fetchClient(clientId) { - return db.findOneFromDef('client', [clientId], __dirname); + return this.findOneFromDef('client', [clientId]); }, }, components: { diff --git a/print/templates/email/letter-debtor-nd/letter-debtor-nd.js b/print/templates/email/letter-debtor-nd/letter-debtor-nd.js index fa10eaaafe..ba9f7957d0 100755 --- a/print/templates/email/letter-debtor-nd/letter-debtor-nd.js +++ b/print/templates/email/letter-debtor-nd/letter-debtor-nd.js @@ -1,5 +1,4 @@ const Component = require(`${appPath}/core/component`); -const db = require(`${appPath}/core/database`); const emailHeader = new Component('email-header'); const emailFooter = new Component('email-footer'); const attachment = new Component('attachment'); @@ -18,7 +17,7 @@ module.exports = { }, methods: { fetchDebtor(clientId, companyId) { - return db.findOneFromDef('client', [clientId, companyId], __dirname); + return this.findOneFromDef('client', [clientId, companyId]); } }, components: { diff --git a/print/templates/email/letter-debtor-st/letter-debtor-st.js b/print/templates/email/letter-debtor-st/letter-debtor-st.js index 3f9039d176..56fc7c8a81 100755 --- a/print/templates/email/letter-debtor-st/letter-debtor-st.js +++ b/print/templates/email/letter-debtor-st/letter-debtor-st.js @@ -18,7 +18,7 @@ module.exports = { }, methods: { fetchDebtor(clientId, companyId) { - return db.findOneFromDef('client', [clientId, companyId], __dirname); + return this.findOneFromDef('client', [clientId, companyId]); } }, components: { diff --git a/print/templates/email/payment-update/payment-update.js b/print/templates/email/payment-update/payment-update.js index 249fb917f3..a411d78c82 100755 --- a/print/templates/email/payment-update/payment-update.js +++ b/print/templates/email/payment-update/payment-update.js @@ -1,5 +1,4 @@ const Component = require(`${appPath}/core/component`); -const db = require(`${appPath}/core/database`); const emailHeader = new Component('email-header'); const emailFooter = new Component('email-footer'); @@ -18,7 +17,7 @@ module.exports = { }, methods: { fetchPayMethod(clientId) { - return db.findOneFromDef('payMethod', {clientId: clientId}, __dirname); + return this.findOneFromDef('payMethod', {clientId: clientId}); } }, components: { diff --git a/print/templates/email/printer-setup/printer-setup.js b/print/templates/email/printer-setup/printer-setup.js index b15e144741..f6f168163d 100755 --- a/print/templates/email/printer-setup/printer-setup.js +++ b/print/templates/email/printer-setup/printer-setup.js @@ -1,5 +1,4 @@ const Component = require(`${appPath}/core/component`); -const db = require(`${appPath}/core/database`); const emailHeader = new Component('email-header'); const emailFooter = new Component('email-footer'); const attachment = new Component('attachment'); @@ -15,7 +14,7 @@ module.exports = { }, methods: { fetchClient(clientId) { - return db.findOneFromDef('client', [clientId], __dirname); + return this.findOneFromDef('client', [clientId]); } }, components: { diff --git a/print/templates/reports/campaign-metrics/campaign-metrics.js b/print/templates/reports/campaign-metrics/campaign-metrics.js index e8bd317e81..07d261a617 100755 --- a/print/templates/reports/campaign-metrics/campaign-metrics.js +++ b/print/templates/reports/campaign-metrics/campaign-metrics.js @@ -1,5 +1,4 @@ const Component = require(`${appPath}/core/component`); -const db = require(`${appPath}/core/database`); const reportHeader = new Component('report-header'); const reportFooter = new Component('report-footer'); @@ -14,10 +13,10 @@ module.exports = { }, methods: { fetchClient(clientId) { - return db.findOneFromDef('client', [clientId], __dirname); + return this.findOneFromDef('client', [clientId]); }, fetchSales(clientId, from, to) { - return db.rawSqlFromDef('sales', [clientId, from, to], __dirname); + return this.rawSqlFromDef('sales', [clientId, from, to]); }, }, components: { diff --git a/print/templates/reports/claim-pickup-order/claim-pickup-order.js b/print/templates/reports/claim-pickup-order/claim-pickup-order.js index fc25db35f9..0d1228a4e0 100755 --- a/print/templates/reports/claim-pickup-order/claim-pickup-order.js +++ b/print/templates/reports/claim-pickup-order/claim-pickup-order.js @@ -1,5 +1,4 @@ const Component = require(`${appPath}/core/component`); -const db = require(`${appPath}/core/database`); const reportHeader = new Component('report-header'); const reportFooter = new Component('report-footer'); @@ -21,10 +20,10 @@ module.exports = { }, methods: { fetchClient(claimId) { - return db.findOneFromDef('client', [claimId], __dirname); + return this.findOneFromDef('client', [claimId]); }, fetchSales(claimId) { - return db.rawSqlFromDef('sales', [claimId], __dirname); + return this.rawSqlFromDef('sales', [claimId]); }, }, components: { diff --git a/print/templates/reports/delivery-note/delivery-note.js b/print/templates/reports/delivery-note/delivery-note.js index e4ef9e26e5..22b0a7cf68 100755 --- a/print/templates/reports/delivery-note/delivery-note.js +++ b/print/templates/reports/delivery-note/delivery-note.js @@ -1,5 +1,4 @@ const config = require(`${appPath}/core/config`); -const db = require(`${appPath}/core/database`); const Component = require(`${appPath}/core/component`); const reportHeader = new Component('report-header'); const reportFooter = new Component('report-footer'); @@ -42,28 +41,28 @@ module.exports = { }, methods: { fetchClient(ticketId) { - return db.findOneFromDef('getClient', [ticketId], __dirname); + return this.findOneFromDef('client', [ticketId]); }, fetchTicket(ticketId) { - return db.findOneFromDef('getTicket', [ticketId], __dirname); + return this.findOneFromDef('ticket', [ticketId]); }, fetchAddress(ticketId) { - return db.findOneFromDef(`getAddress`, [ticketId], __dirname); + return this.findOneFromDef(`address`, [ticketId]); }, fetchSignature(ticketId) { - return db.findOneFromDef('getSignature', [ticketId], __dirname); + return this.findOneFromDef('signature', [ticketId]); }, fetchTaxes(ticketId) { - return db.findOneFromDef(`getTaxes`, [ticketId], __dirname); + return this.findOneFromDef(`taxes`, [ticketId]); }, fetchSales(ticketId) { - return db.rawSqlFromDef('getSales', [ticketId], __dirname); + return this.rawSqlFromDef('sales', [ticketId]); }, fetchPackagings(ticketId) { - return db.rawSqlFromDef('getPackagings', [ticketId], __dirname); + return this.rawSqlFromDef('packagings', [ticketId]); }, fetchServices(ticketId) { - return db.rawSqlFromDef('getServices', [ticketId], __dirname); + return this.rawSqlFromDef('services', [ticketId]); }, getSubTotal() { diff --git a/print/templates/reports/delivery-note/sql/getAddress.sql b/print/templates/reports/delivery-note/sql/address.sql similarity index 100% rename from print/templates/reports/delivery-note/sql/getAddress.sql rename to print/templates/reports/delivery-note/sql/address.sql diff --git a/print/templates/reports/delivery-note/sql/getClient.sql b/print/templates/reports/delivery-note/sql/client.sql similarity index 100% rename from print/templates/reports/delivery-note/sql/getClient.sql rename to print/templates/reports/delivery-note/sql/client.sql diff --git a/print/templates/reports/delivery-note/sql/getPackagings.sql b/print/templates/reports/delivery-note/sql/packagings.sql similarity index 100% rename from print/templates/reports/delivery-note/sql/getPackagings.sql rename to print/templates/reports/delivery-note/sql/packagings.sql diff --git a/print/templates/reports/delivery-note/sql/getSales.sql b/print/templates/reports/delivery-note/sql/sales.sql similarity index 100% rename from print/templates/reports/delivery-note/sql/getSales.sql rename to print/templates/reports/delivery-note/sql/sales.sql diff --git a/print/templates/reports/delivery-note/sql/getServices.sql b/print/templates/reports/delivery-note/sql/services.sql similarity index 100% rename from print/templates/reports/delivery-note/sql/getServices.sql rename to print/templates/reports/delivery-note/sql/services.sql diff --git a/print/templates/reports/delivery-note/sql/getSignature.sql b/print/templates/reports/delivery-note/sql/signature.sql similarity index 100% rename from print/templates/reports/delivery-note/sql/getSignature.sql rename to print/templates/reports/delivery-note/sql/signature.sql diff --git a/print/templates/reports/delivery-note/sql/getTaxes.sql b/print/templates/reports/delivery-note/sql/taxes.sql similarity index 100% rename from print/templates/reports/delivery-note/sql/getTaxes.sql rename to print/templates/reports/delivery-note/sql/taxes.sql diff --git a/print/templates/reports/delivery-note/sql/getTicket.sql b/print/templates/reports/delivery-note/sql/ticket.sql similarity index 100% rename from print/templates/reports/delivery-note/sql/getTicket.sql rename to print/templates/reports/delivery-note/sql/ticket.sql diff --git a/print/templates/reports/driver-route/driver-route.js b/print/templates/reports/driver-route/driver-route.js index a3f906864b..a93ad2a98c 100755 --- a/print/templates/reports/driver-route/driver-route.js +++ b/print/templates/reports/driver-route/driver-route.js @@ -1,5 +1,4 @@ const Component = require(`${appPath}/core/component`); -const db = require(`${appPath}/core/database`); const reportHeader = new Component('report-header'); const reportFooter = new Component('report-footer'); @@ -28,10 +27,10 @@ module.exports = { }, methods: { fetchRoutes(routesId) { - return db.rawSqlFromDef('routes', {routesId}, __dirname); + return this.rawSqlFromDef('routes', {routesId}); }, fetchTickets(routesId) { - return db.rawSqlFromDef('tickets', {routesId}, __dirname); + return this.rawSqlFromDef('tickets', {routesId}); } }, components: { diff --git a/print/templates/reports/entry-order/entry-order.js b/print/templates/reports/entry-order/entry-order.js index 654ba3460f..de396df2cb 100755 --- a/print/templates/reports/entry-order/entry-order.js +++ b/print/templates/reports/entry-order/entry-order.js @@ -1,4 +1,3 @@ -const db = require(`${appPath}/core/database`); const Component = require(`${appPath}/core/component`); const reportHeader = new Component('report-header'); const reportFooter = new Component('report-footer'); @@ -18,13 +17,13 @@ module.exports = { }, methods: { fetchSupplier(entryId) { - return db.findOneFromDef('supplier', [entryId], __dirname); + return this.findOneFromDef('supplier', [entryId]); }, fetchEntry(entryId) { - return db.findOneFromDef('entry', [entryId], __dirname); + return this.findOneFromDef('entry', [entryId]); }, fetchBuys(entryId) { - return db.rawSqlFromDef('buys', [entryId], __dirname); + return this.rawSqlFromDef('buys', [entryId]); }, getTotal() { let total = 0.00; diff --git a/print/templates/reports/item-label/item-label.js b/print/templates/reports/item-label/item-label.js index 111d5a4a03..730d8ad99d 100755 --- a/print/templates/reports/item-label/item-label.js +++ b/print/templates/reports/item-label/item-label.js @@ -1,5 +1,4 @@ const Component = require(`${appPath}/core/component`); -const db = require(`${appPath}/core/database`); const reportHeader = new Component('report-header'); const reportFooter = new Component('report-footer'); const qrcode = require('qrcode'); @@ -30,10 +29,10 @@ module.exports = { }, methods: { fetchItem(id, warehouseId) { - return db.findOneFromDef('item', [id, warehouseId], __dirname); + return this.findOneFromDef('item', [id, warehouseId]); }, fetchItemTags(itemId) { - return db.rawSqlFromDef('itemTags', [itemId], __dirname).then(rows => { + return this.rawSqlFromDef('itemTags', [itemId]).then(rows => { const tags = {}; rows.forEach(row => tags[row.code] = row.value); diff --git a/print/templates/reports/letter-debtor/letter-debtor.js b/print/templates/reports/letter-debtor/letter-debtor.js index 2afc96b467..f6285a6a14 100755 --- a/print/templates/reports/letter-debtor/letter-debtor.js +++ b/print/templates/reports/letter-debtor/letter-debtor.js @@ -1,5 +1,4 @@ const Component = require(`${appPath}/core/component`); -const db = require(`${appPath}/core/database`); const reportHeader = new Component('report-header'); const reportFooter = new Component('report-footer'); @@ -24,13 +23,13 @@ module.exports = { }, methods: { fetchClient(clientId) { - return db.findOneFromDef('client', [clientId], __dirname); + return this.findOneFromDef('client', [clientId]); }, fetchSales(clientId, companyId) { - return db.findOneFromDef('sales', { + return this.findOneFromDef('sales', { clientId: clientId, companyId: companyId, - }, __dirname); + }); }, getBalance(sale) { if (sale.debtOut) diff --git a/print/templates/reports/receipt/receipt.js b/print/templates/reports/receipt/receipt.js index 7ba7f5afea..d34735bb78 100755 --- a/print/templates/reports/receipt/receipt.js +++ b/print/templates/reports/receipt/receipt.js @@ -1,5 +1,4 @@ const Component = require(`${appPath}/core/component`); -const db = require(`${appPath}/core/database`); const reportHeader = new Component('report-header'); const reportFooter = new Component('report-footer'); @@ -14,10 +13,10 @@ module.exports = { }, methods: { fetchClient(receiptId) { - return db.findOneFromDef('client', [receiptId], __dirname); + return this.findOneFromDef('client', [receiptId]); }, fetchReceipt(receiptId) { - return db.findOneFromDef('receipt', [receiptId], __dirname); + return this.findOneFromDef('receipt', [receiptId]); } }, components: { diff --git a/print/templates/reports/sepa-core/sepa-core.js b/print/templates/reports/sepa-core/sepa-core.js index f315397c26..953af9c6f4 100755 --- a/print/templates/reports/sepa-core/sepa-core.js +++ b/print/templates/reports/sepa-core/sepa-core.js @@ -1,5 +1,4 @@ const Component = require(`${appPath}/core/component`); -const db = require(`${appPath}/core/database`); const reportHeader = new Component('report-header'); const reportFooter = new Component('report-footer'); @@ -21,10 +20,10 @@ const rptSepaCore = { }, methods: { fetchClient(clientId, companyId) { - return db.findOneFromDef('client', {companyId, clientId}, __dirname); + return this.findOneFromDef('client', {companyId, clientId}); }, fetchSupplier(clientId, companyId) { - return db.findOneFromDef('supplier', {companyId, clientId}, __dirname); + return this.findOneFromDef('supplier', {companyId, clientId}); } }, components: { diff --git a/print/templates/reports/zone/assets/css/style.css b/print/templates/reports/zone/assets/css/style.css index 50d5518f58..da9e0e4d43 100644 --- a/print/templates/reports/zone/assets/css/style.css +++ b/print/templates/reports/zone/assets/css/style.css @@ -2,8 +2,9 @@ div.text { font-family: Tahoma; font-weight: bold; color: white; - font-size: 7.5em; + font-size: 12em; text-align: center; background-color: black; - margin-bottom: 0.2em + margin: 0.30em; + padding: 30px 0 } \ No newline at end of file diff --git a/print/templates/reports/zone/options.json b/print/templates/reports/zone/options.json new file mode 100644 index 0000000000..faf1781b55 --- /dev/null +++ b/print/templates/reports/zone/options.json @@ -0,0 +1,4 @@ +{ + "landscape": true, + "format": "A4" +} \ No newline at end of file diff --git a/print/templates/reports/zone/zone.js b/print/templates/reports/zone/zone.js index 3bd0c473aa..0b8f10bdff 100755 --- a/print/templates/reports/zone/zone.js +++ b/print/templates/reports/zone/zone.js @@ -1,5 +1,3 @@ -const db = require(`${appPath}/core/database`); - module.exports = { name: 'zone', async serverPrefetch() { @@ -10,7 +8,7 @@ module.exports = { }, methods: { fetchZone(routeId) { - return db.findOneFromDef('zone', {routeId}, __dirname); + return this.findOneFromDef('zone', {routeId}); } }, props: { From 2ab7999816eea35ee75768f6f91be9108283b3ef Mon Sep 17 00:00:00 2001 From: joan Date: Tue, 29 Sep 2020 14:10:13 +0200 Subject: [PATCH 3/3] Removed unused param dirname --- print/core/database.js | 11 ++++------- 1 file changed, 4 insertions(+), 7 deletions(-) diff --git a/print/core/database.js b/print/core/database.js index f8bd098228..3cc508cef0 100644 --- a/print/core/database.js +++ b/print/core/database.js @@ -29,7 +29,6 @@ module.exports = { * Makes a query from a SQL file * @param {String} queryName - The SQL file name * @param {Object} params - Parameterized values - * @param {Object} dirname - Referenced path * * @return {Object} - Result promise */ @@ -54,12 +53,11 @@ module.exports = { * Returns the first row from a given SQL file * @param {String} queryName - The SQL file name * @param {Object} params - Parameterized values - * @param {Object} dirname - Referenced path * * @return {Object} - Result promise */ - findOneFromDef(queryName, params, dirname) { - return this.rawSqlFromDef(queryName, params, dirname) + findOneFromDef(queryName, params) { + return this.rawSqlFromDef(queryName, params) .then(([row]) => row); }, @@ -80,12 +78,11 @@ module.exports = { * Returns the first property from a given SQL file * @param {String} queryName - The SQL file name * @param {Object} params - Parameterized values - * @param {Object} dirname - Referenced path * * @return {Object} - Result promise */ - findValueFromDef(queryName, params, dirname) { - return this.findOneFromDef(queryName, params, dirname).then(row => { + findValueFromDef(queryName, params) { + return this.findOneFromDef(queryName, params).then(row => { return Object.values(row)[0]; }); }
{{$t('clientId')}}