diff --git a/loopback/locale/es.json b/loopback/locale/es.json index 9951df4a53..d28cceb410 100644 --- a/loopback/locale/es.json +++ b/loopback/locale/es.json @@ -134,5 +134,5 @@ "This ticket is deleted": "Este ticket está eliminado", "A travel with this data already exists": "Ya existe un travel con estos datos", "This thermograph id already exists": "La id del termógrafo ya existe", - "ORDER_ALREADY_CONFIRMED": "ORDER_ALREADY_CONFIRMED" + "Choose a date range or days forward": "Selecciona un rango de fechas o días en adelante" } \ No newline at end of file diff --git a/modules/ticket/back/methods/ticket/filter.js b/modules/ticket/back/methods/ticket/filter.js index 801563b93c..ddb55301bd 100644 --- a/modules/ticket/back/methods/ticket/filter.js +++ b/modules/ticket/back/methods/ticket/filter.js @@ -2,6 +2,7 @@ const ParameterizedSQL = require('loopback-connector').ParameterizedSQL; const buildFilter = require('vn-loopback/util/filter').buildFilter; const mergeFilters = require('vn-loopback/util/filter').mergeFilters; +const UserError = require('vn-loopback/util/user-error'); module.exports = Self => { Self.remoteMethod('filter', { @@ -233,7 +234,7 @@ module.exports = Self => { }); } - stmt.merge(conn.makeSuffix(filter)); + stmt.merge(conn.makeWhere(filter.where)); stmts.push(stmt); stmts.push('DROP TEMPORARY TABLE IF EXISTS tmp.ticketGetProblems'); @@ -241,9 +242,11 @@ module.exports = Self => { CREATE TEMPORARY TABLE tmp.ticketGetProblems (INDEX (ticketFk)) ENGINE = MEMORY - SELECT id ticketFk, clientFk, warehouseFk, shipped - FROM tmp.filter - WHERE alertLevel = 0 OR alertLevel IS NULL`); + SELECT f.id ticketFk, f.clientFk, f.warehouseFk, f.shipped + FROM tmp.filter f + LEFT JOIN alertLevel al ON al.alertLevel = f.alertLevel + WHERE (f.alertLevelCode = 'FREE' OR f.alertLevel IS NULL) + AND f.shipped >= CURDATE()`); stmts.push('CALL ticketGetProblems()'); stmts.push('DROP TEMPORARY TABLE IF EXISTS tmp.ticket'); @@ -262,6 +265,9 @@ module.exports = Self => { LEFT JOIN tmp.ticketProblems tp ON tp.ticketFk = f.id LEFT JOIN tmp.ticketTotal tt ON tt.ticketFk = f.id`); + if (args.problems != undefined && (!args.from || !args.to)) + throw new UserError('Choose a date range or days forward'); + let condition; let hasProblem; let range; @@ -293,6 +299,7 @@ module.exports = Self => { stmt.merge(conn.makeWhere(problems)); stmt.merge(conn.makeOrderBy(filter.order)); + stmt.merge(conn.makeLimit(filter)); let ticketsIndex = stmts.push(stmt); stmts.push( diff --git a/modules/ticket/front/main/index.html b/modules/ticket/front/main/index.html index bcb77cca5b..a21b28992a 100644 --- a/modules/ticket/front/main/index.html +++ b/modules/ticket/front/main/index.html @@ -2,7 +2,7 @@ vn-id="model" url="Tickets/filter" limit="20" - order="shipped DESC, zoneHour ASC, zoneMinute ASC, clientFk"> + order="shipped DESC, zoneHour DESC, zoneMinute DESC, clientFk">