debug: base_cost pro Auftrag prüfen
This commit is contained in:
@@ -154,7 +154,10 @@ router.get('/overview', authenticate, (req, res) => {
|
|||||||
const key = getBucketKey(dateStr);
|
const key = getBucketKey(dateStr);
|
||||||
if (!key) continue;
|
if (!key) continue;
|
||||||
if (!buckets[key]) buckets[key] = { month:key, revenue:0, expenses:0, orders:0 };
|
if (!buckets[key]) buckets[key] = { month:key, revenue:0, expenses:0, orders:0 };
|
||||||
if (o.bezahlt) buckets[key].revenue += getOrderRevenue(o);
|
if (o.bezahlt) {
|
||||||
|
buckets[key].revenue += getOrderRevenue(o);
|
||||||
|
buckets[key].base_cost = (buckets[key].base_cost||0) + getOrderBaseCost(o.id);
|
||||||
|
}
|
||||||
buckets[key].orders++;
|
buckets[key].orders++;
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -170,14 +173,14 @@ router.get('/overview', authenticate, (req, res) => {
|
|||||||
// Sortiert + ohne Filter auf letzte 12 Monate begrenzen
|
// Sortiert + ohne Filter auf letzte 12 Monate begrenzen
|
||||||
let monthlyData = Object.values(buckets)
|
let monthlyData = Object.values(buckets)
|
||||||
.sort((a,b) => a.month.localeCompare(b.month))
|
.sort((a,b) => a.month.localeCompare(b.month))
|
||||||
.map(m => ({ ...m, revenue: round2(m.revenue), expenses: round2(m.expenses) }));
|
.map(m => ({ ...m, revenue: round2(m.revenue), base_cost: round2(m.base_cost||0), expenses: round2(m.expenses) }));
|
||||||
|
|
||||||
if (!from && !to) monthlyData = monthlyData.slice(-12);
|
if (!from && !to) monthlyData = monthlyData.slice(-12);
|
||||||
|
|
||||||
// Kumulierter Nettogewinn (pro Bucket)
|
// Kumulierter Nettogewinn (pro Bucket)
|
||||||
let cum = 0;
|
let cum = 0;
|
||||||
const cumulativeData = monthlyData.map(m => {
|
const cumulativeData = monthlyData.map(m => {
|
||||||
cum += m.revenue - m.expenses;
|
cum += (m.revenue||0) - (m.base_cost||0) - (m.expenses||0);
|
||||||
return { month: m.month, value: round2(cum) };
|
return { month: m.month, value: round2(cum) };
|
||||||
});
|
});
|
||||||
|
|
||||||
@@ -233,6 +236,23 @@ router.get('/month-orders', authenticate, (req, res) => {
|
|||||||
})));
|
})));
|
||||||
});
|
});
|
||||||
|
|
||||||
|
// Debug2: monthlyData mit base_cost prüfen
|
||||||
|
router.get('/debug2', authenticate, (req, res) => {
|
||||||
|
const { from, to } = req.query;
|
||||||
|
const u = uid(req);
|
||||||
|
const allOrders = db.prepare('SELECT * FROM orders WHERE user_id=? AND bezahlt=1').all(u);
|
||||||
|
const result = allOrders.map(o => {
|
||||||
|
const rev = getOrderRevenue(o);
|
||||||
|
const cost = getOrderBaseCost(o.id);
|
||||||
|
return { id:o.id, name:o.name, bezahlt_am:o.bezahlt_am, revenue:rev, base_cost:cost, profit: rev-cost };
|
||||||
|
});
|
||||||
|
res.json({ orders: result, totals: {
|
||||||
|
revenue: result.reduce((s,o)=>s+o.revenue,0),
|
||||||
|
base_cost: result.reduce((s,o)=>s+o.base_cost,0),
|
||||||
|
profit: result.reduce((s,o)=>s+o.profit,0),
|
||||||
|
}});
|
||||||
|
});
|
||||||
|
|
||||||
// Debug: rohe Auftragsdaten mit Revenue
|
// Debug: rohe Auftragsdaten mit Revenue
|
||||||
router.get('/debug', authenticate, (req, res) => {
|
router.get('/debug', authenticate, (req, res) => {
|
||||||
const u = uid(req);
|
const u = uid(req);
|
||||||
|
|||||||
Reference in New Issue
Block a user