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,
t.id ticketFk,
t.routeFk,
co.name country,
co.id countryFk,
co.name countryName,
t.clientFk,
IF(sub.id, TRUE, FALSE) hasCmrDms,
DATE(t.shipped) shipped,
t.warehouseFk
t.warehouseFk,
w.name warehouseName
FROM ticket t
JOIN ticketState ts ON ts.ticketFk = t.id
JOIN state s ON s.id = ts.stateFk

View File

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

View File

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