Update frontend to match part 3

This commit is contained in:
2025-01-28 13:40:28 -05:00
parent 57b0e9a120
commit 25a0bc8d4c
10 changed files with 377 additions and 232 deletions

View File

@@ -2,6 +2,9 @@ const express = require('express');
const router = express.Router();
const db = require('../utils/db');
// Import status codes
const { RECEIVING_STATUS } = require('../types/status-codes');
// Helper function to execute queries using the connection pool
async function executeQuery(sql, params = []) {
const pool = db.getPool();
@@ -100,19 +103,27 @@ router.get('/purchase/metrics', async (req, res) => {
try {
const [rows] = await executeQuery(`
SELECT
COALESCE(COUNT(DISTINCT CASE WHEN po.receiving_status < 30 THEN po.po_id END), 0) as active_pos,
COALESCE(COUNT(DISTINCT CASE
WHEN po.receiving_status < 30 AND po.expected_date < CURDATE()
WHEN po.receiving_status < ${RECEIVING_STATUS.PARTIAL_RECEIVED}
THEN po.po_id
END), 0) as active_pos,
COALESCE(COUNT(DISTINCT CASE
WHEN po.receiving_status < ${RECEIVING_STATUS.PARTIAL_RECEIVED}
AND po.expected_date < CURDATE()
THEN po.po_id
END), 0) as overdue_pos,
COALESCE(SUM(CASE WHEN po.receiving_status < 30 THEN po.ordered ELSE 0 END), 0) as total_units,
COALESCE(SUM(CASE
WHEN po.receiving_status < ${RECEIVING_STATUS.PARTIAL_RECEIVED}
THEN po.ordered
ELSE 0
END), 0) as total_units,
CAST(COALESCE(SUM(CASE
WHEN po.receiving_status < 30
WHEN po.receiving_status < ${RECEIVING_STATUS.PARTIAL_RECEIVED}
THEN po.ordered * po.cost_price
ELSE 0
END), 0) AS DECIMAL(15,3)) as total_cost,
CAST(COALESCE(SUM(CASE
WHEN po.receiving_status < 30
WHEN po.receiving_status < ${RECEIVING_STATUS.PARTIAL_RECEIVED}
THEN po.ordered * p.price
ELSE 0
END), 0) AS DECIMAL(15,3)) as total_retail
@@ -137,7 +148,7 @@ router.get('/purchase/metrics', async (req, res) => {
CAST(COALESCE(SUM(po.ordered * p.price), 0) AS DECIMAL(15,3)) as order_retail
FROM purchase_orders po
JOIN products p ON po.pid = p.pid
WHERE po.receiving_status < 30
WHERE po.receiving_status < ${RECEIVING_STATUS.PARTIAL_RECEIVED}
GROUP BY po.vendor
HAVING order_cost > 0
ORDER BY order_cost DESC