fix(geplante-nachrichten): fix wrong column refs in content builders — abgesagt bool, join users for names, correct status values
This commit is contained in:
@@ -92,7 +92,7 @@ async function buildEventSummary(startDate: Date, endDate: Date): Promise<{ item
|
|||||||
const result = await pool.query(
|
const result = await pool.query(
|
||||||
`SELECT titel, datum_von, datum_bis
|
`SELECT titel, datum_von, datum_bis
|
||||||
FROM veranstaltungen
|
FROM veranstaltungen
|
||||||
WHERE status != 'abgesagt'
|
WHERE abgesagt = FALSE
|
||||||
AND datum_von <= $2
|
AND datum_von <= $2
|
||||||
AND datum_bis >= $1
|
AND datum_bis >= $1
|
||||||
ORDER BY datum_von ASC`,
|
ORDER BY datum_von ASC`,
|
||||||
@@ -117,18 +117,19 @@ async function buildEventSummary(startDate: Date, endDate: Date): Promise<{ item
|
|||||||
async function buildBirthdayList(startDate: Date, endDate: Date): Promise<{ items: string; count: string }> {
|
async function buildBirthdayList(startDate: Date, endDate: Date): Promise<{ items: string; count: string }> {
|
||||||
// Find members whose birthday (month+day) falls within the window
|
// Find members whose birthday (month+day) falls within the window
|
||||||
const result = await pool.query(
|
const result = await pool.query(
|
||||||
`SELECT vorname, nachname, geburtsdatum
|
`SELECT u.given_name AS vorname, u.family_name AS nachname, mp.geburtsdatum
|
||||||
FROM mitglieder_profile
|
FROM mitglieder_profile mp
|
||||||
WHERE status IN ('aktiv', 'kind', 'jugend', 'reserve')
|
JOIN users u ON u.id = mp.user_id
|
||||||
AND geburtsdatum IS NOT NULL
|
WHERE mp.status IN ('aktiv', 'jugendfeuerwehr', 'ehrenmitglied')
|
||||||
|
AND mp.geburtsdatum IS NOT NULL
|
||||||
AND (
|
AND (
|
||||||
(EXTRACT(MONTH FROM geburtsdatum), EXTRACT(DAY FROM geburtsdatum))
|
(EXTRACT(MONTH FROM mp.geburtsdatum), EXTRACT(DAY FROM mp.geburtsdatum))
|
||||||
IN (
|
IN (
|
||||||
SELECT EXTRACT(MONTH FROM d::date), EXTRACT(DAY FROM d::date)
|
SELECT EXTRACT(MONTH FROM d::date), EXTRACT(DAY FROM d::date)
|
||||||
FROM generate_series($1::date, $2::date, '1 day'::interval) AS d
|
FROM generate_series($1::date, $2::date, '1 day'::interval) AS d
|
||||||
)
|
)
|
||||||
)
|
)
|
||||||
ORDER BY EXTRACT(MONTH FROM geburtsdatum), EXTRACT(DAY FROM geburtsdatum)`,
|
ORDER BY EXTRACT(MONTH FROM mp.geburtsdatum), EXTRACT(DAY FROM mp.geburtsdatum)`,
|
||||||
[startDate.toISOString().slice(0, 10), endDate.toISOString().slice(0, 10)],
|
[startDate.toISOString().slice(0, 10), endDate.toISOString().slice(0, 10)],
|
||||||
);
|
);
|
||||||
|
|
||||||
@@ -149,10 +150,11 @@ async function buildBirthdayList(startDate: Date, endDate: Date): Promise<{ item
|
|||||||
async function buildDienstjubilaeen(startDate: Date, endDate: Date): Promise<{ items: string; count: string }> {
|
async function buildDienstjubilaeen(startDate: Date, endDate: Date): Promise<{ items: string; count: string }> {
|
||||||
// Members hitting a 5-year milestone in the window
|
// Members hitting a 5-year milestone in the window
|
||||||
const result = await pool.query(
|
const result = await pool.query(
|
||||||
`SELECT vorname, nachname, eintrittsdatum
|
`SELECT u.given_name AS vorname, u.family_name AS nachname, mp.eintrittsdatum
|
||||||
FROM mitglieder_profile
|
FROM mitglieder_profile mp
|
||||||
WHERE status IN ('aktiv', 'reserve')
|
JOIN users u ON u.id = mp.user_id
|
||||||
AND eintrittsdatum IS NOT NULL`,
|
WHERE mp.status IN ('aktiv', 'ehrenmitglied')
|
||||||
|
AND mp.eintrittsdatum IS NOT NULL`,
|
||||||
);
|
);
|
||||||
|
|
||||||
const jubilare: Array<{ name: string; years: number; date: string }> = [];
|
const jubilare: Array<{ name: string; years: number; date: string }> = [];
|
||||||
|
|||||||
Reference in New Issue
Block a user