diff --git a/modules/travel/back/methods/travel/filter.js b/modules/travel/back/methods/travel/filter.js
index 024448bfe4..586b4e5aad 100644
--- a/modules/travel/back/methods/travel/filter.js
+++ b/modules/travel/back/methods/travel/filter.js
@@ -10,64 +10,68 @@ module.exports = Self => {
accepts: [
{
arg: 'filter',
- type: 'Object',
+ type: 'object',
description: 'Filter defining where, order, offset, and limit - must be a JSON-encoded string',
http: {source: 'query'}
}, {
arg: 'search',
- type: 'String',
+ type: 'string',
description: 'Searchs the travel by id',
http: {source: 'query'}
}, {
arg: 'id',
- type: 'Integer',
+ type: 'integer',
description: 'The travel id',
http: {source: 'query'}
}, {
arg: 'shippedFrom',
- type: 'Date',
+ type: 'date',
description: 'The shipped from date filter',
http: {source: 'query'}
}, {
arg: 'shippedTo',
- type: 'Date',
+ type: 'date',
description: 'The shipped to date filter',
http: {source: 'query'}
}, {
arg: 'landedFrom',
- type: 'Date',
+ type: 'date',
description: 'The landed from date filter',
http: {source: 'query'}
}, {
arg: 'landedTo',
- type: 'Date',
+ type: 'date',
description: 'The landed to date filter',
http: {source: 'query'}
}, {
arg: 'agencyFk',
- type: 'Number',
+ type: 'number',
description: 'The agencyModeFk id',
http: {source: 'query'}
}, {
arg: 'warehouseOutFk',
- type: 'Number',
+ type: 'number',
description: 'The warehouseOutFk filter',
http: {source: 'query'}
}, {
arg: 'warehouseInFk',
- type: 'Number',
+ type: 'number',
description: 'The warehouseInFk filter',
http: {source: 'query'}
}, {
arg: 'totalEntries',
- type: 'Number',
+ type: 'number',
description: 'The totalEntries filter',
http: {source: 'query'}
}, {
arg: 'ref',
type: 'string',
description: 'The reference'
- }
+ }, {
+ arg: 'continent',
+ type: 'string',
+ description: 'The continent code'
+ },
],
returns: {
type: ['Object'],
@@ -102,6 +106,7 @@ module.exports = Self => {
case 'warehouseOutFk':
case 'warehouseInFk':
case 'totalEntries':
+ case 'continent':
param = `t.${param}`;
return {[param]: value};
}
@@ -129,11 +134,15 @@ module.exports = Self => {
t.totalEntries,
am.name agencyModeName,
win.name warehouseInName,
- wout.name warehouseOutName
+ wout.name warehouseOutName,
+ cnt.code continent
FROM vn.travel t
JOIN vn.agencyMode am ON am.id = t.agencyFk
JOIN vn.warehouse win ON win.id = t.warehouseInFk
- JOIN vn.warehouse wout ON wout.id = t.warehouseOutFk) AS t`
+ JOIN vn.warehouse wout ON wout.id = t.warehouseOutFk
+ JOIN warehouse wo ON wo.id = t.warehouseOutFk
+ JOIN country c ON c.id = wo.countryFk
+ LEFT JOIN continent cnt ON cnt.id = c.continentFk) AS t`
);
stmt.merge(conn.makeSuffix(filter));
diff --git a/modules/travel/back/methods/travel/specs/filter.spec.js b/modules/travel/back/methods/travel/specs/filter.spec.js
index ababe961e6..c739866a05 100644
--- a/modules/travel/back/methods/travel/specs/filter.spec.js
+++ b/modules/travel/back/methods/travel/specs/filter.spec.js
@@ -70,4 +70,16 @@ describe('Travel filter()', () => {
expect(result.length).toEqual(1);
});
+
+ it('should return the travel matching "continent"', async() => {
+ const ctx = {
+ args: {
+ continent: 'EU',
+ }
+ };
+
+ const result = await app.models.Travel.filter(ctx);
+
+ expect(result.length).toEqual(5);
+ });
});
diff --git a/modules/travel/front/search-panel/index.html b/modules/travel/front/search-panel/index.html
index 8e7f4140d2..8d4edec1ac 100644
--- a/modules/travel/front/search-panel/index.html
+++ b/modules/travel/front/search-panel/index.html
@@ -93,6 +93,15 @@
value-field="id">
+
+
+
+
diff --git a/modules/travel/front/summary/index.html b/modules/travel/front/summary/index.html
index 90a2ea27f6..e74682fb94 100644
--- a/modules/travel/front/summary/index.html
+++ b/modules/travel/front/summary/index.html
@@ -22,7 +22,7 @@
@@ -37,7 +37,7 @@