Dashboard top10: rank per site instead of global
This commit is contained in:
1 parent
9675a243b7
commit
371f80c844
1 file changed
+39
-30
+39
-30
@@ -177,43 +177,52 @@ router.get('/dashboard', async (req, res) => {
|
|||||||
ORDER BY site, datmvt
|
ORDER BY site, datmvt
|
||||||
`, siteParams),
|
`, siteParams),
|
||||||
|
|
||||||
// Top 10 CA
|
// Top 10 CA par site
|
||||||
pool.query(`
|
pool.query(`
|
||||||
SELECT a.codein, a.libelle1, m.site,
|
SELECT codein, libelle1, site, ca_ttc, qte_vendue, marge FROM (
|
||||||
ABS(SUM(m.mntmvtttc)) AS ca_ttc,
|
SELECT a.codein, a.libelle1, m.site,
|
||||||
ABS(SUM(m.qtemvt)) AS qte_vendue,
|
ABS(SUM(m.mntmvtttc)) AS ca_ttc,
|
||||||
SUM(m.margemvt) AS marge
|
ABS(SUM(m.qtemvt)) AS qte_vendue,
|
||||||
FROM mvtart m
|
SUM(m.margemvt) AS marge,
|
||||||
JOIN articles a ON a.no_id = m.artnoid
|
RANK() OVER (PARTITION BY m.site ORDER BY ABS(SUM(m.mntmvtttc)) DESC) AS rk
|
||||||
WHERE m.datmvt::DATE = $1 AND m.genremvt = 3 ${site ? 'AND m.site = $2' : ''}
|
FROM mvtart m
|
||||||
GROUP BY a.codein, a.libelle1, m.site
|
JOIN articles a ON a.no_id = m.artnoid
|
||||||
ORDER BY ca_ttc DESC LIMIT 10
|
WHERE m.datmvt::DATE = $1 AND m.genremvt = 3 ${site ? 'AND m.site = $2' : ''}
|
||||||
|
GROUP BY a.codein, a.libelle1, m.site
|
||||||
|
) t WHERE rk <= 10
|
||||||
|
ORDER BY site, rk
|
||||||
`, site ? [targetDate, site] : [targetDate]),
|
`, site ? [targetDate, site] : [targetDate]),
|
||||||
|
|
||||||
// Top 10 Qté
|
// Top 10 Qté par site
|
||||||
pool.query(`
|
pool.query(`
|
||||||
SELECT a.codein, a.libelle1, m.site,
|
SELECT codein, libelle1, site, ca_ttc, qte_vendue, marge FROM (
|
||||||
ABS(SUM(m.mntmvtttc)) AS ca_ttc,
|
SELECT a.codein, a.libelle1, m.site,
|
||||||
ABS(SUM(m.qtemvt)) AS qte_vendue,
|
ABS(SUM(m.mntmvtttc)) AS ca_ttc,
|
||||||
SUM(m.margemvt) AS marge
|
ABS(SUM(m.qtemvt)) AS qte_vendue,
|
||||||
FROM mvtart m
|
SUM(m.margemvt) AS marge,
|
||||||
JOIN articles a ON a.no_id = m.artnoid
|
RANK() OVER (PARTITION BY m.site ORDER BY ABS(SUM(m.qtemvt)) DESC) AS rk
|
||||||
WHERE m.datmvt::DATE = $1 AND m.genremvt = 3 ${site ? 'AND m.site = $2' : ''}
|
FROM mvtart m
|
||||||
GROUP BY a.codein, a.libelle1, m.site
|
JOIN articles a ON a.no_id = m.artnoid
|
||||||
ORDER BY qte_vendue DESC LIMIT 10
|
WHERE m.datmvt::DATE = $1 AND m.genremvt = 3 ${site ? 'AND m.site = $2' : ''}
|
||||||
|
GROUP BY a.codein, a.libelle1, m.site
|
||||||
|
) t WHERE rk <= 10
|
||||||
|
ORDER BY site, rk
|
||||||
`, site ? [targetDate, site] : [targetDate]),
|
`, site ? [targetDate, site] : [targetDate]),
|
||||||
|
|
||||||
// Top 10 Marge
|
// Top 10 Marge par site
|
||||||
pool.query(`
|
pool.query(`
|
||||||
SELECT a.codein, a.libelle1, m.site,
|
SELECT codein, libelle1, site, ca_ttc, qte_vendue, marge FROM (
|
||||||
ABS(SUM(m.mntmvtttc)) AS ca_ttc,
|
SELECT a.codein, a.libelle1, m.site,
|
||||||
ABS(SUM(m.qtemvt)) AS qte_vendue,
|
ABS(SUM(m.mntmvtttc)) AS ca_ttc,
|
||||||
SUM(m.margemvt) AS marge
|
ABS(SUM(m.qtemvt)) AS qte_vendue,
|
||||||
FROM mvtart m
|
SUM(m.margemvt) AS marge,
|
||||||
JOIN articles a ON a.no_id = m.artnoid
|
RANK() OVER (PARTITION BY m.site ORDER BY SUM(m.margemvt) DESC) AS rk
|
||||||
WHERE m.datmvt::DATE = $1 AND m.genremvt = 3 ${site ? 'AND m.site = $2' : ''}
|
FROM mvtart m
|
||||||
GROUP BY a.codein, a.libelle1, m.site
|
JOIN articles a ON a.no_id = m.artnoid
|
||||||
ORDER BY marge DESC LIMIT 10
|
WHERE m.datmvt::DATE = $1 AND m.genremvt = 3 ${site ? 'AND m.site = $2' : ''}
|
||||||
|
GROUP BY a.codein, a.libelle1, m.site
|
||||||
|
) t WHERE rk <= 10
|
||||||
|
ORDER BY site, rk
|
||||||
`, site ? [targetDate, site] : [targetDate]),
|
`, site ? [targetDate, site] : [targetDate]),
|
||||||
]);
|
]);
|
||||||
|
|
||||||
|
|||||||
Reference in new issue
Block a user