| 12345678910111213141516171819202122232425262728293031 |
- const { Terminal } = require('../database')
- const sequelize = require('../database/sequelize')
- const get = async (req, res) => {
- const terminalIds = (await Terminal.findAll())
- .filter(loc => req.claims.TERMINAL_ALL_ACCESS || req.claims[`TERMINAL_${loc.key}_ACCESS`])
- .map(loc => loc.id)
- const [results, metadata] = await sequelize.query(`
- SELECT
- loc.key,
- wd.date,
- wd.laborCost,
- SUM(svc.delivered) as delivered,
- SUM(svc.scanned) as scanned,
- SUM(svc.delivered) / (wd.regularHours + (wd.overtimeHours * 1.5)) as efficiency
- FROM workdays wd
- JOIN terminals loc on wd.terminalId = loc.id
- LEFT JOIN services svc on svc.workdayId = wd.id
- WHERE loc.id IN(:terminalIds)
- GROUP BY loc.key, wd.date
- `, {
- replacements: { terminalIds }
- })
- res.status(200).send(results)
- }
- module.exports = {
- get
- }
|