2956 - Fix for extra community report #659
|
@ -24,7 +24,7 @@ module.exports = {
|
||||||
*
|
*
|
||||||
* @return {Object} - Pool connection
|
* @return {Object} - Pool connection
|
||||||
*/
|
*/
|
||||||
getConnection(name) {
|
getConnection(name = 'default') {
|
||||||
let pool = this.pool;
|
let pool = this.pool;
|
||||||
return new Promise((resolve, reject) => {
|
return new Promise((resolve, reject) => {
|
||||||
pool.getConnection(name, function(error, connection) {
|
pool.getConnection(name, function(error, connection) {
|
||||||
|
|
|
@ -15,22 +15,11 @@ module.exports = {
|
||||||
continent: this.continent
|
continent: this.continent
|
||||||
};
|
};
|
||||||
|
|
||||||
const connection = await db.pool.getConnection();
|
const travels = await this.fetchTravels(args);
|
||||||
|
const travelIds = travels.map(travel => travel.id);
|
||||||
await this.fetchTravels(args, connection);
|
const entries = await this.fetchEntries(travelIds);
|
||||||
|
|
||||||
const travels = await this.rawSql(`
|
|
||||||
SELECT * FROM tmp.travel`, connection);
|
|
||||||
const entries = await this.fetchEntries(connection);
|
|
||||||
|
|
||||||
await this.rawSql(`
|
|
||||||
DROP TEMPORARY TABLE
|
|
||||||
tmp.travel`, connection);
|
|
||||||
|
|
||||||
await connection.release();
|
|
||||||
|
|
||||||
const map = new Map();
|
const map = new Map();
|
||||||
|
|
||||||
for (let travel of travels)
|
for (let travel of travels)
|
||||||
map.set(travel.id, travel);
|
map.set(travel.id, travel);
|
||||||
|
|
||||||
|
@ -71,7 +60,7 @@ module.exports = {
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
methods: {
|
methods: {
|
||||||
fetchTravels(args, connection) {
|
fetchTravels(args) {
|
||||||
const where = db.buildWhere(args, (key, value) => {
|
const where = db.buildWhere(args, (key, value) => {
|
||||||
switch (key) {
|
switch (key) {
|
||||||
case 'shippedFrom':
|
case 'shippedFrom':
|
||||||
|
@ -91,14 +80,11 @@ module.exports = {
|
||||||
query = db.merge(query, where);
|
query = db.merge(query, where);
|
||||||
query = db.merge(query, 'GROUP BY t.id');
|
query = db.merge(query, 'GROUP BY t.id');
|
||||||
|
|
||||||
return this.rawSql(query, connection);
|
return this.rawSql(query);
|
||||||
},
|
},
|
||||||
|
|
||||||
fetchEntries(connection) {
|
fetchEntries(travelIds) {
|
||||||
let query = this.getSqlFromDef('entries');
|
return this.rawSqlFromDef('entries', [travelIds]);
|
||||||
query = db.merge(query, 'GROUP BY e.id');
|
|
||||||
|
|
||||||
return this.rawSql(query, connection);
|
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
components: {
|
components: {
|
||||||
|
|
|
@ -6,10 +6,12 @@ SELECT
|
||||||
SUM(b.stickers) AS stickers,
|
SUM(b.stickers) AS stickers,
|
||||||
CAST(SUM(i.density * b.stickers * IF(pkg.volume, pkg.volume, pkg.width * pkg.depth * pkg.height) / 1000000 ) as DECIMAL(10,0)) as loadedKg,
|
CAST(SUM(i.density * b.stickers * IF(pkg.volume, pkg.volume, pkg.width * pkg.depth * pkg.height) / 1000000 ) as DECIMAL(10,0)) as loadedKg,
|
||||||
CAST(SUM(167.5 * b.stickers * IF(pkg.volume, pkg.volume, pkg.width * pkg.depth * pkg.height) / 1000000 ) as DECIMAL(10,0)) as volumeKg
|
CAST(SUM(167.5 * b.stickers * IF(pkg.volume, pkg.volume, pkg.width * pkg.depth * pkg.height) / 1000000 ) as DECIMAL(10,0)) as volumeKg
|
||||||
FROM tmp.travel t
|
FROM travel t
|
||||||
JOIN entry e ON e.travelFk = t.id
|
JOIN entry e ON e.travelFk = t.id
|
||||||
JOIN buy b ON b.entryFk = e.id
|
JOIN buy b ON b.entryFk = e.id
|
||||||
JOIN packaging pkg ON pkg.id = b.packageFk
|
JOIN packaging pkg ON pkg.id = b.packageFk
|
||||||
JOIN item i ON i.id = b.itemFk
|
JOIN item i ON i.id = b.itemFk
|
||||||
JOIN itemType it ON it.id = i.typeFk
|
JOIN itemType it ON it.id = i.typeFk
|
||||||
JOIN supplier s ON s.id = e.supplierFk
|
JOIN supplier s ON s.id = e.supplierFk
|
||||||
|
WHERE t.id IN(?)
|
||||||
|
GROUP BY e.id
|
|
@ -1,6 +1,3 @@
|
||||||
CREATE TEMPORARY TABLE tmp.travel
|
|
||||||
(INDEX (id))
|
|
||||||
ENGINE = MEMORY
|
|
||||||
SELECT
|
SELECT
|
||||||
t.id,
|
t.id,
|
||||||
t.ref,
|
t.ref,
|
||||||
|
|
Loading…
Reference in New Issue