-
{{$ctrl.entryData.travel.ref}}
@@ -114,8 +114,7 @@
Grouping |
Buying value |
Import |
- Grouping price |
- Packing price |
+ PVP |
@@ -125,19 +124,18 @@
{{::line.packageFk | dashIfEmpty}} |
{{::line.weight}} |
-
+
{{::line.packing | dashIfEmpty}}
|
-
+
{{::line.grouping | dashIfEmpty}}
{{::line.buyingValue | currency: 'EUR':2}} |
{{::line.quantity * line.buyingValue | currency: 'EUR':2}} |
- {{::line.price2 | currency: 'EUR':2}} |
- {{::line.price3 | currency: 'EUR':2}} |
+ {{::line.price2 | currency: 'EUR':2 | dashIfEmpty}} / {{::line.price3 | currency: 'EUR':2 | dashIfEmpty}} |
@@ -195,7 +193,7 @@
vn-id="item-descriptor"
warehouse-fk="$ctrl.vnConfig.warehouseFk">
-
diff --git a/modules/item/back/methods/tag/onSubmit.js b/modules/item/back/methods/tag/onSubmit.js
new file mode 100644
index 0000000000..7abbe60d40
--- /dev/null
+++ b/modules/item/back/methods/tag/onSubmit.js
@@ -0,0 +1,81 @@
+
+module.exports = function(Self) {
+ Self.remoteMethodCtx('onSubmit', {
+ description: 'Save model changes',
+ accessType: 'WRITE',
+ accepts: [
+ {
+ arg: 'creates',
+ type: ['object'],
+ description: 'The itemTags records to create'
+ }, {
+ arg: 'deletes',
+ type: ['number'],
+ description: 'The itemTags ids to delete'
+ }, {
+ arg: 'updates',
+ type: ['object'],
+ description: 'The itemTags records to update'
+ }, {
+ arg: 'maxPriority',
+ type: 'number',
+ description: 'The maxPriority value'
+ }
+ ],
+ returns: {
+ root: true,
+ type: 'object'
+ },
+ http: {
+ verb: 'PATCH',
+ path: '/onSubmit'
+ }
+ });
+
+ Self.onSubmit = async(ctx, options) => {
+ const models = Self.app.models;
+ const args = ctx.args;
+ let tx;
+ const myOptions = {};
+
+ if (typeof options == 'object')
+ Object.assign(myOptions, options);
+
+ if (!myOptions.transaction) {
+ tx = await Self.beginTransaction({});
+ myOptions.transaction = tx;
+ }
+
+ try {
+ if (args.deletes) {
+ for (const itemTagId of args.deletes)
+ await models.ItemTag.destroyById(itemTagId, myOptions);
+ }
+
+ if (args.updates) {
+ for (const row of args.updates) {
+ if (row.data.priority) {
+ const itemTag = await models.ItemTag.findById(row.where.id, null, myOptions);
+ await itemTag.updateAttributes({
+ priority: row.data.priority + args.maxPriority
+ }, myOptions);
+ }
+ }
+ for (const row of args.updates) {
+ const itemTag = await models.ItemTag.findById(row.where.id, null, myOptions);
+ await itemTag.updateAttributes(row.data, myOptions);
+ }
+ }
+
+ if (args.creates) {
+ for (const itemTag of args.creates)
+ await models.ItemTag.create(itemTag, myOptions);
+ }
+
+ if (tx) await tx.commit();
+ } catch (e) {
+ if (tx) await tx.rollback();
+ throw e;
+ }
+ };
+};
diff --git a/modules/item/back/methods/tag/specs/onSubmit.spec.js b/modules/item/back/methods/tag/specs/onSubmit.spec.js
new file mode 100644
index 0000000000..f24aad7e48
--- /dev/null
+++ b/modules/item/back/methods/tag/specs/onSubmit.spec.js
@@ -0,0 +1,96 @@
+const models = require('vn-loopback/server/server').models;
+
+describe('tag onSubmit()', () => {
+ it('should delete a tag', async() => {
+ const tx = await models.Item.beginTransaction({});
+ const options = {transaction: tx};
+
+ try {
+ const deletes = [40];
+ const ctx = {
+ args: {
+ deletes: deletes
+ }
+ };
+ await models.Tag.onSubmit(ctx, options);
+
+ await tx.rollback();
+ } catch (e) {
+ await tx.rollback();
+ throw e;
+ }
+ });
+
+ it('should update a tag', async() => {
+ const tx = await models.Item.beginTransaction({});
+ const options = {transaction: tx};
+
+ try {
+ const updates = [{data: {value: 'Container Test'}, where: {id: 36}}];
+ const ctx = {
+ args: {
+ updates: updates
+ }
+ };
+ await models.Tag.onSubmit(ctx, options);
+
+ await tx.rollback();
+ } catch (e) {
+ await tx.rollback();
+ throw e;
+ }
+ });
+
+ it('should create a tag', async() => {
+ const tx = await models.Item.beginTransaction({});
+ const options = {transaction: tx};
+
+ try {
+ const creates = [{
+ 'itemFk': '6',
+ 'priority': 8,
+ '$orgIndex': null,
+ '$oldData': null,
+ '$isNew': true,
+ 'tagFk': 3,
+ 'value': 'madera'
+ }];
+ const ctx = {
+ args: {
+ creates: creates
+ }
+ };
+ await models.Tag.onSubmit(ctx, options);
+
+ await tx.rollback();
+ } catch (e) {
+ await tx.rollback();
+ throw e;
+ }
+ });
+
+ it('should swap priority for two tags', async() => {
+ const tx = await models.Item.beginTransaction({});
+ const options = {transaction: tx};
+
+ try {
+ const updates = [
+ {data: {priority: 2}, where: {id: 36}},
+ {data: {priority: 1}, where: {id: 37}}
+ ];
+ const ctx = {
+ args: {
+ updates: updates,
+ maxPriority: 7,
+
+ }
+ };
+ await models.Tag.onSubmit(ctx, options);
+
+ await tx.rollback();
+ } catch (e) {
+ await tx.rollback();
+ throw e;
+ }
+ });
+});
diff --git a/modules/item/back/models/tag.js b/modules/item/back/models/tag.js
index 43fbc0db32..92760e34f2 100644
--- a/modules/item/back/models/tag.js
+++ b/modules/item/back/models/tag.js
@@ -1,3 +1,4 @@
module.exports = Self => {
require('../methods/tag/filterValue')(Self);
+ require('../methods/tag/onSubmit')(Self);
};
diff --git a/modules/item/front/last-entries/index.html b/modules/item/front/last-entries/index.html
index 0348d4f667..1c2db10a57 100644
--- a/modules/item/front/last-entries/index.html
+++ b/modules/item/front/last-entries/index.html
@@ -9,15 +9,15 @@
-
+
@@ -35,8 +35,7 @@
Warehouse
Landed
Entry
- P.P.U
- P.P.P
+ PVP
Label
Packing
Grouping
@@ -51,7 +50,7 @@
-
@@ -65,30 +64,31 @@
{{::entry.entryFk | dashIfEmpty}}
- {{::entry.price2 | dashIfEmpty}}
- {{::entry.price3 | dashIfEmpty}}
+
+ {{::entry.price2 | currency: 'EUR':2 | dashIfEmpty}} / {{::entry.price3 | currency: 'EUR':2 | dashIfEmpty}}
+
{{entry.stickers | dashIfEmpty}}
-
+
{{::entry.packing | dashIfEmpty}}
-
+
{{::entry.grouping | dashIfEmpty}}
{{::entry.stems | dashIfEmpty}}
{{::entry.quantity}}
-
- {{::entry.cost | dashIfEmpty}}
+ {{::$ctrl.$t('Cost')}}: {{::entry.buyingValue | currency: 'EUR':2 | dashIfEmpty}}
+ {{::$ctrl.$t('Package')}}: {{::entry.packageValue | currency: 'EUR':2 | dashIfEmpty}}
+ {{::$ctrl.$t('Freight')}}: {{::entry.freightValue | currency: 'EUR':2 | dashIfEmpty}}
+ {{::$ctrl.$t('Comission')}}: {{::entry.comissionValue | currency: 'EUR':2 | dashIfEmpty}}">
+ {{::entry.cost | currency: 'EUR':2 | dashIfEmpty}}
{{::entry.weight | dashIfEmpty}}
@@ -113,24 +113,24 @@
ng-click="contextmenu.filterBySelection()">
Filter by selection
-
Exclude selection
-
Remove filter
-
Remove all filters
-
Copy value
-
\ No newline at end of file
+
diff --git a/modules/item/front/tags/index.html b/modules/item/front/tags/index.html
index c040b99849..f9b5370fa7 100644
--- a/modules/item/front/tags/index.html
+++ b/modules/item/front/tags/index.html
@@ -19,7 +19,7 @@
data="tags"
auto-load="true">
-
\ No newline at end of file
+
diff --git a/modules/item/front/tags/index.js b/modules/item/front/tags/index.js
index 3b3cd58efd..bfa1f3f469 100644
--- a/modules/item/front/tags/index.js
+++ b/modules/item/front/tags/index.js
@@ -29,11 +29,17 @@ class Controller extends Section {
}
onSubmit() {
- this.$.watcher.check();
- this.$.model.save().then(() => {
+ const changes = this.$.model.getChanges();
+ const data = {
+ creates: changes.creates,
+ deletes: changes.deletes,
+ updates: changes.updates,
+ maxPriority: this.getHighestPriority()
+ };
+ this.$http.patch(`Tags/onSubmit`, data).then(() => {
+ this.$.model.refresh();
this.$.watcher.notifySaved();
this.$.watcher.updateOriginalData();
- this.card.reload();
});
}
}
diff --git a/modules/order/front/catalog/index.js b/modules/order/front/catalog/index.js
index 5fdd2e2388..c0777ebc94 100644
--- a/modules/order/front/catalog/index.js
+++ b/modules/order/front/catalog/index.js
@@ -157,7 +157,7 @@ class Controller extends Section {
* Apply order to model
*/
applyOrder() {
- if (this.typeId || this.tagGroups.length > 0)
+ if (this.typeId || this.tagGroups.length > 0 || this.itemName)
this.$.model.addFilter(null, {orderBy: this.getOrderBy()});
}
diff --git a/modules/route/back/methods/route/downloadZip.js b/modules/route/back/methods/route/downloadZip.js
new file mode 100644
index 0000000000..597f1d1f6b
--- /dev/null
+++ b/modules/route/back/methods/route/downloadZip.js
@@ -0,0 +1,62 @@
+const JSZip = require('jszip');
+
+module.exports = Self => {
+ Self.remoteMethodCtx('downloadZip', {
+ description: 'Download a zip file with multiple routes pdfs',
+ accessType: 'READ',
+ accepts: [
+ {
+ arg: 'id',
+ type: 'string',
+ description: 'The routes ids',
+ }
+ ],
+ 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: '/downloadZip',
+ verb: 'GET'
+ }
+ });
+
+ Self.downloadZip = async function(ctx, id, options) {
+ const models = Self.app.models;
+ const myOptions = {};
+ const zip = new JSZip();
+
+ if (typeof options == 'object')
+ Object.assign(myOptions, options);
+
+ const ids = id.split(',');
+ for (let id of ids) {
+ ctx.args.id = id;
+ const routePdf = await models.Route.driverRoutePdf(ctx, id);
+ const fileName = extractFileName(routePdf[2]);
+ const body = routePdf[0];
+
+ zip.file(fileName, body);
+ }
+
+ const stream = zip.generateNodeStream({streamFiles: true});
+
+ return [stream, 'application/zip', `filename="download.zip"`];
+ };
+
+ function extractFileName(str) {
+ const matches = str.match(/"(.*?)"/);
+ return matches ? matches[1] : str;
+ }
+};
diff --git a/modules/route/back/models/route.js b/modules/route/back/models/route.js
index 08cabd30eb..883f4597e4 100644
--- a/modules/route/back/models/route.js
+++ b/modules/route/back/models/route.js
@@ -13,6 +13,7 @@ module.exports = Self => {
require('../methods/route/driverRoutePdf')(Self);
require('../methods/route/driverRouteEmail')(Self);
require('../methods/route/sendSms')(Self);
+ require('../methods/route/downloadZip')(Self);
Self.validate('kmStart', validateDistance, {
message: 'Distance must be lesser than 1000'
diff --git a/modules/route/front/index/index.js b/modules/route/front/index/index.js
index 9258c8fac4..94f6db09ce 100644
--- a/modules/route/front/index/index.js
+++ b/modules/route/front/index/index.js
@@ -34,12 +34,22 @@ export default class Controller extends Section {
}
showRouteReport() {
- const routes = [];
+ const routesIds = [];
for (let route of this.checked)
- routes.push(route.id);
- const routesId = routes.join(',');
+ routesIds.push(route.id);
+ const stringRoutesIds = routesIds.join(',');
- this.vnReport.show(`Routes/${routesId}/driver-route-pdf`);
+ if (this.checked.length <= 1) {
+ const url = `api/Routes/${stringRoutesIds}/driver-route-pdf?access_token=${this.vnToken.token}`;
+ window.open(url, '_blank');
+ } else {
+ const serializedParams = this.$httpParamSerializer({
+ access_token: this.vnToken.token,
+ id: stringRoutesIds
+ });
+ const url = `api/Routes/downloadZip?${serializedParams}`;
+ window.open(url, '_blank');
+ }
}
openClonationDialog() {
diff --git a/modules/route/front/index/index.spec.js b/modules/route/front/index/index.spec.js
index 05dd564336..c1f414d5e3 100644
--- a/modules/route/front/index/index.spec.js
+++ b/modules/route/front/index/index.spec.js
@@ -44,17 +44,15 @@ describe('Component vnRouteIndex', () => {
describe('showRouteReport()', () => {
it('should call to the vnReport show method', () => {
- controller.vnReport.show = jest.fn();
+ jest.spyOn(window, 'open').mockReturnThis();
const data = controller.$.model.data;
data[0].checked = true;
data[2].checked = true;
- const routeIds = '1,3';
-
controller.showRouteReport();
- expect(controller.vnReport.show).toHaveBeenCalledWith(`Routes/${routeIds}/driver-route-pdf`);
+ expect(window.open).toHaveBeenCalled();
});
});
diff --git a/modules/shelving/front/routes.json b/modules/shelving/front/routes.json
index 09a8e389ba..4059e50956 100644
--- a/modules/shelving/front/routes.json
+++ b/modules/shelving/front/routes.json
@@ -1,12 +1,12 @@
{
"module": "shelving",
"name": "Shelvings",
- "icon" : "contact_support",
+ "icon" : "icon-inventory",
"dependencies": ["worker"],
"validations" : true,
"menus": {
"main": [
- {"state": "shelving.index", "icon": "contact_support"}
+ {"state": "shelving.index", "icon": "icon-inventory"}
],
"card": [
{"state": "shelving.card.basicData", "icon": "settings"},
@@ -20,7 +20,7 @@
"abstract": true,
"component": "vn-shelving",
"description": "Shelvings"
- },
+ },
{
"url": "/index?q",
"state": "shelving.index",
@@ -32,13 +32,13 @@
"state": "shelving.create",
"component": "vn-shelving-create",
"description": "New shelving"
- },
+ },
{
"url": "/:id",
"state": "shelving.card",
"abstract": true,
"component": "vn-shelving-card"
- },
+ },
{
"url": "/summary",
"state": "shelving.card.summary",
@@ -47,7 +47,7 @@
"params": {
"shelving": "$ctrl.shelving"
}
- },
+ },
{
"url": "/basic-data",
"state": "shelving.card.basicData",
@@ -56,7 +56,7 @@
"params": {
"shelving": "$ctrl.shelving"
}
- },
+ },
{
"url" : "/log",
"state": "shelving.card.log",
@@ -64,4 +64,4 @@
"description": "Log"
}
]
-}
\ No newline at end of file
+}
diff --git a/modules/supplier/front/agency-term/index/index.html b/modules/supplier/front/agency-term/index/index.html
index 9d53226c57..44c6deba92 100644
--- a/modules/supplier/front/agency-term/index/index.html
+++ b/modules/supplier/front/agency-term/index/index.html
@@ -24,36 +24,42 @@
diff --git a/modules/ticket/back/methods/sale-tracking/listSaleTracking.js b/modules/ticket/back/methods/sale-tracking/listSaleTracking.js
index c0d63ef626..98743d8ccb 100644
--- a/modules/ticket/back/methods/sale-tracking/listSaleTracking.js
+++ b/modules/ticket/back/methods/sale-tracking/listSaleTracking.js
@@ -36,7 +36,7 @@ module.exports = Self => {
st.originalQuantity,
st.created,
st.workerFk,
- u.nickname userNickname,
+ u.name,
ste.name AS state
FROM saleTracking st
JOIN sale s ON s.id = st.saleFk
@@ -48,24 +48,6 @@ module.exports = Self => {
const trackings = await Self.rawStmt(stmt, myOptions);
- const salesFilter = {
- include: [
- {
- relation: 'item'
- }
- ],
- where: {ticketFk: filter.where.ticketFk}
- };
-
- const sales = await Self.app.models.Sale.find(salesFilter, myOptions);
-
- for (const tracking of trackings) {
- for (const sale of sales) {
- if (tracking.itemFk == sale.itemFk)
- tracking.item = sale.item();
- }
- }
-
return trackings;
};
};
diff --git a/modules/ticket/back/methods/sale/canEdit.js b/modules/ticket/back/methods/sale/canEdit.js
index f44bd67438..3091ebca7c 100644
--- a/modules/ticket/back/methods/sale/canEdit.js
+++ b/modules/ticket/back/methods/sale/canEdit.js
@@ -56,6 +56,13 @@ module.exports = Self => {
const shouldEditCloned = canEditCloned || !hasSaleCloned;
const shouldEditFloramondo = canEditFloramondo || !hasSaleFloramondo;
- return shouldEditTracked && shouldEditCloned && shouldEditFloramondo;
+ if (!shouldEditTracked)
+ throw new UserError('It is not possible to modify tracked sales');
+ if (!shouldEditCloned)
+ throw new UserError('It is not possible to modify cloned sales');
+ if (!shouldEditFloramondo)
+ throw new UserError('It is not possible to modify sales that their articles are from Floramondo');
+
+ return true;
};
};
diff --git a/modules/ticket/back/methods/sale/deleteSales.js b/modules/ticket/back/methods/sale/deleteSales.js
index c045b91971..5d1463a666 100644
--- a/modules/ticket/back/methods/sale/deleteSales.js
+++ b/modules/ticket/back/methods/sale/deleteSales.js
@@ -43,9 +43,7 @@ module.exports = Self => {
try {
const saleIds = sales.map(sale => sale.id);
- const canEditSales = await models.Sale.canEdit(ctx, saleIds, myOptions);
- if (!canEditSales)
- throw new UserError(`Sale(s) blocked, please contact production`);
+ await models.Sale.canEdit(ctx, saleIds, myOptions);
const ticket = await models.Ticket.findById(ticketId, {
include: {
diff --git a/modules/ticket/back/methods/sale/recalculatePrice.js b/modules/ticket/back/methods/sale/recalculatePrice.js
index 38c68d7f62..2c8e6768bc 100644
--- a/modules/ticket/back/methods/sale/recalculatePrice.js
+++ b/modules/ticket/back/methods/sale/recalculatePrice.js
@@ -37,9 +37,7 @@ module.exports = Self => {
try {
const salesIds = sales.map(sale => sale.id);
- const canEditSale = await models.Sale.canEdit(ctx, salesIds, myOptions);
- if (!canEditSale)
- throw new UserError(`Sale(s) blocked, please contact production`);
+ await models.Sale.canEdit(ctx, salesIds, myOptions);
const query = `
DROP TEMPORARY TABLE IF EXISTS tmp.recalculateSales;
diff --git a/modules/ticket/back/methods/sale/reserve.js b/modules/ticket/back/methods/sale/reserve.js
index 648e6de237..2dc368af69 100644
--- a/modules/ticket/back/methods/sale/reserve.js
+++ b/modules/ticket/back/methods/sale/reserve.js
@@ -51,9 +51,7 @@ module.exports = Self => {
try {
const salesIds = sales.map(sale => sale.id);
- const canEditSale = await models.Sale.canEdit(ctx, salesIds, myOptions);
- if (!canEditSale)
- throw new UserError(`Sale(s) blocked, please contact production`);
+ await models.Sale.canEdit(ctx, salesIds, myOptions);
let changesMade = '';
const promises = [];
diff --git a/modules/ticket/back/methods/sale/specs/canEdit.spec.js b/modules/ticket/back/methods/sale/specs/canEdit.spec.js
index 2aa873df56..58d8f06358 100644
--- a/modules/ticket/back/methods/sale/specs/canEdit.spec.js
+++ b/modules/ticket/back/methods/sale/specs/canEdit.spec.js
@@ -50,7 +50,7 @@ describe('sale canEdit()', () => {
it('should return false if any of the sales has a saleTracking record', async() => {
const tx = await models.Sale.beginTransaction({});
-
+ let error;
try {
const options = {transaction: tx};
@@ -59,15 +59,15 @@ describe('sale canEdit()', () => {
const sales = [31];
- const result = await models.Sale.canEdit(ctx, sales, options);
-
- expect(result).toEqual(false);
-
+ await models.Sale.canEdit(ctx, sales, options);
await tx.rollback();
} catch (e) {
await tx.rollback();
- throw e;
+ error = e;
}
+
+ expect(error).toEqual(
+ new Error('It is not possible to modify tracked sales'));
});
});
@@ -75,22 +75,22 @@ describe('sale canEdit()', () => {
const saleCloned = [29];
it('should return false if any of the sales is cloned', async() => {
const tx = await models.Sale.beginTransaction({});
-
+ let error;
try {
const options = {transaction: tx};
const buyerId = 35;
const ctx = {req: {accessToken: {userId: buyerId}}};
- const result = await models.Sale.canEdit(ctx, saleCloned, options);
-
- expect(result).toEqual(false);
-
+ await models.Sale.canEdit(ctx, saleCloned, options);
await tx.rollback();
} catch (e) {
await tx.rollback();
- throw e;
+ error = e;
}
+
+ expect(error).toEqual(
+ new Error('It is not possible to modify cloned sales'));
});
it('should return true if any of the sales is cloned and has the correct role', async() => {
@@ -130,7 +130,7 @@ describe('sale canEdit()', () => {
it('should return false if any of the sales isFloramondo', async() => {
const tx = await models.Sale.beginTransaction({});
const sales = [26];
-
+ let error;
try {
const options = {transaction: tx};
@@ -140,15 +140,15 @@ describe('sale canEdit()', () => {
const saleToEdit = await models.Sale.findById(sales[0], null, options);
await saleToEdit.updateAttribute('itemFk', 9, options);
- const result = await models.Sale.canEdit(ctx, sales, options);
-
- expect(result).toEqual(false);
-
+ await models.Sale.canEdit(ctx, sales, options);
await tx.rollback();
} catch (e) {
await tx.rollback();
- throw e;
+ error = e;
}
+
+ expect(error).toEqual(
+ new Error('It is not possible to modify sales that their articles are from Floramondo'));
});
it('should return true if any of the sales is of isFloramondo and has the correct role', async() => {
diff --git a/modules/ticket/back/methods/sale/updateConcept.js b/modules/ticket/back/methods/sale/updateConcept.js
index 0730f85e28..dcd25dcbb1 100644
--- a/modules/ticket/back/methods/sale/updateConcept.js
+++ b/modules/ticket/back/methods/sale/updateConcept.js
@@ -40,10 +40,7 @@ module.exports = Self => {
try {
const currentLine = await models.Sale.findById(id, null, myOptions);
- const canEditSale = await models.Sale.canEdit(ctx, [id], myOptions);
-
- if (!canEditSale)
- throw new UserError(`Sale(s) blocked, please contact production`);
+ await models.Sale.canEdit(ctx, [id], myOptions);
const line = await currentLine.updateAttributes({concept: newConcept}, myOptions);
diff --git a/modules/ticket/back/methods/sale/updatePrice.js b/modules/ticket/back/methods/sale/updatePrice.js
index 8f27e1af50..505de51807 100644
--- a/modules/ticket/back/methods/sale/updatePrice.js
+++ b/modules/ticket/back/methods/sale/updatePrice.js
@@ -66,9 +66,7 @@ module.exports = Self => {
const sale = await models.Sale.findById(id, filter, myOptions);
- const canEditSale = await models.Sale.canEdit(ctx, [id], myOptions);
- if (!canEditSale)
- throw new UserError(`Sale(s) blocked, please contact production`);
+ await models.Sale.canEdit(ctx, [id], myOptions);
const oldPrice = sale.price;
const userId = ctx.req.accessToken.userId;
diff --git a/modules/ticket/back/methods/sale/updateQuantity.js b/modules/ticket/back/methods/sale/updateQuantity.js
index 8cf0720ce0..d2927c65c0 100644
--- a/modules/ticket/back/methods/sale/updateQuantity.js
+++ b/modules/ticket/back/methods/sale/updateQuantity.js
@@ -41,9 +41,7 @@ module.exports = Self => {
}
try {
- const canEditSale = await models.Sale.canEdit(ctx, [id], myOptions);
- if (!canEditSale)
- throw new UserError(`Sale(s) blocked, please contact production`);
+ await models.Sale.canEdit(ctx, [id], myOptions);
const filter = {
include: {
diff --git a/modules/ticket/back/methods/state/editableStates.js b/modules/ticket/back/methods/state/editableStates.js
index 2c90ac43b1..115876f26f 100644
--- a/modules/ticket/back/methods/state/editableStates.js
+++ b/modules/ticket/back/methods/state/editableStates.js
@@ -24,7 +24,7 @@ module.exports = Self => {
if (typeof options == 'object')
Object.assign(myOptions, options);
- let statesList = await models.State.find({where: filter.where}, myOptions);
+ let statesList = await models.State.find(filter, myOptions);
const isProduction = await models.Account.hasRole(userId, 'production', myOptions);
const isSalesPerson = await models.Account.hasRole(userId, 'salesPerson', myOptions);
const isAdministrative = await models.Account.hasRole(userId, 'administrative', myOptions);
diff --git a/modules/ticket/front/sale-tracking/index.html b/modules/ticket/front/sale-tracking/index.html
index 8518175514..c21eaa46ac 100644
--- a/modules/ticket/front/sale-tracking/index.html
+++ b/modules/ticket/front/sale-tracking/index.html
@@ -30,12 +30,12 @@
-
- {{::sale.itemFk | zeroFill:6}}
+ {{::sale.item.id}}
-
+
|
{{$t('From')}} |
- {{from | date('%d-%m-%Y')}} |
+ {{formatDate(from, '%d-%m-%Y')}} |
{{$t('To')}} |
- {{to | date('%d-%m-%Y')}} |
+ {{formatDate(to, '%d-%m-%Y')}} |
|
diff --git a/print/templates/reports/campaign-metrics/campaign-metrics.js b/print/templates/reports/campaign-metrics/campaign-metrics.js
index 14a4b6a9b6..45bca88dcf 100755
--- a/print/templates/reports/campaign-metrics/campaign-metrics.js
+++ b/print/templates/reports/campaign-metrics/campaign-metrics.js
@@ -1,27 +1,12 @@
-const Component = require(`vn-print/core/component`);
-const reportBody = new Component('report-body');
-const reportFooter = new Component('report-footer');
+const vnReport = require('../../../core/mixins/vn-report.js');
module.exports = {
name: 'campaign-metrics',
+ mixins: [vnReport],
async serverPrefetch() {
- this.client = await this.fetchClient(this.id);
- this.sales = await this.fetchSales(this.id, this.from, this.to);
-
- if (!this.client)
- throw new Error('Something went wrong');
- },
- methods: {
- fetchClient(id) {
- return this.findOneFromDef('client', [id]);
- },
- fetchSales(id, from, to) {
- return this.rawSqlFromDef('sales', [id, from, to]);
- },
- },
- components: {
- 'report-body': reportBody.build(),
- 'report-footer': reportFooter.build()
+ this.client = await this.findOneFromDef('client', [this.id]);
+ this.checkMainEntity(this.client);
+ this.sales = await this.rawSqlFromDef('sales', [this.id, this.from, this.to]);
},
props: {
id: {
diff --git a/print/templates/reports/claim-pickup-order/claim-pickup-order.html b/print/templates/reports/claim-pickup-order/claim-pickup-order.html
index b14f5410c4..000568ef2c 100644
--- a/print/templates/reports/claim-pickup-order/claim-pickup-order.html
+++ b/print/templates/reports/claim-pickup-order/claim-pickup-order.html
@@ -20,7 +20,7 @@
{{$t('date')}} |
- {{dated}} |
+ {{formatDate(new Date(), '%d-%m-%Y')}} |
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 5c7002e476..cc5cec1ea1 100755
--- a/print/templates/reports/claim-pickup-order/claim-pickup-order.js
+++ b/print/templates/reports/claim-pickup-order/claim-pickup-order.js
@@ -1,34 +1,12 @@
-const Component = require(`vn-print/core/component`);
-const reportBody = new Component('report-body');
-const reportFooter = new Component('report-footer');
+const vnReport = require('../../../core/mixins/vn-report.js');
module.exports = {
name: 'claim-pickup-order',
+ mixins: [vnReport],
async serverPrefetch() {
- this.client = await this.fetchClient(this.id);
- this.sales = await this.fetchSales(this.id);
-
- if (!this.client)
- throw new Error('Something went wrong');
- },
- computed: {
- dated: function() {
- const filters = this.$options.filters;
-
- return filters.date(new Date(), '%d-%m-%Y');
- }
- },
- methods: {
- fetchClient(id) {
- return this.findOneFromDef('client', [id]);
- },
- fetchSales(id) {
- return this.rawSqlFromDef('sales', [id]);
- }
- },
- components: {
- 'report-body': reportBody.build(),
- 'report-footer': reportFooter.build()
+ this.client = await this.findOneFromDef('client', [this.id]);
+ this.checkMainEntity(this.client);
+ this.sales = await this.rawSqlFromDef('sales', [this.id]);
},
props: {
id: {
@@ -36,5 +14,5 @@ module.exports = {
required: true,
description: 'The claim id'
}
- }
+ },
};
diff --git a/print/templates/reports/client-debt-statement/client-debt-statement.html b/print/templates/reports/client-debt-statement/client-debt-statement.html
index 962af021db..fb7bfd6259 100644
--- a/print/templates/reports/client-debt-statement/client-debt-statement.html
+++ b/print/templates/reports/client-debt-statement/client-debt-statement.html
@@ -13,7 +13,7 @@
{{$t('date')}} |
- {{dated}} |
+ {{formatDate(new Date(), '%d-%m-%Y');}} |
@@ -44,7 +44,7 @@
- {{sale.issued | date('%d-%m-%Y')}} |
+ {{formatDate(sale.issued, '%d-%m-%Y');}} |
{{sale.ref}} |
{{sale.debtOut}} |
{{sale.debtIn}} |
diff --git a/print/templates/reports/client-debt-statement/client-debt-statement.js b/print/templates/reports/client-debt-statement/client-debt-statement.js
index 45b97518f6..a74595200d 100755
--- a/print/templates/reports/client-debt-statement/client-debt-statement.js
+++ b/print/templates/reports/client-debt-statement/client-debt-statement.js
@@ -1,44 +1,18 @@
-const Component = require(`vn-print/core/component`);
-const reportBody = new Component('report-body');
-const reportFooter = new Component('report-footer');
+const vnReport = require('../../../core/mixins/vn-report.js');
module.exports = {
name: 'client-debt-statement',
+ mixins: [vnReport],
async serverPrefetch() {
- this.client = await this.fetchClient(this.id);
- this.sales = await this.fetchSales(this.id, this.from);
-
- if (!this.client)
- throw new Error('Something went wrong');
- },
- computed: {
- dated: function() {
- const filters = this.$options.filters;
-
- return filters.date(new Date(), '%d-%m-%Y');
- }
+ this.client = await this.findOneFromDef('client', [this.id]);
+ this.checkMainEntity(this.client);
+ this.sales = await this.rawSqlFromDef('sales',
+ [this.from, this.id, this.from, this.id, this.from, this.id, this.from, this.id, this.from, this.id]);
},
data() {
return {totalBalance: 0.00};
},
methods: {
- fetchClient(id) {
- return this.findOneFromDef('client', [id]);
- },
- fetchSales(id, from) {
- return this.rawSqlFromDef('sales', [
- from,
- id,
- from,
- id,
- from,
- id,
- from,
- id,
- from,
- id
- ]);
- },
getBalance(sale) {
if (sale.debtOut)
this.totalBalance += parseFloat(sale.debtOut);
@@ -63,10 +37,6 @@ module.exports = {
return debtIn.toFixed(2);
},
},
- components: {
- 'report-body': reportBody.build(),
- 'report-footer': reportFooter.build()
- },
props: {
id: {
type: Number,
diff --git a/print/templates/reports/collection-label/collection-label.js b/print/templates/reports/collection-label/collection-label.js
index e73afaeea1..74024bb560 100644
--- a/print/templates/reports/collection-label/collection-label.js
+++ b/print/templates/reports/collection-label/collection-label.js
@@ -1,11 +1,10 @@
-const Component = require(`vn-print/core/component`);
-const reportBody = new Component('report-body');
const jsBarcode = require('jsbarcode');
const {DOMImplementation, XMLSerializer} = require('xmldom');
-const UserError = require('vn-loopback/util/user-error');
+const vnReport = require('../../../core/mixins/vn-report.js');
module.exports = {
name: 'collection-label',
+ mixins: [vnReport],
props: {
id: {
type: Number,
@@ -30,8 +29,7 @@ module.exports = {
ticketIds = [this.id];
this.labelsData = await this.rawSqlFromDef('labelsData', [ticketIds]);
- if (!this.labelsData.length)
- throw new UserError('Empty data source');
+ this.checkMainEntity(this.labelsData);
},
methods: {
getBarcode(id) {
@@ -62,7 +60,4 @@ module.exports = {
return value;
},
},
- components: {
- 'report-body': reportBody.build()
- },
};
diff --git a/print/templates/reports/credit-request/credit-request.html b/print/templates/reports/credit-request/credit-request.html
index d5e3368094..c8e3f8c347 100644
--- a/print/templates/reports/credit-request/credit-request.html
+++ b/print/templates/reports/credit-request/credit-request.html
@@ -159,6 +159,6 @@
-
+
diff --git a/print/templates/reports/credit-request/credit-request.js b/print/templates/reports/credit-request/credit-request.js
index c1aa74e1bb..75e0b2263c 100755
--- a/print/templates/reports/credit-request/credit-request.js
+++ b/print/templates/reports/credit-request/credit-request.js
@@ -1,20 +1,7 @@
-const Component = require(`vn-print/core/component`);
-const reportBody = new Component('report-body')
-const reportFooter = new Component('report-footer');
+const vnReport = require('../../../core/mixins/vn-report.js');
-const rptCreditRequest = {
+module.exports = {
name: 'credit-request',
- computed: {
- dated: function() {
- const filters = this.$options.filters;
-
- return filters.date(new Date(), '%d-%m-%Y');
- }
- },
- components: {
- 'report-body': reportBody.build(),
- 'report-footer': reportFooter.build()
- }
+ mixins: [vnReport],
};
-module.exports = rptCreditRequest;
diff --git a/print/templates/reports/delivery-note/delivery-note.html b/print/templates/reports/delivery-note/delivery-note.html
index 06653c9492..9f217ba22c 100644
--- a/print/templates/reports/delivery-note/delivery-note.html
+++ b/print/templates/reports/delivery-note/delivery-note.html
@@ -20,7 +20,7 @@
{{$t('date')}} |
- {{ticket.shipped | date('%d-%m-%Y')}} |
+ {{formatDate(ticket.shipped, '%d-%m-%Y')}} |
{{$t('packages')}} |
@@ -231,7 +231,7 @@
![]()
-
{{signature.created | date('%d-%m-%Y')}}
+
{{formatDate(signature.created, '%d-%m-%Y')}}
diff --git a/print/templates/reports/delivery-note/delivery-note.js b/print/templates/reports/delivery-note/delivery-note.js
index 1a1a57c590..d9544a58c8 100755
--- a/print/templates/reports/delivery-note/delivery-note.js
+++ b/print/templates/reports/delivery-note/delivery-note.js
@@ -1,25 +1,21 @@
const config = require(`vn-print/core/config`);
-const Component = require(`vn-print/core/component`);
-const reportBody = new Component('report-body');
-const reportHeader = new Component('report-header');
-const reportFooter = new Component('report-footer');
+const vnReport = require('../../../core/mixins/vn-report.js');
const md5 = require('md5');
const fs = require('fs-extra');
module.exports = {
name: 'delivery-note',
+ mixins: [vnReport],
async serverPrefetch() {
- this.client = await this.fetchClient(this.id);
- this.ticket = await this.fetchTicket(this.id);
- this.sales = await this.fetchSales(this.id);
- this.address = await this.fetchAddress(this.id);
- this.services = await this.fetchServices(this.id);
- this.taxes = await this.fetchTaxes(this.id);
- this.packagings = await this.fetchPackagings(this.id);
- this.signature = await this.fetchSignature(this.id);
-
- if (!this.ticket)
- throw new Error('Something went wrong');
+ this.ticket = await this.findOneFromDef('ticket', [this.id]);
+ this.checkMainEntity(this.ticket);
+ this.client = await this.findOneFromDef('client', [this.id]);
+ this.sales = await this.rawSqlFromDef('sales', [this.id]);
+ this.address = await this.findOneFromDef(`address`, [this.id]);
+ this.services = await this.rawSqlFromDef('services', [this.id]);
+ this.taxes = await this.rawSqlFromDef('taxes', [this.id]);
+ this.packagings = await this.rawSqlFromDef('packagings', [this.id]);
+ this.signature = await this.findOneFromDef('signature', [this.id]);
},
data() {
return {totalBalance: 0.00};
@@ -61,31 +57,6 @@ module.exports = {
}
},
methods: {
- fetchClient(id) {
- return this.findOneFromDef('client', [id]);
- },
- fetchTicket(id) {
- return this.findOneFromDef('ticket', [id]);
- },
- fetchAddress(id) {
- return this.findOneFromDef(`address`, [id]);
- },
- fetchSignature(id) {
- return this.findOneFromDef('signature', [id]);
- },
- fetchTaxes(id) {
- return this.findOneFromDef(`taxes`, [id]);
- },
- fetchSales(id) {
- return this.rawSqlFromDef('sales', [id]);
- },
- fetchPackagings(id) {
- return this.rawSqlFromDef('packagings', [id]);
- },
- fetchServices(id) {
- return this.rawSqlFromDef('services', [id]);
- },
-
getSubTotal() {
let subTotal = 0.00;
this.sales.forEach(sale => {
@@ -125,11 +96,6 @@ module.exports = {
).join(', ');
}
},
- components: {
- 'report-body': reportBody.build(),
- 'report-header': reportHeader.build(),
- 'report-footer': reportFooter.build()
- },
props: {
id: {
type: Number,
diff --git a/print/templates/reports/driver-route/driver-route.html b/print/templates/reports/driver-route/driver-route.html
index 48489de6f8..1475b8e774 100644
--- a/print/templates/reports/driver-route/driver-route.html
+++ b/print/templates/reports/driver-route/driver-route.html
@@ -16,13 +16,13 @@
{{$t('date')}} |
- {{route.created | date('%d-%m-%Y')}} |
+ {{formatDate(route.created, '%d-%m-%Y')}} |
{{$t('vehicle')}} |
{{route.vehicleTradeMark}} {{route.vehicleModel}} |
{{$t('time')}} |
- {{route.time | date('%H:%M')}} |
+ {{formatDate(route.time, '%H:%M')}} |
|
{{route.plateNumber}} |
diff --git a/print/templates/reports/driver-route/driver-route.js b/print/templates/reports/driver-route/driver-route.js
index 1b2e8871a2..c166e38094 100755
--- a/print/templates/reports/driver-route/driver-route.js
+++ b/print/templates/reports/driver-route/driver-route.js
@@ -1,9 +1,8 @@
-const Component = require(`vn-print/core/component`);
-const reportBody = new Component('report-body');
-const reportFooter = new Component('report-footer');
+const vnReport = require('../../../core/mixins/vn-report.js');
module.exports = {
name: 'driver-route',
+ mixins: [vnReport],
async serverPrefetch() {
let ids = this.id;
@@ -11,8 +10,8 @@ module.exports = {
if (hasMultipleRoutes)
ids = this.id.split(',');
- const routes = await this.fetchRoutes(ids);
- const tickets = await this.fetchTickets(ids);
+ const routes = await this.rawSqlFromDef('routes', [ids]);
+ const tickets = await this.rawSqlFromDef('tickets', [ids, ids]);
const map = new Map();
@@ -27,20 +26,7 @@ module.exports = {
this.routes = routes;
- if (!this.routes)
- throw new Error('Something went wrong');
- },
- methods: {
- fetchRoutes(ids) {
- return this.rawSqlFromDef('routes', [ids]);
- },
- fetchTickets(ids) {
- return this.rawSqlFromDef('tickets', [ids, ids]);
- }
- },
- components: {
- 'report-body': reportBody.build(),
- 'report-footer': reportFooter.build()
+ this.checkMainEntity(this.routes);
},
props: {
id: {
diff --git a/print/templates/reports/entry-order/entry-order.html b/print/templates/reports/entry-order/entry-order.html
index 26294787b7..5d362dea97 100644
--- a/print/templates/reports/entry-order/entry-order.html
+++ b/print/templates/reports/entry-order/entry-order.html
@@ -16,7 +16,7 @@
{{$t('date')}} |
- {{entry.landed | date('%d-%m-%Y')}} |
+ {{formatDate(entry.landed,'%d-%m-%Y')}} |
{{$t('ref')}} |
diff --git a/print/templates/reports/entry-order/entry-order.js b/print/templates/reports/entry-order/entry-order.js
index 22c5b55fe6..d31ad1a36a 100755
--- a/print/templates/reports/entry-order/entry-order.js
+++ b/print/templates/reports/entry-order/entry-order.js
@@ -1,31 +1,18 @@
-const Component = require(`vn-print/core/component`);
-const reportBody = new Component('report-body');
-const reportHeader = new Component('report-header');
-const reportFooter = new Component('report-footer');
+const vnReport = require('../../../core/mixins/vn-report.js');
module.exports = {
name: 'entry-order',
+ mixins: [vnReport],
async serverPrefetch() {
- this.supplier = await this.fetchSupplier(this.id);
- this.entry = await this.fetchEntry(this.id);
- this.buys = await this.fetchBuys(this.id);
-
- if (!this.entry)
- throw new Error('Something went wrong');
+ this.entry = await this.findOneFromDef('entry', [this.id]);
+ this.checkMainEntity(this.entry);
+ this.supplier = await this.findOneFromDef('supplier', [this.id]);
+ this.buys = await this.rawSqlFromDef('buys', [this.id]);
},
data() {
return {totalBalance: 0.00};
},
methods: {
- fetchSupplier(id) {
- return this.findOneFromDef('supplier', [id]);
- },
- fetchEntry(id) {
- return this.findOneFromDef('entry', [id]);
- },
- fetchBuys(id) {
- return this.rawSqlFromDef('buys', [id]);
- },
getTotal() {
let total = 0.00;
this.buys.forEach(buy => {
@@ -35,11 +22,6 @@ module.exports = {
return total;
}
},
- components: {
- 'report-body': reportBody.build(),
- 'report-header': reportHeader.build(),
- 'report-footer': reportFooter.build()
- },
props: {
id: {
type: Number,
diff --git a/print/templates/reports/expedition-pallet-label/expedition-pallet-label.js b/print/templates/reports/expedition-pallet-label/expedition-pallet-label.js
index 0e8c297e83..3218626717 100644
--- a/print/templates/reports/expedition-pallet-label/expedition-pallet-label.js
+++ b/print/templates/reports/expedition-pallet-label/expedition-pallet-label.js
@@ -1,12 +1,11 @@
-const Component = require(`vn-print/core/component`);
-const reportBody = new Component('report-body');
+const vnReport = require('../../../core/mixins/vn-report.js');
const jsBarcode = require('jsbarcode');
const {DOMImplementation, XMLSerializer} = require('xmldom');
-const UserError = require('vn-loopback/util/user-error');
const qrcode = require('qrcode');
module.exports = {
name: 'expedition-pallet-label',
+ mixins: [vnReport],
props: {
id: {
type: Number,
@@ -33,8 +32,7 @@ module.exports = {
});
this.QR = await this.getQR(QRdata);
- if (!this.labelsData.length)
- throw new UserError('Empty data source');
+ this.checkMainEntity(this.labelsData);
},
methods: {
getQR(id) {
@@ -56,7 +54,4 @@ module.exports = {
return xmlSerializer.serializeToString(svgNode);
},
},
- components: {
- 'report-body': reportBody.build()
- },
};
diff --git a/print/templates/reports/exportation/exportation.html b/print/templates/reports/exportation/exportation.html
index 920e32a48e..0800c024d6 100644
--- a/print/templates/reports/exportation/exportation.html
+++ b/print/templates/reports/exportation/exportation.html
@@ -3,7 +3,7 @@
{{$t('title')}}
{{$t('toAttention')}}
-
+
-
@@ -32,4 +32,4 @@
-
\ No newline at end of file
+
diff --git a/print/templates/reports/exportation/exportation.js b/print/templates/reports/exportation/exportation.js
index 9f39aa1a11..123b350ee4 100755
--- a/print/templates/reports/exportation/exportation.js
+++ b/print/templates/reports/exportation/exportation.js
@@ -1,33 +1,13 @@
-const Component = require(`vn-print/core/component`);
-const reportBody = new Component('report-body');
-const reportFooter = new Component('report-footer');
+const vnReport = require('../../../core/mixins/vn-report.js');
module.exports = {
name: 'exportation',
+ mixins: [vnReport],
async serverPrefetch() {
- this.invoice = await this.fetchInvoice(this.reference);
-
- if (!this.invoice)
- throw new Error('Something went wrong');
-
+ this.invoice = await this.findOneFromDef('invoice', [this.reference]);
+ this.checkMainEntity(this.invoice);
this.company = await this.findOneFromDef('company', [this.invoice.companyFk]);
},
- methods: {
- fetchInvoice(reference) {
- return this.findOneFromDef('invoice', [reference]);
- }
- },
- computed: {
- issued: function() {
- const filters = this.$options.filters;
-
- return filters.date(this.invoice.issued, '%d-%m-%Y');
- }
- },
- components: {
- 'report-body': reportBody.build(),
- 'report-footer': reportFooter.build()
- },
props: {
reference: {
type: Number,
diff --git a/print/templates/reports/extra-community/extra-community.html b/print/templates/reports/extra-community/extra-community.html
index 6a46cc6898..cd61a4f4dd 100644
--- a/print/templates/reports/extra-community/extra-community.html
+++ b/print/templates/reports/extra-community/extra-community.html
@@ -26,7 +26,7 @@
{{$t('shipped')}} |
- {{travel.shipped | date('%d-%m-%Y')}} |
+ {{formatDate(travel.shipped, '%d-%m-%Y')}} |
{{$t('physicalKg')}} |
{{travel.loadedKg | number($i18n.locale)}} |
@@ -62,6 +62,6 @@
-
+
diff --git a/print/templates/reports/extra-community/extra-community.js b/print/templates/reports/extra-community/extra-community.js
index 4dfe6e2784..9941faa358 100755
--- a/print/templates/reports/extra-community/extra-community.js
+++ b/print/templates/reports/extra-community/extra-community.js
@@ -1,12 +1,10 @@
-const Component = require(`vn-print/core/component`);
-const reportBody = new Component('report-body');
-const reportFooter = new Component('report-footer');
+const vnReport = require('../../../core/mixins/vn-report.js');
const db = require(`vn-print/core/database`);
module.exports = {
name: 'extra-community',
+ mixins: [vnReport],
async serverPrefetch() {
- this.filters = this.$options.filters;
const args = {
landedTo: this.landedEnd,
shippedFrom: this.shippedStart,
@@ -21,8 +19,9 @@ module.exports = {
};
const travels = await this.fetchTravels(args);
+ this.checkMainEntity(travels);
const travelIds = travels.map(travel => travel.id);
- const entries = await this.fetchEntries(travelIds);
+ const entries = await this.rawSqlFromDef('entries', [travelIds]);
const map = new Map();
for (let travel of travels)
@@ -35,23 +34,15 @@ module.exports = {
}
this.travels = travels;
-
- if (!this.travels)
- throw new Error('Something went wrong');
},
computed: {
- dated: function() {
- return this.filters.date(new Date(), '%d-%m-%Y');
- },
landedEnd: function() {
if (!this.landedTo) return;
-
- return this.filters.date(this.landedTo, '%Y-%m-%d');
+ return formatDate(this.landedTo, '%Y-%m-%d');
},
shippedStart: function() {
if (!this.shippedFrom) return;
-
- return this.filters.date(this.shippedFrom, '%Y-%m-%d');
+ return formatDate(this.shippedFrom, '%Y-%m-%d');
}
},
methods: {
@@ -83,25 +74,17 @@ module.exports = {
query = db.merge(query, where);
query = db.merge(query, 'GROUP BY t.id');
query = db.merge(query, `
- ORDER BY
- shipped ASC,
- landed ASC,
- travelFk,
- loadPriority,
- agencyModeFk,
+ ORDER BY
+ shipped ASC,
+ landed ASC,
+ travelFk,
+ loadPriority,
+ agencyModeFk,
evaNotes
`);
return this.rawSql(query);
},
-
- fetchEntries(travelIds) {
- return this.rawSqlFromDef('entries', [travelIds]);
- }
- },
- components: {
- 'report-body': reportBody.build(),
- 'report-footer': reportFooter.build()
},
props: [
'landedTo',
diff --git a/print/templates/reports/incoterms-authorization/incoterms-authorization.js b/print/templates/reports/incoterms-authorization/incoterms-authorization.js
index bfe675985c..53425487e8 100755
--- a/print/templates/reports/incoterms-authorization/incoterms-authorization.js
+++ b/print/templates/reports/incoterms-authorization/incoterms-authorization.js
@@ -1,23 +1,12 @@
-const Component = require(`vn-print/core/component`);
-const reportBody = new Component('report-body');
-const reportFooter = new Component('report-footer');
+const vnReport = require('../../../core/mixins/vn-report.js');
module.exports = {
name: 'incoterms-authorization',
+ mixins: [vnReport],
async serverPrefetch() {
this.client = await this.findOneFromDef('client', [this.id]);
+ this.checkMainEntity(this.client);
this.company = await this.findOneFromDef('company', [this.companyId]);
- if (!this.client)
- throw new Error('Something went wrong');
- },
- computed: {
- issued: function() {
- return new Date();
- }
- },
- components: {
- 'report-body': reportBody.build(),
- 'report-footer': reportFooter.build()
},
props: {
id: {
diff --git a/print/templates/reports/invoice-incoterms/invoice-incoterms.html b/print/templates/reports/invoice-incoterms/invoice-incoterms.html
index 20c9ad4404..1915828baf 100644
--- a/print/templates/reports/invoice-incoterms/invoice-incoterms.html
+++ b/print/templates/reports/invoice-incoterms/invoice-incoterms.html
@@ -20,7 +20,7 @@
{{$t('date')}} |
- {{invoice.issued | date('%d-%m-%Y')}} |
+ {{formatDate(invoice.issued, '%d-%m-%Y')}} |
diff --git a/print/templates/reports/invoice-incoterms/invoice-incoterms.js b/print/templates/reports/invoice-incoterms/invoice-incoterms.js
index 3afc50376b..fcaffe5deb 100755
--- a/print/templates/reports/invoice-incoterms/invoice-incoterms.js
+++ b/print/templates/reports/invoice-incoterms/invoice-incoterms.js
@@ -1,34 +1,13 @@
-const Component = require(`vn-print/core/component`);
-const reportBody = new Component('report-body');
-const reportHeader = new Component('report-header');
+const vnReport = require('../../../core/mixins/vn-report.js');
module.exports = {
name: 'invoice-incoterms',
+ mixins: [vnReport],
async serverPrefetch() {
- this.invoice = await this.fetchInvoice(this.reference);
- this.client = await this.fetchClient(this.reference);
- this.incoterms = await this.fetchIncoterms(this.reference);
-
- if (!this.invoice)
- throw new Error('Something went wrong');
- },
- computed: {
-
- },
- methods: {
- fetchInvoice(reference) {
- return this.findOneFromDef('invoice', [reference]);
- },
- fetchClient(reference) {
- return this.findOneFromDef('client', [reference]);
- },
- fetchIncoterms(reference) {
- return this.findOneFromDef('incoterms', [reference, reference, reference]);
- }
- },
- components: {
- 'report-body': reportBody.build(),
- 'report-header': reportHeader.build()
+ this.invoice = await this.findOneFromDef('invoice', [this.reference]);
+ this.checkMainEntity(this.invoice);
+ this.client = await this.findOneFromDef('client', [this.reference]);
+ this.incoterms = await this.findOneFromDef('incoterms', [this.reference, this.reference, this.reference]);
},
props: {
reference: {
diff --git a/print/templates/reports/invoice/invoice.html b/print/templates/reports/invoice/invoice.html
index d23bba1e90..60d06d5286 100644
--- a/print/templates/reports/invoice/invoice.html
+++ b/print/templates/reports/invoice/invoice.html
@@ -21,7 +21,7 @@
{{$t('date')}} |
- {{invoice.issued | date('%d-%m-%Y')}} |
+ {{formatDate(invoice.issued, '%d-%m-%Y')}} |
@@ -53,7 +53,7 @@
{{row.ref}} |
- {{row.issued | date}} |
+ {{formatDate(row.issued, '%d-%m-%Y')}} |
{{row.amount | currency('EUR', $i18n.locale)}} |
{{row.description}} |
@@ -75,7 +75,7 @@
- {{ticket.shipped | date}}
+ {{formatDate(ticket.shipped, '%d-%m-%Y')}}
diff --git a/print/templates/reports/invoice/invoice.js b/print/templates/reports/invoice/invoice.js
index f7011ad817..7b572d970c 100755
--- a/print/templates/reports/invoice/invoice.js
+++ b/print/templates/reports/invoice/invoice.js
@@ -1,22 +1,21 @@
-const Component = require(`vn-print/core/component`);
const Report = require(`vn-print/core/report`);
-const reportBody = new Component('report-body');
-const reportHeader = new Component('report-header');
-const reportFooter = new Component('report-footer');
+const vnReport = require('../../../core/mixins/vn-report.js');
const invoiceIncoterms = new Report('invoice-incoterms');
module.exports = {
name: 'invoice',
+ mixins: [vnReport],
async serverPrefetch() {
- this.invoice = await this.fetchInvoice(this.reference);
- this.client = await this.fetchClient(this.reference);
- this.taxes = await this.fetchTaxes(this.reference);
- this.intrastat = await this.fetchIntrastat(this.reference);
- this.rectified = await this.fetchRectified(this.reference);
- this.hasIncoterms = await this.fetchHasIncoterms(this.reference);
+ this.invoice = await this.findOneFromDef('invoice', [this.reference]);
+ this.checkMainEntity(this.invoice);
+ this.client = await this.findOneFromDef('client', [this.reference]);
+ this.taxes = await this.rawSqlFromDef(`taxes`, [this.reference]);
+ this.intrastat = await this.rawSqlFromDef(`intrastat`, [this.reference, this.reference, this.reference]);
+ this.rectified = await this.rawSqlFromDef(`rectified`, [this.reference]);
+ this.hasIncoterms = await this.findValueFromDef(`hasIncoterms`, [this.reference]);
- const tickets = await this.fetchTickets(this.reference);
- const sales = await this.fetchSales(this.reference);
+ const tickets = await this.rawSqlFromDef('tickets', [this.reference]);
+ const sales = await this.rawSqlFromDef('sales', [this.reference, this.reference]);
const map = new Map();
@@ -33,9 +32,6 @@ module.exports = {
}
this.tickets = tickets;
-
- if (!this.invoice)
- throw new Error('Something went wrong');
},
data() {
return {totalBalance: 0.00};
@@ -66,30 +62,6 @@ module.exports = {
}
},
methods: {
- fetchInvoice(reference) {
- return this.findOneFromDef('invoice', [reference]);
- },
- fetchClient(reference) {
- return this.findOneFromDef('client', [reference]);
- },
- fetchTickets(reference) {
- return this.rawSqlFromDef('tickets', [reference]);
- },
- fetchSales(reference) {
- return this.rawSqlFromDef('sales', [reference, reference]);
- },
- fetchTaxes(reference) {
- return this.rawSqlFromDef(`taxes`, [reference]);
- },
- fetchIntrastat(reference) {
- return this.rawSqlFromDef(`intrastat`, [reference, reference, reference]);
- },
- fetchRectified(reference) {
- return this.rawSqlFromDef(`rectified`, [reference]);
- },
- fetchHasIncoterms(reference) {
- return this.findValueFromDef(`hasIncoterms`, [reference]);
- },
saleImport(sale) {
const price = sale.quantity * sale.price;
@@ -111,9 +83,6 @@ module.exports = {
}
},
components: {
- 'report-body': reportBody.build(),
- 'report-header': reportHeader.build(),
- 'report-footer': reportFooter.build(),
'invoice-incoterms': invoiceIncoterms.build()
},
props: {
diff --git a/print/templates/reports/invoiceIn/invoiceIn.html b/print/templates/reports/invoiceIn/invoiceIn.html
index f101f74089..22988b6540 100644
--- a/print/templates/reports/invoiceIn/invoiceIn.html
+++ b/print/templates/reports/invoiceIn/invoiceIn.html
@@ -19,7 +19,7 @@
{{$t('date')}} |
- {{invoice.created | date('%d-%m-%Y')}} |
+ {{formatDate(invoice.created, '%d-%m-%Y')}} |
@@ -54,7 +54,7 @@
- {{entry.landed | date}}
+ {{formatDate(entry.landed, '%d-%m-%Y')}}
diff --git a/print/templates/reports/invoiceIn/invoiceIn.js b/print/templates/reports/invoiceIn/invoiceIn.js
index 03549c2763..c59f4da7d1 100755
--- a/print/templates/reports/invoiceIn/invoiceIn.js
+++ b/print/templates/reports/invoiceIn/invoiceIn.js
@@ -1,15 +1,14 @@
-const Component = require(`vn-print/core/component`);
-const reportBody = new Component('report-body');
-const reportHeader = new Component('report-header');
-const reportFooter = new Component('report-footer');
+const vnReport = require('../../../core/mixins/vn-report.js');
module.exports = {
name: 'invoiceIn',
+ mixins: [vnReport],
async serverPrefetch() {
- this.invoice = await this.fetchInvoice(this.id);
+ this.invoice = await this.findOneFromDef('invoice', [this.id]);
+ this.checkMainEntity(this.invoice);
this.taxes = await this.fetchTaxes(this.id);
- let defaultTax = await this.fetchDefaultTax();
+ let defaultTax = await this.findOneFromDef('defaultTax');
if (defaultTax) {
defaultTax = Object.assign(defaultTax, {
@@ -19,11 +18,8 @@ module.exports = {
this.taxes.push(defaultTax);
}
- if (!this.invoice)
- throw new Error('Something went wrong');
-
- const entries = await this.fetchEntry(this.id);
- const buys = await this.fetchBuy(this.id);
+ const entries = await this.rawSqlFromDef('entry', [this.id]);
+ const buys = await this.rawSqlFromDef('buy', [this.id]);
const map = new Map();
@@ -41,21 +37,7 @@ module.exports = {
this.entries = entries;
},
- computed: {
- },
methods: {
- fetchInvoice(id) {
- return this.findOneFromDef('invoice', [id]);
- },
- fetchEntry(id) {
- return this.rawSqlFromDef('entry', [id]);
- },
- fetchBuy(id) {
- return this.rawSqlFromDef('buy', [id]);
- },
- fetchDefaultTax() {
- return this.findOneFromDef('defaultTax');
- },
async fetchTaxes(id) {
const taxes = await this.rawSqlFromDef(`taxes`, [id]);
return this.taxVat(taxes);
@@ -95,11 +77,6 @@ module.exports = {
return base + vat;
}
},
- components: {
- 'report-body': reportBody.build(),
- 'report-header': reportHeader.build(),
- 'report-footer': reportFooter.build(),
- },
props: {
id: {
type: Number,
diff --git a/print/templates/reports/item-label/item-label.html b/print/templates/reports/item-label/item-label.html
index 49593f7ddd..66509ab384 100644
--- a/print/templates/reports/item-label/item-label.html
+++ b/print/templates/reports/item-label/item-label.html
@@ -16,7 +16,7 @@
{{packing()}}
-
{{dated}}
+
{{formatDate(new Date(), '%W/%d')}}
{{labelPage}}
{{item.size}}
diff --git a/print/templates/reports/item-label/item-label.js b/print/templates/reports/item-label/item-label.js
index 6341bd11aa..c5b9cdfd79 100755
--- a/print/templates/reports/item-label/item-label.js
+++ b/print/templates/reports/item-label/item-label.js
@@ -1,24 +1,17 @@
-const Component = require(`vn-print/core/component`);
-const reportBody = new Component('report-body');
+const vnReport = require('../../../core/mixins/vn-report.js');
const qrcode = require('qrcode');
module.exports = {
name: 'item-label',
+ mixins: [vnReport],
async serverPrefetch() {
- this.item = await this.fetchItem(this.id, this.warehouseId);
+ this.item = await this.findOneFromDef('item', [this.id, this.warehouseId]);
+ this.checkMainEntity(this.item);
this.tags = await this.fetchItemTags(this.id);
this.barcode = await this.getBarcodeBase64(this.id);
-
- if (!this.item)
- throw new Error('Something went wrong');
},
computed: {
- dated() {
- const filters = this.$options.filters;
-
- return filters.date(new Date(), '%W/%d');
- },
labelPage() {
const labelNumber = this.labelNumber ? this.labelNumber : 1;
const totalLabels = this.totalLabels ? this.totalLabels : 1;
@@ -27,9 +20,6 @@ module.exports = {
}
},
methods: {
- fetchItem(id, warehouseId) {
- return this.findOneFromDef('item', [id, warehouseId]);
- },
fetchItemTags(id) {
return this.rawSqlFromDef('itemTags', [id]).then(rows => {
const tags = {};
@@ -48,9 +38,6 @@ module.exports = {
return `${this.item.packing}x${stems}`;
}
},
- components: {
- 'report-body': reportBody.build()
- },
props: {
id: {
type: Number,
diff --git a/print/templates/reports/letter-debtor/letter-debtor.html b/print/templates/reports/letter-debtor/letter-debtor.html
index 962af021db..30fbbe0030 100644
--- a/print/templates/reports/letter-debtor/letter-debtor.html
+++ b/print/templates/reports/letter-debtor/letter-debtor.html
@@ -13,7 +13,7 @@
{{$t('date')}} |
- {{dated}} |
+ {{formatDate(new Date(), '%d-%m-%Y')}} |
@@ -44,7 +44,7 @@
- {{sale.issued | date('%d-%m-%Y')}} |
+ {{formatDate(sale.issued, '%d-%m-%Y')}} |
{{sale.ref}} |
{{sale.debtOut}} |
{{sale.debtIn}} |
diff --git a/print/templates/reports/letter-debtor/letter-debtor.js b/print/templates/reports/letter-debtor/letter-debtor.js
index 749fde4edf..4446b13aec 100755
--- a/print/templates/reports/letter-debtor/letter-debtor.js
+++ b/print/templates/reports/letter-debtor/letter-debtor.js
@@ -1,36 +1,17 @@
-const Component = require(`vn-print/core/component`);
-const reportBody = new Component('report-body');
-const reportFooter = new Component('report-footer');
+const vnReport = require('../../../core/mixins/vn-report.js');
module.exports = {
name: 'letter-debtor',
+ mixins: [vnReport],
async serverPrefetch() {
- this.client = await this.fetchClient(this.id);
- this.sales = await this.fetchSales(this.id, this.companyId);
-
- if (!this.client)
- throw new Error('Something went wrong');
- },
- computed: {
- dated: function() {
- const filters = this.$options.filters;
-
- return filters.date(new Date(), '%d-%m-%Y');
- }
+ this.client = await this.findOneFromDef('client', [this.id]);
+ this.checkMainEntity(this.client);
+ this.sales = await this.findOneFromDef('sales', [this.id, this.companyId]);
},
data() {
return {totalBalance: 0.00};
},
methods: {
- fetchClient(id) {
- return this.findOneFromDef('client', [id]);
- },
- fetchSales(id, companyId) {
- return this.findOneFromDef('sales', [
- id,
- companyId
- ]);
- },
getBalance(sale) {
if (sale.debtOut)
this.totalBalance += parseFloat(sale.debtOut);
@@ -57,10 +38,6 @@ module.exports = {
return debtIn.toFixed(2);
},
},
- components: {
- 'report-body': reportBody.build(),
- 'report-footer': reportFooter.build()
- },
props: {
id: {
type: Number,
diff --git a/print/templates/reports/previa-label/previa-label.js b/print/templates/reports/previa-label/previa-label.js
index 7ad5ea961f..833a154991 100755
--- a/print/templates/reports/previa-label/previa-label.js
+++ b/print/templates/reports/previa-label/previa-label.js
@@ -1,36 +1,24 @@
-const Component = require(`vn-print/core/component`);
-const reportBody = new Component('report-body');
+const vnReport = require('../../../core/mixins/vn-report.js');
const qrcode = require('qrcode');
-const UserError = require('vn-loopback/util/user-error');
module.exports = {
name: 'previa-label',
+ mixins: [vnReport],
async serverPrefetch() {
- this.previa = await this.fetchPrevia(this.id);
- this.sector = await this.fetchSector(this.id);
+ this.sector = await this.findOneFromDef('sector', [this.id]);
+ this.checkMainEntity(this.sector);
+ this.previa = await this.findOneFromDef('previa', [this.id]);
this.barcode = await this.getBarcodeBase64(this.id);
if (this.previa)
this.previa = this.previa[0];
-
- if (!this.sector)
- throw new UserError('Something went wrong - no sector found');
},
methods: {
- fetchPrevia(id) {
- return this.findOneFromDef('previa', [id]);
- },
getBarcodeBase64(id) {
const data = String(id);
return qrcode.toDataURL(data, {margin: 0});
},
- fetchSector(id) {
- return this.findOneFromDef('sector', [id]);
- }
- },
- components: {
- 'report-body': reportBody.build()
},
props: {
id: {
diff --git a/print/templates/reports/receipt/receipt.html b/print/templates/reports/receipt/receipt.html
index e0bab5ecf9..be0bfc375c 100644
--- a/print/templates/reports/receipt/receipt.html
+++ b/print/templates/reports/receipt/receipt.html
@@ -4,9 +4,9 @@
{{$t('title')}}
- Recibo de {{client.socialName}}, la cantidad de
- {{receipt.amountPaid}} € en concepto de 'entrega a cuenta', quedando pendiente en
- la cuenta del cliente un saldo de {{receipt.amountUnpaid}} €.
+ Recibo #{{receipt.id}} de {{client.socialName}},
+ la cantidad de {{receipt.amountPaid}} €
+ en concepto de 'entrega a cuenta'.
![]()
diff --git a/print/templates/reports/receipt/receipt.js b/print/templates/reports/receipt/receipt.js
index 9a9ccd4525..89a431adf3 100755
--- a/print/templates/reports/receipt/receipt.js
+++ b/print/templates/reports/receipt/receipt.js
@@ -1,27 +1,12 @@
-const Component = require(`vn-print/core/component`);
-const reportBody = new Component('report-body');
-const reportFooter = new Component('report-footer');
+const vnReport = require('../../../core/mixins/vn-report.js');
module.exports = {
name: 'receipt',
+ mixins: [vnReport],
async serverPrefetch() {
- this.client = await this.fetchClient(this.id);
- this.receipt = await this.fetchReceipt(this.id);
-
- if (!this.receipt)
- throw new Error('Something went wrong');
- },
- methods: {
- fetchClient(id) {
- return this.findOneFromDef('client', [id]);
- },
- fetchReceipt(id) {
- return this.findOneFromDef('receipt', [id]);
- }
- },
- components: {
- 'report-body': reportBody.build(),
- 'report-footer': reportFooter.build()
+ this.receipt = await this.findOneFromDef('receipt', [this.id]);
+ this.checkMainEntity(this.receipt);
+ this.client = await this.findOneFromDef('client', [this.id]);
},
props: {
id: {
diff --git a/print/templates/reports/receipt/sql/receipt.sql b/print/templates/reports/receipt/sql/receipt.sql
index b8f5a41124..4094d25b37 100644
--- a/print/templates/reports/receipt/sql/receipt.sql
+++ b/print/templates/reports/receipt/sql/receipt.sql
@@ -1,11 +1,10 @@
-SELECT
- r.id,
- r.amountPaid,
- cr.amount AS amountUnpaid,
- r.payed,
+SELECT
+ r.id,
+ r.amountPaid,
+ r.payed,
r.companyFk
FROM receipt r
JOIN client c ON c.id = r.clientFk
JOIN vn.clientRisk cr ON cr.clientFk = c.id
AND cr.companyFk = r.companyFk
-WHERE r.id = ?
\ No newline at end of file
+WHERE r.id = ?
diff --git a/print/templates/reports/sepa-core/sepa-core.html b/print/templates/reports/sepa-core/sepa-core.html
index f2326e43cf..a8c270ad50 100644
--- a/print/templates/reports/sepa-core/sepa-core.html
+++ b/print/templates/reports/sepa-core/sepa-core.html
@@ -147,7 +147,7 @@
{{$t('client.signLocation')}} |
- {{dated}}, {{client.province}} |
+ {{formatDate(new Date(), '%d-%m-%Y')}}, {{client.province}} |
{{$t('client.sign')}} |
diff --git a/print/templates/reports/sepa-core/sepa-core.js b/print/templates/reports/sepa-core/sepa-core.js
index ee8a64842f..0e19d2a6af 100755
--- a/print/templates/reports/sepa-core/sepa-core.js
+++ b/print/templates/reports/sepa-core/sepa-core.js
@@ -1,44 +1,12 @@
-const Component = require(`vn-print/core/component`);
-const reportBody = new Component('report-body');
-const reportHeader = new Component('report-header');
-const reportFooter = new Component('report-footer');
+const vnReport = require('../../../core/mixins/vn-report.js');
-const rptSepaCore = {
+module.exports = {
name: 'sepa-core',
+ mixins: [vnReport],
async serverPrefetch() {
- this.client = await this.fetchClient(this.id, this.companyId);
- this.supplier = await this.fetchSupplier(this.id, this.companyId);
-
- if (!this.client)
- throw new Error('Something went wrong');
- },
- computed: {
- dated: function() {
- const filters = this.$options.filters;
-
- return filters.date(new Date(), '%d-%m-%Y');
- }
- },
- methods: {
- fetchClient(id, companyId) {
- return this.findOneFromDef('client', [
- companyId,
- companyId,
- id
- ]);
- },
- fetchSupplier(id, companyId) {
- return this.findOneFromDef('supplier', [
- companyId,
- companyId,
- id
- ]);
- }
- },
- components: {
- 'report-body': reportBody.build(),
- 'report-header': reportHeader.build(),
- 'report-footer': reportFooter.build()
+ this.client = await this.findOneFromDef('client', [this.companyId, this.companyId, this.id]);
+ this.checkMainEntity(this.client);
+ this.supplier = await this.findOneFromDef('supplier', [this.companyId, this.companyId, this.id]);
},
props: {
id: {
@@ -52,5 +20,3 @@ const rptSepaCore = {
}
}
};
-
-module.exports = rptSepaCore;
diff --git a/print/templates/reports/supplier-campaign-metrics/supplier-campaign-metrics.html b/print/templates/reports/supplier-campaign-metrics/supplier-campaign-metrics.html
index baff51bfef..08b27d0bdf 100644
--- a/print/templates/reports/supplier-campaign-metrics/supplier-campaign-metrics.html
+++ b/print/templates/reports/supplier-campaign-metrics/supplier-campaign-metrics.html
@@ -13,11 +13,11 @@
{{$t('From')}} |
- {{from | date('%d-%m-%Y')}} |
+ {{formatDate(from, '%d-%m-%Y')}} |
{{$t('To')}} |
- {{to | date('%d-%m-%Y')}} |
+ {{formatDate(to, '%d-%m-%Y')}} |
@@ -38,7 +38,7 @@
{{$t('entry')}} {{entry.id}}
- {{$t('dated')}} {{entry.shipped | date('%d-%m-%Y')}}
+ {{$t('dated')}} {{formatDate(entry.shipped, '%d-%m-%Y')}}
{{$t('reference')}} {{entry.reference}}
diff --git a/print/templates/reports/supplier-campaign-metrics/supplier-campaign-metrics.js b/print/templates/reports/supplier-campaign-metrics/supplier-campaign-metrics.js
index f6fb4bd4e7..32a7e9b0a4 100755
--- a/print/templates/reports/supplier-campaign-metrics/supplier-campaign-metrics.js
+++ b/print/templates/reports/supplier-campaign-metrics/supplier-campaign-metrics.js
@@ -1,19 +1,19 @@
-const Component = require(`vn-print/core/component`);
-const reportBody = new Component('report-body');
-const reportFooter = new Component('report-footer');
+const vnReport = require('../../../core/mixins/vn-report.js');
module.exports = {
name: 'supplier-campaign-metrics',
+ mixins: [vnReport],
async serverPrefetch() {
- this.supplier = await this.fetchSupplier(this.id);
- let entries = await this.fetchEntries(this.id, this.from, this.to);
+ this.supplier = await this.findOneFromDef('supplier', [this.id]);
+ this.checkMainEntity(this.supplier);
+ let entries = await this.rawSqlFromDef('entries', [this.id, this.from, this.to]);
const entriesId = [];
for (let entry of entries)
entriesId.push(entry.id);
- const buys = await this.fetchBuys(entriesId);
+ const buys = await this.rawSqlFromDef('buys', [entriesId]);
const entriesMap = new Map();
for (let entry of entries)
@@ -29,23 +29,6 @@ module.exports = {
}
this.entries = entries;
- if (!this.supplier)
- throw new Error('Something went wrong');
- },
- methods: {
- fetchSupplier(supplierId) {
- return this.findOneFromDef('supplier', [supplierId]);
- },
- fetchEntries(supplierId, from, to) {
- return this.rawSqlFromDef('entries', [supplierId, from, to]);
- },
- fetchBuys(entriesId) {
- return this.rawSqlFromDef('buys', [entriesId]);
- }
- },
- components: {
- 'report-body': reportBody.build(),
- 'report-footer': reportFooter.build()
},
props: {
id: {
diff --git a/print/templates/reports/vehicle-event-expired/vehicle-event-expired.html b/print/templates/reports/vehicle-event-expired/vehicle-event-expired.html
index 65776851d0..7435f272d0 100644
--- a/print/templates/reports/vehicle-event-expired/vehicle-event-expired.html
+++ b/print/templates/reports/vehicle-event-expired/vehicle-event-expired.html
@@ -16,7 +16,7 @@
{{vehicleEvent.numberPlate}} |
{{vehicleEvent.description}} |
- {{vehicleEvent.finished | date('%d-%m-%Y')}} |
+ {{formatDate(vehicleEvent.finished, '%d-%m-%Y')}} |
diff --git a/print/templates/reports/vehicle-event-expired/vehicle-event-expired.js b/print/templates/reports/vehicle-event-expired/vehicle-event-expired.js
index ab6cffc00a..b49e770a5c 100755
--- a/print/templates/reports/vehicle-event-expired/vehicle-event-expired.js
+++ b/print/templates/reports/vehicle-event-expired/vehicle-event-expired.js
@@ -1,21 +1,10 @@
-const Component = require(`vn-print/core/component`);
-const reportBody = new Component('report-body');
-
+const vnReport = require('../../../core/mixins/vn-report.js');
module.exports = {
name: 'vehicle-event-expired',
+ mixins: [vnReport],
async serverPrefetch() {
- this.vehicleEvents = await this.fetchVehicleEvent(this.eventIds);
-
- if (!this.vehicleEvents)
- throw new Error('Something went wrong');
- },
- methods: {
- fetchVehicleEvent(vehicleEventIds) {
- return this.rawSqlFromDef('vehicleEvents', [vehicleEventIds]);
- },
- },
- components: {
- 'report-body': reportBody.build()
+ this.vehicleEvents = await this.rawSqlFromDef('vehicleEvents', [this.eventIds]);
+ this.checkMainEntity(this.vehicleEvents);
},
props: {
eventIds: {
diff --git a/print/templates/reports/zone/zone.html b/print/templates/reports/zone/zone.html
index 54c55e1686..fe42fb2adf 100644
--- a/print/templates/reports/zone/zone.html
+++ b/print/templates/reports/zone/zone.html
@@ -1,5 +1,5 @@
{{zone.agencyName}}
{{zone.id}}
- {{zone.plateNumber}} {{zone.time | date('%H:%M')}}
+ {{zone.plateNumber}} {{formatDate(zone.time, '%H:%M')}}
diff --git a/print/templates/reports/zone/zone.js b/print/templates/reports/zone/zone.js
index 720542cd60..5baa41b8e5 100755
--- a/print/templates/reports/zone/zone.js
+++ b/print/templates/reports/zone/zone.js
@@ -1,21 +1,11 @@
-const Component = require(`vn-print/core/component`);
-const reportBody = new Component('report-body');
+const vnReport = require('../../../core/mixins/vn-report.js');
module.exports = {
name: 'zone',
+ mixins: [vnReport],
async serverPrefetch() {
- this.zone = await this.fetchZone(this.id);
-
- if (!this.zone)
- throw new Error('Something went wrong');
- },
- methods: {
- fetchZone(id) {
- return this.findOneFromDef('zone', [id]);
- }
- },
- components: {
- 'report-body': reportBody.build()
+ this.zone = await this.findOneFromDef('zone', [this.id]);
+ this.checkMainEntity(this.zone);
},
props: {
id: {