Merge pull request '7129-fixFilter' (!2766) from 7129-fixFilter into test
gitea/salix/pipeline/head This commit looks good Details
gitea/salix/pipeline/pr-master This commit looks good Details

Reviewed-on: #2766
Reviewed-by: Javier Segarra <jsegarra@verdnatura.es>
This commit is contained in:
Pablo Natek 2024-07-22 15:52:22 +00:00
commit aeb8d4dbea
3 changed files with 49 additions and 48 deletions

View File

@ -91,11 +91,13 @@ module.exports = Self => {
SELECT t.cmrFk, SELECT t.cmrFk,
t.id ticketFk, t.id ticketFk,
t.routeFk, t.routeFk,
co.name country, co.id countryFk,
co.name countryName,
t.clientFk, t.clientFk,
IF(sub.id, TRUE, FALSE) hasCmrDms, IF(sub.id, TRUE, FALSE) hasCmrDms,
DATE(t.shipped) shipped, DATE(t.shipped) shipped,
t.warehouseFk t.warehouseFk,
w.name warehouseName
FROM ticket t FROM ticket t
JOIN ticketState ts ON ts.ticketFk = t.id JOIN ticketState ts ON ts.ticketFk = t.id
JOIN state s ON s.id = ts.stateFk JOIN state s ON s.id = ts.stateFk

View File

@ -91,25 +91,20 @@ module.exports = Self => {
let where = buildFilter(ctx.args, (param, value) => { let where = buildFilter(ctx.args, (param, value) => {
switch (param) { switch (param) {
case 'search': case 'search':
return {'r.id': value}; return {'id': value};
case 'from': case 'from':
return {'r.created': {gte: value}}; return {'created': {gte: value}};
case 'to': case 'to':
return {'r.created': {lte: value}}; return {'created': {lte: value}};
case 'm3':
return {'r.m3': value};
case 'description': case 'description':
return {'r.description': {like: `%${value}%`}}; return {'description': {like: `%${value}%`}};
case 'isOk':
case 'm3':
case 'warehouseFk': case 'warehouseFk':
param = `v.${param}`;
return {[param]: value};
case 'workerFk': case 'workerFk':
case 'vehicleFk': case 'vehicleFk':
case 'agencyModeFk': case 'agencyModeFk':
param = `r.${param}`;
return {[param]: value}; return {[param]: value};
case 'isOk':
return {'r.isOk': value};
} }
}); });
@ -119,34 +114,38 @@ module.exports = Self => {
let stmt; let stmt;
stmt = new ParameterizedSQL( stmt = new ParameterizedSQL(
`SELECT `SELECT *
r.id, FROM(
r.workerFk, SELECT
r.created, r.id,
r.vehicleFk, r.workerFk,
r.agencyModeFk, r.created,
r.time, r.vehicleFk,
r.isOk, r.agencyModeFk,
r.kmStart, r.time,
r.kmEnd, r.isOk,
r.started, r.kmStart,
r.finished, r.kmEnd,
r.gestdocFk, r.started,
r.cost, r.finished,
r.m3, r.gestdocFk,
r.description, r.cost,
am.name agencyName, r.m3,
u.name AS workerUserName, r.description,
v.numberPlate AS vehiclePlateNumber, am.name agencyName,
Date_format(r.time, '%H:%i') hour, u.name workerUserName,
eu.email v.numberPlate vehiclePlateNumber,
FROM route r Date_format(r.time, '%H:%i') hour,
LEFT JOIN agencyMode am ON am.id = r.agencyModeFk eu.email,
LEFT JOIN agency a ON a.id = am.agencyFk v.warehouseFk
LEFT JOIN vehicle v ON v.id = r.vehicleFk FROM route r
LEFT JOIN worker w ON w.id = r.workerFk LEFT JOIN agencyMode am ON am.id = r.agencyModeFk
LEFT JOIN account.user u ON u.id = w.id LEFT JOIN agency a ON a.id = am.agencyFk
LEFT JOIN account.emailUser eu ON eu.userFk = r.workerFk` 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.id
LEFT JOIN account.emailUser eu ON eu.userFk = r.workerFk
) sub`
); );
stmt.merge(conn.makeSuffix(filter)); stmt.merge(conn.makeSuffix(filter));

View File

@ -28,11 +28,11 @@ module.exports = Self => {
if (canViewAll) { if (canViewAll) {
const userConfig = await models.UserConfig.getUserConfig(ctx, myOptions); const userConfig = await models.UserConfig.getUserConfig(ctx, myOptions);
filterGrant = { filterGrant = {
where: {'a.warehouseFk': userConfig.warehouseFk} where: {'warehouseFk': userConfig.warehouseFk}
}; };
} else { } else {
filterGrant = { filterGrant = {
where: {'r.workerFk': userId} where: {'workerFk': userId}
}; };
} }
@ -46,16 +46,16 @@ module.exports = Self => {
and: [ and: [
{ {
or: [ or: [
{'r.created': currentDate}, {'created': currentDate},
{'r.created': nextDay} {'created': nextDay}
] ]
} }
] ]
}, },
order: [ order: [
'r.created ASC', 'created ASC',
'r.time ASC', 'time ASC',
'am.name ASC' 'agencyName ASC'
] ]
}; };