From 0efa85c2fb7a2aae81526cf50a3c45f42d338507 Mon Sep 17 00:00:00 2001 From: Joan Date: Tue, 14 Aug 2018 13:36:02 +0200 Subject: [PATCH] updated ticket filter --- ...ketGetFullList.sql => 06-ticketFilter.sql} | 8 +++--- .../loopback/common/methods/ticket/filter.js | 28 +++++++++++++------ 2 files changed, 23 insertions(+), 13 deletions(-) rename services/db/install/changes/1.0.10/{06-ticketGetFullList.sql => 06-ticketFilter.sql} (73%) diff --git a/services/db/install/changes/1.0.10/06-ticketGetFullList.sql b/services/db/install/changes/1.0.10/06-ticketFilter.sql similarity index 73% rename from services/db/install/changes/1.0.10/06-ticketGetFullList.sql rename to services/db/install/changes/1.0.10/06-ticketFilter.sql index ca2e6d00a..32cf249f0 100644 --- a/services/db/install/changes/1.0.10/06-ticketGetFullList.sql +++ b/services/db/install/changes/1.0.10/06-ticketFilter.sql @@ -1,9 +1,9 @@ USE `vn`; -DROP procedure IF EXISTS `ticketGetFullList`; +DROP procedure IF EXISTS `ticketFilter`; DELIMITER $$ USE `vn`$$ -CREATE DEFINER=`root`@`%` PROCEDURE `ticketGetFullList`() +CREATE DEFINER=`root`@`%` PROCEDURE `ticketFilter`() BEGIN /** * Obtiene un listado de tickets @@ -15,8 +15,8 @@ BEGIN CALL ticketGetTotal(); CALL ticketGetProblems(); - DROP TEMPORARY TABLE IF EXISTS tmp.ticketFullList; - CREATE TEMPORARY TABLE tmp.ticketFullList ENGINE = MEMORY + DROP TEMPORARY TABLE IF EXISTS tmp.ticketFilter; + CREATE TEMPORARY TABLE tmp.ticketFilter ENGINE = MEMORY SELECT t.*, tt.total, tp.problem FROM tmp.ticket t JOIN tmp.ticketTotal tt ON tt.ticketFk = t.ticketFk diff --git a/services/loopback/common/methods/ticket/filter.js b/services/loopback/common/methods/ticket/filter.js index 62dfdd147..12ae5f30e 100644 --- a/services/loopback/common/methods/ticket/filter.js +++ b/services/loopback/common/methods/ticket/filter.js @@ -24,9 +24,13 @@ module.exports = Self => { }); Self.filter = async filter => { - let stmt = new ParameterizedSQL( - `DROP TEMPORARY TABLE IF EXISTS tmp.ticket; - CREATE TEMPORARY TABLE tmp.ticket + let stmts = []; + let stmt; + + stmts.push('DROP TEMPORARY TABLE IF EXISTS tmp.ticket'); + + stmt = new ParameterizedSQL( + `CREATE TEMPORARY TABLE tmp.ticket (PRIMARY KEY (ticketFk)) ENGINE = MEMORY SELECT t.id, @@ -54,15 +58,21 @@ module.exports = Self => { LEFT JOIN ticketState ts ON ts.ticketFk = t.id LEFT JOIN state st ON st.id = ts.stateFk LEFT JOIN client c ON c.id = t.clientFk - LEFT JOIN worker wk ON wk.id = c.salesPersonFk`); - + LEFT JOIN worker wk ON wk.id = c.salesPersonFk`); stmt.merge(Self.buildSuffix(filter, 't')); - stmt.merge(';CALL ticketGetFullList()'); - stmt.merge(';SELECT * FROM tmp.ticketFullList tfl'); + stmts.push(stmt); + + stmts.push('CALL ticketFilter()'); + + stmt = new ParameterizedSQL( + `SELECT * FROM tmp.ticketFilter tfl` + ); stmt.merge(Self.buildSuffix(filter, 'tfl')); + let rsIndex = stmts.push(stmt) - 1; - let result = await Self.rawStmt(stmt); + let sql = ParameterizedSQL.join(stmts, ';'); + let tickets = await Self.rawStmt(sql); - return result[3]; + return tickets[rsIndex]; }; };